    var bInit, bLoop, qtTimer;
    var szgMsg = "";
    var szRez = "";
    var isFullScreen = "";
    var extPlayer = null;
    var wName = getExtWinName();					// generate window name
   
    /*These values are to be stored even if fullscreen page is loaded*/
    var currentSelection = "";
    var curScrollTop = 0;
      
    /*These values are only within the page*/
    var isMenuSelected = "";
    var curMenuSelection = "";
    var curInitPageSelection = "";
    var posFromTopofScreen = 0;    
    var curTopStream = "";
    var defaultChannelDefined = "";
    var isPaused = false;
    var isFF = false;
    var isRew = false;
    var isPlay = false;
      
    /*These values would have been #defines in C or C++*/
    var liveStreamHeight = 55;
    var liveStreamEdge = 6;
    var streamsPerPage = 5;
    var vodFileHeight = 55;
    var vodFolderHeight = 55;
    var vodEdge = 6;
    var vodFileEdge = 6;
    var vodFilesPerPage = 5;
    var vodFoldersPerPage = 5;
    
    var nLic = 2;   // Store license type. Init to no restrictions.
  
	/***************************************************************************/
	/* Menu button manipulation - Start
	*/
	function displayMenu()
	{
		isMenuSelected = true;
		if("None" == streamType)
		{
			MM_swapImgRestore();
			MM_swapImage('WatchTV','','images/STB/WatchTV-OFF.jpg',1);
			MM_swapImage('WatchVOD','','images/STB/VOD-OFF.jpg',1);
			MM_swapImage('Scheduled','','images/STB/Scheduled-Programs-OFF.jpg',1);
		}
		MM_showHideLayers('NavMenu', 'visible');
		fnSelectMenuOption(0);
	}
	
	function hideMenu()
	{		
		curMenuSelection = "";
		isMenuSelected = false;
		
		var val = 0;
		var index = 0;
		var sel = "";
		
		do
		{			
			val = "Option"+index;
			sel = document.getElementById(val);
			if(sel != null)
		sel.style.backgroundColor='#009454';//gjh scr 5902 #112369
			index++;
		}
		while(index < 7);   //<- DP, Emergency Broadcast: Upped index.
		
		MM_showHideLayers('NavMenu', 'hidden');
	}	
	
	function fnSelectMenuOption(curNum)
	{		
		if(curMenuSelection != "")
			document.getElementById(curMenuSelection).style.backgroundColor='#009454';//gjh scr 5902 #112369
		var id = "Option"+curNum;
		document.getElementById(id).style.backgroundColor='#666666'; //gjh scr 5902 #99ccFF
		curMenuSelection = id;
		isMenuSelected = true;
	}
      
	function fnDeSelectMenuOption(curNum)
	{
		var id = "Option"+curNum;
		document.getElementById(id).style.backgroundColor='#009454';//gjh scr 5902 #112369
		//isMenuSelected = false; //JVP commented this line -SCR:3310
	}
	
	function fnScrollMenu(isDown)
	{
		var curId = "";
			
		if(curMenuSelection != "")
			curId = curMenuSelection.charAt(6);
		else
			return;
		
		var curOption = "";
		
		if(isDown == true)
		{
			var lastNonNullId = curId;
			do
			{
				curId = parseInt(curId, 10) + 1;				
				curOption = "Option"+curId;
				sel = document.getElementById(curOption);
				if (sel != null) lastNonNullId = curId;
			}
			while(curId < 7 && sel == null);
		
			curId = lastNonNullId;
				
			if("None" == streamType)
			{
				var temp = document.getElementById('dummy');
				temp.focus();
			}
			else if("Scheduled" == streamType)
			{
				var temp = document.getElementById('txtSrch');
				temp.focus();
			}
			else if("Live" == streamType || "Content" == streamType)
			{
				var temp = document.getElementById('searchText');
				temp.focus();		
			}	
		
			fnSelectMenuOption(curId);
		}
		else
		{
			do
			{			
				curId = parseInt(curId, 10) - 1;
				curOption = "Option"+curId;
				sel = document.getElementById(curOption);
			}
			while(curId >= 0 && sel == null);
			
			if(curId < 0)
				curId = 0;
				
			if("None" == streamType)
			{
				var temp = document.getElementById('dummy');
				temp.focus();
			}
			else if("Scheduled" == streamType)
			{
				var temp = document.getElementById('txtSrch');
				temp.focus();
			}
			else if("Live" == streamType || "Content" == streamType)
			{
				var temp = document.getElementById('searchText');
				temp.focus();		
			}	
				
			fnSelectMenuOption(curId);
		}
	}
	/*  Menu button manipulation - End	*/
	/***************************************************************************/

	/***************************************************************************/
	/* Menu image manipulation - Start
	*/
    function MM_swapImage()
    {
        var i,j=0,x,a=MM_swapImage.arguments; 
        if(a[0] == "Menu")
        {
            isMenuSelected = true;
        }
        document.MM_sr=new Array;
        for(i=0;i<(a.length-2);i+=3)
        {
            if ((x=MM_findObj(a[i]))!=null)
            {
                document.MM_sr[j++]=x;
                if(!x.oSrc)
                    x.oSrc=x.src;
                x.src=a[i+2];
            }
        }
    }
    function MM_showHideLayers()
    {
        var v, obj, args = MM_showHideLayers.arguments;

        if ("NavMenu" == args[0] && "hidden" == args[1])
            isMenuSelected = false;

        if ((obj = MM_findObj(args[0])) != null)
        {
            if (obj.style)
            {
                obj = obj.style;
	
                if (args[1] != null){
                    obj.visibility = args[1];
                    if(viewer!="STB" && args[0]!='OptionsCaptions'){
                    if(args[1]=='visible'){
											obj.display='block';
                    }else{
											obj.display='none';
                    }
                    }
								}
                else
                {
                    v = (obj.visibility == 'visible') ? 'hidden' : 'visible';
                    obj.visibility = v;
                    if(viewer!="STB" && args[0]!='OptionsCaptions'){
										if(obj.visibility == 'visible'){
											obj.display='none';
                    }else{
											obj.display='block';
                    }
                    }
                }
            }
        }
    }
    function MM_findObj(n, d)
    {
        var p,i,x;
        if(!d)
            d=document;
        if((p=n.indexOf("?"))>0&&parent.frames.length)
        {
            d=parent.frames[n.substring(p+1)].document;
            n=n.substring(0,p);
        }
        if(!(x=d[n])&&d.all)
            x=d.all[n];
        for (i=0;!x&&i<d.forms.length;i++)
            x=d.forms[i][n];
        for(i=0;!x&&d.layers&&i<d.layers.length;i++)
            x=MM_findObj(n,d.layers[i].document);
        if(!x && d.getElementById)
            x=d.getElementById(n);
        return x;
    }
	/* Menu image manipulation - End	*/
	/***************************************************************************/

	/***************************************************************************/
	/* Initial page scrolling - Start
	*/
	function fnSelectInitPageOption(curNum)
	{
		var id = "StartupTable"+curNum;
		var sel = document.getElementById(id).summary;
		
		MM_swapImgRestore(); 
		switch(sel)
		{
			case "multicast":
				MM_swapImage('WatchTV','','images/STB/WatchTV-ON.jpg',1);
				break;
			case "content":
				MM_swapImage('WatchVOD','','images/STB/VOD-ON.jpg',1);
				break;
			case "scheduled":
				MM_swapImage('Scheduled','','images/STB/Scheduled-Programs-ON.jpg',1);
				break;
		}
		MM_showHideLayers('NavMenu', 'hidden');
		
		curInitPageSelection = id;		
	}
	
	function fnDeSelectInitPageOption(curNum)
	{
		MM_swapImgRestore();
	}
	
	function fnScrollOnInitialPage(isDown)
	{
		var val = "";
		var sel = "";
		var curSelNum = curInitPageSelection.charAt(12);
		
		if(isDown == true)
		{
			do
			{
				curSelNum = parseInt(curSelNum, 10) + 1;				
				val = "StartupTable"+curSelNum;
				sel = document.getElementById(val);
			}
			while(curSelNum <= numItems && sel == null);
			if(curSelNum > numItems)
				curSelNum = numItems;
			
			fnSelectInitPageOption(curSelNum);
		}
		else
		{
			do
			{			
				curSelNum = parseInt(curSelNum, 10) - 1;
				val = "StartupTable"+curSelNum;
				sel = document.getElementById(val);
			}
			while(curSelNum >= 0 && sel == null);
			
			if(curSelNum < 0)
				curSelNum = 0;
				
			fnSelectInitPageOption(curSelNum);
		}
	}
	/* Initial page scrolling - End	*/
	/***************************************************************************/
	
	/***************************************************************************/
	/* Multicast scrolling - Start
	*/
	function fnSelectStream(curNum)
	{
		if(currentSelection != "")
		{
			var length = currentSelection.length;
			var selId = currentSelection.substr(6, length - 6);		
			fnDeSelectStream(selId);
		}
		
		var id = "Stream"+curNum;
		document.getElementById(id).style.backgroundColor='#535d63'; //253676
		currentSelection = id;
		
		var d = document.getElementById('divList');
		if(d.scrollTop != curScrollTop)
		{
			if(curNum > 0)
				curScrollTop = curNum * (liveStreamHeight + liveStreamEdge);
			else
				curScrollTop = 0;
		}
		
		var curPageFirstStream = Math.ceil(d.scrollTop / (liveStreamHeight + liveStreamEdge));
		if(curNum > 0)
			posFromTopofScreen = ((curNum - curPageFirstStream) % streamsPerPage) * liveStreamHeight;
		else
			posFromTopofScreen = 0;
	}

    function fnScrollChannels(isDown)
	{	
		var length = currentSelection.length;
		var curId = currentSelection.substr(6, length - 6);
		var d = document.getElementById('divList');
		
		if(numStreams == 0)
			return;
			
		if(isDown == true)
		{
			if(curId == "0")
				return;
					
			curId = parseInt(curId, 10) - 1;
			if(curId < 0)
				curId = 0;
			
			if(curScrollTop != d.scrollTop)
			{
				d.scrollTop = curScrollTop;
				posFromTopofScreen = 0;
			}
			
			posFromTopofScreen = posFromTopofScreen - liveStreamHeight;

			if(posFromTopofScreen < 0)
			{
				posFromTopofScreen = 0;
				d.scrollTop = curId * (liveStreamHeight + liveStreamEdge);
			}
		}
		else
		{
			curId = parseInt(curId, 10) + 1;
			if(curId >= numStreams)
				curId = numStreams - 1;

			if(curScrollTop != d.scrollTop)
				d.scrollTop = curScrollTop;
				
			posFromTopofScreen = posFromTopofScreen + liveStreamHeight;
			if(posFromTopofScreen > ((liveStreamHeight - 5) * streamsPerPage))	//7 streams per page
			{
				posFromTopofScreen = 0;
				d.scrollTop = curId * (liveStreamHeight + liveStreamEdge);
			}
		}
		curScrollTop = d.scrollTop;
		fnSelectStream(curId);
	}
	
	function fnDeSelectStream(curNum)
	{
		var id = "Stream"+curNum;
		document.getElementById(id).style.backgroundColor='#009454'; //535d63
	}
        
    function ScrollLiveStreamPages(isDown)
    {		
		var length = currentSelection.length;
		var curId = currentSelection.substr(6, length - 6);
		var d = document.getElementById('divList');
		
		if(numStreams == 0)
			return;
			
		if(isDown)
		{
			curId = parseInt(curId, 10) + streamsPerPage;
			if(curId >= numStreams)
				curId = numStreams - 1;
			
			if(curScrollTop != d.scrollTop)
				d.scrollTop = curScrollTop;
			
			posFromTopofScreen = posFromTopofScreen + (liveStreamHeight * streamsPerPage);
			if(posFromTopofScreen > ((liveStreamHeight - 5) * streamsPerPage))	//7 streams per page
			{			
				posFromTopofScreen = 0;
				d.scrollTop = curId * (liveStreamHeight + liveStreamEdge);
			}
		}
		else
		{
			if(curId == "0")
				return;
						
			curId = parseInt(curId, 10) - streamsPerPage;
			if(curId < 0)
				curId = 0;
			
			if(curScrollTop != d.scrollTop)
			{
				d.scrollTop = curScrollTop;
				posFromTopofScreen = 0;
			}
			
			posFromTopofScreen = posFromTopofScreen - (liveStreamHeight * streamsPerPage);
			if(posFromTopofScreen < 0)
			{
				posFromTopofScreen = 0;
				d.scrollTop = curId * (liveStreamHeight + liveStreamEdge);
			}
		}
		
		curScrollTop = d.scrollTop;
		fnSelectStream(curId);
    }
	/* Multicast scrolling - End */
    /***************************************************************************/
    
    /***************************************************************************/
	/* VOD scrolling -Start
	*/
	function GetNumberOfFilesAbove(curTopStream)
	{
		var val = 0;
		var length = curTopStream.length;
		var curId = curTopStream.substr(6, length - 6);
		
		curId = parseInt(curId, 10);
		numFolders = parseInt(numFolders, 10);
		
		if(curId < numFolders)
			val = 0;
		else
		{
			val = curId - numFolders;
			if(val < 0)
				val = 0;
		}
		return val;
	}
	
	function GetNumberOfFoldersAbove(curTopStream)
	{
		var val = 0;
		var length = curTopStream.length;
		var curId = curTopStream.substr(6, length - 6);
		
		curId = parseInt(curId, 10);
		numFolders = parseInt(numFolders, 10);
		
		if(curId >= numFolders)		
			val = numFolders;
		else
		{
			val = curId - numFolders;
			if(val < 0)
				val = 0;
		}		
		return val;
	}
	
	function isFile(curId)
	{
		if(parseInt(curId, 10) < parseInt(numFolders, 10))
			return false;
		else
			return true;
	}
	
	function GetScrollPoint(curId)
	{
		var length = curTopStream.length;
		var topId  = curTopStream.substr(6, length - 6);
		
		if(!isFile(topId))
		{
			//first one is a folder
			var foldersOnPage = numFolders - topId;
			if(foldersOnPage > vodFoldersPerPage)
				foldersOnPage = vodFoldersPerPage;
			if(foldersOnPage < 0)
				foldersOnPage = 0;
				
			switch(foldersOnPage)
			{
				case 0:
					//5 files on page
					return ((vodFoldersPerPage) * (vodFolderHeight + vodEdge));
					//return ((vodFilesPerPage) * (vodFileHeight + vodFileEdge));
				case 1:
					//4 files on page
					return ((vodFoldersPerPage) * (vodFolderHeight + vodEdge));
					//return (((vodFilesPerPage - 1) * (vodFileHeight + vodFileEdge)) + 
					//		(foldersOnPage * (vodFolderHeight + vodEdge)));
				case 2:
					//3 files on page
					return ((vodFoldersPerPage) * (vodFolderHeight + vodEdge));
					//return (((vodFilesPerPage - 2) * (vodFileHeight + vodFileEdge)) + 
					//		(foldersOnPage * (vodFolderHeight + vodEdge)));
				case 3:
					//2 file on page
					return ((vodFoldersPerPage) * (vodFolderHeight + vodEdge));
					//return (((vodFilesPerPage - 3) * (vodFileHeight + vodFileEdge)) + 
					//		(foldersOnPage * (vodFolderHeight + vodEdge)));
				case 4:
					//1 file on page
					return ((vodFoldersPerPage) * (vodFolderHeight + vodEdge));
					//return (((vodFilesPerPage - 4) * (vodFileHeight + vodFileEdge))+ 
					//		(foldersOnPage * (vodFolderHeight + vodEdge)));
				case 5:
					//0 files on page
					return ((vodFoldersPerPage) * (vodFolderHeight + vodEdge));
					//return (((vodFilesPerPage - 4) * (vodFileHeight + vodFileEdge))+ 
					//		(foldersOnPage * (vodFolderHeight + vodEdge)));
				/*			
				case 6:
					//0 files on page
					return ((vodFoldersPerPage) * (vodFolderHeight + vodEdge));
				*/	
				default:
					//Error
					//return ((vodFilesPerPage) * (vodFileHeight + vodFileEdge));
					return ((vodFoldersPerPage) * (vodFolderHeight + vodEdge));
			}
		}
		else
		{
			//first one is a file
			return ((vodFilesPerPage) * (vodFileHeight + vodFileEdge))
		}
	}
	
	function GetScrollByValue(curId)
	{
		var scrollBy = 0;
		if(curId >= numFolders)
		{
			scrollBy =	(numFolders * (vodFolderHeight + vodEdge)) + 
						((curId - numFolders) * (vodFileHeight + vodFileEdge));
		}				
		else
			scrollBy = (curId * (vodFolderHeight + vodEdge));
		return scrollBy;
	}
	
	function GetTopStreamId(curId)
	{
		var foldersAbove = 0;
		var filesAbove = 0;
		var foldersAbove2 = 0;
		var filesAbove2 = 0;
		var topId = 0;
		var posFromTop = 0;
		
		if(isFile(curId) == true)
		{			
			foldersAbove = numFolders;
			filesAbove = curId - numFolders;
		}
		else
		{
			foldersAbove = curId;
			filesAbove = 0;
		}
		foldersAbove2 = foldersAbove;
		filesAbove2 = filesAbove;
		
		var d = document.getElementById('divList');
		posFromTop = (filesAbove * (vodFileHeight + vodFileEdge)) + (foldersAbove * (vodFolderHeight + vodEdge));
		
		var tempScroll = d.scrollTop;		
		if(tempScroll == 0)
		{
			var length = curTopStream.length;
			topId  = curTopStream.substr(6, length - 6);
			return topId;
		}	
		
		while(posFromTop > tempScroll)
		{			
			if(filesAbove == 0)
			{
				//We are on a folder
				foldersAbove = foldersAbove - 1;
				posFromTop = (foldersAbove * (vodFolderHeight + vodEdge));
			}
			else if(foldersAbove == numFolders)
			{				
				//we are on a file
				filesAbove = filesAbove - 1;
				if(filesAbove == 0)
					posFromTop = (foldersAbove * (vodFolderHeight + vodEdge));
				else
					posFromTop =	(foldersAbove * (vodFolderHeight + vodEdge)) + 
									(filesAbove * (vodFileHeight + vodFileEdge));
			}
		} //end of while
			
		if(posFromTop != tempScroll)
		{
			if(filesAbove2 == 0)
				foldersAbove++;
			else if(foldersAbove2 == numFolders)
				filesAbove++;
			
			if(foldersAbove > numFolders)
				foldersAbove = numFolders;
			if(filesAbove > numFiles)
				filesAbove = numFiles;
		}
		topId = parseInt(foldersAbove, 10) + parseInt(filesAbove, 10);
		return topId;	
	}
	
    function fnScrollVODChannels(isDown)
	{
		var length = currentSelection.length;
		var curId = currentSelection.substr(6, length - 6);
		var d = document.getElementById('divList');
		
		if(numStreams == 0)
			return;
			
		if(isDown == true)
		{
			if(curId == "0")
				return;
					
			curId = parseInt(curId, 10) - 1;
			if(curId < 0)
				curId = 0;
			
			if(curScrollTop != d.scrollTop)
				d.scrollTop = curScrollTop;
					
			if(isFile(curId))
				posFromTopofScreen = posFromTopofScreen - (vodFileHeight + vodFileEdge);
			else
				posFromTopofScreen = posFromTopofScreen - (vodFolderHeight + vodEdge);
				
			if(posFromTopofScreen < 0)
			{
				posFromTopofScreen = 0;
				d.scrollTop = GetScrollByValue(curId);
				curTopStream = "Stream"+curId;
			}	
		}
		else
		{
			curId = parseInt(curId, 10) + 1;
			if(curId >= numStreams)
				curId = numStreams - 1;
			
			if(curScrollTop != d.scrollTop)
				d.scrollTop = curScrollTop;
				
			var scrollPoint = GetScrollPoint(curId - 1);			
			var bFile = isFile(curId - 1);
			if(bFile)
				posFromTopofScreen = posFromTopofScreen + (vodFileHeight + vodFileEdge);
			else
				posFromTopofScreen = posFromTopofScreen + (vodFolderHeight + vodEdge);
			
			if(posFromTopofScreen >= scrollPoint)
			{
				posFromTopofScreen = 0;
				d.scrollTop = GetScrollByValue(curId);
				curTopStream = "Stream"+curId;
			}
		}		
		curScrollTop = d.scrollTop;
		fnSelectVODStream(curId, false);
	}
	
	function fnSelectVODStream(curNum, isMouseOver)
	{
		var filesAbove = 0;
		var foldersAbove = 0;
		
		if(currentSelection != "")
		{
			var length = currentSelection.length;
			var selId = currentSelection.substr(6, length - 6);		
			fnDeSelectVODStream(selId);
		}
		
		var id = "Stream"+curNum;
		document.getElementById(id).style.backgroundColor='#535d63';
		
		currentSelection = id;
		
		if(isMouseOver)
		{
			var topStreamId = GetTopStreamId(curNum);
			if(isFile(topStreamId))
			{			
				foldersAbove = numFolders;
				filesAbove = topStreamId - numFolders;
			}
			else
			{
				foldersAbove = topStreamId;
				filesAbove = 0;
			}
			curTopStream = "Stream"+topStreamId;
			curScrollTop = (foldersAbove * (vodFolderHeight + vodEdge)) + (filesAbove * (vodFileHeight + vodFileEdge));
	
			if(isFile(curNum))
			{			
				foldersAbove = numFolders;
				filesAbove = curNum - numFolders;
			}
			else
			{
				foldersAbove = curNum;
				filesAbove = 0;
			}
			posFromTopofScreen = (foldersAbove * (vodFolderHeight + vodEdge)) + 
								 (filesAbove * (vodFileHeight + vodFileEdge)) - 
								 curScrollTop;
		}
	}
	
	function fnDeSelectVODStream(curNum)
	{
		var id = "Stream"+curNum;
		document.getElementById(id).style.backgroundColor='#009454';
	}
	
	function ScrollDownVODPages()
	{
		var length = currentSelection.length;
		var curId = currentSelection.substr(6, length - 6);
		var d = document.getElementById('divList');
		
		var filesToScroll = 0;
		var foldersToScroll = 0;
		
		var topStreamId = GetTopStreamId(curId);
		
		if(numStreams == 0)
			return;
			
		if(isFile(topStreamId))
		{			
			foldersToScroll = 0;
			filesToScroll = vodFilesPerPage; //5 files per page
		}
		else
		{
			foldersToScroll = numFolders - topStreamId;
			if(foldersToScroll >= vodFoldersPerPage)
			{
				foldersToScroll = vodFoldersPerPage; //6 folders per page
				filesToScroll = 0;
			}
			else
			{
				switch(foldersToScroll)
				{
					case 0:
						filesToScroll = vodFilesPerPage;
						break;
					case 1:
						filesToScroll = vodFilesPerPage - 1;
						break;
					case 2:
						filesToScroll = vodFilesPerPage - 2;
						break;
					case 3:
						filesToScroll = vodFilesPerPage - 3;
						break;
					case 4:
						filesToScroll = vodFilesPerPage - 4;
						break;
					case 5:
						filesToScroll = vodFilesPerPage - 4;
						break;
					default:
						filesToScroll = 0;
						break;	
				}
			}			
		}
		
		curTopStream = "Stream"+topStreamId;
		curId = parseInt(curId, 10) + parseInt(foldersToScroll, 10) + parseInt(filesToScroll, 10);
		if(curId >= numStreams)
			curId = numStreams - 1;
			
		if(isFile(curId))
		{			
			foldersAbove = numFolders;
			filesAbove = curId - numFolders;
		}
		else
		{
			foldersAbove = curId;
			filesAbove = 0;
		}
		
		var newScrollTop =	(foldersAbove * (vodFolderHeight + vodEdge)) + 
							(filesAbove * (vodFileHeight + vodFileEdge));
		
		if(newScrollTop != d.scrollTop)
			d.scrollTop = newScrollTop;
			
		curScrollTop = d.scrollTop;	
		curTopStream = "Stream"+curId;
		fnSelectVODStream(curId, true); //set true so that the posFromTop and other variables are recalculated
	}
	
	function ScrollUpVODPages()
	{
		var length = currentSelection.length;
		var curId = currentSelection.substr(6, length - 6);
		var d = document.getElementById('divList');
		
		var filesToScroll = 0;
		var foldersToScroll = 0;
		
		var topStreamId = GetTopStreamId(curId);
		
		if(numStreams == 0)
			return;
			
		if(isFile(topStreamId))
		{			
			foldersAbove = numFolders;
			filesAbove = curId - numFolders;
        }
		else
		{
			foldersAbove = curId;
			filesAbove = 0;
		}
		
		if(filesAbove >= vodFilesPerPage)
		{
			filesToScroll = vodFilesPerPage;
			foldersToScroll = 0;
		}
		else
		{
			filesToScroll = filesAbove;
			switch(filesAbove)
			{
				case 0:
					if(foldersAbove > vodFoldersPerPage)
						foldersToScroll = vodFoldersPerPage;
					else
						foldersToScroll = foldersAbove;
					break;
				case 1:
					if(foldersAbove > vodFoldersPerPage)
						foldersToScroll = (vodFoldersPerPage - 2);//foldersToScroll = 4;
					else
						foldersToScroll = foldersAbove;
					break;
				case 2:
					if(foldersAbove > vodFoldersPerPage)
						foldersToScroll = (vodFoldersPerPage - 3);//foldersToScroll = 3;
					else
						foldersToScroll = foldersAbove; 
					break;
				case 3:
					if(foldersAbove > vodFoldersPerPage)
						foldersToScroll = (vodFoldersPerPage - 4);//foldersToScroll = 2;
					else
						foldersToScroll = foldersAbove;
					break;
				case 4:
					if(foldersAbove > vodFoldersPerPage)
						foldersToScroll = (vodFoldersPerPage - 5);//foldersToScroll = 1;
					else
						foldersToScroll = foldersAbove;						
					break;
				case 5:
				case 6:
					foldersToScroll = 0;
					break;
				default:
					foldersToScroll = 0;
					break;
			}
		}
	
		curTopStream = "Stream"+topStreamId;
		curId = parseInt(curId, 10) - parseInt(foldersToScroll, 10) - parseInt(filesToScroll, 10);
		if(curId < 0)
			curId = 0;
			
		if(isFile(curId))
		{			
			foldersAbove = numFolders;
			filesAbove = curId - numFolders;
		}
		else
		{
			foldersAbove = curId;
			filesAbove = 0;
		}
		var newScrollTop =	(foldersAbove * (vodFolderHeight + vodEdge)) + 
							(filesAbove * (vodFileHeight + vodFileEdge));
		
		if(newScrollTop != d.scrollTop)
			d.scrollTop = newScrollTop;
			
		curScrollTop = d.scrollTop;	
		curTopStream = "Stream"+curId;
		fnSelectVODStream(curId, true); //set true so that the posFromTop and other variables are recalculated
	}
	/* VOD scrolling - End	*/
    /***************************************************************************/

    /********************************************************************/
    /* client-side script for Thumbnail Create & Upload - Start
	*/
