//Global Variables
var _registeredControls = new Array();

function AddRegisteredControl(clientID,TypeOf,SubTypeOf)
{
    var numOf = _registeredControls.length;
    var dataToAdd = new Array(3);
    
    dataToAdd[0] = clientID;
    dataToAdd[1] = TypeOf;
    dataToAdd[2] = SubTypeOf;
    
    
    if(numOf == 0)
    {
        _registeredControls[numOf] = dataToAdd;
    }
    else
    {
        _registeredControls[numOf ++] = dataToAdd;
    }
}

function GetRegisterdControls(typeOf)
{
    var result = new Array();
    var n = 0;
    
    for (i=0; i < _registeredControls.length; i++) 
    { 
        if(_registeredControls[i][1] == typeOf)
        {
            result[n] =  _registeredControls[i]
            n++;
        } 
    } 
    
    return result;
}


function GetRegisterdControl(subTypeOf,registeredForType)
{
    var result = new Array();
   
    for (i=0; i < registeredForType.length; i++) 
    { 
        if(registeredForType[i][2] == subTypeOf)
        {
            return registeredForType[i][0];
        } 
    } 
    
    return 0;
}

function GetRegisterdControlsReport()
{
    var result = "We Have: " + "\n\n";
    
    for (i=0; i < _registeredControls.length; i++) 
    { 
      var a = _registeredControls[i]; 
      result += "[ClientID] = " + a[0] + " [TypeID] = " + a[1] + " [SubTypeID] = " + a[2] + "\n"
    } 
    
    if( _registeredControls.length >0)
    {
        alert(result);
    }
}

function changePlayURL(url, type){
    player = new Player(player.playerType,url);
    player.draw();
}

function OnDSScriptCommandEvt (bstrType, bstrParam)
{ 
	timestamp = bstrParam; 
	timerIDThrd = setTimeout('interpolateTimestampEvent(' + timestamp + ')',0);
}

function changeVirtualPlayURL(url, startTime, endTime, detail, type)
{
	ClearTimer();
	activeEndTimeStamp = endTime;
	activetimeStamp = startTime;
	lastIndexExecuted = -1;
	changePlayURL(url, 'VI');
	//TODO: Check this out
	if (type == 2)
	{
		document.slide.src = detail;
		SetDropDownIndex();
		SetArchiveCurrSpeaker();
	}
	else
	{
	    var subTypes = GetRegisterdControls(RegisteredClientType_Slide);
        slideImageNameDiv = GetRegisterdControl(RegisteredClientSubType_Slide_Image_Div, subTypes);
        slideImageName = GetRegisterdControl(RegisteredClientSubType_Slide_Image_ID, subTypes);
		var objImg = getChildObject(slideImageNameDiv,slideImageName);
		objImg.src = detail;
		
	}
}

function slideOffset()
{
	var offset = null;
	if(playerCode=="WM")
	{
		offset = WM_ENCODER_OFFSET;
	}
	else if(playerCode=="REAL")
	{
		offset = REAL_ENCODER_OFFSET;
	}
	return offset;
}

function archiveSlideOffset()
{
	var Archoffset = null;
	if(playerCode=="WM")
	{
		Archoffset = WM_ENCODER_OFFSET_ARCH;
	}
	else if(playerCode=="REAL")
	{
		Archoffset = REAL_ENCODER_OFFSET_ARCH;
	}
	return Archoffset;
}

function InitializePlayer()
{
	playerFrame = "loaded";
}	

function OnAuthorChange(author)
{
	routeAuthorChangeNS(author);
}

function routeAuthorChangeNS(text)
{
	var timestamp = text; 
	interpolateTimestampEvent(timestamp);
}            					

function routeAuthorChangeIE(text)
{
	var timestamp = text; 
	interpolateTimestampEvent(timestamp);
}

function RealAudio2_OnAuthorChange(author)
{
	routeAuthorChangeNS(author);
}

///
//Gets the cookie value
///
function getCookie(cookieName) {
    var cookiestring=document.cookie;
    var index1=cookiestring.indexOf(cookieName);
    if (index1==-1 || cookieName=="") 
        return ""; 
    var index2=cookiestring.indexOf(';',index1);
    if (index2==-1)
        index2=cookiestring.length; 
    return unescape(cookiestring.substring(index1+cookieName.length+1,index2));
}

function surveyCall()
{
    if((webcastType == 3) && (showSurvey))
    {
        CloseWindow();
    }
}
var initialTimer;
function initActionFeed(UICode)
{

}
function currentTime()
{
    var dateobj;
    dateobj = new Date();
    return(dateobj.getHours()+":"+dateobj.getMinutes()+":"+dateobj.getSeconds());
}

function resizeWindow(width, height)
{
    if (parseInt(navigator.appVersion)>3)
    {
        if (navigator.appName.indexOf("Microsoft")!=-1)
        {
            document.body.offsetWidth = width;
            document.body.offsetHeight = height;
        }
        else
        {
            parent.window.innerWidth = width;
            parent.window.innerHeight = height;
        }
    }
}

function resizeInnerWindow(w, h){
    var x = 0;
    var y = 0;
	// make sure we have a final x/y value
	// pick one or the other windows value, not both
	if (x==undefined) x = parent.window.screenLeft || parent.window.screenX;
	if (y==undefined) y = parent.window.screenTop || parent.window.screenY;
	// for now, move the window to the top left
	// then resize to the maximum viewable dimension possible
	parent.window.moveTo(0,0);
	parent.window.resizeTo(screen.availWidth,screen.availHeight);
	// now that we have set the browser to it's biggest possible size
	// get the inner dimensions.  the offset is the difference.
	var inner = GetInnerSize();
	var ox = parent.screen.availWidth-inner[0];
	var oy = parent.screen.availHeight-inner[1];
	// now that we have an offset value, size the browser
	// and position it
	parent.window.resizeTo(w+ox, h+oy);
	//parent.window.moveTo(x,y);
}

function GetInnerSize () {
	var x,y;
	if (parent.innerHeight) // all except Explorer
	{
		x = parent.innerWidth;
		y = parent.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
		// Explorer 6 Strict Mode
	{
		x = document.documentElement.clientWidth;
		y = document.documentElement.clientHeight;
	}
	else if (document.body) // other Explorers
	{
		x = document.body.clientWidth;
		y = document.body.clientHeight;
	}
	return [x,y];
}
