// TODO: (delete later)
//
// 1. put all duplicate functions next to each other (i.e. refreshVideo, popRefreshVideo)
// 2. Search for 'token' and make sure this isn't referenced anywhere in the document.
// 3. Highlight the background row of the currently playable video as well as alter text colour.
// 4. Update metadata on main page from popup window.

// sort through these vars below, and delete the unused ones
var winJustClosed = 0;
var popResID = 0;

//these are ok, so keep
var player;
var key;
var saveVideoNumber = 0;
var currentItem = -1;
var previousItem = -1;
var currentPosition = 0;
var txtOpenPopup = "<em><b> Open in pop-up</b></em>";
var popWin;
var embedStr;
var popResolution;
var browser;
var formBlock;
var divBlock;
var divBlock1;
var textVar;

function playerReady(obj) {
	player = document.getElementById(obj.id);
	if (player) {
		addListeners();
	} else {
		alert('player not set: playerReady function');
	}
};

function addListeners() {
	if (player) {
		player.addControllerListener("ITEM", "itemListener");
		player.addModelListener("TIME", "positionListener");
		if(player.getPlaylist().length==0) {
		    player.addControllerListener("PLAYLIST","refreshVideo");
		} else {
			// call function direct (as the playlist exists), so the
			// "PLAYLIST" event won't fire in IE when browser is refreshed!
			refreshVideo({playlist:player.getPlaylist()});
		}
	} else {
		setTimeout("addListeners()",500);
	}
};

function itemListener(obj) {
	if (obj.index != currentItem) {
		previousItem = currentItem;
		currentItem = obj.index;
		saveVideoNumber = currentItem;
		getPlaylist();
	}
};

function popItemListener(obj) {
	if (obj.index != currentItem) {
		previousItem = currentItem;
		currentItem = obj.index;
		saveVideoNumber = currentItem;
		getPlaylist();
		popWin.focus();
	}
};

function positionListener(obj) {
	currentPosition = obj.position;
	var duration =  obj.duration - currentPosition;
	var minStr = Math.floor(duration/60);
	var secStr = Math.round(duration%60);
	var tmp = document.getElementById("tim" + currentItem);
	if (tmp) { tmp.innerHTML = padZero(minStr) + ":" + padZero(secStr); }

	tmp = document.getElementById("OD_item_meta");
	if (tmp) { tmp.innerHTML = padZero(minStr) + ":" + padZero(secStr); }
};

// Refresh video item number and send to player
function refreshVideo(obj) {
	player.sendEvent('ITEM', saveVideoNumber);
	initTasks();
};

function popRefreshVideo(obj) {
	popWin.playerPop.sendEvent('ITEM', saveVideoNumber);
};

function initTasks() {
	browser = navigator.appName; // get browser name for use later
	setDropdown();
};

// Retrieves the pop-up window player resolution
function setDropdown() {
	popResolution = document.form1.resolution.value;
};

// updates the html list to show what video is being played etc
// need to modify it to use the new... vid1, vid2, vid3, conventions used.
function getPlaylist() {
	var tmp;

	// video title div
	tmp = document.getElementById("vid" + currentItem);
	if (tmp) {
		tmp.style.paddingLeft="17px";
		tmp.style.borderLeft="5px solid #e4e0a8";
		tmp.style.fontWeight="bold";
		tmp.style.backgroundColor="#f8f7e3";
		}
	tmp = document.getElementById("vid" + previousItem);
	if (tmp) {
		tmp.style.paddingLeft="22px";
		tmp.style.borderLeft="none";
		tmp.style.fontWeight="normal";
		tmp.style.backgroundColor="#efefef";
		}

	// video duration div
	tmp = document.getElementById("tim" + currentItem);
	if (tmp) {
		tmp.style.fontWeight="bold";
		tmp.style.backgroundColor="#f8f7e3";
		tmp.style.color="#000000";
		}
	tmp = document.getElementById("tim" + previousItem);
	if (tmp) {
		tmp.style.fontWeight="normal";
		tmp.style.backgroundColor="#efefef";
		tmp.style.color="#565050";
		}

	// video title link
	tmp = document.getElementById("vid_link" + currentItem);
	if (tmp) {
		tmp.style.color="#d3070b";
		}
	tmp = document.getElementById("vid_link" + previousItem);
	if (tmp) {
		tmp.style.color="#5588bb";
		}

	var arr;
    if(popWin) {
		arr = popWin.playerPop.getPlaylist();
	} else {
		arr = player.getPlaylist();
	}
	tmp = document.getElementById("OD_currentvid");
	if (tmp) { tmp.innerHTML = arr[currentItem].title + "&nbsp;&nbsp;(" + (currentItem+1) + "/" + arr.length + ")"; }
};

// *********************
// *** Got upto here ***
// *********************