// selete a stream for thumbnail upload
function selThumbnail(assetName, assetType, imgIdx)
{
	var obj = ("MAC"==viewer)?postBack:document.getElementById("postBack").contentWindow;

	// persist current selected asset and its thumbnail
	document.getElementById("lblErrThumb").innerHTML = "";
	obj.document.getElementById("selProg").value = assetName;
	obj.document.getElementById("assetType").value = assetType;
	obj.document.getElementById("imageId").value = "img" + imgIdx;
		
	// display current selection
	var msg = "You have selected: <br /> " + assetName;
	msg += ".<br /><br />Please browse to an existing thumbnail and select \"Upload Image\".";
	obj.document.getElementById("dispAsset").innerHTML = msg;
}

// thumbnail operation
function thumbAction(action)
{
	var obj = self;
	
	if (action.indexOf("Create") >= 0)
	{
		obj = ("MAC" == viewer)?postBack:document.getElementById("postBack").contentWindow;
		
		if ("MSIE" == viewer || viewer=="linux")
		{
			var url=obj.document.getElementById('selURL').value;
			if(url.indexOf('asxGet.aspx')==-1){
				// retrieve seekTime from player control
				
				obj.document.getElementById("seekTime").value =qtplayer.document.getElementById("oVBPlayer").GetStreamTime();
			}else{
				obj.document.getElementById("seekTime").value =qtplayer.document.getElementById("WMPlayer").controls.currentPosition;
			}
		}
		else if ("MAC" == viewer)
		{
			// retrieve seekTime from player control
			// Note: can not retrieve seektime for now, just set to first iframe
			obj.document.getElementById("seekTime").value = 0;
		}
	}	
	else if (action.indexOf("Upload") >= 0)
	{
		if ("" == document.getElementById("selProg").value)
		{
			parent.document.getElementById("lblErrThumb").innerHTML = "Please select a content";
			return;
		}
		else if ("UploadThumb" == action &&
					"" == document.getElementById("thumbFile").value)
		{
			parent.document.getElementById("lblErrThumb").innerHTML = "Please select a image file";
			return;
		}	
	}
	obj.document.getElementById("postAction").value = action;
	obj.document.getElementById("oForm").submit();
}
    /* client-side script for Thumbnail Create & Upload - End    */	
    /********************************************************************/

    /********************************************************************/
    /* Misc Key Process - Start
    */	
