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