/////////////////////////////////////
// static and global vars declared
/////////////////////////////////////
var navColor = "ffffff";
var totalSearchResults = 0;
var totalVideoResults;
var totalGameResults;
var totalShowResults;
var totalTextResults;
var searchTicker = 0;
var tMax = 2;															// max number of displayed results for t = site, g = games, vs = videos and shows
var gMax = 6;
var vsMax = 4;
var totalVR = 0;														// make the total number of game and video results global
var totalGR = 0;
var defaultImg = "http://i.cdn.turner.com/toon/tools/img/pixel.gif";	// defualt image inserted if a badge or avatar image is missing
var cdnPrefix = "http://i.cdn.turner.com/v5cache/CARTOON/site/";		// cdn image path prefix

var qString = location.search.substr(1);
var nvPairs = new Array();
nvPairs = qString.split('&');
var passedVal = "";
// get the value of the keyword passed on the location string
if (nvPairs.length > -1) {
	for (i = 0; i < nvPairs.length; i++) {
		var tempArr = new Array();
		tempArr = nvPairs[i].split('=');
		if (tempArr[0] == "keywords") {
			passedVal = tempArr[1];
		}
	}
}
if ((passedVal.toUpperCase() == "SEARCH" || passedVal == "")) {
	passedVal = "new";
}

// service paths
var searchServicePath = "/cn-search/query.jsp?text=" + passedVal + "&type=site|video|game|show&start=1&npp=4|48|48|4";
var recentGamesPath = "/tools/includes/search-no-games-results.xml";
var recentVideoPath = "/cnvideosvc2/svc/episodeSearch/getEpisodesByShow?networkName=CN2&id=8a250ab0230ec20c012334ad4f650371&limit=500&offset=0";

jQuery(document).ready(function(){
	getSearchResults();
});


// request the search results XML and handle errors
function getSearchResults() {
	jQuery('#searchResults .pagewrapper .resultshdr .wrapper .query .strtxt').html('"' + passedVal + '"');
	jQuery('#searchResults .pagewrapper .resultshdr .noresults .qterm').html('"' + passedVal + '"');

	jQuery.ajax({
		type: "GET",
		url: searchServicePath,
		dataType: "xml",
		error: function (request, error) {
			// do this on AJAX error
		},
		success: function(data) {
			noResults = true;
			jQuery(data).find('metaResult').each(function(){
				resultsDiv = '';
				if (parseInt(jQuery(this).attr('count')) > 0) {
					noResults = false;
					resultsDiv = "#" + jQuery(this).attr('mediaType').toLowerCase() + "Results";
					resultsType = jQuery(this).attr('mediaType');
					resultsNum = jQuery(this).attr('count');
					
					switch (resultsType) {
						case "game":
							totalGR = resultsNum;
							maxNum = gMax;
							break;
						case "show":
							maxNum = vsMax;
							break;
						case "site":
							maxNum = tMax;
							break;
						case "video":
							totalVR = resultsNum;
							maxNum = vsMax;
							break;
					}

					jQuery('#searchResults .pagewrapper .allresults ' + resultsDiv).attr('style','display: block;');

					if (parseInt(jQuery(this).attr('count')) > maxNum) {
						writeString = resultsType.toUpperCase() + " RESULTS: 1 - " + maxNum + " of " + resultsNum + " " + resultsType + " results";
					} else if (parseInt(jQuery(this).attr('count')) == 1) {
						writeString = resultsType.toUpperCase() + " RESULTS: 1 " + resultsType + " result";
					} else {
						writeString = resultsType.toUpperCase() + " RESULTS: 1 - " + resultsNum + " of " + resultsNum + " " + resultsType + " results";
					}
					jQuery('#searchResults .pagewrapper .allresults ' + resultsDiv + ' .hdr span').html(writeString);
					
					switch(resultsType) {
						case "game":
							jQuery('#searchResults .pagewrapper .singletype .allgames .hdr span').html(writeString);
							break;
						case "video":
							jQuery('#searchResults .pagewrapper .singletype .allvideos .hdr span').html(writeString);
							break;
					}

				}
				searchTicker += 1;
				if (searchTicker == 4) {
					adbpSearch();
					if (noResults) {
						jQuery('#searchResults .pagewrapper .resultshdr .noresults').attr('style','display: block;');
						getNewGameResults();
					} else {
						jQuery('#searchResults .pagewrapper .resultshdr .wrapper').attr('style','display: block;');
						displayData(data);
					}
				}
			});
		}
	});
}

