/**
	Frédéric Saunier
	http://www.tekool.net/javascript/backtothehtml

	This program is part of a free software; you can redistribute it and/or
	modify it under the terms of the GNU General Public License
	as published by the Free Software Foundation; either version 2
	of the License, or (at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program; if not, write to the Free Software
	Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

**/

if(typeof window.BackToTheHtml == 'undefined')
{
	/*****************************************************************************
	* BackToTheHtml Command
	*///**************************************************************************
	window.BackToTheHtml = function(domObject)
	{
		this.domObject = domObject;
	};
	window.BackToTheHtml.prototype.domObject = null;

	window.BackToTheHtml.prototype.execute = function()
	{
		this.activateObject();
	}

	window.BackToTheHtml.prototype.activateObject = function(domObject)
	{
		var activationObject;
		if((activationObject = this.getActivationObject(this.domObject)) != null)
			activationObject.execute();
	};

	window.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 window.ActivateObjectFlash(domObject);

			default :
				return null;
		}
	};

	window.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);
	};


	/*****************************************************************************
	* ActivateObject Command
	*///**************************************************************************
	window.ActivateObject = function(domObject)
	{
		this.domObject = domObject;
	}

	window.ActivateObject.prototype.domObject = null;
	window.ActivateObject.prototype.classid = null;
	window.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'];
	window.ActivateObject.prototype.aObjectProperty = null;

	window.ActivateObject.prototype.execute = function()
	{
		this.setTextHtml();
		this.createObject();

		this.xndObject = document.getElementById('BackToTheHtmlIdTemp');
		this.setSpecialProperties();
		this.removeOriginalObject();
	}

	window.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="BackToTheHtmlIdTemp" ' + '\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;
	};

	window.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.id != 'undefined' && this.domObject.id.toString() != '')
			this.xndObject.id = this.domObject.id;
	};

	window.ActivateObject.prototype.createObject = function()
	{
		document.write(this.textHtml);
		//alert(this.textHtml);
	};

	window.ActivateObject.prototype.removeOriginalObject = function()
	{
		this.domObject.parentNode.removeChild(this.domObject);
	};

	/*****************************************************************************
	* ActivateObjectFlash Command
	*///**************************************************************************
	window.ActivateObjectFlash = function(domObject)
	{
		window.ActivateObject.call(this,domObject);
	}
	window.ActivateObjectFlash.prototype = new 	window.ActivateObject;
	window.ActivateObjectFlash.prototype.aObjectProperty = ['FrameNum','Playing','Quality','Quality2','Scalemode','Scale','AlignMode','SAlign','BackgroundColor','BGColor','Loop','Movie','WMode','Base','DeviceFont','EmbedMovie','AllowScriptAccess'];
	window.ActivateObjectFlash.prototype.classid = 'D27CDB6E-AE6D-11CF-96B8-444553540000';
}

function BackToTheHtmlInsert()
{
	var id = BackToTheHtml.uniqueID('BackToTheHtml');
	document.write('<div id="' + id + '"></div>');
	var domDiv = document.getElementById(id);
	var domDivParent = domDiv.parentNode;

	for(var i=domDivParent.childNodes.length-1; i>=0; i--)
		if(domDivParent.childNodes[i].tagName == 'OBJECT')
			return new window.BackToTheHtml(domDivParent.childNodes[i]).execute();
}

if(typeof ActiveXObject != 'undefined')
	BackToTheHtmlInsert();
//alert(document.body.innerHTML);