/**** Flash Video Player Management ****/

// Globals
// Major version of Flash required
var requiredMajorVersion = 10;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Revision version of Flash required
var requiredRevision = 0;

var tvChannels = new Array();
tvChannels = ['indList','engList','machList'];
var ccfc = new Array();
var indList = new Array();

var sendVideo = function(vidFile,vidName,vidID){
	document.getElementById('flash').contentWindow.sendVideo(vidFile,vidName,vidID);
	if(vidID){//Pull Meta Data
		getVideoData(vidID);
	}
}

var stopVideo = function(vidName){
	var flash = getFlash(vidName);
	flash.stopVideo();
}

var getFlash = function(flashItem){
	if (navigator.appName.indexOf("Microsoft") != -1) {
	    return window[flashItem];
	} else {
	    return document[flashItem];
	}		
}

var deleteFlash = function(flashItem){
	if(navigator.appName.indexOf("Microsoft") != -1) {
	    window[flashItem] = null;
	} else {
	  	document[flashItem] = null;
	}	
}


/**** Video Meta Data and Lists from cfc.getVideoData ****/
var getVideoList = function(type,value){
	var gvd = new vidData();
	gvd.setCallbackHandler(popVidList);
	gvd.setErrorHandler(ajaxError);
	
	gvd.getVideoList(type,value);
}

var popVidList = function(result){
	var divList = document.getElementById('vidListHolder');
		
	divList.innerHTML = result;
	
}

var getVideoData = function(vidID){
	var gvd = new vidData();
	gvd.setCallbackHandler(popVidMetaData);
	gvd.setErrorHandler(ajaxError);
	
	gvd.getData(vidID);	
}

var popVidMetaData = function(result){
	var divName = document.getElementById('vidNameHolder');
	var divDesc = document.getElementById('vidDescHolder');
	
	divName.innerHTML = result.NAME;
	divDesc.innerHTML = result.DESC;
}

var clearVideoDataCFW = function(winName){
	var divName = document.getElementById('vidNameHolder');
	var divDesc = document.getElementById('vidDescHolder');
	
	divName.innerHTML = '&nbsp;';
	divDesc.innerHTML = '&nbsp;';
}

var getTesData = function(tesID){
	var gtd = new tesData();
	gtd.setCallbackHandler(popTesData);
	gtd.setErrorHandler(ajaxError);
	
	gtd.getData(tesID);	
}

var popTesData = function(result){
	var divName = document.getElementById('tesHolder');
	
	divName.innerHTML = result;
}

var getIndData = function(indID){
	var gid = new indData();
	gid.setCallbackHandler(popIndData);
	gid.setErrorHandler(ajaxError);
	
	gid.getData(indID);	
}

var popIndData = function(result){
	var divName = document.getElementById('indHolder');
	
	divName.innerHTML = result;
}

var toggleList = function(listName,xer,type){
	var list = document.getElementById(listName);
	if(!type || type == 'm'){
		var arTemp = tvChannels;
	} else if(type == 'c'){
		var arTemp = ccfc;
	} else if(type == 'i'){
		var arTemp = indList;
	}
	
	if(list.style.display == 'none'){
		for(var i = 0; i<arTemp.length;i++){
			var chkList = document.getElementById(arTemp[i]);
			var chkX = document.getElementById(arTemp[i] + 'X');
			chkList.style.display = 'none';
			chkX.innerHTML = '+';
		}
		list.style.display = 'inline';
		xer.innerHTML = '-';
	} else {
		list.style.display = 'none';
		xer.innerHTML = '+';
	}
}

var highlightList = function(item){
	item.style.backgroundColor = '#333333';
}

var dehighlightList = function(item){
	item.style.backgroundColor = '';
}

/**** CFWindow Management ****/
var createCFWindow = function(winNameMod,winTitle,winPage,winConfig,type){
	var winName = 'winVTC';
	var winURL = '/windows/' + winPage;
	var winBodyId = winName + '_body';
	
	if(winPage == '.cfm'){  
		alert('this page is not yet alive.');
	} else {
	
	var alignDiv = document.getElementById('headerImage');
	if(alignDiv.offsetLeft > 32){
		winConfig.x = alignDiv.offsetLeft;
	} else {
		var offset = alignDiv.offsetLeft;
		var alignParent = alignDiv.parentElement;
		offset = offset + alignParent.offsetLeft + 2;
		winConfig.x = offset;
	}	
	
	/*
	if(window.innerWidth != undefined){
		winConfig.x = Math.ceil((window.innerWidth / 2)) - 482;
	} else {
		var docEl = document.documentElement;
		winConfig.x = Math.ceil((docEl.offsetWidth / 2)) - 488;
	}
	*/
	winConfig.y = 66;

	if (type == "video"){
		if(!document.getElementById(winBodyId)) {
			ColdFusion.Window.create(winName,winTitle,winURL,winConfig);
			ColdFusion.Window.onHide(winName,stopVideoOnCFWHide);																	
		} else {
			ColdFusion.navigate(winURL,winName);
		}
	} else {
		ColdFusion.Window.create(winName,winTitle,winURL,winConfig);
		ColdFusion.Window.onHide(winName,destroyCFW);
	}
	myWindow = ColdFusion.Window.getWindowObject(winName);
	myWindow.toolbox.remove();
	myWindow.header.remove();
	myWindow.setTitle('');
	myWindow.shadow = false;
	
	ColdFusion.Window.show(winName);
	}
}

var closeCFWindow = function(winName){
	ColdFusion.Window.hide(winName);	
}

var destroyCFW= function(winName){
	ColdFusion.Window.destroy(winName,true);
}
var stopVideoOnCFWHide = function(winName){
	var winNameMod = winName.substr(3);
	var flashObject = 'videoplayer' + winNameMod;
	destroyCFW(winName);
}

/**** Error Handlers ****/
//Error Handler for CF AJAX calls
var ajaxError = function(statusCode, statusMsg){
	alert('Status: ' + statusCode + ', ' + statusMsg);
}