function displayData(data) {
	jQuery(data).find('results').each(function(){
		resultType = jQuery(this).attr('type');
		writeString = '';
		i = 0;

		switch (resultType) {
			case "site":
				s = 0;
				sMax = jQuery(this).find('result').length;
				jQuery(this).find('result').each(function(){
					thisUrl = jQuery(this).find('url').text();
					thisTtl = jQuery(this).find('title').text();
					thisXcp = jQuery(this).find('excerpt').text();

					writeString += '<div class="siteresult" onclick="location.href=\'' + thisUrl + '\'">';
					writeString += '<div class="rtxt">';
					writeString += '<div class="rtitle"><span>' + thisTtl + '</span></div>';
					writeString += '<div class="rdesc"><span>' + thisXcp + '</span></div>';
					writeString += '</div>';
					writeString += '</div>';
					s++;
					if (s == 2) {
						jQuery('#searchResults .pagewrapper .allresults #siteResults .display').html(writeString);
					} else if (sMax < 2) {
						if (s == sMax) {
							jQuery('#searchResults .pagewrapper .allresults #siteResults .display').html(writeString);
						}
					}
				});				
				
				break;
			case "video":
				v = 0;
				vMax = jQuery(this).find('result').length;
				jQuery(this).find('result').each(function(){
					thisVdoUrl = jQuery(this).find('ctxPageUrl').text() + "?episodeID=" + jQuery(this).find('url').text();
					thisTtl = jQuery(this).find('title').text();
					thisXcp = jQuery(this).find('excerpt').text();
					thisShow = jQuery(this).find('showName').text();
					thisTmb = "http://i.cdn.turner.com/toon/video/repository" + jQuery(this).find('thumbnail').text();
					thisVws = jQuery(this).find('views').text();
					thisRtg = jQuery(this).find('ranking').text();

					writeString += '<div class="videoresult" onclick="location.href=\'' + thisVdoUrl + '\'">';
					writeString += '<div class="rimg">';
					writeString += '<img src="' + thisTmb + '" width="80" height="45" alt="' + thisShow + ' - ' + thisTtl + '" border="0" />';
					writeString += '</div>';
					writeString += '<div class="rtxt">';
					writeString += '<div class="rshow"><span>' + thisShow + '</span></div>';
					writeString += '<div class="rtitle"><span>' + thisTtl + '</span></div>';
					writeString += '<div class="rdesc"><span>' + thisXcp + '</span></div>';
					writeString += '<div class="rrate">' + getStarsSearch(thisRtg) + '<br clear="all"/><span>VIEWS: ' +  thisVws + '</span></div>';
					writeString += '</div>';
					writeString += '</div>';
					v++;
					if (v == 4) {
						jQuery('#searchResults .pagewrapper .allresults #videoResults .display').html(writeString);
					} else if (vMax < 4) {
						if (v == vMax) {
							jQuery('#searchResults .pagewrapper .allresults #videoResults .display').html(writeString);
						}
					}
					if (v == vMax) {
						jQuery('#searchResults .pagewrapper .singletype .allvideos .display').html(writeString);
					}
				});				

				break;
			case "game":
				g = 0;
				glMax = jQuery(this).find('result').length;
				jQuery(this).find('result').each(function(){
					thisUrl = jQuery(this).find('url').text();
					thisTtl = jQuery(this).find('title').text();
					thisXcp = jQuery(this).find('excerpt').text();
					thisTmb = cdnPrefix + jQuery(this).find('thumbnail').text();
					thisSsh = cdnPrefix + jQuery(this).find('sash').text();
					thisPly = parseInt(jQuery(this).find('plays').text());
					thisRtg = jQuery(this).find('ranking').text();

					writeString += '<div class="gameresult" onclick="location.href=\'' + thisUrl + '\'">';
					writeString += '<div class="rimg" style="background: url(\'' + thisTmb + '\') top center no-repeat;">';
					writeString += '<img src="' + thisSsh + '" width="100" height="75" alt="' + thisTtl + '" border="0" />';
					writeString += '</div>';
					writeString += '<div class="rtxt">';
					writeString += '<div class="rshow"><span>' + thisTtl + '</span></div>';
					writeString += '<div class="rdesc"><span>' + thisXcp + '</span></div>';
					writeString += '<div class="rrate">' + getStarsSearch(thisRtg) + '<br clear="all"/><span>PLAYERS: ' + thisPly + '</span></div>';
					writeString += '</div>';
					writeString += '</div>';
					g++;
					if (g == 6) {
						jQuery('#searchResults .pagewrapper .allresults #gameResults .display').html(writeString);
					} else if (glMax < 6) {
						if (g == glMax) {
							jQuery('#searchResults .pagewrapper .allresults #gameResults .display').html(writeString);
						}
					}
					if (g == glMax) {
						jQuery('#searchResults .pagewrapper .singletype .allgames .display').html(writeString);
					}
				});
				break;
			case "show":
				t = 0;
				tMax = jQuery(this).find('result').length;
				jQuery(this).find('result').each(function(){
					thisUrl = jQuery(this).find('url').text();
					thisTmb = cdnPrefix + jQuery(this).find('thumbnail').text();
					thisTtl = jQuery(this).find('title').text();
					thisTim = jQuery(this).find('tune-in-msg').text();
					thisXcp = jQuery(this).find('excerpt').text();

					writeString += '<div class="showresult" onclick="location.href=\'' + thisUrl + '\'">';
					writeString += '<div class="rimg">';
					writeString += '<img src="' + thisTmb + '" width="265" height="65" alt="{title}" border="0" />';
					writeString += '</div>';
					writeString += '<div class="rtxt">';
					writeString += '<div class="rshow"><span>' + thisTtl + '</span></div>';
					writeString += '<div class="rtune"><span>' + thisTim + '</span></div>';
					writeString += '<div class="rdesc"><span>' + thisXcp + '</span></div>';
					writeString += '</div>';
					writeString += '</div>';
					t++;
					if (t == 4) {
						jQuery('#searchResults .pagewrapper .allresults #showResults .display').html(writeString);
					} else if (tMax < 4) {
						if (t == tMax) {
							jQuery('#searchResults .pagewrapper .allresults #showResults .display').html(writeString);
						}
					}
				});
				break;
		}
	});
}

