jChatStartUp = true;
enableChatInstall = true;

function Cvm() {}

function installCheck()
{
  if(breakNow) debugger;
  (new VmpVmcInstall()).start();
}

var _TRACE = true;
Actor.setAppletType('actor');
Actor.setVideoMessagesEnabled(true);
var msgsEnabled = false;
var videoChat = true;
var videoMessage = true;

var meUtilPlayer = null;
var meSdlWriter = null;
var meSceneMerger = null;
var camCap = null;

var selfview = null;
var remoteview1 = null;
var remoteview2 = null;
var remoteview3 = null;
var remoteview10 = null;
var remoteview20 = null;
var remoteview30 = null;
var videoMsgPlayer = null;
var clipviewer = null;
var clipviewerL = null;
var clipviewerXL = null;

var chatState = false;
var vmpState = true;
var vmpSlid = false;
var mailShowing = false;

function startActors2()
{
  videoMsgPlayer = new Actor('videoMsg');
  videoMsgPlayer.setTag("edvideoMsg");
  //videoMsgPlayer.addEventRule('init',"hideElement('edvideoMsg');");
  videoMsgPlayer.addEventRule('allActorsReady',"showElement('iptvContainer');");
  //videoMsgPlayer.addEventRule('allActorsReady',"Cvm.generalStatus('Type a msg name and press ENTER')");
  videoMsgPlayer.addEventRule('firstFrameReady',"vmcReady();vmcBtnsWhilePlaying();");  
  videoMsgPlayer.addEventRule('playing_stopped','vmcStopped();');  
  videoMsgPlayer.setClipWidth(320);
  videoMsgPlayer.setClipHeight(240);
  videoMsgPlayer.start(false);
  for (var viewId = 1; viewId <=3; viewId++)
  {
    Cvm.createRemoteView(viewId,176,144);
    Cvm.createRemoteView(10*viewId,352,288);
  }

  selfview = new Actor('selfview');
  selfview.setTag("edselfview");
  selfview.addEventRule('dropCall','Cvm.chatActive(false);selfview.hide()');
  selfview.addEventRule('killVideo','Cvm.chatActive(false);selfview.hide()');
  selfview.addEventRule('killVideo','Cvm.setLivePanel();collapseElement("etselfview");');
  selfview.addEventRule('firstFrameReady',"Cvm.chatActive(true);Cvm.actorShow('selfview');expandElement('etselfview');");
  selfview.addEventRule('firstFrameReady',"Cvm.showRecvBtn();");
  selfview.addEventRule('firstFrameReady',"Cvm.setLivePanel();")
  selfview.addEventRule('playing_stopped',"Cvm.actorHide('selfview');collapseElement('etselfview');");
  selfview.addEventRule('allActorsReady',"selfview.startChat(false,EVME_VXN_ADDR,EVME_VXN_PORT)");
  //selfview.addEventRule('allActorsReady',"selfview.startChat(false,'64.62.211.155',443)");
  //selfview.addEventRule('allActorsReady',"selfview.startChat(false,'10.1.1.141',448)");
  //selfview.addEventRule('allActorsReady',"selfview.startChat(false,'10.1.1.82',448)");

  selfview.addEventRule('pageUnload',"selfview.closeChat();");
  selfview.addEventRule('allActorsReady','Cvm.initChatViews();');
  selfview.addEventRule('rightClick',"ChatViews.close(0);Cvm.setLivePanel();collapseElement('etselfview');");
  //selfview.addEventRule('resolution','Cvm.resolutionReport(this.getEventDescriptor(),0)');
  //selfview.addEventRule('fullScreen',"directorTrace('ENTER FULL SCREEN MODE')");
  //selfview.addEventRule('exitFullScreen',"Cvm.exitFullScreen()");  
  selfview.addEventRule('resolution','Cvm.scaleSelfView(this.getEventDescriptor())');
  Cvm.selfViewDefaultPels = 176;
  Cvm.selfViewDefaultLines = 144;
  selfview.setClipWidth(Cvm.selfViewDefaultPels);
  selfview.setClipHeight(Cvm.selfViewDefaultLines);
  selfview.configureChatSelfView();
  selfview.start(false);

  clipviewer = new Actor('clipviewer');
  clipviewer.setTag("edclipviewer");
  clipviewer.addEventRule('firstFrameReady','Cv.showClipControls(true);');
  clipviewer.addHtmlParam('backgroundColor','black');
  clipviewer.setClipWidth(320);
  clipviewer.setClipHeight(240);
  clipviewer.start(false);

  clipviewerL = new Actor('clipviewerL');
  clipviewerL.setTag("edclipviewerL");
  //clipviewerL.hide();
  clipviewerL.addEventRule('firstFrameReady','Cv.showClipControlsL(true);');
  clipviewerL.addHtmlParam('backgroundColor','black');
  clipviewerL.setClipWidth(496);
  clipviewerL.setClipHeight(336);
  clipviewerL.start(false);

  clipviewerXL = new Actor('clipviewerXL');
  clipviewerXL.setTag("edclipviewerXL");
  //clipviewerL.hide();
  clipviewerXL.addEventRule('firstFrameReady','Cv.showClipControlsXL(true);');
  clipviewerXL.addHtmlParam('backgroundColor','black');
  clipviewerXL.setClipWidth(1024);
  clipviewerXL.setClipHeight(768);
  clipviewerXL.start(true);
  
  camCap = Actor.getCameraCaptureActor();
  camCap.addEventRule('allActorsReady','captureReady();Cvm.chatActive(true);');

}

function bob1()
{
  if ((clipviewer === null) || (clipDirector === null))
  {
    setTimeout('bob1()',1000);
    return;
  }
  var isPlaying = clipDirector.ep_invokeAndWait(clipviewer.getContextIndex() + ',,ep_isPlaying');
  directorTrace('bob1 isPlaying: ' + isPlaying);
  setTimeout('bob1()',1000);
}

function captureReady()
{
    Vmc.monitorMsgs();
    Cvm.vmpOff();
    setTimeout("isFinished();",2000);
}



// VMC control

function Vmc() {}

var clipViewerState = false;

Vmc.switchToClips = function()
{
  RemoteActor.requestRemoteInvoke('Vmc.switchToClips();');
  
  if(clipViewerState){
	  	  
    clipviewer.stop();Cv.stopShow();//RemoteActor.requestRemoteInvoke('Cv.stopShow();');	  
//	document.getElementById('clipviewer').style.display = 'none';
	collapseElement('clipviewer');
	hideElement('edclipviewer');
	clipViewerState = false;
	return;
  }

//  document.getElementById('clipviewer').style.display = 'block';
  expandElement('clipviewer');
  showElement("clipViewer");
  hideElement("clipBusy");
  clipViewerState = true;
  //directorTrace('Vmc.switchToClips');
}

Vmc.setToClips = function()
{
  if(clipViewerState) return;
  hideElement("clipBusy");
   expandElement('clipviewer');
//  document.getElementById('clipviewer').style.display = 'block';
  document.getElementById('clipviewer').style.visibility = 'visible';

  clipViewerState = true;
  //directorTrace('Vmc.switchToClips');
}


//Vmc.hideStopBtn = function() {document.getElementById('vmcStopBtn').style.visibility = 'hidden';}
//Vmc.showStopBtn = function() {document.getElementById('vmcStopBtn').style.visibility = 'visible';}
//Vmc.hidePlayBtn = function() {document.getElementById('vmcPlayBtn').style.visibility = 'hidden';}
//Vmc.showPlayBtn = function() {document.getElementById('vmcPlayBtn').style.visibility = 'visible';}

Vmc.hideStopBtn = function() {return; document.getElementById('vmcStopBtn').style.display = 'none';}
Vmc.showStopBtn = function() {document.getElementById('vmcStopBtn').style.display = 'block';}
Vmc.hidePlayBtn = function() {return; document.getElementById('vmcPlayBtn').style.display = 'none';}
Vmc.showPlayBtn = function() {document.getElementById('vmcPlayBtn').style.display = 'block';}

Vmc.showVmc = function() {document.getElementById('videoMsg').style.visibility = 'visible';}

var videoMsgConsumer = null;

Vmc.monitorMsgs = function()
{
  //directorTrace('Vmc.monitorMsgs');
  if (videoMsgConsumer === null)
  {
    vmcEvtMgr = new VmcEventManager();
    videoMsgConsumer = new VideoMsgConsumer();
    videoMsgConsumer.setPlaybackActor(videoMsgPlayer);
    videoMsgConsumer.addDependent(vmcEvtMgr);
  }
  if ((msgWaiting.length > 0) && (msgWaiting != "no msgs"))
  {
    if (!videoMsgConsumer.isActive())
    {
      videoMsgConsumer.setMsgList(msgWaiting);
//      Vmc.updateStatus(videoMsgConsumer.getNbrOfMsgs() + "<br> </br>");
     Vmc.updateStatus("Messages Waiting: "+videoMsgConsumer.getNbrOfMsgs());
    document.getElementById("videoMsgName").innerHTML = "";
//      showMail();
    }
    else
    {
      vmcBtnsWhilePlaying();
    }
  }
  else
  {
    vmcBtnsWhileIdle();
    Vmc.updateStatus("No Messages");
    Vmc.hidePlayBtn();
    Vmc.hideStopBtn();
    //hideMail();
  }

  setTimeout("Vmc.monitorMsgs()",1000);
}

var vmcEvtMgr = null;
function VmcEventManager()
{
  this.eventManager = EventManager;
  this.eventManager();
  this.addEventRule('info_nextMsg','doNextVideoMsg(this.getEventDescriptor())');
  this.addEventRule('info_msgErased','doMsgErased(this.getEventDescriptor())');
}

function doNextVideoMsg(eventDescriptor)
{
  var args = ContextEventDescriptor.getOptionalArgs(eventDescriptor);
  var msgNbr = parseInt(args.split(',')[0]) + 1;
  var totalMsgs = parseInt(args.split(',')[1]);
  var subject = args.split(',')[2];
  var subject2 = '';
  if (subject.startsWith(Actor.UserNameSpace))
  {
    subject2 = Actor.parseClipName(subject);
    subject = Actor.parseUserNameSpace(subject);
	subject = sizeLimit(subject,12);
	subject2 = sizeLimit(subject2,20);
  }
  if (msgNbr <= totalMsgs)
  {
    Vmc.updateStatus("Playing: "+'' + msgNbr + ' From: ' + subject);
    document.getElementById("videoMsgName").innerHTML = "Name: "+ subject2;
  }
}

