$(document).ready(function($){
    initPickupBox();
    initSideRanking();

    prj.mainArea.setup();

    loadXML("/php/getTweet.php");

});

var prj = {

    mainArea : {
        RollTime : 5000,
        RollSpeed : 600,
        mainVidFlowHtml : "",
        thumbnailFlowHtml : "",
        nowNum : 1,
        nextNum : 1,
        nowFlowVid : {},// json情報
        nextFlowVid : {},// json情報
        nowSetFlg : false,// now情報があるか
        nextSetFlg : false,// next情報があるか

        scrollTime : {},
        reloadOnAirTime : {},
        currentNum : 0,
        max : 0,
        nowOnAir : null,
        next1OnAir : null,
        next2OnAir : null,
        last_tabelatte_cd : null,
        endDate : new Date(),
        reloadFlg : 0,

        setup : function () {

            this.max = $('#flowVid li').length;
            this.endDate.setDate(this.endDate.getDate()+1);

            prj.mainArea.reloadOnAir();
            prj.mainArea.setOnAir();

            $('#flowThumbnails a').bind('click',function(){
                prj.mainArea.move(prj.mainArea.currentNum, $(this).parent().index())
                prj.mainArea.setAutoScroll();
            });

            $('#leftBtn a').bind('click',function(){
                prj.mainArea.move(prj.mainArea.currentNum, prj.mainArea.currentNum - 1)
                prj.mainArea.setAutoScroll();
            });

            $('#rightBtn a').bind('click',function(){
                prj.mainArea.move(prj.mainArea.currentNum, prj.mainArea.currentNum + 1)
                prj.mainArea.setAutoScroll();
            });

            prj.mainArea.move(this.max - 1, 0);
            prj.mainArea.setAutoScroll();
        },

        setAutoScroll : function () {
            clearInterval(this.scrollTime);
            this.scrollTime = setInterval(function(){
                prj.mainArea.move(prj.mainArea.currentNum, prj.mainArea.currentNum + 1);
            }, this.RollTime);
        },

        move : function (from, to) {
            if(to >= this.max){
                to = 0;
            } else if(to < 0){
                to = this.max - 1;
            }
            if (to == 0 && this.nowOnAir == null) {
                to = 1;
            }

            if (to == 1 && this.next1OnAir == null) {
                to = 2;
            }

            this.currentNum = to;
            $('#flowVid').animate(
                {left: -((to * 725))},
                {
                    duration:this.RollSpeed,
                    easing:"easeInQuart",
                    queue: false
                }
            );
            $('#flowThumbnails').find('li:eq(' + from + ')').removeClass('current');
            $('#flowThumbnails').find('li:eq(' + to + ')').addClass('current');
        },

        setOnAir : function () {
            this.reloadOnAirTime = setInterval(function(){
                prj.mainArea.reloadOnAir();

                // リロード処理
                var end = prj.mainArea.endDate;
                var now = new Date();
                if (end <= now && now.getHours() == 3 && prj.mainArea.reloadFlg == 0) {
                    prj.mainArea.reloadFlg = 1;
                    window.location.reload();
                }
            }, 1000);
        },

        reloadOnAir : function () {
            prj.mainArea.nowCount = 0;
            $("#head_now_dl").hide();
            $("#tv .nowonair").hide();

            $(timeTable).each(function(i, item){
                item.start = prj.mainArea.getStart(item);
                item.end = prj.mainArea.getEnd(item);
                var now = prj.getNow();

                // Now On Air
                if (item.start <= now && now < item.end){
                    prj.mainArea.setNowOnAir(item);
                    prj.mainArea.nowCount++;
                }

                // Next On Air
                if (item.start >= now && prj.mainArea.nowCount > 0) {

                    if (prj.mainArea.nowCount == 1) {
                        prj.mainArea.setNext1OnAir(item);

                    } else if (prj.mainArea.nowCount == 2) {
                        prj.mainArea.next2OnAir = item;
                        prj.mainArea.setNext2OnAir(item);
                    }
                    prj.mainArea.nowCount++;
                }
            });

            // ネクストが無い場合
            if (prj.mainArea.nowCount < 2) {
                prj.mainArea.setNext2OnAir();
            } else if (prj.mainArea.nowCount < 3) {
                prj.mainArea.setNext1OnAir();
                prj.mainArea.setNext2OnAir();
            }
        },

        getStart : function (p) {
            var date    = p.play_date.split(" ")[0].split("/");
            var year    = parseInt(date[0]);
            var month   = parseInt((date[1].replace(/^0+/, '').replace(/^$/, '0'))) - 1;
            var day     = parseInt(date[2].replace(/^0+/, '').replace(/^$/, '0'));
            var hour    = parseInt(p.start_time.slice(0, 2).replace(/^0+/, '').replace(/^$/, '0'));
            var min     = parseInt(p.start_time.slice(2, 4).replace(/^0+/, '').replace(/^$/, '0'));
            var sec     = parseInt(p.start_time.slice(4, 6).replace(/^0+/, '').replace(/^$/, '0'));

            var start = new Date(year, month, day, hour, min, sec);

            return start;
        },

        getEnd : function (p) {
            var date    = p.play_date.split(" ")[0].split("/");
            var year    = parseInt(date[0]);
            var month   = parseInt(date[1].replace(/^0+/, '').replace(/^$/, '0')) - 1;
            var day     = parseInt(date[2].replace(/^0+/, '').replace(/^$/, '0'));
            var hour    = parseInt(p.start_time.slice(0, 2).replace(/^0+/, '').replace(/^$/, '0'));
            var min     = parseInt(p.start_time.slice(2, 4).replace(/^0+/, '').replace(/^$/, '0'));
            var sec     = parseInt(p.start_time.slice(4, 6).replace(/^0+/, '').replace(/^$/, '0'));

            var end = new Date(year, month, day, hour, min, sec);

            var tHour   = parseInt(p.total_time.slice(0, 2).replace(/^0+/, '').replace(/^$/, '0'));
            var tMin    = parseInt(p.total_time.slice(2, 4).replace(/^0+/, '').replace(/^$/, '0'));
            var tSec    = parseInt(p.total_time.slice(4, 6).replace(/^0+/, '').replace(/^$/, '0'));
            end.setHours (end.getHours() + tHour);
            end.setMinutes (end.getMinutes() + tMin);
            end.getSeconds (end.getSeconds() + tSec);

            return end;
        },

        setNowOnAir : function (item) {
            if (item != undefined) {
                prj.mainArea.nowOnAir = item;
                var link = "/program/episode.php?prg_cd="
                    + item.prg_cd + "&episode_cd=" + item.episode_cd + "&epg_ver_cd=" + item.epg_ver_cd;
//                // メインエリア
//                $("#mainArea_main_now a").attr("href", link);
//                if ( item.file_url_l != '') {
//                    $("#mainArea_main_now img[ width='705']").attr("src", item.file_url_l);
//                } else {
//                    $("#mainArea_main_now img[ width='705']").attr("src", '/img/index/loading_pops.jpg');
//                }
//                $("#mainArea_main_now img[ width='705']").attr("alt", item.file_url_l_alt);
//                if ( item.file_url != '') {
//                    $("#mainArea_thumb_now img").attr("src", item.file_url);
//                } else if ( item.file_url_m != '') {
//                    $("#mainArea_thumb_now img").attr("src", item.file_url_m);
//                } else {
//                    $("#mainArea_thumb_now img").attr("src", '/img/index/thumbnail01.gif');
//                }
//                $("#mainArea_thumb_now img").attr("alt", item.file_url_m_alt);
                // ヘッダーメニュ
                $("#head_now .noro a").attr("href" , link);
                if ( item.file_url != '') {
                    $("#head_now .noro img").attr("src", item.file_url);
                } else if ( item.file_url_m != '') {
                    $("#head_now .noro img").attr("src" , item.file_url_m);
                } else {
                    $("#head_now .noro img").attr("src", '/img/programimg/noimage02.gif');
                }
                $("#head_now .noro img").attr("alt" , item.file_url_m_alt);
                $("#head_now .now_comment a").attr("href" , link);
                var cap = "";
                if (item.caption_flg == 1) { cap = "[字]"; }
                $("#head_now .now_comment a").text(item.prg_title + cap + "#" + item.episode_no + item.episode_title);
                $("#programNav dl").show();
                // 右カラム
                $("#sideNowonairImg a").attr("href"   , link);
                if ( item.file_url != '') {
                    $("#sideNowonairImg img").attr("src", item.file_url);
                } else if ( item.file_url_m != '') {
                    $("#sideNowonairImg img").attr("src"  , item.file_url_m);
                } else {
                    $("#sideNowonairImg img").attr("src", '/img/programimg/noimage03.gif');
                }
                $("#sideNowonairImg img").attr("alt"  , item.file_url_m_alt);
                $("#tv .nowonair").show();
                $("#sideNowonair .mt7.ro").hide();
                $("#recipeBox .nowonair").hide();
                $("#recipeBox").css('width', '')

                var s_hour  = ('00' + item.start.getHours()).slice(-2);
                var s_min   = ('00' + item.start.getMinutes()).slice(-2);
                var e_hour  = ('00' + item.end.getHours()).slice(-2);
                var e_min   = ('00' + item.end.getMinutes()).slice(-2);
                $("#sideNowonairTime1").text(s_hour + ":" + s_min + "～" + e_hour + ":" + e_min);
                $("#sideNowonairTitle1 a").attr("href", link);
                $("#sideNowonairTitle1 a").text(item.prg_title + " #" + item.episode_no);
            } else {
                prj.mainArea.nowOnAir = null;
//                $("#mainArea_main_now a").attr("href"   , "###");
//                $("#mainArea_main_now img[ width='705']").attr("src"  , "/img/index/loading_pops.jpg");
//                $("#mainArea_main_now img[ width='705']").attr("alt"  , "");
//                $("#mainArea_thumb_now img").attr("src" , "/img/index/thumbnail01.gif");
//                $("#mainArea_thumb_now img").attr("alt" , "");
                $("#programNav dl").hide();
                $("#sideNowonair").hide();
            }
        },

        setNext1OnAir : function (item) {
            if (item != undefined) {
                prj.mainArea.next1OnAir = item;
                var link = "/program/episode.php?prg_cd="
                    + item.prg_cd + "&episode_cd=" + item.episode_cd + "&epg_ver_cd=" + item.epg_ver_cd;
//                // メインエリア
//                $("#mainArea_main_next a").attr("href", link);
//                if ( item.file_url_l != '') {
//                    $("#mainArea_main_next img[ width='705']").attr("src", item.file_url_l);
//                } else {
//                    $("#mainArea_main_next img[ width='705']").attr("src", '/img/index/loading_pops.jpg');
//                }
//                $("#mainArea_main_next img[ width='705']").attr("alt", item.file_url_l_alt);
//                if ( item.file_url != '') {
//                    $("#mainArea_thumb_next img").attr("src", item.file_url);
//                } else if ( item.file_url_m != '') {
//                    $("#mainArea_thumb_next img").attr("src", item.file_url_m);
//                } else {
//                    $("#mainArea_thumb_next img").attr("src", '/img/index/thumbnail02.gif');
//                }
//                $("#mainArea_thumb_next img").attr("alt", item.file_url_m_alt);
                // 右カラム
                var s_hour  = ('00' + item.start.getHours()).slice(-2);
                var s_min   = ('00' + item.start.getMinutes()).slice(-2);
                var e_hour  = ('00' + item.end.getHours()).slice(-2);
                var e_min   = ('00' + item.end.getMinutes()).slice(-2);
                $("#sideNowonairTime2").text(s_hour + ":" + s_min + "～" + e_hour + ":" + e_min);
                $("#sideNowonairTitle2 a").attr("href", link);
                $("#sideNowonairTitle2 a").text(item.prg_title + " #" + item.episode_no);
            } else {
                prj.mainArea.next1OnAir = null;
//                $("#mainArea_main_next a").attr("href"      , "#");
//                $("#mainArea_main_next img[ width='705']").attr("src"     , "/img/index/loading_pops.jpg");
//                $("#mainArea_main_next img[ width='705']").attr("alt"     , "");
//                $("#mainArea_thumb_next img").attr("src"    , "/img/index/thumbnail02.gif");
//                $("#mainArea_thumb_next img").attr("alt"    , "");
            }
        },

        setNext2OnAir : function (item) {
            if (item != undefined) {
                prj.mainArea.next2OnAir = item;
                var link = "/program/episode.php?prg_cd="
                    + item.prg_cd + "&episode_cd=" + item.episode_cd + "&epg_ver_cd=" + item.epg_ver_cd;
                // 右カラム
                var s_hour  = ('00' + item.start.getHours()).slice(-2);
                var s_min   = ('00' + item.start.getMinutes()).slice(-2);
                var e_hour  = ('00' + item.end.getHours()).slice(-2);
                var e_min   = ('00' + item.end.getMinutes()).slice(-2);
                $("#sideNowonairTime3").text(s_hour + ":" + s_min + "～" + e_hour + ":" + e_min);
                $("#sideNowonairTitle3 a").attr("href", link);
                $("#sideNowonairTitle3 a").text(item.prg_title + " #" + item.episode_no);
            } else {
                prj.mainArea.next2OnAir = null;
            }
        }

    },

    getNow : function () {
        var now = this.getCookie(pname);
        if (now == "") {
            return new Date();
        } else {
            var date = now.split("-");
            return new Date(date[0], date[1]-1, date[2], date[3], date[4], 0);
        }
    },

    getCookie : function (key){
        var tmp = document.cookie + ";";
        var index1 = tmp.indexOf(key, 0);
        if(index1 != -1){
            tmp = tmp.substring(index1, tmp.length);
            var index2 = tmp.indexOf("=",0) + 1;
            var index3 = tmp.indexOf(";",index2);
            return(unescape(tmp.substring(index2, index3)));
        }
        return("");
    }
};

