/*
 * jQuery hashchange event - v1.2 - 2/11/2010
 * http://benalman.com/projects/jquery-hashchange-plugin/
 * 
 * Copyright (c) 2010 "Cowboy" Ben Alman
 * Dual licensed under the MIT and GPL licenses.
 * http://benalman.com/about/license/
 */
(function($,i,b){
    var j,k=$.event.special,c="location",d="hashchange",l="href",f=$.browser,g=document.documentMode,h=f.msie&&(g===b||g<8),e="on"+d in i&&!h;
    function a(m){
        m=m||i[c][l];
        return m.replace(/^[^#]*#?(.*)$/,"$1")
    }
    $[d+"Delay"]=100;k[d]=$.extend(k[d],{
        setup:function(){
            if(e){
                return false
            }
            $(j.start)
        },teardown:function(){
            if(e){
                return false
            }
            $(j.stop)
        }
    }
    );
    j=(function(){
        var m={
        },r,n,o,q;
        function p(){
            o=q=function(s){
                return s
            };
            if(h){
                n=$('<iframe src="javascript:0"/>').hide().insertAfter("body")[0].contentWindow;
                q=function(){
                    return a(n.document[c][l])
                };
                o=function(u,s){
                    if(u!==s){
                        var t=n.document;
                        t.open().close();
                        t[c].hash="#"+u
                    }
                };
                o(a())
            }
        }m.start=function(){
            if(r){
                return
            }
            var t=a();
            o||p();
            (function s(){
                var v=a(),u=q(t);
                if(v!==t){
                    o(t=v,u);
                    $(i).trigger(d)
                } else {
                    if(u!==t) {
                        i[c][l]=i[c][l].replace(/#.*/,"")+"#"+u
                    }
                }
                r=setTimeout(s,$[d+"Delay"])
            })
            ()
        };
        m.stop=function(){
            if(!n){
                r&&clearTimeout(r);r=0
            }
        };
        return m
    })()
})(jQuery,this);

