/************INSTRUCTIONS*******************
LOCK_OBJECT_PARAMS:
If set to true, PC IE 5.0 & 5.5 WON'T stream the movie, but all inner PARAM values are preserved.
If set to false, PC IE 5.0 & 5.5 WILL stream the movie, but specific inner PARAM values may be lost.

I would recommend keeping LOCK_OBJECT_PARAMS defaulted to true, and then set it to false if you verify that IE 5.0 & 5.5 preserve all PARAM's correctly
*******************************************/
var LOCK_OBJECT_PARAMS = true;




/************DO NOT EDIT BELOW THIS LINE*******************/
// Quicktime specific info
var qt = "video/quicktime application/sdp application/x-sdp application/x-rtsp audio/aiff audio/x-aiff image/x-quicktime";
var qt_class = "CLSID:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B";
// Java specific info
var jv = "application/x-java-applet application/x-java-bean";
var jv_class = "CLSID:8AD9C840-044E-11D1-B3E9-00805F499D93";
// Plugin Neutral Mime Types
var open_formats = "audio/mpeg audio/x-mpeg video/mpeg video/x-mpeg audio/wav audio/x-wav audio/midi audio/x-midi audio/mp4 audio/x-mp4 video/mp4 video/x-mp4";
var isQuickTimeInstalled = false;
document.writeln('<script type="text/vbscript">isQuickTimeInstalled = IsObject(CreateObject("QuickTime.QuickTime"))</scr'+'ipt>');
function printObject(obj){
	var out = "";
	for(var i in obj){
		out += i+" = "+obj[i]+"      ";
	}
	alert(out);
}
// fixPCObject() works by making all the changes on the current <object>, then makes a copy of it's outerHTML and overwrites it to re-initialize it.
function fixPCObject(old_obj){
	if(old_obj.getAttribute("data").length){
		old_obj.removeAttribute("data");
		var paramcopy = old_obj.altHtml;
		for(var i=0,params=old_obj.childNodes,j=params.length; i<j; i++){
			paramcopy += params[i].outerHTML;
			if(params[i].name.toLowerCase() == "iecodebase") old_obj.setAttribute("codebase", params[i].value);
		}
		if(qt.indexOf(old_obj.type) > -1 || (open_formats.indexOf(old_obj.type) > -1 && isQuickTimeInstalled)){
			old_obj.setAttribute("classid", qt_class);
			var new_obj = old_obj.outerHTML;
			var inter_obj = old_obj.outerHTML;
			var st = inter_obj.indexOf("data=");
			var new_obj = inter_obj.slice(0, st) + inter_obj.slice(inter_obj.indexOf(" ", st));
		}else if(jv.indexOf(old_obj.type) > -1){
			old_obj.setAttribute("classid", jv_class);
			var new_obj = old_obj.outerHTML;
		}else{
			var new_obj = old_obj.outerHTML;
		}
		if(typeof old_obj.declare != "undefined"){
			if(old_obj.innerHTML == ""){
				new_obj = new_obj.split("><").join(">"+paramcopy+"<");
			}else{
				new_obj = new_obj.split(old_obj.innerHTML).join(paramcopy);
			}
			//alert(new_obj);
			old_obj.outerHTML = new_obj;
		}else if(!LOCK_OBJECT_PARAMS){
			old_obj.outerHTML = new_obj;
		}
	}
}
// fixMacObject() works by inserting param values directly into the current <object>, then makes a copy of it's outerHTML and overwrites it to re-initialize it.
function fixMacObject(old_obj){
	for(var i=0,params=old_obj.childNodes,j=params.length; i<j; i++){
		if(params[i].nodeName == "PARAM") old_obj.setAttribute(params[i].name, params[i].value);
	}
	var obj_str = old_obj.outerHTML.split(old_obj.innerHTML).join("");
	var embed_str = obj_str.split("OBJECT").join("EMBED");
	var new_embed = embed_str.split(" data=").join(" src=");
	old_obj.outerHTML = new_embed;
}

var windowloaded = false;
var objectsfound = 0;
function scanDoc(){
	if(document.body != null){
		var objs = document.body.getElementsByTagName("object");
		for(var i=objectsfound; i<objs.length; i++) fixPCObject(objs[i]);
		objectsfound = objs.length;
	}
	if(windowloaded == false) window.setTimeout("scanDoc()", 50);
}
function windowDidLoad(){
	windowloaded = true;
	if(window.event && navigator.appVersion.indexOf("Macintosh") > -1){
		//alert("mac ie loaded");
		var objs = document.body.getElementsByTagName("object");
		for(var i=0; i<objs.length; i++) fixMacObject(objs[i]);
	}
}
// Win IE start scan interval
document.writeln('<script type="text/vbscript">call scanDoc</scr'+'ipt>');
document.writeln('<script for="window" event="onload">windowDidLoad()</scr'+'ipt>');