function toggle() {
	formBlock = document.getElementById("OD_dropDownRes");
	divBlock = document.getElementById("toggleVideo");
	divBlock1 = document.getElementById("overlay");
	textVar = document.getElementById("displayText");

	if(divBlock.style.display == "block") {
		var div;
		winJustClosed = 0;
		formBlock.style.display = "none";
		divBlock.style.display = "none";
		divBlock1.style.display = "block";
		divBlock1.innerHTML = "<a href='javascript:toggle();'><img width='721px' height='404' src='http://www.vercana.com/media/images/overlay.jpg' /></a>";
		player.sendEvent("STOP");
		//player.sendEvent("PLAY", "false"); // pause
		if(popResolution=="low") {
			div = document.getElementById('popup720px');
			popResID = div.innerHTML;
			if (browser=="Microsoft Internet Explorer") {
				popWin = window.open("http://www.vercana.com/media/includes/popup.php?"+popResID+"=1", "smallWin", "width=901,height=428,left=500,top=200,resizable=no");
			} else {
				popWin = window.open("http://www.vercana.com/media/includes/popup.php?"+popResID+"=1", "smallWin", "width=901,height=405,left=500,top=200,resizable=no");
			}
		} else if(popResolution=="med") {
			div = document.getElementById('popup900px');
			popResID = div.innerHTML;
			if (browser=="Microsoft Internet Explorer") {
				popWin = window.open("http://www.vercana.com/media/includes/popup.php?"+popResID+"=2", "smallWin", "width=1081,height=529,left=500,top=200,resizable=no");
			} else {
				popWin = window.open("http://www.vercana.com/media/includes/popup.php?"+popResID+"=2", "smallWin", "width=1081,height=506,left=500,top=200,resizable=no");
			}
		} else if(popResolution=="high") {
			div = document.getElementById('popup1280px');
			popResID = div.innerHTML;
			if (browser=="Microsoft Internet Explorer") {
				popWin = window.open("http://www.vercana.com/media/includes/popup.php?"+popResID+"=3", "smallWin", "width=1461,height=743,left=500,top=200,resizable=no");
			} else {
				popWin = window.open("http://www.vercana.com/media/includes/popup.php?"+popResID+"=3", "smallWin", "width=1461,height=720,left=500,top=200,resizable=no");
			}
		}
		popWin.focus();
  	}
	else {
		if(!popWin.closed&&winJustClosed!=1) {
			winJustClosed = 1;
			popWin.close();
		}
		location.reload(true);
		//formBlock.style.display = "block";
		//divBlock.style.display = "block";
		//divBlock1.style.display = "none";
		//textVar.innerHTML = txtOpenPopup;

		if (browser=="Microsoft Internet Explorer") {
			//getPlaylist(); // update playlist
			player.sendEvent("PLAY", "true");
			//alert('need to kick start the player!');
			//player.sendEvent('ITEM', saveVideoNumber); // need this as IE won't auto start
		} else {
			//setTimeout("getPlaylist()",1000); // update playlist
			player.sendEvent("PLAY", "true");
			//alert('processing as normal! should auto play');
		}

	}
};

function popWinClose() {
	// small delay to allow pop-up window to close
	setTimeout("popWinClosed()",200);
};

function popWinClosed() {
	if(popWin.closed&&winJustClosed!=1) {
		winJustClosed = 1;
		location.reload(true);
		//formBlock = document.getElementById("OD_dropDownRes");
		//divBlock = document.getElementById("toggleVideo");
		//divBlock1 = document.getElementById("overlay");
		//textVar = document.getElementById("displayText");
		//formBlock.style.display = "block";
		//divBlock.style.display = "block";
		//divBlock1.style.display = "none";
		//textVar.innerHTML = txtOpenPopup;
		 if (browser=="Microsoft Internet Explorer") {
			//getPlaylist(); // update playlist
			player.sendEvent('ITEM', saveVideoNumber); // need this as IE won't auto start
			//player.sendEvent("PLAY", "true");
			//alert('need to kick start the player!');
		} else {
		//alert('ff');
			//setTimeout("getPlaylist()",1000); // update playlist
			//setTimeout("player.sendEvent('ITEM', saveVideoNumber)",300); // update playlist
			//setTimeout("player.sendEvent('PLAY', 'true')",300);
			player.sendEvent('ITEM', saveVideoNumber); // need this as IE won't auto start
			//player.sendEvent("PLAY", "true");
			//alert('processing as normal! should auto play');
		} 
	}
};

// *** UTILITY FUNCTIONS ***
function padZero(number) {   
    return (number < 10) ? '0' + number : number;
};

// could use this function to load in new playlists to the player
function loadPlaylist(theFile) {
	currentItem = -1;
	previousItem = -1;
	player.sendEvent('LOAD', theFile);
};

// ***START*** - Wrapper utility functions for cross-browser compatibility
function addEventHandler(oNode, sEvt, fFunc, bCaptures) {
	if (typeof (window.event) != "undefined")
		oNode.attachEvent("on" + sEvt, fFunc);
	else
		oNode.addEventListener(sEvt, fFunc, bCaptures);
};

function removeEventHandler(oNode, sEvt, fFunc, bCaptures) {
	if (typeof (window.event) != "undefined")
		oNode.detachEvent("on" + sEvt, fFunc);
    else
		oNode.removeEventListener(sEvt, fFunc, bCaptures);
};

function getEventTarget(e) {
	if (window.event != null) return window.event.srcElement;
	else return e.target;
};
// ***END*** - Wrapper utility functions for cross-browser compatibility