function initPickupBox(){
	var currentNum = pickupCurrentNum;
	var $pickupProgram  = $('#pickupProgram');
	var $pickupNavArrow  = $('#pickupNavArrow');

	$pickupProgram.find('.nav a').live('click',function(){
		//内容物変更
		var Num = $(this).parent().index()+1;
		var deleteTargetId = "#programList"+currentNum;
		var $deleteTarget = $(deleteTargetId);
		var addTargetId = "#programList"+Num;
		var $addTarget = $(addTargetId);
		
		var tempH = $pickupProgram.height();
		$pickupProgram.css('height',tempH);
		$deleteTarget.addClass("dispNon");
		$addTarget.removeClass("dispNon");
		$pickupProgram.css('height','auto');
		
		//矢印移動
		var targetY = (Num-1)*87+37;
		$pickupNavArrow.css('left',targetY);
		
		//ボタン画像変更
		var targetIndex = Number(currentNum-1);
		var $curentNav = $(this).parent().parent().find('li:eq('+targetIndex+')');
		var targetImg = $curentNav.find('img').attr('src').replace("_on","");
		$curentNav.find('img').attr("src",targetImg);
		targetHtml = '<a href="javascript:void(0);">'+$curentNav.html()+'</a>';
		$curentNav.empty().append(targetHtml);
		initTempRollOverImages($curentNav.find('img'));
		
		var miniHtml = $(this).parent().html().replace('<a href="javascript:void(0);">','').replace('</a>','');
		$(this).parent().empty().append(miniHtml);
		
		currentNum = Num;
		return false;
	});
}

