var bToday = false;
var strToday = "";
var weekDay = 0;
var dayViewing = "";
var bDayChanged = true;
var oRef = this;
var scheduleLength = 0;
var bDate = true;
var strDate;

var oProgramListener = new ProgramListener();
var Program = new Program(oProgramListener);
oProgramListener.onGetSchedule = function (oReturn){
scheduleFadeIn();
oRef.resultGetSchedule(oReturn);
}

function getScheduleByDay(strDate) {
	strToday == "" ? strToday = getToday() : strToday;

	strToday == strDate ? bToday = true : bToday = false;

	dayViewing != strDate ? bDayChanged = true : bDayChanged = false;

	if(bDayChanged){
		dayViewing = strDate;
		scheduleFadeOut();
		bDate = true;
		Program.getSchedule(strDate, bDate, true);
	}
}

function getScheduleByProgram(iProgram) {
	scheduleFadeOut();
	bDate = false;
	Program.getSchedule(iProgram, bDate, true);
}

function getToday() {
	var zero = "0"
	var currentTime = new Date();
	var mstr = (currentTime.getMonth() + 1).toString();
	var dstr = (currentTime.getDate()).toString();
	var year = (currentTime.getFullYear()).toString();
	mstr.length != 2 ? month = (zero.concat(mstr)) : month = mstr;
	dstr.length != 2 ? day = (zero.concat(dstr)) : day = dstr;
	return (year + "-" + month + "-" + day);
}

function resultGetSchedule(oReturn){
	var tvguidelistholder = document.getElementById("tvguidelistholder");
	var tvguidelist = document.getElementById("tvguidelist");
	tvguidelistholder.scrollTop = 0;
	tvguidelist.innerHTML = "";

	if(bDate){
		//Results for today
		if(bToday){
			var scheduleLength = oReturn.today.length;

			for(var i=0;i<scheduleLength;i++){
				var sContent = "<div class='boxcontent_item'><span class='tvguide_start'>" + oReturn.today[i].start + "</span><span class='tvguide_programtitle'><a href='/programma/" + oReturn.today[i].id + "'>" + oReturn.today[i].title + "</a></span>";
				if(parseInt(oReturn.today[i].episodenumber) != 0) {
					sContent += "<span class='tvguide_spacer'></span><span class='tvguide_episodenumber'>Aflevering: "+oReturn.today[i].episodenumber+"</span>";
				}
				tvguidelist.innerHTML += sContent+"</div>";
			}
		}
		//Results for later this week
		if(!bToday){
			var scheduleLength = oReturn.later.length;
			for(var i=0;i<scheduleLength;i++){
				var sContent = "<div class='boxcontent_item'><span class='tvguide_start'>" + oReturn.later[i].start + "</span><span class='tvguide_programtitle'><a href='/programma/" + oReturn.later[i].id + "'>" + oReturn.later[i].title + "</a></span>";
				if(parseInt(oReturn.later[i].episodenumber) != 0) {
					sContent += "<span class='tvguide_spacer'></span><span class='tvguide_episodenumber'>Aflevering: "+oReturn.later[i].episodenumber+"</span>";
				}
				tvguidelist.innerHTML += sContent+"</div>";
				
			}
		}
	}
	//Get schedule for program
	if(!bDate){
		var scheduleLength = oReturn.program.length;
		for(var i=0;i<scheduleLength;i++){
			var sContent = "<div class='boxcontent_item'><span class='tvguide_start'>" + oReturn.program[i].start + "</span><span class='tvguide_programtitle'><a href='/programma/" + oReturn.program[i].id + "'>" + oReturn.program[i].title + "</a></span>";
			if(parseInt(oReturn.program[i].episodenumber) != 0) {
				sContent += "<span class='tvguide_spacer'></span><span class='tvguide_episodenumber'>Aflevering: "+oReturn.program[i].episodenumber+"</span>";
			}
			tvguidelist.innerHTML += sContent+"</div>";
		}
	}
}

function scheduleFadeOut(){
	new Effect.Opacity("tvguidelist", { from: 1.0, to: 0.0, duration: 0.6});
}

function scheduleFadeIn(){
	new Effect.Opacity("tvguidelist", { from: 0.0, to: 1.0, duration: 0.6});
}