function chan(data, sel){
	data = data.join()
	data = data.split("s,")
	var results = [];
	for(var i = 0; i < data.length; i++){
		results[i] = (i == data.length -1) ? data[i] : data[i] + "s" ;
	}
	return results[sel-1];
};

var DEFAULT_PAGE = 1;
var DEFAULT_CAT = 1;
	
function addScript(url, id) {
	if($("#" + id)) {$("#" + id).remove()}
	var script = document.createElement("script");
	script.src = url;
	script.id = id;
	script.charset = "utf-8";
	script.type = "text/javascript";
	document.getElementsByTagName("body").item(0).appendChild(script);
}

var getURL = {
	fullURL : function () {return document.URL},
	URL : function () {
		var x = this.fullURL().split("?"); return x[0];
	},
	query : function () {
		var x = this.fullURL().split("?"); return x[1];
	},
	paramList : function(){
		var str = this.query().split("&");
		var paramList;
		for(var i = 0; i < str.length; i++){ paramList += str[i].valueOf() + "\n "; }
		return paramList;
	},
	param : function(param){
		try{
			var paramVal;
			var str = this.query().split("&");
			for(var i = 0; i < str.length; i++){
				if(str[i].indexOf(param) != -1){
					paramVal = str[i].valueOf();
					paramVal = (paramVal.substr(paramVal.indexOf("=")+1));
					break;
				}
			}
			return paramVal;
		}
		catch (oException){return false}
	}
};

var updateSettings = {
	page : function(x){
		x = (x > 0) ? x : DEFAULT_PAGE;
		var updatePage = "<span id='page'>" + x + "</span>"
		$("#pageID").html(updatePage);
	},
	category : function(y, firstload){	
		y = (y > -1) ? y : DEFAULT_CAT;
		var updateCate = "<span id='channel'>" + y + "</span>"
		$("#catID").html(updateCate);
		if(firstload == false) this.page(1);
	}
}


function setCategory(chn)	{ 	updateSettings.category(chn) 	}
function setPage(pg)		{ 	updateSettings.page(pg) 	}
function getCategory()		{ 	return $("#channel").text(); 	}	
function getPage()		{ 	return $("#page").text(); 	}

function setDefaultSettings(){
		updateSettings.category(getURL.param("channel"))
		updateSettings.page(getURL.param("page"))
}


function drawTabNavigation(len, titles, jlinks, urls, selected){
	var html = "";
	selected = selected - 1;
	var container = document.createElement("ul")
	container.className = "clear";
	for (var i = 0; i < len; i++){
		if (selected == i){
			html += (titles[i].indexOf("Sponsor") > -1) ? "<li class='current sponsored'><span>" +titles[i]+ "</span></li>" : "<li class='current'><span>" +titles[i]+ "</span></li>"
		} else if (urls[i] == undefined) {
			html += (titles[i].indexOf("Sponsor") > -1) ? "<li class='sponsored'><a href='#' onclick='changeNav(" +len+ ",\"" +titles+ "\",\"" +jlinks+ "\",\"" +urls+ "\"," +(i + 1)+ ", false); return false'>" +titles[i]+ "</a></li>" : "<li><a href='#' onclick='changeNav(" +len+ ",\"" +titles+ "\",\"" +jlinks+ "\",\"" +urls+ "\"," +(i + 1)+ ", false); return false'>" +titles[i]+ "</a></li>";
		} else {
			html += (titles[i].indexOf("Sponsor") > -1) ? "<li class='sponsored'><a href='" + urls[i] + "'>" +titles[i]+ "</a></li>" : "<li><a href='" + urls[i] + "'>" +titles[i]+ "</a></li>";
		}
	}
	container.innerHTML = html;
	$("#vidchannelnav").html(container);
}


function jsonCategoryRead(data)
{
	var container, JSONfragment;
	var defaultCategory = 0;
	var jsonListItem = data.channels.channel;
	var jsonListItemLength = jsonListItem.length;
	var titles = [];
	var jlinks = [];
	var urls   = [];
	var selected;
	var defaultCat;
		
	for(var i = 0; i < jsonListItemLength; i++){
		titles[i] = jsonListItem[i].title;
		jlinks[i] = jsonListItem[i].link;
		if (jsonListItem[i].url) urls[i]   = jsonListItem[i].url;
		if (jsonListItem[i].isDefault == "true") selected = i;
	}

	if(getCategory() != "false"){
		defaultCat = getCategory();
	} else {
		defaultCat = (getURL.param("channel") != false) ? (getURL.param("channel")) ? getURL.param("channel") : (selected + 1) : (selected + 1);
	}
	changeNav(jsonListItemLength, titles, jlinks, urls, defaultCat, false)
}

function changeNav(len, titles, jlinks, urls, selected, firstload){
	if(typeof titles != "object"){
		titles = titles.split(",");
		jlinks = jlinks.split(",");
	}
	drawTabNavigation(len, titles, jlinks, urls, selected);
	addScript(chan(jlinks, selected), "import");	
	updateSettings.category(selected, firstload);
}

function setError(){
	var container = document.createElement("div");
	var html = "Videos are unavailable at this time. Please try again later";
	container.innerHTML(html)
	$(".row:eq(0)").html(container);
}

