/** * SWFAddress 2.3: Deep linking for Flash and Ajax <http://www.asual.com/swfaddress/> * * SWFAddress is (c) 2006-2009 Rostislav Hristov and contributors * This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> * */if(typeof asual=="undefined") {var asual= {}}if(typeof asual.util=="undefined") {asual.util= {}}asual.util.Browser=new function() {	var b=navigator.userAgent.toLowerCase(), a=/webkit/.test(b), e=/opera/.test(b), c=/msie/.test(b)&&!/opera/.test(b), d=/mozilla/.test(b)&&!/(compatible|webkit)/.test(b), f=parseFloat(c?b.substr(b.indexOf("msie")+4): (b.match(/.+(?: rv|it|ra|ie)[\/: ]([\d.]+)/)||[0, "0"])[1]);this.toString=function() {	return"[class Browser]"}	;this.getVersion=function() {	return f}	;this.isMSIE=function() {	return c}	;this.isSafari=function() {	return a}	;this.isOpera=function() {	return e}	;this.isMozilla=function() {	return d}}	;asual.util.Events=new function() {	var c="DOMContentLoaded", j="onstop", k=window, h=document, b=[], a=asual.util, e=a.Browser, d=e.isMSIE(), g=e.isSafari();this.toString=function() {	return"[class Events]"}	;this.addListener=function(n,l,m) {b.push( {	o: n,t: l,l: m}	);if(!(l==c&&(d||g))) {if(n.addEventListener) {	n.addEventListener(l,m,false)}else {if(n.attachEvent) {	n.attachEvent("on"+l,m)}}}}	;this.removeListener=function(p,m,n) {	for(var l=0,o;	o=b[l];l++) {if(o.o==p&&o.t==m&&o.l==n) {	b.splice(l,1);	break}}if(!(m==c&&(d||g))) {if(p.removeEventListener) {	p.removeEventListener(m,n,false)}else {if(p.detachEvent) {	p.detachEvent("on"+m,n)}}}}	;var i=function() {	for(var m=0,l;	l=b[m];m++) {if(l.t!=c) {	a.Events.removeListener(l.o,l.t,l.l)}}}	;var f=function() {if(h.readyState=="interactive") {function l() {	h.detachEvent(j,l);	i()}	h.attachEvent(j,l);k.setTimeout(function() {	h.detachEvent(j,l)}	, 0)}}	;if(d||g) {(function() {try {if((d&&h.body)||!/loaded|complete/.test(h.readyState)) {	h.documentElement.doScroll("left")}}catch(m) {	return setTimeout(arguments.callee,0)}	for(var l=0,m;	m=b[l];l++) {if(m.t==c) {	m.l.call(null)}}}	)()}if(d) {	k.attachEvent("onbeforeunload",f)}	this.addListener(k,"unload",i)}	;asual.util.Functions=new function() {this.toString=function() {	return"[class Functions]"}	;this.bind=function(f,b,e) {	for(var c=2,d,a=[];	d=arguments[c];c++) {	a.push(d)}return function() {	return f.apply(b,a)}}}	;var SWFAddressEvent=function(d) {this.toString=function() {	return"[object SWFAddressEvent]"}	;	this.type=d;	this.target=[SWFAddress][0];	this.value=SWFAddress.getValue();	this.path=SWFAddress.getPath();	this.pathNames=SWFAddress.getPathNames();this.parameters= {}	;	var c=SWFAddress.getParameterNames();	for(var b=0,a=c.length;	b<a;b++) {	this.parameters[c[b]]=SWFAddress.getParameter(c[b])}	this.parameterNames=c}	;	SWFAddressEvent.INIT="init";	SWFAddressEvent.CHANGE="change";var SWFAddress=new function() {var _getHash=function() {	var index=_l.href.indexOf("#");	return index!=-1?_ec(_dc(_l.href.substr(index+1))): ""}	;var _getWindow=function() {try {	top.document;	return top}catch(e) {	return window}}	;var _strictCheck=function(value,force) {if(_opts.strict) {	value=force?(value.substr(0,1)!="/"?"/"+value: value): (value==""?"/": value)}	return value}	;var _ieLocal=function(value,direction) {	return(_msie&&_l.protocol=="file: ")?(direction?_value.replace(/\?/,"%3F"): _value.replace(/%253F/,"?")): value}	;var _searchScript=function(el) {	for(var i=0,l=el.childNodes.length,s;	i<l;i++) {if(el.childNodes[i].src) {	_url=String(el.childNodes[i].src)}if(s=_searchScript(el.childNodes[i])) {	return s}}}	;var _titleCheck=function() {if(_d.title!=_title&&_d.title.indexOf("#")!=-1) {	_d.title="StillinMotion"}}	;var _listen=function() {if(!_silent) {	var hash=_getHash();	var diff=!(_value==hash);if(_safari&&_version<523) {if(_length!=_h.length) {	_length=_h.length;if(typeof _stack[_length-1]!=UNDEFINED) {	_value=_stack[_length-1]}	_update.call(this)}}else {if(_msie&&diff) {if(_version<7) {	_l.reload()}else {	this.setValue(hash)}}else {if(diff) {	_value=hash;	_update.call(this)}}}if(_msie) {	_titleCheck.call(this)}}}	;var _bodyClick=function(e) {if(_popup.length>0) {	var popup=window.open(_popup[0],_popup[1],eval(_popup[2]));if(typeof _popup[3]!=UNDEFINED) {	eval(_popup[3])}}	_popup=[]}	;var _swfChange=function() {	for(var i=0,id,obj,value=SWFAddress.getValue(), setter="setSWFAddressValue";	id=_ids[i];i++) {	obj=document.getElementById(id);if(obj) {if(obj.parentNode&&typeof obj.parentNode.so!=UNDEFINED) {	obj.parentNode.so.call(setter,value)}else {if(!(obj&&typeof obj[setter]!=UNDEFINED)) {	var objects=obj.getElementsByTagName("object");	var embeds=obj.getElementsByTagName("embed");	obj=((objects[0]&&typeof objects[0][setter]!=UNDEFINED)?objects[0]: ((embeds[0]&&typeof embeds[0][setter]!=UNDEFINED)?embeds[0]: null))}if(obj) {	obj[setter](value)}}}else {if(obj=document[id]) {if(typeof obj[setter]!=UNDEFINED) {	obj[setter](value)}}}}}	;var _jsDispatch=function(type) {	this.dispatchEvent(new SWFAddressEvent(type));	type=type.substr(0,1).toUpperCase()+type.substr(1);if(typeof this["on"+type]==FUNCTION) {	this["on"+type]()}}	;var _jsInit=function() {if(_util.Browser.isSafari()) {	_d.body.addEventListener("click",_bodyClick)}	_jsDispatch.call(this,"init")}	;var _jsChange=function() {	_swfChange();	_jsDispatch.call(this,"change")}	;var _update=function() {	_jsChange.call(this);	_st(_functions.bind(_track,this), 10)}	;var _track=function() {	var value=(_l.pathname+(/\/$/.test(_l.pathname)?"": "/")+this.getValue()).replace(/\/\//,"/").replace(/^\/$/,"");	var fn=window[_opts.tracker];if(typeof fn==FUNCTION) {	fn(value)}else {if(typeof pageTracker!=UNDEFINED&&typeof pageTracker._trackPageview==FUNCTION) {	pageTracker._trackPageview(value)}else {if(typeof urchinTracker==FUNCTION) {	urchinTracker(value)}}}}	;var _htmlWrite=function() {	var doc=_iframe.contentWindow.document;	doc.open();	doc.write("<html><head><title>StillinMotion</title><script>var "+ID+' = "'+_getHash()+'";	<\/script></head></html>');	doc.close()}	;var _htmlLoad=function() {	var win=_iframe.contentWindow;	var src=win.location.href;	_value=(typeof win[ID]!=UNDEFINED?win[ID]: "");if(_value!=_getHash()) {	_update.call(SWFAddress);	_l.hash=_ieLocal(_value,true)}}	;var _load=function() {if(!_loaded) {	_loaded=true;if(_msie&&_version<8) {	var iframe='<iframe id="'+ID+'" src="javascript: false;	" width="0" height="0"></iframe>';	_d.body.innerHTML=iframe+_d.body.innerHTML;	_iframe=_d.getElementById(ID);_st(function() {	_events.addListener(_iframe,"load",_htmlLoad);if(typeof _iframe.contentWindow[ID]==UNDEFINED) {	_htmlWrite()}}	, 50)}else {if(_safari) {if(_version<418) {	_d.body.innerHTML+='<form id="'+ID+'" style="position: absolute;	top: -9999px;	" method="get"></form>';	_form=_d.getElementById(ID)}if(typeof _l[ID]==UNDEFINED) {_l[ID]= {}}if(typeof _l[ID][_l.pathname]!=UNDEFINED) {	_stack=_l[ID][_l.pathname].split(",")}}}_st(_functions.bind(function() {	_jsInit.call(this);	_jsChange.call(this);	_track.call(this)}	, this), 1);if(_msie&&_version>=8) {	_d.body.onhashchange=_functions.bind(_listen,this);	_si(_functions.bind(_titleCheck,this), 50)}else {	_si(_functions.bind(_listen,this), 50)}}}	;var ID="swfaddress", FUNCTION="function", UNDEFINED="undefined", _util=asual.util, _browser=_util.Browser, _events=_util.Events, _functions=_util.Functions, _version=_browser.getVersion(), _msie=_browser.isMSIE(), _mozilla=_browser.isMozilla(), _opera=_browser.isOpera(), _safari=_browser.isSafari(), _supported=false, _t=_getWindow(), _d=_t.document, _h=_t.history, _l=_t.location, _si=setInterval, _st=setTimeout, _dc=decodeURI, _ec=encodeURI, _iframe, _form, _url, _title=_d.title, _length=_h.length, _silent=false, _loaded=false, _justset=true, _juststart=true, _ref=this, _stack=[], _ids=[], _popup=[], _listeners= {}, _value=_getHash(), _opts= {	history: true, strict: true}	;	_supported=(_mozilla&&_version>=1)||(_msie&&_version>=6)||(_opera&&_version>=9.5)||(_safari&&_version>=312);if(_supported) {	for(var i=1;	i<_length;i++) {	_stack.push("")}	_stack.push(_getHash());if(_msie&&_l.hash!=_getHash()) {	_l.hash="#"+_ieLocal(_getHash(), true)}if(_opera) {	history.navigationMode="compatible"}	_searchScript(document);	var _qi=_url.indexOf("?");if(_url&&_qi>-1) {	var param, params=_url.substr(_qi+1).split("&");	for(var i=0,p;	p=params[i];i++) {	param=p.split("=");if(/^(history|strict)$/.test(param[0])) {	_opts[param[0]]=(isNaN(param[1])?/^(true|yes)$/i.test(param[1]): (parseInt(param[1])!=0))}if(/^tracker$/.test(param[0])) {	_opts[param[0]]=param[1]}}}if(_msie) {	_titleCheck.call(this)}if(window==_t) {	_events.addListener(document,"DOMContentLoaded",_functions.bind(_load,this))}	_events.addListener(_t,"load",_functions.bind(_load,this))}else {if((!_supported&&_l.href.indexOf("#")!=-1)||(_safari&&_version<418&&_l.href.indexOf("#")!=-1&&_l.search!="")) {	_d.open();	_d.write('<html><head><meta http-equiv="refresh" content="0;	url='+_l.href.substr(0,_l.href.indexOf("#"))+'" /></head></html>');	_d.close()}else {	_track()}}this.toString=function() {	return"[class SWFAddress]"}	;this.back=function() {	_h.back()}	;this.forward=function() {	_h.forward()}	;this.up=function() {	var path=this.getPath();	this.setValue(path.substr(0,path.lastIndexOf("/",path.length-2)+(path.substr(path.length-1)=="/"?1: 0)))}	;this.go=function(delta) {	_h.go(delta)}	;this.href=function(url,target) {	target=typeof target!=UNDEFINED?target: "_self";if(target=="_self") {	self.location.href=url}else {if(target=="_top") {	_l.href=url}else {if(target=="_blank") {	window.open(url)}else {	_t.frames[target].location.href=url}}}}	;this.popup=function(url,name,options,handler) {try {	var popup=window.open(url,name,eval(options));if(typeof handler!=UNDEFINED) {	eval(handler)}}catch(ex) {}	_popup=arguments}	;this.getIds=function() {	return _ids}	;this.getId=function(index) {	return _ids[0]}	;this.setId=function(id) {	_ids[0]=id}	;this.addId=function(id) {	this.removeId(id);	_ids.push(id)}	;this.removeId=function(id) {	for(var i=0;	i<_ids.length;i++) {if(id==_ids[i]) {	_ids.splice(i,1);	break}}}	;this.addEventListener=function(type,listener) {if(typeof _listeners[type]==UNDEFINED) {	_listeners[type]=[]}	_listeners[type].push(listener)}	;this.removeEventListener=function(type,listener) {if(typeof _listeners[type]!=UNDEFINED) {	for(var i=0,l;	l=_listeners[type][i];i++) {if(l==listener) {	break}}	_listeners[type].splice(i,1)}}	;this.dispatchEvent=function(event) {if(this.hasEventListener(event.type)) {	event.target=this;	for(var i=0,l;	l=_listeners[event.type][i];i++) {	l(event)}	return true}	return false}	;this.hasEventListener=function(type) {	return(typeof _listeners[type]!=UNDEFINED&&_listeners[type].length>0)}	;this.getBaseURL=function() {	var url=_l.href;if(url.indexOf("#")!=-1) {	url=url.substr(0,url.indexOf("#"))}if(url.substr(url.length-1)=="/") {	url=url.substr(0,url.length-1)}	return url}	;this.getStrict=function() {	return _opts.strict}	;this.setStrict=function(strict) {	_opts.strict=strict}	;this.getHistory=function() {	return _opts.history}	;this.setHistory=function(history) {	_opts.history=history}	;this.getTracker=function() {	return _opts.tracker}	;this.setTracker=function(tracker) {	_opts.tracker=tracker}	;this.getTitle=function() {	return _d.title}	;this.setTitle=function(title) {if(!_supported) {	return null}if(typeof title==UNDEFINED) {	return}if(title=="null") {	title=""}	title=_dc(title);_st(function() {	_title=_d.title=title;if(_juststart&&_iframe&&_iframe.contentWindow&&_iframe.contentWindow.document) {	_iframe.contentWindow.document.title=title;	_juststart=false}if(!_justset&&_mozilla) {	_l.replace(_l.href.indexOf("#")!=-1?_l.href: _l.href+"#")}	_justset=false}	, 50)}	;this.getStatus=function() {	return _t.status}	;this.setStatus=function(status) {if(!_supported) {	return null}if(typeof status==UNDEFINED) {	return}if(status=="null") {	status=""}	status=_dc(status);if(!_safari) {	status=_strictCheck((status!="null")?status: "", true);if(status=="/") {	status=""}if(!(/http(s)?:\/\//.test(status))) {	var index=_l.href.indexOf("#");	status=(index==-1?_l.href: _l.href.substr(0,index))+"#"+status}	_t.status=status}}	;this.resetStatus=function() {	_t.status=""}	;this.getValue=function() {if(!_supported) {	return null}	return _dc(_strictCheck(_ieLocal(_value,false), false))}	;this.setValue=function(value) {if(!_supported) {	return null}if(typeof value==UNDEFINED) {	return}if(value=="null") {	value=""}	value=_ec(_dc(_strictCheck(value,true)));if(value=="/") {	value=""}if(_value==value) {	return}	_justset=true;	_value=value;	_silent=true;	_update.call(SWFAddress);	_stack[_h.length]=_value;if(_safari) {if(_opts.history) {	_l[ID][_l.pathname]=_stack.toString();	_length=_h.length+1;if(_version<418) {if(_l.search=="") {	_form.action="#"+_value;	_form.submit()}}else {if(_version<523||_value=="") {	var evt=_d.createEvent("MouseEvents");	evt.initEvent("click",true,true);	var anchor=_d.createElement("a");	anchor.href="#"+_value;	anchor.dispatchEvent(evt)}else {	_l.hash="#"+_value}}}else {	_l.replace("#"+_value)}}else {if(_value!=_getHash()) {if(_opts.history) {	_l.hash="#"+_ieLocal(_value,true)}else {	_l.replace("#"+_value)}}}if((_msie&&_version<8)&&_opts.history) {	_st(_htmlWrite,50)}if(_safari) {_st(function() {	_silent=false}	, 1)}else {	_silent=false}}	;this.getPath=function() {	var value=this.getValue();	var value=SWFAddress.getValue();if(value.indexOf("?")!=-1) {	return value.split("?")[0]}else {if(value.indexOf("#")!=-1) {	return value.split("#")[0]}else {	return value}}}	;this.getPathNames=function() {	var path=this.getPath();	var names=path.split("/");if(path.substr(0,1)=="/"||path.length==0) {	names.splice(0,1)}if(path.substr(path.length-1,1)=="/") {	names.splice(names.length-1,1)}	return names}	;this.getQueryString=function() {	var value=this.getValue();	var index=value.indexOf("?");	return(index!=-1&&index<value.length)?value.substr(index+1): ""}	;this.getParameter=function(param) {	var value=this.getValue();	var index=value.indexOf("?");if(index!=-1) {	value=value.substr(index+1);	var params=value.split("&");	var p, i=params.length;while(i--) {	p=params[i].split("=");if(p[0]==param) {	return p[1]}}}}	;this.getParameterNames=function() {	var value=this.getValue();	var index=value.indexOf("?");	var names=[];if(index!=-1) {	value=value.substr(index+1);if(value!=""&&value.indexOf("=")!=-1) {	var params=value.split("&");	var i=0;while(i<params.length) {	names.push(params[i].split("=")[0]);	i++}}}	return names}	;	this.onInit=null;	this.onChange=null;(function() {	var _args;if(typeof FlashObject!=UNDEFINED) {	SWFObject=FlashObject}if(typeof SWFObject!=UNDEFINED&&SWFObject.prototype&&SWFObject.prototype.write) {	var _s1=SWFObject.prototype.write;SWFObject.prototype.write=function() {	_args=arguments;if(this.getAttribute("version").major<8) {	this.addVariable("$swfaddress",SWFAddress.getValue());	((typeof _args[0]=="string")?document.getElementById(_args[0]): _args[0]).so=this}	var success;if(success=_s1.apply(this,_args)) {	_ref.addId(this.getAttribute("id"))}	return success}}if(typeof swfobject!=UNDEFINED) {	var _s2r=swfobject.registerObject;swfobject.registerObject=function() {	_args=arguments;	_s2r.apply(this,_args);	_ref.addId(_args[0])}	;	var _s2c=swfobject.createSWF;swfobject.createSWF=function() {	_args=arguments;	_s2c.apply(this,_args);	_ref.addId(_args[0].id)}	;	var _s2e=swfobject.embedSWF;swfobject.embedSWF=function() {	_args=arguments;if(typeof _args[8]==UNDEFINED) {_args[8]= {}}if(typeof _args[8].id==UNDEFINED) {	_args[8].id=_args[1]}	_s2e.apply(this,_args);	_ref.addId(_args[8].id)}}if(typeof UFO!=UNDEFINED) {	var _u=UFO.create;UFO.create=function() {	_args=arguments;	_u.apply(this,_args);	_ref.addId(_args[0].id)}}if(typeof AC_FL_RunContent!=UNDEFINED) {	var _a=AC_FL_RunContent;AC_FL_RunContent=function() {	_args=arguments;	_a.apply(this,_args);	for(var i=0,l=_args.length;	i<l;i++) {if(_args[i]=="id") {	_ref.addId(_args[i+1])}}}}}	)()}	;