// Chapter Back Key
function ChapterBackKey()
{
}

// Chapter Forward Key
function ChapterForwardKey()
{
}
			
// Help Key
function HelpKey()
{
  if (IsSDU()) SDUKey('Hide');
}
			
// Mute Key
function MuteKey()
{
    if (streamType == "Status")
        return;

    sound_Mute();
    
    var isM=document.getElementById('isMute');
    var isM2=document.getElementById('isMute2');
    if(isM){
			var bMute=isM.value;
			if(bMute==''){bMute='false';}
			
			if(bMute=='true'){
				isM.value='false';
				if(isM2)
					isM2.value='false';
			}else{
				isM.value='true';
				if(isM2)
					isM2.value='true';
			}
    }
}

// Scroll Up Key
function ScrollUpKey()
{
    if(isFullScreen)
        return;

    if(isMenuSelected == true)
    {
        fnScrollMenu(false);
    }
    else if("None" == streamType)
    {
        fnScrollOnInitialPage(false);
    }
    else if("Live" == streamType)
    {
        if (IsSDU())
          SDUKey('Hide');
          
        ScrollLiveStreamPages(false);
    }
    else if("Content" == streamType && currentSelection != "")
    {
        ScrollUpVODPages();
    }
    else if("Scheduled" == streamType)
    {
        ScrollLiveStreamPages(false);//dimensions are the same for the Multicasts and Scheduled pages
    }
    else if("Status" == streamType)
        if(!isMenuSelected)
        {
            var divTree=document.getElementById('Stat1_Tree1_divTree');
            divTree.scrollTop=divTree.scrollTop-divTree.offsetHeight;
        }
        
    return;
}

