var alreadyLoadedSchedule = Array();
var alreadyLoadedScheduleJson = Array();
var alreadyLoadedWday = Array();
var alreadyLoadedActualPosition = Array();

var actualWeek = 0;

var pretime = false;



function initScheduleListeners(){

    aThumb = document.getElementById('schedule_scroller_button');

	$('#schedule_container').find('a').hover(function(){

		var dataObj = schedule_json[0][$(this).attr('id')];

		$("body").append('<div id="schedule_info_popup" class="'+dataObj['category']+'"><img align="left" src="" alt="" id="sip_thn_image"/><span id="sip_title"></span><span id="sip_original_title"></span><span id="sip_production_date"></span><span id="sip_duration"></span><span id="sip_age_rate"></span><br /><span id="sip_primary_genre_id"></span>, <span id="sip_secondary_genre_id"></span><br /><span id="sip_lead"></span><div class="clear"></div></div>')
		$("body").append('<img id="schedule_info_popup_shadow" src="/images/schedule_poup_info_shadow.png" />');


		$('#sip_title').html(dataObj['title']);
		$('#sip_duration').html(dataObj['duration']);
		$('#sip_lead').html(dataObj['lead']);
		$('#sip_production_date').html(dataObj['production_date']);
		$('#sip_age_rate').html(dataObj['age_rate']);
		$('#sip_original_title').html(dataObj['original_title']);
		$('#sip_primary_genre_id').html(dataObj['primary_genre_id']);
		$('#sip_secondary_genre_id').html(dataObj['secondary_genre_id']);

		if(dataObj['thn_image'] != ''){
			$('#sip_thn_image').attr('src', dataObj['thn_image']);
		} else {
			$('#sip_thn_image').remove();
		}


		$(".schedule_horisontal").mousemove(function(event) {
			cordx = event.pageX - 185;
			cordy = event.pageY - 40 - $('#schedule_info_popup').height();

			$('#schedule_info_popup').css('left',cordx+'px');
			$('#schedule_info_popup').css('top',cordy+'px');

			$('#schedule_info_popup_shadow').css('left',cordx-13+'px');
			$('#schedule_info_popup_shadow').css('top',cordy-13+'px');

		});

		$('#schedule_info_popup_shadow').height($('#schedule_info_popup').height()+42);

	}, function(){
          $('#schedule_info_popup_shadow').remove();
          $('#schedule_info_popup').remove();

	});



	$('#type_hbood').hover(function(){
		$(this).find("img").attr("src", "/images/schedule_hbood_hover.png");
	}, function(){
		$(this).find("img").attr("src", "/images/schedule_hbood.png");
	} );

	$('#type_hbogo').hover(function(){
		$(this).find("img").attr("src", "/images/schedule_hbogo_hover.png");
	}, function(){
		$(this).find("img").attr("src", "/images/schedule_hbogo.png");
	} );

    $('#type_hbood').click(function(){
        $('.schedule_horisontal').fadeOut();
		callAjax("schedule", "scheduleOd", "#schedule_box", [ 'false', 'false' ], false, "", "htmli", "initDigitalSchedule");
	});
    $('#type_hbogo').click(function(){
        $('.schedule_horisontal').fadeOut();
		callAjax("schedule", "scheduleGo", "#schedule_box", [ 'false', 'false' ], false, "", "htmli", "initDigitalSchedule");
	});

    


	Drag.init(aThumb, null, 0, 288, 0, 0);
	aThumb.onDrag = function(x, y) {

		setScrollerButtonText(x, false);

		scrollScheduleToPosition(x, false);
	}




	$('#schedule_scroller_left').click(function(){
		destination = parseInt($("#schedule_scroller_button").css("left"))-6;
		if(destination<0) destination = 0;
		setScrollerButtonText(destination, true);
		scrollScheduleToPosition(destination, true);
	});
	$('#schedule_scroller_right').click(function(){
		destination = parseInt($("#schedule_scroller_button").css("left"))+6;
		if(destination>288) destination = 288;
		setScrollerButtonText(destination, true);
		scrollScheduleToPosition(destination, true);
	});



	// type filters
	$('.schedule_filter_container').find('span').click(function(){
		id = $(this).attr('id').split('_')[1];
		if(id!='reset'){
            $('#schedule_container').find("a").not("a."+id).fadeTo('slow', 0.5);
			$('#schedule_container').find("a."+id).fadeTo('slow', 1);
			$('.schedule_filter_container').find('span').removeClass("activeFilterButton");
			$('#filter_'+id).addClass("activeFilterButton");
		} else {
            $('#schedule_container').find("a").fadeTo('slow', 1);
			$('.schedule_filter_container').find('span').removeClass("activeFilterButton");
		}
	})


	// now & pretime sliders
	$('#slideto').find('span').click(function(){

        actualWeek = 0;

        switch ($(this).attr('id')){
			case 'slideto_now':
				slideTo = actualPosition;
			break;
			case 'slideto_tonight':
                pretime = true;
				slideTo = 156;
			break;
		}

        if(realDayDate == actualDayDate){
			setScrollerButtonText(slideTo, true);
			scrollScheduleToPosition(slideTo, true);
		} else {
            setScheduelDate(realDayDate);
		}

	})


    // week change
	$('#period').find('span').click(function(){
		spanId = $(this).attr('id').split('_');
		if(spanId[0] == 'period') {
	        pretime = false;
	        actualWeek = spanId[1];
	        setScheduelDate(period[actualWeek]);
		}
	});


	// date change
    $('#tab').find('td').not("td.active").click(function(){
        id = $(this).attr('id').split('_')[1];
        setScheduelDate(wday[id]);
	});



    $('#scheduleSearchInput').focus(function(){
		searchTmpText = $('#scheduleSearchInput').val();
		$('#scheduleSearchInput').val('');
	}).blur(function(){
		$('#scheduleSearchInput').val(searchTmpText);
		searchTmpText = '';
	});

}




