/** * SWFAddress v1.2: Deep linking for Flash - http://www.asual.com/swfaddress/ * * SWFAddress is (c) 2006-2007 Rostislav Hristov and is released under the MIT License: * http://www.opensource.org/licenses/mit-license.php * */if(typeof asual=="undefined"){var asual=new Object();}if(typeof asual.util=="undefined"){asual.util=new Object();}asual.util.Browser=new function(){var n=false;var c=-1;var C=navigator.userAgent;var V=false;var Q=false;var Y=false;var I=false;var p=false;if(/MSIE/.test(C)){V=true;c=parseFloat(C.substring(C.indexOf("MSIE")+4));n=c>=6;}else{if(/AppleWebKit/.test(C)){Y=true;c=parseFloat(C.substring(C.indexOf("Safari")+7));n=c>=312;}else{if(/Opera/.test(C)){I=true;c=parseFloat(navigator.appVersion);n=c>=9.02;}else{if(/Camino/.test(C)){Q=true;c=parseFloat(C.substring(C.indexOf("Camino")+7));n=c>=1;}else{if(/Firefox/.test(C)){p=true;c=parseFloat(C.substring(C.indexOf("Firefox")+8));n=c>=1;}else{if(/Netscape/.test(C)){p=true;c=parseFloat(C.substring(C.indexOf("Netscape")+9));n=c>=8;}else{if(/Mozilla/.test(C)&&/rv:/.test(C)){p=true;c=parseFloat(C.substring(C.indexOf("rv:")+3));n=c>=1.8;}}}}}}}this.isSupported=function(){return n;};this.getVersion=function(){return c;};this.isIE=function(){return V;};this.isSafari=function(){return Y;};this.isOpera=function(){return I;};this.isCamino=function(){return Q;};this.isMozilla=function(){return p;};};asual.util.Functions=new function(){this.extend=function(c,Q){function n(){}n.prototype=c.prototype;Q.prototype=new n();Q.prototype.constructor=Q;Q.superConstructor=c;Q.superClass=c.prototype;for(var I in c){if(I!="prototype"){Q[I]=c[I];}}return Q;};this.bindAsListener=function(I,n,Q){return function(c){return I.call(n,c||((Q)?Q.event:window.event));};};};asual.util.Events=new function(){var n=new Array();var I=asual.util.Browser;var c="DOMContentLoaded";if(I.isIE()){document.write("<script id=swfaddress-domload defer=true src=//:></script>");document.getElementById("swfaddress-domload").onreadystatechange=function(){if(this.readyState=="complete"){this.parentNode.removeChild(this);for(var C=0,Y;Y=n[C];C++){if(Y.t==c){Y.l.call(null);}}}};}else{if(I.isSafari()){var p=setInterval(function(){if(/loaded|complete/.test(document.readyState)){clearInterval(p);for(var C=0,Y;Y=n[C];C++){if(Y.t==c){Y.l.call(null);}}}},10);}}this.addListener=function(V,C,Y){n.push({o:V,t:C,l:Y});if(C==c&&(I.isIE()||I.isSafari())){return ;}if(V.addEventListener){V.addEventListener(C,Y,false);}else{if(V.attachEvent){V.attachEvent("on"+C,Y);}else{V["on"+C]=Y;}}};this.removeListener=function(G,Y,V){for(var C=0,a;a=n[C];C++){if(a.o==G&&a.t==Y&&a.l==V){n.splice(C,1);break;}}if(Y==c&&(I.isIE()||I.isSafari())){return ;}if(G.removeEventListener){G.removeEventListener(Y,V,false);}else{if(G.detachEvent){G.detachEvent("on"+Y,V);}else{G["on"+Y]=V;}}};var Q=function(){for(var Y=0,C;C=n[Y];Y++){if(C.t!=c){asual.util.Events.removeListener(C.o,C.t,C.l);}}};if(I.isIE()||I.isSafari()){this.addListener(window,"unload",asual.util.Functions.bindAsListener(Q,this));}};SWFAddressEvent=function(I){this.type=I;this.target=[SWFAddress][0];this.value=SWFAddress.getValue();this.path=SWFAddress.getPath();this.parameters=new Array();var c=SWFAddress.getParameterNames();for(var Q=0,p;p=c[Q];Q++){this.parameters[p]=SWFAddress.getParameter(p);}};SWFAddressEvent.INIT="init";SWFAddressEvent.CHANGE="change";SWFAddress=new function(){var S=asual.util.Browser;var M,n,c=S.isSupported();var X,Y,D,o=false;var N=document.title;var G=history.length;var C=new Array();var s=new Object();var B=true;var a=true;var F="swfaddress.js";var u="swfaddress.swf";var O="swfaddress.html";var x=top.document;var W=top.history;var z=top.location;if((!c&&z.href.indexOf("#")!=-1)||(S.isSafari()&&S.getVersion()<412&&z.href.indexOf("#")!=-1&&z.search!="")){x.open();x.write("<html><head><meta http-equiv=\"refresh\" content=\"0;url="+z.href.substr(0,z.href.indexOf("#"))+"\" /></head></html>");x.close();}var e=function(l){var d=document.getElementsByTagName("script");for(var g=0,j;j=d[g];g++){if(j.src.indexOf(F)>-1){return (new String(j.src)).replace(F,l);}}};var H=function(){var d=z.href.indexOf("#");if(d!=-1){return z.href.substring(d).replace(/^#/g,"");}return "";};var Q=H();var V=function(){if(S.isIE()&&x.title!=N){SWFAddress.setTitle(N);}};var r=function(){if(S.isSafari()){if(G!=W.length&&!o){G=W.length;if(typeof C[G-1]!="undefined"){Q=C[G-1];}R();}}else{if(S.isIE()){if(Q!=H()){if(S.getVersion()<7){z.reload();}else{I(H(),false);}}}else{if(Q!=z.hash){Q=H();R();}}}V();};var A=function(){t("init");};var E=function(){t("change");};var t=function(d){if(SWFAddress.hasEventListener(d)){SWFAddress.dispatchEvent(new SWFAddressEvent(d));}d=d.substr(0,1).toUpperCase()+d.substring(1);if(typeof SWFAddress["on"+d]=="function"){SWFAddress["on"+d]();}};var R=function(){var i=Q;if(i!=X){X=i;if(Y&&Y.call){Y.call("setSWFAddressValue",i);}else{var d=document[D]||document.getElementById(D);if(d){d=(typeof d!="undefined"&&typeof d.setSWFAddressValue!="undefined")?d:((typeof d.getElementsByTagName("object")[0]!="undefined"&&typeof d.getElementsByTagName("object")[0].setSWFAddressValue!="undefined")?d.getElementsByTagName("object")[0]:null);if(d){d.setSWFAddressValue(i);}}}E();}};var b=function(){if(B&&typeof urchinTracker!="undefined"){var d=z.pathname+SWFAddress.getValue();d=d.replace(/\/\//,"/");d=d.replace(/^\/$/,"");urchinTracker(d);}};var p=function(){if(M.contentWindow&&M.contentWindow.location){var d=M.contentWindow;d.document.title=x.title=N;var i=d.location.href;if(i.indexOf("?")>-1){Q=i.substring(i.indexOf("?")+1);}else{Q="";}if(Q!=H()){R();z.hash="#"+Q;}}};var m=function(){var d=document.createElement("div");document.body.appendChild(d);d.id="swfaddress";d.style.position="absolute";d.style.left=d.style.top="-9999px";if(S.isIE()||S.isSafari()){d.innerHTML="<iframe src=\""+e(O)+"?"+H()+"\" width=\"0\" height=\"0\"></iframe>";M=d.getElementsByTagName("iframe")[0];}if(S.isIE()){asual.util.Events.addListener(M,"load",asual.util.Functions.bindAsListener(p,this));}if(S.isSafari()){n=document.createElement("form");n.id="swfaddress-form";n.method="get";d.appendChild(n);if(typeof z.swfaddress=="undefined"){z.swfaddress=new Object();}if(typeof z.swfaddress.history!="undefined"){C=z.swfaddress.history.split(",");}}if(S.isOpera()&&typeof D=="undefined"){d.innerHTML="<embed src=\""+e(u)+"\" type=\"application/x-shockwave-flash\" width=\"1\" height=\"1\" />";}b();R();setTimeout(A,1);setTimeout(E,2);setInterval(r,50);};var I=function(T,g){if(!c){return null;}if(T=="null"){T="";}if(X==T){return ;}Q=T;if(g){X=T;R();}else{R();X=T;}C[history.length]=Q;if(S.isSafari()){if(a){z.swfaddress.history=C.toString();o=true;G=history.length+1;if(S.getVersion()<412){if(z.search==""){n.action="#"+Q;n.submit();}}else{var d=document.createEvent("MouseEvents");d.initEvent("click",true,true);var i=document.createElement("a");i.href="#"+Q;i.dispatchEvent(d);}o=false;}else{z.hash="#"+Q;}}else{if(g){if(a){z.hash="#"+Q;}else{z.replace("#"+Q);}}}if(S.isIE()&&a){var j=M.contentWindow;var l="?"+H();j.location.assign(j.location.pathname+l);}b();E();};this.onInit=null;this.onChange=null;this.toString=function(){return "[class SWFAddress]";};this.back=function(){W.back();};this.forward=function(){W.forward();};this.go=function(d){W.go(d);};this.addEventListener=function(d,i){if(typeof s[d]=="undefined"){s[d]=new Array();}s[d].push(i);};this.removeEventListener=function(j,T){if(typeof s[j]!="undefined"){for(var g=0,d;d=s[j][g];g++){if(d==T){break;}}s[j].splice(g,1);}};this.dispatchEvent=function(j){if(typeof s[j.type]!="undefined"){j.target=this;for(var g=0,d;d=s[j.type][g];g++){d(j);}}};this.hasEventListener=function(d){return (typeof s[d]!="undefined"&&s[d].length>0);};this.getHistoryEnabled=function(){return a;};this.setHistoryEnabled=function(d){a=d;};this.getTrackingEnabled=function(){return B;};this.setTrackingEnabled=function(d){B=d;};this.openLink=function(d,i){switch(i){case "_blank":window.open(d);break;case "_self":self.location=d;break;case "_top":loc=d;break;default:self.location=d;break;}};this.openPopup=function(g,l,i,j){var d=window.open(g,l,i);};this.getSWFObject=function(){if(!c){return null;}return Y;};this.setSWFObject=function(d){if(!c){return null;}Y=d;};this.getId=function(){if(!c){return null;}return D;};this.setId=function(d){if(!c){return null;}D=d;};this.getTitle=function(){if(!c){return null;}return x.title;};this.setTitle=function(d){if(!c){return null;}if(d=="null"){d="";}if(typeof d!="undefined"){N=d;x.title=N;}};this.getStatus=function(){if(!c){return null;}return top.status;};this.setStatus=function(d){if(!c){return null;}if(!S.isSafari()){if(d=="null"||typeof d=="undefined"){d="";}var i=z.href.indexOf("#");if(i==-1){d=z.href+"#"+d;}else{d=z.href.substr(0,i)+"#"+d;}top.status=d;}};this.resetStatus=function(){top.status="";};this.getValue=function(){if(!c){return null;}return Q;};this.setValue=function(d){I(d,true);};this.getPath=function(){var d=this.getValue();if(d.indexOf("?")!=-1){return d.split("?")[0];}else{return d;}};this.getQueryString=function(){var i=this.getValue();var d=i.indexOf("?");if(d!=-1&&d<i.length){return i.substr(d+1);}return "";};this.getParameter=function(K){var g=this.getValue();var d=g.indexOf("?");if(d!=-1){g=g.substr(d+1);var T=g.split("&");var j,l=T.length;while(l--){j=T[l].split("=");if(j[0]==K){return j[1];}}}return "";};this.getParameterNames=function(){var g=this.getValue();var d=g.indexOf("?");var j=new Array();if(d!=-1){g=g.substr(d+1);if(g!=""&&g.indexOf("=")!=-1){var T=g.split("&");var l=0;while(l<T.length){j.push(T[l].split("=")[0]);l++;}}}return j;};if(!c){return ;}for(var v=1;v<G;v++){C.push("");}C.push(z.hash.replace(/^#/g,""));if(S.isIE()&&z.hash!=H()){z.hash="#"+H();}X=this.getValue();V();asual.util.Events.addListener(document,"DOMContentLoaded",m);};if(typeof deconcept!="undefined"&&deconcept.SWFObject){asual.SWFAddressObject=asual.util.Functions.extend(deconcept.SWFObject,function(p,n,G,C,V,a,r,Y,Q,I){asual.SWFAddressObject.superConstructor.apply(this,arguments);SWFAddress.setSWFObject(this);SWFAddress.setId(n);this.setAttribute("style",";");if(this.getAttribute("version").major<8){this.addVariable("$swfaddress",SWFAddress.getValue());}});SWFObject=deconcept.SWFObject=asual.SWFAddressObject;}if(typeof SWFFix!="undefined"){asual.SWFAddressRegisterFix=SWFFix.registerObject;SWFFix.registerObject=function(n,Q){SWFAddress.setId(n);asual.SWFAddressRegisterFix.apply(this,arguments);};asual.SWFAddressCreateFix=SWFFix.createSWF;SWFFix.createSWF=function(n,Q,I){SWFAddress.setId(n.id);asual.SWFAddressCreateFix.apply(this,arguments);};}