
// Parameters for all of maxprepsTV =========================================================================
var zoneID = "AF1C8F77-B6A2-DC11-A4AC-00188B46741E";

var displayQLItems = true;

var lastSearch = "";

// Variables for Dynamic Feeds/Stuff
var feedTypes = new Object();
feedTypes.RELATED_RESULTS = "relatedVideos";
feedTypes.CHANNEL_RESULTS = "channelResults";
feedTypes.REFERENCE_RESULTS = "referenceResults";
feedTypes.SEARCH_RESULTS = "searchResults";
feedTypes.SHOW_RESULTS = "showResults";
feedTypes.REFERENCE_CARD = "referenceCard";
feedTypes.REFER_FRIENDS = "referFriends";
feedTypes.MOST_VIEWED = "mostViewed";
feedTypes.MOST_RECENT = "mostRecent";
feedTypes.FEATURED_PLAYLIST = "featuredPlaylist";

var referenceTypes = new Object();
referenceTypes.ATHELETE = "ATHLETE";
referenceTypes.TEAM = "TEAM";
referenceTypes.SCHOOL = "SCHOOL";
referenceTypes.LEAGUE = "LEAGUE";
referenceTypes.SECTION = "SECTION";
referenceTypes.STATE = "STATE";
referenceTypes.CONTEST = "CONTEST";
referenceTypes.SSID = "SSID";

// used on maxprepstv page
var searchResultInfoObj = new Object();
searchResultInfoObj.maxCount = 20;
searchResultInfoObj.headerDivName = "quickSearchHeaderDiv";
searchResultInfoObj.headerATagName = "quickSearchHeaderATag";
searchResultInfoObj.divName = "searchResultsAjaxDiv";
searchResultInfoObj.maxDivHeight = 300;
searchResultInfoObj.url = CORE_SITEROOT + "/mptv/searchxml.mxp";
searchResultInfoObj.lastResults = null;
searchResultInfoObj.searchTxt = "";

var extraListInfoObj = new Object();
extraListInfoObj.maxCount = 20;
extraListInfoObj.divName = "extraListVideosAjaxDiv";
extraListInfoObj.visibilityDivName = "extraListInfoObjContentDiv";
extraListInfoObj.headerDivName = "extraListVideosHeaderDiv";
extraListInfoObj.headerATagName = "extraListVideosHeaderATag";
extraListInfoObj.maxDivHeight = 450;
extraListInfoObj.relatedURL = CORE_SITEROOT + "/mptv/relatedxml.mxp";
extraListInfoObj.channelURL = CORE_SITEROOT + "/mptv/searchxml.mxp";
extraListInfoObj.referenceURL = CORE_SITEROOT + "/mptv/searchxml.mxp";
extraListInfoObj.displayType = null;
extraListInfoObj.lastResults = null;

var referenceCardInfoObj = new Object();
referenceCardInfoObj.divName = "quepointsAjaxDiv";
referenceCardInfoObj.maxDivHeight = 200;
referenceCardInfoObj.url = CORE_SITEROOT + "/mptv/referencedirect.mxp";

var referFriendsInfoObj = new Object();
referFriendsInfoObj.url = "http://www.maxpreps.com/referfriendsajax.aspx";
referFriendsInfoObj.referURL = window.location.href;
referFriendsInfoObj.divName = "referFriendsDiv";
referFriendsInfoObj.referedCount = 0;


// Used on landing page
var featuredPlaylistInfoObj = new Object();
featuredPlaylistInfoObj.url = CORE_SITEROOT + "/mptv/searchxml.mxp";
featuredPlaylistInfoObj.divName = "featuredPlaylistDiv";
featuredPlaylistInfoObj.maxCount = 20;
featuredPlaylistInfoObj.loaded = false;

var mostRecentInfoObj = new Object();
mostRecentInfoObj.url = CORE_SITEROOT + "/mptv/searchxml.mxp";
mostRecentInfoObj.divName = "mostRecentVideosDiv";
mostRecentInfoObj.maxCount = 20;
mostRecentInfoObj.loader = false;

var mostViewedInfoObj = new Object();
mostViewedInfoObj.url = CORE_SITEROOT + "/mptv/mostviewedxml.mxp";
mostViewedInfoObj.divName = "mostViewedVideosDiv";
mostViewedInfoObj.maxCount = 20;
mostViewedInfoObj.loaded = false;


// used on search page and maxprepstv page
// Quicklist properties ===================================================================================
var quicklistInfoObj = new Object();
quicklistInfoObj.objsArr;
quicklistInfoObj.divName = "quicklistContainerDiv";
quicklistInfoObj.visibilityDivName = "quicklistContentDiv";
quicklistInfoObj.headerDivName = "quicklistHeaderDiv"
quicklistInfoObj.headerATagName = "quicklistHeaderATag";
quicklistInfoObj.maxDivHeight = 300;
quicklistInfoObj.cookieItemName = "qlItem_";
quicklistInfoObj.cookieInfoName = "qlInfo";
quicklistInfoObj.maxCount = 10;
quicklistInfoObj.init = false;
quicklistInfoObj.continuousPlay = false;
quicklistInfoObj.saveContinuousPlay = false;


function initFeaturedChannels() {
	var so = new SWFObject(CORE_SITEROOT + "/flash/maxprepstv/visualfeedrotator.swf", "FeaturedChannelsVFR", "550", "130", "9", "#FFFFFF");
 	so.addVariable("FeedURL", CORE_SITEROOT + "/mptv/featuredchannelsfeed.mxp");
 	so.addVariable("RotationSpeed", "1000000");
 	so.addVariable("DisplayCount", "5");
 	so.addVariable("StageWidth", "550");
 	so.addVariable("StageHeight", "130");
 	so.addVariable("UseReflection", "true");
 	so.addParam("wmode","transparent");
	so.write("featuredChannelsDiv");
}
		

// Cookie functions =======================================================================================
function writeCookie(name, value, numberOfDays, domain) {
	if(name != null && value != null) {
		var expireDate = "";
		
		if(!isNaN(numberOfDays)) {
			var date = new Date();
			date.setTime(date.getTime() + (numberOfDays * 24 * 60 * 60 * 1000));
			expireDate = "; expires=" + date.toGMTString();
		}
		if(domain == null) domain = "/";
		
		document.cookie = name + "=" + value + expireDate + "; path=" + domain;
	}
}

function removeCookie(name) {
	if(document.cookie.length > 0 && name != null) {
		writeCookie(name,"",-1);
	}
}

function readCookie(name) {
	if(document.cookie.length > 0 && name != null) {
		name += "=";
		var allCookies = document.cookie;
		var splitCookies = allCookies.split(";");
		
		for(var i = splitCookies.length - 1; i >= 0; i--) {
			var c = splitCookies[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(name) != -1) return c.substring(name.length,c.length);
		}
	}
	return null;
}

// Helper quicklist functions ==============================================================================


// Core quicklist functions ===============================================================================
function addQuicklistItem(id, title, thumbnail, created) {
	
	// check to see if this is a valid add
	if(quicklistInfoObj.objsArr.length < quicklistInfoObj.maxCount) {
		
		// add item to the objs arr
		var obj = new Object();
		obj.ID = id;
		obj.Title = title;
		obj.Thumbnail = thumbnail;
		obj.Created = created;
		quicklistInfoObj.objsArr.push(obj);
		
		// add item to the display if applicable
		var qlDiv = null;
		if(displayQLItems) qlDiv = document.getElementById(quicklistInfoObj.divName); // if we are using a display try to find its reference
		
		if(qlDiv != null) {
			
			if(quicklistInfoObj.objsArr.length == 1) {
				qlDiv.innerHTML = ""; // clear out any 'no ql items text.' check against 1 becuz item gets added to array be4 this check and add checkbox
				
				var checkBox = document.createElement("Input");
				checkBox.type = "checkbox";
				checkBox.id = "continuousPlayCB"
				qlDiv.appendChild(checkBox);
				
				var continuousSpan = document.createElement("Span");
				continuousSpan.appendChild(document.createTextNode(" Continuous Playback"));
				continuousSpan.className = "VAlignCenter";
				qlDiv.appendChild(continuousSpan);
			}
			
			var qlItem = createQLItem(obj.ID, obj.Title, obj.Thumbnail, obj.Created);
			
			if(quicklistInfoObj.objsArr.length % 2 == 1) qlItem.className += " QLItemEveryEven"; // 1 is even becuz array is 0 based.
			else qlItem.className += " QLItemEveryOdd";
				
			// put the div into the parents html (make it a child).
			qlDiv.appendChild(qlItem);
			
		  var divider = document.createElement("Div");
		  divider.className = "Divider";
		  qlDiv.appendChild(divider);
		  
			var visibilityDiv = document.getElementById(quicklistInfoObj.visibilityDivName);
			if(!hasClass(visibilityDiv, "Expanded")) toggleDivDisplayType(document.getElementById(quicklistInfoObj.visibilityDivName));
			if(qlDiv.offsetHeight > quicklistInfoObj.maxDivHeight) qlDiv.style.height = (quicklistInfoObj.maxDivHeight + "px");
		}
		return true;
	}
	else {
		alert("You're only allowed " + quicklistInfoObj.maxCount + " items in the quicklist.");
		return false;
	}
}

