/*****************************************************************************
* 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' && typeof Function.call != '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().execute();
		//alert('body');
		//alert(document.body.innerHTML);
	}
	
	domStyle.parentNode.removeChild(domStyle);
}