VOD = false;

function switch_descr(id, s) {
	if(s) { // s = true; show description box
		$('.tv_descr').hide(); // hide allboxes
		$('.tv_descr_short').show(); // show all short desrc
		$('#descr_short_'+id).hide(); // hide this box short descr
		$('#descr_'+id).show(); // show this box full descr
		var e = $('#sch_'+id)[0];
		e.parentNode.scrollTop = e.offsetTop - e.parentNode.childNodes[0].offsetTop;
	} else { // s = false; hide full description
		$('#descr_'+id).hide();
		$('#descr_short_'+id).show();
	}
}

/******************************************************/
function refillSchedule(d, just_schedule) {
	var args = { channel: _CHANNEL_, "schedule":"true", "current":"true", "advert":"true" };
	var cd = new Date();
	sc_date = d ? d : cd;
	if(cd.getMonth() == sc_date.getMonth() && cd.getDate() == sc_date.getDate() && cd.getFullYear() == sc_date.getFullYear()) window.sc_current = true;
	else {
		var mon = sc_date.getMonth() + 1;
		if(mon < 10) mon = '0'+mon;
		var day = sc_date.getDate();
		if(day < 10) day = '0'+day;
		args.date = sc_date.getFullYear()+'-'+mon+'-'+day;
		window.sc_current = false;
	}
	$("#schedule").html(__lang.loading);
	$.post(_DOC_ROOT+"/play_data/", args, function(data, s) {
		if(displaySchedule) displaySchedule(data.schedule ? data.schedule : null, sc_date.valueOf(), data.current ? data.current.start : null);
		if(!VOD) {// && !just_schedule) {
			if(data.current)
				window.setTimeout(function() { displayProgTitle(data.current, data.advert) }, 10);
			else
				window.setTimeout(function() { displayProgTitle(null, null) }, 10);
		}
	}, 'json');
}

function scrollSchedule() {
	var i;	
	var d = new Date();
	if(sc_date.getFullYear() != d.getFullYear() || 
		sc_date.getMonth() != d.getMonth() || 
		sc_date.getDate() != d.getDate()) return;

	var e = document.getElementById('schedule');
	var found = false;
	for(i=0;i < e.childNodes.length;i++) {
		if(e.childNodes[i].id == window.sc_playing) {
			e.childNodes[i].className = e.childNodes[i].className.search(/tv_item_vod/) == -1 ? 'tv_item_current' : 'tv_item_current tv_item_vod';
			e.scrollTop = e.childNodes[i].offsetTop - e.childNodes[0].offsetTop;
			found = true;
		} else if (e.childNodes[i].tagName && e.childNodes[i].className.search(/tv_item_current/) != -1) {
			e.childNodes[i].className = e.childNodes[i].className.search(/tv_item_vod/) == -1 ? 'tv_item' : 'tv_item tv_item_vod';
		}
	}
	return found;
}

function displaySchedule(schedule, dt) {
	var i;
	var t = "";
	$('#schedule').empty();
	if(!schedule) return;
	for(i=0;i < schedule.length;i++) {
		var d = new Date(parseInt(schedule[i].abstime));
		var h = d.getHours(); //if(h < 10) h = "0"+h;
		var m = d.getMinutes(); //if(m < 10) m = "0"+m;
		if(h < 10) h = "0"+h;
		if(m < 10) m = "0"+m;
		var ev = '', ds = '';
		t += make_schedule_item(schedule[i].abstime, schedule[i].title, schedule[i].descr, h, m, schedule[i].vod ? true : false, schedule[i].bid, schedule[i].fid);
	}
	$('#schedule').html(t);
}

function closeDatePicker() {
	$('#datepicker').hide();
}

function showNow() {
	$('#datepicker').hide();
	var d = new Date();
	$('#schedule_list').children(':first').html(d.getDate()+'&nbsp;'+__lang.monthNames2[d.getMonth()]);
	refillSchedule(d);
}

