/*
                     * 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);