function sizeLimit(st, sz){
	var tmp;
	tmp = st;
	if((tmp.length > sz) && (sz > 2)){
	  tmp = tmp.substr(0,(sz-2));
	  tmp += "..";	
	}
	return tmp;
}

function doMsgErased(eventDescriptor)
{
  db_delete(ContextEventDescriptor.getOptionalArgs(eventDescriptor));
  Vmc.busy();
}

Vmc.updateStatus = function(text)
{
  document.getElementById("vmcStatus").innerHTML = text;
}

function hideMail()
{
  Vmc.stop();videoMsgConsumer.stop();
//  vmcHideAllButtons();
//  hideElement('videoMsg');
// hideElement('edvideoMsg');
  collapseElement('videoMsg');
  Cvm.actorHide("videoMsgPlayer");
  mailShowing = false;
}

function mailShowToggle()
{
  if(!mailShowing) showMail(); else hideMail();
}

function showMail()
{
	expandElement('videoMsg');
  showElement('videoMsg');
//  showElement('edvideoMsg');
  Cvm.actorShow("videoMsgPlayer");
  Vmc.showStopBtn();
  Vmc.showPlayBtn();
//  document.getElementById('vmcSkipBtn').style.visibility = 'hidden';
//  document.getElementById('vmcEraseBtn').style.visibility = 'hidden';
  mailShowing = true;
}

Vmc.busy = function()
{
  vmcBtnsWhilePlaying();
  enableHourGlass();
//  configureElement('videoMsgControls','none');
//  document.getElementById('videoMsgControls').style.visibility = 'hidden';

  vmcWaiting();
//  hideElement('edvideoMsg');
}

function vmcReady()
{
  disableHourGlass();
//  configureElement('videoMsgControls','block');
  document.getElementById('videoMsgControls').style.visibility = 'visible';
  configureElements('edvideoMsgWaiting','none','edvideoMsg','block');
  showElement('edvideoMsg');
}

function vmcWaiting()
{
  hideElement('edvideoMsg');
  configureElements('edvideoMsg','none','edvideoMsgWaiting','block');
  showElement('edVideoMsgWaiting');
}

function configureElement(elm1,elm1State)
{
  var currentElm1 = document.getElementById(elm1);
  if (currentElm1.currentStyle['display'] != elm1State)
  {
    currentElm1.style.display = elm1State;
  }
}

function configureElements(elm1,elm1State,elm2,elm2State)
{
  var currentElm1 = document.getElementById(elm1);
  var currentElm2 = document.getElementById(elm2);
  
  if (currentElm1.currentStyle['display'] != elm1State)
  {
    currentElm1.style.display = elm1State;
  }
  
  if (currentElm2.currentStyle['display'] != elm2State)
  {
    currentElm2.style.display = elm2State;
  }
}

function vmcStopped()
{
  if (videoMsgConsumer.isActive())
  {
    Vmc.busy();
  }
  else
  {
    setTimeout('vmcReady();vmcBtnsWhileIdle();',1000);
    hideElement('edvideoMsg');
  }
}
		   
function vmcBtnsWhilePlaying()
{
	return;
  Vmc.showStopBtn();
  Vmc.hidePlayBtn();
  document.getElementById('vmcSkipBtn').style.visibility = 'hidden';
  document.getElementById('vmcEraseBtn').style.visibility = 'visible';
}

function vmcBtnsWhileIdle()
{
	return;
  Vmc.showStopBtn();
  Vmc.showPlayBtn();
//  document.getElementById('vmcSkipBtn').style.visibility = 'hidden';
//  document.getElementById('vmcEraseBtn').style.visibility = 'hidden';
}

function vmcHideAllButtons()
{
	return;
  Vmc.hideStopBtn();
  Vmc.hidePlayBtn();
  document.getElementById('vmcSkipBtn').style.visibility = 'hidden';
  document.getElementById('vmcEraseBtn').style.visibility = 'hidden';
}

// VMP stuff

function vmpStatus(eventDescriptor)
{
  if ((typeof eventDescriptor != 'undefined') && isString(eventDescriptor) && (eventDescriptor.length > 0))
  {
    if (eventDescriptor.indexOf(';') == -1)
    {
      eventDescriptor = ';;' + eventDescriptor;
    }
    document.getElementById("vmpStatus").innerHTML = ContextEventDescriptor.getOptionalArgs(eventDescriptor);
    showVmpStatus();
  }
}


var VmpEventManager = function()
{
  this.eventManager = EventManager;
  this.eventManager();
  this.addEventRule('info_maxCaptureTimeExceeded',"alert('Max capture time exceeded')");
  this.addEventRule('info_vmpStatus','vmpStatus(this.getEventDescriptor());');
  this.addEventRule('info_uploadComplete','vmpUploadComplete(this.getEventDescriptor())');
  this.addEventRule('info_previewStarted','Cvm.previewStarted()');
  this.addEventRule('info_previewStopped','Cvm.previewStopped()');
  this.addEventRule('info_captureStarted','Cvm.captureStarted()');
  this.addEventRule('info_captureStopped','Cvm.captureStopped()');
}

var vmpEvtMgr = null;
var vmp = null;
function vmpInit()
{
  vmpEvtMgr = new VmpEventManager();
  vmp = new VideoMsgProducer();
  vmp.addDependent(vmpEvtMgr);
}

function vmpSendMsg(userName,form)
{
  var formName = form.subjectInput.value;
  var lastMsgName = vmp.getLastMsgName();
  if(formName != "") lastMsgName = formName;

  if (lastMsgName != null)
  {
    hideSendBtn();
 //   hideVmpStatus();
//    var tmp = (memberName != "") ? memberName : ownerName;
    
    var msgName = Actor.parseClipName(lastMsgName);
    vmpStatus(sizeLimit(msgName,9) + ' sent to ' + userName);
    db_send(lastMsgName,userName);
//    vmpStatus('Sending message...');
    setTimeout("hideVmpStatus();showSubject();Cvm.generalStatus('');",3000);
  }
}

function processSubjectInput(form)
{
  var subjectName = form.subjectInput.value;
  if ((subjectName != null) && isString(subjectName) && (subjectName.length > 0))
  {
    vmp.recordAs(subjectName);
    vmpRecordInProgress();
    form.subjectInput.value='';
    hideSubject();
  }
  return false;
}

function vmpUploadComplete(eventDescriptor)
{
  var msgName = Actor.parseClipName(ContextEventDescriptor.getOptionalArgs(eventDescriptor));
  var status = sizeLimit(msgName,9) + ' ready to send';
  vmpStatus(status);
  vmpRecordStop();
//  setTimeout("hideVmpStatus();showSubject();Cvm.generalStatus('');",3000);
  setTimeout("showSubject();Cvm.generalStatus('');",1000);
//  showSubject();
  Cvm.generalStatus('Select member to receive message');
}

function vmpRecordInProgress()
{
  hideSendBtn();
//  document.getElementById('vmpLiveBtn').style.visibility = 'hidden';
  //document.getElementById('chatCallButton').style.visibility = 'hidden';
}

function vmpRecordStop()
{
//  document.getElementById('vmpLiveBtn').style.visibility = 'visible';
//  showSendBtn();
  //document.getElementById('chatCallButton').style.visibility = 'visible';
}

function vmpLive(state)
{
  //document.getElementById('chatCallButton').style.visibility = (state) ? 'hidden' : 'visible';
  (state) ? Cvm.hideXmitBtn() : Cvm.showXmitBtn();
  (state) ? Cvm.hideCallBtn() : Cvm.showCallBtn();
//  document.getElementById('vmpLiveBtn').style.visibility = (state) ? 'hidden' : 'visible';
}

function vmpStop()
{
  //document.getElementById('chatCallButton').style.visibility = 'visible';
//  document.getElementById('vmpLiveBtn').style.visibility = 'visible';
	vmpState = false;
}

Cvm.vmpToggle = function()
{
  	if(!vmpState)
  	{
    	if(!vmpSlid){horizontalSlide('capture',0); vmpSlid = true;}
    	vmpState = true;
    	Cvm.chatActive(false);
    	vmpLive(true);
		vmp.live();
    	return;
   	}
   	
	Cvm.vmpOff();
}

Cvm.vmpOff = function()
{
   	vmpState = false;
   	vmpStop();
	vmp.stopAll();
   	Cvm.chatActive(true);
}
  
Cvm.chatActive = function(state)
{
  chatState = state;
  if (state)
  {
//    document.getElementById('capture').style.visibility = 'hidden';
	collapseElement('capture');
//    document.getElementById('vmpLiveBtn').style.visibility = 'hidden';
    hideSendBtn();
    Cvm.generalStatus('');
  }
  else
  {
    if(vmpState)
    {
		expandElement('capture');
    	document.getElementById('capture').style.visibility = 'visible';  
//    	document.getElementById('vmpLiveBtn').style.visibility = 'visible';
    }
  }
}

function showSendBtn()
{
  document.getElementById('vmpSendBtn').style.visibility = 'visible';
}
function hideSendBtn()
{
  document.getElementById('vmpSendBtn').style.visibility = 'hidden';
}

function showStopBtn()
{
  document.getElementById('vmpStopBtn').style.visibility = 'visible';
}
function hideStopBtn()
{
	return;
  document.getElementById('vmpStopBtn').style.visibility = 'hidden';
}

function hideVmpStatus()
{
  document.getElementById("vmpStatus").style.visibility = 'hidden';
  document.getElementById("vmpStatus").style.display = 'none';
}

function showVmpStatus()
{
  document.getElementById("vmpStatus").style.display = 'block';
  document.getElementById("vmpStatus").style.visibility = 'visible';
}

Vmc.stop = function()
{
}

function hideSubject()
{
  document.getElementById("subjectForm").style.visibility = 'hidden';
  document.getElementById("subjectInput").style.visibility = 'hidden';
  document.getElementById("msgSubject").style.display = 'none';
}