// Scroll Down Key
function ScrollDownKey()
{
    if(isFullScreen)
        return;

    if(isMenuSelected == true)
    {
        fnScrollMenu(true);
    }
    else if("None" == streamType)
    {
        fnScrollOnInitialPage(true);
        var temp = document.getElementById('dummy');
        temp.focus();
        return;
    }
    else if("Live" == streamType)
    {
        if (IsSDU())
          SDUKey('Hide');
          
        ScrollLiveStreamPages(true);
        var temp = document.getElementById('searchText');
        temp.focus();
    }
    else if("Content" == streamType && currentSelection != "")
    {
        ScrollDownVODPages();
        var temp = document.getElementById('searchText');
        temp.focus();		
    }
    else if("Scheduled" == streamType)
    {
        ScrollLiveStreamPages(true);//dimensions are the same for the Multicasts and Scheduled pages
        var temp = document.getElementById('txtSrch');
        temp.focus();
    }

    if(("Status" == streamType))
    {
        if(!isMenuSelected){
            var divTree=document.getElementById('Stat1_Tree1_divTree');
            divTree.scrollTop=divTree.scrollTop+divTree.offsetHeight;
        }

        var temp = document.getElementById('dummy');
        temp.focus();
    } 

    if(("Info" == streamType))
    {
        var temp = document.getElementById('dummy');
        temp.focus();
    }
}
			