function removeQuicklistItem(id, qlItem) {
	// remove it from objs array
	var qlObjs = quicklistInfoObj.objsArr;
	for(var i = qlObjs.length - 1; i >= 0; i--) {
		if(qlObjs[i].ID == id) {
			qlObjs.splice(i,1);
			break;
		}
	}
	
	// if its displayed remove from display
	var qlDiv = null;
	if(displayQLItems) qlDiv = document.getElementById(quicklistInfoObj.divName); // if we are using a display try to find its reference
	
	if(qlDiv != null) {
		
		if(qlObjs.length == 0) { // if there are no items left in array just clear out container divs contents
			qlDiv.innerHTML = "";
		}
		else if(qlItem != null) { // effient way to clear out item
			var divider = qlItem.nextSibling;
			
			qlDiv.removeChild(qlItem);
			qlDiv.removeChild(divider);
		}
		else { // didnt get the item reference passed and need to find it via id comparison. (Not Efficient way of using this function).
			var qlItems = qlDiv.getElementsByTagName("Div");
			for(var i = qlItems.length - 1; i >= 0; i--) {
				var item = qlItems[i];
				
				if(item.id != null) {
					var qlItemID = item.id.replace("qlItem_","");
					
					if(qlItemID == id) {
						var divider = item.nextSibling;
						qlDiv.removeChild(item);
						divider.removeChild(divider);
						break;
					}
				}
			}
		}
		
		qlDiv.style.height = "auto";
		if(qlDiv.offsetHeight > quicklistInfoObj.maxDivHeight) qlDiv.style.height = (quicklistInfoObj.maxDivHeight + "px");
		if(qlObjs.length == 0) {
			var visibilityDiv = document.getElementById(quicklistInfoObj.visibilityDivName);
			if(!hasClass(visibilityDiv, "Collapsed")) toggleDivDisplayType(document.getElementById(quicklistInfoObj.visibilityDivName));
			qlDiv.appendChild(document.createTextNode("You haven't added any videos to your Quicklist"));
		}
		
		// reset all the classes so its every other.
		var divElements = document.getElementById(quicklistInfoObj.divName).getElementsByTagName('Div');
		var divArr = new Array();
		for(var i = 0; i < divElements.length; i++) {
			divArr[i] = divElements[i];
		}
		
		for(var i = divArr.length - 1; i >= 0; i--) {
			if(divArr[i].id == null || divArr[i].id.indexOf("qlItem_") == -1) {
				divArr.splice(i,1);
			}
		}
		
		for(var i = 0; i < divArr.length; i++) {
			var item = divArr[i];
			if(hasClass(item, "QLItemEveryEven")) {
				removeClass(item, "QLItemEveryEven");
			}
			else {
				removeClass(item, "QLItemEveryOdd");
			}
			
			if(i % 2 == 0) {
				addClass(item, "QLItemEveryEven");
			}
			else {
				addClass(item, "QLItemEveryOdd");
			}
		}
	}
	
	// tell search results which items can be added now
	var searchResultsDiv = document.getElementById(searchResultInfoObj.divName);
	if(searchResultsDiv != null) {
		var spanElements = searchResultsDiv.getElementsByTagName('Span');
		
		for(var i = 0; i < spanElements.length; i++) {
			var spanElement = spanElements[i];
			
			if(spanElement.id.replace("SRAddQL_","") == id) {
				spanElement.innerHTML = "";
				addEvent(spanElement, 'click', onSRAddToQuicklistClickHandler);
				
				var spanATag = document.createElement("A");
				spanATag.href = "Javascript:void(0);";
				spanATag.appendChild(document.createTextNode("Add To Quicklist"));
				
				spanElement.appendChild(spanATag);
				
				break;
			}
		}
	}
	
	// tell extra list which items can be added now
	var extraListDiv = document.getElementById(extraListInfoObj.divName);
	if(extraListDiv != null) {
		var spanElements = extraListDiv.getElementsByTagName('Span');
		for(var i = 0; i < spanElements.length; i++) {
			var spanElement = spanElements[i];
			
			if(spanElement.id.replace("ELAddQL_","") == id) {
				spanElement.innerHTML = "";
				addEvent(spanElement, 'click', onELAddToQuicklistClickHandler);
				
				var spanATag = document.createElement("A");
				spanATag.href = "Javascript:void(0);";
				spanATag.appendChild(document.createTextNode("Add To Quicklist"));
				
				spanElement.appendChild(spanATag);
				
				break;
			}
		}
	}
}

function initQuicklist() { // event handler called on page load
	addEvent(window, "unload", saveQuicklist);
	
	var qlObjsArr = quicklistInfoObj.objsArr = new Array();
	
	var qlInfoStr = readCookie(quicklistInfoObj.cookieInfoName);
	var qlInfoObj = parseStrToObj(qlInfoStr);
	
	if(qlInfoObj == null) return;
	var qlLength = parseInt(qlInfoObj.qlItems); // find out how many quicklist items we have

	if(qlLength > 0) { // no need to go further if they have no qlItems in there cookies
		
		if(qlInfoObj.continuousPlay == "true") quicklistInfoObj.continuousPlay = true;
		// build the object tree
		for(var i = 0; i < qlLength; i++) {
			qlObjsArr[i] = parseStrToObj(readCookie(quicklistInfoObj.cookieItemName + i)); // build the quicklist into the javascript array of objs.
		}
		
		var qlDiv = null;
		if(displayQLItems) qlDiv = document.getElementById(quicklistInfoObj.divName); // if we are using a display try to find its reference
		if(displayQLItems && qlDiv != null) qlDiv.innerHTML = ""; // if were init we dont want old ql stuff.
		
		// check to see if there is a display
		if(displayQLItems && qlDiv != null) {
			// build the display
			
			var continuousPlayDiv = document.createElement("Div");
			continuousPlayDiv.className = "SmallText QLCountDiv";

			var checkBox = document.createElement("Input");
			checkBox.type = "checkbox";
			checkBox.id = "continuousPlayCB"
			if(quicklistInfoObj.continuousPlay) checkBox.checked = true;
			continuousPlayDiv.appendChild(checkBox);
			
			var continuousSpan = document.createElement("Span");
			continuousSpan.appendChild(document.createTextNode(" Continuous Playback"));
			continuousSpan.className = "VAlignCenter";
			continuousPlayDiv.appendChild(continuousSpan);
			
			qlDiv.appendChild(continuousPlayDiv);
			
			for(var i = 0; i < qlObjsArr.length; i++) {
				
				var qlItem = createQLItem(qlObjsArr[i].ID, qlObjsArr[i].Title, qlObjsArr[i].Thumbnail, qlObjsArr[i].Created);
				
				if(!hasClass(qlItem, "QLPlaying")) {
					if(i % 2 == 0) qlItem.className += " QLItemEveryEven"; // 1 is even becuz array is 0 based.
					else qlItem.className += " QLItemEveryOdd";
				}
					
				// put the div into the parents html (make it a child).
				qlDiv.appendChild(qlItem);
				
			  var divider = document.createElement("Div");
			  divider.className = "Divider";
			  qlDiv.appendChild(divider);
			}
			
			var visibilityDiv = document.getElementById(quicklistInfoObj.visibilityDivName);
			if(visibilityDiv != null && !hasClass(visibilityDiv, "Expanded")) toggleDivDisplayType(visibilityDiv);
			
			var headerATag = document.getElementById(quicklistInfoObj.headerATagName);
			if(headerATag != null) {
				changeCollapsableATagImg(headerATag, "-");
			}
			
			
			if(qlDiv.offsetHeight > quicklistInfoObj.maxDivHeight) qlDiv.style.height = (quicklistInfoObj.maxDivHeight + "px");
		}
	}
	else {
		var qlDiv = null;
		if(displayQLItems) qlDiv = document.getElementById(quicklistInfoObj.divName); // if we are using a display try to find its reference
		
		if(qlDiv != null) {
			qlDiv.innerHTML = ""; // if were init we dont want old ql stuff.
			qlDiv.appendChild(document.createTextNode("You haven't added any Quicklist Items"));
		}
	}
}

function saveQuicklist() { // event handler called on page unload
	// loop through all cookie position
	
	for(var i = quicklistInfoObj.maxCount - 1; i >= 0; i--) {
		
		if(i < quicklistInfoObj.objsArr.length) { // rewrite the number of cookies that are valid.
			// create the value from the obj array
			
			var qlItemStr = parseObjToStr(quicklistInfoObj.objsArr[i]);
			//var value = "ID::" + quicklistInfoObj.objsArr[i].ID + "--Title::" + quicklistInfoObj.objsArr[i].Title + "--Thumbnail::" + quicklistInfoObj.objsArr[i].Thumbnail + "--Created::" + quicklistInfoObj.objsArr[i].Created;
			
			// write to cookie
			writeCookie(quicklistInfoObj.cookieItemName + i, qlItemStr);
		}
		else { // remove the rest of the invalid cookies
			removeCookie(quicklistInfoObj.cookieName + i);
		}
	}
	
	var qlInfoStr = "";
	var qlInfoObj = new Object();
	qlInfoObj.qlItems = quicklistInfoObj.objsArr.length;
	qlInfoObj.continuousPlay = quicklistInfoObj.saveContinuousPlay;
	qlInfoStr = parseObjToStr(qlInfoObj);
	
	writeCookie(quicklistInfoObj.cookieInfoName, qlInfoStr);
}

function parseStrToObj(str) {
	if(str != null) {
		var item = new Object();
		var pieces = str.split("--");
		for(var i = 0; i < pieces.length; i++) {
			var nameValuePair = pieces[i].split("::");
			item[nameValuePair[0]] = nameValuePair[1];
		}
		return item;
	}
	return null;
}
function parseObjToStr(obj) {
	var str = "";
	for(var i in obj) {
		str += i + "::" + obj[i] + "--";
	}
	return str;
}

function onQuicklistPlayClickHandler(e) {	
	
	var continuousPlayCB = document.getElementById('continuousPlayCB');
	if(continuousPlayCB != null && continuousPlayCB.checked) {
		quicklistInfoObj.saveContinuousPlay = true;
	}
	
	var id = this.parentNode.parentNode.parentNode.parentNode.id.replace("qlItem_","");
	window.location.href = CORE_SITEROOT + '/maxprepstv.mxp/videoid-' + id;
}

function createQLItem(id, title, thumbnailURL, created) {
	
	if(id == null) return;
	if(title == "") title = "No Title Available.";
	if(thumbnailURL == "") thumbnailURL = CORE_SITEROOT + "/images/mptv/mptv_08/thumb_maxpreps.jpg";
	if(created == "") created = "No Date Available.";
	
	var displayedVideo = (videoInfo.ID == id); // check to see if this is the playing video
	
	var qlItem = document.createElement("Div");
	qlItem.id = "qlItem_" + id;
	if(!displayedVideo) qlItem.className = "QLItem";
	else qlItem.className = "QLItem QLPlaying";
	
	// Build the thumbnail 
	var thumbnail = document.createElement("Div");
	thumbnail.className = "FloatLeft";
	
	var thumbnailOuterWrapper = document.createElement("Div");
	thumbnailOuterWrapper.className = "QLThumbnailOuterWrapper";
	
	var thumbnailInnerWrapper = document.createElement("Div");
	thumbnailInnerWrapper.className = "QLThumbnailInnerWrapper";
	
	var thumbnailATag;
	if(!displayedVideo) {
		thumbnailATag = document.createElement("A");
		thumbnailATag.href = 'Javascript:void(0);';
		//thumbnailATag.id = "qlThumb_" + id;
		addEvent(thumbnailATag, "click", onQuicklistPlayClickHandler);
	}
	
	var thumbnailImg = document.createElement("Img");
	thumbnailImg.className = "VertImg60";
	thumbnailImg.src = thumbnailURL;
	
	if(!displayedVideo) {
		thumbnailATag.appendChild(thumbnailImg);
		thumbnailInnerWrapper.appendChild(thumbnailATag);
	}
	else {
		thumbnailInnerWrapper.appendChild(thumbnailImg);
	}
	
	thumbnailOuterWrapper.appendChild(thumbnailInnerWrapper);
	thumbnail.appendChild(thumbnailOuterWrapper);
	qlItem.appendChild(thumbnail);
	
	var extInfo = document.createElement("Div");
	extInfo.className = "QLExtInfo";
	
	// stuff for line 1
	var line1WrapperDiv = document.createElement("Div");
	
	var line1Span1 = document.createElement("Span");
	line1Span1.className = "SmallCaption";
	
	if(!displayedVideo) {
		var line1Span1ATag = document.createElement("A");
		line1Span1ATag.href = 'Javascript:void(0);';
		line1Span1ATag.id = "qlThumb_" + id;
		addEvent(line1Span1ATag, "click", onQuicklistPlayClickHandler);
		
		line1Span1ATag.appendChild(document.createTextNode(title));
		line1Span1.appendChild(line1Span1ATag);
	}
	else {
		line1Span1.appendChild(document.createTextNode(title));
	}
	
	line1WrapperDiv.appendChild(line1Span1);
	
	extInfo.appendChild(line1WrapperDiv);
	
	// stuff for line 2
	var line2WrapperDiv = document.createElement("Div");
	
	var line2Span1 = document.createElement("Span");
	line2Span1.className = "SmallLabel";
	line2Span1.appendChild(document.createTextNode("Date: "));
	line2WrapperDiv.appendChild(line2Span1);
	
	var line2Span2 = document.createElement("Span");
	line2Span2.className = "SmallText";
	line2Span2.appendChild(document.createTextNode(created));
	line2WrapperDiv.appendChild(line2Span2);
	

	extInfo.appendChild(line2WrapperDiv);
	
	// stuff for line 3
	var line3WrapperDiv = document.createElement("Div");
	
	// create the related videos link
	var line3Span1 = document.createElement("Span");
	line3Span1.id = "getRelatedQL_" + id;
	addEvent(line3Span1, 'click', onGetRelatedVideosClickHandler);
	
	var line3Span1ATag = document.createElement("A");
	line3Span1ATag.href = "Javascript:void(0);";
	line3Span1ATag.appendChild(document.createTextNode("Find Related Videos"));
	
	line3Span1.appendChild(line3Span1ATag);
	line3WrapperDiv.appendChild(line3Span1);

	if(!displayedVideo) {
		// give the two items a break
		line3Span1.appendChild(document.createTextNode(" - "));
		
		// create the remove from list link
		var line3Span2 = document.createElement("Span");
		line3Span2.className = "SmallText";
		
		var line3Span2ATag = document.createElement("A");
		line3Span2ATag.href="Javascript:void(0);";
		addEvent(line3Span2ATag, "click", onRemoveFromQLHandler);
		line3Span2ATag.appendChild(document.createTextNode("Remove from Quicklist"));
		
		line3Span2.appendChild(line3Span2ATag);
		line3WrapperDiv.appendChild(line3Span2);
	}
	
	extInfo.appendChild(line3WrapperDiv);


	qlItem.appendChild(extInfo);
	
	return qlItem;
}