function showSubject()
{
  document.getElementById("msgSubject").style.display = 'block';
  document.getElementById("subjectForm").style.visibility = 'visible';
  document.getElementById("subjectInput").style.visibility = 'visible';

}



//

Cvm.generalStatus = function(text)
{
	return;
  document.getElementById("generalStatus").innerHTML = text;
}

Cvm.getSelectedMember = function()
{
  return (memberName != "") ? memberName : ownerName;
}

var chatViews = null;
var chatViewEvtMgr = null;
Cvm.remoteViewPrefix = 'remoteview';
Cvm.initChatViews = function()
{
  if (chatViews === null)
  {
    chatViewEvtMgr = new ChatViewEvtMgr();
    chatViews = new ChatViews();
    chatViews.setDefaultViewType('176x144');
    chatViews.setSelfView(Chat.getSelfView());
    chatViews.setRemoteViewPrefix(Cvm.remoteViewPrefix);
    chatViews.addDependent(chatViewEvtMgr);
    //Cvm.setPlayItNow('remoteview1',false);
  }
}

function ChatViewEvtMgr()
{
  this.eventManager = EventManager;
  this.eventManager();
  this.addEventRule('info_requestVideoCaptureStart','Cvm.startVideoCapture();');
  this.addEventRule('info_requestVideoCaptureStop','Cvm.stopVideoCapture();');
  this.addEventRule('info_closeChatView','Cvm.closeChatView(this.getEventDescriptor());');
  this.addEventRule('info_receiveChatView','Cvm.receiveChatView(this.getEventDescriptor());');
}

Cvm.startVideoCapture = function()
{
  directorTrace('Cvm.startVideoCapture');
  var tmp = 'Self View';
  Cvm.hideCallBtn();
  Cvm.hideXmitBtn();
  Cvm.hideRecvBtn();
  Cvm.chatActive(true);
  //vChatDocument.ep_startVideoCapture();
  //startVideoCapture();
//  setVideoOptions();
  vChatDocument.ep_startVideoCapture();
  setVideoOptions();
  capturingVideo = true;
  setTimeout("document.getElementById('selfviewstatus').innerHTML=\'" + tmp + "\'",5000);
}

Cvm.stopVideoCapture = function()
{
  directorTrace('Cvm.stopVideoCapture');
  //vChatDocument.ep_stopVideoCapture();
  //stopVideoCapture();
  vChatDocument.ep_stopVideoCapture();
  Cvm.showCallBtn();  
  Cvm.showRecvBtn();
  Cvm.showXmitBtn();
  Cvm.chatActive(false);
}

Cvm.hideCallBtn = function()
{
  //document.getElementById('callBtn').style.visibility = 'hidden';
}

Cvm.showCallBtn = function()
{
  //document.getElementById('callBtn').style.visibility = 'visible'; // TODO GLM DISABLED UNTIL NEW CVM READY
  //document.getElementById('callBtn').style.visibility = 'hidden';  
}

Cvm.hideXmitBtn = function()
{
  //document.getElementById('xmitBtn').style.visibility = 'hidden';
}

Cvm.showXmitBtn = function()
{
  //document.getElementById('xmitBtn').style.visibility = 'visible';
}

Cvm.hideRecvBtn = function()
{
  //document.getElementById('recvBtn').style.visibility = 'hidden';
}

Cvm.showRecvBtn = function()
{
  Cvm.clearRecvTimer();
  //document.getElementById('recvBtn').style.visibility = 'visible';
}

Cvm.showLivePanel = function()
{
	expandElement('livePanels');
}

Cvm.hideLivePanel = function()
{
	collapseElement('livePanels');
}

Cvm.setLivePanel = function()
{
  if(true || ChatViews.publishing() || ChatViews.isRemoteActive())
  {
    Cvm.showLivePanel();
  }
  else
  {
    Cvm.hideLivePanel();
  }  
}

Cvm.recvBtnTimerId = null;

Cvm.clearRecvTimer = function()
{
  if (Cvm.recvBtnTimerId != null)
  {
    clearTimeout(Cvm.recvBtnTimerId);
    Cvm.recvBtnTimerId = null;
  }
}

Cvm.recvBtnTimer = function()
{
  Cvm.showRecvBtn();
}

Cvm.receiveChatView = function(eventDescriptor)
{
  directorTrace('Cvm.receiveChatView' + ' eventDescriptor: ' + eventDescriptor);
  var args = ContextEventDescriptor.getOptionalArgs(eventDescriptor);
  var viewName = args.split(',')[0];
  var member = args.split(',')[1];
  var view = args.split(',')[2];
//  var tmp = "Live From: " + member;
  var tmp = " "+ member;
//  eval(viewName + ".displayImage(Cvm.getDocBase() + 'images/espre160x128.jpg');");

if(!actorsVisible) {hideableActors[viewName+':receive'] = "Cvm.receiveChatView('"+eventDescriptor+"')";return;}
Cvm.setLivePanel();

//eval(viewName + ".displayImage(Cvm.getDocBase() + 'images/espre_ing_small.jpg');");
eval(viewName + ".displayImage(Cvm.getDocBase() + 'images/wait_small.jpg');");
  Cvm.actorShow(viewName);
  Cvm.hideRecvBtn();
  expandElement('et'+viewName);
//  eval("showElement(\'et" + viewName + "\')");
  //Cvm.chatActive(true);
  document.getElementById(viewName + "status").innerHTML = tmp;
  membersReceiving[view] = member;
  Cvm.recvBtnTimerId = setTimeout('Cvm.recvBtnTimer()',10000);
}

var membersReceiving = new Array('','','','');

Cvm.closeChatView= function(eventDescriptor)
{
	
  var viewId = ContextEventDescriptor.getOptionalArgs(eventDescriptor);
  var wasReceiving = membersReceiving[viewId];
  var cnt = 0;
  membersReceiving[viewId] = '';
  for(var i=1;i<membersReceiving.length;i++){ if(membersReceiving[i]==wasReceiving) cnt++; }
  if(cnt==0) RemoteActor.requestRemoteInvokeOn(wasReceiving,"db_setNotReceiving('"+myName+"')");
  document.getElementById(Cvm.remoteViewPrefix + viewId + 'status').innerHTML= "";
  Cvm.showRecvBtn();
}



//

Cvm.codeBase = null;
Cvm.getCodeBase = function()
{
  if (Cvm.codeBase === null)
  {
    Cvm.codeBase = (new ComponentFactory()).codebase;
  }
  return Cvm.codeBase;
}

Cvm.docBase = null;
Cvm.getDocBase = function()
{
  if (Cvm.docBase === null)
  {
    Cvm.docBase =  location.href.substring(0,location.href.lastIndexOf('/') + 1);
  }
  return Cvm.docBase;
}
  

Cvm.previewStarted = function()
{
  directorTrace("Cvm.previewStarted");
  showElement("captureAppletElement");
  Cvm.hideCallBtn();
  Cvm.hideXmitBtn();
}

Cvm.previewStopped = function()
{
  hideElement("captureAppletElement");
  Cvm.showCallBtn();
  Cvm.showXmitBtn();
}


Cvm.captureStarted = function()
{
  showStopBtn();
}

Cvm.captureStopped = function()
{
  hideStopBtn();

}

//
// clip viewer
//

function Cv() {}

Cv.switchToMsgs = function()
{
  clipviewer.stop();
  collapseElement('clipviewer');
  document.getElementById('clipviewer').style.visibility = 'hidden';    
  setTimeout("expandElement('videoMsg');",1000);
  //directorTrace('Cv.switchToMsgs');
}

Cv.processClipPlay = function(form){
 if(showActive&&(showPlayer=='small'||showPaused)) {Cv.showControl("next");return}
 if(pausedPlayer==clipviewer) {Cv.showControl("next");return}

 Cv.processClipInput(form);
}

Cv.processClipInput = function(form)
{
  var clipName = form.clipInput.value;
  Cv.processClipInput2(clipName);
  Ra.remoteActorTest(clipName);
  Cv.killPrEvents();
  return false;
}
Cv.processClipInput2 = function(clipName)
{
  if ((clipName != null) && isString(clipName) && (clipName.length > 0))
  {
    if(showMute) Cv.mute(clipviewer); else Cv.unMute(clipviewer);
    Cv.showClipControls(false);
	switch(clipName){
		
		case 'MI2':
		case 'mi2':
		case 'Mi2':
			playMI2small();
			break;
		case 'Pete':
		case 'pete':
			playPetesmall();
			break;
		case 'Espre':
		case 'espre':
			playEspresmall();
			break;
		default:
			clipviewer.play(clipName);
    }
    document.clipForm.clipInput.value = clipName;
  }
}

function playPetesmall()
      {

clipviewer.play('http://' + EVME_HOST_DOMAIN + '/wainhouse/clips/pete/320_240/video_s1.dat.sdl');
}

function playPetelarge()
{

clipviewerL.play('http://' + EVME_HOST_DOMAIN + '/wainhouse/clips/pete/496_336/video_s1.dat.sdl');
      }

function playPeteXlarge()
    {

clipviewerXL.play('http://' + EVME_HOST_DOMAIN + '/wainhouse/clips/pete/720_480/video_s1.dat.sdl');
    }

function playEspresmall()
{
clipviewer.play('http://' + EVME_HOST_DOMAIN + '/wainhouse/clips/pptv9/320_240/video_s1.dat.sdl');
  }

function playEsprelarge()
{
    clipviewerL.play('http://' + EVME_HOST_DOMAIN + '/wainhouse/clips/pptv9/496_384/video_s1.dat.sdl');
}
function playEsprelargeSpecial()
{
    clipviewerL.play('http://' + EVME_HOST_DOMAIN + '/wainhouse/clips/pptvSpecial/496_336/video_s1.dat.sdl');
}

