var C4 = C4 ? C4 : {};

C4.ONTV = function(){
		
	var init = function(){		
		var oldLoad = window.onload;
		window.onload = function(){
			if(typeof oldLoad == "function"){
				oldLoad();
			}
			_getOnDemand();
			_getTxInfo();
		}
	};
	
	var _ONDEMAND = function(){
		var websafeName = ('SEARCH' in C4) ? C4.SEARCH.jQuery('meta[name=websafe-name]').attr("content") : jQuery('meta[name=websafe-name]').attr("content");
		return "http://query.yahooapis.com/v1/public/yql?q=use%20'http%3A%2F%2Fwww.channel4.com%2Fstatic%2Fprogrammes%2Fyql%2Fchannel4.programmes.ondemand.xml'%20as%20ondemand%20select%20*%20from%20ondemand%20where%20name%3D'"+websafeName+"'&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=?"
	};
	
	var _TXINFO = function(){
		var websafeName = ('SEARCH' in C4) ? C4.SEARCH.jQuery('meta[name=websafe-name]').attr("content") : jQuery('meta[name=websafe-name]').attr("content");
		return "http://query.yahooapis.com/v1/public/yql?q=use%20'http%3A%2F%2Fwww.channel4.com%2Fstatic%2Fprogrammes%2Fyql%2Fchannel4.programmes.txinfo.xml'%20as%20txinfo%20select%20*%20from%20txinfo%20where%20name%3D'"+websafeName+"'&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=?"
	};
	
	var _getOnDemand = function(){
		if('SEARCH' in C4) {
			C4.SEARCH.jQuery.getJSON(_ONDEMAND(), _onDemandHandler);
		} else {
			jQuery.getJSON(_ONDEMAND(), _onDemandHandler);
		}
	};
	
	var _getTxInfo = function(){
		if('SEARCH' in C4) {
			C4.SEARCH.jQuery.getJSON(_TXINFO(), _txInfoHandler);
		} else {
			jQuery.getJSON(_TXINFO(), _txInfoHandler);
		}
	};
	
	var _isNotEmpty = function(obj){
		for(var item in obj){
			return true;
		}
		return false;
	};
	
	var _onDemandHandler = function(data){
		var qr = data["query"].results;
		if(_isNotEmpty(qr)){
			if('SEARCH' in C4) {
				if(C4.SEARCH.jQuery("div.full-gallery").length > 0) {
					// Adjust rhc gallery margin-top
					C4.SEARCH.jQuery("div.full-gallery").css("margin-top", "0px");
					C4.SEARCH.jQuery("#TxPromo").css("margin-top", "-158px");
				}
				C4.SEARCH.jQuery("#TxPromo").html('<div id="#TxCatchUp"><a href="'+qr.a.href+'?intcmp=GT4oD_'+C4.SEARCH.jQuery('meta[name=websafe-name]').attr("content")+'"><span class="underline">WATCH NOW</span>&nbsp;ON&nbsp;<img src="/media/generic/logos/4od-logo.png" alt="4oD" width="43" height="30"/></a></div>').show();
			} else {
				jQuery("#TxPromo").html('<div id="#TxCatchUp"><a href="'+qr.a.href+'?intcmp=GT4oD_'+jQuery('meta[name=websafe-name]').attr("content")+'"><span class="underline">WATCH NOW</span>&nbsp;ON&nbsp;<img src="/media/generic/logos/4od-logo.png" alt="4oD" width="43" height="30"/></a></div>').show();
			}
		}
	};
	
	var _txInfoHandler = function(data){
		//if((jQuery("#noTvListings").length == 0) || (jQuery("#noTvListings ul li ul li").html().replace(/\s+/ig, "") == "")) {
			var qr = data["query"].results;
			if(_isNotEmpty(qr)){
				var channel = '';
				switch (qr.div.p[1].span[1].content) {
					case 'Channel 4':
						channel = 'C4 ';
						break;
					case 'E4':
						channel = 'E4 ';
						break;
					case 'More4':
						channel = 'M4 ';
						break;
					deafult:
						break;
				}
				var prefix = qr.div.h2.content.replace(/\:/ig, "");
				var date_parts = qr.div.p[0].content.split(" ");
				var day = date_parts[0].substr(0,3);
				var date = Number(date_parts[1]);
				var month = date_parts[2].substr(0,3);
				var time = qr.div.p[1].span[0].content.toLowerCase();
				var channel_long = qr.div.p[1].span[1].content;
				if('SEARCH' in C4) {
					C4.SEARCH.jQuery("#TxInfo").html('<ul class="ontv parent"><li class="' + channel + 'first last"><span class="micrositeListingChannel"> </span><ul><li class="micrositeListingContent"><span class="displayChannel">' + prefix + ' ' + channel_long + ':</span> <span class="micrositeListingStartDate">' + day + ' ' + date + ' ' + month + ', ' + time + '</span></li></ul></li></ul>').show();
				} else {
					jQuery("#TxInfo").html('<ul class="ontv parent"><li class="' + channel + 'first last"><span class="micrositeListingChannel"> </span><ul><li class="micrositeListingContent"><span class="displayChannel">' + prefix + ' ' + channel_long + ':</span> <span class="micrositeListingStartDate">' + day + ' ' + date + ' ' + month + ', ' + time + '</span></li></ul></li></ul>').show();
				}
			}
		//}
	};
		
	return {
		init : init
	}
}();

C4.ONTV.init();
