/*
activateActiveX
---------------
Purpose:  Dynamically replace any elements that will be affected by the new security feature in IE6/IE7 that requires a user to click certain types of elements to activate them before use.

Usage:  Include this file at the end of your html document using the following...
	<script language="JScript" type="text/jscript" src="activateActiveX.js"></script>
	


Since this script is in response to a software patent lawsuit, I feel it necessary to state the following...	

License:
activateActiveX is Copyright (C) 2006 Jason Baker (therippa AT gmail.com). It is available as open source code from:
http://therippa.blogspot.com

This program is 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 http://www.gnu.org/licenses/gpl.html
*/


if ( typeof aax == "undefined" ) aax = true;

//Determine browser, we only need this for Internet Explorer
if ( navigator.appName == "Microsoft Internet Explorer" && aax === true ) {

	//**Detection added for Mac IE or the script will crash it**
	var OS=navigator.platform.toLowerCase();
	var boolMac = OS.indexOf('mac') + 1;
	var boolFlashVars=false;
	var arrFlashVars=new Array();

	if (!boolMac) {
	//Array of elements to be replaced
	var arrElements = new Array(3);
	arrElements[0] = "object";
	arrElements[1] = "embed";
	arrElements[2] = "applet";

	//Loop over element types
	for (n = 0; n < arrElements.length; n++) {

		//set object for brevity
		replaceObj = document.getElementsByTagName(arrElements[n]);
		
		//loop over element objects returned
		for (i = 0; i < replaceObj.length; i++ ) {

			//**Detection added for ID attribute to manually play file**
			if (arrElements[n]=="object") {
					var flashID=replaceObj[i].getAttribute('id');
					if (flashID=="") {
						replaceObj[i].setAttribute('id','flashID');
						flashID=replaceObj[i].getAttribute('id');
					}
			}
			//set parent object for brevity
			parentObj = replaceObj[i].parentNode;

			for(var j=0;j<replaceObj[i].childNodes.length;j++) {
				if (replaceObj[i].childNodes[j].getAttribute('name').toLowerCase()=='flashvars') {
					boolFlashVars=true;
					arrFlashVars[i]=j;
				}
			}
			//grab the html inside of the element before removing it from the DOM
			newHTML = parentObj.innerHTML;
			
			if (boolFlashVars) {
				newHTML=newHTML.replace(/"FlashVars" value=""/gi,'"FlashVars" value="'+replaceObj[i].childNodes[arrFlashVars[i]].getAttribute("value")+'"');
				boolFlashVars=false;
			}

			//remove element from the DOM
			parentObj.removeChild(replaceObj[i]);

			//stick the element right back in, but as a new object
			parentObj.innerHTML = newHTML;
			
			//**play flash file**
			if (arrElements[n]=="object") {
				document.getElementById(flashID).Play();
			}
			}
		}
	}
}
	