// Info Key
function InfoKey()
{
    if (IsSDU())
      SDUKey('Hide');
          
    //Navigate to the View Info page for the selected item.  Ignore if we can't find the info URL.
    //	try
    //	{
    var element = document.getElementById("Info_" + currentSelection);
    if (element != undefined)
    {
        var infoURL = element.summary;
        if (infoURL != "") navURL(infoURL);
    }
    //	}
    //	catch {}
}

// Select Key
function SelectKey()
{
    var summary = "";
    
    if (isFullScreen)
        return;
        
    if (isMenuSelected == true)
    {
        if (curMenuSelection == "")
            return;
            
        summary = document.getElementById(curMenuSelection).summary;
        switch(summary)
        {
            case "home":
                document.location.href="Initial.aspx";
                break;
            case "multicast":
                document.location.href="Load.aspx?Loc=Multicasts.aspx";
                break;
            case "content":
                document.location.href="Load.aspx?Loc=ListContent.aspx";
                break;
            case "scheduled":
                document.location.href="Load.aspx?Loc=Scheduled.aspx";
                break;
            case "emergencybroadcast":  //DP, Emergency Broadcast.
                document.location.href="Load.aspx?Loc=EmergencyBroadcast.aspx";
                break;
            case "viewstatus":
                document.location.href="Load.aspx?Loc=ViewStatus2.aspx";
                break;
            case "login":
                document.location.href="Login.aspx";
                break;
        }
        return;
    }
    
    if (streamType == "Status")
        return;
        
    if ("None" == streamType)
    {
        summary = document.getElementById(curInitPageSelection).summary;
        switch(summary)
        {
            case "multicast":
                document.location.href="Load.aspx?Loc=Multicasts.aspx"
                break;
            case "content":
                document.location.href="Load.aspx?Loc=ListContent.aspx"
                break;
            case "scheduled":
                document.location.href="Load.aspx?Loc=Scheduled.aspx"
                break;
        }
    }
    else 
    {
        if (numStreams == 0)
            return;
            
        if ("Live" == streamType || "Scheduled" == streamType)
        {
            if(currentSelection == "")
                return;

            summary = document.getElementById(currentSelection).summary;
            if(Viewer!=enumViewer.VBrickSTB){
							var length = summary.length;
							var args = summary.substring(8,length-1);

							var pos1 = args.indexOf('\'');
							var pos2 = args.indexOf('\'', pos1+1);
							var name = args.substring(pos1+1, pos2);

							pos1 = args.indexOf('\'', pos2+1);
							pos2 = args.indexOf('\'', pos1+1);
							var msg = args.substring(pos1+1, pos2);

							pos1 = args.indexOf('\'', pos2+1);
							pos2 = args.indexOf('\'', pos1+1);
							var url = args.substring(pos1+1, pos2);

							pos1 = args.indexOf('\'', pos2+1);
							pos2 = args.indexOf('\'', pos1+1);
							var type = args.substring(pos1+1, pos2);

							pos1 = args.indexOf('\'', pos2+1);
							pos2 = args.indexOf('\'', pos1+1);	
							var recstate = args.substring(pos1+1, pos2);

							fnMCast(name, msg, url, type, recstate);	// need change!!!! check with 
            
            }else{
							var args=summary.split(":"); //[name]:[event]:[GID]:[SDUTemplate]
							STB_createreq(args[0],args[1],args[2],args[3]);
            }
            
        }
        
        if ("Content" == streamType)
        {
            if (currentSelection == "")
                return;

            summary = document.getElementById(currentSelection).summary;
						var url = summary.substring(0, 6);		
            var args = summary.substring(8,summary.length-2).split("', '");
            var target = args[0];
            var message = (args.length > 1 ? args[1] : "");

            if(url == "fnPlay"){
								if(Viewer==enumViewer.VBrickSTB){
									var args2=summary.split(":"); //fnPlay:[name]:[event]:[GID]:[SDUtemplate]
									STB_createreq(args2[1],args2[2],args2[3],args2[4])
								}else{
									fnPlay(target, currentSelection, curScrollTop, message);
								}
            }else if (url == "setUrl")
                setUrl(target);
            else
                prevPage();
        }
    }
}
			
// Volume Up Key
function VolumeUpKey()
{
    if(streamType == "Status")
        return;

    sound_MainVolumePlus();
    var isM=document.getElementById('isMute');
    
    if(isM){
			isM.value='false';
			
    }
}			
// Volume Down Key
function VolumeDownKey()
{
    if(streamType == "Status")
        return;

    sound_MainVolumeMinus();
    var isM=document.getElementById('isMute');
    
    if(isM){
			isM.value='false';
		
    }
}

// FullScreen Key
function FullScreenKey()
{
    if("None" == streamType)
        return;

    if(streamType == "Status")
        return;				

    if(isFullScreen)
    {
        if("Live" == streamType || "Scheduled" == streamType)
            setPrevScreen("", streamType);
            
        else if("Content" == streamType)
        {
            var folder = getFolderFromURL( curVidName )
            setPrevScreen(folder, streamType);
        }
    }
    else
    {
        if("Content" == streamType || "Live" == streamType || "Scheduled" == streamType)
        {
            fullScreenWrap( curVidName );
        }
    }
}
			
