/* * jQuery Address Plugin v1.1 * http://www.asual.com/jquery/address/ * * Copyright (c) 2009 Rostislav Hristov * Dual licensed under the MIT and GPL licenses. * http://docs.jquery.com/License * * Date: 2009-08-18 15:55:41 +0300 (Tue, 18 Aug 2009) */(function(a){a.address=(function(){var c=function(i){a(this).trigger(a.extend(a.Event(i),(function(){var ah={value:this.value(),path:this.path(),pathNames:this.pathNames(),parameterNames:this.parameterNames(),parameters:{},queryString:this.queryString()};for(var ag=0,p=ah.parameterNames.length;ag<p;ag++){ah.parameters[ah.parameterNames[ag]]=this.parameter(ah.parameterNames[ag])}return ah}).call(this)))};var V=function(){c.call(a.address,"init")};var n=function(){c.call(a.address,"change")};var P=function(){var i=U.href.indexOf("#");return i!=-1?ae(o(U.href.substr(i+1))):""};var g=function(){try{top.document;return top}catch(i){return window}};var F=function(p,i){if(C.strict){p=i?(p.substr(0,1)!="/"?"/"+p:p):(p==""?"/":p)}return p};var q=function(i,p){return(h&&U.protocol=="file:")?(p?Q.replace(/\?/,"%3F"):Q.replace(/%253F/,"?")):i};var af=function(ai){for(var ag=0,p=ai.childNodes.length,ah;ag<p;ag++){if(ai.childNodes[ag].src){k=String(ai.childNodes[ag].src)}if(ah=af(ai.childNodes[ag])){return ah}}};var X=function(){if(!s){var p=P();var i=!(Q==p);if(t&&r<523){if(E!=Y.length){E=Y.length;if(typeof z[E-1]!=G){Q=z[E-1]}T()}}else{if(h&&i){if(r<7){U.reload()}else{H.value(p)}}else{if(i){Q=p;T()}}}}};var T=function(){n();m(v,10)};var v=function(){var p=(U.pathname+(/\/$/.test(U.pathname)?"":"/")+D.value()).replace(/\/\//,"/").replace(/^\/$/,"");var i=window[C.tracker];if(typeof i==f){i(p)}else{if(typeof pageTracker!=G&&typeof pageTracker._trackPageview==f){pageTracker._trackPageview(p)}else{if(typeof urchinTracker==f){urchinTracker(p)}}}};var e=function(){var i=w.contentWindow.document;i.open();i.write("<html><head><title>"+ac.title+"</title><script>var "+x+' = "'+P()+'";<\/script></head></html>');i.close()};var N=function(){if(!S){S=B;if(h&&r<8){w=ac.createElement("iframe");a(w).attr("id",x).attr("src","javascript:false;").attr("width",0).attr("height",0).hide();ac.body.insertAdjacentElement("afterBegin",w);m(function(){a(w).bind("load",function(){var i=w.contentWindow;var p=i.location.href;Q=(typeof i[x]!=G?i[x]:"");if(Q!=P()){T();U.hash=q(Q,B)}});if(typeof w.contentWindow[x]==G){e()}},50)}else{if(t){if(r<418){a(ac.body).append('<form id="'+x+'" style="position:absolute;top:-9999px;" method="get"></form>');J=ac.getElementById(x)}if(typeof U[x]==G){U[x]={}}if(typeof U[x][U.pathname]!=G){z=U[x][U.pathname].split(",")}}}m(function(){V();n();v()},1);if(h&&r>=8){ac.body.onhashchange=X}else{u(X,50)}a("a[rel*=address:]").address()}};var D={baseURL:function(){var i=U.href;if(i.indexOf("#")!=-1){i=i.substr(0,i.indexOf("#"))}if(i.substr(i.length-1)=="/"){i=i.substr(0,i.length-1)}return i},strict:function(){return C.strict},history:function(){return C.history},tracker:function(){return C.tracker},title:function(){return ac.title},value:function(){if(!ab){return null}return o(F(q(Q,Z),Z))},path:function(){var i=this.value();return(i.indexOf("?")!=-1)?i.split("?")[0]:i},pathNames:function(){var p=this.path();var i=p.split("/");if(p.substr(0,1)=="/"||p.length==0){i.splice(0,1)}if(p.substr(p.length-1,1)=="/"){i.splice(i.length-1,1)}return i},queryString:function(){var p=this.value();var i=p.indexOf("?");if(i!=-1&&i<p.length){return p.substr(i+1)}},parameter:function(am){var aj=this.value();var ag=aj.indexOf("?");if(ag!=-1){aj=aj.substr(ag+1);var al=aj.split("&");var ak,ah=al.length,ai=[];while(ah--){ak=al[ah].split("=");if(ak[0]==am){ai.push(ak[1])}}if(ai.length!=0){return ai.length!=1?ai:ai[0]}}},parameterNames:function(){var ah=this.value();var p=ah.indexOf("?");var ai=[];if(p!=-1){ah=ah.substr(p+1);if(ah!=""&&ah.indexOf("=")!=-1){var aj=ah.split("&");var ag=0;while(ag<aj.length){ai.push(aj[ag].split("=")[0]);ag++}}}return ai}};var H={strict:function(i){C.strict=i},history:function(i){C.history=i},tracker:function(i){C.tracker=i},title:function(i){i=o(i);m(function(){I=ac.title=i;if(K&&w&&w.contentWindow&&w.contentWindow.document){w.contentWindow.document.title=i;K=Z}if(!M&&aa){U.replace(U.href.indexOf("#")!=-1?U.href:U.href+"#")}M=Z},50)},value:function(ag){ag=ae(o(F(ag,B)));if(ag=="/"){ag=""}if(Q==ag){return}M=B;Q=ag;s=B;T();z[Y.length]=Q;if(t){if(C.history){U[x][U.pathname]=z.toString();E=Y.length+1;if(r<418){if(U.search==""){J.action="#"+Q;J.submit()}}else{if(r<523||Q==""){var i=ac.createEvent("MouseEvents");i.initEvent("click",B,B);var p=ac.createElement("a");p.href="#"+Q;p.dispatchEvent(i)}else{U.hash="#"+Q}}}else{U.replace("#"+Q)}}else{if(Q!=P()){if(C.history){U.hash="#"+q(Q,B)}else{U.replace("#"+Q)}}}if((h&&r<8)&&C.history){m(e,50)}if(t){m(function(){s=Z},1)}else{s=Z}}};var x="jQueryAddress",f="function",G="undefined",B=true,Z=false,A=a.browser,r=parseFloat(a.browser.version),aa=A.mozilla,h=A.msie,L=A.opera,t=A.safari,ab=Z,O=g(),ac=O.document,Y=O.history,U=O.location,u=setInterval,m=setTimeout,o=decodeURI,ae=encodeURI,ad=navigator.userAgent,w,J,k,I=ac.title,E=Y.length,s=Z,S=Z,M=B,K=B,z=[],y={},Q=P(),j={},C={history:B,strict:B};if(h){r=parseFloat(ad.substr(ad.indexOf("MSIE")+4));if(ac.documentMode&&ac.documentMode!=r){r=ac.documentMode}}ab=(aa&&r>=1)||(h&&r>=6)||(L&&r>=9.5)||(t&&r>=312);if(ab){for(var W=1;W<E;W++){z.push("")}z.push(P());if(h&&U.hash!=P()){U.hash="#"+q(P(),B)}if(L){history.navigationMode="compatible"}af(document);var b=k.indexOf("?");if(k&&b>-1){var l,d=k.substr(b+1).split("&");for(var W=0,R;R=d[W];W++){l=R.split("=");if(/^(history|strict)$/.test(l[0])){C[l[0]]=(isNaN(l[1])?/^(true|yes)$/i.test(l[1]):(parseInt(l[1])!=0))}if(/^tracker$/.test(l[0])){C[l[0]]=l[1]}}}a(N)}else{if((!ab&&U.href.indexOf("#")!=-1)||(t&&r<418&&U.href.indexOf("#")!=-1&&U.search!="")){ac.open();ac.write('<html><head><meta http-equiv="refresh" content="0;url='+U.href.substr(0,U.href.indexOf("#"))+'" /></head></html>');ac.close()}else{v()}}a.each(("init,change").split(","),function(ag,p){j[p]=function(ah,i){a(a.address).bind(p,i||ah,i&&ah);return this}});a.each(("strict,history,tracker,title,value").split(","),function(ag,p){j[p]=function(i){if(typeof i!="undefined"){if(ab){H[p](i)}return a.address}else{return D[p]()}}});a.each(("baseURL,path,pathNames,queryString,parameter,parameterNames").split(","),function(ag,p){j[p]=function(i){return D[p](i)}});return j})();a.fn.address=function(b){a(this).click(function(){var c=b?b.call(this):/address:/.test(a(this).attr("rel"))?a(this).attr("rel").split("address:")[1].split(" ")[0]:a(this).attr("href").replace(/^#/,"");a.address.value(c);return false})}}(jQuery));
