// JavaScript Document
function test(newTestHTML){
	document.getElementById("tester").innerHTML = newTestHTML;
}

// Define variables
var player_src = vcmsRoot + "vcms/framework/player.swf";
var player_skin = vcmsRoot + "vcms/framework/modieus.swf";
var previousHTML;
var previousHeight;
var xmlhttp;
var selector = 0;
var playlist2 = new Array();
var playlisting = 0;
var playhead2 = 1;
var playend2 = 6;


function player_builder(bStreamer,bFile,bType,bVol,bControl,bDiv,bId, bTag, bTag2, bFile_low, bFileId){
	var bVodFilePrefix = vodFilePrefix;	
	if("yes" == isLive){
		bVodFilePrefix = "";
		bTag = "You are watching this show LIVE!";
		bTag2 = "";
	}
	document.getElementById("select_video").innerHTML = "";
	
	if(selector == 1){
		document.getElementById("video_subtext").innerHTML = "<font size=2>Video not playing smoothly? Click <a href='#' onclick='change(\"" + bFileId + "\",2);'><b>here</b></a> to watch a lower bitrate version.</font><br /><br />" + bTag + "<br /><font size=2>" + bTag2 + "</font>";
	}else if(selector == 2){
		bFile = bFile_low;
		document.getElementById("video_subtext").innerHTML = "<font size=2>Click <a href='#' onclick='change(\"" + bFileId + "\",1);'><b>here</b></a> to watch the higher bitrate version.</font><br /><br />" + bTag + "<br /><font size=2>" + bTag2 + "</font>";
	}else{
		document.getElementById("video_subtext").innerHTML = bTag + "<br /><font size=2>" + bTag2 + "</font>";
	}
	
	if(window.UpdateShareLink) UpdateShareLink(bFileId);
	
	if("yes" == isLive){
		var flashvars =
			'streamer=' + bStreamer +
			'&file=' + bVodFilePrefix + bFile +		
			'&type=' + bType +		
			'&skin=' + player_skin +
			'&volume=' + bVol +
			'&controlbar=' + bControl +
			'&buffer=5&autostart=true&rtmp.subscribe=true'
			;
	}else{
		var flashvars =
			'streamer=' + bStreamer +
			'&file=' + bVodFilePrefix + bFile +		
			'&type=' + bType +		
			'&skin=' + player_skin +
			'&volume=' + bVol +
			'&controlbar=' + bControl +
			'&buffer=5&autostart=true'
			;
	}
	
	var so = new SWFObject(player_src, bId,'100%','100%','10');
	so.addParam('allowfullscreen','true');
	so.addParam('wmode','window');
	so.addParam('flashvars',flashvars);
	
	so.write(bDiv);

}

function change_main(rId, rFile, rFile_low, rFile_iphone, rTitle, rCaption, rTag, rTag2){
	
		//if mobile, send to mobile video url direct
		try{
			if(is_mobile && rFile_iphone != "00"){
				window.location = rHTTP + vodFilePrefix + rFile_iphone;
			}
		}catch(e){}

		// rebuild main with thumb["id"] settings
		var temp_streamer = "";		
		if("yes" == isLive){			
			temp_streamer = lStreamer;
			rFile = lFile;
		}else{
			temp_streamer = rStreamer;
		}
		
		player_builder(
					   temp_streamer,
					   rFile,
					   "rtmp",  
					   "100",
					   "over",
					   "main_player",
					   "player_id",
					   rTag,
					   rTag2,
					   rFile_low,
					   rId);
		
		
}

function change(cID, cSelector){
	// Make HTTP request to request.php
	//test(Date());
	selector = cSelector;
	request(cID);
	
}

function change2(cID, cSelector){
	// Make HTTP request to request.php
	//test(Date());
	selector = cSelector;
	playlisting = 1;
	playhead2 = 1;
	request(cID);
	
}

function request(str){
	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null){
	  alert ("Browser does not support HTTP Request");
	  return;
	 }
	 
	var url= vcmsRoot + "vcms/framework/request.php";
	url=url+"?q="+str;
	url=url+"&sid="+Math.random();
	xmlhttp.onreadystatechange=stateChanged;
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
	
}

