// for use with "swfobject.createSWF" -- swfobject will do this automatically during a "swfobject.embedSwf"
function getFlashVars(flashvarsObj) {
if(typeof flashvarsObj != "object") return false;
var flashVars = "";

for(var i in flashvarsObj) {
if(flashvarsObj[i] != Object.prototype[i]) { // Filter out prototype additions from other potential libraries
if(flashVars != "") {
flashVars += "&" + i + "=" + flashvarsObj[i];
} else {
flashVars = i + "=" + flashvarsObj[i];
}
}
}
//doLog("getFlashVars1: "+flashVars);
return flashVars;
}

function doAttachDiv(targetId, newId) {
if(targetId == null || newId == null) return;

var targetDiv = document.getElementById(targetId);
if(targetDiv == null) return;

var newDiv = document.createElement('div');
if(newDiv == null) return;
newDiv.id = newId;

// remove all child nodes. innerHtml == bad for IE6
/* IE 6 error?
while (targetDiv.childNodes[0]) {
targetDiv.removeChild(targetDiv.childNodes[0]);
}
*/
doRemoveChildNodes(targetDiv);
targetDiv.appendChild(newDiv);
}

function doRemoveChildNodes(obj) {
while(obj.hasChildNodes()) {
obj.removeChild(obj.firstChild);
//obj.removeChild(obj.childNodes[0]);
}
}

function initPageRedraw() {
return;
if(typeof(swfobject) == 'undefined') return;
swfobject.addDomLoadEvent(doPageRedraw);
}

function doPageRedraw(objId) {
return;
objId = objId && (typeof objId == "string") ? objId : "SwfObjectPageRefresher";

var oldDiv = document.getElementById(objId);
if(oldDiv != null) {
oldDiv.style.visibility = "visible";
oldDiv.style.display = "none";
oldDiv.style.display = "block";
doLog("!doPageRedraw: reset: "+objId+" | "+oldDiv.style.visibility+" | "+oldDiv.style.display);
return;
}

doLog("!doPageRedraw: create");
var newDiv = document.createElement("div");
newDiv.id = "SwfObjectPageRefresher";
document.getElementsByTagName("body")[0].appendChild(newDiv);
}

function doLog() {
/*
if(window == null || (typeof window.console == "undefined")) return false;
if(typeof window.console.debug != "undefined") {
window.console.debug.apply(window.console, arguments);
} else if(typeof window.console.log != "undefined") {
window.console.log.apply(window.console, arguments);
}*/
}

function doSwfObjectEmbed(swfObj) {
if(!swfObj) return;

if(!swfObj.validVersion && !swfObj.express) {
doLog("doSwfObjectEmbed: incompatible client version: requires: "+swfObj.version);
if(swfObj.redirectUrl) { window.location.href = swfObj.redirectUrl; }
// else alt content
} else if(swfObj.delayEmbed) {
doLog("doSwfObjectEmbed: SwfObject output interrupted - geoLock or haltWrite enabled: "+swfObj.id);
} else {
doAttachDiv(swfObj.div, swfObj.id);

swfobject.embedSWF(swfObj.flashSrc, swfObj.id, swfObj.width,
swfObj.height, swfObj.version, swfObj.expressUrl,
swfObj.flashvars, swfObj.params, swfObj.attributes);

doLog("doSwfObjectEmbed: embed swf: "+swfObj.id);
}
}

function doSwfObjectEmbedDelayed(swfObj) {
if(!swfObj || !swfObj.delayEmbed) {
doLog("doSwfObjectEmbedDelayed: launchSwf: display alt content");
return;
}

if(!swfObj.validVersion && swfObj.express) {
swfObj.flashvars = {
MMredirectURL:window.location,
MMdoctitle:document.title
};
swfObj.attributes.data = swfObj.expressUrl;
} else {
swfObj.attributes.data = swfObj.validVersion ? swfObj.flashSrc : swfObj.expressUrl;
}

swfObj.attributes.height = swfObj.height;
swfObj.attributes.width = swfObj.width;
swfObj.params.flashvars = getFlashVars(swfObj.flashvars);
//swfObj.flashvars = false;

if(swfObj.validVersion || swfObj.express) {
doAttachDiv(swfObj.div, swfObj.id);

swfobject.createSWF(swfObj.attributes, swfObj.params, swfObj.id);
doPageRedraw(swfObj.id);
doLog("doSwfObjectEmbedDelayed: create swf: "+swfObj.id+" | "+swfObj.attributes.data);
} else {
doLog("doSwfObjectEmbedDelayed: alt content: "+swfObj.id+" | "+swfObj.attributes.data);
} // else alt content
}


