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