function stateChanged(){
	if ((xmlhttp.readyState == 4)&&(xmlhttp.status == 200)){
	
		var xmlDoc=xmlhttp.responseXML;
try{
  		var rId = xmlDoc.getElementsByTagName("id")[0].childNodes[0].nodeValue;
		var rFile = xmlDoc.getElementsByTagName("file")[0].childNodes[0].nodeValue;
						
		var rFile_low = xmlDoc.getElementsByTagName("file_low")[0].childNodes[0].nodeValue;
		var rFile_iphone = xmlDoc.getElementsByTagName("file_iphone")[0].childNodes[0].nodeValue;
		var rTitle = xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;
		var rCaption = xmlDoc.getElementsByTagName("caption")[0].childNodes[0].nodeValue;
		
		var rTag = xmlDoc.getElementsByTagName("tag")[0].childNodes[0].nodeValue;
		var rTag2 = xmlDoc.getElementsByTagName("tag2")[0].childNodes[0].nodeValue;

		var playlistXML1 = new Array();
		var playlistXML2 = new Array();
		playlistXML1[1] = xmlDoc.getElementsByTagName("ad1")[0].childNodes[0].nodeValue;
		
		playlistXML1[2] = xmlDoc.getElementsByTagName("ad2")[0].childNodes[0].nodeValue;
		playlistXML1[3] = xmlDoc.getElementsByTagName("ad3")[0].childNodes[0].nodeValue;
		playlistXML2[4] = xmlDoc.getElementsByTagName("ad4")[0].childNodes[0].nodeValue;
		playlistXML2[5] = xmlDoc.getElementsByTagName("ad5")[0].childNodes[0].nodeValue;
		
}catch(e){
      alert("This video is no longer available. Error: " + e);
}

		if("00" == rFile_low){
			selector = 0;
		}
		//test(cMode + cStreamer + cFilename);
		if(playlisting == 1){
			//clear playlist
			playlist2 = [];
			// build playlist

			var p2_count = 1;
			for (keyVar in playlistXML1) {
				if( "00" != playlistXML1[keyVar] ){
					playlist2[p2_count] = playlistXML1[keyVar];
					p2_count++;
				}
			}

			playlist2[p2_count] = rId;
			p2_count++;
			
			for (keyVar in playlistXML2) {
				if( "00" != playlistXML2[keyVar] ){
					playlist2[p2_count] = playlistXML2[keyVar];
					p2_count++;
				}
			}
			//play playlist
			playend2 = p2_count - 1;
			playlisting = 2;
			change(playlist2[playhead2], 1);			
		}else{
		  	change_main(rId, rFile, rFile_low, rFile_iphone, rTitle, rCaption, rTag, rTag2);
		}
		
	}
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}

// return back to main stream once finished
function playerReady(thePlayer) { 
	if("player_id" == thePlayer.id){
		var player = null;
		player = window.document[thePlayer.id];		
		if (player) { 
			player.addModelListener("STATE", "stateListener");
		} else {
			setTimeout("playerReady(thePlayer)",100);
		}
	}
}

// function to listen to the state of the player
function stateListener(obj) { //IDLE, BUFFERING, PLAYING, PAUSED, COMPLETED(depreciated)
	currentState = obj.newstate; 
	previousState = obj.oldstate; 
	//alert(currentState);
	if ((currentState == "COMPLETED")&&(previousState == "IDLE")) { //for JW Player 5.x
	//alert("Current State: " + currentState + " Previous State: " + previousState);
	//if ((currentState == "COMPLETED")&&(previousState == "PLAYING")) { //for JW Player 4.x
		// go back to playing previous stream
		//test("Played and Completed Commercial");
		if(playlisting == 2){
			if(playhead2 < playend2){
				playhead2++;
				change(playlist2[playhead2],1);
			}else{
				playhead2 = 1;
				playlisting = 0;
			}
			
		}else{
			if(playhead < playend){
				playhead++;
			}else{
				playhead = 1;
			}
			change(playlist[playhead],1);
		}
	}
} 