// Channel Up Key
function ChannelUpKey()
{
    if(streamType == "Status")
        return;

    if("None" == streamType)
        return;
        
    if(isFullScreen)
        return;

    hideMenu();
    
    if("Live" == streamType)
    {
       if (IsSDU())
          SDUKey('Hide');

        fnScrollChannels(true);
    }
    else if("Content" == streamType && currentSelection != "")
        fnScrollVODChannels(true);
    else if("Scheduled" == streamType)
        fnScrollChannels(true);
}
			
// Channel Down Key
function ChannelDownKey()
{
    if(streamType == "Status")
        return;

    if("None" == streamType)
        return;
        
    if(isFullScreen)
        return;
			
    hideMenu();
    
    if("Live" == streamType)
    {
       if (IsSDU())
          SDUKey('Hide');

        fnScrollChannels(false);
    }
    else if("Content" == streamType && currentSelection != "")
        fnScrollVODChannels(false);
    else if("Scheduled" == streamType)
        fnScrollChannels(false);//dimensions are the same for Multicasts and Scheduled pages
}
			
// WWW key		
function WWWKey()
{
}

// TV Key
function TVKey()
{
	if(viewer=="STB"){
		isPlay = false;	
		//LogPlayerStop() is declared in main.js, which has not been loaded yet if the user presses
		//the TV Key on the remote right after logging in.  Apparently you can't test 'undefined' on
		//a function so we will test on LID, which is also defined in main.js
		if (typeof(LID) != 'undefined')
			LogPlayerStop();

		try 
		{
			stbStop(streamType);
		}
		catch(e){}
	}
	if(isFullScreen)
	{
		var obj //= document.getElementById("postBack").contentWindow;
		if (window.location.href.indexOf("FullScreen.aspx") == -1)
			obj = ("MAC"==viewer)?postBack:document.getElementById("postBack").contentWindow;
		else
			obj = self;
			
		document.video.RecState.value = obj.document.getElementById("recState").value;
		url = "Multicasts.aspx";		
		document.video.action = url;
		document.video.submit();
	}
	else
	{
		document.location.href="Load.aspx?Loc=Multicasts.aspx";
		isFullScreen = false;
	}
}
			
// VOD Key - not on KB, only on Remote
function VODKey()
{
  if (nLic < 2)   // If license has restrictions ...
    return;       // Quit.
    
	if(isFullScreen)
	{
		var obj //=document.getElementById("postBack").contentWindow;
		if (window.location.href.indexOf("FullScreen.aspx") == -1)
			obj = ("MAC"==viewer)?postBack:document.getElementById("postBack").contentWindow;
		else
			obj = self;
		
		document.video.RecState.value = obj.document.getElementById("recState").value;
		url = "ListContent.aspx";		
		
		LogPlayerStop();		
		
		//Stop playback if push VOD from fullscreen
		if(document.getElementById('streamType').value=='Live'){
			isPlay = false;
			stbStop(streamType);
		}
		
		document.video.action = url;
		document.video.submit();
	}
	else
	{
		document.location.href="Load.aspx?Loc=ListContent.aspx";
		isFullScreen = false;
	}
}

// Record Key
function RecordKey()
{
	if(streamType == "Status")
		return;
		
	if("Live" == streamType || "Scheduled" == streamType)				
		record();
}
			