Cv.showClipControls = function(state)
{
  Vmc.setToClips();
  var currentControls = document.getElementById('clipControls').currentStyle['display'];
  var currentBusy = document.getElementById('clipBusy').currentStyle['display'];    
  if (state)
  {
    if ((currentControls != 'block') || (currentBusy != 'none'))
    {
      document.getElementById('clipBusy').style.visibility = "hidden";
      document.getElementById('clipBusy').style.display = "none";
      document.getElementById('clipControls').style.display = "block";
      document.getElementById('edclipviewer').style.visibility = "visible";
      document.getElementById('edclipviewer').style.display = "block";
	  expandElement('edclipviewer');
      clearTimeout(timerId);
    }
  }
  else
  {
    if ((currentControls != 'none') || (currentBusy != 'block'))
    {
      document.getElementById('clipBusy').style.visibility = "visible";
      document.getElementById('clipBusy').style.display = "block";
//      document.getElementById('clipControls').style.display = "none";
      document.getElementById('edclipviewer').style.visibility = "hidden";
      document.getElementById('edclipviewer').style.display = "none";
      collapseElement('edclipviewer');
      timerId = setTimeout("Cv.checkPlayer()",5000);
    }
  }
}

function adjustFocus()
{
  document.clipForm.clipInput.focus();
}


// remote actor

function Ra() {}
Ra.remoteActorTest = function(clipName)
{
  directorTrace('Ra.remoteActorTest clipName: ' + clipName);

//  var remoteRequest = "Vmc.setToClips();"
//  remoteRequest += "setTimeout(\"Cv.processClipInput2(\'" + clipName + "\')\",1500);";
   var remoteRequest = "Vmc.setToClips();"
  remoteRequest += "Cv.processClipInput2(\'" + clipName + "\');";
  RemoteActor.requestRemoteInvoke(remoteRequest);

}

Ra.remoteActorTestL = function(clipName)
{
  directorTrace('Ra.remoteActorTestL clipName: ' + clipName);

//  var remoteRequest = "Vmc.setToClips();"
//  remoteRequest += "setTimeout(\"Cv.processClipInput2(\'" + clipName + "\')\",1500);";
   var remoteRequest = "Vmc.setToClipsL();"
  remoteRequest += "Cv.processClipInput2L(\'" + clipName + "\');";
  RemoteActor.requestRemoteInvoke(remoteRequest);

}

Ra.remoteActorShow = function(func)
{
  directorTrace('Ra.remoteActorShow function: ' + func);

   var remoteRequest = "Cv.showControl(\'"+func+"\');"
  RemoteActor.requestRemoteInvoke(remoteRequest);

}


Cvm.chatViewStatus = new Array();
Cvm.playingStopped = function(viewId)
{
    directorTrace('Cvm.playingStopped viewId: ' + viewId);
    if (typeof Cvm.chatViewStatus[viewId] == 'undefined')
    {
	Cvm.chatViewStatus[viewId] = '';
    }
    if (Cvm.chatViewStatus[viewId] != 'resync')
    {
	var tmp = 'remoteview' + viewId + '.hide()';
	directorTrace('Cvm.playingStopped eval: ' + tmp);
	eval(tmp);
	collapseElement('etremoteview'+viewId);
    }
    else
    {
	Cvm.chatViewStatus[viewId] = '';
    }
}
Cvm.resync = function(viewId)
{
    directorTrace('Cvm.resync viewId: ' + viewId);    
    Cvm.chatViewStatus[viewId] = 'resync';
}

Cvm.clearResync = function(viewId)
{
	directorTrace('Cvm.clearResync viewId: ' + viewId);
	Cvm.chatViewStatus[viewId] = '';
}

function playMI2large()
{
  clipviewerL.play('http://' + EVME_HOST_DOMAIN + '/FirstVision/refone/clips496_30/MI2/video_s1.dat2.sdl');
}

function playMI2small()
{
  clipviewer.play('http://' + EVME_HOST_DOMAIN + '/FirstVision/refone/clips496_30/MI2/video_s1.dat2.sdl');
}

function playMI2Xlarge()
{
  clipviewerXL.play('http://' + EVME_HOST_DOMAIN + '/FirstVision/refone/clips496_30/MI2/video_s1.dat2.sdl');
}
function playEspreXlarge()
{
  clipviewerXL.play('http://' + EVME_HOST_DOMAIN + '/FirstVision/refone/clips496_30/MI2/video_s1.dat2.sdl');
}

function showLargeClipViewer()
{
	var tag;
	clipviewerL.show();
	tag = document.getElementById("clipViewerL");
	expandElement('clipViewerL');
	tag.style.visibility = "visible";
}

function hideLargeClipViewer()
{
	var tag;
	clipviewerL.hide();
	tag = document.getElementById("clipViewerL");
	collapseElement('clipViewerL');
	tag.style.visibility = "visible";
}

Cv.processClipPlayL = function(form){
 if(showActive&&(showPlayer=='large'||showPaused)) {Cv.showControl("next");return}
 if(pausedPlayer==clipviewerL) {Cv.showControl("next");return}

 Cv.processClipInputL(form);
}

Cv.processClipInputL = function(form)
{
  var clipName = form.clipInputL.value;
  Cv.setForceNoAudio(clipviewerL,'false');
  Cv.processClipInput2L(clipName);
  Ra.remoteActorTestL(clipName);
  return false;
}

Cv.processClipInput2L = function(clipName)
{
  if ((clipName != null) && isString(clipName) && (clipName.length > 0))
  {
//    enableHourGlass();
//    showElement('clipBusy');
    Cv.showClipControlsL(false);
    if(showMute) Cv.mute(clipviewerL); else Cv.unMute(clipviewerL);
	switch(clipName){
			
		case 'MI2':
		case 'mi2':
		case 'Mi2':
			playMI2large();
			break;
		case 'Pete':
		case 'pete':
			playPetelarge();
			break;
		case 'Espre':
		case 'espre':
			playEsprelarge();
			break;
		default:
			clipviewerL.play(clipName);
		}
	document.clipFormL.clipInputL.value = clipName;
  }
}

Cv.showClipControlsL = function(state)
{
  Vmc.setToClipsL();
  var currentControls = document.getElementById('clipControlsL').currentStyle['display'];
  var currentBusy = document.getElementById('clipBusyL').currentStyle['display'];    
  if (state)
  {
    if ((currentControls != 'block') || (currentBusy != 'none'))
    {
      document.getElementById('clipBusyL').style.visibility = "hidden";
      document.getElementById('clipBusyL').style.display = "none";
      document.getElementById('clipControlsL').style.display = "block";
      document.getElementById('edclipviewerL').style.visibility = "visible";
      document.getElementById('edclipviewerL').style.display = "block";
	  expandElement('edclipviewerL');
      clearTimeout(timerIdL);
    }
  }
  else
  {
    if ((currentControls != 'none') || (currentBusy != 'block'))
    {
      document.getElementById('clipBusyL').style.visibility = "visible";
      document.getElementById('clipBusyL').style.display = "block";
//      document.getElementById('clipControlsL').style.display = "none";
      document.getElementById('edclipviewerL').style.visibility = "hidden";
      document.getElementById('edclipviewerL').style.display = "none";
	  collapseElement('edclipviewerL');
      timerIdL = setTimeout("Cv.checkPlayerL();",5000);
    }
  }
}

var timerId = null;
var timerIdL = null;

Cv.checkPlayerL = function(){
  clipviewerL.stop;
  Cv.showClipControlsL(true);
  directorTrace("Cv.checkPlayerL timeout");
}

Cv.checkPlayer = function(){
  clipviewer.stop;
  Cv.showClipControls(true);
  directorTrace("Cv.checkPlayer timeout");
}

var clipViewerStateL = false;

Vmc.switchToClipsL = function()
{
  RemoteActor.requestRemoteInvoke('Vmc.switchToClipsL();');
  
  if(clipViewerStateL){
    clipviewerL.stop();Cv.stopShow();//RemoteActor.requestRemoteInvoke('Cv.stopShow();');
	collapseElement('clipviewerL');
	hideElement('edclipviewerL');
	clipViewerStateL = false;
	return;
  }

  expandElement('clipviewerL');
  showElement("clipViewerL");
  hideElement("clipBusyL");
  clipViewerStateL = true;
  //directorTrace('Vmc.switchToClips');
}

Vmc.setToClipsL = function()
{
  if(clipViewerStateL) return;

  document.getElementById('clipviewerL').style.display = 'block';
  document.getElementById('clipviewerL').style.visibility = 'visible';
  showElement("clipViewerL");
  collapseElement("clipBusyL");
  clipViewerStateL = true;
  //directorTrace('Vmc.switchToClips');
}

var expandableElements = new Array();
var expanded = true;

function collapseElement(el){
	expandableElements[el] = "none";
    hideElement(el);
    document.getElementById(el).style.display = "none";
}

function expandElement(el){
	expandableElements[el] = "block";
	if(!expanded) return;
    document.getElementById(el).style.display = "block";
    showElement(el);
}


function expandAll(){
	for(var i in expandableElements){
		if(expandableElements[i] == 'block'){
			expandElement2(i);
			showElement(i);
			directorTrace("Cvm.expandAll: "+i);
//			if(/^etselfview/.test(i)) selfview.show();
		}		
	}
	expanded = true;
	Cvm.actorShowAll();
}

function collapseAll(){
	Cvm.actorHideAll();
	for(var i in expandableElements){
		if(expandableElements[i] == 'block'){
		  hideElement(i);
		  collapseElement2(i);
		  directorTrace("Cvm.collapseAll: "+i);
//		  if(/^etselfview/.test(i)){
//			directorTrace("collapseAll - hiding: "+i);
//			selfview.hide();
//		  }
		}
	}
	expanded = false;
}

function expandElement2(el){
    document.getElementById(el).style.display = "block";
    showElement(el);
}

function collapseElement2(el){
    hideElement(el);
    document.getElementById(el).style.display = "none";
    document.getElementById("mainPage").style.height = ""+windowHeight()+"px";
}

function windowHeight() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
   return window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    return document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    return document.body.clientHeight;
  }
  
}

function windowWidth() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
	return window.innerWidth;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
 	return document.documentElement.clientWidth;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
 	return document.body.clientWidth;
  }
  
}

var espre = new Array();
var esprePre = new Array();

