/**
 * SWFAddress v1.1: Deep linking for Flash - http://www.asual.com/swfaddress/
 *
 * SWFAddress is (c) 2006 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 _1			=navigator.userAgent;
	this.supported	=false;
	this.ie			=false;
	this.gecko		=false;
	this.safari		=false;
	this.opera		=false;
	this.version	=-1;
	
	if(/MSIE/.test(_1))
	{
		this.ie			=true;
		this.version	=parseFloat(_1.substring(_1.indexOf("MSIE")+4));
		this.supported	=this.version>=6;
	
	}else
	{
		if(/AppleWebKit/.test(_1))
		{	
			this.safari		=true;
			this.version	=parseFloat(_1.substring(_1.indexOf("Safari")+7));
			this.supported	=this.version>=312;
			
		}else
		{
			if(/Opera/.test(_1))
			{
				
				this.opera		=true;
				this.version	=parseFloat(navigator.appVersion);
				this.supported	=this.version>=9.02;
				
			}else
			{	
				if(/Firefox/.test(_1))
				{		
					this.gecko		=true;
					this.version	=parseFloat(_1.substring(_1.indexOf("Firefox")+8));
					this.supported	=this.version>=1;
			
			}else
			{	
				if(/Camino/.test(_1))
				{	
					this.gecko		=true;
					this.version	=parseFloat(_1.substring(_1.indexOf("Camino")+7));
					this.supported	=this.version>=1;
					
				}else
				{
					if(/Netscape/.test(_1))
					{	
						this.gecko		=true;
						this.version	=parseFloat(_1.substring(_1.indexOf("Netscape")+9));
						this.supported	=this.version>=8;
						
					}else
					{	
						if(/Mozilla/.test(_1)&&/rv:/.test(_1))
						{	
							this.gecko		=true;
							this.version	=parseFloat(_1.substring(_1.indexOf("rv:")+3));
							this.supported	=this.version>=1.8;
						}
					}
				}
			}
		}
	}
}

if(!this.supported&&top.location.href.indexOf("#")!=-1)
{
	document.open();
	document.write("<html><head><meta http-equiv=\"refresh\" content=\"0;url="+top.location.href.substr(0,top.location.href.indexOf("#"))+"\" /></head></html>");
	document.close();
}
};

asual.util.Functions=new function()
{
	this.extend=function(_2,_3)
	{	
		function inheritance(){}inheritance.prototype=_2.prototype;
		_3.prototype=new inheritance();
		_3.prototype.constructor=_3;
		_3.superConstructor=_2;
		_3.superClass=_2.prototype;
		return _3;
	};
	
	this.bindAsListener=function(_4,_5,_6)
	{
		return function(_7)
		{
			return _4.call(_5,_7||((_6)?_6.event:window.event));
		};
	};
};

asual.util.Events=new function()
{
	var _8=new Array();
	
	this.addListener=function(_9,_a,_b)
	{
		if(_9.addEventListener)
		{
			_9.addEventListener(_a,_b,false);
		}else
		{
			if(_9.attachEvent)
			{
				_9.attachEvent("on"+_a,_b);
			}else
			{
				_9["on"+_a]=_b;
			}
		}
		_8.push({o:_9,t:_a,l:_b});
	};
	
	this.removeListener=function(_c,_d,_e)
	{	
		if(_c.removeEventListener)
		{	
			_c.removeEventListener(_d,_e,false);
			
		}else
		{	
			if(_c.detachEvent)
			{
				_c.detachEvent("on"+_d,_e);
			}else
			{
				_c["on"+_d]=_e;
			}
		}
	};
	
	var _f=function()
	{
		for(var i=0,evt;evt=_8[i];i++)
		{
			asual.util.Events.removeListener(evt.o,evt.t,evt.l);
		}
	};
	
	if(asual.util.Browser.ie||asual.util.Browser.safari)
	{
		this.addListener(window,"unload",asual.util.Functions.bindAsListener(_f,this));
	}
};

asual.SWFAddress=new function()
{
	var _12=asual.util.Browser;
	var _13=_12.supported;
	var _14,_15;
	var _16,_17,_18=false;
	var _19=document.title;
	var _1a=history.length;
	var _1b=new Array();
	var js="swfaddress.js";
	var _1d="swfaddress.html";
	var _1e=function()
	{
		var _1f=top.location.href.indexOf("#");
		if(_1f!=-1)
		{
			return top.location.href.substring(_1f);
		}
		return "";
	};
	
	var _20=_1e();
	var _21=function()
	{
		if(_12.safari)
		{
			if(_1a!=history.length&&!_18)
			{
				_1a=history.length;
				
				if(typeof _1b[_1a-1]!="undefined")
				{
					_20=_1b[_1a-1];}_22();
				}
			}else
			{
				if(_12.ie)
				{
					if(_20!=_1e())
					{
						if(_12.version<7)
						{
							top.location.reload();
						}else
						{
							asual.SWFAddress.setValue(_1e().replace(/#/g,""));
						}
					}
					
					if(top.document.title!=_19)
					{
						asual.SWFAddress.setTitle(_19);
					}
					
				}else
				{
					if(_20!=top.location.hash)
					{
						_20=top.location.hash;_22();
					}
				}
			}
		};
		
		var _22=function()
		{
			var _23=_20.replace(/#/g,"");
			
			if(_23!=_16)
			{
				_16=_23;
				
				var obj=document[_17]||document.getElementById(_17);
				if(obj)
				{
					obj.setSWFAddressValue(_23);
				}
			}
		};
		
		var _25=function()
		{
			if(_14.contentWindow&&_14.contentWindow.location)
			{
				var win=_14.contentWindow;
				win.document.title=top.document.title=_19;
				var src=win.location.href;
				
				if(src.indexOf("?")>-1)
				{
					_20="#"+src.substring(src.indexOf("?")+1);
				}else
				{
					_20="#";
				}
				
				if(_20!=_1e())
				{
					_22();
					top.location.hash=_20;
				}
			}
		};
		
		var _28=function()
		{
			if(_12.ie||_12.safari)
			{
				var _29=document.createElement("div");
				_29.id="swfaddress";
				
				var _2a=document.getElementsByTagName("script");
				
				for(var i=0,s;s=_2a[i];i++)
				{
					if(s.src.indexOf(js)>-1)
					{
						_1d=(new String(s.src)).replace(js,_1d);
					}
				}
				
				_29.innerHTML="<iframe id=\"swfaddress-iframe\" src=\""+_1d+_1e().replace(/#/g,"?")+"\" frameborder=\"no\" scrolling=\"no\"></iframe>";
				document.body.appendChild(_29);
				_29.style.position="absolute";
				_29.style.left=_29.style.top="-9999px";
				_14=_29.getElementsByTagName("iframe")[0];
			}
			
			if(_12.ie)
			{
				asual.util.Events.addListener(_14,"load",asual.util.Functions.bindAsListener(_25,this));
			}
			
			if(_12.safari)
			{
				_15=document.createElement("form");
				_15.id="swfaddress-form";
				_15.method="get";
				_29.appendChild(_15);
				
				if(typeof top.document.location.swfaddress=="undefined")
				{
					top.document.location.swfaddress=new Object();
				}
				
				if(typeof top.document.location.swfaddress.history!="undefined")
				{
					_1b=top.document.location.swfaddress.history.split(",");
				}
			}
			
			_2d.call(this);
			_22.call(this);
			setInterval(_21,50);
		};
		
		var _2d=function()
		{
			if(typeof urchinTracker!="undefined")
			{
				var _2e=top.location.pathname+this.getValue();
				_2e=_2e.replace(/\/\//,"/");
				_2e=_2e.replace(/^\/$/,"");
				urchinTracker(_2e);
			}
		};
		
		this.getId=function()
		{
			if(!_13)
			{
				return null;
			}
			
			return _17;
		};
		
		this.setId=function(id)
		{
			if(!_13)
			{
				return null;
			}_17=id;
		};
		
		this.getTitle=function()
		{
			if(!_13)
			{
				return null;
			}
			
			return top.document.title;
		};
		
		this.setTitle=function(_30)
		{
			if(!_13)
			{
				return null;
			}
			
			if(_30=="null")
			{
				_30="";
			}
			
			if(typeof _30!="undefined")
			{
				_19=_30;top.document.title=_19;
			}
		};
		
		this.getStatus=function()
		{
			if(!_13)
			{
				return null;
			}
			return top.status;
		};
		
		this.setStatus=function(_31)
		{
			if(!_13)
			{
				return null;
			}
			
			if(!_12.safari)
			{
				if(_31=="null"||typeof _31=="undefined")
				{
					_31="";
				}
				
				var _32=top.location.href.indexOf("#");
				
				if(_32==-1)
				{
					_31=top.location.href+"#"+_31;
				}else
				{
					_31=top.location.href.substr(0,_32)+"#"+_31;
				}
				
				top.status=_31;
			}
		};
		
		this.resetStatus=function()
		{
			top.status="";
		};
		
		this.getValue=function()
		{
			if(!_13)
			{
				return null;
			}
			
			var _33=_20.replace(/#/gi,"");
			return _33;
		};
		
		this.setValue=function(_34)
		{
			if(!_13)
			{
				return null;
			}
			
			if(_34=="null")
			{
				_34="";
			}
			
			if(_16==_34)
			{
				return;
			}
			
			var _35;
			var obj=document[_17]||document.getElementById(_17);
			
			if(obj)
			{
				_35=obj.getSWFAddressValue();
				
				if(_35=="null")
				{
					_35="";
				}
			}
			
			_20="#"+_34;
			
			if(_35==_34)
			{
				_16=_34;_22();
			}else
			{
				_22();
				_16=_34;
			}
			
			if(_12.safari)
			{
				_15.action=_20;
				_1b[history.length]=_20;
				top.document.location.swfaddress.history=_1b.toString();
				_18=true;
				_1a=history.length+1;
				_15.submit();
				_18=false;
			}else
			{
				if(_35==_34)
				{
					top.location.hash=_20;
				}
			}
			
			if(_12.ie)
			{
				var win=_14.contentWindow;
				var _38="?"+_1e().substring(_20.indexOf("#")+1);
				win.location.assign(win.location.pathname+_38);
			}
			
			_2d.call(this);
		};
			
		if(!_13)
		{
			return;
		}
		
		if(_12.safari)
		{
			for(var i=1;i<_1a;i++)
			{
				_1b.push("");
			}
			
			_1b.push(top.location.hash);
		}
		
		if(_12.ie)
		{
			if(_20=="")
			{
				top.location.hash="#";
			}else
			{
				top.location.hash=_1e();
			}
		}
		
		asual.util.Events.addListener(window,"load",asual.util.Functions.bindAsListener(_28,this));
		_16=this.getValue();
	};
	
if(typeof deconcept!="undefined"&&deconcept.SWFObject)
{
	asual.SWFAddressObject=asual.util.Functions.extend(deconcept.SWFObject,
													   function(swf,id,w,h,ver,c,_40,_41,_42,_43)
													   {
														   asual.SWFAddressObject.superConstructor.apply(this,arguments);
														   asual.SWFAddress.setId(id);
														});
SWFObject=deconcept.SWFObject=asual.SWFAddressObject;
}

SWFAddress=asual.SWFAddress;
				
			
				
			