 ///////////////////////////////////////////
// environmental info
//
// initialize environmemental variables and do initial settings 
///////////////////////////////////////////
var currentLocation = window.location.hostname;
var currentPath = window.location.pathname;
var currentSearch = window.location.search.substr(1);

var collectionVideoPath;
var episodeVideoPath;
// use this switch case to customize the paths to services based on the environment
switch (currentLocation) {
	case 'www.cartoonnetwork.com':
		collectionVideoPath = "/cnvideosvc2/svc/episodeSearch/getEpisodesByShow?networkName=CN2&limit=500&offset=0";
		episodeVideoPath = "/cnvideosvc2/svc/episodeSearch/getEpisodesByIDs?networkName=CN2";
		break;
	case 'staging.cartoonnetwork.com':
		collectionVideoPath = "/cnvideosvc2/svc/episodeSearch/getEpisodesByShow?networkName=CN2&limit=500&offset=0";
		episodeVideoPath = "/cnvideosvc2/svc/episodeSearch/getEpisodesByIDs?networkName=CN2";
		break;
}

// default state for any data processing function
// should be overridden by the page's associated config script
// i.e. home.js, games.js
var defaultState = "home";

///////////////////////////////////////////
// content info
///////////////////////////////////////////
var showName;
// base path for images uploaded via the CMA
// can be made into a switch/case if we get the ability to preview images
var cmaImgBasePath = "http://i.cdn.turner.com/v5cache/CARTOON/site/";
var totalGames = '';
var ratingsActive;
var isAchievementGame = false;
var parentFranchise = "";
var adbpAGNames = "";

///////////////////////////////////////////
// utility functions
///////////////////////////////////////////

// generate a random number and return it
function getRandomNumber () {
	var fooT = new Date();
	var rnum = Math.floor(Math.random()*fooT);
	return rnum;
}


// show and hide game div for modals
function hideGame() {
	document.getElementById('displayBlock').style.visibility = "hidden"
}
function showGame() {
	document.getElementById('displayBlock').style.visibility = "visible"
}
/////////////////////////////////////////

// Game container copy link button ///////////

// hide copy button if FF or Safari 

//UserAgent variables
var ns=0;
var ie=0;
var mac=0;

var browserPlat = navigator.platform;
var browserType = navigator.appName;
var browserVers = navigator.appVersion;
var browserAgent = navigator.userAgent;
var finalBrowser = null;

//BROWSER DETECTION
if (browserPlat.indexOf('Mac') != -1) {
	mac=1;
}
		
if (browserType == 'Netscape'){
 ns=1;
} else {
if (browserType == 'Microsoft Internet Explorer'){
 ie=1;
	}
}

if ((mac == 1) && (ns == 1)) {
	finalBrowser = 'macNS';
} else {
		if ((mac == 1) && (ie == 1)) {
		finalBrowser = 'macIE';
	} else {
			if ((mac == 0) && (ns == 1)) {
			finalBrowser = 'winNS';
		} else {
				finalBrowser = 'winIE';
		}
	}
}

// hide the "copy" button in browsers that don't support it
function hideCopyLink() {
	if ((mac||ns) == 1) {
		if((mac) == 1){
				document.getElementById('copyLinkButton').style.display = "none"
		}else{
			document.getElementById('copyLinkButton').style.display = "none"
		}
	} else {
		document.getElementById('copyLinkButton').style.display = "block"
	}
}

// automatic copy button controller for share panel
function doact(d) {
var doc = eval("document.copyLinkInputField."+d);
cp = doc.createTextRange();
doc.focus();
doc.select();
cp.execCommand("Copy");
}

/////////////////////////////////////////

// configure/send rating function for games and video
function getRatingsSetup(starT) {
	starT = parseInt(starT);
	
	jQuery(function() {
		jQuery('#default').raty({
			click: function(score) {
				jQuery.get("/cnservice/stats/average/cartoonnetwork/games/" + gameId + "/rating/" + score + "/stat.process")
			},
			start:		starT
		});
	
		jQuery('#fixed').raty({
			readOnly:	true,
			start:		starT
		});
	
		jQuery('.group').raty();
	
		jQuery('.target').raty({
			click: function(score) {
				jQuery.fn.raty.start(0, '.target');
				jQuery.fn.raty.start(score, '#result');
			}
		});
	});
}

//////////////////////////////////////////


// return an HTML string of rating stars for video or games
// rating is the individual rating taken from the data
// state is the type of stars requested - i.e. read-only, dynamic, etc
function getStars (rating,state) {
	var starString = "";
	var starLimit = 0;
	tempNum = parseFloat(rating);
	if (isNaN(tempNum)) {
		tempNum = 0;
	}
	//roundedBase = Math.floor(tempNum);
	roundedBase = Math.floor(tempNum);
	if (roundedBase <= 5) {
		starLimit = roundedBase;
	} else {
		starLimit = 5;
	}
	for (i = 1; i <= starLimit; i++) {
		// read-only used on property detail pages
		if (state == "read-only") {
			starString += '<span><img src="/tools/img/global/Stars_full.png" width="15" height="15" alt="" border="0"></span>';
		// hps used on cartoon network home page
		} else if (state == "hps") {
			starString += '<div class="star"><img src="/tools/img/home/star_full.png" width="15" height="13" alt="" border="0"></div>';
		// any other case
		} else {
			starString += '<span class="ratingFullHover"><img src="http://i.cdn.turner.com/toon/tools/img/pixel.gif" width="17" height="17" alt="" border="0"></span>';
		}
	}
	extraStar = 0;
	if ((tempNum >= (roundedBase + .25)) && (tempNum < (roundedBase + .75))){
		if (state == "read-only") {
			starString += '<span><img src="/tools/img/global/Stars_half.png" width="15" height="15" alt="" border="0"></span>';
		} else if (state == "hps") {
			starString += '<div class="star"><img src="/tools/img/home/star_half.png" width="15" height="13" alt="" border="0"></div>';
		} else {
			starString += '<span class="ratingHalfHover"><img src="http://i.cdn.turner.com/toon/tools/img/pixel.gif" width="17" height="17" alt="" border="0"></span>';
		}
		extraStar = 1;
	}
	emptyNum = 5 - (roundedBase + extraStar);
	emptyLimit = Math.round(5 - tempNum);
	for (i = 1; i <= emptyNum; i++) {
		if (state == "read-only") {
			starString += '<span><img src="/tools/img/global/Stars_empty.png" width="15" height="15" alt="" border="0"></span>';
		} else if (state == "hps") {
			starString += '<div class="star"><img src="/tools/img/home/star_off.png" width="15" height="13" alt="" border="0"></div>';
		} else {
			starString += '<span><img src="http://i.cdn.turner.com/toon/tools/img/pixel.gif" width="17" height="17" alt="" border="0"></span>';
		}
	}
	return starString;
}

// set the show logo link to the show home page
pathPart0 = currentPath.slice(1,currentPath.indexOf("/",1));
pathPart1 = currentPath.substr(1,currentPath.length);
pathPart2 = pathPart1.substr(pathPart1.indexOf('/')+1,pathPart1.length);
pathPart3 = pathPart2.substr(0,pathPart2.indexOf('/'));
thisSectionPath = "/" + pathPart0 + "/" + pathPart3 + "/index.html";
jQuery('div.logoTunein a').attr('href',thisSectionPath);

// background hover
function doHover (id, mpos) {
	idString = "#" + id;
	if (mpos == "over") {
		styleString = "url(" + jQuery(idString).data('swaps').over + ")";
	} else {
		styleString = "url(" + jQuery(idString).data('swaps').out + ")";
	}
	jQuery(idString).css('background-image',styleString);
}

jQuery(document).ready(function() {
	//////////////////////////////////////////
	// button handlers
	//////////////////////////////////////////
	// display/hide the tune-in overlay on property detail pages
		jQuery('div.tuneinTxt').click(function() {
			var schedText = jQuery('div.scheduleWrapper div.inner').text();
			if (schedText.length > 20) {
				if (jQuery('div.scheduleWrapper').css('display') == "none") {
					jQuery('div.scheduleWrapper').css('display','block');
					hideGame();
				} else {
					jQuery('div.scheduleWrapper').css('display','none');
					showGame();
				}
			}
		});
		jQuery('div.scheduleWrapper div.close').click(function() {
			var schedText = jQuery('div.scheduleWrapper div.inner').text();
			if (schedText.length > 20) {
				if (jQuery('div.scheduleWrapper').css('display') == "none") {
					jQuery('div.scheduleWrapper').css('display','block');
					hideGame();
				} else {
					jQuery('div.scheduleWrapper').css('display','none');
					showGame();
				}
			}
		});

	// retrieve the total number of games
	jQuery.ajax({
		// get the number of games from the include
		type: "GET",
		url: "/tools/includes/cmagen/metatags/total_games.html",
		dataType: "html",
		error: function (request, error) {
			// do this on AJAX error
		},
		success: function(data) {
			totalGames = data;
		}
	});

});

///////////////////////////////////////////
// fade page bg
///////////////////////////////////////////

