/* MG: JSON class constructor - use this one instead of the one in omniture.js */
Array.prototype.jsonClass=function(){
	var x=this;
	var constr=function(){
		var a=arguments; var u;
		for(var i=0;i<x.length;i++){
			if(typeof x[i]=="object"){
				for(var j in x[i]){this[j]=this[j]!=u?this[j]:x[i][j]}
			};
			if(typeof x[i]!="string" || a[i]===u){continue};
			this[x[i]]=a[i];
		}
	};
	var nextProto=false;
	for(var i=0;i<=x.length;i++){
		var a=x[i]||constr;
		if(typeof a=="function"){
			a.prototype=nextProto||a.prototype;
			nextProto=new a();
		}
	};
	constr.addMembers=function(obj){
		for(var i in obj){constr.prototype[i]=obj[i]}
	};
	return constr
};

/* extending members sample: MyClass.addMembers({key:'value'}) */


/* MG: ajax caller */
includeJS=function(url,onload,allowCache){
     url=allowCache?url:url+'&nocache='+Math.random();
     url=url.split('?').length>1?url:url.replace(/\&/,'?');
     onload=typeof onload=="function"?onload:function(){};
     var js=document.createElement('script');
     js.setAttribute('src',url);
     js.addEventListener && function(){js.addEventListener('load',onload,false)}();
     js.onreadystatechange=
          function(){this.readyState=='complete' && onload.call()};
     document.getElementsByTagName('head').item(0).appendChild(js);
};


/* MG: definition for the main video item function */
videoProperties=[
'vprop0','vprop1','vprop2','vprop3','vprop4','vprop5','vprop6','vprop7','vprop8','vprop9','vprop10','vprop11','vprop12','vprop13','vprop14','vprop15',
     {
          vprop0:'empty',
          vprop1:'empty',
          vprop2:'empty',
          vprop3:'empty',
          vprop4:'empty',
          vprop5:'empty',
          vprop6:'empty',
          vprop7:'empty',
          vprop8:'empty',
          vprop9:'empty',
          vprop10:'empty',
          vprop11:'empty',
          vprop12:'empty',
          vprop13:'empty',
          vprop14:'empty',
          vprop15:'empty',
          getVprop0:function(){return this.vprop0},
          getVprop1:function(){return this.vprop1},
          getVprop2:function(){return this.vprop2},
          getVprop3:function(){return this.vprop3},
          getVprop4:function(){return this.vprop4},
          getVprop5:function(){return this.vprop5},
          getVprop6:function(){return this.vprop6},
          getVprop7:function(){return this.vprop7},
          getVprop8:function(){return this.vprop8},
          getVprop9:function(){return this.vprop9},
          getVprop10:function(){return this.vprop10},
          getVprop11:function(){return this.vprop11},
          getVprop12:function(){return this.vprop12},
          getVprop13:function(){return this.vprop13},
          getVprop14:function(){return this.vprop14},
          getVprop15:function(){return this.vprop15}
     }
].jsonClass();

/* MG: translation table
vprop0	empty
vprop1	$video_title1 
vprop2	$video_title2 
vprop3	$video_series_title 
vprop4	$video_season_number
vprop5	$video_description 
vprop6	$video_episode_number 
vprop7	$video_primary_cid 
vprop8	$video_category_type
vprop9	$video_runtime 
vprop10	$video_pid 
vprop11	$video_marker_thumb 
vprop12	$video_marker_full 
vprop13	$ <local> in xml - the current category value for the existing show pages
vprop14	$ <name> in xml - site name in xml, lowercased and trimmed to match the value passed from the left menu
vprop15	empty

*/

/* MG: definition for the main video item function */
videoCategories=[
'name','id','description','local',
     {
          name:'empty',
          id:'empty',
          description:'empty',
          local:'empty',
          getName:function(){return this.name},
          getId:function(){return this.id},
          getDescription:function(){return this.description},
          getLocal:function(){return this.local}
     }
].jsonClass();



/* SL: html constructor for home page carousels  */