var activeLink = "";
function showAllResults(targetSet) {
	if (targetSet == "video") {
		navString = '<span><a href="javascript: showAllResults(\'all\');">ALL</a> | VIDEOS | <a href="javascript: showAllResults(\'games\');">GAMES</a></span>';
		jQuery('#searchResults .pagewrapper .allresults').attr('style','display: none');
		jQuery('#searchResults .pagewrapper .singletype').attr('style','display: block');
		jQuery('#searchResults .pagewrapper .singletype .allgames').attr('style','display: none');
		jQuery('#searchResults .pagewrapper .singletype .allvideos').attr('style','display: block');
		
		jQuery('#searchResults .pagewrapper .resultshdr .wrapper .qnav').html(navString);
		jQuery('#searchResults .pagewrapper .resultshdr .wrapper .qnav').attr('style','display: block;');
		jQuery('#searchResults .pagewrapper .resultshdr .wrapper .query').attr('style','display: none;');
	} else if (targetSet == "games") {
		navString = '<span><a href="javascript: showAllResults(\'all\');">ALL</a> | <a href="javascript: showAllResults(\'video\');">VIDEOS</a> | GAMES</span>';
		jQuery('#searchResults .pagewrapper .allresults').attr('style','display: none');
		jQuery('#searchResults .pagewrapper .singletype').attr('style','display: block');
		jQuery('#searchResults .pagewrapper .singletype .allgames').attr('style','display: block');
		jQuery('#searchResults .pagewrapper .singletype .allvideos').attr('style','display: none');

		jQuery('#searchResults .pagewrapper .resultshdr .wrapper .qnav').html(navString);
		jQuery('#searchResults .pagewrapper .resultshdr .wrapper .query').attr('style','display: none');
		jQuery('#searchResults .pagewrapper .resultshdr .wrapper .qnav').attr('style','display: block');
	} else {
		navString = '<span>ALL | <a href="javascript: showAllResults(\'video\');">VIDEOS</a> | <a href="javascript: showAllResults(\'games\');">GAMES</a></span>';
		jQuery('#searchResults .pagewrapper .singletype').attr('style','display: none');
		jQuery('#searchResults .pagewrapper .allresults').attr('style','display: block');

		jQuery('#searchResults .pagewrapper .resultshdr .wrapper .qnav').html(navString);
		jQuery('#searchResults .pagewrapper .resultshdr .wrapper .query').attr('style','display: block');
		jQuery('#searchResults .pagewrapper .resultshdr .wrapper .qnav').attr('style','display: none');
	}
}