var fade_hextable = [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' ]; // used for RGB to Hex and Hex to RGB conversions
var fade_elemTable = new Array( ); // global array to keep track of faded elements
var fade_t = new Array( ); // global array to keep track of fading timers
function fadeBg( elementId, startBgColor, endBgColor, fadeTime )
{
	var timeBetweenSteps = Math.round( Math.max( fadeTime / 300, 30 ) );
	var fade_elemTableId = fade_elemTable.indexOf( elementId );
	if( fade_elemTableId > -1 )
	{
		for( var i = 0; i < fade_t[fade_elemTableId].length; i++ )
			clearTimeout( fade_t[fade_elemTableId][i] );
	}
	else
	{
		fade_elemTable.push( elementId );
		fade_elemTableId = fade_elemTable.indexOf( elementId );
	}
	var startBgColorRGB = hexToRGB( startBgColor );
	var endBgColorRGB = hexToRGB( endBgColor );
	var diffRGB = new Array( );
	for( var i = 0; i < 3; i++ )
		diffRGB[i] = endBgColorRGB[i] - startBgColorRGB[i];
	var steps = Math.ceil( fadeTime / timeBetweenSteps );
	var fade_s = new Array( );
	for( var i = 1; i <= steps; i++ )
	{
		var changes = new Array( );
		for( var j = 0; j < diffRGB.length; j++ )
			changes[j] = startBgColorRGB[j] + Math.round( ( diffRGB[j] / steps ) * i );
		if( i == steps )
			fade_s[i - 1] = setTimeout( 'document.getElementById("'+elementId+'").style.backgroundColor = "'+endBgColor+'";', timeBetweenSteps*(i-1) );
		else
			fade_s[i - 1] = setTimeout( 'document.getElementById("'+elementId+'").style.backgroundColor = "'+RGBToHex( changes )+'";', timeBetweenSteps*(i-1) );
	}
	fade_t[fade_elemTableId] = fade_s;
}
function hexToRGB( hexVal )
{
	hexVal = hexVal.toUpperCase();
	if( hexVal.substring( 0, 1 ) == '#' )
		hexVal = hexVal.substring( 1 );
	var hexArray = new Array( );
	var rgbArray = new Array( );
	hexArray[0] = hexVal.substring( 0, 2 );
	hexArray[1] = hexVal.substring( 2, 4 );
	hexArray[2] = hexVal.substring( 4, 6 );
	for( var k = 0; k < hexArray.length; k++ )
	{
		var num = hexArray[k];
		var res = 0;
		var j = 0;
		for( var i = num.length - 1; i >= 0; i-- )
			res += parseInt( fade_hextable.indexOf( num.charAt( i ) ) ) * Math.pow( 16, j++ );
		rgbArray[k] = res;
	}
	return rgbArray;
}
function RGBToHex( rgbArray )
{
	var retval = new Array( );
	for( var j = 0; j < rgbArray.length; j++ )
	{
		var result = new Array( );
		var val = rgbArray[j];
		var i = 0;
		while( val > 16 )
		{
			result[i++] = val%16;
			val = Math.floor( val/16 );
		}
		result[i++] = val%16;
		var out = '';
		for( var k = result.length - 1; k >= 0; k-- )
			out += fade_hextable[result[k]];
		retval[j] = padLeft( out, '0', 2 );
	}
	out = '#';
	for( var i = 0; i < retval.length; i++ )
		out += retval[i];
	return out;
}
if (!Array.prototype.indexOf) {
	Array.prototype.indexOf = function( val, fromIndex ) {
		if( typeof( fromIndex ) != 'number' ) fromIndex = 0;
		for( var index = fromIndex, len = this.length; index < len; index++ )
			if( this[index] == val ) return index;
		return -1;
	}
}
function padLeft( string, character, paddedWidth )
{
	if( string.length >= paddedWidth )
		return string;
	else
	{
		while( string.length < paddedWidth )
			string = character + string;
	}
	return string;
}


///////////////////////////////////////////
// content functions
//
// parsers that read XML and insert data
// into the pages
///////////////////////////////////////////

// get floating character image
// inserted into all property detail pages except eh property home
function getFloatingChar(data) {
	jQuery(data).find('Property_Master').each(function() {
		
		var floatingCharImg =  jQuery(this).find('Floating_BG_Img:first').find('srcUrl').text();
		var cmaAltText = jQuery(this).find('altText').text();
		var imgString = '<img src="' + cmaImgBasePath + floatingCharImg + '" border="0" alt="' + cmaAltText + '" /></a>';
		
		jQuery('<div></div>').html('imgString').appendTo('div.char');
		
	});
}

// get the video information for a given page
// thisID is the VMA collection ID for the propery
function getVideoCollection(thisID,showTitle) {
	jQuery.ajax({
		// get the corresponding collection XML
		// thisID read from the property detail entry in the CMA
		type: "GET",
		url: collectionVideoPath + "&id=" + thisID,
		dataType: "xml",
		error: function (request, error) {
			// do this on AJAX error
		},
		success: function(data) {
			// process only the first 3 episodes
			// this should be modified for flexibility
			var showName = jQuery(data).find('Short_Title:first').text().toUpperCase();
			jQuery(data).find('episode:lt(3)').each(function() {
				var epiId = jQuery(this).attr('id');
				var thumbSrc = jQuery(this).attr('thumbnailUrl');
				var pageUrl = jQuery(this).attr('ctxPageURL') + "?episodeID=" + epiId;
				var epiTitle = jQuery(this).attr('title');
				var durationRaw = 0;
				// get the duration of all associated segments and add them up
				jQuery(this).find('segment').each(function(){
					durationRaw += parseInt(jQuery(this).attr('duration'));
				});
				// figure out duration in minutes and seconds mathematically
				var durMins = Math.floor(durationRaw/60);
				var durSecs = (durationRaw - (durMins * 60));
				durSecs = parseInt(durSecs);
				// prefix a zero for "seconds" less than ten
				if (durSecs < 10) {
					durSecs = "0" + durSecs;
				}
				var imgString = '<img src="' + thumbSrc + '" width="144" height="81" alt="' + epiTitle + '" border="0">';
				var spanString = '<span class="epiTitle">' + epiTitle + '</span><br />' + durMins + ':' + durSecs + '<br /><a href="' + pageUrl + '">WATCH NOW &raquo;</a>';

				jQuery('<div></div>').appendTo('div.moduleVideos');
				jQuery('<a></a>').attr('href',pageUrl).html(imgString).appendTo('div.moduleVideos div:last');
				jQuery('<span></span>').html(spanString).appendTo('div.moduleVideos div:last');
				
				var wordCounter = 0;
				var titleHeight = 55;
				var currHeight = jQuery('span.epiTitle:last').height();
				var epiTitle = jQuery('span.epiTitle').text();
				while (currHeight > titleHeight) {
					var splitEpiTitle = epiTitle.split(' ');
					splitEpiTitle.length -= ++wordCounter;
					jQuery('span.epiTitle:last').text(splitEpiTitle.join(' ') + "...");
					currHeight = jQuery('span.epiTitle:last').height();
				}


			});
			jQuery('<h2></h2>').text('WATCH VIDEO').prependTo('div.moduleVideos');
			jQuery('<a></a>').attr('href','video/index.html').addClass('btnLink').appendTo('div.moduleVideos');
			jQuery('<div></div>').addClass('btn').html('SEE ALL ' + showTitle + ' VIDEO &raquo;').appendTo('div.moduleVideos a:last');
		}
	});
}

// add related genre games to the property detail home page B space
// only called if there are less than 3 property games available
function addGenreGames(data,state,genre,gamesNeeded,showName) {
	jQuery.ajax({
		// get the corresponding collection XML
		// data passed from initial data load, state from config script, genre and showName read from CMA data,
		// and gamesNeeded set in configScript
		type: "GET",
		url: "/cnservice/cartoonsvc/content/xml/getContentsByContentType.do?contentTypeName=Game&attribName=game_genre.title&attribValues=" + genre + "&max=100&filterContentId=43863&sortBy=Game_Priority_ID:desc&ignoreChildOfPropertyId=" + contentId,
		dataType: "xml",
		error: function (request, error) {
			// do this on AJAX error
		},
		success: function(data) {
			var genreGameCount = 0;
			jQuery(data).find('Game').each(function() {
				// only check for as many games as needed - determined by how many property games are displayed by getGames function
				if (genreGameCount < gamesNeeded) {
					var gameUrl = jQuery(this).find('Page_URL:first').text();
					var gameTitle = jQuery(this).find('Title:first').text();
					var gameImg =  jQuery(this).find('game_100x75_image:first').find('srcUrl').text();
					var ratingStars = getStars(jQuery(this).attr('rating'),'read-only');
			
					imgString = '<img src="' + cmaImgBasePath + gameImg + '" width="100" height="75" border="0" alt="' + gameTitle + '" /></a>';
					spanString = gameTitle + '<br />' + ratingStars + '<br /><div><a href="' + gameUrl + '">PLAY NOW &raquo;</a></div>';
			
					jQuery('<div></div>').appendTo('div.moduleGames');
					jQuery('<a></a>').attr('href',gameUrl).html(imgString).appendTo('div.moduleGames div:last');
					jQuery('<span></span>').html(spanString).appendTo('div.moduleGames div:last');
					genreGameCount++;
				}
				
			});
			jQuery('<a></a>').attr('href','games/index.html').addClass('btnLink').appendTo('div.moduleGames');
			jQuery('<div></div>').addClass('btn').html('SEE ALL ' + showName + ' GAMES &raquo;').appendTo('div.moduleGames a:last');
		}
	});
}

// parse, process and insert game cards into the property detail home and games page
// set up on a switch case so that other page states can be inserted at a later date
function getGames(data,state,genre) {
	switch (state) {
		case 'home':
			// property detail home
			// game cards prepended so the appear in first-in, last-out order
			var overRideURL = "";
			var overRideSrcURL = "";
			var overRideAltText = "";
			var overRideWidth = "";
			var overRideHeight = "";

			jQuery(data).find('Sub_Property').each(function() {
				var navText = jQuery(this).find('NavName').text().toUpperCase();
				var navUrl = jQuery(this).find('Page_URL:first').text();

				if (state.toUpperCase() == navText.toUpperCase()) {
					jQuery(this).find('gamesOverride').each(function() {
						overRideURL = jQuery(this).find('URL').text();
						overRideSrcURL = jQuery(this).find('srcUrl').text();
						overRideAltText = jQuery(this).find('altText').text();
						overRideWidth = jQuery(this).find('width').text();
						overRideHeight = jQuery(this).find('height').text();
					});
					
				//jQuery('head').prepend(metaStringTwo,metaStringThree,metaStringFour,metaStringFive);
				}
			});
		
			
			
			if (overRideURL != "" && overRideSrcURL != "") {
				imgString = '<img src="' + cmaImgBasePath + overRideSrcURL + '" width="' + overRideWidth + '" height="' + overRideHeight + '" border="0" alt="' + overRideAltText + '" />';
				jQuery('<a></a>').attr('href',overRideURL).html(imgString).appendTo('div.moduleGames');

				
			} else {
				var showName = jQuery(data).find('Short_Title:first').text().toUpperCase();
				jQuery(data).find('Game:lt(3)').each(function() {
					var gameUrl = jQuery(this).find('Page_URL:first').text();
					var gameTitle = jQuery(this).find('Title:first').text();
					var gameImg =  jQuery(this).find('game_100x75_image:first').find('srcUrl').text();
					var ratingStars = getStars(jQuery(this).attr('rating'),'read-only');
			
					imgString = '<img src="' + cmaImgBasePath + gameImg + '" width="100" height="75" border="0" alt="' + gameTitle + '" /></a>';
					spanString = gameTitle + '<br />' + ratingStars + '<br /><div><a href="' + gameUrl + '">PLAY NOW &raquo;</a></div>';
			
					jQuery('<div></div>').prependTo('div.moduleGames');
					jQuery('<a></a>').attr('href',gameUrl).html(imgString).appendTo('div.moduleGames div:first');
					jQuery('<span></span>').html(spanString).appendTo('div.moduleGames div:first');
				});
				jQuery('<h2></h2>').text('PLAY GAMES').prependTo('div.moduleGames');
				gamesLength = jQuery(data).find('Game').length;
				if (gamesLength < 3) {
					var gamesNeeded = 3 - gamesLength;
					addGenreGames(data,state,genre,gamesNeeded,showName)
				} else {
					jQuery('<a></a>').attr('href','games/index.html').addClass('btnLink').appendTo('div.moduleGames');
					jQuery('<div></div>').addClass('btn').html('SEE ALL ' + showName + ' GAMES &raquo;').appendTo('div.moduleGames a:last');
				}
			}
			break;
/*



			var gameUrl;
			var showName = jQuery(data).find('Short_Title:first').text().toUpperCase();
			jQuery(data).find('Game:lt(3)').each(function() {
				var gameUrl = jQuery(this).find('Page_URL:first').text();
				var gameTitle = jQuery(this).find('Title:first').text();
				var gameImg =  jQuery(this).find('game_100x75_image:first').find('srcUrl').text();
				var ratingStars = getStars(jQuery(this).attr('rating'),'read-only');
		
				imgString = '<img src="' + cmaImgBasePath + gameImg + '" width="100" height="75" border="0" alt="' + gameTitle + '" /></a>';
				spanString = gameTitle + '<br />' + ratingStars + '<br /><div><a href="' + gameUrl + '">PLAY NOW &raquo;</a></div>';
		
				jQuery('<div></div>').prependTo('div.moduleGames');
				jQuery('<a></a>').attr('href',gameUrl).html(imgString).appendTo('div.moduleGames div:first');
				jQuery('<span></span>').html(spanString).appendTo('div.moduleGames div:first');
			});
			jQuery('<h2></h2>').text('PLAY GAMES').prependTo('div.moduleGames');
			gamesLength = jQuery(data).find('Game').length;
			// check to see if addGenreGames needs to be called
			if (gamesLength < 3) {
				var gamesNeeded = 3 - gamesLength;
				addGenreGames(data,state,genre,gamesNeeded,showName)
			} else {
				// insert button if no genre games are needed
				jQuery('<a></a>').attr('href','games/index.html').addClass('btnLink').appendTo('div.moduleGames');
				jQuery('<div></div>').addClass('btn').text('SEE ALL ' + showName + ' GAMES').appendTo('div.moduleGames a:last');
			}
			break;
			*/
		case 'games':
			// property detail games page
			// game modules prepended so the appear in first-in, last-out order
			jQuery('<div></div>').addClass('clr').prependTo('div.cSpace');
			jQuery(data).find('Game').each(function(index) {
				var thisParent = jQuery(this).parent().get(0).nodeName;
				var thisId = jQuery(this).attr('contentId');
				var gameUrl = jQuery(this).find('Page_URL:first').text();
				var gameTitle = jQuery(this).find('Title:first').text();
				var gameBk =  jQuery(this).find('Super_C:first').find('srcUrl').text();
				var gameHover =  jQuery(this).find('Super_C_Animated:first').find('srcUrl').text();
				var gameOverLay =jQuery(this).find('SuperCOverlay:first').find('srcUrl').text();
				var ratingStars = getStars(jQuery(this).attr('rating'),'read-only');
				var noPlayers = parseInt(jQuery(this).attr('timesplayed_now'));
				var gameDesc = jQuery(this).find('Short_Description').text();
				var gameNoA = jQuery(this).find('Achievement').length;

				overlayString = '<img src="' + cmaImgBasePath + gameOverLay + '" border="0" width="300" height="165" alt="' + gameTitle + '" />';
				bkString = cmaImgBasePath + gameBk;
				hoverString = cmaImgBasePath + gameHover;
				spanString = gameTitle + '<br />' + ratingStars + '<br /><a href="' + gameUrl + '">PLAY NOW &raquo;</a>';

				jQuery('<div></div>').addClass('module').prependTo('div.cSpace');
				jQuery('<div></div>').addClass('inner').appendTo('div.cSpace .module:first');
				// bind data and mouse events for the hover rollovers
				jQuery('<div></div>').attr('id',thisId).data('swaps',{over: hoverString,out: bkString}).addClass('pictures').attr('style','background: url(' + bkString + ') center 4px no-repeat').bind('mouseover', function(){
					doHover(thisId,'over');
				}).bind('mouseout', function(){
					doHover(thisId,'out');
				}).appendTo('div.cSpace .module:first .inner:first');
				jQuery('<a></a>').attr('href',gameUrl).html(overlayString).appendTo('div.cSpace .module:first .inner:first .pictures');
				jQuery('<div></div>').addClass('ratingsBadges').appendTo('div.cSpace .inner:first');
				jQuery('<div></div>').addClass('info').addClass('ratingSection').appendTo('div.cSpace .inner .ratingsBadges:first');
				jQuery('<span class="starBox"></span>').html(ratingStars).appendTo('div.cSpace .ratingSection:first');
				if (!isNaN(noPlayers)) {
					jQuery('<span class="players"></span>').html(noPlayers + ' PLAYERS').appendTo('div.cSpace .ratingSection:first');
				}

				jQuery('<div></div>').addClass('clr').appendTo('div.cSpace .ratingSection:first');
				jQuery('<div></div>').addClass('clr').appendTo('div.cSpace .inner .ratingsBadges:first');

				jQuery('<img>').addClass('rule').attr('src','../tools/img/rule_dashes.png').attr('id','rule'+index).attr('style','display:none').attr('border',0).attr('alt','').appendTo('div.cSpace .inner .ratingsBadges:first');
				jQuery('<div id="badgeSection'+index+'"></div>').addClass('info').addClass('badgeSection').appendTo('div.cSpace .inner .ratingsBadges:first');
					
				jQuery(this).each(function(){
					var thisContentId  	= jQuery(this).attr('contentId');
					getAchievementData(thisContentId, index);
				});
					
				jQuery('<div></div>').addClass('clr').appendTo('div.cSpace .inner .ratingsBadges:first');
				jQuery('<a></a>').attr('href',gameUrl).appendTo('div.cSpace .inner:first');
				jQuery('<div></div>').addClass('btn').html('PLAY NOW &raquo;').appendTo('div.cSpace .inner:first a:last');
			});
			break; 
	}
}

function getAchievementData(p_gameID, p_divIndex){

	var toon 	= new toon_lib;
	var arr		= new Array();

	toon.init(window.location);
	toon.product_badges({products: p_gameID },function(data){ 

		jQuery(data).each(function(key, val) {
			for(var x=0; x <= val["badges"].length -1; x++){
				var thisASrc = val["badges"][x]["media_parameters"]["earned"].url;
				var thisAAlt = val["badges"][x]["attributes"].display_name;
				if(x == 0){
					jQuery('#rule'+p_divIndex).attr('style','display:block');
					jQuery('<span></span>').addClass('badgeText').html('Some Badges<br />You Can Earn:').appendTo('#badgeSection'+p_divIndex);
				}
				if(x < 4){
					jQuery('<img>').addClass('badges').attr('src',cmaImgBasePath + thisASrc).attr('width',32).attr('height',32).attr('alt',thisAAlt).appendTo('#badgeSection'+p_divIndex);
				}
			}
		});

	}); 
}

// add C cells to the property detail home page
// long term project - combine all C cell functions to reduce code length
function getCCells(data,state) {
	jQuery(data).find('c_module').each(function() {
		var thisParent = jQuery(this).parent().get(0).nodeName;
		// ensure that C cells from other pages aren't accidentally included
		if ((state == "characters") && (thisParent == "CharDetail")) {
			return false;
		}
		if ((state == "singlecharacter") && (thisParent != "CharDetail")) {
			return false;
		}
		var thisOrientation = jQuery(this).find('orientation:first').text();
		var thisHdr = jQuery(this).find('header:first').text().toUpperCase();
		var thisText = jQuery(this).find('copy:first').text();
		var thisURL = jQuery(this).find('URL:first').text();
		var thisbuttontext = jQuery(this).find('buttontext:first').text();
		var thisHdrAlign = jQuery(this).find('headeralign:first').text();

		jQuery('<div></div>').addClass('module').prependTo('div.cSpace');
		jQuery('<div></div>').addClass('inner').appendTo('div.cSpace div.module:first');
		if(thisHdrAlign != '') {
			jQuery('<h3></h3>').html(thisHdr).addClass(thisHdrAlign).appendTo('div.cSpace div.inner:first');
		   
		} else {
			jQuery('<h3></h3>').html(thisHdr).appendTo('div.cSpace div.inner:first');
		}

		switch (thisOrientation) {
			case 'fantalk':
				jQuery('<div></div>').addClass('fantalk').html(thisText).appendTo('div.cSpace div.inner:first');

				var fantalk_height = jQuery('div.fantalk').innerHeight();
				jQuery('div.fantalk').css('height', 'auto');
				jQuery('div.fantalk').css('padding-top', '0px');
				jQuery('div.fantalk').css('padding-bottom', '0px');
				var thisText_height = jQuery('div.fantalk').height();
				
				jQuery('div.fantalk').css('padding-top', Math.ceil((fantalk_height - thisText_height)/2) +'px');
				jQuery('div.fantalk').css('padding-bottom', Math.floor((fantalk_height - thisText_height)/2) +'px');

				break;
			case 'picture':
				jQuery('<div></div>').addClass('pictures').appendTo('div.cSpace div.inner:first');
				var i = 1;
				jQuery(this).find('c_image').each(function(){
					thisSrc = jQuery(this).find('srcUrl').text();
					imgString = '<img src="' + cmaImgBasePath + thisSrc + '" border="0">';
					className = "pic" + i;

					jQuery('<div></div>').addClass(className).html(imgString).appendTo('div.cSpace div.pictures:first');
					i++;
				});
				break;
			case 'left':
				thisSrc = cmaImgBasePath + jQuery(this).find('srcUrl').text();
				jQuery('<div></div>').addClass('character').addClass('left').appendTo('div.cSpace div.inner:first');
				jQuery('<img>').attr('src',thisSrc).attr('border','0').appendTo('div.cSpace div.character:first');
				jQuery('<div></div>').html(thisText).appendTo('div.cSpace div.character:first');
				break;
			case 'center':
				thisSrc = cmaImgBasePath + jQuery(this).find('srcUrl').text();
				jQuery('<div></div>').addClass('character').addClass('center').appendTo('div.cSpace div.inner:first');
				jQuery('<img>').attr('src',thisSrc).attr('border','0').appendTo('div.cSpace div.character:first');
				jQuery('<div></div>').html(thisText).appendTo('div.cSpace div.character:first');
				break;
			case 'right':
				thisSrc = cmaImgBasePath + jQuery(this).find('srcUrl').text();
				jQuery('<div></div>').addClass('character').addClass('right').appendTo('div.cSpace div.inner:first');
				jQuery('<img>').attr('src',thisSrc).attr('border','0').appendTo('div.cSpace div.character:first');
				jQuery('<div></div>').html(thisText).appendTo('div.cSpace div.character:first');
				break;
			case 'game':
				thisId = jQuery(this).attr('contentId');
				thisSrc = cmaImgBasePath + jQuery(this).find('SuperCOverlay:first').find('srcUrl:first').text();
				thisBkSrc = cmaImgBasePath + jQuery(this).find('Super_C:first').find('srcUrl:first').text();
				thisHvrSrc = cmaImgBasePath + jQuery(this).find('Super_C_Animated:first').find('srcUrl:first').text();
				thisText = jQuery(this).find('Short_Description:first').text();
				thisGameAlt = jQuery(this).find('Short_Title:first').text();
				thisURL = jQuery(this).find('URL:first').text();
				imgString = '<img src="' + thisSrc + '" alt="' + thisGameAlt + '" border="0">';
				ratingstars = getStars(jQuery(this).find('GameC:first').attr('rating'),'read-only');
				noPlayers = parseInt(jQuery(this).find('GameC:first').attr('timesplayed_now')) + " PLAYERS";
				if (isNaN(parseInt(jQuery(this).find('GameC:first').attr('timesplayed_now')))) {
					noPlayers = '';
				}
				jQuery('<div></div>').addClass('game').appendTo('div.cSpace div.inner:first');
				jQuery('<div></div>').data('swaps',{over: thisHvrSrc,out: thisBkSrc}).attr('id',thisId).attr('style','background: url(' + thisBkSrc + ') center 4px no-repeat').bind('mouseover', function(){
					doHover(thisId,thisHvrSrc,'4px','center','no-repeat');
				}).bind('mouseout', function(){
					doHover(thisId,thisBkSrc,'4px','center','no-repeat');
				}).appendTo('div.cSpace div.game:first');
				jQuery('<a></a>').attr('href',thisURL).html(imgString).appendTo('#' + thisId);
				jQuery('<div></div>').addClass('toprow').appendTo('div.cSpace div.game:first');
				jQuery('<span></span>').html(ratingstars).appendTo('div.cSpace div.game:first div:last');
				jQuery('<span></span>').html(noPlayers).appendTo('div.cSpace div.game:first div:last');
				jQuery('<div></div>').addClass('clr').appendTo('div.cSpace div.game:first div:last');
				jQuery('<div></div>').addClass('btmrow').html('<span>' + thisText + '</span>').appendTo('div.cSpace div.game:first');

				break;
		}

		if (thisbuttontext != '') {
			jQuery('div.cSpace div.module div.inner:first img').wrap(function() {
			  return '<a href="' + thisURL + '" />';
			});
			
			
			jQuery('<a></a>').attr('href',thisURL).appendTo('div.cSpace div.inner:first');
			jQuery('<div></div>').addClass('btn').html(thisbuttontext + ' &raquo;').appendTo('div.cSpace div.inner:first a:last');
		}
	});
	jQuery('<div></div>').addClass('clr').appendTo('div.cSpace');

/*
	var seoHdr = jQuery(data).find('Footer_Header:first').text().toUpperCase();
	var seoText = jQuery(data).find('Footer_Description:first').text();
	jQuery('<h1></h1>').html(seoHdr).appendTo('div.dSpace');
	jQuery('<div></div>').addClass('copy').html(seoText).appendTo('div.dSpace');
*/
}



function getFooterContent(data) {
	// process the genre game data
	jQuery(data).find('Games:lt(5)').each(function() {
		var thisGameUrl = jQuery(this).find('Page_URL').text();
		var thisGameSrc = jQuery(this).find('game_100x75_image:first').find('srcUrl').text();
		var thisGameAlt = jQuery(this).find('Title:first').text();

		imgString = '<img src="' + cmaImgBasePath + thisGameSrc + '" alt="' + thisGameAlt + '" border="0">';
		jQuery('<a></a>').attr('href',thisGameUrl).html(imgString).appendTo('div.more div.col2 div');
	});
	// process the genre show data
	jQuery(data).find('Video_Header_265x65:lt(4)').each(function() {
		var thisShowUrl = jQuery(this).find('URL').text();
		var thisShowSrc = jQuery(this).find('srcUrl').text();
		var thisShowAlt = jQuery(this).find('altText').text();
		imgString = '<img src="' + cmaImgBasePath + thisShowSrc + '" alt="' + thisShowAlt + '" border="0">';
		jQuery('<a></a>').attr('href',thisShowUrl).html(imgString).appendTo('div.more div.col1 div');
	});

	// select a random what's new node
	randomWhat = Math.floor(jQuery(data).find('whatsnew_300x250').length * Math.random()) + 1;
	// process the what's new data
	i = 1;
	jQuery(data).find('whatsnew_300x250').each(function() {
		if (i == randomWhat) {
			var thisUrl = jQuery(this).find('URL').text();
			var thisSrc = jQuery(this).find('srcUrl').text();
			var thisAlt = jQuery(this).find('altText').text();

			imgString = '<img src="' + cmaImgBasePath + thisSrc + '" alt="' + thisAlt + '" border="0">';
			jQuery('<a></a>').attr('href',thisUrl).html(imgString).appendTo('div.more div.col3 div');
		}
		i++
	});
}

// loop through all the game nodes in an XML set and
// return the data in the "related games" format
// limit forces a limit on the number of games returned
function getRelatedGenreGames(gameId, genre, limit, pageState ){
	jQuery.ajax({
		// get the corresponding collection XML
		type: "GET",
		url: "/cnservice/cartoonsvc/content/xml/getContentsByContentType.do?contentTypeName=Game&attribName=game_genre.title&attribValues=" + genre + "&max=100&filterContentId=43863&sortBy=Game_Priority_ID:desc&ignoreChildOfPropertyId=" + gameId,
		dataType: "xml",
		error: function (request, error) {
			// do this on AJAX error
		},
		success: function(data) {
			// use limit to determine how many games to display
			if ((limit == undefined) || (limit == "")) {
				limit = 10;
			}
			i = 0;
			jQuery(data).find('Game').each(function() {
				if (i < limit) {
					var relatedUrl = jQuery(this).find('Page_URL').text();
					var relatedTitle = jQuery(this).find('Title:first').text();
					var relatedSrc = jQuery(this).find('game_100x75_image:first').find('srcUrl').text();
					rImgString = '<img src="' + cmaImgBasePath + relatedSrc + '" width="102" height="77" alt="' + relatedTitle + '" border="0">';

					jQuery('<a></a>').attr('href',relatedUrl).addClass('gameThumbLink').html(rImgString).appendTo('div.inner2wide div:first');
					i++;
				}
			});
			jQuery('<a></a>').attr('href','/games/index.html').appendTo('div.inner2wide');
			jQuery('<div></div>').addClass('btn').html('SEE ALL ' + totalGames +  ' GAMES &raquo;').appendTo('div.inner2wide a:last');
		}
	});
}

function getShowListings(showId, searchTerm) {
	jQuery.ajax({
		// get the corresponding collection XML
		type: "GET",
		url: "/cnschedule/xmlServices/ScheduleServices?methodName=getAllShowings&showId=" + showId + "&title=" + searchTerm + "&name=" + searchTerm + "&timezone=EST",
		dataType: "xml",
		error: function (request, error) {
			// do this on AJAX error
		},
		success: function(data) {
			jQuery(data).find('show').each(function() {
				var showTime = jQuery(this).attr('time').toUpperCase();
				var showDate = jQuery(this).attr('date').toUpperCase();
				var showDesc = jQuery(this).attr('episode').toUpperCase();

				jQuery('<div></div>').addClass('row').appendTo('div.scheduleWrapper .inner');
				jQuery('<div></div>').addClass('dayTime').html(showDate + '<br/>' + showTime).appendTo('div.scheduleWrapper .inner .row:last');
				jQuery('<div></div>').addClass('desc').html(showDesc).appendTo('div.scheduleWrapper .inner .row:last');
				jQuery('<div></div>').addClass('clr').appendTo('div.scheduleWrapper .inner .row:last');
			});
		}
	});
}

function getVideoBranding (data, state)  {
	thisLink = jQuery(data).find('video_tout:first').find('URL').text();
	thisImgSrc = jQuery(data).find('video_tout:first').find('srcUrl').text();
	thisAltTxt = jQuery(data).find('video_tout:first').find('altText').text();
	if ((thisLink == "") || (thisLink == "undefined")) {
		imgString = '<img src="' + cmaImgBasePath + thisImgSrc + '" alt="' + thisAltTxt + '" border="0">';
	} else {
		imgString = '<a href="' + thisLink + '"><img src="' + cmaImgBasePath + thisImgSrc + '" alt="' + thisAltTxt + '" border="0"></a>';
	}
	jQuery('#video .bSpace .moduleWrapper .moduleLeft .brandingWrapper').html(imgString);
}

function a_on() { 
	document.getElementById('topscores').style.display = "none"
	document.getElementById('achievementsModule').style.display = "block"
	document.getElementById('badgesTab').style.zIndex = "2"
	document.getElementById('scoresTab').style.zIndex = "1"
	document.getElementById('badgesTab').className = "tabsOn";
	document.getElementById('scoresTab').className = "tabsOff";			 
}
function s_on() { 
	document.getElementById('achievementsModule').style.display = "none"
	document.getElementById('topscores').style.display = "block"
	document.getElementById('scoresTab').style.zIndex = "2"
	document.getElementById('badgesTab').style.zIndex = "1"
	document.getElementById('scoresTab').className = "tabsOn";
	document.getElementById('badgesTab').className = "tabsOff";			 
}					

function handleInnerTabs(targetTab) {
	jQuery('ul.TabbedPanelsTabGroup').find('li').each(function() {
	
		if (jQuery('ul.TabbedPanelsTabGroup').find('li:eq(' + jQuery('ul.TabbedPanelsTabGroup').find('li').index(this) + ')').hasClass('tabOn')) {
			jQuery('ul.TabbedPanelsTabGroup').find('li:eq(' + jQuery('ul.TabbedPanelsTabGroup').find('li').index(this) + ')').removeClass('tabOn');
			jQuery('ul.TabbedPanelsTabGroup').find('li:eq(' + jQuery('ul.TabbedPanelsTabGroup').find('li').index(this) + ')').addClass('tabOff');
		}
	});
	jQuery(targetTab).addClass('tabOn');
}

var topScoresId;
function getSingleGame(data, state) {
	var achieveOn = true;
	var gameTitle = jQuery(data).find('Title:first').text().toUpperCase();
	var gameGenre = jQuery(data).find('game_genre:first').text();

	var controlsSrc;
	jQuery(data).find('Game_Controls').each(function() {
		if (jQuery(this).parent().parent().get(0).nodeName != "cmodule") {
			controlsSrc = cmaImgBasePath + jQuery(this).find('srcUrl').text();
		}
	});

	var adRollup = jQuery(data).find('de_toon_rollup').text();
	var adSection = jQuery(data).find('de_toon_subsection').text();
	var freewheelId = jQuery(data).find('freeWheelSectionID').text();

	// add data to game fields
	jQuery('.moduleWrapper h2:first').html(gameTitle);
	if (state == "singlegame800") {
		jQuery('<img>').attr('src',controlsSrc).prependTo('.moduleGameControls800');
		jQuery('<h3></h3>').html('CONTROLS').prependTo('.moduleGameControls800');
	} else if (state == "singlegameWide") {
		jQuery('<img>').attr('src',controlsSrc).prependTo('.moduleGameControlsWide');
		jQuery('<h3></h3>').html('CONTROLS').prependTo('.moduleGameControlsWide');
	} else {
		jQuery('<img>').attr('src',controlsSrc).prependTo('.moduleGameControls');
		jQuery('<h3></h3>').html('CONTROLS').prependTo('.moduleGameControls');
	}

	if (jQuery(data).find('Achievement').length > 0) {
		isAchievementGame = true;
		// add achievement names to string and pass to reporting
		agc = 1;
		jQuery(data).find('Achievement').each(function(){
			adbpAGNames += jQuery(this).attr('contentName');
			if (agc < jQuery(data).find('Achievement').length) {
				adbpAGNames += ",";
			}
			if (agc == jQuery(data).find('Achievement').length) {
				try {
					trackMetrics({
						type: "cnt-game-achievements",
						data: {
							detail : adbpAGNames
						}
					});
				} catch(e){}
			}
			agc++;
		});
		
		jQuery('div .tabWrapper').css('display','block');
		jQuery('<div></div>').attr('id','badgesTab').addClass('tabsOn').html('BADGES').bind('click',function(event){
			a_on();
			AchievementModule.updateAchModule();
		}).prependTo('div.tabWrapper');
		jQuery('div .statsWrapper').css('display','block');
		jQuery('#achievementsModule').css('display','block');

	} else {
		achieveOn = false;
	}
	
	if (jQuery(data).find('Top_Scores_Game_ID').text() != "") {
		topScoresId = jQuery(data).find('Top_Scores_Game_ID').text()
		if (achieveOn) {
			tabClass = "tabsOff";
		} else {
			tabClass = "tabsOn";
			jQuery('#topscores').css('display','block');
		}
		jQuery('<div></div>').attr('id','scoresTab').addClass(tabClass).html('TOP SCORES').bind('click',function(event){
			s_on();
		}).insertBefore('#achievementsModule_logintext');
		jQuery('div .tabWrapper').css('display','block');

		jQuery('<li></li>').attr({
			id:			"weekTab",
			tabindex:	"0"
		}).bind('click',function(){
			//getTopScores(topScoresId,'this_week');
			handleInnerTabs(this);
		}).addClass('tabOn').html('THIS WEEK').appendTo('ul.TabbedPanelsTabGroup');
		jQuery('<li></li>').attr({
			id:			"monthTab",
			tabindex:	"0"
		}).bind('click',function(){
			//getTopScores(topScoresId,'this_month');
			handleInnerTabs(this);
		}).addClass('tabOff').html('THIS MONTH').appendTo('ul.TabbedPanelsTabGroup');
		jQuery('<li></li>').attr({
			id:			"yearTab",
			tabindex:	"0"
		}).bind('click',function(){
			//getTopScores(topScoresId,'this_year');
			handleInnerTabs(this);
		}).addClass('tabOff').html('THIS YEAR').appendTo('ul.TabbedPanelsTabGroup');
		jQuery('<li></li>').attr({
			id:			"allTimeTab",
			tabindex:	"0"
		}).bind('click',function(){
			//getTopScores(topScoresId,'all_time');
			handleInnerTabs(this);
		}).addClass('tabOff').html('ALL TIME').appendTo('ul.TabbedPanelsTabGroup');
		// load the top scores module
		//getTopScores(jQuery(data).find('Top_Scores_Game_ID').text(),'this_week');
	}
	
	if (!achieveOn) {
		jQuery('#achievementsModule_logintext').css('display','none');
		
		if (jQuery(data).find('Top_Scores_Game_ID').text() == "") {
			jQuery('div .tabWrapper').css('display','none');
			jQuery('div .statsWrapper').css('display','none');
		}
	}

	getSGameCCells(data, state)
}

function getTopScores(topScoresId,timeFrame) {
	/*
	jQuery.ajax({
		// get the corresponding collection XML
		type: "GET",
		url: "/cnservice/cartoonsvc/views/data/cnleaderboard.jsp?type=global&timeframe=" + timeFrame + "&gameid=" + topScoresId,
		dataType: "xml",
		error: function (request, error) {
			// do this on AJAX error
		},
		success: function(data) {
			jQuery('#scores').html('');
			jQuery('<table></table>').attr({
				width:			"99%",
				cellspacing:	"0",
				border:			"0",
				cellpadding:	"0",
				style:			"margin-top:10px;"
			}).appendTo('#scores');
			i = 1;
			jQuery(data).find('entry').each(function() {
				if (i%2) {
					newRowClass = "odd";
				} else {
					newRowClass = "even";
				}
				jQuery('<tr></tr>').addClass(newRowClass).appendTo('#scores table');
				jQuery('<td></td>').attr({
					width:			"15",
					align:			"right",
					style:			"padding-left:2px;"
				}).html(i).appendTo('#scores tr:last');
				jQuery('<td></td>').attr({
					width:			"280",
					align:			"left",
					style:			"padding-left:12px;height:20px;"
				}).html(jQuery(this).attr('user')).appendTo('#scores tr:last');
				jQuery('<td></td>').attr({
					width:			"90",
					align:			"right"
				}).html(jQuery(this).attr('score')).appendTo('#scores tr:last');
				jQuery('<td></td>').attr({
					width:			"280",
					align:			"right",
					style:			"padding-right:25px;"
				}).html(jQuery(this).attr('tstamp')).appendTo('#scores tr:last');
				i++;
			});
			jQuery('<br>').attr('clear','all').appendTo('#scores');
		}
	});
	*/
}

function getSGameCCells (data,state,genre,limit) {
	if ((limit == undefined) || (limit == "")) {
		limit = 10;
	}
	jQuery(data).find('cmodule').each(function() {
		var thisParent = jQuery(this).parent().get(0).nodeName;
		if ((state == "characters") && (thisParent == "CharDetail")) {
			return false;
		}
		if ((state == "singlecharacter") && (thisParent != "CharDetail")) {
			return false;
		}
		var thisOrientation = jQuery(this).find('orientation:first').text();
		var thisHdr = jQuery(this).find('header:first').text().toUpperCase();
		var thisText = jQuery(this).find('copy:first').text();
		var thisURL = jQuery(this).find('URL:first').text();
		var thisbuttontext = jQuery(this).find('buttontext:first').text();
		var thisHdrAlign = jQuery(this).find('headeralign:first').text();

		jQuery('<div></div>').addClass('module').appendTo('div.cSpace');
		jQuery('<div></div>').addClass('inner').appendTo('div.cSpace div.module:last');
		if(thisHdrAlign != '') {
			jQuery('<h3></h3>').html(thisHdr).addClass(thisHdrAlign).appendTo('div.cSpace div.inner:last');
		   
		} else {
			jQuery('<h3></h3>').html(thisHdr).appendTo('div.cSpace div.inner:last');
		}

		switch (thisOrientation) {
			case 'fantalk':
				jQuery('<div></div>').addClass('fantalk').html(thisText).appendTo('div.cSpace div.inner:last');

				var fantalk_height = jQuery('div.fantalk').innerHeight();
				jQuery('div.fantalk').css('height', 'auto');
				jQuery('div.fantalk').css('padding-top', '0px');
				jQuery('div.fantalk').css('padding-bottom', '0px');
				var thisText_height = jQuery('div.fantalk').height();
				
				jQuery('div.fantalk').css('padding-top', Math.ceil((fantalk_height - thisText_height)/2) +'px');
				jQuery('div.fantalk').css('padding-bottom', Math.floor((fantalk_height - thisText_height)/2) +'px');

				break;
			case 'picture':
				jQuery('<div></div>').addClass('pictures').appendTo('div.cSpace div.inner:last');
				var i = 1;
				jQuery(this).find('c_image').each(function(){
					thisSrc = jQuery(this).find('srcUrl').text();
					imgString = '<img src="' + cmaImgBasePath + thisSrc + '" border="0">';
					className = "pic" + i;

					jQuery('<div></div>').addClass(className).html(imgString).appendTo('div.cSpace div.pictures:last');
					i++;
				});
				break;
			case 'left':
				thisSrc = cmaImgBasePath + jQuery(this).find('srcUrl').text();
				jQuery('<div></div>').addClass('character').addClass('left').appendTo('div.cSpace div.inner:last');
				jQuery('<img>').attr('src',thisSrc).attr('border','0').appendTo('div.cSpace div.character:last');
				jQuery('<div></div>').html(thisText).appendTo('div.cSpace div.character:last');
				break;
			case 'center':
				thisSrc = cmaImgBasePath + jQuery(this).find('srcUrl').text();
				jQuery('<div></div>').addClass('character').addClass('center').appendTo('div.cSpace div.inner:last');
				jQuery('<img>').attr('src',thisSrc).attr('border','0').appendTo('div.cSpace div.character:last');
				jQuery('<div></div>').html(thisText).appendTo('div.cSpace div.character:last');
				break;
			case 'right':
				thisSrc = cmaImgBasePath + jQuery(this).find('srcUrl').text();
				jQuery('<div></div>').addClass('character').addClass('right').appendTo('div.cSpace div.inner:last');
				jQuery('<img>').attr('src',thisSrc).attr('border','0').appendTo('div.cSpace div.character:last');
				jQuery('<div></div>').html(thisText).appendTo('div.cSpace div.character:last');
				break;
			case 'game':
				thisId = jQuery(this).attr('contentId');
				thisSrc = cmaImgBasePath + jQuery(this).find('SuperCOverlay:first').find('srcUrl').text();
				thisBkSrc = cmaImgBasePath + jQuery(this).find('Super_C:first').find('srcUrl').text();
				thisHvrSrc = cmaImgBasePath + jQuery(this).find('Super_C_Animated:first').find('srcUrl').text();
				thisText = jQuery(this).find('Short_Description').text();
				thisGameAlt = jQuery(this).find('Short_Title').text();
				thisURL = jQuery(this).find('Page_URL').text();
				imgString = '<img src="' + thisSrc + '" alt="' + thisGameAlt + '" border="0">';
				ratingstars = getStars(jQuery(this).find('GameC').attr('rating'),'read-only');
				noPlayers = parseInt(jQuery(this).find('GameC').attr('timesplayed_now')) + " PLAYERS";
				if (isNaN(parseInt(jQuery(this).find('GameC').attr('timesplayed_now')))) {
					noPlayers = '';
				}
		
				jQuery('<div></div>').addClass('game').appendTo('div.cSpace div.inner:last');
				jQuery('<div></div>').attr('id',thisId).data('swaps',{over: thisHvrSrc,out: thisBkSrc}).attr('style','background: url(' + thisBkSrc + ') center 4px no-repeat').bind('mouseover', function(){
					doHover(thisId,thisHvrSrc,'4px','center','no-repeat');
				}).bind('mouseout', function(){
					doHover(thisId,thisBkSrc,'4px','center','no-repeat');
				}).appendTo('div.cSpace div.game:last');
				jQuery('<a></a>').attr('href',thisURL).html(imgString).appendTo('#' + thisId);
				jQuery('<div></div>').addClass('toprow').appendTo('div.cSpace div.game:last');
				jQuery('<span></span>').html(ratingstars).appendTo('div.cSpace div.game:first div:last');
				jQuery('<span></span>').html(noPlayers).appendTo('div.cSpace div.game:first div:last');
				jQuery('<div></div>').addClass('btmrow').html('<span>' + thisText + '</span>').appendTo('div.cSpace div.game:last');
				break;
		}

		if (thisbuttontext != '') {
			jQuery('div.cSpace div.module div.inner:first img').wrap(function() {
			  return '<a href="' + thisURL + '" />';
			});
			
			
			jQuery('<a></a>').attr('href',thisURL).appendTo('div.cSpace div.module div.inner:last');
			jQuery('<div></div>').addClass('btn').html(thisbuttontext + ' &raquo;').appendTo('div.cSpace div.module div.inner:last a:last');
		}
	});
	jQuery('<div></div>').addClass('clr').appendTo('div.cSpace');

/*
	var seoHdr = jQuery(data).find('Footer_Header:first').text().toUpperCase();
	var seoText = jQuery(data).find('Footer_Description:first').text();
	jQuery('<h1></h1>').html(seoHdr).appendTo('div.dSpace');
	jQuery('<div></div>').addClass('copy').html(seoText).appendTo('div.dSpace');
*/
}

function getSGameRelated (data,state,limit) {
	var genre;
	if ((limit == undefined) || (limit == "")) {
		limit = 10;
	}
	nOfPropGames = jQuery(data).find('Game').length - 1;	// number of games that will be property games
	if (nOfPropGames < (limit/2)) {
		nOfGenGames = limit - nOfPropGames;	// number of games that will be genre games
	} else {
		nOfGenGames = (limit/2);
	}
	ll = (limit/2); // loop limit

	genre = jQuery(data).find('game_genre:first').find('Title').text();
	jQuery(data).find('Game:lt(' + ll + ')').each(function() {
		if (jQuery(this).attr('contentId') !=  gameId) {
			var relatedUrl = jQuery(this).find('Page_URL').text();
			var relatedTitle = jQuery(this).find('Title:first').text();
			var relatedSrc = jQuery(this).find('game_100x75_image:first').find('srcUrl').text();
			rImgString = '<img src="' + cmaImgBasePath + relatedSrc + '" width="102" height="77" alt="' + relatedTitle + '" border="0">';

			jQuery('<a></a>').attr('href',relatedUrl).addClass('gameThumbLink').html(rImgString).appendTo('div.inner2wide div:first');
		} else {
			genre = jQuery(this).find('game_genre:first').find('Title').text();
		}
	});

	getRelatedGenreGames(gameId, genre, nOfGenGames, pageState);
}

var tGalIdx = 0;
var tNextIdx = 1;
var tPrevIdx = 1;
function getPicDMenu (data, state) {
	var galTitle = jQuery(data).find('GalleryTitle').text().toUpperCase();
	var galLink = jQuery(data).find('CanonicalTag').text();
	galLink = galLink.substring(galLink.indexOf('.com') + 4, galLink.length);
	jQuery('<a></a>').attr('href',galLink).html(galTitle).appendTo('div.crumbtrail');
	jQuery('<span></span>').addClass('punc').html(' &gt; ').appendTo('div.crumbtrail');

	jQuery(data).find('GalleryChild').each(function() {
		if (jQuery(this).attr('contentId') == pictureId) {
			tGalIdx = jQuery(data).find('GalleryChild').index(this);
			jQuery('<span></span>').addClass('current').html(jQuery(this).attr('contentName').toUpperCase()).appendTo('div.crumbtrail');
			tNextIdx = jQuery(data).find('GalleryChild').index(this) + 1;
			tPrevIdx = jQuery(data).find('GalleryChild').index(this) - 1;
			mainSrc = cmaImgBasePath + jQuery(this).find('Pictures:first').find('srcUrl').text();
			mainAlt = jQuery(this).find('Pictures:first').find('altText').text();
			jQuery('<img>').attr('src',mainSrc).attr({border:0,alt:mainAlt}).appendTo('div.picContainer');
			jQuery(this).find('Pictures').each(function() {
				thisLink = jQuery(this).find('srcUrl').text();
				thisLT = jQuery(this).find('width').text() + "x" + jQuery(this).find('height').text();
				jQuery(document.createTextNode(' ')).appendTo('span.instr');
				jQuery('<a></a>').attr('href',thisLink).attr('target','_new').html(thisLT).appendTo('span.instr');
			});
		}
	});
	if (tNextIdx >= (jQuery(data).find('GalleryChild').length - 1)) {
		tNextIdx = 0;
	}
	if (tPrevIdx < 0) {
		tPrevIdx = jQuery(data).find('GalleryChild').length - 1;
	}
	var nextLink = jQuery(data).find('GalleryChild:eq(' + tNextIdx + ')').find('Page_URL').text();
	var nextThumb = cmaImgBasePath + jQuery(data).find('GalleryChild:eq(' + tNextIdx + ')').find('gallery_200x150').find('srcUrl').text();
	var nextAlt = jQuery(data).find('GalleryChild:eq(' + tNextIdx + ')').attr('contentName');
	var prevLink = jQuery(data).find('GalleryChild:eq(' + tPrevIdx + ')').find('Page_URL').text();
	var prevThumb = cmaImgBasePath + jQuery(data).find('GalleryChild:eq(' + tPrevIdx + ')').find('gallery_200x150').find('srcUrl').text();
	var prevAlt = jQuery(data).find('GalleryChild:eq(' + tPrevIdx + ')').attr('contentName');

	jQuery('<div></div>').addClass('prevside').bind('mouseover',function(){
		doGalHover('over','pcPrevimg');
	}).bind('mouseout',function(){
		doGalHover('out','pcPrevimg');
	}).appendTo('div.topnavwrapper');
	jQuery('<div></div>').addClass('pcPrev').html('<img src="http://i.cdn.turner.com/toon/tools/img/pixel.gif" width="25" height="45" alt="" border="0">').appendTo('div.prevside');
	jQuery('<div></div>').addClass('pcPrevimg').appendTo('div.prevside');
	jQuery('<a></a>').attr('href',prevLink).appendTo('div.pcPrevimg');
	jQuery('<img>').attr('src',prevThumb).attr({border:0,alt:prevAlt,width:60,height:45}).appendTo('div.prevside a');
	jQuery('<div></div>').addClass('nextside').bind('mouseover',function(){
		doGalHover('over','pcNextimg');
	}).bind('mouseout',function(){
		doGalHover('out','pcNextimg');
	}).appendTo('div.topnavwrapper');
	jQuery('<div></div>').addClass('pcNextimg').appendTo('div.nextside');
	jQuery('<a></a>').attr('href',nextLink).appendTo('div.pcNextimg');
	jQuery('<img>').attr('src',nextThumb).attr({border:0,alt:nextAlt,width:60,height:45}).appendTo('div.nextside a');
	jQuery('<div></div>').addClass('pcNext').html('<img src="http://i.cdn.turner.com/toon/tools/img/pixel.gif" width="25" height="45" alt="" border="0">').appendTo('div.nextside');
	
	jQuery('<a></a>').attr('href',prevLink).html('&lt;&lt; previous ' + galTitle + ' picture').appendTo('div.picbottomnav');
	jQuery('<span></span>').addClass('punc').html(' | ').appendTo('div.picbottomnav');
	jQuery('<a></a>').attr('href',nextLink).html('next ' + galTitle + ' picture &gt;&gt;').appendTo('div.picbottomnav');
}

var storedGalHoverPath;
function doGalHover(state,identifier) {
	target = "div." + identifier;
	if (state == "over") {
		storedGalHoverPath = jQuery(target + " img").attr('src');
		if (identifier.indexOf('Next') > -1) {
			jQuery(target + " img").attr('src','../../tools/img/pictures/thumb_next_over.jpg');
		} else {
			jQuery(target + " img").attr('src','../../tools/img/pictures/thumb_prev_over.jpg');
		}
	} else {
		jQuery(target + " img").attr('src',storedGalHoverPath);
	}
}

var leftSrc;
var leftHvr;
var leftId;
var rtSrc;
var rtHvr;
var rtId;
function doCharDNav (data, state) {
	var bkSrc = jQuery(data).find('CharBkgdImage').find('srcUrl').text();
	var bkString = "url('" + cmaImgBasePath + bkSrc + "')";
	jQuery('div.charMain').css('background-image',bkString);
	leftSrc = cmaImgBasePath + jQuery(data).find('LeftNav:first').find('srcUrl').text();
	leftHvr = cmaImgBasePath + jQuery(data).find('LeftNav:last').find('srcUrl').text();
	leftId = jQuery(data).find('LeftNav:first').attr('id');
	rtSrc = cmaImgBasePath + jQuery(data).find('RgtNav:first').find('srcUrl').text();
	rtHvr = cmaImgBasePath + jQuery(data).find('RgtNav:last').find('srcUrl').text();
	rtId = jQuery(data).find('RgtNav:first').attr('id');
}

function doCharDet (data, state) {
	var subPropString = "CHARACTERS";
	var targetSubProp = 0;
	var targetChar = 0;
	var clipOne;
	var clipTwo;
	var tcDesc;
	var tcName;
	var tNextIdx;
	var tPrevIdx;
	jQuery(data).find('Sub_Property').each(function() {
		if ((jQuery(this).attr('contentName').indexOf(subPropString.toLowerCase()) > -1) || (jQuery(this).attr('contentName').indexOf(subPropString.toUpperCase()) > -1) || (jQuery(this).attr('contentName').indexOf(subPropString) > -1)) {
			targetSubProp = jQuery(data).find('Sub_Property').index(this);
		}
	});
	var spS = jQuery(data).find('Sub_Property:eq(' + targetSubProp + ')'); // sub-property shortener
	spS.find('CharDetail').each(function() {
		var charDetailContentID = jQuery(this).attr('contentId');
		if (charDetailContentID == charId) {
			targetChar = spS.find('CharDetail').index(this);

		}
	});
	tNextIdx = targetChar + 1;
	tPrevIdx = targetChar - 1;
	clipOne = spS.find('CharDetail:eq(' + targetChar + ')').find('video_clip_1').text();
	clipTwo = spS.find('CharDetail:eq(' + targetChar + ')').find('video_clip_2').text();
	tcDesc = spS.find('CharDetail:eq(' + targetChar + ')').find('CharacterDescr').text();
	tcName = spS.find('CharDetail:eq(' + targetChar + ')').find('CharacterName').text().toUpperCase();
	tcSrc = "url('" + cmaImgBasePath + spS.find('CharDetail:eq(' + targetChar + ')').find('c_image:first').find('srcUrl').text() + "')";
	if (tNextIdx > (spS.find('CharDetail').length - 1)) {
		tNextIdx = 0;
	}
	if (tPrevIdx < 0) {
		tPrevIdx = spS.find('CharDetail').length - 1;
	}
	// default to visible
	var visibilityNext = "visible";
	var visibilityPrev = "visible";

	if (targetChar == tPrevIdx) { visibilityNext = "hidden" }	// if current and next target are the same hide next
	if (tPrevIdx == tNextIdx)   { visibilityPrev = "hidden" }	// if previous and next target are the same hide next
	
	var tPrevName = spS.find('CharDetail:eq(' + tPrevIdx + ')').find('CharacterName').text().toUpperCase();
	var tPrevLink = spS.find('CharDetail:eq(' + tPrevIdx + ')').find('Page_URL:first').text();
	var tNextName = spS.find('CharDetail:eq(' + tNextIdx + ')').find('CharacterName').text().toUpperCase();
	var tNextLink = spS.find('CharDetail:eq(' + tNextIdx + ')').find('Page_URL:first').text();
	jQuery('<a></a>').attr('href',tPrevLink).bind('mouseover', function(){
		doHover('lSign','over');
	}).bind('mouseout', function(){
		doHover('lSign','out');
	}).appendTo('div.charMain');
	
	var PrevNextChar = "";
	jQuery(data).find('Property_Master').each(function() {
		if (PrevNextChar == "") {PrevNextChar = jQuery(this).find('CharDetail_Nav_Copy_Override:first').find('Dude_CharacterDetail_NavOverride').text();}
	});
	if (PrevNextChar == "") {PrevNextChar = "CHARACTER"};
	jQuery('<div></div>').attr('id','lSign').addClass('prev').html('PREVIOUS ' + PrevNextChar + '<br /><span>' + tPrevName + '</span>').data('swaps',{over: leftHvr,out: leftSrc}).attr('style','background: url(' + leftSrc + ') center top no-repeat').css('visibility', visibilityPrev).appendTo('div.charMain a:last');
	jQuery('<div></div>').addClass('txt').appendTo('div.charMain');
	jQuery('.charMain div.txt').css('background-image',tcSrc).css('background-repeat','no-repeat');
	jQuery('<span></span>').html(tcName).appendTo('div.charMain div.txt');
	jQuery('<p></p>').html(tcDesc).appendTo('div.charMain div.txt');
	jQuery('<a></a>').attr('href',tNextLink).bind('mouseover', function(){
		doHover('rSign','over');
	}).bind('mouseout', function(){
		doHover('rSign','out');
	}).appendTo('div.charMain');
	jQuery('<div></div>').attr('id','rSign').addClass('next').html('NEXT ' + PrevNextChar + '<br /><span>' + tNextName + '</span>').data('swaps',{over: rtHvr,out: rtSrc}).attr('style','background: url(' + rtSrc + ') center top no-repeat').css('visibility', visibilityNext).appendTo('div.charMain a:last');
	
	jQuery('div.charPics h2').html(tcName + ' PICTURES');
	jQuery('div.moduleVideos h2').html(tcName + ' VIDEOS');
	doCDChildLinks(spS.find('CharDetail:eq(' + targetChar + ')'),pageState);
	getVideoByEpisode(clipOne);
	getVideoByEpisode(clipTwo);
	getCDCCells (spS.find('CharDetail:eq(' + targetChar + ')'),state,'null',3);
}

function doCDChildLinks(data,state) {
	jQuery(data).find('GalleryChild:lt(3)').each(function() {
		thisLink = jQuery(this).find('Page_URL:first').text();
		thisThumb = jQuery(this).find('gallery_200x150').find('srcUrl').text();
		thisW = jQuery(this).find('gallery_200x150').find('width').text();
		thisH = jQuery(this).find('gallery_200x150').find('height').text();
		imgStr = '<img src="' + cmaImgBasePath + thisThumb + '" width="' + thisW + '" height="' + thisH + '" alt="" border="0">';
		jQuery('<a></a>').attr('href',thisLink).html(imgStr).appendTo('div.charPics');
	});
}

function getCDCCells (data,state,genre,limit) {
	if ((limit == undefined) || (limit == "")) {
		limit = 10;
	}
	jQuery(data).find('c_module_detail').each(function() {
		var thisParent = jQuery(this).parent().get(0).nodeName;
		if ((state == "characters") && (thisParent == "CharDetail")) {
			return false;
		}
		if ((state == "singlecharacter") && (thisParent != "CharDetail")) {
			return false;
		}
		var thisOrientation = jQuery(this).find('orientation:first').text();
		var thisHdr = jQuery(this).find('header:first').text().toUpperCase();
		var thisText = jQuery(this).find('copy:first').text();
		var thisURL = jQuery(this).find('URL:first').text();
		var thisbuttontext = jQuery(this).find('buttontext:first').text();
		var thisHdrAlign = jQuery(this).find('headeralign:first').text();

		jQuery('<div></div>').addClass('module').appendTo('div.cSpace');
		jQuery('<div></div>').addClass('inner').appendTo('div.cSpace div.module:last');
		if(thisHdrAlign != '') {
			jQuery('<h3></h3>').html(thisHdr).addClass(thisHdrAlign).appendTo('div.cSpace div.inner:last');
		   
		} else {
			jQuery('<h3></h3>').html(thisHdr).appendTo('div.cSpace div.inner:last');
		}

		switch (thisOrientation) {
			case 'fantalk':
				jQuery('<div></div>').addClass('fantalk').html(thisText).appendTo('div.cSpace div.inner:last');

				var fantalk_height = jQuery('div.fantalk').innerHeight();
				jQuery('div.fantalk').css('height', 'auto');
				jQuery('div.fantalk').css('padding-top', '0px');
				jQuery('div.fantalk').css('padding-bottom', '0px');
				var thisText_height = jQuery('div.fantalk').height();
				
				jQuery('div.fantalk').css('padding-top', Math.ceil((fantalk_height - thisText_height)/2) +'px');
				jQuery('div.fantalk').css('padding-bottom', Math.floor((fantalk_height - thisText_height)/2) +'px');

				break;
			case 'picture':
				jQuery('<div></div>').addClass('pictures').appendTo('div.cSpace div.inner:last');
				var i = 1;
				jQuery(this).find('c_image').each(function(){
					thisSrc = jQuery(this).find('srcUrl').text();
					imgString = '<img src="' + cmaImgBasePath + thisSrc + '" border="0">';
					className = "pic" + i;

					jQuery('<div></div>').addClass(className).html(imgString).appendTo('div.cSpace div.pictures:last');
					i++;
				});
				break;
			case 'left':
				thisSrc = cmaImgBasePath + jQuery(this).find('srcUrl').text();
				jQuery('<div></div>').addClass('character').addClass('left').appendTo('div.cSpace div.inner:last');
				jQuery('<img>').attr('src',thisSrc).attr('border','0').appendTo('div.cSpace div.character:last');
				jQuery('<div></div>').html(thisText).appendTo('div.cSpace div.character:last');
				break;
			case 'center':
				thisSrc = cmaImgBasePath + jQuery(this).find('srcUrl').text();
				jQuery('<div></div>').addClass('character').addClass('center').appendTo('div.cSpace div.inner:last');
				jQuery('<img>').attr('src',thisSrc).attr('border','0').appendTo('div.cSpace div.character:last');
				jQuery('<div></div>').html(thisText).appendTo('div.cSpace div.character:last');
				break;
			case 'right':
				thisSrc = cmaImgBasePath + jQuery(this).find('srcUrl').text();
				jQuery('<div></div>').addClass('character').addClass('right').appendTo('div.cSpace div.inner:last');
				jQuery('<img>').attr('src',thisSrc).attr('border','0').appendTo('div.cSpace div.character:last');
				jQuery('<div></div>').html(thisText).appendTo('div.cSpace div.character:last');
				break;
			case 'game':
				thisId = jQuery(this).attr('contentId');
				thisSrc = cmaImgBasePath + jQuery(this).find('SuperCOverlay:first').find('srcUrl').text();
				thisBkSrc = cmaImgBasePath + jQuery(this).find('Super_C:first').find('srcUrl').text();
				thisHvrSrc = cmaImgBasePath + jQuery(this).find('Super_C_Animated:first').find('srcUrl').text();
				thisText = jQuery(this).find('Short_Description').text();
				thisGameAlt = jQuery(this).find('Short_Title').text();
				thisURL = jQuery(this).find('Page_URL').text();
				imgString = '<img src="' + thisSrc + '" alt="' + thisGameAlt + '" border="0">';
				ratingstars = getStars(jQuery(this).find('GameC').attr('rating'),'read-only');
				noPlayers = parseInt(jQuery(this).find('GameC').attr('timesplayed_now')) + " PLAYERS";
				if (isNaN(parseInt(jQuery(this).find('GameC').attr('timesplayed_now')))) {
					noPlayers = '';
				}
	
				jQuery('<div></div>').addClass('game').appendTo('div.cSpace div.inner:last');
				jQuery('<div></div>').attr('id',thisId).data('swaps',{over: thisHvrSrc,out: thisBkSrc}).attr('style','background: url(' + thisBkSrc + ') center 4px no-repeat').bind('mouseover', function(){
					doHover(thisId,thisHvrSrc,'4px','center','no-repeat');
				}).bind('mouseout', function(){
					doHover(thisId,thisBkSrc,'4px','center','no-repeat');
				}).appendTo('div.cSpace div.game:last');
				jQuery('<a></a>').attr('href',thisURL).html(imgString).appendTo('#' + thisId);
				jQuery('<div></div>').addClass('toprow').appendTo('div.cSpace div.game:last');
				jQuery('<span></span>').html(ratingstars).appendTo('div.cSpace div.game:first div:last');
				jQuery('<span></span>').html(noPlayers).appendTo('div.cSpace div.game:first div:last');
				jQuery('<div></div>').addClass('btmrow').html('<span>' + thisText + '</span>').appendTo('div.cSpace div.game:last');
				break;
		}

		if (thisbuttontext != '') {
			jQuery('div.cSpace div.inner:first img').wrap(function() {
			  return '<a href="' + thisURL + '" />';
			});
			
			
			jQuery('<a></a>').attr('href',thisURL).appendTo('div.cSpace div.module div.inner:last');
			jQuery('<div></div>').addClass('btn').html(thisbuttontext + ' &raquo;').appendTo('div.cSpace div.module div.inner:last a:last');
		}
	});
	jQuery('<div></div>').addClass('clr').appendTo('div.cSpace');

/*
	var seoHdr = jQuery(data).find('Footer_Header:first').text().toUpperCase();
	var seoText = jQuery(data).find('Footer_Description:first').text();
	jQuery('<h1></h1>').html(seoHdr).appendTo('div.dSpace');
	jQuery('<div></div>').addClass('copy').html(seoText).appendTo('div.dSpace');
*/
}

function getVideoByEpisode(epID){
	jQuery.ajax({
		// get the corresponding collection XML
		type: "GET",
		url: episodeVideoPath + "&ids=" + epID,
//		url: episodeVideoPath + "&ids=" + epID + "&r=" + getRandomNumber (),
		dataType: "xml",
		error: function (request, error) {
			// do this on AJAX error
		},
		success: function(data) {
			var epiId = jQuery(data).find('episode').attr('id');
			var thumbSrc = jQuery(data).find('episode').attr('thumbnailUrl');
			var pageUrl = jQuery(data).find('episode').attr('ctxPageURL') + "?episodeID=" + epiId;
			var epiTitle = jQuery(data).find('episode').attr('title');
			var durationRaw = jQuery(data).find('segment').attr('duration');
			var durMins = Math.floor(durationRaw/60);
			var durSecs = (durationRaw - (durMins * 60));
			durSecs = parseInt(durSecs);
				if (durSecs < 10) {
					durSecs = "0" + durSecs;
				}
			var imgString = '<img src="' + thumbSrc + '" width="144" height="81" alt="' + epiTitle + '" border="0">';
			var spanString = epiTitle + '<br />' + durMins + ':' + durSecs + '<br /><a href="' + pageUrl + '">WATCH NOW &raquo;</a>';

			jQuery('<div></div>').appendTo('div.moduleVideos');
			jQuery('<a></a>').attr('href',pageUrl).html(imgString).appendTo('div.moduleVideos div:last');
			jQuery('<span></span>').html(spanString).appendTo('div.moduleVideos div:last');
		}
	});
}

function getVCCells (data,state,genre,limit) {
	if ((limit == undefined) || (limit == "")) {
		limit = 10;
	}
	jQuery(data).find('c_module').each(function() {
		var thisParent = jQuery(this).parent().get(0).nodeName;
		if ((state == "characters") && (thisParent == "CharDetail")) {
			return false;
		}
		if ((state == "singlecharacter") && (thisParent != "CharDetail")) {
			return false;
		}
		var thisOrientation = jQuery(this).find('orientation:first').text();
		var thisHdr = jQuery(this).find('header:first').text().toUpperCase();
		var thisText = jQuery(this).find('copy:first').text();
		var thisURL = jQuery(this).find('URL:first').text();
		var thisbuttontext = jQuery(this).find('buttontext:first').text();
		var thisHdrAlign = jQuery(this).find('headeralign:first').text();

		jQuery('<div></div>').addClass('module').appendTo('div.cSpace');
		jQuery('<div></div>').addClass('inner').appendTo('div.cSpace div.module:last');
		if(thisHdrAlign != '') {
			jQuery('<h3></h3>').html(thisHdr).addClass(thisHdrAlign).appendTo('div.cSpace div.inner:last');
		   
		} else {
			jQuery('<h3></h3>').html(thisHdr).appendTo('div.cSpace div.inner:last');
		}

		switch (thisOrientation) {
			case 'fantalk':
				jQuery('<div></div>').addClass('fantalk').html(thisText).appendTo('div.cSpace div.inner:last');

				var fantalk_height = jQuery('div.fantalk').innerHeight();
				jQuery('div.fantalk').css('height', 'auto');
				jQuery('div.fantalk').css('padding-top', '0px');
				jQuery('div.fantalk').css('padding-bottom', '0px');
				var thisText_height = jQuery('div.fantalk').height();
				
				jQuery('div.fantalk').css('padding-top', Math.ceil((fantalk_height - thisText_height)/2) +'px');
				jQuery('div.fantalk').css('padding-bottom', Math.floor((fantalk_height - thisText_height)/2) +'px');

				break;
			case 'picture':
				jQuery('<div></div>').addClass('pictures').appendTo('div.cSpace div.inner:last');
				var i = 1;
				jQuery(this).find('c_image').each(function(){
					thisSrc = jQuery(this).find('srcUrl').text();
					imgString = '<img src="' + cmaImgBasePath + thisSrc + '" border="0">';
					className = "pic" + i;

					jQuery('<div></div>').addClass(className).html(imgString).appendTo('div.cSpace div.pictures:last');
					i++;
				});
				break;
			case 'left':
				thisSrc = cmaImgBasePath + jQuery(this).find('srcUrl').text();
				jQuery('<div></div>').addClass('character').addClass('left').appendTo('div.cSpace div.inner:last');
				jQuery('<img>').attr('src',thisSrc).attr('border','0').appendTo('div.cSpace div.character:last');
				jQuery('<div></div>').html(thisText).appendTo('div.cSpace div.character:last');
				break;
			case 'center':
				thisSrc = cmaImgBasePath + jQuery(this).find('srcUrl').text();
				jQuery('<div></div>').addClass('character').addClass('center').appendTo('div.cSpace div.inner:last');
				jQuery('<img>').attr('src',thisSrc).attr('border','0').appendTo('div.cSpace div.character:last');
				jQuery('<div></div>').html(thisText).appendTo('div.cSpace div.character:last');
				break;
			case 'right':
				thisSrc = cmaImgBasePath + jQuery(this).find('srcUrl').text();
				jQuery('<div></div>').addClass('character').addClass('right').appendTo('div.cSpace div.inner:last');
				jQuery('<img>').attr('src',thisSrc).attr('border','0').appendTo('div.cSpace div.character:last');
				jQuery('<div></div>').html(thisText).appendTo('div.cSpace div.character:last');
				break;
			case 'game':
				thisId = jQuery(this).attr('contentId');
				thisSrc = cmaImgBasePath + jQuery(this).find('SuperCOverlay:first').find('srcUrl').text();
				thisBkSrc = cmaImgBasePath + jQuery(this).find('Super_C:first').find('srcUrl').text();
				thisHvrSrc = cmaImgBasePath + jQuery(this).find('Super_C_Animated:first').find('srcUrl').text();
				thisText = jQuery(this).find('Short_Description').text();
				thisGameAlt = jQuery(this).find('Short_Title').text();
				thisURL = jQuery(this).find('Page_URL').text();
				imgString = '<img src="' + thisSrc + '" alt="' + thisGameAlt + '" border="0">';
				ratingstars = getStars(jQuery(this).find('GameC').attr('rating'),'read-only');
				noPlayers = parseInt(jQuery(this).find('GameC').attr('timesplayed_now')) + " PLAYERS";
				if (isNaN(parseInt(jQuery(this).find('GameC').attr('timesplayed_now')))) {
					noPlayers = '';
				}
		
				jQuery('<div></div>').addClass('game').appendTo('div.cSpace div.inner:last');
				jQuery('<div></div>').attr('id',thisId).data('swaps',{over: thisHvrSrc,out: thisBkSrc}).attr('style','background: url(' + thisBkSrc + ') center 4px no-repeat').bind('mouseover', function(){
					doHover(thisId,thisHvrSrc,'4px','center','no-repeat');
				}).bind('mouseout', function(){
					doHover(thisId,thisBkSrc,'4px','center','no-repeat');
				}).appendTo('div.cSpace div.game:last');
				jQuery('<a></a>').attr('href',thisURL).html(imgString).appendTo('#' + thisId);
				jQuery('<div></div>').addClass('toprow').appendTo('div.cSpace div.game:last');
				jQuery('<span></span>').html(ratingstars).appendTo('div.cSpace div.game:first div:last');
				jQuery('<span></span>').html(noPlayers).appendTo('div.cSpace div.game:first div:last');
				jQuery('<div></div>').addClass('btmrow').html('<span>' + thisText + '</span>').appendTo('div.cSpace div.game:last');
				break;
		}

		if (thisbuttontext != '') {
			jQuery('div.cSpace div.module div.inner:first img').wrap(function() {
			  return '<a href="' + thisURL + '" />';
			});
			
			
			jQuery('<a></a>').attr('href',thisURL).appendTo('div.cSpace div.inner:last');
			jQuery('<div></div>').addClass('btn').html(thisbuttontext + ' &raquo;').appendTo('div.cSpace div.module div.inner:last a:last');
		}
	});
	jQuery('<div></div>').addClass('clr').appendTo('div.cSpace');

/*
	var seoHdr = jQuery(data).find('Footer_Header:first').text().toUpperCase();
	var seoText = jQuery(data).find('Footer_Description:first').text();
	jQuery('<h1></h1>').html(seoHdr).appendTo('div.dSpace');
	jQuery('<div></div>').addClass('copy').html(seoText).appendTo('div.dSpace');
*/
}

var adbpTemplate;
var adbpSuper;
var adbpFranchise;

// capture and add data to the ADBP json object
function doADBPMeta(data) {
/*
	adbpFranchise = jQuery(data).find('Property_Master').find('Short_Title:first').text();
	adbpSuper = jQuery(data).find('superfranchise').text();
	var targetPage = 0;
	jQuery(data).find('Sub_Property').each(function() {
		if ((jQuery(this).attr('contentName').indexOf(pageState.toLowerCase()) > -1)||(jQuery(this).attr('contentName').indexOf(pageState.toUpperCase()) > -1)||(jQuery(this).attr('contentName').indexOf(pageState) > -1)) {
			targetPage = jQuery(data).find('Sub_Property').index(this);
		}
	});
	adbpPageType = jQuery(data).find('Sub_Property:eq(' + targetPage + ')').find('Property_Type').text();

	switch (adbpPageType){
		case "home":
			adbpTemplate = "other:home";
			break;
		case "games":
			adbpTemplate = "other:games";
			break;
		case "video":
			adbpTemplate = "adbp:video";
			break;
		case "characters":
			adbpTemplate = "other:characters";
			break;
	}


	try {
		trackMetrics({
			type: "cnt-page",
			data: {
				super_franchise:	adbpSuper,	//prop11,eVar11 - ben 10, total drama
				achievement:		"",		//prop16,eVar16
				search_results_count:	"zero",		//prop27
				page_template_type:	adbpTemplate,	//prop32,eVar32	- adbp:index, adbp:other, etc.
				franchise_partner:	adbpFranchise	//prop31,eVar31 - the closer, leverage, etc.
			}
		});
	} catch(e){}
*/
}