// Menu Key
function MenuKey()
{		
	if(isFullScreen)
		return;
		
	if (IsSDU())
		SDUKey('Hide');
	
	if (!isMenuSelected)
		displayMenu();
	else
		hideMenu();  //DP, SCR 2524.
}
    /* Mis Key Process - End    */	
    /********************************************************************/



	/***************************************************************************/
	/* Misc Processing - Start
	*/
	function initPage(setVideo, fullScr)
{	
		isFullScreen = fullScr;

		if (fullScr)
		{
			stbInit(setVideo, true);
		}
		else
		{
			
			qtTimer = 0;
		
			// extra init for STB
			if ("STB" == viewer)
	{
				stbInit(setVideo, false);		// ture: full screen, false: preview
				HideInactiveMousePointer();
				
				if("None" == streamType)
				{
					curInitPageSelection = "StartupTable0";
					fnSelectInitPageOption(0);
					/*There were problems when trying to adjust the scrolling,
					 * Setting the numItems to 2 always solves many problems*/
					if(numItems == 3)
						numItems = 2;
				}
				if("Content" == streamType)
				{					
					var length = 0;
					var selId = 0;
					currentSelection = document.getElementById("CurSelection").value;					
					curScrollTop = document.getElementById("CurScrollTop").value;
					
					if(curScrollTop == "")
						curScrollTop = 0;
					curScrollTop = parseInt(curScrollTop, 10);
					
					if(currentSelection != "")
					{
						length = currentSelection.length;
						selId = currentSelection.substr(6, length - 6);
						fnSelectStream(selId);
					}
		else
					{
						currentSelection = "Stream0";
						fnSelectStream(0);
					}
					//On init, the selected stream is made the first stream in the page
					curTopStream = currentSelection;
					posFromTopofScreen = 0;
					var d = document.getElementById('divList');
		
					var files = GetNumberOfFilesAbove(curTopStream);
					var folders = GetNumberOfFoldersAbove(curTopStream);
		
					d.scrollTop =	(files * (vodFolderHeight + vodFileEdge)) + 
									(folders * (vodFileHeight + vodEdge));
					curScrollTop = d.scrollTop;
				}
				if("Live" == streamType || "Scheduled" == streamType)
		{
					currentSelection = document.getElementById("CurSelection").value;
					curScrollTop = document.getElementById("CurScrollTop").value;
					
					if(curScrollTop == "")
						curScrollTop = 0;
					
					if(isDefaultDefined == "True")
					{
						if(currentSelection == "")
						{
							currentSelection = "Stream"+defStream;
							fnSelectStream(defStream);
							posFromTopofScreen = defStream * liveStreamHeight;
				}
						else
						{
							var length = currentSelection.length;
							var selId = currentSelection.substr(6, length - 6);
							fnSelectStream(selId);
							
							var d = document.getElementById('divList');
							d.scrollTop = curScrollTop;
							
							var curPageFirstStream = Math.ceil(d.scrollTop / (liveStreamHeight + liveStreamEdge));
							if(selId > 0)
								posFromTopofScreen = ((selId - curPageFirstStream) % streamsPerPage) * liveStreamHeight;
							else
								posFromTopofScreen = 0;
			}
			}
					else
					{
						if(currentSelection == "")
						{
							currentSelection = "Stream0";
							fnSelectStream(0);
							/*First stream is selected*/
							posFromTopofScreen = 0;
		}
						else
		{
							var length = currentSelection.length;
							var selId = currentSelection.substr(6, length - 6);
							fnSelectStream(selId);
							
							var d = document.getElementById('divList');
							d.scrollTop = curScrollTop;
							
							var curPageFirstStream = Math.ceil(d.scrollTop / (liveStreamHeight + liveStreamEdge));
							if(selId > 0)
								posFromTopofScreen = ((selId - curPageFirstStream) % streamsPerPage) * liveStreamHeight;
							else
								posFromTopofScreen = 0;
						}
					}
				} //end of if (streamType == Live)
			}
			// reload external player to get window object if it is post back with external player open
			else if (null != extPlayer && "" != extPlayer && "1" != document.getElementById("extPlayer").value)
			{
			    if(bMultipleExtPlayer=="TRUE")
    				extPlayer = window.open("ExternalPlayer.aspx", wName + Date(), "status=yes,resizable");
    			else
				extPlayer = window.open("ExternalPlayer.aspx", wName, "status=yes,resizable");
				extPlayer.opener = window;
			    if(bMultipleExtPlayer=="TRUE")
    				extPlayer = null;
			}
		}
	}
	
	function unInitPage(streamType)
	{
		try
		{
			if ("MSIE" == viewer) 			
			{
				qtplayer.document.getElementById("oVBPlayer").Close();
			}
			else if ("MAC" == viewer)
			{
			  //qtplayer.document.getElementById("QTPlayer").innerHTML = "";
			}
			else if ("STB" == viewer && !stbFullScreen)
			{
				stbUninit();	// Live: live stream, Content: vod content
			}
			}
		catch (error)
		{
		}
		}
		
	function setPrevScreen(folder, streamType)
		{
		var url = "Initial.aspx";
			
		if ("Content" == streamType)
		{
			url = "ListContent.aspx?Folder=" + folder;
			}
		else
		{
			document.video.RecState.value = 
			  document.getElementById("recState").value;
			  
		  if ("Live" == streamType)
		  {
			  url = "Multicasts.aspx";
		  }
			else if ("Scheduled" == streamType)
		  {
				url = "Scheduled.aspx";
	    }
	}
		
		if ("STB" == viewer){
			
			document.video.volumeLevel.value=sound_GetMainVolume();
				
		}
		
		document.video.action = url;
		document.video.submit();
	}
	
	function getFolderFromURL( curVidName )
	{
		var curFolder = "";
		var firstSlashPos = curVidName.indexOf('/');
		var lastSlashPos = 0;
		
		var i = curVidName.length - 1;
		do
		{			
			if(curVidName[i] == "/")
			{
				lastSlashPos = i;
				break;
			}
			i--;
		}
		while(i > 0);
		
		if(lastSlashPos > firstSlashPos)
		{
			curFolder = curVidName.substring(firstSlashPos, lastSlashPos+1);
		}
	else
	{
			curFolder = "/";
	}
		return curFolder;
}

    function getIp(url)
    {
	    var sPos = url.indexOf("ip=") + 3;
	    var ePos = url.indexOf("&port=");
	    var ip = url.substring(sPos, ePos);
	    return ip;
    }

    function getPort(url)
    {
      var szTmp;	
	    var sPos = url.indexOf("&port=") + 6;
	    szTmp = url.substring(sPos)
	    var ePos = szTmp.indexOf("&");
	    var port = szTmp.substring(0, ePos);
	    return port;
    }

    function retreiveKeyFromBuff(url)
    {
	    var escUrl = fnUnEscSDP(url);
    	
	    var key, ip, vPort, aPort;
    	
	    ip = retrieveMsg("c=IN IP4", "/", " ", escUrl);		// get ip address
	    vPort = retrieveMsg("m=video", "/", " ", escUrl);	// get video port
	    aPort = retrieveMsg("m=audio", "/", " ", escUrl);	// get audio port
	    key = ip + "_" + vPort + "_" + aPort;
    	
	    return key;
    }

    function retrieveMsg(sTag, eTag1, eTag2, buff)
    {
	    var sPos = buff.indexOf(sTag) + sTag.length;
	    var sbuff = (buff.substring(sPos, buff.length)).replace(" ", "");
	    var ePos = Math.min(sbuff.indexOf(eTag1), sbuff.indexOf(eTag2));
	    return sbuff.substring(0, ePos);
    }

    function fnUnEscSDP(szURL)
    {
      // Converts escaped character value in SDP information string back to regular
      // character value.
      var szEscdSDP = szURL;
      var szEsc = ">>><<>";
      var szAsc, szSrch;
      var szUnEscdSDP = "";
      
      var nAsc, nPos1, nPos2, nPos3;
      
      var cAsc;

      while (true)
      {
	      nPos1 = szEscdSDP.indexOf(szEsc);
      	
	      if (nPos1 != -1)
	      {
		      szSrch = szEscdSDP.substr(0, nPos1);
		      nPos2 = nPos1 + szEsc.length;
		      nPos3 = nPos2 + 2;
      		
		      szAsc = szEscdSDP.substring(nPos2, nPos3);
		      nAsc = parseInt(szAsc, 16);
		      cAsc = String.fromCharCode(nAsc);
        	
		      szUnEscdSDP = szUnEscdSDP + szSrch + cAsc;
		      szEscdSDP = szEscdSDP.substr(nPos3, szEscdSDP.length - nPos3);
	      }
	      else
	      {
		      szUnEscdSDP = szUnEscdSDP + szEscdSDP;
		      break;
		    }
      }

      return szUnEscdSDP;
    }

    // external player window name
    function getExtWinName(bMulti)
    {
      // we will have one external player per session
      // so use cookie name as external player's window name
      if(bMulti)
      {
          var dt = new Date();
          var st = dt.getSeconds().toString();
          return document.SessionID + st;
      }
      else
      return document.SessionID;
    }


    function fnLoad(szLoc, szCC)
    {
      var obj = self;
      if (szLoc.indexOf("AdminThumbCreate") >= 0)
         obj = parent;
         
      // set external player flag
      if (extPlayer && !extPlayer.closed)
        szLoc += "?ExtPlayer=1";

     if(document.all){
      obj.oLoad.CCOp.value = szCC;
      obj.oLoad.Loc.value = szLoc;
      obj.oLoad.Rez.value = obj.szRez;
      obj.oLoad.submit();
      }else{ //firefox
		    obj.document.getElementById('oLoad').CCOp.value = szCC;
		    obj.document.getElementById('oLoad').Loc.value = szLoc;
		    obj.document.getElementById('oLoad').Rez.value = obj.szRez;
		    obj.document.getElementById('oLoad').submit();
      }
    }
    
    // set external player flag when reload video-on-demand content
    function prevPage()
    {
    	var url = document.getElementById("moveUp").value;
    	setUrl(url);
    }

// set record button
function setRecordButton(szRec, srcOff, srcOn, obj)
{
  if ("Start" == szRec)
  {
    obj.src = srcOff;
	obj.alt = "Start Recording";
  }
  else if ("Stop" == szRec)
  {
    obj.src = srcOn;
	obj.alt = "Stop Recording";
  }
  else if ("" != szRec)
  {
    alert(szRec);
  }
}	  

function getRecordState(tag, states)
{
	var ret = "";

	try
	{
		var item = states.split(",");
		for (idx = 0; idx < item.length; idx++)
		{
			var pos = item[idx].indexOf(tag);
			if (pos >= 0)
			{
				ret = item[idx].substring(item[idx].indexOf("=")+1);
				break;
			}
		}
	}
	catch (err)
	{
	}	
	return ret;
}

function updateMessage(szRec, szMsg)
{
  var obj 
  if(opener)
		return;
  else
		obj= ("MAC"==viewer)?postBack:document.getElementById("postBack").contentWindow;
  var recMsg = getRecordState("Message", obj.document.getElementById("recState").value);
  if ("" == recMsg)
  {
    // only display general or globa message if there is no recording message
    document.getElementById("lblMsg").innerHTML = szMsg;
  }
  else
  {
    // display recording message if there is a recording in progress
    if(viewer=="STB"){
			recMsg = "<b><font color='yellow'>" + recMsg + "</font></b>";
			document.getElementById("lblMsg").innerHTML = recMsg;	// record message will overrite general message
    }else{
			document.getElementById("lblMsg").innerHTML = recMsg;
    }
    
    // update recState if record completed or failed
    if ("Start" == szRec)
    {
		var tag = "Message=";
		var obj = ("MAC"==viewer)?parent.postBack:parent.document.getElementById("postBack").contentWindow;
		var recObj = obj.document.getElementById("recState");					
		recObj.value = recObj.value.substring(0, recObj.value.indexOf(tag)+ tag.length);
    }
  } 
}