function onRemoveFromQLHandler(e, node) {
	var qlItem = this.parentNode.parentNode.parentNode.parentNode;
	var id = qlItem.id.replace("qlItem_","");
	
	removeQuicklistItem(id, qlItem);
}

function onGetRelatedVideosClickHandler(e) {
	var formatedID = this.id.replace("getRelatedQL_","");
	
	getRelatedVideos(formatedID);
}



// Helper fnctions to make other function calls easier
function getRelatedVideos(videoID) {
	var url = extraListInfoObj.relatedURL + "/zoneid-" + zoneID + "/videoid-" + videoID + "/count-" + extraListInfoObj + "/page-1";
	getAjaxFeed(url, feedTypes.RELATED_RESULTS);
}
function getChannelVideos(channelID) {
	var url = extraListInfoObj.channelURL + "/zoneid-" + channelID + "/count-" + extraListInfoObj.maxCount + "/page-1/allzoneflag-0";
	getAjaxFeed(url, feedTypes.CHANNEL_RESULTS);
}
function getReferenceVideos(refID, refType) {
	var url = extraListInfoObj.referenceURL + "/referenceid-" + refID + "/referencetype-" + refType + "/zoneid-" + zoneID + "/count-" + extraListInfoObj.maxCount + "/page-1";
	getAjaxFeed(url, feedTypes.REFERENCE_RESULTS);
}

function getSearch(searchTxt) {
	var searchString = "";
	
	if(searchTxt == "" || searchTxt == " ") {
		searchResultInfoObj.searchTxt = "";
		var ajaxDiv = document.getElementById(searchResultInfoObj.divName);
		ajaxDiv.innerHTML = "Search Results Cleared";
		return;
	}
	else if(searchTxt == searchResultInfoObj.searchTxt) {
		return;
	}
	
	searchResultInfoObj.page = 1;
	searchResultInfoObj.pages = null;
	searchResultInfoObj.allSearchResults = null;
	
	searchResultInfoObj.searchTxt = searchTxt;
	searchString = searchResultInfoObj.url + "/zoneid-" + zoneID + "/txtsearch-" + searchTxt + "/count-" + searchResultInfoObj.maxCount + "/page-1";
	
	
	getAjaxFeed(searchString, feedTypes.SEARCH_RESULTS);
}
function getReferenceCard(referenceID) {
	var searchString = referenceCardInfoObj.url + "/referenceID-" + referenceID;
	getAjaxFeed(searchString, feedTypes.REFERENCE_CARD, referenceID);
}
function sendEmail(videoID, toEmail, fromName, fromEmail, body) {
	var postParams = "Referrer=" + referFriendsInfoObj.referURL + "&sender=" + fromName + "&fromemail=" + fromEmail + "&emails=" + toEmail + "&message=" + body;
	
	var referDiv = document.getElementById('referFriendsDiv');
	
	getAjaxFeed(referFriendsInfoObj.url, feedTypes.REFER_FRIENDS, toEmail, "POST", postParams);
}

// functions used by the landing page
function getFeaturedPlaylist() {
	var url = featuredPlaylistInfoObj.url + "/zoneid-7c2e7b5d-27b9-4841-b51d-67c11836c3c9/count-" + featuredPlaylistInfoObj.maxCount + "/page-1/allzoneflag-0";
	getAjaxFeed(url, feedTypes.FEATURED_PLAYLIST);
	
}
function getMostRecentVideos() {
	var url = mostRecentInfoObj.url + "/zoneid-" + zoneID + "/txtsearch-/count-" + mostRecentInfoObj.maxCount + "/page-1";
	getAjaxFeed(url, feedTypes.MOST_RECENT);
}
function getMostViewedVideos() {
	var url = mostViewedInfoObj.url;
	getAjaxFeed(url, feedTypes.MOST_VIEWED);
}