function setScheduelDate(dateStr){

    index = parseInt(dateStr.replace("/", ""));

	if( typeof alreadyLoadedSchedule[index] == "undefined" ){
        $('.schedule_horisontal').fadeOut();
	    tmp = dateStr.split('/');
	    callAjax("schedule", "schedule", "#schedule_box", [ tmp[0], tmp[1] ], false, "", "htmli", "initSchedule");
	} else {
		
        $('#schedule_box').html(alreadyLoadedSchedule[index]);
        schedule_json = alreadyLoadedScheduleJson[index];
        wday = alreadyLoadedWday[index];
        actualPosition = alreadyLoadedActualPosition[index];
        actualDayDate = dateStr;
        initSchedule();
	}
	
}

function setScrollerButtonText(x, position){
	hours = Math.floor(x / 12) ;

	minutes =  ( x - (hours * 12) ) * 5;
	hours = hours + 6;
	if(hours>23){
		hours = hours - 24;
	}
	if(hours.toString().length==1){
		hours = "0" + hours;
	}
	if(minutes.toString().length==1){
		minutes = "0" + minutes;
	}

	$("#schedule_scroller_button").html(hours+':'+minutes);

	if(position == true){
		$("#schedule_scroller_button").animate({
			left: x
		}, 1000);
	}
}

function scrollScheduleToPosition(x, animate){
	percent =  Math.round(x / (288 / 100));
	destination = (x * -30) + 50;
	if(destination < -7868){
		destination = -7868;
	}

	if(destination > 0){
		destination = 0;
	}

	destination = destination +15;

	if(animate == true){
		$('#schedule_container').animate({
			left: destination
		}, 1000);
	} else {
		$('#schedule_container').css("left", destination+"px");
	}
}

function highliteActualWeek(){
	$('#period').find('span').css('color', '#BBBBBB');
    $('#period_'+actualWeek).css('color', '#D7BF50');

}

function initSchedule(){

    scheduleLoaded = true;
    Cufon.replace('#type_television');
    initScheduleListeners();

    highliteActualWeek();


	if(pretime == false) {
		scrollto = actualPosition;
	} else {
        scrollto = 156;
        pretime = false;
	}
    setScrollerButtonText(scrollto, true);
    scrollScheduleToPosition(scrollto, true);

    index = parseInt(actualDayDate.replace("/", ""));
    alreadyLoadedSchedule[index] = $('#schedule_box').html();
    alreadyLoadedScheduleJson[index] = schedule_json;
    alreadyLoadedWday[index] = Array();
    alreadyLoadedWday[index] = wday;
    alreadyLoadedActualPosition[index] = actualPosition;
}






