	
	/*****************************************************************************
	* BackToTheHtml Command
	*///**************************************************************************
	function BackToTheHtml(node)
	{
		if(node == null)
			this.node = document; 
		else
			this.node = node; 
	};
	BackToTheHtml.prototype.node = null;
	
	BackToTheHtml.prototype.execute = function()
	{
		this.activateObject();
	}
	
	BackToTheHtml.prototype.activateObject = function(domObject)
	{
		var aDomObject = this.node.getElementsByTagName('object');
		var activationObject;
		for(var i=0; i<aDomObject.length; i++)
			if
			(
				aDomObject[i].getAttributeNode('BackToTheHtml') == null
				&&
				(activationObject = this.getActivationObject(aDomObject[i])) != null
			)
				activationObject.execute();
	};
	
	BackToTheHtml.prototype.getActivationObject = function(domObject)
	{
		var classid = domObject.classid.toUpperCase().substr('clsid:'.length);
		var mimeType = domObject.type.toLowerCase();
	
		switch(true)
		{
			case 
				classid == 'D27CDB6E-AE6D-11CF-96B8-444553540000' 
				||
				mimeType == 'application/x-shockwave-flash'
			:
				return new ActivateObjectFlash(domObject);
	
			default :
				return null;
		}
	};
	
	BackToTheHtml.uniqueID = function(prefix)
	{
		var sPrefix;
		if(prefix == null)
			sPrefix = 'uniqueId';
		else
			sPrefix = prefix;
			
		var i=0;
		while(document.getElementById(sPrefix + (i++)))
			;
		return sPrefix + (i-1);
	};
	
	BackToTheHtml.isParentOf = function(parent,child)
	{
		var found = false;
		for(var i=0; i<parent.childNodes.length; i++)
			if(parent.childNodes[i] == child)
				return true;
			else
				found = arguments.callee(parent.childNodes[i],child);
	
		return found;
	}
	
	/*****************************************************************************
	* ActivateObject Command
	*///**************************************************************************
	function ActivateObject(domObject)
	{
		this.domObject = domObject;
	}
	
	ActivateObject.prototype.domObject = null;
	ActivateObject.prototype.classid = null;
	ActivateObject.prototype.aHtmlAttribute = ['accessKey','align','alt','archive','border','code','codeBase','codeType','declare','dir','height','hideFocus','hspace','lang','language','name','standby','tabIndex','title','useMap','vspace','width'];
	ActivateObject.prototype.aObjectProperty = null;
	
	ActivateObject.prototype.execute = function()
	{
		this.xndObjectId = BackToTheHtml.uniqueID();
		this.setTextHtml();
		this.writeObject();
	
		this.xndObject = document.getElementById(this.xndObjectId);
		this.setSpecialProperties();
		this.removeOriginalObject();
	}
	
	ActivateObject.prototype.setTextHtml = function()
	{
		var str = '';
		str += '<object BackToTheHtml ' + '\n';
		str += ' classid="clsid:' + this.classid + '" ' + '\n';
	
		//Add HTML attributes to the <object> tag
		for(var i=0; i<this.aHtmlAttribute.length; i++)
		{
			var name = this.aHtmlAttribute[i];
			if(typeof this.domObject[name] != 'undefined' && this.domObject[name].toString() != '')
				str += '\t' + name + '="' + this.domObject[name].toString() + '" ' + '\n';
		}
	
		str += 'id="' + this.xndObjectId + '" ' + '\n';
		str += '>';
	
		for(var i=0; i<this.aObjectProperty.length; i++)
		{
			var name = this.aObjectProperty[i];
			if(typeof this.domObject[name] != 'undefined' && this.domObject[name].toString() != '' )
				str += '\t<param name="' + name + '" value="' + this.domObject[name].toString() + '"></param>' + '\n';
		}
		str += '</object>';
	
		this.textHtml = str;
	};
	
	ActivateObject.prototype.writeObject = function()
	{
		this.domObject.insertAdjacentHTML("afterEnd",this.textHtml);
	};
	
	ActivateObject.prototype.setSpecialProperties = function()
	{
		if(typeof this.domObject.className != 'undefined' && this.domObject.className.toString() != '')
			this.xndObject.className = this.domObject.className
	
		if(typeof this.domObject.style.cssText != 'undefined' && this.domObject.style.cssText.toString() != '')
			this.xndObject.style.cssText = this.domObject.style.cssText;
	
		if(typeof this.domObject.SWRemote != 'undefined' && this.domObject.SWRemote.toString() != '')
			this.xndObject.FlashVars = this.domObject.SWRemote;
	
		if(typeof this.domObject.codebase == 'undefined' || this.domObject.codebase.toString() == '')
			this.xndObject.codebase = 'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,24,0';
	
		if(typeof this.domObject.id != 'undefined' && this.domObject.id.toString() != '')
			this.xndObject.id = this.domObject.id;
	
	};
	
	ActivateObject.prototype.removeOriginalObject = function()
	{
		this.domObject.parentNode.removeChild(this.domObject);
	};
	
	/*****************************************************************************
	* ActivateObjectFlash Command
	*///**************************************************************************
	function ActivateObjectFlash(domObject)
	{
		ActivateObject.call(this,domObject);
	}
	ActivateObjectFlash.prototype = new ActivateObject;
	ActivateObjectFlash.prototype.aObjectProperty = ['FrameNum','Playing','Quality','Quality2','Scalemode','Scale','AlignMode','SAlign','BackgroundColor','BGColor','Loop','Movie','WMode','Base','DeviceFont','EmbedMovie','SWRemote','FlashVars','AllowScriptAccess'];
	ActivateObjectFlash.prototype.classid = 'D27CDB6E-AE6D-11CF-96B8-444553540000';
	
	
	/*****************************************************************************
	* Script initialisation
	*///**************************************************************************
	if(typeof ActiveXObject != 'undefined')
	{
		var styleId = BackToTheHtml.uniqueID();
		document.write('<style id="' + styleId + '" ></style>');
		var domStyle = document.getElementById(styleId);
	
		var isHead = false;
		var aHead = document.getElementsByTagName('head');
		for(var i=0; i<aHead.length; i++)
			if(BackToTheHtml.isParentOf(aHead[i],domStyle))
				isHead = true;
	
		if(isHead)
		{
			document.write('<style type="text/css">OBJECT{visibility:hidden;}</style>');
			document.onreadystatechange = function()
			{
				if(document.readyState == 'complete')
				{
					new BackToTheHtml().execute();
					document.styleSheets[document.styleSheets.length-1].addRule("OBJECT","visibility:visible;");
					//alert('head');
					//alert(document.body.innerHTML);
				}
			}
		}
		else
		{
			new BackToTheHtml(domStyle.parentNode).execute();
			//alert('body');
			//alert(document.body.innerHTML);
		}
		
		domStyle.parentNode.removeChild(domStyle);
	}