function jsonRead(data)
{
	var container, JSONfragment;
	var defaultPage = 0;
	var jsonListName = data.videocategory.name;
	var jsonListItem = data.videocategory.video;
	var jsonListItemRemainder = jsonListItem.length % 10;
	var numPages = jsonListItemRemainder > 0 ? Math.ceil(jsonListItem.length / 10): jsonListItem.length / 10;
	var jsonListItemLength = jsonListItem.length;
	var page = getPage();
	var category = getCategory();
	var build = function(x){
		try{ $(".row").empty();
			var content = (x) * 10;
			var pageIncr = x + 1
			var int = 0;
			var len = (jsonListItemLength < 10) ? jsonListItemLength : 10;
			for (var i = content; i < content + len; i++){
				var rowbreak = 5;
				var isSponsored = (jsonListItem[i].isSponsored == "yes") ? jsonListItem[i].sponsoredByText : "&nbsp;";
				container = document.createElement("div")
				container.className = "tout";
				JSONfragment = '<p class="eyebrow">'+ isSponsored + '</p>' +
							  '<div class="imgcont">' +
							  '<a href="' + jsonListItem[i].link + '" title="Play ' + jsonListItem[i].title + ' video">' +
							  '<img src="' + jsonListItem[i].img.ipath + '" alt="' + jsonListItem[i].img.iAlt + '" title="' + jsonListItem[i].img.iAlt + '" width="' + jsonListItem[i].img.iwidth + '" height="' + jsonListItem[i].img.iheight + '" border="0" />' +
							  '</a>' +
							  '</div>' +
							  '<div class="txtcont"><h3>' +
							  '<a href="' + jsonListItem[i].link + '" title="Play ' + jsonListItem[i].title + ' video">' + jsonListItem[i].title + '</a>&nbsp;' +
							  '<span class="duration">' + ' ' + '</span>&nbsp;' +
							  '<img src="http://img2-preview.timeinc.net/instyle/static/2007/i/icon_video.gif" alt="Video" title="Video" width="12" height="7" border="0" />' +
							  '</h3></div>';
				container.innerHTML = JSONfragment;
				(int < rowbreak) ? $(".row:eq(0)").append(container) : $(".row:eq(1)").append(container);
				int++
			}
		}
		catch (oException) {}
	}
	build(getPage() - 1);
	function buildPagination(val, exit){
		var pagination, pagination2, paginationElem, paginationElem2;
		if (numPages == 1) {
			$(".vidpagenav").empty();
			return
		}
		pagination = document.createElement("ul");
		pagination2 = document.createElement("ul");
		
		if(val > 1){
			paginationElem = "<li><a href='#' id='prev_top'>&lt;&lt;</a></li>";
			paginationElem2 = "<li><a href='#' id='prev_bot'>&lt;&lt;</a></li>";
		} 
		else {
			paginationElem = "<li>&lt;&lt;</li>";
			paginationElem2 = "<li>&lt;&lt;</li>";
		}
		
		for (var i = 0; i < numPages; i++){
			var x = i+1;
			if(val == x){
				paginationElem += "<li class='currPageNo'>" + x + "</li>";
				paginationElem2 += "<li class='currPageNo'>" + x + "</li>";
			} else {
				paginationElem += "<li><a href='#' id='" + x + "_top'>" + x + "</a></li>";
				paginationElem2 += "<li><a href='#' id='" + x + "_bot'>" + x + "</a></li>";
			}
		}
		
		if(val == (numPages)){
			paginationElem += "<li>&gt;&gt;</li>"
			paginationElem2 += "<li>&gt;&gt;</li>"
		} 
		else {
			paginationElem += "<li><a href='#' id='next_top'>&gt;&gt;</a></li>";
			paginationElem2 += "<li><a href='#' id='next_bot'>&gt;&gt;</a></li>";
		}

		paginationElem += "<li class='pgcnt'>" + val + "/" + numPages + "</li>";
		paginationElem2 += "<li class='pgcnt'>" + val + "/" + numPages + "</li>";
			
		pagination.innerHTML = paginationElem;
		pagination2.innerHTML = paginationElem2;
		
		$(".vidpagenav:eq(0)").html(pagination)
		$(".vidpagenav:eq(1)").html(pagination2)

		var p1 = pagination.childNodes;
		var p2 = pagination2.childNodes;
		var num;
		
		for(var i=0; i<p1.length; i++){
			if(i != val && p1[i].childNodes[0].nodeType != 3){
				document.getElementById(p1[i].childNodes[0].getAttribute("id")).onclick = function(){
					if(this.id.indexOf("prev") > -1){
						num = parseInt($("#page").text()) - 1;
						updateSettings.page(num);
						build(--num);
						return buildPagination(num+1, false)
					}
					else if(this.id.indexOf("next") > -1){
						num = parseInt($("#page").text()) + 1;
						updateSettings.page(num);
						build(num - 1);
						return buildPagination(num, false)
					}
					else {
						updateSettings.page(parseInt(this.id));
						build(parseInt(this.id) - 1);
						return buildPagination(parseInt(this.id), false)
					}
				}
				document.getElementById(p2[i].childNodes[0].getAttribute("id")).onclick = function(){
					if(this.id.indexOf("prev") > -1){
						num = parseInt($("#page").text()) - 1;
						updateSettings.page(num);
						build(--num);
						return buildPagination(num+1, false)
					}
					else if(this.id.indexOf("next") > -1){
						num = parseInt($("#page").text()) + 1;
						updateSettings.page(num); 	
						build(num - 1);
						return buildPagination(num, false)
					}
					else {
						updateSettings.page(parseInt(this.id));
						build(parseInt(this.id) - 1);
						return buildPagination(parseInt(this.id), false)
					}
				}
			}
		}
		return exit
	}
	return buildPagination(getPage())
}