function initDigitalScheduleListeners(){

	$('#type_hbood').hover(function(){
		$(this).find("img").attr("src", "/images/schedule_hbood_hover.png");
	}, function(){
		if(viewType != "hbood") {
			$(this).find("img").attr("src", "/images/schedule_hbood.png");
		}
	} );

	$('#type_hbogo').hover(function(){
		$(this).find("img").attr("src", "/images/schedule_hbogo_hover.png");
	}, function(){
        if(viewType != "hbogo") {
			$(this).find("img").attr("src", "/images/schedule_hbogo.png");
		}
	} );

    $('#type_hbood').click(function(){
        $('.schedule_horisontal').fadeOut();
		callAjax("schedule", "scheduleOd", "#schedule_box", [ 'false', 'false' ], false, "", "htmli", "initDigitalSchedule");
	});

    $('#type_hbogo').click(function(){
        $('.schedule_horisontal').fadeOut();
		callAjax("schedule", "scheduleGo", "#schedule_box", [ 'false', 'false' ], false, "", "htmli", "initDigitalSchedule");
	});

    $('#type_television').click(function(){
        $('.schedule_horisontal').fadeOut();
		callAjax("schedule", "schedule", "#schedule_box", [ 'false', 'false' ], false, "", "htmli", "initSchedule");
	});



    // week change
	$('#period').find('span').click(function(){
		spanId = $(this).attr('id').split('_');
		if(spanId[0] == 'period') {
	        pretime = false;
	        actualWeek = spanId[1];
	        setScheduelDate(period[actualWeek]);
		}
        if(spanId[0] == 'goperiod') {
            $('.schedule_horisontal').fadeOut();
	        callAjax("schedule", "scheduleGo", "#schedule_box", [ spanId[1] ], false, "", "htmli", "initDigitalSchedule");
		}
        if(spanId[0] == 'odperiod') {
            $('.schedule_horisontal').fadeOut();
			tmp = periodDate[spanId[1]].split("/");
	        callAjax("schedule", "scheduleOd", "#schedule_box", [ tmp[0], tmp[1] ], false, "", "htmli", "initDigitalSchedule");
		}
	});





    $('#scheduleSearchInput').focus(function(){
		searchTmpText = $('#scheduleSearchInput').val();
		$('#scheduleSearchInput').val('');
	}).blur(function(){
		$('#scheduleSearchInput').val(searchTmpText);
		searchTmpText = '';
	});

}



function initDigitalSchedule(){
    $('.accordion').classicAccordion({ width:882, height:250, slideshow:false, distance:4, shadow:false, closePanelOnMouseOut:true, closedPanelSize:40});

    Cufon.replace('#type_television');
    initDigitalScheduleListeners();
}



var activeCaptionLink = '';

function initCaptionLinks(){

	maskOffset = $('#caption_link_mask').offset();
	maskHeight = $('#caption_link_mask').height();
	bodyHeight = $('#caption_links').height()+30;

	if(bodyHeight > maskHeight){
		$('#caption_link_mask').mousemove(function(event){
			maskPercent = (event.pageY - maskOffset.top) / (maskHeight / 100);
			bodyPercent = (bodyHeight-maskHeight) * (maskPercent/100);
			$('#caption_links').css("margin-top", '-' + parseInt(bodyPercent) + 'px');
		});
	}



	$('#caption_body_inner').find('a').hover(function(){

		id = $(this).attr('id');


		$('#caption_body_inner a').css("color", "");
		$('#caption_body_inner a').css("border-bottom", "");

		$('#title').html(schedule_json[0][id]['title']);
		$('#lead').html(schedule_json[0][id]['lead']);

		$(this).css("color", "#d7bf50");
		$(this).css("border-bottom", "solid 1px #848382");

	}, function(){

	});

}



function initFirstCaption(){
	$('#caption_body_inner a:first-child').css("color", "#d7bf50");
	$('#caption_body_inner a:first-child').css("border-bottom", "solid 1px #848382");
	id = $('#caption_body_inner a:first-child').attr('id');
	$('#title').html(schedule_json[0][id]['title']);
	$('#lead').html(schedule_json[0][id]['lead']);
}
