
function writeFlash( o, e, p, replaceElm )
{
	var ostr = "<" + "object ";
	var estr = "<embed  ";
	var pstr = "";

	for(i in o)
		 ostr += " " + i + "=\""+ o[i] + "\""; 
	for(i in e)
		 estr += " " + i + "=\""+ e[i] + "\""; 
	for(i in p)
		 pstr += "<param name=\""+ i +"\" value=\"" + p[i] + "\" />";
	
	if(!document.getElementById(replaceElm))
		document.write(ostr + ">" + pstr + estr + "></embed></object" + ">");
	else
		document.getElementById(replaceElm).innerHTML =  ostr + ">" + pstr + estr + "></embed></object" + ">";
}

function getArgs(args){
	var ret = new Object();
	ret.obVals = new Object();
	ret.emVals = new Object();
	ret.params = new Object();
	
	
	var a = args;
	var len = (a.length%2 == 1)? a.length -1: a.length;
	for(i=0;i<len; i++){
		var attr = a[i++];
		var val = a[i];
		switch(attr){
			case "width":
			case "height":
				ret.obVals[attr] = val;
				ret.emVals[attr] = val;
				break;
			case "movie":
				ret.params["movie"] = val;
				ret.emVals["src"] =  val;
				break;
			case "id":
				ret.obVals[attr] = val;
				break;
			case "name":
				ret.emVals[attr] = val;
				break;
			default:
				ret.params[attr] = val;
				ret.emVals[attr] = val;
				break;
		}
	}
	ret.obVals["classid"] = "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000";
	ret.obVals["codebase"] = "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0";
	ret.emVals["type"] = "application/x-shockwave-flash";
	ret.emVals["pluginspage"] = "http://www.macromedia.com/go/getflashplayer";
	ret.params["quality"] = ret.emVals["quality"]  = "high";
	ret.params["play"] = ret.emVals["play"]  = "true";
	ret.params["scale"] = ret.emVals["scale"]  = "showall";
	return ret;
}

// writes the flash file directly to the page during loading
function setupFlash(){
	var r = getArgs(arguments);
	writeFlash(r.obVals, r.emVals, r.params, 0);
}

// swaps the flash out using DOM rather than writing to the page in line
// can be used to determine whether the user has flash first. text based content is shown as a default for search engines and users without flash or javascript
function replaceFlash(){
	var elmstr = (arguments[arguments.length - 1]);
	var r = getArgs(arguments);
	writeFlash(r.obVals, r.emVals, r.params, elmstr);
}

			
			
			
			 