function initTempRollOverImages(targetImg) {
    var image_cache = new Object();
    var $targetImg = targetImg;
    $targetImg.not("[src*='_on.']").each(function(i) {
        var imgsrc = this.src;
        var dot = this.src.lastIndexOf('.');
        var imgsrc_on = this.src.substr(0, dot) + '_on' + this.src.substr(dot, 4);
        image_cache[this.src] = new Image();
        image_cache[this.src].src = imgsrc_on;
        $(this).hover(
            function() { this.src = imgsrc_on; },
            function() { this.src = imgsrc; }
        );
    });
}


function initSideRanking() {  
	var $sideRankingNav = $('#sideRanking .nav');
	var $rankinBtn1 = $('#rankinBtn1');
	var $rankinBtn2 = $('#rankinBtn2');
	var $sideRankingFoodies = $('#sideRankingFoodies');
	var $sideRankingTabelatte = $('#sideRankingTabelatte');
	var $rankingarrow1 = $('#rankingarrow1');
	var $rankingarrow2 = $('#rankingarrow2');
	
	$rankinBtn1.live('click',function(){
		$sideRankingFoodies.removeClass('dispNon');
		$sideRankingTabelatte.addClass('dispNon');
		$rankingarrow1.removeClass('dispNon');
		$rankingarrow2.addClass('dispNon');
		var miniHtml = $(this).html().replace('<a href="javascript:void(0);">','').replace('</a>','');
		$(this).empty().append(miniHtml);
		var miniHtml2 = '<a href="javascript:void(0);">'+$rankinBtn2.html().replace('_on','')+'</a>';
		$rankinBtn2.empty().append(miniHtml2);
		initTempRollOverImages($rankinBtn2.find('img'));
	});
	
	$rankinBtn2.live('click',function(){
		$sideRankingFoodies.addClass('dispNon');
		$sideRankingTabelatte.removeClass('dispNon');
		$rankingarrow1.addClass('dispNon');
		$rankingarrow2.removeClass('dispNon');
		var miniHtml = $(this).html().replace('<a href="javascript:void(0);">','').replace('</a>','');
		$(this).empty().append(miniHtml);
		var miniHtml2 = '<a href="javascript:void(0);">'+$rankinBtn1.html().replace('_on','')+'</a>';
		$rankinBtn1.empty().append(miniHtml2);
		initTempRollOverImages($rankinBtn1.find('img'));
	});
}

