
var lc_name;
var showURL;

function goToShow(showId, firstslide){

	var newRegExp = new RegExp("ss%3D[0-9]{1,}%","g");
	showURL = showURL.replace(newRegExp,"ss%3D"+showId+"%");

        var newRegExp = new RegExp("sl%3D[0-9]{1,}%","g");
        showURL = showURL.replace(newRegExp,"sl%3D0%");
			
	if(firstslide>0){
		var newRegExp = new RegExp("\&firstslide=[0-9]{1,}\&","g");
		showURL = showURL.replace(newRegExp,"&firstslide="+firstslide+"&");
	}
		
	if(2==1){
		mc.LoadMovie(0,showURL);
	}else{
		useFlashLC("loadMovie", showURL+"~_level0");
	}
}

function domainOfPage() {
	domainName = document.location.host;
	if(domainName.length<=0)
		domainName = 'not_found';
	return domainName;
}

function PAT_VHost_Embed_11626 (height, width, bgcolor, firstslide, loading, ss, sl, transparent, minimal, embedId, flashVersion) {

	flashVersion = flashVersion ? flashVersion : 5;
		
	lc_name = '1096298343256231';
	embedId = embedId==''?'nothing':embedId;
	domString = '&pageDomain='+domainOfPage();
	tokenString = '&token=c5667e5ee9b11d9fddb632b1b844de05';
	getShow = 'http%3A%2F%2Fvhost.oddcast.com%2Fgetshow.php%3Facc%3D11626'+escape('&ss='+ss+'&sl='+sl+'&embedid='+embedId);
	url = 'http://vhost.oddcast.com/vhsssecure.php?doc='+getShow+'&edit=0&acc=11626&firstslide='+firstslide+'&loading='+loading+'&minimal='+minimal+'&bgcolor=0x'+bgcolor+domString+tokenString+'&lc_name='+lc_name+'&fv='+flashVersion+'&is_ie=0';
	showURL = url;
	loading = 1; // done after request not to allow admin not to have a loader

//if (transparent != 1){
//		AC_RunFlContentX( 'height',height,'swliveconnect','true','src',url,'scale','noborder','id','VHSS','width',width,'bgcolor','#'+bgcolor,'quality','high','movie',url,'name','VHSS','codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+flashVersion+',0,0,0');
//	}else{
//		AC_RunFlContentX( 'height',height,'swliveconnect','true','src',url,'scale','noborder','id','VHSS','width',width,'bgcolor','#'+bgcolor,'quality','high','movie',url,'name','VHSS','codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+flashVersion+',0,0,0', 'wmode','transparent' );
//	}
}