Cv.mi2large = 'http://' + EVME_HOST_DOMAIN + '/FirstVision/refone/clips496_30/MI2/video_s1.dat2.sdl';
var showPlayer = 'large';
var defaultShow = 'Pete';
var nextSlide = 1;
var lastSlide = 1;
var mode = 'single';
var showActive = false;
var currentShow = 'http://' + EVME_HOST_DOMAIN + '/wainhouse/clips/pptv9/496_384/video_s1.dat.sdl';
//var currentShow = 'http://' + EVME_HOST_DOMAIN + '/wainhouse/clips/pptvSpecial/496_336/video_s1.dat.sdl';
//var showIdx = espre;'
var showIdx = espre;

MI2Scenes = new Array();

MI2Scenes['Slide1'] = 'Slide1;1,1000:1,1500';
MI2Scenes['Slide2'] = 'Slide2;1,1501:1,1600';
MI2Scenes['Slide3'] = 'Slide3;1,1601:1,1800';
MI2Scenes['Slide4'] = 'Slide4;1,1801:1,2200';
MI2Scenes['Slide5'] = 'Slide5;1,2201:1,2500';
MI2Scenes['Slide6'] = 'Slide6;1,2501:1,-1';

espre["Slide1"] = "Slide1;1,0:1,204";
espre["Slide2"] = "Slide2;2,0:2,137";
espre["Slide3"] = "Slide3;3,0:3,211";
espre["Slide4"] = "Slide4;4,0:4,149";
espre["Slide5"] = "Slide5;5,0:5,162";
espre["Slide6"] = "Slide6;6,0:6,193";
espre["Slide7"] = "Slide7;7,0:7,32";
espre["Slide8"] = "Slide8;8,0:8,91";
espre["Slide9"] = "Slide9;9,0:9,413";
espre["Slide10"] = "Slide10;10,0:10,150";
espre["Slide11"] = "Slide11;11,0:11,188";
espre["Slide12"] = "Slide12;12,0:12,21";
espre["Slide13"] = "Slide13;13,0:13,257";
espre["Slide14"] = "Slide14;14,0:14,72";
espre["Slide15"] = "Slide15;15,0:15,114";
espre["Slide16"] = "Slide16;16,0:16,55";


var lastSlideName = 'Slide16';
var remoteUserInput = null;
var ui;//local user input
var lastFunc=null;

Cv.showControl = function(a)
{
	var func;
        var rr;
	var f = a.split(":");
   	if ((typeof f[0] != 'undefined') && isString(f[0]) && (f[0].length > 0)) func = f[0];
   	if ((typeof f[1] != 'undefined') && isString(f[1]) && (f[1].length > 0)) remoteUserInput =f[1]; else remoteUserInput = null;

	if(remoteUserInput==null) ui = Cv.getPlayerInput(); else ui = remoteUserInput;
	
	rr = func; if(ui!=null) rr = rr+":"+ui;
	Ra.remoteActorShow(rr);

	lastFunc = func;
	switch (func){
	
		case 'small':
			if(showPlayer) Cv.stopShow();
			showPlayer = func;
			defaultShow = 'Espre';
			currentShow = 'http://' + EVME_HOST_DOMAIN + '/wainhouse/clips/pptv9/320_240/video_s1.dat.sdl'
			if(showMute) Cv.mute(clipviewer);
			Cv.startShow();
			break;
		case 'large':
			if(showPlayer) Cv.stopShow();
			showPlayer = func;
			defaultShow = 'Espre';
			currentShow = 'http://' + EVME_HOST_DOMAIN + '/wainhouse/clips/pptv9/496_336/video_s1.dat.sdl';
			if(showMute) Cv.mute(clipviewerL);
			Cv.startShow();
			break;
		case 'largeSpecial':
			if(showPlayer) Cv.stopShow();
			showPlayer = 'large'; // func;
			defaultShow = 'EspreSpecial';
			currentShow = 'http://' + EVME_HOST_DOMAIN + '/wainhouse/clips/pptvSpecial/496_336/video_s1.dat.sdl';
			Cv.mute(clipviewerL);
			break;
		case 'Xlarge':
			if(showPlayer) Cv.stopShow();
			showPlayer = func;
			defaultShow = 'Espre'
			currentShow = 'http://' + EVME_HOST_DOMAIN + '/wainhouse/clips/pptv9/1024_768/video_s1.dat.sdl';
			if(showMute) Cv.mute(clipviewerXL);
			Cv.startShow();
			break;
		case 'play':
			Cv.startShow();
			break;
		case 'all':
			nextSlide = 1
			lastSlide = -1;
			mode = "all";
			break;
		case 'single':
			nextSlide = 1;
			lastSlide = 1;
			mode = "single"
			break;
		case 'next':
		  if(showPaused) {Cv.startShow();break;}
		  if ((ui!=null) && (ui != "")) {
			  st = ui.split('-');
   			  if ((typeof st[0] != 'undefined') && isString(st[0]) && (st[0].length > 0)) nextSlide = parseInt(st[0]);
   			  if ((typeof st[1] != 'undefined') && isString(st[1]) && (st[1].length > 0)) lastSlide = parseInt(st[1]); else lastSlide = -1;
			}
			else{
			  if(Cv.slideName(++nextSlide) == lastSlideName){ Cv.stopShow(); break;}
			  if(mode == "single") lastSlide++;
			}
			Cv.playRange();
			break;
		case 'stop':
			Cv.stopShow();
			break;
		case 'range':
		    var st;
			st = ui.split('-');
   			if ((typeof st[0] != 'undefined') && isString(st[0]) && (st[0].length > 0)) nextSlide = parseInt(st[0]);
   			if ((typeof st[1] != 'undefined') && isString(st[1]) && (st[1].length > 0)) lastSlide = parseInt(st[1]); else lastSlide = -1;
		default:
	}
}

Cv.startShow = function()
{

	directorTrace("Cv.startShow: "+currentShow);
	if(showPaused){
		directorTrace("Cv.startShow resuming");
		if(defaultShow=='EspreSpecial'){
		  //clipviewerL.resume();
		clipviewer.resume();
		showPaused = false;
		  return; } else {
		    directorTrace("Cv.startShow resuming: "+showPlayer);
		  pausedPlayer.resume();
		  showPaused = false;
		  pausedPlayer==null;
		  }
		return;
	}
	if(showActive) {Cv.playRange();return;}
	if(lastFunc!='play') return;

	if(showPlayer=='small') Cv.showClipControls(false); else if(showPlayer =='large')Cv.showClipControlsL(false); else Cv.showClipControlsXL(false);
	if(!showActive)
	{
	  Cv.playRange();
	  showActive = true;
	}
	else
	{
	  lastSlide = -1;
	  Cv.playRange();//play to end
	}
}

var showPaused = false;
var pausedPlayer=null;

Cv.stopShow = function(player)
{
	var pl;
	if(typeof player=='undefined') {if(showPlayer == 'small') pl = clipviewer; else if(showPlayer=='large')pl = clipviewerL; else pl = clipviewerXL;} else pl = player;
	directorTrace("Cv.StopShow: "+pl.getTag());
	if(!showActive&&(typeof player=='undefined')){
		return;
	}
		if(!showPaused) {
			directorTrace("Cv.stopShow -- pausing show");
			showPaused = true;
		pausedPlayer = pl;
		if(defaultShow=='EspreSpecial'){
			clipviewer.pause();
		  //clipviewerL.pause();
		  return;} else {
			directorTrace("Cv.stopShow: pausing "+showPlayer);
		  	pl.pause();
			return;
		    }
		}
		else
		{
	  if(defaultShow=='EspreSpecial')
          {
       
			showActive = false;
			Vmc.switchToClips();
			Vmc.switchToClipsL();
			Cv.stopShow2();
		return;
		
		}
	}	
	directorTrace("Cv.stopShow: stopping "+showPlayer);
	pl.stop();
	Cv.stopShow2();
	

}

Cv.stopShow2 = function()
{
	nextSlide = 1;
	lastSlide = 1;
	mode = 'single';
	defaultShow = 'Espre';
	showPlayer = 'large';
	showPaused = false;
	pausedPlayer=null;
	showIdx = espre;
	currentShow = 'http://' + EVME_HOST_DOMAIN + '/wainhouse/clips/pptv9/496_384/video_s1.dat.sdl';
	directorTrace('Cv.stopShow showIdx: ' + 'espre');
	showActive = false;
}

Cv.playRange = function()
{
	var s;
	directorTrace("Cv.playRange: 1st: "+ Cv.slideName(nextSlide) + " last: " + Cv.slideName(lastSlide));
	if(nextSlide == lastSlide)
	{
	   Cv.playScene(showIdx[Cv.slideName(nextSlide)]);
	   return;
	}
	
	Cv.decodeScene(showIdx[Cv.slideName(nextSlide)]);
	ss = sceneStartSeg; sf = sceneStartFrame;
	Cv.decodeScene(showIdx[Cv.slideName(lastSlide)]);
	sceneStartSeg = ss; sceneStartFrame = sf;
	s = Cv.encodeScene();
	Cv.playScene(s);
	if(Cv.slideName(lastSlide) == lastSlideName)lastSlide = 1;
	nextSlide = lastSlide;
	
}

function playMI2scene()
{
  // 'sceneName;fromSegment,fromRecNum:toSegment,toRecNum'
  clipviewerL.playScene2('name;1,0:1,2000',Cv.mi2large);
}

Cv.playScene = function(scene)
{
	directorTrace("Cv.playScene scene: "+scene+ "currentShow: " + currentShow);
	if(showPlayer == 'small')
	{
		clipviewer.playScene2(scene,currentShow);
	}
	else
	{
		if(showPlayer=='large') clipviewerL.playScene2(scene,currentShow); else clipviewerXL.playScene2(scene,currentShow);
	}
	
}

var sceneName;
var sceneStartSeg;
var sceneStartFrame;
var sceneEndSeg;
var sceneEndFrame;

Cv.decodeScene = function(scene)
{
   var tmp = scene.split(';');
   sceneName = tmp[0];
   tmp = tmp[1].split(':');
   st = tmp[0].split(',');
   ed = tmp[1].split(',');
   if ((typeof st[0] != 'undefined') && isString(st[0]) && (st[0].length > 0)) sceneStartSeg = parseInt(st[0]); else sceneStartSeg = 1;
   if ((typeof st[1] != 'undefined') && isString(st[1]) && (st[1].length > 0)) sceneStartFrame = parseInt(st[1]); else sceneStartFrame = 0;
   if ((typeof ed[0] != 'undefined') && isString(ed[0]) && (ed[0].length > 0)) sceneEndSeg = parseInt(ed[0]); else sceneEndSeg = -1;
   if ((typeof ed[1] != 'undefined') && isString(ed[1]) && (ed[1].length > 0)) sceneEndFrame = parseInt(ed[1]); else sceneEndFrame = -1;
}