function buildCarouselContent(videoArray, carouselName, count) {
	var total = count;
	var videoPageArray = videoArray;
	if (videoPageArray.length > 0) {
		for (var i = 0 ;i < total; i++) {
			document.write("<li id=\"" + carouselName + "-item-" + (i+1) + "\">");
			document.write("<div class=\"featured\">");
			if (carouselName != "carousel_hd") {
				document.write("<div class=\"playThumb\">");
			}
			else {
				document.write("<div class=\"playThumb1080p\">");
			}
						   
			document.write("<a target=\"_parent\" href=\"/" + videoPageArray[i].vprop1 + "?cid=" + videoPageArray[i].vprop7 + "&pid=" + videoPageArray[i].vprop10 + "&category=" + category_type + "&play=true\"><img src=\"" + videoPageArray[i].vprop11 + "\" width=\"120\" height=\"90\" border=\"0\" /></a></div><div class=\"content\">");
			document.write("<h5 class=\"showname\">" + videoPageArray[i].vprop3 + "</h5>");
			document.write("<h5>" + videoPageArray[i].vprop2 + "</h5>");
			document.write("<p class=\"season_episode\">");
			if (videoPageArray[i].vprop4 != '') document.write("Season " + videoPageArray[i].vprop4 + ": ");
			if (videoPageArray[i].vprop6 != '') document.write("Ep. " + videoPageArray[i].vprop6);
			document.write("</p><p class=\"duration\">" + videoPageArray[i].vprop8 + " (" + videoPageArray[i].vprop9 + ")</p><div class=\"clear\"></div></div><div class=\"clear\"></div></div></li>");
		}
		
		if (carouselName == "carousel_hd") {
			var parentDiv = new Array();
			var playThumbsArray = new Array();
			playThumbsArray = $$('div.playThumb1080p');
			for (i=0;i<playThumbsArray.length;i++) {
				var linkHref = playThumbsArray[i].select('a')[0].readAttribute('href');	
				var a = new Element('a', { 'class': 'playBtnOverlay', href: linkHref});
				playThumbsArray[i].insert(a);
				
				parentDiv[i] = playThumbsArray[i].up();
				parentDiv[i].observe('click', respondToClick)
				
			}	
		}
		
	}
	else {
		document.write("<br/><h5>There are currently no videos in this category.<br/><br/>Please, check back later.</h5><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>")
	}
}


/*function buildCarouselContent(videoArray, carouselName, count) {
	var total = count;
	var videoPageArray = videoArray;
	var carouselContent = "";
	if (videoPageArray.length > 0) {
		for (var i = 0 ;i < total; i++) {
			carouselContent = carouselContent + "<li id=\"" + carouselName + "-item-" + (i+1) + "\">";
			carouselContent = carouselContent + "<div class=\"featured\">";
			carouselContent = carouselContent + "<div class=\"playThumb\"><a target=\"_parent\" href=\"/" + videoPageArray[i].vprop1 + "?cid=" + videoPageArray[i].vprop7 + "&pid=" + videoPageArray[i].vprop10 + "&category=" + category_type + "&play=true\"><img src=\"" + videoPageArray[i].vprop11 + "\" width=\"120\" height=\"90\" border=\"0\" /></a></div><div class=\"content\">";
			carouselContent = carouselContent + "<h5 class=\"showname\">" + videoPageArray[i].vprop3 + "</h5>";
			carouselContent = carouselContent + "<h5>" + videoPageArray[i].vprop2 + "</h5>";
			carouselContent = carouselContent + "<p class=\"season_episode\">";
			if (videoPageArray[i].vprop4 != '') carouselContent = carouselContent + "Season " + videoPageArray[i].vprop4;
			if (videoPageArray[i].vprop6 != '') carouselContent = carouselContent + ": Ep. " + videoPageArray[i].vprop6;
			carouselContent = carouselContent + "</p><p class=\"duration\">" + videoPageArray[i].vprop8 + " (" + videoPageArray[i].vprop9 + ")</p><div class=\"clear\"></div></div><div class=\"clear\"></div></div></li>";
			document.write(carouselContent);
		}
	}
	else {
		document.write("<br/><h5>There are currently no videos in this category.<br/><br/>Please, check back later.</h5><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>")
	}
}*/