function AC_VHost_Embed_11626 (height, width, bgcolor, firstslide, loading, ss, sl, transparent, minimal, embedId, flashVersion) {

	flashVersion = flashVersion ? flashVersion : 5;
		
	lc_name = '1096298343256231';
	embedId = embedId==''?'nothing':embedId;
	domString = '&pageDomain='+domainOfPage();
	tokenString = '&token=c5667e5ee9b11d9fddb632b1b844de05';
	getShow = 'http%3A%2F%2Fvhost.oddcast.com%2Fgetshow.php%3Facc%3D11626'+escape('&ss='+ss+'&sl='+sl+'&embedid='+embedId);
	url = 'http://vhost.oddcast.com/vhsssecure.php?doc='+getShow+'&edit=0&acc=11626&firstslide='+firstslide+'&loading='+loading+'&minimal='+minimal+'&bgcolor=0x'+bgcolor+domString+tokenString+'&lc_name='+lc_name+'&fv='+flashVersion+'&is_ie=0';
	showURL = url;
	loading = 1; // done after request not to allow admin not to have a loader

	if (transparent != 1){
		AC_RunFlContentX( 'height',height,'swliveconnect','true','src',url,'scale','noborder','id','VHSS','width',width,'bgcolor','#'+bgcolor,'quality','high','movie',url,'name','VHSS','codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+flashVersion+',0,0,0');
	}else{
		AC_RunFlContentX( 'height',height,'swliveconnect','true','src',url,'scale','noborder','id','VHSS','width',width,'bgcolor','#'+bgcolor,'quality','high','movie',url,'name','VHSS','codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+flashVersion+',0,0,0', 'wmode','transparent' );
	}
}


function AC_RunFlContentX(){

	var codebase = AC_GetCodebase

	             (  "http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version="

	              , "7,0,0,0", arguments

	             );



	AC_GenerateObj

	(  "AC_RunFlContentX()", true, "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"

	, codebase

	, "http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"

	, "application/x-shockwave-flash", arguments

	);

}

var MSG_EvenArgs = 'The %s function requires an even number of arguments.'
                 + '\nArguments should be in the form "atttributeName","attributeValue",...';
var MSG_SrcRequired = "The %s function requires that a movie src be passed in as one of the arguments.";

function AC_GetCodebase(baseURL, defaultVersion, args){
	var codebase = baseURL + defaultVersion;
	for (var i=0; i < args.length; i=i+2) {
		currArg = args[i].toLowerCase();
		if (currArg == "codebase" && args.length > i+1) {
			if (args[i+1].indexOf("http://") == 0) {
				codebase = args[i+1];
			}else{
				codebase = baseURL + args[i+1];
			}
		}
	}

	return codebase;
}

function AC_sprintf(str){
	for (var i=1; i < arguments.length; i++){
		str = str.replace(/%s/,arguments[i]);
	}
	return str;
}

function AC_checkArgs(args,callingFn){
	var retVal = true;
	if (parseFloat(args.length/2) != parseInt(args.length/2)){
		alert(sprintf(MSG_EvenArgs,callingFn));
		retVal = false;
	}
	return retVal;
}

function AC_GenerateObj(callingFn, useXHTML, classid, codebase, pluginsPage, mimeType, args){

	if (!AC_checkArgs(args,callingFn)){
	return;
	}

	var tagStr = '';
	var currArg = '';
	var closer = (useXHTML) ? '/>' : '>';
	var srcFound = false;
	var embedStr = '<embed';
	var paramStr = '';
	var embedNameAttr = '';
	var objStr = '<object classid="' + classid + '" codebase="' + codebase + '"';

	for (var i=0; i < args.length; i=i+2){
		currArg = args[i].toLowerCase();

		if (currArg == "src"){
			if (callingFn.indexOf("RunSW") != -1){
				paramStr += '<param name="' + args[i] + '" value="' + args[i+1] + '"' + closer + '\n';
				embedStr += ' ' + args[i] + '="' + args[i+1] + '"';
				srcFound = true;
			}else if (!srcFound){
				paramStr += '<param name="movie" value="' + args[i+1] + '"' + closer + '\n';
				embedStr += ' ' + args[i] + '="' + args[i+1] + '"';
				srcFound = true;
			}
		}else if (currArg == "movie"){
			if (!srcFound){
				paramStr += '<param name="' + args[i] + '" value="' + args[i+1] + '"' + closer + '\n';
				embedStr += ' src="' + args[i+1] + '"';
				srcFound = true;
			}
		}else if (   currArg == "width"
		          || currArg == "height"
		          || currArg == "align"
		          || currArg == "vspace"
		          || currArg == "hspace"
		          || currArg == "class"
		          || currArg == "title"
		          || currArg == "accesskey"
		          || currArg == "tabindex"){
			objStr += ' ' + args[i] + '="' + args[i+1] + '"';
			embedStr += ' ' + args[i] + '="' + args[i+1] + '"';
		}else if (currArg == "id"){
			objStr += ' ' + args[i] + '="' + args[i+1] + '"';
			if (embedNameAttr == "")
				embedNameAttr = ' name="' + args[i+1] + '"';
		}else if (currArg == "name"){
			objStr += ' ' + args[i] + '="' + args[i+1] + '"';
			embedNameAttr = ' ' + args[i] + '="' + args[i+1] + '"';
		}else if (currArg == "codebase"){
		}else{
			paramStr += '<param name="' + args[i] + '" value="' + args[i+1] + '"' + closer + '\n';
			embedStr += ' ' + args[i] + '="' + args[i+1] + '"';
		}
	}

	if (!srcFound){
		alert(AC_sprintf(MSG_SrcRequired,callingFn));
		return;
	}

	if (embedNameAttr)
		embedStr += embedNameAttr;
	if (pluginsPage)
		embedStr += ' pluginspage="' + pluginsPage + '"';
	if (mimeType)
		embedStr += ' type="' + mimeType + '"';

	objStr += '>\n';
	embedStr += '></embed>\n';

	tagStr = objStr + paramStr + embedStr + "</object>\n";

		document.write(tagStr);
}

function VHSS_DoFSCommand(command, args) {
	if (command=="onSlideBegin") {
		if (window.vh_slideBegin != null)	vh_slideBegin(args);
	}
	else if (command=="hostLoaded") {
		if (window.vh_hostLoaded != null)	vh_hostLoaded();
	}
	else if (command=="talkStarted") {
		if (window.vh_talkStarted != null)	vh_talkStarted();
	}
	else if (command=="talkEnded") {
		if (window.vh_talkEnded != null)	vh_talkEnded();
	}
	else if (command=="audioLoaded"){
		if (window.vh_audioLoaded != null)	vh_audioLoaded(args);
	}
	else if (command == "ttsLoaded"){
		if (window.vh_ttsLoaded != null)	vh_ttsLoaded(args);
	}
	else if (command=="aiResponse"){
		if (window.vh_aiResponse != null)	vh_aiResponse(args);
	}
}

// --- End VHSS player events ---


// --- Speech Functions ---

function sayText(ttsText,voice,lang,engine){
	useFlashLC("sayText", escape(ttsText)+"~"+voice+"~"+lang+"~"+engine);
}

function sayAIResponse(ttsText,voice,lang,engine){
	useFlashLC("sayAIResponse", escape(ttsText)+"~"+voice+"~"+lang+"~"+engine);
}

function sayAudio(audioName, stTime){
	useFlashLC("sayAudio", audioName+"~"+stTime);
}

function loadText(ttsText,voice,lang,engine){
	useFlashLC("loadText", escape(ttsText)+"~"+voice+"~"+lang+"~"+engine);
}

function loadAudio(audioName){
	useFlashLC("loadAudio", audioName);	
}

function setInterruptMode(_mode){
	useFlashLC("setInterruptMode", _mode);
}

function replay(_val){
	useFlashLC("replay", _val);
}

function stopSpeech(){
	useFlashLC("stopSpeech");
}

function saySilent(init_time){
	useFlashLC("saySilent", init_time);
}

// --- End Speech Functions ---


// --- Look Functions ---

function followcursor(newMouseMode){
	useFlashLC("followCursor", newMouseMode+"~");
}

function recenter(){
	useFlashLC("recenter");
}

function setGaze(deg, dur, rad){
	useFlashLC("setGaze", deg+"~"+dur+"~"+rad);
}

function freezeToggle(){
	useFlashLC("freezeToggle");
}

// --- End Look Functions ---


// --- Slide Functions ---

function SetLink (href){
	useFlashLC("SetLink", href);
}

function SetTarget (targetName){
	useFlashLC("SetTarget", targetName);
}


function showTranscript(acc_id,ss_id,audioID,slidenum){
	transWindow = window.open( "http://vhss.oddcast.com/transcript_frame.php?acc="+acc_id+"&ss="+ss_id+"&au="+audioID+"&sn="+slidenum,"transWindow","width=500,height=500,toolbar=no,resizable=no");
	transWindow.focus();
}

// --- End Slide Functions ---


// --- Local connection queue and functions ---

var lc_busy = 0;
var lcQueue = new Array();

function vhss_lc_DoFSCommand(command, args) {
	lcLoaded();
}

function lcLoaded(){
	lc_busy =0;
	checkQueue();
}

function useFlashLC(meth, args){
	lcQueue[lcQueue.length]=meth;
	lcQueue[lcQueue.length]=args;
	checkQueue();
}

function checkQueue(){
	if (lc_busy || lcQueue.length == 0) return;
	var lc_temp1 = lcQueue[0];
	var lc_temp2 = lcQueue[1];
	var t_ar = new Array();
	for (var act = 2; act<lcQueue.length; ++act){
		t_ar[act-2] = lcQueue[act];
	}
	lcQueue = t_ar;
	loadFromQueue(lc_temp1, lc_temp2);
}

function loadFromQueue(meth, args){
	lc_busy = 1;
	var divcontainer = "lc";
	if(!document.getElementById(divcontainer)){
		var divholder = document.createElement("DIV");
		divholder.id = divcontainer;
		document.body.appendChild(divholder);
	}
	document.getElementById(divcontainer).innerHTML = "";
	var hostName = document.location.pathname.indexOf('staging')>0?'vhost.staging.oddcast.com':'vhost.oddcast.com';
	var divinfo = "<embed src='http://"+hostName+"/vhss_lc.swf' FlashVars='lc_name="+lc_name+"&methodNm="+meth+"&args="+escape(args)+"' width='0' height='0' type='application/x-shockwave-flash'></embed>";
//        alert("divinfo = " + divinfo);
	document.getElementById(divcontainer).innerHTML = divinfo;
}

// --- End Local connection queue and functions ---


// --- hidden and in development functions ---

function sayAIResponseExported(ttsText,voice,lang,engine,account){
	useFlashLC("sayAIResponseExported", escape(ttsText)+"~"+voice+"~"+lang+"~"+engine+"~"+account);
}

function sayAudioExported(audioName, stTime, account){
	useFlashLC("sayAudioExported", audioName+"~"+stTime+"~"+account);
}

function sayTextExported(ttsText,voice,lang,engine,account){
	useFlashLC("sayTextExported", escape(ttsText)+"~"+voice+"~"+lang+"~"+engine+"~"+account);
}

function sayTextEmo(ttsText,voice,lang,engine,emo){
	useFlashLC("sayTextEmo", escape(ttsText)+"~"+voice+"~"+lang+"~"+engine+"~"+emo);
}

function hostSleep(_state){
	useFlashLC("hostSleep", _state);
}
function setNextSlideIndex(slideRange){
	useFlashLC("setNextSlideIndex", slideRange);
}

function gotoSlide(slideIndex){
	useFlashLC("gotoSlide", slideIndex);
}

function gotoNextSlide (){
	useFlashLC("gotoNextSlide");
}

function gotoPrevSlide(){
	useFlashLC("gotoPrevSlide");
}