Cv.encodeScene = function(fs, es)
{
   var s = sceneName + ";" + sceneStartSeg.toString() + "," + sceneStartFrame.toString() + ":" + sceneEndSeg.toString() + "," + sceneEndFrame.toString();
   return s;
}

Cv.getPlayerInput = function()
{
   var inp;
   if(showPlayer == 'small') inp = document.clipForm.clipInput.value; else if(showPlayer == 'large')
		inp = document.clipFormL.clipInputL.value; else inp = document.clipFormXL.clipInputXL.value;
   if(showPlayer == 'small') document.clipForm.clipInput.value=""; else if(showPlayer == 'large')
		document.clipFormL.clipInputL.value=""; else document.clipFormXL.clipInputXL.value="";
   return inp;
}

Cv.slideName = function(slide)
{
 if(slide == 0) return "Slide1";
 if(slide == -1) return lastSlideName;
 return "Slide"+slide;
}

Cv.processClipPlayXL = function(form){
 if(showActive&&showPlayer=='Xlarge') {Cv.showControl("next");return}
 if(pausedPlayer==clipviewerXL) {Cv.showControl("next");return}

 Cv.processClipInputXL(form);
}

Cv.processClipInputXL = function(form)
{
  var clipName = form.clipInputXL.value;
  Cv.processClipInput2XL(clipName);
  Ra.remoteActorTestXL(clipName);
  return false;
}

Cv.processClipInput2XL = function(clipName)
{
  if ((clipName != null) && isString(clipName) && (clipName.length > 0))
  {
//    enableHourGlass();
//    showElement('clipBusy');
    if(showMute) Cv.mute(clipviewerXL); else Cv.unMute(clipviewerXL);
    Cv.showClipControlsXL(false);
	switch(clipName){
			
		case 'MI2':
		case 'mi2':
		case 'Mi2':
			playMI2Xlarge();
			break;
		case 'Pete':
		case 'pete':
			playPeteXlarge();
			break;
		case 'Espre':
		case 'espre':
			playEspreXlarge();
			break;
		default:
			clipviewerXL.play(clipName);
		}
	
	document.clipFormXL.clipInputXL.value = clipName;
//    setTimeout('disableHourGlass();Cv.showClipControls(true)',5000);
  }
}

Cv.showClipControlsXL = function(state)
{
  Vmc.setToClipsXL();
  var currentControls = document.getElementById('clipControlsXL').currentStyle['display'];
  var currentBusy = document.getElementById('clipBusyXL').currentStyle['display'];    
  if (state)
  {
    if ((currentControls != 'block') || (currentBusy != 'none'))
    {
      document.getElementById('clipBusyXL').style.visibility = "hidden";
      document.getElementById('clipBusyXL').style.display = "none";
      document.getElementById('clipControlsXL').style.display = "block";
      document.getElementById('edclipviewerXL').style.visibility = "visible";
      document.getElementById('edclipviewerXL').style.display = "block";
      expandElement('edclipviewerXL');
      clearTimeout(timerIdXL);
    }
  }
  else
  {
    if ((currentControls != 'none') || (currentBusy != 'block'))
    {
      document.getElementById('clipBusyXL').style.visibility = "visible";
      document.getElementById('clipBusyXL').style.display = "block";
      document.getElementById('clipControlsXL').style.display = "none";
      document.getElementById('edclipviewerXL').style.visibility = "hidden";
      document.getElementById('edclipviewerXL').style.display = "none";
	  expandElement('edclipviewerXL');
      timerIdXL = setTimeout("Cv.checkPlayerXL();",10000);
    }
  }
}

var timerIdXL = null;

Cv.checkPlayerXL = function(){
  clipviewerXL.stop;
  Cv.showClipControlsXL(true);
  directorTrace("Cv.checkPlayerXL timeout");
}

var clipViewerStateXL = false;

Vmc.switchToClipsXL = function()
{
  RemoteActor.requestRemoteInvoke('Vmc.switchToClipsXL();');
  if(clipViewerStateXL){
    clipviewerXL.stop();Cv.stopShow();//RemoteActor.requestRemoteInvoke('clipviewerXL.stop();Cv.stopShow();');
	collapseElement('clipviewerXL');
	hideElement('edclipviewerXL');
	clipViewerStateXL = false;
	return;
  }

  expandElement('clipviewerXL');
  showElement("clipViewerXL");
  hideElement("clipBusyXL");
  clipViewerStateXL = true;
}

Vmc.setToClipsXL = function()
{
  if(clipViewerStateXL) return;

  expandElement('clipviewerXL');
  document.getElementById('clipviewerXL').style.visibility = 'visible';
  showElement("clipViewerXL");
  collapseElement("clipBusyXL");
  clipViewerStateXL = true;
}

function showXLargeClipViewer()
{
	var tag;
	clipviewerXL.show();
	tag = document.getElementById("clipViewerXL");
	expandElement('clipviewerXL');
	tag.style.visibility = "visible";
}

function hideXLargeClipViewer()
{
	var tag;
	clipviewerXL.hide();
	tag = document.getElementById("clipViewerXL");
	collapseElement('clipviewerXL');
	tag.style.visibility = "visible";
}


function playEspreXlarge()
{
//  clipviewerXL.play('http://' + EVME_HOST_DOMAIN + '/FirstVision/refone/clips496_30/MI2/video_s1.dat2.sdl');
//clipviewerXL.play('http://' + EVME_HOST_DOMAIN + '/wainhouse/clips/pptv7/1152_928/video_s1.dat2.sdl');
clipviewerXL.play('http://' + EVME_HOST_DOMAIN + '/wainhouse/clips/pptv9/1024_768/video_s1.dat.sdl');
}

Ra.remoteActorTestXL = function(clipName)
{
  directorTrace('Ra.remoteActorTestXL clipName: ' + clipName);

//  var remoteRequest = "Vmc.setToClips();"
//  remoteRequest += "setTimeout(\"Cv.processClipInput2(\'" + clipName + "\')\",1500);";
   var remoteRequest = "Vmc.setToClipsXL();"
  remoteRequest += "Cv.processClipInput2XL(\'" + clipName + "\');";
  RemoteActor.requestRemoteInvoke(remoteRequest);
}

Cvm.resolutionReport = function(eventDescriptor,callIdx)
{
  //    'event;ctxId,htmlElementName;optionalArgs
  var args = ContextEventDescriptor.getOptionalArgs(eventDescriptor);
  var pels = parseInt(args.split(',')[0]);
  var lines = parseInt(args.split(',')[1]);
  var ctxId = ContextEventDescriptor.getCtxId(eventDescriptor);
  directorTrace('Cvm.resolutionReport' + ' ctxId: ' + ctxId + ' pels: ' + pels + ' lines: ' + lines + ' eventDescriptor: ' + eventDescriptor);
  if (false && (callIdx == 0))
  {
    setTimeout('Cvm.fullScreenTest()',10000);
  }
}

Cvm.resolutionChanged = function(eventDescriptor,currentActorName,imageMultiplier,forced)
{
  imageMultiplier = imageMultiplier || 1;
  forced = forced || false;
  directorTrace('Cvm.resolutionChanged' +
		' eventDescriptor: ' + eventDescriptor +
		' currentActorName: ' + currentActorName +
		' imageMultiplier: ' + imageMultiplier +
		' forced: ' + forced);
  var args = ContextEventDescriptor.getOptionalArgs(eventDescriptor);
  var reportedPels = parseInt(args.split(',')[0]);
  var reportedLines = parseInt(args.split(',')[1]);
  var currentActorInstance = getActorByName(currentActorName);
  var currentReceiveName =  eval(currentActorName + '.chatReceiveName');
  if (!isString(currentReceiveName))
  {
    directorTrace('Cvm.resolutionChanged cannot determine name to receive for view: ' + currentView);
    return;
  }
  var currentActorPels = currentActorInstance.getClipWidth();
  var currentActorLines = currentActorInstance.getClipHeight();
  var actorImageMultiplier = 1;
  if (!forced)
  {
    if ((currentActorPels == reportedPels) && (currentActorLines == reportedLines)) return;
    actorImageMultiplier = parseInt(Cvm.getImageMultiplier(ContextEventDescriptor.getCtxId(eventDescriptor)));
    if (actorImageMultiplier != 0)
    {
      var pels = reportedPels;
      var lines = reportedLines;
      if (actorImageMultiplier > 0)
      {
	pels = pels * actorImageMultiplier;
	lines = lines * actorImageMultiplier;
      }
      if (actorImageMultiplier < 0)
      {
	var im = Math.abs(actorImageMultiplier);
	pels = pels/im;
	lines = lines/im;
      }
      if ((currentActorPels == pels) && (currentActorLines == lines)) return;
    }
    else
    {
      actorImageMultiplier = 1;
    }
  }

  setTimeout("Cvm.resolutionChanged2('" +
	     eventDescriptor + "','" +
	     currentActorName + "'," +
	     reportedPels + "," +
	     reportedLines + "," +
	     currentActorPels + "," +
	     currentActorLines + "," +
	     imageMultiplier + "," +
	     forced + "," +
	     actorImageMultiplier +
	     ")",100);
}