function buildCarouselControls(carouselName, count, category) {
	var total = count;
	var itemsPerPage = 4;
	var itemsToShow = itemsPerPage;
	var number_of_pages = Math.ceil(count / itemsPerPage);
	
	if (total > itemsPerPage) {

		document.write('<div class="carousel-prev" onclick="selectPrevDot(\'' + carouselName + '\')"><img id="' + carouselName + '-prev-arrow" class="left-button-image" src="/hp_2008/images/carousel/left-enabled.gif" alt="Previous"/></div>');
		
		for (i=0; i<number_of_pages; i++) {
			document.write('<div class="navdot"><a href="javascript:void(0)" onclick="' + carouselName + '.scrollTo(' + eval(i*itemsPerPage+1) + ');selectDot(\''+ carouselName + '\',\'' + carouselName + '-navdot' + i + '\')"><img id="' + carouselName + '-navdot' + i + '" src="/hp_2008/images/carousel/nav_dot_off.gif" border="0" alt="Page ' + (i+1) + '" title="Page ' + (i+1) + '"/></a></div>');
		}	
		
		document.write('<div class="carousel-next" onclick="selectNextDot(\'' + carouselName + '\')"><img id="' + carouselName + '-next-arrow" class="right-button-image"	src="/hp_2008/images/carousel/right-enabled.gif" alt="Next"/></div>');
		
		if (showViewAllButton) {
			document.write('<a id="' + 'viewAll_' + carouselName + '" class="btn" href="/' + sitePath + '/video/?category=' + category + '" style="float:right; margin-top:13px; margin-right:45px"><span>View All</span></a>');
		}
	
	}
	
}

function selectDot(carouselName, dotId) {
	var dotsArray = new Array();
	dotsArray = $$('div#' + carouselName + ' div.navdot img');
	for (i=0; i<dotsArray.length; i++) {
		$(dotsArray[i]).src = '/primetime/survivor/images/common/nav_dot_off.gif';
	}
	document.getElementById(dotId).src = '/primetime/survivor/images/common/nav_dot_on.gif';
}

function selectPrevDot(carouselName) {
	var carousel = eval(carouselName);
	var currentElement = carousel.getFirstVisible(); 
	var numVisible = carousel.getProperty('numVisible');
	var prevDotId = Math.floor(currentElement/numVisible);
	var dotsArray = new Array();
	dotsArray = $$('div#' + carouselName + ' div.navdot img');
	for (i=0; i<dotsArray.length; i++) {
		$(dotsArray[i]).src = '/primetime/survivor/images/common/nav_dot_off.gif';
	}
	document.getElementById(carouselName + '-navdot' + prevDotId ).src = '/primetime/survivor/images/common/nav_dot_on.gif';
}

function selectNextDot(carouselName) {
	var carousel = eval(carouselName);
	var currentElement = carousel.getFirstVisible();
	var numVisible = carousel.getProperty('numVisible');
	var nextDotId = Math.floor(currentElement/numVisible);
	var dotsArray = new Array();
	dotsArray = $$('div#' + carouselName + ' div.navdot img');
	for (i=0; i<dotsArray.length; i++) {
		$(dotsArray[i]).src = '/primetime/survivor/images/common/nav_dot_off.gif';
	}
	document.getElementById(carouselName + '-navdot' + nextDotId ).src = '/primetime/survivor/images/common/nav_dot_on.gif';
}

function getProp(videoArray,count,pid, prop) {
	var videoPageArray = videoArray;
	var videoCount = count;
	var videoId = pid;
	var propNum = prop;
	for (var i = 0;i<videoCount; i++) {
		if ((videoId == videoPageArray[i].vprop10)||(videoId == videoPageArray[i].vprop15)) {
			var propContent = videoPageArray[i][propNum]
			return propContent
		}
	}
}