// Ajax Stuff ============================================================================================
function getAjaxFeed(url, feedType, otherParam, queryType, postParams) {
	//call the right constructor for the browser being used
	
	if(queryType != "POST") queryType = "GET";
	var postParamsLength = 0;
	if(postParams != null) postParamsLength = postParams.length
	
	var ajaxObj = null;
	if (window.XMLHttpRequest != null)
		ajaxObj = new XMLHttpRequest();
	else if(window.ActiveXObject != null) {
		ajaxObj = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
		alert("Your browser doesn't support AJAX!");

	//prepare the xmlhttprequest object
	ajaxObj.open(queryType, url, true);
	ajaxObj.setRequestHeader("Cache-Control", "no-cache");
	ajaxObj.setRequestHeader("Pragma", "no-cache");
	ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajaxObj.setRequestHeader("Content-length", postParamsLength);
	ajaxObj.setRequestHeader("Connection", "close");
	
	ajaxObj.onreadystatechange = function() {
		if (ajaxObj.readyState == 4)
		{
			if (ajaxObj.status == 200)
			{
				if (ajaxObj.responseText != null)
				{
					processAjaxRequest(ajaxObj, feedType, otherParam);
				}
				else
				{
					if(feedType == feedTypes.SEARCH_RESULTS) {
						handleSearchError();
					}
					else if(feedType == feedTypes.REFER_FRIEND) {
						handleReferFriendsError();
					}
					else if(feedType == feedTypes.RELATED_RESULTS) {
						alert("Failed to get related videos");
					}
					else if(feedType == feedTypes.FEATURED_PLAYLIST) {
						alert("Failed to get featured playlist");
					}
					else if(feedType == feedTypes.MOST_RECENT) {
						alert("Failed to get the most recent videos");
					}
					else if(feedType == feedTypes.MOST_VIEWED) {
						alert("Failed to get most viewed videos");
					}
					
					return false;
				}
			}
			else
				alert("Error code " + ajaxObj.status + " received: " + ajaxObj.statusText + " " + feedType);
		}
	}

	//send the request
	ajaxObj.send(postParams);
}

function processAjaxRequest(result, feedType, otherParam) {
	
	
	if(feedType == feedTypes.RELATED_RESULTS || feedType == feedTypes.CHANNEL_RESULTS || feedType == feedTypes.REFERENCE_RESULTS) {
		var extraListHeaderATag = document.getElementById(extraListInfoObj.headerATagName);
		var headerText = "";
		
		if(feedType == feedTypes.RELATED_RESULTS) headerText = "Related Videos";
		else if(feedType == feedType.CHANNEL_RESULTS) headerText = "Channel Videos"
		else headerText = "Playlist Videos"
		
		var headerSpan = extraListHeaderATag.getElementsByTagName("Span")[0];
		headerSpan.innerHTML = "";
		headerSpan.appendChild(document.createTextNode(headerText));
		changeCollapsableATagImg(extraListHeaderATag, "-");
		
		handleExtraListResults(result.responseXML); // result is xml
	}
	else if(feedType == feedTypes.SEARCH_RESULTS) {
		handleSearchResults(result.responseXML); // result is xml
	}
	else if(feedType == feedTypes.CHANNEL_RESULTS) {
		handleChannelResults(result.responseXML); // result is xml
	}
	else if(feedType == feedTypes.REFERENCE_CARD) {
		handleReferenceCardResults(result.responseText, otherParam); // result is html
	}
	else if(feedType == feedTypes.REFER_FRIENDS) {
		handleReferFriendResults(result.responseText, otherParam);
	}
	else if(feedType == feedTypes.FEATURED_PLAYLIST) {
		handleFeaturedPlaylistResults(result.responseXML);
	}
	else if(feedType == feedTypes.MOST_VIEWED) {
		handleMostViewedResults(result.responseXML);
	}
	else if(feedType == feedTypes.MOST_RECENT	) {
		handleMostRecentResults(result.responseXML);
	}
}


function handleFeaturedPlaylistResults(xml) {
	featuredPlaylistInfoObj.loaded = true;
	
	var objsArr = featuredPlaylistInfoObj.lastResults = parseAjaxRequestXML(xml);
	var objsArrCount = objsArr.length;
	
	var resultsDiv = document.getElementById(featuredPlaylistInfoObj.divName);
	
	if(resultsDiv != null) {
		for(var i = 0; i < objsArrCount; i++) {
			
			// validate the values for this search result
		  if(objsArr[i].Title == null) objsArr[i].Title = "No Title Available";
		  if(objsArr[i].Views == null) objsArr[i].Views = "No View Data";
		  if(objsArr[i].Rating == null) objsArr[i].Views = "Not Yet Rated";
		  if(objsArr[i].UploaderName == null) objsArr[i].UploaderName = "";
		  if(objsArr[i].UploaderID == null) objsArr[i].UploaderID = "";
		  
		  var url = CORE_SITEROOT + "/maxprepstv.mxp/videoid-" + objsArr[i].ID;
		  if(objsArr[i].URL == null) objsArr[i].URL = url;
		  
		  var formatedDuration = "";
		  if(objsArr[i].Duration != null && objsArr[i].Duration != "" && parseInt(objsArr[i].Duration) >= 0) {
		  	objsArr[i].Duration = parseInt(objsArr[i].Duration);
		 		formatedDuration = convertToTimecode(objsArr[i].Duration);
		 	}
		  
		  if(objsArr[i].Thumbnail == null || !objsArr[i]) objsArr[i].Thumbnail = CORE_SITEROOT + "/images/mptv/mptv_08/thumb_maxpreps.jpg";
		  
			var item = createLandingPageItem(objsArr[i].ID, objsArr[i].URL, objsArr[i].Title, objsArr[i].Description, objsArr[i].Views, objsArr[i].Rating, objsArr[i].UploaderName, objsArr[i].UploaderID, objsArr[i].Duration, objsArr[i].Created, objsArr[i].Thumbnail)
		
		  if(i % 2 == 0) item.className += " FLItemEveryEven";
		  else item.className += " FLItemEveryOdd";
			  	
		  resultsDiv.appendChild(item);
		  
		  var divider = document.createElement("Div");
		  divider.className = "Divider";
		  resultsDiv.appendChild(divider);
		}
	}
}
function handleMostViewedResults(xml) {
	mostViewedInfoObj.loaded = true;
		
	var objsArr = mostViewedInfoObj.lastResults = parseAjaxRequestXML(xml);
	var objsArrCount = objsArr.length;
	
	var resultsDiv = document.getElementById(mostViewedInfoObj.divName);
	
	if(resultsDiv != null) {
		for(var i = 0; i < objsArrCount; i++) {
			
			// validate the values for this search result
		  if(objsArr[i].Title == null) objsArr[i].Title = "No Title Available";
		  if(objsArr[i].Views == null) objsArr[i].Views = "No View Data";
		  if(objsArr[i].Rating == null) objsArr[i].Views = "Not Yet Rated";
		  if(objsArr[i].UploaderName == null) objsArr[i].UploaderName = "";
		  if(objsArr[i].UploaderID == null) objsArr[i].UploaderID = "";
		  
		  var url = CORE_SITEROOT + "/maxprepstv.mxp/videoid-" + objsArr[i].ID;	
		  if(objsArr[i].URL == null) objsArr[i].URL = url;
		  
		  var formatedDuration = "";
		  if(objsArr[i].Duration != null && objsArr[i].Duration != "" && parseInt(objsArr[i].Duration) >= 0) {
		  	objsArr[i].Duration = parseInt(objsArr[i].Duration);
		 		formatedDuration = convertToTimecode(objsArr[i].Duration);
		 	}
		  
		  if(objsArr[i].Thumbnail == null || !objsArr[i]) objsArr[i].Thumbnail = CORE_SITEROOT + "/images/mptv/mptv_08/thumb_maxpreps.jpg";
		  
		  
		var item = createLandingPageItem(objsArr[i].ID, objsArr[i].URL, objsArr[i].Title, objsArr[i].Description, objsArr[i].Views, objsArr[i].Rating, objsArr[i].UploaderName, objsArr[i].UploaderID, objsArr[i].Duration, objsArr[i].Created, objsArr[i].Thumbnail)
		
		  if(i % 2 == 0) item.className += " FLItemEveryEven";
		  else item.className += " FLItemEveryOdd";
			  	
		  resultsDiv.appendChild(item);
		  
		  var divider = document.createElement("Div");
		  divider.className = "Divider";
		  resultsDiv.appendChild(divider);
		}
	}
}
function handleMostRecentResults(xml) {
	mostRecentInfoObj.loaded = true;
		
	var objsArr = mostRecentInfoObj.lastResults = parseAjaxRequestXML(xml);
	var objsArrCount = objsArr.length;
	
	var resultsDiv = document.getElementById(mostRecentInfoObj.divName);
	
	if(resultsDiv != null) {
		for(var i = 0; i < objsArrCount; i++) {
			
			// validate the values for this search result
		  if(objsArr[i].Title == null) objsArr[i].Title = "No Title Available";
		  if(objsArr[i].Views == null) objsArr[i].Views = "No View Data";
		  if(objsArr[i].Rating == null) objsArr[i].Views = "Not Yet Rated";
		  if(objsArr[i].UploaderName == null) objsArr[i].UploaderName = "";
		  if(objsArr[i].UploaderID == null) objsArr[i].UploaderID = "";
		  
		  var url = CORE_SITEROOT + "/maxprepstv.mxp/videoid-" + objsArr[i].ID;
		  if(objsArr[i].URL == null) objsArr[i].URL = url;
		  
		  var formatedDuration = "";
		  if(objsArr[i].Duration != null && objsArr[i].Duration != "" && parseInt(objsArr[i].Duration) >= 0) {
		  	objsArr[i].Duration = parseInt(objsArr[i].Duration);
		 		formatedDuration = convertToTimecode(objsArr[i].Duration);
		 	}
		  
		  if(objsArr[i].Thumbnail == null || !objsArr[i]) objsArr[i].Thumbnail = CORE_SITEROOT + "/images/mptv/mptv_08/thumb_maxpreps.jpg";
		  
		  
			var item = createLandingPageItem(objsArr[i].ID, objsArr[i].URL, objsArr[i].Title, objsArr[i].Description, objsArr[i].Views, objsArr[i].Rating, objsArr[i].UploaderName, objsArr[i].UploaderID, objsArr[i].Duration, objsArr[i].Created, objsArr[i].Thumbnail)
		
		  if(i % 2 == 0) item.className += " FLItemEveryEven";
		  else item.className += " FLItemEveryOdd";
			  	
		  resultsDiv.appendChild(item);
		  
		  var divider = document.createElement("Div");
		  divider.className = "Divider";
		  resultsDiv.appendChild(divider);
		}
	}
}

function onFLItemMouseOverHandler(e) {
	if(!hasClass(this, "FLMouseOver")) {
		addClass(this, "FLMouseOver");
		
		if(hasClass(this, "FLItemEveryOdd")) {
				removeClass(this, "FLItemEveryOdd");
				addClass(this, "xFLItemEveryOdd");
		}
		else if(hasClass(this, "FLItemEveryEven")) {
				removeClass(this, "FLItemEveryEven");
				addClass(this, "xFLItemEveryEven");
		}
	}
	stopPropagation(e);
}
function onFLItemMouseOutHandler(e) {
	if(hasClass(this, "FLMouseOver")) {
		removeClass(this, "FLMouseOver");
		
		if(hasClass(this, "xFLItemEveryOdd")) {
				removeClass(this, "xFLItemEveryOdd");
				addClass(this, "FLItemEveryOdd");
		}
		else if(hasClass(this, "xFLItemEveryEven")) {
				removeClass(this, "xFLItemEveryEven");
				addClass(this, "FLItemEveryEven");
		}
	}
	stopPropagation(e);
}
function createLandingPageItem(id, url, title, description, views, rating, uploaderName, uploaderID, duration, created, thumbnailURL) {
	var item = document.createElement("Div");
	
	item.className = "FLResultItem";
	addEvent(item, "mouseover", onFLItemMouseOverHandler, "fl");
	addEvent(item, "mouseout", onFLItemMouseOutHandler, "fl");
	
	if(thumbnailURL != null && thumbnailURL != "") {
		var thumbnail = document.createElement("Div");
		thumbnail.className = "Thumbnail FloatLeft";
		var thumbnailOuterWrapper = document.createElement("Div");
		thumbnailOuterWrapper.className = "ThumbnailOuterWrapper";
		var thumbnailInnerWrapper = document.createElement("Div");
		thumbnailInnerWrapper.className = "ThumbnailInnerWrapper";
		var thumbnailATag = document.createElement("A");
		thumbnailATag.href = url;
		var thumbnailImgTag = document.createElement("Img");
		thumbnailImgTag.className = "VertImg90";
		thumbnailImgTag.src = thumbnailURL;
		
		thumbnailATag.appendChild(thumbnailImgTag);
		thumbnailInnerWrapper.appendChild(thumbnailATag);
		thumbnailOuterWrapper.appendChild(thumbnailInnerWrapper);
		thumbnail.appendChild(thumbnailOuterWrapper);
		item.appendChild(thumbnail);
	}
	
	var extInfo = document.createElement("Div");
	extInfo.className = "ExtInfo";
	
	// deals with row 1
	var div1 = document.createElement("Div");
	var div1Span1 = document.createElement("Span");
	div1Span1.className = "SmallCaption";
	var div1Span1ATag = document.createElement("A");
	div1Span1ATag.href = url;
	div1Span1ATag.appendChild(document.createTextNode(title));
	
	div1Span1.appendChild(div1Span1ATag);
	div1.appendChild(div1Span1);
	extInfo.appendChild(div1);
	
	// deals with row 2
	if(title != description) {
		var div2 = document.createElement("Div");
		var div2Span1 = document.createElement("Span");
		div2Span1.className = "SmallLabel";
		div2Span1.appendChild(document.createTextNode("Description: "));
		var div2Span2 = document.createElement("Span");
		div2Span2.appendChild(document.createTextNode(description));
		
		div2.appendChild(div2Span1);
		div2.appendChild(div2Span2);
		extInfo.appendChild(div2);
	}
	
	// deals wtih row 3
	if( (duration != null && duration != "") || (uploaderName != null && uploaderName != "")) {
		
		var div3 = document.createElement("Div");
		
		if(duration != null && duration != "") {
			var div3Span1 = document.createElement("Span"); // duration
			div3Span1.className = "SmallText";
			div3Span1.appendChild(document.createTextNode(convertToTimecode(duration)));
			div3.appendChild(div3Span1);
		}
		
		if(duration != null && duration != "" && uploaderName != null && uploaderName != "") {
			var spaceSpan = document.createElement("Span");
			spaceSpan.appendChild(document.createTextNode(" - "));
			div3.appendChild(spaceSpan);
		}
		
		if(uploaderName != null && uploaderName != "") {
			var div3Span2 = document.createElement("Span"); // uploader
			div3Span2.className = "SmallLabel";
			div3Span2.appendChild(document.createTextNode("Uploader: "));
			var div3Span3 = document.createElement("Span");
			div3Span3.className = "SmallText";
			div3Span3.appendChild(document.createTextNode(uploaderName));
			div3.appendChild(div3Span2);
			div3.appendChild(div3Span3);
		}
		
		extInfo.appendChild(div3);
	}
	
	// deals with row 4
	
	if( (views != null && views != "") || (rating != null && rating != "")) {
		var div4 = document.createElement("Div");
		
		if(views != null && views != "") {
			var div4Span1 = document.createElement("Span"); // views
			div4Span1.className = "SmallLabel";
			div4Span1.appendChild(document.createTextNode("Views: "));
			var div4Span2 = document.createElement("Span");
			div4Span2.className = "SmallText";
			div4Span2.appendChild(document.createTextNode(views));
			div4.appendChild(div4Span1);
			div4.appendChild(div4Span2);
		}
		
		if(views != null && views != "" && rating != null && rating != "") {
			var spaceSpan = document.createElement("Span");
			spaceSpan.appendChild(document.createTextNode(" - "));
			div4.appendChild(spaceSpan);
		}
		
		if(rating != null && rating != "") {
			var div4Span3 = document.createElement("Span"); // rating
			div4Span3.className = "SmallLabel";
			div4Span3.appendChild(document.createTextNode("Rating: "));
			var div4Span4 = document.createElement("Span");
			div4Span4.className = "SmallText";
			div4Span4.appendChild(document.createTextNode(rating));
			div4.appendChild(div4Span3);
			div4.appendChild(div4Span4);
		}
		
		extInfo.appendChild(div4);
	}
	
	// deals with row 5
	if(created != null && created != "") {
		var div5 = document.createElement("Div");
		
		var div5Span1 = document.createElement("Span");
		div5Span1.className = "SmallLabel";
		div5Span1.appendChild(document.createTextNode("Date: "));
		
		var div5Span2 = document.createElement("Span");
		div5Span2.className = "SmallText";
		div5Span2.appendChild(document.createTextNode(created));
		
		div5.appendChild(div5Span1);
		div5.appendChild(div5Span2);
		extInfo.appendChild(div5);
	}
	
	item.appendChild(extInfo);
	
	return item;
}

// event handler functions =================================================================================


//===== stuff for related videos
function handleExtraListResults(xml) {
	
	var objsArr = extraListInfoObj.lastResults = parseAjaxRequestXML(xml);
	var objsArrCount = objsArr.length;

	var resultsDiv = document.getElementById(extraListInfoObj.divName);
	
	var resultInfo = xml.getElementsByTagName('Videos')[0];
	
	var allResultsCount = -1;
	var startIndex = -1;
	var page = -1;
	var pages = -1;

	for( var i = 0; i < resultInfo.attributes.length; i++) {
		if(resultInfo.attributes[i].nodeName == 'Total'      && !isNaN(resultInfo.attributes[i].nodeValue)) allResultsCount = parseInt(resultInfo.attributes[i].nodeValue);
		if(resultInfo.attributes[i].nodeName == 'StartIndex' && !isNaN(resultInfo.attributes[i].nodeValue)) startIndex =      parseInt(resultInfo.attributes[i].nodeValue);
		if(resultInfo.attributes[i].nodeName == 'Page'       && !isNaN(resultInfo.attributes[i].nodeValue)) page =            parseInt(resultInfo.attributes[i].nodeValue);
		if(resultInfo.attributes[i].nodeName == 'Pages'      && !isNaN(resultInfo.attributes[i].nodeValue)) pages =           parseInt(resultInfo.attributes[i].nodeValue);
	}

	extraListInfoObj.pageNum = page;
	extraListInfoObj.pages = pages;
	extraListInfoObj.allResultsCount = allResultsCount;
	extraListInfoObj.startIndex = startIndex;
	
	if(resultsDiv != null) {
		
		resultsDiv.innerHTML = "";
		
		var containerDiv = document.createElement("DIV");
		containerDiv.className = "ELContainer";
		
		if(objsArrCount > 0) {
			
			if(!isNaN(extraListInfoObj.startIndex) && !isNaN(extraListInfoObj.allResultsCount)) {
				var countDiv = document.createElement("Div");
				countDiv.className = "SmallText ELCountDiv";
				countDiv.appendChild(document.createTextNode((extraListInfoObj.startIndex + 1) + " - " + (extraListInfoObj.startIndex + objsArrCount) + " of " + extraListInfoObj.allResultsCount));
				resultsDiv.appendChild(countDiv);
			}
			
			for(var i = 0; i < objsArrCount; i++) {
				
			  // validate the values for this search result
			  if(objsArr[i].Title == null) objsArr[i].Title = "No Title Available";
			  else if(objsArr[i].Title.length > 35) objsArr[i].Title = objsArr[i].Title.substr(0,32) + "...";
			  if(objsArr[i].Views == null) objsArr[i].Views = "No View Data";
			  if(objsArr[i].UploaderName == null) objsArr[i].UploaderName = "";
			  if(objsArr[i].UploaderID == null) objsArr[i].UploaderID = "";
			  if(isNaN(objsArr[i].Rating)) objsArr[i].Rating = "";
			  if(objsArr[i].Created == null) objsArr[i].Created = "";
			  
			  var url = CORE_SITEROOT + "/maxprepstv.mxp/videoid-" + objsArr[i].ID;
			  if(refID != "" && refType != "") url += "/refid-" + refID + "/reftype-" + refType;
			  else if(channelID != "") url += "/channelid-" + channelID;
			  	
			  if(objsArr[i].URL == null) objsArr[i].URL = url;
			  
			  var formatedDuration = "";
			  if(objsArr[i].Duration != null && objsArr[i].Duration != "" && parseInt(objsArr[i].Duration) >= 0) {
			  	objsArr[i].Duration = parseInt(objsArr[i].Duration);
			 		formatedDuration = convertToTimecode(objsArr[i].Duration);
			 	}
			  
			  if(objsArr[i].Thumbnail == null || !objsArr[i]) objsArr[i].Thumbnail = CORE_SITEROOT + "/images/mptv/mptv_08/thumb_maxpreps.jpg";
			  
				var item = createExtraListVideoItem(objsArr[i].ID, objsArr[i].URL, objsArr[i].Title, objsArr[i].Views, objsArr[i].Rating, objsArr[i].UploaderName, objsArr[i].UploaderID, formatedDuration, objsArr[i].Created, objsArr[i].Thumbnail);
			  
			  if(!hasClass(item, "ELPlaying")) {
				  if(i % 2 == 0) item.className += " ELItemEveryEven";
				  else item.className += " ELItemEveryOdd";
				}
			  containerDiv.appendChild(item);
			  
			  var divider = document.createElement("Div");
			  divider.className = "Divider";
			  containerDiv.appendChild(divider);
			}
			
			//alert("Page Num -> " + extraListInfoObj.pageNum + "   Pages -> " + extraListInfoObj.pages);
			
			if(!isNaN(extraListInfoObj.startIndex) && !isNaN(extraListInfoObj.allResultsCount) && (extraListInfoObj.pageNum < extraListInfoObj.pages)) {
				var moreResults = document.createElement("DIV");
				moreResults.className = "MaxWidth AlignCenter";
				
				var moreResultsATag = document.createElement("A");
				moreResultsATag.appendChild(document.createTextNode('List All Results'));
				moreResultsATag.href = 'Javascript:void(0);';
				addEvent(moreResultsATag, "click", onELListAllResultsClickHandler);
				
				moreResults.appendChild(moreResultsATag);
				
				containerDiv.appendChild(moreResults);
			}
			
		}
		else {
			// No Search Results
			var div = document.createElement("DIV");
			div.innerHTML = "No Videos were found.";
			div.className = "SmallText"
			containerDiv.appendChild(div);
		}
		
		resultsDiv.appendChild(containerDiv);
		
		var visibilityDiv = document.getElementById(extraListInfoObj.visibilityDivName);
		if(!hasClass(visibilityDiv, "Expanded")) {
			toggleDivDisplayType(visibilityDiv);
		}
		
		//var containerHeight = findElementsSpace(containerDiv).bottom;
		if(containerDiv.offsetHeight > extraListInfoObj.maxDivHeight) containerDiv.style.height = (extraListInfoObj.maxDivHeight + "px");
	}
	else {
		alert('Error displaying Related Videos.');
	}
}
function createExtraListVideoItem(id, url, title, views, rating, uploaderName, uploaderID, duration, created, thumbnailURL) {
	
	// check to see if this video is the one playing
	var displayedVideo = false;
	if(videoInfo.ID == id) {
		displayedVideo = true;
		if(title.length > 25) title = title.substr(0,22) + "...";
	}
	
	// check to see if this video is in the quicklist
	var quicklistArray;
	if(quicklistInfoObj.objsArr != null && quicklistInfoObj.objsArr.length > 0) quicklistArray = quicklistInfoObj.objsArr;
			
	var inQuicklist = false;
	if(quicklistArray != null) {
		for(var j = 0; j < quicklistArray.length; j++) {
			if(quicklistArray[j].ID == id) {
				inQuicklist = true;
				break;
			}
		}
	}
	
  // build this search results main div "SRItem"
	var div = document.createElement("DIV");
	
	if(!displayedVideo) {
		div.className = "ELItem";
		addEvent(div, "mouseover", onELItemMouseOverHandler, "el");
		addEvent(div, "mouseout", onELItemMouseOutHandler, "el");
	}
	else {
		div.className = "ELItem ELPlaying";
	}
	
	div.id = "EL_" + id;
  
  // Build the thumbnail
  var thumbnail = document.createElement("Div");
  thumbnail.className = "FloatLeft";
  
  var thumbnailOuterWrapper = document.createElement("Div");
  thumbnailOuterWrapper.className = "SRThumbnailOuterWrapper";
 	
 	var thumbnailInnerWrapper = document.createElement("Div");
 	thumbnailInnerWrapper.className = "SRThumbnailInnerWrapper";

	var thumbnailATag; // only use if displayedVideo is true
	if(!displayedVideo) {
		thumbnailATag = document.createElement("A");
		thumbnailATag.href = url;
	}

	var thumbnailImg = document.createElement("Img");
	thumbnailImg.className = "VertImg90";
	thumbnailImg.src = thumbnailURL;
	
	if(!displayedVideo) {
		thumbnailATag.appendChild(thumbnailImg);
		thumbnailInnerWrapper.appendChild(thumbnailATag);
	}
	else {
		thumbnailInnerWrapper.appendChild(thumbnailImg);	
	}
	
	thumbnailOuterWrapper.appendChild(thumbnailInnerWrapper);
	thumbnail.appendChild(thumbnailOuterWrapper);
	div.appendChild(thumbnail);
	// end of thumbnail
	
	
	// Build the text
	var extInfo = document.createElement("Div");
	extInfo.className = "ELExtInfo";
	
	// line 1 of stuff (title)
	var line1WrapperDiv = document.createElement("Div");
	
	var line1Span1 = document.createElement("Span");
	line1Span1.className = "SmallCaption";
	
	var line1Span1ATag;
	if(!displayedVideo) {
		line1Span1ATag = document.createElement("A");
		line1Span1ATag.href = url;
		line1Span1ATag.appendChild(document.createTextNode(title));
		
		line1Span1.appendChild(line1Span1ATag);
	}
	else {
		line1Span1.appendChild(document.createTextNode("Playing - " + title));
	}
	
	line1WrapperDiv.appendChild(line1Span1);
	extInfo.appendChild(line1WrapperDiv);
	
	// line 2 of stuff (duration and uploader stuff
	if(duration != "" || uploaderName || "") {
		var line2WrapperDiv = document.createElement("Div");
		
		if(duration != "") {
			var line2Span1 = document.createElement("Span");
			line2Span1.className = "SmallText";
			line2Span1.appendChild(document.createTextNode(duration + "   "));
			line2WrapperDiv.appendChild(line2Span1);
		}
		
		if(duration != "" && uploaderName != "") {
			var line2SpacerSpan = document.createElement("Span");
			line2SpacerSpan.appendChild(document.createTextNode(" - "));
			line2WrapperDiv.appendChild(line2SpacerSpan);
		}
		
		if(uploaderName != "") {
			var line2Span2 = document.createElement("Span");
			line2Span2.className = "SmallLabel";
			line2Span2.appendChild(document.createTextNode("From: "));
			line2WrapperDiv.appendChild(line2Span2);
			
			var line2Span3 = document.createElement("Span");
			if(uploaderID != "") {
				var line2Span3ATag = document.createElement("A");
				line2Span3ATag.href = CORE_SITEROOT + '/mptv/search.mxp/uploaderid-' + uploaderID + '/zoneid-' + zoneID + '/submit-true';
				line2Span3ATag.appendChild(document.createTextNode(uploaderName));
				line2Span3.appendChild(line2Span3ATag);
			}
			else {
				line2Span3.appendChild(document.createTextNode(uploaderName));
			}
			line2WrapperDiv.appendChild(line2Span3);
		}
		
		extInfo.appendChild(line2WrapperDiv);
	}
	
	
	// line 3 of stuff (views and rating)
	
	if(views != "" || rating != "") {
		var line3WrapperDiv = document.createElement("Div");
		
		if(views != "") {
			var line3Span1 = document.createElement("Span");
			line3Span1.className = "SmallLabel";
			line3Span1.appendChild(document.createTextNode("Views: "));
			line3WrapperDiv.appendChild(line3Span1);
			
			var line3Span2 = document.createElement("Span");
			line3Span2.className = "SmallText";
			line3Span2.appendChild(document.createTextNode(views));
			line3WrapperDiv.appendChild(line3Span2);
		}
		
		if(views != "" && rating != "") {
			line3SpacerSpan = document.createElement("Span");
			line3SpacerSpan.appendChild(document.createTextNode(" - "));
			line3WrapperDiv.appendChild(line3SpacerSpan);
		}
		
		if(rating != "") {
			var line3Span3 = document.createElement("Span");
			line3Span3.className = "SmallLabel";
			line3Span3.appendChild(document.createTextNode("Rating: "));
			line3WrapperDiv.appendChild(line3Span3);
			
			var line3Span4 = document.createElement("Span");
			line3Span4.className = "SmallText";
			line3Span4.appendChild(document.createTextNode(rating));
			line3WrapperDiv.appendChild(line3Span4);
		}
		extInfo.appendChild(line3WrapperDiv);
	}
	
	// line 4 stuff (created)
	if(created != "") {
		var line4WrapperDiv = document.createElement("Div");
		
		var line4Span1 = document.createElement("Span");
		line4Span1.className = "SmallLabel";
		line4Span1.appendChild(document.createTextNode("Date: "));
		line4WrapperDiv.appendChild(line4Span1);
		
		var line4Span2 = document.createElement("Span");
		line4Span2.className = "SmallText";
		line4Span2.appendChild(document.createTextNode(created));
		line4WrapperDiv.appendChild(line4Span2);
		
		extInfo.appendChild(line4WrapperDiv);
	}
	
	
	// line 5 of stuff (add to quicklist)
	var line5WrapperDiv = document.createElement("Div");
	line5WrapperDiv.className = "AlignRight";
	
	var line5Span1 = document.createElement("Span");
	line5Span1.id = "ELAddQL_" + id;
	
	if(!inQuicklist) {
		addEvent(line5Span1, 'click', onELAddToQuicklistClickHandler);
		
		var line5Span1ATag = document.createElement("A");
		
		line5Span1ATag.href = "Javascript:void(0);";
		line5Span1ATag.appendChild(document.createTextNode("Add To Quicklist"));
		
		line5Span1.appendChild(line5Span1ATag);
	}
	else {
		line5Span1.appendChild(document.createTextNode("In Quicklist"));
	}
	line5WrapperDiv.appendChild(line5Span1);
	extInfo.appendChild(line5WrapperDiv);
	
  div.appendChild(extInfo);
  
  return div;
}
function onELAddToQuicklistClickHandler(e) {
	var results = extraListInfoObj.lastResults;
	var formatedID = this.id.replace("ELAddQL_","");
	
	for(var i = 0; i < results.length; i++) {
		if(results[i].ID == formatedID) {
			if(addQuicklistItem(results[i].ID, results[i].Title, results[i].Thumbnail, results[i].Created)) {
				
				var newNode = document.createElement("Span");
				newNode.appendChild(document.createTextNode("In Quicklist"));
				this.removeChild(this.childNodes[0]);
				this.appendChild(newNode);
				
				removeEvent(this, "click", onELAddToQuicklistClickHandler);
				break;
			}
		}
	}
	
	var SRDiv = document.getElementById(searchResultInfoObj.divName); // checks the other list it needs to compare with
	if(SRDiv != null) {
		
		var spanElements = SRDiv.getElementsByTagName('Span');
		
		for(var i = 0; i < spanElements.length; i++) {
			var spanElement = spanElements[i];
			if(spanElement.id.replace("SRAddQL_","") == formatedID) {
				var newNode = document.createElement("Span");
				newNode.appendChild(document.createTextNode("In Quicklist"));
				spanElement.removeChild(spanElement.childNodes[0]);
				spanElement.appendChild(newNode);
				
				removeEvent(spanElement, "click", onSRAddToQuicklistClickHandler);
				break;
			}
		}
	}
}
function onELItemMouseOverHandler(e) {
	if(!hasClass(this, "ELMouseOver")) {
		addClass(this, "ELMouseOver");
		
		if(hasClass(this, "ELItemEveryOdd")) {
				removeClass(this, "ELItemEveryOdd");
				addClass(this, "xELItemEveryOdd");
		}
		else if(hasClass(this, "ELItemEveryEven")) {
				removeClass(this, "ELItemEveryEven");
				addClass(this, "xELItemEveryEven");
		}
	}
	stopPropagation(e);
}
function onELItemMouseOutHandler(e) {
	if(hasClass(this, "ELMouseOver")) {
		removeClass(this, "ELMouseOver");
		
		if(hasClass(this, "xELItemEveryOdd")) {
				removeClass(this, "xELItemEveryOdd");
				addClass(this, "ELItemEveryOdd");
		}
		else if(hasClass(this, "xELItemEveryEven")) {
				removeClass(this, "xELItemEveryEven");
				addClass(this, "ELItemEveryEven");
		}
	}
	stopPropagation(e);
}

function onELListAllResultsClickHandler(e) {
	extraListInfoObj.maxCount = extraListInfoObj.allResultsCount;
	
	if(extraListInfoObj.feedType == feedTypes.RELATED_RESULTS) {
		getRelatedVideos(videoInfo.ID);
	}
	else if(extraListInfoObj.feedType == feedTypes.CHANNEL_RESULTS) {
		getChannelVideos(channelID);
	}
	else if(extraListInfoObj.feedType == feedTypes.REFERENCE_RESULTS) {
		getReferenceVideos(refID, refType);
	}
	
}
function getSimilarItems(nextItem, count) {
	var si = extraListInfoObj.lastResults;
	
	if(si.length > 0) {
		var similarItemsObj = new Object();
		similarItemsObj.items = new Array();
		
		if(nextItem >= si.length) nextItem = 0;
		
		var i = 0;
		while(i < count) {
			similarItemsObj.items[i] = si[nextItem]; // set current item to what it should be
			
			nextItem++; // increment next item
			i++; // increment arr postion and counter
			
			if(nextItem >= si.length) nextItem = 0; // if nextItem is out of range then set it to 0
		}
		
		similarItemsObj.nextSimilarItemIndex = nextItem;
		
		return similarItemsObj;
	}
	else {
		return null;
	}
}



//===== sutff for search results
function handleSearchResults(xml) {
	
	var objsArr = searchResultInfoObj.lastResults = parseAjaxRequestXML(xml);
	var objsArrCount = objsArr.length;

	var resultsDiv = document.getElementById(searchResultInfoObj.divName);
	
	var resultInfo = xml.getElementsByTagName('Videos')[0];
	
	var allResultsCount = -1;
	var startIndex = -1;
	var page = -1;
	var pages = -1;
	
	for( var i = 0; i < resultInfo.attributes.length; i++) {
		if(resultInfo.attributes[i].nodeName == 'Total'      && !isNaN(resultInfo.attributes[i].nodeValue)) allResultsCount = parseInt(resultInfo.attributes[i].nodeValue);
		if(resultInfo.attributes[i].nodeName == 'StartIndex' && !isNaN(resultInfo.attributes[i].nodeValue)) startIndex =      parseInt(resultInfo.attributes[i].nodeValue);
		if(resultInfo.attributes[i].nodeName == 'Page'       && !isNaN(resultInfo.attributes[i].nodeValue)) page =            parseInt(resultInfo.attributes[i].nodeValue);
		if(resultInfo.attributes[i].nodeName == 'Pages'      && !isNaN(resultInfo.attributes[i].nodeValue)) pages =           parseInt(resultInfo.attributes[i].nodeValue);
	}

	searchResultInfoObj.pageNum = page;
	searchResultInfoObj.pages = pages;
	searchResultInfoObj.allResultsCount = allResultsCount;
	searchResultInfoObj.startIndex = startIndex;
	
	if(resultsDiv != null) {
		
		resultsDiv.innerHTML = "";
		
		var containerDiv = document.createElement("DIV");
		containerDiv.className = "SRContainer";
		
		if(objsArrCount > 0) {
			
			var countDiv = document.createElement("Div");
			countDiv.className = "SmallText SRCountDiv";
			countDiv.appendChild(document.createTextNode((searchResultInfoObj.startIndex + 1) + " - " + (searchResultInfoObj.startIndex + objsArrCount) + " of " + searchResultInfoObj.allResultsCount));
			resultsDiv.appendChild(countDiv);
			
			for(var i = 0; i < objsArrCount; i++) {
				
			  // validate the values for this search result
			  if(objsArr[i].Title == null) objsArr[i].Title = "No Title Available";
			  else if(objsArr[i].Title.length > 35) objsArr[i].Title = objsArr[i].Title.substr(0,32) + "...";
			  if(objsArr[i].Views == null) objsArr[i].Views = "No View Data";
			  if(objsArr[i].UploaderName == null) objsArr[i].UploaderName = "";
			  if(objsArr[i].UploaderID == null) objsArr[i].UploaderID = "";
			  var formatedDuration = "";
			  if(isNaN(objsArr[i].Rating)) objsArr[i].Rating = "";
			  if(objsArr[i].Created == null) objsArr[i].Created = "";
			  
			  if(objsArr[i].Duration != null && objsArr[i].Duration != "" && parseInt(objsArr[i].Duration) >= 0) {
			  	objsArr[i].Duration = parseInt(objsArr[i].Duration);
			 		formatedDuration = convertToTimecode(objsArr[i].Duration);
			 	}
			  	
			  if(objsArr[i].Thumbnail == null || !objsArr[i]) objsArr[i].Thumbnail = CORE_SITEROOT + "/images/mptv/mptv_08/thumb_maxpreps.jpg";
			  
				var item = createSearchResultItem(objsArr[i].ID, objsArr[i].Title, objsArr[i].Views, objsArr[i].Rating, objsArr[i].UploaderName, objsArr[i].UploaderID, formatedDuration, objsArr[i].Created, objsArr[i].Thumbnail);
			  if(!hasClass(item, "SRPlaying")) {
				  if(i % 2 == 0) item.className += " SRItemEveryEven";
				  else item.className += " SRItemEveryOdd";
				 }
			  containerDiv.appendChild(item);
			  
			  var divider = document.createElement("Div");
			  divider.className = "Divider";
			  containerDiv.appendChild(divider);
			}
			
			var searchPageDiv = document.createElement("DIV");
			searchPageDiv.className = "MaxWidth AlignCenter";
			
			if(searchResultInfoObj.pageNum < searchResultInfoObj.pages) {
				var moreResultsATag = document.createElement("A");
				moreResultsATag.href = CORE_SITEROOT + "/fanpages.aspx/mptv/search?txttype=text&txtsearch=" + searchResultInfoObj.searchTxt + "&page=" + (searchResultInfoObj.pageNum + 1) + "&count=" + (searchResultInfoObj.maxCount) + "&submit=true";
				moreResultsATag.appendChild(document.createTextNode("Go to more results"));
				
				searchPageDiv.appendChild(moreResultsATag);
				searchPageDiv.appendChild(document.createTextNode(" - "));
			}
			
			var gotoSearchPageATag = document.createElement("A");
			gotoSearchPageATag.href = CORE_SITEROOT + "/fanpages.aspx/mptv/search?txttype=text&txtsearch=" + searchResultInfoObj.searchTxt + "&page=1&count=" + (searchResultInfoObj.maxCount) + "&submit=true";
			gotoSearchPageATag.appendChild(document.createTextNode("Go to advanced search"));
			searchPageDiv.appendChild(gotoSearchPageATag);
			
			containerDiv.appendChild(searchPageDiv);
			
		}
		else {
			// No Search Results
			//alert('No Search Results');
			var div = document.createElement("DIV");
			div.appendChild(document.createTextNode("No Search Results were found."));
			div.className = "SmallText"
			containerDiv.appendChild(div);
		}
		
		resultsDiv.appendChild(containerDiv);
		
		if(!hasClass(resultsDiv, "Expanded")) {
			toggleDivDisplayType(resultsDiv);
		}
		
		//var containerHeight = findElementsSpace(containerDiv).bottom;
		if(containerDiv.offsetHeight > searchResultInfoObj.maxDivHeight) {
			containerDiv.style.height = (searchResultInfoObj.maxDivHeight) + "px";
		}
	}
	else {
		alert('Error displaying Search Results');
	}
}
function handleSearchError() {
	alert("Error getting search results");
}
function createSearchResultItem(id, title, views, rating, uploaderName, uploaderID, duration, created, thumbnailURL) {

	// check to see if this video is the one playing
	var displayedVideo = false;
	if(videoInfo.ID == id) {
		displayedVideo = true;
		if(title.length > 25) title = title.substr(0,22) + "...";
	}
	
	// check to see if this video is in the quicklist
	var quicklistArray;
	if(quicklistInfoObj.objsArr != null && quicklistInfoObj.objsArr.length > 0) quicklistArray = quicklistInfoObj.objsArr;
			
	var inQuicklist = false;
	if(quicklistArray != null) {
		for(var j = 0; j < quicklistArray.length; j++) {
			if(quicklistArray[j].ID == id) {
				inQuicklist = true;
				break;
			}
		}
	}
	
  // build this search results main div "SRItem"
	var div = document.createElement("DIV");
	
	if(!displayedVideo) {
		div.className = "SRItem";
		addEvent(div, "mouseover", onSRItemMouseOverHandler, "sr");
		addEvent(div, "mouseout", onSRItemMouseOutHandler, "sr");
	}
	else {
		div.className = "SRItem SRPlaying";
	}
	
	div.id = "SR_" + id;
  
  
  // Build the thumbnail
  var thumbnail = document.createElement("Div");
  thumbnail.className = "FloatLeft";
  
  var thumbnailOuterWrapper = document.createElement("Div");
  thumbnailOuterWrapper.className = "SRThumbnailOuterWrapper";
 	
 	var thumbnailInnerWrapper = document.createElement("Div");
 	thumbnailInnerWrapper.className = "SRThumbnailInnerWrapper";

	var thumbnailATag; // only use if displayedVideo is true
	if(!displayedVideo) {
		thumbnailATag = document.createElement("A");
		thumbnailATag.href = CORE_SITEROOT + '/maxprepstv.mxp/videoid-' + id + "/lastsearch-" + searchResultInfoObj.searchTxt;
	}

	var thumbnailImg = document.createElement("Img");
	thumbnailImg.className = "VertImg90";
	thumbnailImg.src = thumbnailURL;
	
	if(!displayedVideo) {
		thumbnailATag.appendChild(thumbnailImg);
		thumbnailInnerWrapper.appendChild(thumbnailATag);
	}
	else {
		thumbnailInnerWrapper.appendChild(thumbnailImg);	
	}
	
	thumbnailOuterWrapper.appendChild(thumbnailInnerWrapper);
	thumbnail.appendChild(thumbnailOuterWrapper);
	div.appendChild(thumbnail);
	// end of thumbnail stuff
	
	
	// Build the test (all text stuff)
	var extInfo = document.createElement("Div");
	extInfo.className = "SRExtInfo";
	
	// line 1 of stuff (title)
	var line1WrapperDiv = document.createElement("Div");
	
	var line1Span1 = document.createElement("Span");
	line1Span1.className = "SmallCaption";
	
	var line1Span1ATag;
	if(!displayedVideo) {
		line1Span1ATag = document.createElement("A");
		line1Span1ATag.href = CORE_SITEROOT + '/maxprepstv.mxp/videoid-' + id + "/lastsearch-" + searchResultInfoObj.searchTxt;
		line1Span1ATag.appendChild(document.createTextNode(title.replace("\\","")));
		
		line1Span1.appendChild(line1Span1ATag);
	}
	else {
		line1Span1.appendChild(document.createTextNode("Playing - " + title.replace("\\","")));
	}
	
	line1WrapperDiv.appendChild(line1Span1);
	extInfo.appendChild(line1WrapperDiv);
	
	// line 2 of stuff (duration and uploader)
	if(duration != "" || uploaderName || "") {
		var line2WrapperDiv = document.createElement("Div");
		
		if(duration != "") {
			var line2Span1 = document.createElement("Span");
			line2Span1.className = "SmallText";
			line2Span1.appendChild(document.createTextNode(duration + "   "));
			line2WrapperDiv.appendChild(line2Span1);
		}
		
		if(duration != "" && uploaderName != "") {
			line2SpacerSpan = document.createElement("Span");
			line2SpacerSpan.appendChild(document.createTextNode(" - "));
			line2WrapperDiv.appendChild(line2SpacerSpan);
		}
		
		if(uploaderName != "") {
			var line2Span2 = document.createElement("Span");
			line2Span2.className = "SmallLabel";
			line2Span2.appendChild(document.createTextNode("From: "));
			line2WrapperDiv.appendChild(line2Span2);
			
			var line2Span3 = document.createElement("Span");
			if(uploaderID != "") {
				var line2Span3ATag = document.createElement("A");
				line2Span3ATag.href = CORE_SITEROOT + '/mptv/search.mxp/uploaderid-' + uploaderID + '/zoneid-' + zoneID + '/submit-true/page-1/count-20';
				line2Span3ATag.appendChild(document.createTextNode(uploaderName));
				line2Span3.appendChild(line2Span3ATag);
			}
			else {
				line2Span3.appendChild(document.createTextNode(uploaderName));
			}
			line2WrapperDiv.appendChild(line2Span3);
		}
		
		extInfo.appendChild(line2WrapperDiv);
	}
	
	// line 3 of stuff (views and rating)
	if(views != "" || rating != "") {
		var line3WrapperDiv = document.createElement("Div");
		
		if(views != "") {
			var line3Span1 = document.createElement("Span");
			line3Span1.className = "SmallLabel";
			line3Span1.appendChild(document.createTextNode("Views: "));
			line3WrapperDiv.appendChild(line3Span1);
			
			var line3Span2 = document.createElement("Span");
			line3Span2.className = "SmallText";
			line3Span2.appendChild(document.createTextNode(views));
			line3WrapperDiv.appendChild(line3Span2);
		}
		
		if(views != "" && rating != "") {
			line3SpacerSpan = document.createElement("Span");
			line3SpacerSpan.appendChild(document.createTextNode(" - "));
			line3WrapperDiv.appendChild(line3SpacerSpan);
		}
		
		if(rating != "") {
			var line3Span3 = document.createElement("Span");
			line3Span3.className = "SmallLabel";
			line3Span3.appendChild(document.createTextNode("Rating: "));
			line3WrapperDiv.appendChild(line3Span3);
			
			var line3Span4 = document.createElement("Span");
			line3Span4.className = "SmallText";
			line3Span4.appendChild(document.createTextNode(rating));
			line3WrapperDiv.appendChild(line3Span4);
		}
		extInfo.appendChild(line3WrapperDiv);
	}
	
	
	// line 4 of stuff (created)
	if(created != "") {
		var line4WrapperDiv = document.createElement("Div");
		
		var line4Span1 = document.createElement("Span");
		line4Span1.className = "SmallLabel";
		line4Span1.appendChild(document.createTextNode("Date: "));
		line4WrapperDiv.appendChild(line4Span1);
		
		var line4Span2 = document.createElement("Span");
		line4Span2.className = "SmallText";
		line4Span2.appendChild(document.createTextNode(created));
		line4WrapperDiv.appendChild(line4Span2);
		
		extInfo.appendChild(line4WrapperDiv);
	}
	
	
	// line 5 of stuff (add to quicklist)
	var line5WrapperDiv = document.createElement("Div");
	line5WrapperDiv.className = "AlignRight";
	
	var line5Span1 = document.createElement("Span");
	line5Span1.id = "SRAddQL_" + id;
	//if(navigator.appName.indexOf("Microsoft") != -1) {
		//line5Span1.style.marginRight = "18px";
	//}
		
	if(!inQuicklist) {
		addEvent(line5Span1, 'click', onSRAddToQuicklistClickHandler);
		
		var line5Span1ATag = document.createElement("A");
		
		line5Span1ATag.href = "Javascript:void(0);";
		line5Span1ATag.appendChild(document.createTextNode("Add To Quicklist"));

		
		line5Span1.appendChild(line5Span1ATag);
	}
	else {
		line5Span1.appendChild(document.createTextNode("In Quicklist"));
	}
	
	line5WrapperDiv.appendChild(line5Span1);
	extInfo.appendChild(line5WrapperDiv);
	
  div.appendChild(extInfo);
  
  return div;
}
function onSRItemMouseOverHandler(e) {
	if(!hasClass(this, "SRMouseOver")) {
		addClass(this, "SRMouseOver");
		
		if(hasClass(this, "SRItemEveryOdd")) {
				removeClass(this, "SRItemEveryOdd");
				addClass(this, "xSRItemEveryOdd");
		}
		else if(hasClass(this, "SRItemEveryEven")) {
				removeClass(this, "SRItemEveryEven");
				addClass(this, "xSRItemEveryEven");
		}
	}
	stopPropagation(e);
}
function onSRItemMouseOutHandler(e) {
	if(hasClass(this, "SRMouseOver")) {
		removeClass(this, "SRMouseOver");
		
		if(hasClass(this, "xSRItemEveryOdd")) {
				removeClass(this, "xSRItemEveryOdd");
				addClass(this, "SRItemEveryOdd");
		}
		else if(hasClass(this, "xSRItemEveryEven")) {
				removeClass(this, "xSRItemEveryEven");
				addClass(this, "SRItemEveryEven");
		}
	}
	stopPropagation(e);
}
function onSRAddToQuicklistClickHandler(e) {
	var results = searchResultInfoObj.lastResults;
	var formatedID = this.id.replace("SRAddQL_","");
	
	for(var i = 0; i < results.length; i++) {
		if(results[i].ID == formatedID) {
			if(addQuicklistItem(results[i].ID, results[i].Title, results[i].Thumbnail, results[i].Created)) {
				
				var newNode = document.createElement("Span");
				newNode.appendChild(document.createTextNode("In Quicklist"));
				this.removeChild(this.childNodes[0]);
				this.appendChild(newNode);
				
				removeEvent(this, "click", onSRAddToQuicklistClickHandler);
				break;
			}
		}
	}
	
	
	var ELDiv = document.getElementById(extraListInfoObj.divName); // checks the other list it needs to compare with
	if(ELDiv != null) {
		
		var spanElements = ELDiv.getElementsByTagName('Span');
		
		for(var i = 0; i < spanElements.length; i++) {
			var spanElement = spanElements[i];
			
			if(spanElement.id.replace("ELAddQL_","") == formatedID) {
				var newNode = document.createElement("Span");
				newNode.appendChild(document.createTextNode("In Quicklist"));
				spanElement.removeChild(spanElement.childNodes[0]);
				spanElement.appendChild(newNode);
				
				removeEvent(spanElement, "click", onELAddToQuicklistClickHandler);
				break;
			}
		}
	}
}



function handleReferenceCardResults(html, referenceID) {
	var outputDiv = document.getElementById(referenceCardInfoObj.divName);
	
	if(outputDiv != null) {
		
		outputDiv.innerHTML += html;
	}
	else {
		alert('Error displaying Reference Card');
	}
}
function handleReferenceCardError() {
	alert("Error loading reference card");
}
function handleReferFriendResults(html, emailTo) {
	document.getElementById('emailBtn').enabled = true;
	var referDiv = document.getElementById(referFriendsInfoObj.divName);
	
	referFriendsInfoObj.referedCount++;
	
	referDiv.innerHTML = "";
	referDiv.appendChild(document.createTextNode("Email has been sent to " + emailTo));
}
function handleReferFriendsError() {
	alert("Failed to sent link to friend.");
	document.getElementById('emailBtn').enabled = true;
	
	referDiv.innerHTML = "";
	referDiv.appendChild(document.createTextNode("Email sent to " + referFriendsInfoObj.referedCount + " friends"));
}


function onCollapseableAClickHandler(e) {
	// try the immediate children first.
	var childNodes = this.parentNode.parentNode.childNodes;
	for(var i = childNodes.length - 1; i >= 0; i--) {
		
		if(childNodes[i].nodeType == 1 && (hasClass(childNodes[i], "Expanded") || hasClass(childNodes[i], "Collapsed")) ) {
			
			var displayStyle = toggleDivDisplayType(childNodes[i]);
			changeCollapsableATagImg(this, "clicked");
			
			return;
		}
	}
	
	// if not immediate try all div children.
	childNodes = this.parentNode.parentNode.getElementsByTagName('div');
	for(var i = childNodes.length - 1; i >= 0; i--) {
		
		if(childNodes[i].nodeType == 1 && (hasClass(childNodes[i], "Expanded") || hasClass(childNodes[i], "Collapsed")) ) {
			
			var displayStyle = toggleDivDisplayType(childNodes[i]);
			changeCollapsableATagImg(this, "clicked");
			
			return;
		}
	}
	
	
	stopPropagation(e);
}

//===== for header image swap
function onHeaderImgMouseOverHandler(e) {
	//changeCollapsableATagImg(this, "over");
	var img = this.getElementsByTagName('img')[0];
	
	if(img.src == CORE_SITEROOT + "/images/mptv/mptv_08/blueblock+.gif") {
		img.src = CORE_SITEROOT + "/images/mptv/mptv_08/blueblock_on.gif"
	}
	else if(img.src == CORE_SITEROOT + "/images/mptv/mptv_08/blueblock-.gif") {
		img.src = CORE_SITEROOT + "/images/mptv/mptv_08/blueblock_off.gif";
	}
}

function onHeaderImgMouseOutHandler(e) {
	//changeCollapsableATagImg(this, "out");
	var img = this.getElementsByTagName('img')[0];
	
	if(img.src == CORE_SITEROOT + "/images/mptv/mptv_08/blueblock_on.gif") {
		img.src = CORE_SITEROOT + "/images/mptv/mptv_08/blueblock+.gif"
	}
	else if(img.src == CORE_SITEROOT + "/images/mptv/mptv_08/blueblock_off.gif") {
		img.src = CORE_SITEROOT + "/images/mptv/mptv_08/blueblock-.gif";
	}
}

function changeCollapsableATagImg(element, changeType) {
	var img = element.getElementsByTagName('img')[0];
	
	if(changeType == "+") {
		img.src = CORE_SITEROOT + "/images/mptv/mptv_08/blueblock+.gif"
	}
	else if(changeType == "-") {
		img.src = CORE_SITEROOT + "/images/mptv/mptv_08/blueblock-.gif"
	}
	else if(changeType == "clicked") {
		if(img.src == CORE_SITEROOT + "/images/mptv/mptv_08/blueblock_on.gif") {
			img.src = CORE_SITEROOT + "/images/mptv/mptv_08/blueblock_off.gif"
		}
		else if(img.src == CORE_SITEROOT + "/images/mptv/mptv_08/blueblock_off.gif") {
			img.src = CORE_SITEROOT + "/images/mptv/mptv_08/blueblock_on.gif";
		}
	}
	else {
		img.src = CORE_SITEROOT + "/images/mptv/mptv_08/blueblock.gif"
	}
	
	//alert(element.id + " " + img.src);
}



// utility functions =================================================================================
function toggleDivDisplayType(div) {
	if(hasClass(div, "Collapsed")) { // collapsed
		var swapped = swapClass(div, "Collapsed", "Expanded");
		if(swapped) return "Expanded";
		else return "Collapsed";
	}
	else if(hasClass(div, "Expanded")) { // expanded
		var swapped = swapClass(div, "Expanded", "Collapsed");
		if(swapped) return "Collapsed";
		else return "Expanded";
	}
	else {
		if(div.style.display == "none") {
			addClass(div, "Expanded");
			return "Expanded"
		}
		else {
			addClass(div, "Collapsed");
			return "Collapsed";
		}
	}
}
function parseAjaxRequestXML(xml) {

	var objsArr = new Array();
	
	var items = xml.getElementsByTagName('Video');
	var itemsCount = items.length;
	
	for(var i = 0; i < itemsCount; i++) {
		var obj = new Object();
		
		var props = items[i].childNodes;
		var propsCount = props.length;
		
		for(var j = 0; j < propsCount; j++) {
			if(props[j].nodeType != 3) {
				obj[props[j].nodeName] = (props[j].childNodes[0] != null) ? props[j].childNodes[0].nodeValue : "";
			}
		}
		objsArr[i] = obj;
	}
	return objsArr;
}


// Deals with css class's =================================================================================

function hasClass(element, className) {
	if(element.className.indexOf(className) != -1) return true;
	else return false;
}

function removeClass(element, className) {
	if(hasClass(element, className)) {
		var allClasses = element.className + " ";
		className = className + " ";
		element.className = allClasses.replace(className, "");
	}
}

function addClass(element, className) {
	if(!hasClass(element, className)) {
		element.className += (" " + className);
	}
}

function swapClass(element, oldClassName, newClassName) { // had trouble with this. verify its working each time its used
	if(hasClass(element, oldClassName) && !hasClass(element, newClassName)) {
		element.className = element.className.replace(oldClassName, newClassName);
		return true;
	}
	return false;
}



// Deals with event model

var eventCleanupInit = false;
var events = null;
function initEventCleanup() {
	eventCleanupInit = true;
	events = new Array();
	addEvent(window, "unload", cleanUp);
}
function cleanUp() { // event clearnup takes place here
	if(eventCleanupInit) {
		for(var i = events.length - 1; i >= 0; i--) {
			var item = events[i];
			var evtName = item.evtName;
			var evtFunc = item.evtFunc;
			var evtObj = item.evtObj;
			
			removeEvent(evtObj, evtName, evtFunc);
		}
	}
}
function addEvent(obj, type, func, debugParam) {
	if(obj == null) {
		if(debugParam == null) debugParam = "Not given"
		alert("Error Adding event type -> " + type + "   debugParam-> " + debugParam + "\n" + func);
		return;
	}
	
	if(!eventCleanupInit) initEventCleanup();
	
	if(obj.addEventListener != null) { // used for W3C broswers
		obj.addEventListener(type, func, false);
	}
	else if(obj.attachEvent != null) { // Used for IE
		obj["e" + type + func] = func; // Create a reference on the target obj to the evtHandler function
		obj[type + func] = function() { // Annonymus function that will route the call and allow us to use this
			obj["e" + type + func] (window.event); 
		}
		obj.attachEvent("on" + type, obj[type + func]); // actually bind the event
	}
	else { // Used for old browsers
		obj["on" + type] = obj["e" + type + func];
	}
}
function removeEvent(obj, type, func) {
	if(obj.removeEventListener != null) {
		obj.removeEventListener(type, func, false);
	}
	else if(obj.detachEvent != null) {
		obj.detachEvent("on" + type, obj[type + func]);
	}
	else {
		obj["on" + type] = null;
	}
}
function stopPropagation(e) {
	if (e.preventDefault) e.preventDefault();
	else e.returnResult = false;
	if (e.stopPropagation) e.stopPropagation();
	else e.cancelBubble = true;
}



// Flash Functions =================================================================================

function CuepointTrigger_Start(obj) {
	//alert("Cuepoint Trigger Start " + obj.Description + " " + obj.ReferenceID + " " + obj.ReferenceType + " " + obj.ReferenceName);
}
function CuepointTrigger_End(obj) {
	//alert("Cuepoint Trigger End " + obj.Description);
}
function NavigationTrigger_Start(obj) {
	//alert("Navigation Trigger Start " + obj.description);
}
function NavigationTrigger_End(obj) {
	//alert("Navigation Trigger End " + obj.description);
}

function onVideoCompleteCallback() {
	var continuousPlayCB = document.getElementById('continuousPlayCB');
	
	if(continuousPlayCB != null && continuousPlayCB.checked) {
		var nextID = "";
		
		var qlItems = quicklistInfoObj.objsArr;
		var thisLoc = -1;
		for(var i = 0; i < qlItems.length; i++) { // -1 becuz the last item cant be the playing item. at that point list is done.
			if(qlItems[i].ID == videoInfo.ID) {
				thisLoc = i;
				break;
			}
		}
		
		if(thisLoc < qlItems.length - 2) nextID = qlItems[thisLoc] + 1;
		
		if(thisLoc == -1 && nextID == "" && qlItems.length > 0) { // landed on this page with continous play not selelcted. and item isnt in the quicklist
			nextID = qlItems[0].ID;
		}
		
		if(nextID != "") {
			quicklistInfoObj.saveContinuousPlay = true;
			var url = CORE_SITEROOT + '/maxprepstv.mxp/videoid-' + nextID;
			setTimeout("window.location.href='" + url + "'", 7000);
		}
		else {
			continuousPlayCB.checked = false;
		}
	}
}

function SimilarItemClickCallback(id) {
	window.location.href = CORE_SITEROOT + "/fanpages.aspx/maxprepstv?videoid=" + id + ((refID != "" && refType != "") ? ("&refid=" + refID + "&reftype=" + refType) : "");
}

function getVideoInfo() {
	return videoInfo;
}

function convertToTimecode(miliSecs) {
	var length = "";
	var secs = Math.round(parseInt(miliSecs) / 1000);
	
	var h = Math.floor(secs/3600);
	var m = Math.floor((secs%3600)/60);
	var s = Math.floor((secs%3600)%60);
	return (h == 0 ? "":(h<10 ? "0"+h.toString()+":" : h.toString()+":"))+(m<10 ? "0"+m.toString() : m.toString())+":"+(s<10 ? "0"+s.toString() : s.toString());
}

function onRatingSelectedHandler(videoID, rating) {
	//alert("The rating tool has been used. VideoID -> " + videoID + " has been given a rating of " + rating);
}

function onRatingErrorHandler() {
	alert("There has been an error loading the rating tool.");
}

function trace(str) {
	alert(str);
}
// onRatingErrorHandler, onRatingSelectedHandler

// ad function
function flashProcad(tag,isSync,useSeed,size) {

	if(isSync) {
		tag = addPTile(tag);
	}
	else{
		tag = addTile(tag);
	}
	
	// seed is for companionAd. if not seed need to give it a Position (before[preroll], middle[inline], after[postroll]).
	if(useSeed) {
		tag += "dc_seed=;";
	}
	else {
		//tag += "pos=";
	}

	if(size != undefined) {
		tag += "sz=" + size + ";";
	}
	else {
		tag += "sz=100x100;";
	}


	tag = addOrd(tag);

	var nrJumpTag = tag.replace(/\/adj\//, "\/jump\/");
	var nrImageTag = tag.replace(/\/adj\//, "\/ad\/");
	
	return tag;
}