function getNewGameResults () {
	jQuery.ajax({
		type: "GET",
		url: recentGamesPath,
		dataType: "xml",
		error: function (request, error) {
			// do this on AJAX error
		},
		success: function(data) {
			jQuery('#searchResults .pagewrapper .allresults #gameResults').attr('style','display: block;');
			jQuery('#searchResults .pagewrapper .allresults #gameResults .hdr span').html('NEW GAMES');
			jQuery('#searchResults .pagewrapper .allresults #gameResults .rbttn').attr('style','display: none;');

			var g = 0;
			var glMax = jQuery(data).find('Game').length;
			writeString = "";
			jQuery(data).find('Game').each(function(){
				thisUrl = jQuery(this).find('Page_URL').text();
				thisTtl = jQuery(this).find('Display_Title').text();
				thisXcp = jQuery(this).find('Short_Description').text();
				thisTmb = cdnPrefix + jQuery(this).find('game_100x75_image').find('srcUrl').text();
				thisSsh = cdnPrefix + jQuery(this).find('overlay').find('srcUrl').text();
				thisPly = parseInt(jQuery(this).attr('timesplayed'));
				thisRtg = jQuery(this).attr('rating');

				writeString += '<div class="gameresult" onclick="location.href=\'' + thisUrl + '\'">';
				writeString += '<div class="rimg" style="background: url(\'' + thisTmb + '\') top center no-repeat;">';
				writeString += '<img src="' + thisSsh + '" width="100" height="75" alt="' + thisTtl + '" border="0" />';
				writeString += '</div>';
				writeString += '<div class="rtxt">';
				writeString += '<div class="rshow"><span>' + thisTtl + '</span></div>';
				writeString += '<div class="rdesc"><span>' + thisXcp + '</span></div>';
				writeString += '<div class="rrate">' + getStarsSearch(thisRtg) + '<br clear="all"/><span>PLAYERS: ' + thisPly + '</span></div>';
				writeString += '</div>';
				writeString += '</div>';
				g++;
				if (g == 6) {
					jQuery('#searchResults .pagewrapper .allresults #gameResults .display').html(writeString);
				} else if (glMax < 6) {
					if (g == glMax) {
						jQuery('#searchResults .pagewrapper .allresults #gameResults .display').html(writeString);
					}
				}
				if (g == glMax) {
					jQuery('#searchResults .pagewrapper .singletype .allgames .display').html(writeString);
				}
			});
			getNewVideoResults();
		}
	});
}