function showDatePicker(s) {
	var p = getAbsolutePos(s);
	$("#datepicker")[0].style.left = p.x;
	$("#datepicker")[0].style.top = p.y;
	$('#dp').datepicker('setDate', sc_date);
	$("#datepicker").show();
}

function make_banner_block(banners) {
	var i, t = '';
	for(i=0; i < banners.length;i++) t += '<div class="banner">'+banners[i]+"</div>";
	return t;
}

var schedule_time_separator = "&nbsp;-&nbsp;";
function make_schedule_item(abstime, title, descr, h, m, vod, bid, fid) {
	var html = "<div class=\"tv_item\" id=\"sch_"+abstime+"\">"+
		'<span class="tv_item_time">'+h+':'+m+"</span>"+(schedule_time_separator ? schedule_time_separator : '')+"<span class=\"tv_item_title\">";
	if(vod && window._vod_img) {
		html += "<img class='link' onclick='play_vod("+fid+")' src='"+_vod_img.src+
		"' hspace='3' width='"+_vod_img.wd+"' height='"+_vod_img.ht+"' title='"+_vod_img.title+"'/>";
	}
	html += title+"</span>";
	if(descr) {
		var sd = descr.replace(/<\/?[a-z]+[^>]*\/?>/i, '');
		if(sd.length > 64) {
			sd = sd.substr(0, 64)+"...";
			html += "<div class=\"tv_descr_short\" style=\"cursor: pointer;\" id=\"descr_short_"+abstime+"\" onclick=\"switch_descr("+abstime+", true)\">"+sd+"</div>";
			html += "<div class=\"tv_descr\" id=\"descr_"+abstime+"\" style=\"display: none; cursor: pointer;\" onclick=\"switch_descr("+abstime+", false)\">"+descr+"</div>";
		} else {
			html += "<div class=\"tv_descr_short\" >"+descr+"</div>";
		}
	}
	html += "</div>";
	return html;
}
/******************************************************/


function setBroadcast() {
	VOD = false;
	$("#videoPlayer")[0].epPlayLive();
}

function setBndw() {
	setBroadcast();
}

function setVOD(fid) {
	VOD = true;
	$("#videoPlayer")[0].epPlayVOD(fid);
}

function epCallback(code, app, ext) {
	if(app.setMode) VOD = app.setMode == 'vod' ? true : false;
	if(code == "EPlayer.PlayItem" && (!VOD || !app.start)) {
		displayProgTitle({ "start": app.bstart ? app.bstart : app.start, "title": app.btitle ? app.btitle : app.title });
		$.post(_DOC_ROOT+"/play_data/", { channel: _CHANNEL_, "fid":app.id, "advert":"true" }, function(d, s) {
			displayAdvert(d.advert);
		}, 'json');
	}
}

function displayProgTitle(c) {
	if(!VOD) {
		var d = new Date(parseInt(c.start));
		var h = d.getHours(); if(h < 10) h = "0"+h;
		var m = d.getMinutes(); if(m < 10) m = "0"+m;
		$("#tv_mode").html(__lang['now_playing']);
		$("#tv_current").html(h+':'+m+' - '+c.title);
	} else {
		$("#tv_mode").html(__lang['vod_playing']);
		$("#tv_current").html(c.title);
	}

	var found = false;
	var s = document.getElementById('schedule');
	var i;
	var d = new Date();
	var scheduleValid = false;
	if(c && sc_current) {
		var label = 'sch_'+c.start;
		window.sc_playing = label;
		found = scrollSchedule();
	} else window.sc_playing = '';

	if(c && c.start && !found && sc_current) {
		refillSchedule();
	}
}

function displayAdvert(adv) {
	$("#advert").empty();
	if(adv) {
		if(adv.banner) $('#advert').html(adv.banner);
		else if(adv.length) $('#advert').html(make_banner_block(adv));
	}
}

function initFlashTV () {
	refillSchedule();
}

function initTV() {}

function refreshProgTitle() {}
function refreshAdvert() {}

flash = true;

$(function() {
	$("span.link").mouseover(function() { $(this).addClass('hover'); }).mouseout(function() { $(this).removeClass('hover'); });
	initFlashTV();
});