Cvm.resolutionChanged2 = function(eventDescriptor,currentActorName,reportedPels,reportedLines,currentActorPels,currentActorLines,imageMultiplier,forced,actorImageMultiplier)
{
  var pels = reportedPels;
  var lines = reportedLines;
  var im = parseInt(imageMultiplier);
  if (forced)
  {
    if (im > 0)
    {
      pels = reportedPels * im;
      lines = reportedLines * im;
    }
    if (im < 0)
    {
      im = Math.abs(im);
      pels = reportedPels/im;
      lines = reportedLines/im;
      im = 1;
    }
  }

  var viewType = ChatViews.createViewType(pels,lines);
  var newActorInstance = Chat.allocateView(viewType,1+Chat.maxRemoteViewsAllocated);
  if (newActorInstance === null)
  {
    directorTrace('Cvm.resolutionChanged2 UNABLE TO ALLOCATE VIEW FOR viewType: ' + viewType);
    return;
  }
  var newActorName = newActorInstance.getName();
  var newActorMinusId = newActorName + 'minus';

    directorTrace('Cvm.resolutionChanged2' +
		  ' imageMultiplier: ' + imageMultiplier +
		  ' actorImageMultiplier: ' + actorImageMultiplier +
		  ' pels: ' + pels);

  if (actorImageMultiplier == 1)
  {
    if (pels > Cvm.selfViewDefaultPels)
    {
      document.getElementById(newActorMinusId).style.visibility = "hidden";
    }
  }

  if ((imageMultiplier > 1) || (actorImageMultiplier > 1))
  {
      document.getElementById(newActorMinusId).style.visibility = "visible";
  }

  
  var newActorPels = newActorInstance.getClipWidth();
  var newActorLines = newActorInstance.getClipHeight();
  directorTrace('Cvm.resolutionChanged2' +
		'\n eventDescriptor: ' + eventDescriptor +
		' currentActorName: ' + currentActorName +
		' reportedPels: ' + reportedPels +
		' reportedLines: ' + reportedLines +
		' pels: ' + pels +
		' lines: ' + lines +
		'\n currentActorPels: ' + currentActorPels +
		' currentActorLines: ' + currentActorLines +
		' imageMultiplier: ' + imageMultiplier +
		' im: ' + im +
		' viewType: ' + viewType +
		'\n newActorName: ' + newActorName +
		' newActorPels: ' + newActorPels +
		' newActorLines: ' + newActorLines)

  Cvm.hideChatView(currentActorName);
  var currentActorInstance = getActorByName(currentActorName);
  var evtDes = ContextEventDescriptor.create('switchChatSession',newActorInstance.getContextIndex(),newActorName,newActorName + ',' + currentActorInstance.chatCallee);
  Cvm.receiveChatView(evtDes); //e.g., Cvm.receiveChatView('switchChatSession;4,remoteview10;remoteview10,Guest2');
  Cvm.setImageMultiplier(evtDes,im);
  newActorInstance.switchChatSession(currentActorInstance,newActorInstance);
}

Cvm.fullScreenTest = function()
{
	directorTrace('Cvm.fullScreenTest');
  //selfview.fullScreen();
}

Cvm.exitFullScreen = function()
{
  directorTrace('Cvm.exitFullScreen');
  //setTimeout('selfview.refresh()',10000);
}

Cv.removeAllEvents = function()
{
  clipDirector.ep_invoke(' ,' + clipviewerL.getTag() + ',ep_clearOnFrameEvent');
  directorTrace("Cv.removeAllEvents");
}


esprePre['Slide1'] = 'Slide1;1,0:1,23';
esprePre['Slide2'] = 'Slide2;2,0:2,24';
esprePre['Slide3'] = 'Slide3;3,0:3,24';
esprePre['Slide4'] = 'Slide4;4,0:4,9';
esprePre['Slide5'] = 'Slide5;5,0:5,11';
esprePre['Slide6'] = 'Slide6;6,0:6,24';
esprePre['Slide7'] = 'Slide7;7,0:7,24';
esprePre['Slide8'] = 'Slide8;8,0:8,24';
esprePre['Slide9'] = 'Slide9;9,0:9,12';
esprePre['Slide10'] = 'Slide10;10,0:10,23';
esprePre['Slide11'] = 'Slide11;11,0:11,24';
esprePre['Slide12'] = 'Slide12;12,0:12,13';
esprePre['Slide13'] = 'Slide13;13,0:13,19';
esprePre['Slide14'] = 'Slide14;14,0:14,23';
esprePre['Slide15'] = 'Slide15;15,0:15,24';
esprePre['Slide16'] = 'Slide16;16,0:16,23';

//esprePre['Slide1'] = 'Slide1;1,158:1,198';
//esprePre['Slide2'] = 'Slide2;1,296:1,336';
//esprePre['Slide3'] = 'Slide3;2,157:2,197';
//esprePre['Slide4'] = 'Slide4;2,308:2,348';
//esprePre['Slide5'] = 'Slide5;3,125:3,165';
//esprePre['Slide6'] = 'Slide6;3,308:3,348';
//esprePre['Slide7'] = 'Slide7;4,10:4,43';
//esprePre['Slide8'] = 'Slide8;4,102:4,142';
//esprePre['Slide9'] = 'Slide9;5,163:5,203';
//esprePre['Slide10'] = 'Slide10;5,308:5,348';
//esprePre['Slide11'] = 'Slide11;6,153:6,193';
//esprePre['Slide12'] = 'Slide12;6,194:6,215';
//esprePre['Slide13'] = 'Slide13;7,90:7,130';
//esprePre['Slide14'] = 'Slide14;7,157:7,197';
//esprePre['Slide15'] = 'Slide15;7,278:7,318';
//esprePre['Slide16'] = 'Slide16;7,308:7,348';


var peteIdx = new Array();
peteIdx['Slide1'] = 'Slide1;1,0:1,1200';
peteIdx['Slide2'] = 'Slide2;1,1201:1,2035';
peteIdx['Slide3'] = 'Slide3;1,2036:1,3302';
peteIdx['Slide4'] = 'Slide4;1,3303:1,4212';
peteIdx['Slide5'] = 'Slide5;1,4213:1,5198';
peteIdx['Slide6'] = 'Slide6;1,5199:1,6354';
peteIdx['Slide7'] = 'Slide7;1,6355:1,6558';
peteIdx['Slide8'] = 'Slide8;1,6559:2,259';
peteIdx['Slide9'] = 'Slide9;2,260:2,1312';
peteIdx['Slide10'] = 'Slide10;2,1313:2,2223';
peteIdx['Slide11'] = 'Slide11;2,2224:2,3355';
peteIdx['Slide12'] = 'Slide12;2,3356:2,3487';
peteIdx['Slide13'] = 'Slide13;2,3488:2,5034';
peteIdx['Slide14'] = 'Slide14;2,5035:2,5481';
peteIdx['Slide15'] = 'Slide15;2,5482:2,6155';
peteIdx['Slide16'] = 'Slide16;2,6156:2,6413';

//peteIdx['Slide1'] = 'Slide1;1,0:1,1205';
//peteIdx['Slide2'] = 'Slide2;1,1206:1,2035';
//peteIdx['Slide3'] = 'Slide3;1,2036:1,3313';
//peteIdx['Slide4'] = 'Slide4;1,3314:1,4209';
//peteIdx['Slide5'] = 'Slide5;1,4210:1,5195';
//peteIdx['Slide6'] = 'Slide6;1,5196:1,6353';
//peteIdx['Slide7'] = 'Slide7;1,6254:1,6558';
//peteIdx['Slide8'] = 'Slide8;1,6559:1,7122';
//peteIdx['Slide9'] = 'Slide9;1,7123:1,9594';
//peteIdx['Slide10'] = 'Slide10;1,9595:1,10505';
//peteIdx['Slide11'] = 'Slide11;1,10506:1,11623';
//peteIdx['Slide12'] = 'Slide12;1,11624:1,11772';
//peteIdx['Slide13'] = 'Slide13;1,11773:1,13316';
//peteIdx['Slide14'] = 'Slide14;1,13317:1,13757';
//peteIdx['Slide15'] = 'Slide15;1,13758:1,14438';
//peteIdx['Slide16'] = 'Slide16;1,14444:1,14774';

Cv.setupPrEvents = function()
{ 
  clipviewer.addEventRule('beginSlide2',"Cv.showTrigger(2)");
  clipviewer.addEventRule('beginSlide3',"Cv.showTrigger(3)");
  clipviewer.addEventRule('beginSlide4',"Cv.showTrigger(4)");
  clipviewer.addEventRule('beginSlide5',"Cv.showTrigger(5)");
  clipviewer.addEventRule('beginSlide6',"Cv.showTrigger(6)");
  clipviewer.addEventRule('beginSlide7',"Cv.showTrigger(7)");
  clipviewer.addEventRule('beginSlide8',"Cv.showTrigger(8)");
  clipviewer.addEventRule('beginSlide9',"Cv.showTrigger(9)");
  clipviewer.addEventRule('beginSlide10',"Cv.showTrigger(10)");
  clipviewer.addEventRule('beginSlide11',"Cv.showTrigger(11)");
  clipviewer.addEventRule('beginSlide12',"Cv.showTrigger(12)");
  clipviewer.addEventRule('beginSlide13',"Cv.showTrigger(13)");
  clipviewer.addEventRule('beginSlide14',"Cv.showTrigger(14)");
  clipviewer.addEventRule('beginSlide15',"Cv.showTrigger(15)");
  clipviewer.addEventRule('beginSlide16',"Cv.showTrigger(16)");

  //clipDirector.ep_invoke(' ,' + clipviewer.getTag() + ',ep_addOnFrameEvent,false,1,1205,invoke,,' + clipviewerL.getTag() + ',ep_playFromTo,2,158,3,4,true'); // play slide 4 test WORKS!!!
  clipDirector.ep_invoke(' ,' + clipviewer.getTag() + ',ep_addOnFrameEvent,true,1,1201,beginSlide2');
  clipDirector.ep_invoke(' ,' + clipviewer.getTag() + ',ep_addOnFrameEvent,true,1,2036,beginSlide3'); 
  clipDirector.ep_invoke(' ,' + clipviewer.getTag() + ',ep_addOnFrameEvent,true,1,3303,beginSlide4');
  clipDirector.ep_invoke(' ,' + clipviewer.getTag() + ',ep_addOnFrameEvent,true,1,4213,beginSlide5'); 
  clipDirector.ep_invoke(' ,' + clipviewer.getTag() + ',ep_addOnFrameEvent,true,1,5199,beginSlide6');
  clipDirector.ep_invoke(' ,' + clipviewer.getTag() + ',ep_addOnFrameEvent,true,1,6355,beginSlide7'); 
  clipDirector.ep_invoke(' ,' + clipviewer.getTag() + ',ep_addOnFrameEvent,true,1,6559,beginSlide8');
  
  clipDirector.ep_invoke(' ,' + clipviewer.getTag() + ',ep_addOnFrameEvent,true,2,260,beginSlide9'); 
  clipDirector.ep_invoke(' ,' + clipviewer.getTag() + ',ep_addOnFrameEvent,true,2,1313,beginSlide10'); 
  clipDirector.ep_invoke(' ,' + clipviewer.getTag() + ',ep_addOnFrameEvent,true,2,2224,beginSlide11'); 
  clipDirector.ep_invoke(' ,' + clipviewer.getTag() + ',ep_addOnFrameEvent,true,2,3356,beginSlide12'); 
  clipDirector.ep_invoke(' ,' + clipviewer.getTag() + ',ep_addOnFrameEvent,true,2,3488,beginSlide13'); 
  clipDirector.ep_invoke(' ,' + clipviewer.getTag() + ',ep_addOnFrameEvent,true,2,5035,beginSlide14'); 
  clipDirector.ep_invoke(' ,' + clipviewer.getTag() + ',ep_addOnFrameEvent,true,2,5482,beginSlide15'); 
  clipDirector.ep_invoke(' ,' + clipviewer.getTag() + ',ep_addOnFrameEvent,true,2,6156,beginSlide16'); 
}