function initMainVid(){
	var mainVidImgArray = [];
	var mainVidLinkArray = [];
	var thumbnailArray = [];
	var RollTime = 5000;
	var RollSpeed = 600;
	var currentPos = 0;
	var $mainVid = $('#mainVid');
	var mainVidFlowHtml = "";
	var thumbnailFlowHtml = "";
	var nowNum;
	var nextNum;
	
	
	//とりあえず値入力 あとでjsonからの値に変更
	nowNum = 1;
	nextNum = 1;
	mainVidImgArray = ["/img/programimg/programimg16.jpg","/img/programimg/programimg16.jpg","/img/programimg/programimg16.jpg","/img/programimg/programimg16.jpg","/img/programimg/programimg16.jpg","/img/programimg/programimg16.jpg","/img/programimg/programimg16.jpg","/img/programimg/programimg16.jpg","/img/programimg/programimg16.jpg"];
	mainVidLinkArray = ["now.html","next1.html","1.html","2.html","3.html","4.html","5.html","6.html","7.html"];
	thumbnailArray = ["/img/index/thumbnail01.gif","/img/index/thumbnail02.gif","/img/programimg/programimg04.jpg","/img/programimg/programimg04.jpg","/img/programimg/programimg04.jpg","/img/programimg/programimg04.jpg","/img/programimg/programimg04.jpg","/img/programimg/programimg04.jpg","/img/programimg/programimg04.jpg"];
	
	var maxNum = mainVidImgArray.length;
	for(var i=0;i<maxNum;i++){
		if(nowNum == 1 && i==0){
			mainVidFlowHtml += '<li><a href="'+mainVidLinkArray[i]+'"><img src="'+mainVidImgArray[i]+'" alt="" width="705" height="331" /></a><span class="nowtag"><img src="/img/index/tag01.png" alt="" width="82" height="19" /></span></li>';
		}else if(nextNum == 1 && nowNum == 1 && i==1){
			mainVidFlowHtml += '<li><a href="'+mainVidLinkArray[i]+'"><img src="'+mainVidImgArray[i]+'" alt="" width="705" height="331" /></a><span class="nowtag"><img src="/img/index/tag02.png" alt="" width="82" height="19" /></span></li>';
		}else if(nextNum == 1 && nowNum == 0 && i==0){
			mainVidFlowHtml += '<li><a href="'+mainVidLinkArray[i]+'"><img src="'+mainVidImgArray[i]+'" alt="" width="705" height="331" /></a><span class="nowtag"><img src="/img/index/tag02.png" alt="" width="82" height="19" /></span></li>';
		}else{
			mainVidFlowHtml += '<li><a href="'+mainVidLinkArray[i]+'"><img src="'+mainVidImgArray[i]+'" alt="" width="705" height="331" /></a></li>';
		}
		if(thumbnailArray[i])thumbnailFlowHtml += '<li><a href="javascript:void(0);"><img src="'+thumbnailArray[i]+'" alt="" width="64" height="36" /></a></li>'
	}
	$mainVid.append('<ul id="flowVid">'+mainVidFlowHtml+'</ul>');
	$mainVid.append('<ul id="flowThumbnails">'+thumbnailFlowHtml+'</ul>');
	$('#flowThumbnails li:eq(0)').addClass('current');
	
	var timerID = setInterval(function(){
		moveMainVid(currentPos+1,currentPos);
	}, RollTime);
	
	var $flowThumbnails = $('#flowThumbnails');
	var $flowThumbnailsBtn = $('#flowThumbnails a');
	$flowThumbnailsBtn.bind('click',function(){
		clearInterval(timerID);
		var targetNum = $(this).parent().index();
		moveMainVid(targetNum,currentPos)
		
		timerID = setInterval(function(){
			moveMainVid(currentPos+1,currentPos);
		}, RollTime);
	});
	
	function moveMainVid(targetNum,CurrentNum){
		if(targetNum >= maxNum){
			targetNum = 0;
		}
		if(targetNum < 0){
			targetNum = maxNum-1;
		}
		currentPos = targetNum;
		var $flowVid = $('#flowVid');
		var targetLeft = -targetNum*725;
		$flowVid.animate(
			{left: targetLeft},
			{duration:RollSpeed,easing:"easeInQuart",queue: false}
		)
		var targetLi = targetNum;
		var untargetLi = CurrentNum;
		$flowThumbnails.find('li:eq('+untargetLi+')').removeClass('current');
		$flowThumbnails.find('li:eq('+targetLi+')').addClass('current');
	}
}

