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 = category_style || 1;
	
function addScript(url, id) {
	if(jQuery("#" + id)) {jQuery("#" + 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{
			if(!this.query()){
				return;
			}
			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, gal, def){
		x = (x > 0) ? x : DEFAULT_PAGE;
		gal = (gal === undefined) ? "" : (def)? gal + "_": gal;
		var updatePage = "<span id='"+gal+"xpage'>" + x + "</span>"
		jQuery("#"+gal+"pageID").html(updatePage);
	},
	category : function(y, firstload){
		y = (y > -1) ? y : DEFAULT_CAT;
		var updateCate = "<span id='channel'>" + y + "</span>"
		jQuery("#catID").html(updateCate);
		if(firstload == false) this.page(1);
	}
}
	
function getCategory(){ return jQuery("#channel").text(); }	
function getPage(gal){ return jQuery("#"+gal+"xpage").text(); }

function setDefaultSettings(g){
	//updateSettings.category(getURL.param("channel"))
	updateSettings.page(getURL.param("xpage"), g, "default")
}

function drawTabNavigation(len, titles, jlinks, selected){
	var html = "";
	selected = selected - 1;
	var container = document.createElement("ul")
	container.id = "tabNav";
	for (var i = 0; i < len; i++){
		if (selected == i){
			html += "<li class='selected'><a href='#' onclick='changeNav(" +len+ ",\"" +titles+ "\",\"" +jlinks+ "\"," +(i + 1)+ ", false); return false'>" +titles[i]+ "<span></span></a></li>"
		}
		else {
			html += "<li><a href='#' onclick='changeNav(" +len+ ",\"" +titles+ "\",\"" +jlinks+ "\"," +(i + 1)+ ", false); return false'>" +titles[i]+ "<span></span></a></li>";
		}
	}
	container.innerHTML = html;
	jQuery("#vidchannelnav").html(container);
}

function jsonCategoryRead(data)
{
	var jsonListItem = data.channels.channel;
	var jsonListItemLength = jsonListItem.length;
	var titles = [];
	var jlinks = [];
	var defaultCat = 1;
		
	for(var i = 0; i < jsonListItemLength; i++){
		titles[i] = jsonListItem[i].title;
		jlinks[i] = jsonListItem[i].link;
		
		if(jsonListItem[i].category_style === category_style){
			updateSettings.category(i);
			defaultCat = i + 1;
		}
	}
	changeNav(jsonListItemLength, titles, jlinks, defaultCat)
}

function changeNav(len, titles, jlinks, selected, firstload){
	if(typeof titles != "object"){
		titles = titles.split(",");
		jlinks = jlinks.split(",");
	}
	drawTabNavigation(len, titles, jlinks, selected);
	addScript(chan(jlinks, selected), "import");
	updateSettings.category(selected, firstload);
}

var full_video_length = function(num) {
	 var t_secs = Math.round(num/1000);
      var mins = Math.floor(t_secs/60);
      var secs = t_secs - (mins*60);
	  secs = (secs < 10) ? "0" + secs : secs;
      return mins + ":" + secs;
}

function jsonRead(data, gallery, dvr, rowCt)
{
	var gal = (gallery !== undefined) ? gallery + "_" : "";
	var rowBk = (gal !== "")? 2 : 6;
	var container, JSONfragment;
	var defaultPage = 0;
	var jsonListName = data.videocategory.name;
	var jsonListItem = data.videocategory.video;
	dvr = (dvr) ? dvr : 9;
	rowCt = (rowCt) ? rowCt : 3;
	var jsonListItemRemainder = jsonListItem.length % dvr;
	var numPages = jsonListItemRemainder > 0 ? Math.ceil(jsonListItem.length / dvr): jsonListItem.length / dvr;
	var jsonListItemLength = jsonListItem.length;
	var page = getPage(gal);
	var category = getCategory();
	var build = function(x){
		try{ jQuery("#"+gal+"videochannels .row").empty();
			var content = (x) * dvr;
			var pageIncr = x + 1;
			var intr = 0;
			var len = (jsonListItemLength < dvr) ? jsonListItemLength : dvr;
			for (var i = content; i < content + len; i++){
				var rowbreak = rowCt;
				var vTime = jsonListItem[i].brightcove_video_length;
				var vLength = (vTime) ? full_video_length(vTime) : "";
				container = document.createElement("div");
				JSONfragment ='<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>' +
							  '<p><strong><a href="' + jsonListItem[i].link + '" title="Play ' + jsonListItem[i].title + ' video">' + jsonListItem[i].title + '</a></strong></p>' +
							  '<p class="vlength">' + vLength + '</p>';
				container.innerHTML = JSONfragment;
				if(intr < rowbreak){
					jQuery("#"+gal+"videochannels .row:eq(0)").append(container);
				}
				else if (intr > (rowbreak -1) && intr < rowBk)
				{
					jQuery("#"+gal+"videochannels .row:eq(1)").append(container);
				} 
				else {
					jQuery("#"+gal+"videochannels .row:eq(2)").append(container);
				}
				intr++
			}
		}
		catch (oException) {}
	}
	build(getPage(gal) - 1);
	function buildPagination(val, exit){
		var pagination, pagination2, paginationElem, paginationElem2, itemRange;		
		if (numPages == 1) {
			jQuery("#"+gal+"videochannels .vidpagenav").empty();
			return
		}
		itemRange = (numPages === parseInt(getPage(gal)))? jsonListItemLength : (getPage(gal) * dvr)
		pagination = document.createElement("ul");
		pagination.className = "botPagination";
		paginationElem = "<li class='pgcnt'>Displaying " + ((getPage(gal) * dvr) - (dvr - 1)) + "-" + itemRange + " of " + jsonListItemLength + "</li>";

		if(val > 1){
			paginationElem += "<li><a href='#' id='"+gal+"prev_top' class='prevNav'>&nbsp;&nbsp;</a></li>";
		} 
		else {
			paginationElem += "<li class='prevNav'>&nbsp;</li>";
		}
		
		for (var i = 0; i < numPages; i++){
			var x = i+1;
			if(val == x){
				paginationElem += "<li class='pageNum currPageNo'>" + x + "</li>";
			} else {
				paginationElem += "<li class='pageNum'><a href='#' id='" + gal + x + "_top'>" + x + "</a></li>";
			}
		}
		
		if(val == (numPages)){
			paginationElem += "<li class='nextNav'>&nbsp;</li>"
		} 
		else {
			paginationElem += "<li><a href='#' id='"+gal+"next_top' class='nextNav'>&nbsp;&nbsp;</a></li>";
		}			
		pagination.innerHTML = paginationElem;
		
		jQuery("#"+gal+"videochannels .vidpagenav:eq(0)").html(pagination)

		var p1 = pagination.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(jQuery("#"+gal+"xpage").text()) - 1;
						updateSettings.page(num, gal);
						build(--num);
						return buildPagination(num+1, false)
					}
					else if(this.id.indexOf("next") > -1){
						num = parseInt(jQuery("#"+gal+"xpage").text()) + 1;
						updateSettings.page(num, gal);
						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(gal))
}