﻿// 表示数制限
var LISTCOUNT_program_today = 10;

var nowDate = new Date();
var checkDate = computeDate(nowDate.getFullYear(), nowDate.getMonth() + 1, nowDate.getDate(), -10);
var checkDateString = dateString(checkDate.getFullYear(),(checkDate.getMonth() + 1),checkDate.getDate());
var checkDateString2 = "";

function right_program_column() {
	document.getElementById('right_program_column').innerHTML = "";

    var params = "service=program&search=_DATE/GT/23000/"+checkDateString+"&show-results&result-info=all&result-format=xml&result-fields=date-4&result-count=1&result-page=1&sort-order=date-4:z";

    var req = new SearchRequest(params);

    if(!req.ok){
        req = null;
	    return false;
    }

	var data = req.getRecordElement();

    if(data.length > 0){

		// 検索日付設定
		checkDateString2 = getXmlNodeDate(data[0], "date-4");
		// 曜日取得（日:0～土:6）
		var checkDay = getDay(parseInt(checkDateString2.substring(0,4)), parseInt(checkDateString2.substring(5,7)) - 1, parseInt(checkDateString2.substring(8,10)));
		params = "";
		if (checkDay == 0)
		{
			// 日曜日
			params = "service=program&search=_DATE/EQ/23000/" + checkDateString2 + " AND ((_INT/GE/21001/8 AND _INT/GE/21002/00) OR _INT/GT/21001/8)&show-results&result-info=all&result-format=xml&result-fields=int-1,date-4,text-12,text-13,int-6,text-7,int-18&result-count=" + LISTCOUNT_program_today + "&result-page=1&sort-order=text-12:a,text-13:a,int-6:a";
		}
		else if (checkDay == 6)
		{
			// 土曜日
			params = "service=program&search=_DATE/EQ/23000/" + checkDateString2 + " AND ((_INT/GE/21001/8 AND _INT/GE/21002/00) OR _INT/GT/21001/8)&show-results&result-info=all&result-format=xml&result-fields=int-1,date-4,text-12,text-13,int-6,text-7,int-18&result-count=" + LISTCOUNT_program_today + "&result-page=1&sort-order=text-12:a,text-13:a,int-6:a";
		}
		else
		{
			// 月曜日～金曜日
			params = "service=program&search=_DATE/EQ/23000/" + checkDateString2 + " AND ((_INT/GE/21001/8 AND _INT/GE/21002/00) OR _INT/GT/21001/8)&show-results&result-info=all&result-format=xml&result-fields=int-1,date-4,text-12,text-13,int-6,text-7,int-18&result-count=" + LISTCOUNT_program_today + "&result-page=1&sort-order=text-12:a,text-13:a,int-6:a";
		}

        SearchIssueRequest(params, handleRightProgramColumn);
    }
    
    req = null;

}

function handleRightProgramColumn(totalhits, data, status_ok, responseMessage){

    if(!status_ok){
	    return false;
    }

    var names = new Stations();

	// 出力データ
	var outputData = "";

	for (var i = 0; i < data.length; i++) {
		// title（番組名）
		var titleData = getXmlNodeValue(data[i], "title");
		// text-7（放送局）
		var stationData = names.shortTextOf(getXmlNodeValue(data[i], "text-7"));
		var date = getXmlNodeDate(data[i], "date-4");
		var id = getXmlNodeInt(data[i], "int-18");

		////////// 以下データ設定 //////////
		if (i == 0)
		{
			outputData += "<h2 class=\"heading01\">" + checkDateString2 + "の番組</h2>";
            outputData += "<div class=\"programColumn\">";
            outputData += "<ul>";
		}
		outputData += "<li><a href='"+getProgramListPath(id, date)+"' title='"+titleData+"'>" + titleData + "</a>　(" + stationData + ")</li>";
	}
	if (data.length > 0)
	{
		outputData += "</ul>";
		outputData += "<p class=\"linkText01\"><a href='/program/result.html?d=" + checkDateString2 + "' title='一覧へ'>一覧へ</a></p>";
	}

	// データ設定
	document.getElementById('right_program_column').innerHTML = outputData;
}

//n日後、n日前の日付を求める
/**
 * 年月日と加算日からn日後、n日前を求める関数
 * year 年
 * month 月
 * day 日
 * addDays 加算日。マイナス指定でn日前も設定可能
 */
function computeDate(year, month, day, addDays) {
    var dt = new Date(year, month - 1, day);
    var baseSec = dt.getTime();
    var addSec = addDays * 86400000;//日数 * 1日のミリ秒数
    var targetSec = baseSec + addSec;
    dt.setTime(targetSec);
    return dt;
}

// DateをString型に
function dateString(year, month, day) {
	var strMonthZero = "";
	var strDayZero = "";
	if (month < 10)
	{
		strMonthZero = "0";
	}
	if (day < 10)
	{
		strDayZero = "0";
	}
    return year + "/" + strMonthZero + month + "/" + strDayZero + day;
}

// 曜日取得（日:0～土:6）
function getDay(year, month, day){
   var myWeekTbl = new Array( "日","月","火","水","木","金","土" );
   var myDate = new Date(year, month, day);
   var myWeek = myDate.getDay();
   return myWeek;
}