Cv.killPrEvents = function()
{
  Cv.removeAllEvents();
}

Cv.presentation = function()
{
	RemoteActor.requestRemoteInvoke('Cv.presentation2();');
       RemoteActor.disable();
	showIdx = esprePre;
	directorTrace('Cv.presentation showIdx: ' + 'esprePre');
	//alert('Cv.presentation showIdx: ' + 'esprePre');

	Cv.showControl('largeSpecial');
	Cv.setForceNoAudio(clipviewerL,'true');
	Cv.showControl('play');
	
	Cv.setupPrEvents();
	
	Cv.processClipInput2('Pete');
	RemoteActor.enable();	
}
	
	
Cv.presentation2 = function()
{
	showIdx = esprePre;
	directorTrace('Cv.presentation showIdx: ' + 'esprePre');
	Cv.showControl('largeSpecial');
	Cv.showControl('play');
	Cv.processClipInput2('Pete');
	RemoteActor.requestRemoteInvoke('Cv.processClipInput2;');
}

Cv.showTrigger = function(slide)
{
  directorTrace('Cv.showTrigger slide: ' + slide);
  document.clipFormL.clipInputL.value=""+slide+"-"+slide;
  Cv.showControl('next');
  //if(slide==16) {Cv.stopShow(); Cv.killPrEvents(); return;}
//  if(slide==16) {setTimeout("Cv.stopShow(); Cv.killPrEvents();",2000)};
}

Cv.mute = function(hactor)
{
  directorTrace("Cv.mute: "+hactor.getTag());
  clipDirector.ep_invokeAndWait(' ,' + hactor.getTag() + ',ep_manualMute');
}

Cv.unMute = function(hactor)
{
  directorTrace("Cv.unMute: "+hactor.getTag());
  clipDirector.ep_invokeAndWait(' ,' + hactor.getTag() + ',ep_manualUnMute');
}

Cv.setForceNoAudio = function(actor,state)
{
  clipDirector.ep_invokeAndWait(' ,' + actor.getTag() + ',ep_setForceNoAudio,' + state);
  directorTrace('Cv.setForceNoAudio state: ' + state);
}
Cvm.hideChatView = function(chatActorName)
{
  var tmp = chatActorName + '.hide()';
  directorTrace('Cvm.hideChatView eval: ' + tmp);
  eval(tmp);
  //hideElement('et' + chatActorName);
  collapseElement('et' + chatActorName);  
}


Cvm.createRemoteView = function(viewId,pels,lines)
{
  var actorName = Cvm.remoteViewPrefix + viewId;
  Cvm.eval2(actorName + " = new Actor('" + actorName + "');");
  Cvm.eval2(actorName + ".setTag('ed" + actorName + "');");
  Cvm.eval2(actorName + ".addEventRule('dropCall','" + actorName + ".hide()');");
  Cvm.eval2(actorName + ".addEventRule('killVideo',\"Cvm.killVideo('" + actorName + "');\");");
  Cvm.eval2(actorName + ".addEventRule('allActorsReady',\"collapseElement('et" + actorName + "');\");");
  Cvm.eval2(actorName + ".addEventRule('firstFrameReady',\"Cvm.actorShow('" + actorName + "');Cvm.setLivePanel();expandElement('et" + actorName + "');\");");
  Cvm.eval2(actorName + ".addEventRule('firstFrameReady','Cvm.showRecvBtn();');");
  Cvm.eval2(actorName + ".addEventRule('firstFrameReady','Cvm.clearResync(" + viewId + ");')");
  Cvm.eval2(actorName + ".addEventRule('playing_stopped','Cvm.playingStopped(" + viewId + ");')");
  Cvm.eval2(actorName + ".addEventRule('resync','Cvm.resync(" + viewId + ");')");
  Cvm.eval2(actorName + ".addEventRule('rightClick',\"Cvm.remoteViewRightClick('" + actorName + "'," + viewId + ");\");");
  Cvm.eval2(actorName + ".addEventRule('resolution',\"Cvm.resolutionChanged(this.getEventDescriptor(),'" + actorName + "');\");");
  Cvm.eval2(actorName + ".setClipWidth(" + pels + ");");
  Cvm.eval2(actorName + ".setClipHeight(" + lines + ");");
  Cvm.eval2(actorName + ".configureChatRemoteView();");
  Cvm.eval2(actorName + ".start(false);");
}

Cvm.eval2 = function(args)
{
  //alert('Cvm.eval2' + ' args: ' + args);
  eval(args);
}

Cvm.killVideo = function(actorName)
{
  var actorInstance = getActorByName(actorName);
  actorInstance.hide();
  Cvm.setLivePanel();
  collapseElement('et' + actorName);      
}
Cvm.remoteViewRightClick = function(actorName,viewId)
{
  var actorInstance = getActorByName(actorName);
  ChatViews.close(viewId);
  actorInstance.hide();
  Cvm.setLivePanel();
  collapseElement('et' + actorName);
}

var hideableActors = new Array();
var actorsVisible = false;

Cvm.actorShow = function(actorName){
	directorTrace("Cvm.actorShow "+actorName);
	hideableActors[actorName] = '.show()';
	if(actorsVisible) eval(actorName+'.show()');
}

Cvm.actorHide = function(actorName){
	directorTrace("Cvm.actorHide "+actorName);
	hideableActors[actorName] = '.hide()';
	eval(actorName+'.hide()');
}

Cvm.actorHideAll = function(actorName){
	var i, a;
	for(i in hideableActors){
		a = hideableActors[i];

		if(/show/.test(a)){
			eval(i+".hide()");
			directorTrace("Cvm.actorHideAll: "+i);
		}
	}
	actorsVisible = false;
}

Cvm.actorShowAll = function(actorName){
	var i, a;
	actorsVisible = true;
//	debugger;
	for(i in hideableActors){
		a = hideableActors[i];
		if(/show/.test(a)){
			directorTrace("Cvm.actorShowAll: "+i+a);
			eval(i+a);
		}
		if(/receive/.test(a)){
			directorTrace("Cvm.actorShowAll: "+a);
			eval(a);
			hideableActors[i] = "";
		}
	}
}


Cvm.scaleSelfView = function(eventDescriptor)
{
  //    'event;ctxId,htmlElementName;optionalArgs
  var args = ContextEventDescriptor.getOptionalArgs(eventDescriptor);
  var pels = parseInt(args.split(',')[0]);
  var lines = parseInt(args.split(',')[1]);
  var ctxId = ContextEventDescriptor.getCtxId(eventDescriptor);
  var im = ((pels > Cvm.selfViewDefaultPels) || (lines > Cvm.selfViewDefaultLines)) ? -2 : 1;
  clipDirector.ep_invoke(ctxId + ',,ep_setImageMultiplier,' + im);
}

Cvm.setImageMultiplier = function(eventDescriptor,imageMultiplier)
{
  //    'event;ctxId,htmlElementName;optionalArgs
  clipDirector.ep_invoke(ContextEventDescriptor.getCtxId(eventDescriptor) + ',,ep_setImageMultiplier,' + imageMultiplier);
}

Cvm.remoteviewFullscreen = function(viewId)
{
  clipDirector.ep_invoke(getActorByName(Cvm.remoteViewPrefix+viewId).getContextIndex() + ',,ep_fullScreen');
}

Cvm.selfviewFullscreen = function()
{
  clipDirector.ep_invoke(selfview.getContextIndex() + ',,ep_fullScreen');
}
  
Cvm.getImageMultiplier = function(ctxId)
{
  return clipDirector.ep_invokeAndWait(ctxId + ',,ep_getImageMultiplier');
}

Cvm.parseViewId = function(viewName)
{
  var viewId = viewName.charAt(viewName.length-1);
  if (viewId == '0') viewId = viewName.charAt(viewName.length-2) + viewId;
  return viewId;
}


Cvm.setPlayItNow = function(actorName,playItNow)
{
  clipDirector.ep_invoke(getActorByName(actorName).getContextIndex() + ',,ep_setPlayItNow,' + playItNow);
}

Cvm.getPlayItNow = function(actorName)
{
  return clipDirector.ep_invokeAndWait(getActorByName(actorName).getContextIndex() + ',,ep_getPlayItNow');
}

Cvm.syncControl = function(func){
	var pin = false;
	if(func=='stop') pin = true;
	directorTrace("Cvm.syncControl A/V sync: "+pin);
	Cvm.setPlayItNowAll(pin);
}

Cvm.setPlayItNowAll = function(playItNow){
	Cvm.setPlayItNow('remoteview10',playItNow);
	Cvm.setPlayItNow('remoteview20',playItNow);
	Cvm.setPlayItNow('remoteview30',playItNow);
	Cvm.setPlayItNow('remoteview1',playItNow);
	Cvm.setPlayItNow('remoteview2',playItNow);
	Cvm.setPlayItNow('remoteview3',playItNow);
}