function getNewVideoResults () {
	jQuery.ajax({
		type: "GET",
		url: recentVideoPath,
		dataType: "xml",
		error: function (request, error) {
			// do this on AJAX error
		},
		success: function(data) {
			jQuery('#searchResults .pagewrapper .allresults #videoResults').attr('style','display: block;');
			jQuery('#searchResults .pagewrapper .allresults #videoResults .hdr span').html('NEW VIDEOS');
			jQuery('#searchResults .pagewrapper .allresults #videoResults .rbttn').attr('style','display: none;');

			var v = 0;
			var vMax = jQuery(data).find('episode').length;
			writeString = "";
			jQuery(data).find('episode').each(function(){
				thisVdoUrl = jQuery(this).attr('ctxPageURL') + "?episodeID=" + jQuery(this).attr('id');
				thisTtl = jQuery(this).attr('title');
				thisXcp = jQuery(this).find('description').text();
				thisShow = jQuery(this).attr('collectionTitle');
				thisTmb = jQuery(this).attr('thumbnailUrl');
				thisVws = jQuery(this).attr('numberOfViews');
				thisRtg = jQuery(this).attr('ranking');

				writeString += '<div class="videoresult" onclick="location.href=\'' + thisVdoUrl + '\'">';
				writeString += '<div class="rimg">';
				writeString += '<img src="' + thisTmb + '" width="80" height="45" alt="' + thisShow + ' - ' + thisTtl + '" border="0" />';
				writeString += '</div>';
				writeString += '<div class="rtxt">';
				writeString += '<div class="rshow"><span>' + thisShow + '</span></div>';
				writeString += '<div class="rtitle"><span>' + thisTtl + '</span></div>';
				writeString += '<div class="rdesc"><span>' + thisXcp + '</span></div>';
				writeString += '<div class="rrate">' + getStarsSearch(thisRtg) + '<br clear="all"/><span>VIEWS: ' +  thisVws + '</span></div>';
				writeString += '</div>';
				writeString += '</div>';

				v++;
				if (v == 4) {
					jQuery('#searchResults .pagewrapper .allresults #videoResults .display').html(writeString);
				} else if (vMax < 4) {
					if (v == vMax) {
						jQuery('#searchResults .pagewrapper .allresults #videoResults .display').html(writeString);
					}
				}
			});				
		}
	});
}


function searchOne () {
	if ((document.formOne.searchTerms.value != "") && (document.formOne.searchTerms.value != "SEARCH")) {
		searchQuery = "/search/index.html?keywords=" + escape(document.formOne.searchTerms.value);
		location.href = searchQuery;
	}
}

function getStarsSearch(rank) {
	var starString = "";
	var starLimit = 0;

	roundedBase = Math.floor(rank);
	if (roundedBase <= 5) {
		starLimit = roundedBase;
	} else {
		starLimit = 5;
	}
	for (i = 1; i <= starLimit; i++) {
		starString += '<div class="ratingFullHover"><img src="http://i.cdn.turner.com/toon/tools/img/pixel.gif" width="17" height="17" alt="" border="0"></div>';
	}
	extraStar = true;
	if ((rank > (roundedBase + .4)) && (rank < (roundedBase + .6))){
		starString += '<div class="ratingHalfHover"><img src="http://i.cdn.turner.com/toon/tools/img/pixel.gif" width="17" height="17" alt="" border="0"></div>';
		extraStar = false;
	}
	emptyNum = 5 - roundedBase;
	emptyLimit = Math.round(5 - rank);
	for (i = 1; i <= emptyLimit; i++) {
		starString += '<span class="ratingStars"><img src="http://i.cdn.turner.com/toon/tools/img/pixel.gif" width="17" height="17" alt="" border="0"></span>';
		if (extraStar == false) {
			i += 1;
		}
	}
	return starString;
}


