//    DOES NOT WORK YET !!! When it does work this comment will be removed.

// derivative work of mustardlab.com, depends on x_dom.js and core,
// Flash Communicator 0.9.0 jimmont.com/resrc/FlaCom.htm
var xFlaQueue = new Array(), xFlaComStatus = 0, undefined, xFlaComListener = new Array(), flaIntV = (xIE4Up && xMac)? 300:100;
var scpts = xGetElementsByTagName('script', document);
var slen = scpts.length, xFlaComPath, fname = 'x_fla.js';
for(var i = 0; i < slen; i++){ if(scpts[i].src.indexOf(fname) != -1) xFlaComPath = scpts[i].src.substring(0, scpts[i].src.length - fname.length)}

	function xFlaCom(e, query){
xFlaQueue[xFlaQueue.length] = [arguments[0], arguments[1]];
if(!xFlaComListener[1]) xFlaComListener[0] = setInterval("xFlaProcess()", flaIntV), xFlaComListener[1] = 1;
	}

	function xFlaProcess() {
var len = xFlaQueue.length;
// not busy and queued item: send
if(!xFlaComStatus && len > 0) { xFlaComStatus = 1; xFlaDeliver(); }
// not busy and no items
else if(!xFlaComStatus && !len) { clearInterval(xFlaComListener[0]), xFlaComListener[1]=undefined; }
	}

	function xFlaDeliver(){
xFlaComStatus = 1; 
var e = xFlaQueue[0][0], query = xFlaQueue[0][1];
var el = xGetElementById(e), ix, flashquery;
xFlaQueue = xFlaQueue.slice(1);
// handle errors
self.onerror = function(errMsg) {
// gecko flash-plugin bug workaround
if(errMsg.search(/SetVariable is not a function/i) != -1) { return true;
} else { return false }
	}

var GeckoPass = (xGecko && document[e].SetVariable)? 1:0;
	if((xIE4Up && !xMac) || GeckoPass){
var chunk = query.split("&");
for(ix in chunk){ flashquery = chunk[ix].split("="); document[e].SetVariable(flashquery[0],flashquery[1]); }
	} else { doFlaIntermed() }

	function doFlaIntermed() {
		if(!xGetElementsByTagName('embed', el).length && el.nodeName.toLowerCase() != 'embed') {
var elembed = xCreateElement("div");
elembed.id = e;
elembed.style.display = 'inline';
// assume we have object & params with needed attributes
var attrlen = el.attributes.length, paramslen = el.childNodes.length, elattr = '';

for(var i = 0; i < attrlen; i++){ if(el.attributes[i].value != '') elattr += el.attributes[i].name + '="' + el.attributes[i].value + '" '; }
for(var i = 0; i < paramslen; i++){ if(el.childNodes[i].nodeName.toLowerCase() == 'param' && el.childNodes[i].value != '') {
	elattr += (el.childNodes[i].name == 'movie')? ' src':' '+el.childNodes[i].name;
	elattr += '="' + el.childNodes[i].value + '" ';
} }
xInnerHtml(elembed, '<embed '+elattr+'></embed>')
document.body.replaceChild(elembed, el);
el = xGetElementById(e);
		}

var flashId = "flash_setvariables_"+e;
	if(!document.getElementById(flashId)){
var flashDiv = xCreateElement("div");
flashDiv.id = flashId;
document.body.appendChild(flashDiv);
	}
xInnerHtml(flashId, "");
var divcontent = '<embed src="'+xFlaComPath+'xFlaCom.swf" FlashVars="lc='+e+'&fq='+escape(query)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
xInnerHtml(flashId, divcontent);
xFlaComStatus = 0;
return true;
}
xFlaComStatus = 0;
}
