/*
*
* clx_scorm_communicator.js
* by Crealogix AG
* www.crealogix.com
* Version 1.0.0.20080709
* 
* 
* Univeral method for javascript->flash
* Supporting Browsers
*
* PC:
* IE 5 and higher
* Netscape 6 and higher
* Moz/Firebird all
* Opera 7 and higher
* 
* Mac OSX:
* IE 5.2
* Safari all
* Netscape 6 and higher
* Moz/Firebird/Camino all
* Opera 6 and higher
* 
* Linux:
* Konqueror assumed
*
*/

var ua        = navigator.userAgent.toLowerCase(); 
var is_pc_ie  = ( (ua.indexOf('msie') != -1 ) && ( ua.indexOf('win') != -1 ) && ( ua.indexOf('opera') == -1 ) && ( ua.indexOf('webtv') == -1 ) );

var _ComValue = "";
var _ComMovie = "wbt"

/*
* Function JSLMSInitialize(value) 
* Inputs:	none
* Return:	Boolean (via FlashSetValue):
*			-> _ComStatus:	true
*			-> _ComResult:	LMSInitialize() => true / false
*			-> _ComError:	LMSGetLastError()
*			-> _ComValue:	none
*
* Description:
* 
*/
function JSLMSInitialize() 
{
	// LMS Aufruf
	var result = LMSInitialize();
	var error = LMSGetLastError();
	FlashSetValue(_ComMovie,'_ComStatus=true&_ComResult='+result+'&_ComError='+error+'&_ComValue=');
}

/*
* Function JSLMSFinish() 
* Inputs:	none
* Return:	Boolean (via FlashSetValue):
*			-> _ComStatus:	true
*			-> _ComResult:	LMSFinish() => true / false
*			-> _ComError:	LMSGetLastError()
*			-> _ComValue:	none
*
* Description:
* 
*/
function JSLMSFinish() 
{
	// LMS Aufruf
	var result = LMSFinish();
	var error = LMSGetLastError();
	FlashSetValue(_ComMovie,'_ComStatus=true&_ComResult='+result+'&_ComError='+error+'&_ComValue=');
}

/*
* Function JSLMSCommit() 
* Inputs:	none
* Return:	Boolean (via FlashSetValue):
*			-> _ComStatus:	true
*			-> _ComResult:	LMSCommit() => true / false
*			-> _ComError:	LMSGetLastError()
*			-> _ComValue:	none
*
* Description:
* 
*/
function JSLMSCommit() 
{
	// LMS Aufruf
	var result = LMSCommit();
	var error = LMSGetLastError();
	FlashSetValue(_ComMovie,'_ComStatus=true&_ComResult='+result+'&_ComError='+error+'&_ComValue=');
}

/*
* Function JSLMSGetValue(value) 
* Inputs:	name:			Data Model Element
* Return:	Boolean (via FlashSetValue):
*			-> _ComStatus:	true
*			-> _ComResult:	JSLMSGetValue() => true / false
*			-> _ComError:	LMSGetLastError()
*			-> _ComValue:	LMSGetValue(name)
*
* Description:
* 
*/
function JSLMSGetValue(name) 
{
	// LMS Aufruf
	var value = LMSGetValue(name);
	var error = LMSGetLastError();
	var result = true;
	FlashSetValue(_ComMovie,'_ComStatus=true&_ComResult='+result+'&_ComError='+error+'&_ComValue='+value);
}

/*
* Function JSLMSSetValue(name) 
* Inputs:	name:			Data Model Element
* Return:	Boolean (via FlashSetValue):
*			-> _ComStatus:	true
*			-> _ComResult:	LMSSetValue() => true / false
*			-> _ComError:	LMSGetLastError()
*			-> _ComValue:	none
*
* Description:
* 
*/
function JSLMSSetValue(name) 
{
	// LMS Aufruf
	var result = LMSSetValue(name, _ComValue);
	var error = LMSGetLastError();
	_ComValue = "";
	FlashSetValue(_ComMovie,'_ComStatus=true&_ComResult='+result+'&_ComError='+error+'&_ComValue=');
}

/*
* Function JSSetValue(value) 
* Inputs:	value
* Return:	Boolean (via FlashSetValue):
*			-> _ComStatus:	true
*			-> _ComResult:	none
*			-> _ComError:	none
*			-> _ComValue:	none
*
* Description:
* 
*/
function JSSetValue(value) 
{
	_ComValue += value;
	FlashSetValue(_ComMovie,'_ComStatus=true&_ComResult=&_ComError=&_ComValue=');
}

/*
* Function FlashSetValue(movieid, flashquery) 
* Inputs:	movieid:		id of object tag, name of movieid passed in through FlashVars
*		    flashquery: 	querystring of values to set. example( var1=foo&var2=bar )
* Return:	none
*
* Description:
* 
*/
function FlashSetValue(movieid, flashquery){
	var i,values;
	if(is_pc_ie){
		var chunk = flashquery.split("&");
		for(i in chunk){
			values = chunk[i].split("=");
			// alert("yyyy setze Variablen mit document.SetVariable, Wert 1: "+values[0]+", Wert 2: "+values[1])
			document[movieid].SetVariable(values[0],values[1]);
		}
	}else{
		var divcontainer = "flash_setvariables_"+movieid;
		if(!document.getElementById(divcontainer)){
			var divholder = document.createElement("div");
			divholder.id = divcontainer;
			document.body.appendChild(divholder);
		}
		document.getElementById(divcontainer).innerHTML = "";
		var divinfo = "<embed src='../_framework/gateway.swf' FlashVars='lc="+movieid+"&fq="+escape(flashquery)+"' width='0' height='0' type='application/x-shockwave-flash'></embed>";
		document.getElementById(divcontainer).innerHTML = divinfo;
	}
}
