var program_base_url='/epg';
var xmlhttp;
var today_cnt=0;
var today_tid=setInterval("getToday()",2000);
var today='';
getToday();
var TargetElementID;
var prog_cnt=0;
var head_cnt=0;
var Program_tid;
var ProgH_tid;

// Get today for program.
function getToday() {
	today_cnt++;
	if( today_cnt>=10 ) {
		clearInterval(today_tid);
		today_cnt=0;
		return null;
	}
	try {
		xmlhttp = createXMLHttp();
		xmlhttp.onreadystatechange = setPageToday;
		filename=program_base_url+'/now_today.txt';
		xmlhttp.open('GET', filename);
		xmlhttp.send(null);
		clearInterval(today_tid);
		today_cnt=0;
		return 1;
	}catch(e){
		return null;
	}
}
function setPageToday() {
	try{
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
			today = xmlhttp.responseText;
		}
	}catch(e){
		return null;
	}
}


// Get Program HTML for iFrame Part
function prog_frame_change2(MODE,framename,page) {
	prog_cnt++;
	if( prog_cnt>=10 ) {
		clearInterval(Program_tid);
		prog_cnt=0;
		return null;
	}
	if( today ) {
		clearInterval(Program_tid);
		for( i=0; i<document.getElementsByTagName("IFRAME").length; i++ ) {
			obj = document.getElementsByTagName("IFRAME")[i];
			if( obj.name == framename ) {
				if( MODE == 'TODAY' ) {
					obj.src = program_base_url+'/today_'+today+'.html';
				} else {
					obj.src = program_base_url+'/program_'+today+'_'+page+'.html';
				}
			}
		}
		return 1;
	} else {
		return null;
	}
}


// Get Program DaysHeader HTML
function program_head_change(page,HeadDivID) {
	head_cnt++;
	TargetElementID=HeadDivID;
	if( head_cnt>=10 ) {
		clearInterval(ProgH_tid);
		head_cnt=0;
		return null;
	}
	if( today ) {
		try{
			filename = program_base_url+'/days_header_'+today+'_'+page+'.html';
			xmlhttp2=createXMLHttp();
			xmlhttp2.onreadystatechange = setPageProghead;
			xmlhttp2.open('GET', filename);
			xmlhttp2.send(null);
			clearInterval(ProgH_tid);
			prog_cnt=0;
			return 1;
		}catch(e){
			if( head_cnt>=10 ) {
				clearInterval(ProgH_tid);
				head_cnt=0;
			}
			return null;
		}
	} else {
		return null;
	}
}
function setPageProghead() {
	try{
		if (xmlhttp2.readyState == 4 && xmlhttp2.status == 200){
			document.getElementById(TargetElementID).innerHTML = xmlhttp2.responseText;
		}
	}catch(e){
		return null;
	}
}


// Get Program HTML
function getPage(pageURL,HeadDivID,ProgFrameName) {
	try{
		Program_tid=setInterval("prog_frame_change2('NOMAL','"+ProgFrameName+"','"+pageURL+"')",1000);
		prog_frame_change2('NOMAL',ProgFrameName,pageURL);
		ProgH_tid=setInterval("program_head_change('"+pageURL+"','"+HeadDivID+"')",1000);
		program_head_change(pageURL,HeadDivID);
	}catch(e){
		return null;
	}
}

// Get TodayProgram HTML
function prog_frame_change(MODE,ProgFrameName,page) {
	try{
		Program_tid=setInterval("prog_frame_change2('TODAY','"+ProgFrameName+"','')",1000);
		prog_frame_change2('TODAY',ProgFrameName,'');
	}catch(e){
		return null;
	}
}


// XMLHttpsオブジェクト作成
function createXMLHttp() {
	try {
		return new ActiveXObject ("Microsoft.XMLHTTP");
	}catch(e){
		try {
			return new XMLHttpRequest();
		}catch(e) {
			return null;
		}
	}
	return null;
}
function setPageData(SetTarget) {
	try{
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
			SetTarget = xmlhttp.responseText;
		}
	}catch(e){
		return null;
	}
}


// set scroll by the current time.
function ProgScrlTime(TAG_TARGET) {
	var target;
	var target_name;
	var str;
	var i,j;
	var dtNow = new Date;

	// set & read date
	var nYear = dtNow.getFullYear();
	var nMon  = dtNow.getMonth()+1;
	var nDay  = dtNow.getDate();
	if( nMon < 10 ) { nMon = '0'+nMon; }
	if( nDay < 10 ) { nDay = '0'+nDay; }
	var strDate = String(nYear) + String(nMon) + String(nDay);
	var day='0';
	for( i=0; i<document.getElementsByTagName("DIV").length; i++ ) {
		str = document.getElementsByTagName("DIV")[i].id;
		if( str.match(/^DATE_(\d+)$/) ){
			day = RegExp.$1;
			break;
		}
	}
	if( day == '0' ) {
		day = strDate;
	}

	// set & read time
	var nHour = dtNow.getHours();
	var nMinutes = dtNow.getMinutes();
	var strMin;
	if( Number(day) < Number(strDate) ) {
		nHour += 24;
	}
	if( nMinutes < 10 ) {
		strMin = String(nHour) + '0' + String(nMinutes);
	} else {
		strMin = String(nHour) + String(nMinutes);
	}

	// time target search
	for( i=0; i<document.getElementsByTagName(TAG_TARGET).length; i++ ) {
		if( document.getElementsByTagName(TAG_TARGET)[i].name ) {
			str = document.getElementsByTagName(TAG_TARGET)[i].name;
		} else {
			str = document.getElementsByTagName(TAG_TARGET)[i].id;
		}
		if( str.match(/^TIME_(\d+)$/) ){
			j = RegExp.$1;
			if( target ) {
				if( Number(j) <= Number(strMin) ) {
					target = document.getElementsByTagName(TAG_TARGET)[i].offsetTop;
					target_name = str;
				}
			} else {
				target = document.getElementsByTagName(TAG_TARGET)[i].offsetTop;
				target_name = str;
			}
		}
	}

	// scroll
	if( target ) {
		window.scrollTo(0,target);
	}
}

function prog_swapImage() { //v3.0
	var i,j=0,x,a=prog_swapImage.arguments; document.prog_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	if ((x=prog_findObj(a[i]))!=null){document.prog_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function prog_swapImgRestore() { //v3.0
	var i,x,a=document.prog_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function prog_preloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.prog_p) d.prog_p=new Array();
	var i,j=d.prog_p.length,a=prog_preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.prog_p[j]=new Image; d.prog_p[j++].src=a[i];}}
}

function prog_findObj(n, d) { //v4.01
	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=prog_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n); return x;
}