function loadXML(url){
    $.ajax({
        type: "GET",
        url: url,
        dataType: "xml",
        success: function(xml) { parseXml(xml); }
    });
}
function parseXml(xml){
    $(xml).find("entry").each(function(){
        var iconUrl = $(this).find('link:eq(1)').attr('href');
        var userUrl = $(this).find('author uri').text();
        var userName = userUrl.replace('http://twitter.com/','');
        var contentTxt = $(this).find('content').text().replace('<b>','').replace('</b>','');
        var dateTxt = castDate($(this).find('published').text());

        var $twitterContents = $('#twitterContents')
        $twitterContents.append('<li>'+
                                '<p class="icon"><a href="'+userUrl+'" target="_blank"><img src="'+iconUrl+'" alt="" width="24" height="24" /></a></p>'+
                                '<div class="tweet">'+
                                '<p class="name"><a href="'+userUrl+'" target="_blank">'+userName+'</a></p>'+
                                '<p class="txt">'+contentTxt+'</p>'+
                                '<p class="date">'+dateTxt+'</p>'+
                                '</div>'+
                                '</li>');
    });

    function castDate($str){
        var d1 =$str.substring(0,4);
        var d2 =$str.substring(5,7);
        var d3 =$str.substring(8,10);
        var t1 =$str.substring(11,13);
        var t2 =$str.substring(14,16);
        var t3 =$str.substring(17,19);
        var d = new Date(d1,d2,d3,t1,t2,t3);
        d.setTime(d.getTime() + 540 * 60 * 1000) ;
        d1 = d.getFullYear();
        d2 = d.getMonth();
        d3 = d.getDate();
        t1 = d.getHours();
        t2 = d.getMinutes();
        t3 = d.getSeconds();
        if(d2 == 0){
            d2 = 12;
        }
        if(t2 < 10){
            t2 = "0"+t2;
        }
        var castedDate = d1+"."+d2+"."+d3+" "+t1+":"+t2;
        return(castedDate);
    }
}