function updateMessageWin2000(szRec, szMsg)
{
  if(opener)
		return;

  var recMsg = getRecordState("Message", postBack.document.getElementById("recState").value);
  if ("" == recMsg)
  {
    // only display general or globa message if there is no recording message
    document.getElementById("lblMsg").innerHTML = szMsg;
  }
  else
  {
    // display recording message if there is a recording in progress
   document.getElementById("lblMsg").innerHTML = recMsg;
   
    
    // update recState if record completed or failed
    if ("Start" == szRec)
    {
		var tag = "Message=";
		var recObj = postBack.document.getElementById("recState");					
		recObj.value = recObj.value.substring(0, recObj.value.indexOf(tag)+ tag.length);
    }
  } 
}


function fnSearch(e, nSrch)
{
	var key;

	if ("STB" == viewer || !document.all)
		key = e.which;
	else
		key = window.event.keyCode;
	
	if ((nSrch == 1) || (key == 13))  //Search.
	{
		document.getElementById('oForm').submit();
	}
	
	if (nSrch == 2)  //Clear.
	{
		document.getElementById('searchText').value = "";
		document.getElementById('searchType').selectedIndex = 0;
		document.getElementById('oForm').submit();
	}
}

function setMessage(obj, asset)
{
  // reset program name
  if (asset == null)
  {
	if ("STB" == viewer && "" != curVidName && "" != curVidType)
	{
	  // reset selected program and url after load from full screen
	  obj.document.getElementById("selProg").value = document.video.Program.value; 	
	}		
	asset = obj.document.getElementById("selProg").value;
  }
  else
    obj.document.getElementById("selProg").value = asset;
  
  if (asset == null || asset == "")
    szgMsg = document.getElementById("lblProg").innerHTML;
  else
  {
    // display program on message area  
    var nPos = asset.lastIndexOf("/") + 1;
    var szProg = asset.substring(nPos);
 
    var maxMsg = ("STB" == viewer) ? 18:24;

    if (szProg.length > maxMsg)
      szProg = szProg.substring(0, maxMsg) + "<br />" + szProg.substring(maxMsg);
    
    if(!opener){
			document.getElementById("lblProg").style.fontWeight  = "bold"; 
			document.getElementById("lblProg").innerHTML = szProg;
    }
  }
}
  
  
// open document
function openDoc(url)
{
	try
	{
		window.open(url);
	}
	catch (error)
	{
		alert("Failed to open " + url + ".");
	}
}

// Open URL within current window.
function navURL(url)
{
	try
	{	
		document.location.href = url;
	}
	catch (error)
	{
		alert("Failed to navigate to '" + url + "'.");
	}
}

// Open URL pop-up window.
function popUpURL(url)
{
	var width = 780;
	var height = 530;
	var left = (screen.width-width) / 2;
	var top = (screen.height >= 768 ? (screen.height-height) / 2 : 0);
	var features = "width=" + width + ",height=" + height + ",left=" + left + ",top=" + top + ",status=no,toolbar=no,scrollbars=no,location=no,resizable=yes,menubar=no,directories=no,copyhistory=no";
	
	try
	{	
		window.open(url + "&Popup=Yes", "_blank", features);
	}
	catch (error)
	{
		alert("Failed to open popup '" + url + "'.");
	}
}


//called from Multicasts.aspx,Listcontent.aspx,Scheduled.aspx to hidemenu for linux see scr:4143
function hidemenu(){
	try{
		MM_showHideLayers('NavMenu','hidden');
	}catch(e){}
}

// Handles the "twisty" open and close
function TwistyClick(divID)
{
	oBar = document.getElementById(divID);

	if (oBar.style.display == "none")
		oBar.style.display = "block";
	else if(oBar.style.display == "block")
		oBar.style.display = "none";
}

function TwistyMouseOver(div)
{
	div.style.background = "url(/MCSScheduler/Images/Toolbar-ON.jpg) no-repeat";
}

function TwistyMouseOut(div)
{
	div.style.background = "url(/MCSScheduler/Images/Toolbar-OFF.jpg) no-repeat";
}

function IsSDU()
{
  var bIs = false;
  var sdu_panel = document.getElementById('sdu_panel');
  
	if (sdu_panel)
    bIs = (sdu_panel.style.display == 'block');
	
	return bIs;
}

	/* Misc Processing - End	*/
	/***************************************************************************/

/***************************************************************************/
/* Playlist / Bookmark Processing - Start	*/

function GetPlayerTimeIndex()
{
	if(SelectedContentItem==null) return 0;
	
	var timeindx=0;
	var plyr;
	if (Viewer==enumViewer.MacPC
	    && ((GetStreamTypeEnum(SelectedContentItem.Type)==enumStreamType.MPG4 && !UseVbrickPlayer_MACMPG4)||GetStreamTypeEnum(SelectedContentItem.Type)==enumStreamType.WM))
	{}
	else
	{
		if(GetStreamTypeEnum(SelectedContentItem.Type)==enumStreamType.WM){
			plyr=qtplayer.document.getElementById("WMPlayer");
			timeindx=plyr.controls.currentPosition;
		}else{
			plyr=qtplayer.document.getElementById("oVBPlayer");
			timeindx=plyr.GetStreamTime()
		}
	}
	return Math.round(timeindx);
}

function CreateBookMark()
{
    if(_currenturl==null || SelectedContentItem==null){
		alert('Please select a content item');
		return;
	}

    CreateBMReq(enumEvent.BookMarkCreate,SelectedContentItem.UniqueID, GetPlayerTimeIndex());
}
function CreateBMReq(evente, contentid, offSet)
{
    var sRequest;
    sRequest = "<Request> ";
    sRequest = sRequest + "<Page>" + ThisPage + "</Page>";
    sRequest = sRequest + "<Event>" + evente + "</Event>"
    sRequest = sRequest + "<SessionID>" + SessionID + "</SessionID>"
    sRequest = sRequest + "<Username>" + UserName + "</Username>"
    sRequest = sRequest + "<ContentID>" + contentid + "</ContentID>"
    sRequest = sRequest + "<Offset>" + offSet + "</Offset>"
    sRequest = sRequest + "</Request>"

    new Ajax.Request("../handlers/handler.aspx",
    {
        method: 'post',
        parameters: 'xmlinput=' + sRequest,
        onSuccess: function(transport)
        {
            var sError = GetValueFromXML(transport.responseText, "ErrorString");
            if((sError == null) || (sError == ""))
                alert("Bookmark Created in /MyMedia folder.\r\n\r\nClick on the Asset Library link to refresh the list if the /MyMedia folder is not visible.");
            else
                alert(sError);

        }
    });
}

function GetValueFromXML(xmlString, key)
{
    // Create a new DOM object
    var dom = new XMLDom();
    
    if(dom != null && xmlString != null && xmlString != "")
    {
        // Parse the XML string
	    dom.FromXML(xmlString);
    	
	    // Retrieve the element
	    var e = dom.GetSingleElement(key);
	    
	    if(e != null)
	        return e.Value;
	}
	
	return;
}

/* Playlist / Bookmark Processing - End	*/
/***************************************************************************/


function MM_swapImgRestore()
{
  var i, x, a = document.MM_sr; 
  for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++)
    x.src = x.oSrc;
}
