// JavaScript Document

eoch.top = function(){
	
	var ranking = ['news','vitapedia','rekishi','atsukihito','telemaru'];
	
	var chlist = [
		{id:"gruman",name:"グルマンの隠れ家",thum:"gruman/img/113/",img:"gruman/img/320/",xml:"gruman/xml/playlist.xml",url:"gruman/"},
		{id:"roots",name:"生まれたるは関西！",thum:"roots/img/113/",img:"roots/img/320/",xml:"roots/xml/playlist.xml",url:"roots/"},
		{id:"vitapedia",name:"ビタペディア",thum:"../vitapedia/img/99/",img:"../vitapedia/img/320/",xml:"../vitapedia/xml/playlist.xml",url:"../vitapedia/"},
		{id:"news",name:"KANSAIニュース",thum:"news/img/113/",img:"news/img/320/",xml:"news/xml/playlist.xml",url:"news/"},
		{id:"rekishi",name:"歴史ろまん紀行",thum:"rekishi/img/140/",img:"rekishi/img/320/",xml:"rekishi/xml/playlist.xml",url:"rekishi/"},
		{id:"atsukihito",name:"熱き人",thum:"atsukihito/img/113/",img:"atsukihito/img/320/",xml:"atsukihito/xml/playlist.xml",url:"atsukihito/"},
		{id:"sukima",name:"かんさいすきま情報社",thum:"sukima/img/113/",img:"sukima/img/320/",xml:"sukima/xml/playlist.xml",url:"sukima/"},
		{id:"telemaru",name:"テレ○情報局",thum:"telemaru/img/113/",img:"telemaru/img/320/",xml:"telemaru/xml/playlist.xml",url:"telemaru/"},
		{id:"tabikibun",name:"ぷらっと旅気分",thum:"tabikibun/img/113/",img:"tabikibun/img/320/",xml:"tabikibun/xml/playlist.xml",url:"tabikibun/"},
		{id:"machikado",name:"街角トレジャーハンター",thum:"machikado/img/113/",img:"machikado/img/320/",xml:"machikado/xml/playlist.xml",url:"machikado/"},
		{id:"japantech",name:"技術立国日本！",thum:"japantech/img/113/",img:"japantech/img/320/",xml:"japantech/xml/playlist.xml",url:"japantech/"},
		{id:"musicscene",name:"Music Scene",thum:"musicscene/img/113/",img:"musicscene/img/320/",xml:"musicscene/xml/playlist.xml",url:"musicscene/"},
		{id:"jss",name:"KANSAIジュニアサッカースタジアム-R！",thum:"img/jss/113/",img:"img/jss/320/",xml:"common/xml/jss.xml",url:"/jss/"},
		{id:"oishiomasse",name:"末成由美のおいしおまっせ!",thum:"img/oishiomasse/113/",img:"img/oishiomasse/320/",xml:"common/xml/oishiomasse.xml",url:"/oishiomasse/"},
		{id:"kids",name:"キッズキッチンにおいでよ！",thum:"kids/img/113/",img:"kids/img/320/",xml:"kids/xml/playlist.xml",url:"kids/"}
	];
	
	var intervalID = 0;
	var slideIID = 0;
	var listAc = 0;
	var listTa = 0;
	var autoTime = 1000 * 10;
	var listScrollHeight = 49 * 4;
	var news = [];
	var ch = [];
	var chComp = 0;
	
	E = {
		init : function(){
			$.ajax({
				url : "common/xml/present.xml",
				dataType : "xml",
				timeout : 1000*10,
				success : function(xml){$("#side_div").append($(xml).find("present").text());}
			});
			
			if (eoch.getCookie("his")) {
				var h = eoch.getCookie("his").split("$$");
				var s = "";
				for (i in h) {
					var a = h[i].split(",");
					var u = thumbSwich(a[2]);
					s += '<div><img src="' + u + '" width="46" height="35" />';
					s += '<h3><a href="' + a[1] + '">' + a[0] + '</a></h3>';
					s += '<span>視聴時間：' + a[3] + '</span></div>';
				}
				$("#history_block").append(s);
			} else {
				$("#history_block").append('<p id="no_data">現在視聴履歴がありません。</p>');
			}
			
			for (i in chlist) {
				ch[i] = new ChannelData(i);
			}
			
			eoch.setPageTop();
		},
		
		listOver : function(i){
			if (listAc == i) return;
			
			$(".on").removeClass("on").addClass("off");
			$("#li"+i).removeClass("off").addClass("on");
			
			$("#img_s").attr("src", ch[i].img + ch[i].fname);
			
			listAc = i;
			
			autoStop();
			autoStart();
		},
		
		listAutoNext : function(){
			var i = listAc;
			
			if (ch.length == i + 1) {
				i = 0;
				scrollTop(0);
			} else {
				++i;
			}
			
			if (i%4 == 0 && i != 0) {
				listDown(null);
			}
			
			$(".on").removeClass("on").addClass("off");
			$("#li"+ch[i].num).removeClass("off").addClass("on");
			
			autoStop();
			var img = $(document.createElement("img")).attr("id", "img_ov").css({zIndex:1}).bind("load", ovImgOnLoad);
			$("#trailer_img").append(img);
			img.attr("src", ch[i].img + ch[i].fname);
			
			listAc = i;
		}
	};
	
	function ovImgOnLoad(e){
		$("#img_s").fadeOut(500,function(){
			$("#img_s").unbind("load", ovImgOnLoad).remove();
			$("#img_ov").attr("id", "img_s").css({zIndex:100});
		});
		autoStart();
	}
	
	function chXMLComp(){
		
		ch.sort(function(a, b){
			if (b.so == a.so) {
				return ((b.so - b.num) - (a.so - a.num));
			} else {
				return (b.so - a.so);
			}
		});
		
		var t = '';
		var m = '';
		for (i in ch) {
			ch[i].num = i;
			ch[i].setup();
			t += ch[i].trailerData;
			if(i < 15) m += ch[i].listDate;
		}
		
		$("#trailer_list").append(t);
		$("#ch_list").append(m);
		$("#li0").removeClass("off").addClass("on");
		$("#img_s").attr("src", ch[0].img + ch[0].fname);
		
		$("#trailer_list").mouseover(autoStop).mouseout(autoStart);
		$("#trailer_list_up").click(listUp).mouseover(autoStop).mouseout(autoStart);
		$("#trailer_list_down").click(listDown).mouseover(autoStop).mouseout(autoStart);
		
		// ランキング
		var r = ranking;
		var ra = [];
		
		for (i in r) {
			for (a in ch){
				if (ch[a].id == r[i]) {
					ra.push(a);
					break;
				}
			}
		}
		
		var li = '';
		for (i in ra) {
			var e = ra[i];
			li += '<li id="r'+i+'">';
			li += '<img src="'+ch[e].thum+ch[e].fname+'" width="46" height="36" />';
			li += '<h3><a href="'+ch[e].url+'">'+ch[e].name+'</a></h3>';
			li += '<span>'+ch[e].date+'更新</span></li>';
		}
		$("#rank ol").append(li);
		
		autoStart();
	}
	
	function listUp(e){
		scrollTop(-listScrollHeight);
	}
	
	function listDown(e){
		scrollTop(listScrollHeight);
	}
	
	function scrollTop(s){
		var wh = $("#trailer_list").height();
		var sh = $("#trailer_list").attr("scrollHeight") - wh;
		var se = listTa + s;
		
		if (se > sh) {
			se = sh;
		} else if (se < 0) {
			se = 0;
		}
		
		if (s == 0) se = 0;
		
		E.listOver(Math.floor(se/49));
		
		listTa = se;
		$("#trailer_list").stop()
		.animate({scrollTop:se}, {duration:300, easing:"easeOutCubic"});
	}
	
	function autoStop(){
		clearInterval(intervalID);
		$("#img_s").stop();
		$("#img_s").unbind("load", ovImgOnLoad);
		if ($("#img_ov").attr("id") != undefined) {
			$("#img_s").remove();
			$("#img_ov").attr("id", "img_s").css({zIndex:100});
		}
	}
	
	function autoStart(){
		clearInterval(intervalID);
		intervalID = setInterval("eoch.top.listAutoNext();", autoTime);
	}
	
	function nextTpics(e){
		$("#topics_list").append($("#topics_list li:first"));
	}
	
	function thumbSwich(s){
		var u = "";
		var c = "";
		var n = s.split("/");
		n = n[n.length - 1].split(".");
		n = n[0].split("_");
		c = n[0].substr(0,n[0].length - 3);
		n = n[0].substr(n[0].length - 3);
		
		if (s.indexOf("vitapedia")>0) {
			u = "../vitapedia/img/99/" + n + ".jpg";
		} else if (s.indexOf("rekishi")>0) {
			u = "rekishi/img/140/" + n + ".jpg";
		} else if (s.indexOf("kansainow")>0) {
			u = "img/kansainow/113/" + n + ".jpg";
		} else if (s.indexOf("oishiomasse")>0) {
			u = "img/oishiomasse/113/" + n + ".jpg";
		} else if (s.indexOf("jss")>0) {
			u = "img/jss/113/" + n + ".jpg";
		} else {
			u = c + "/img/113/" + n + ".jpg";
		}
		
		return u;
	}
	
	var ChannelData = function(i) {
		this.initialize(i);
	};
	ChannelData.prototype = {
		num  :0,
		id   :"",
		name :"",
		thum :"",
		dat  :"",
		url  :"",
		img  :"",
		fname:"",
		date :"",
		trailerData:"",
		listDate:"",
		so   :0,
		xml  :"",
		initialize : function(i) {
			this.num = i;
			this.id = chlist[i].id;
			this.name = chlist[i].name;
			this.thum = chlist[i].thum;
			this.dat = chlist[i].xml;
			this.url = chlist[i].url;
			this.img = chlist[i].img;
			
			$.ajax({
				url : this.dat,
				dataType : "xml",
				timeout : 1000*10,
				success : this.onLoad
			});
		},
		
		onLoad : function(xml){
			var d = $(xml).find("playlist").attr("id");
			var n = 0;
			
			for (i in chlist) {
				if (chlist[i].id == d) {
					n = i;
					break;
				}
			}
			
			ch[n].date = $(xml).find("movie").eq(0).attr("update");
			var ss = ch[n].date.replace("年","/");
			ss = ss.replace("月","/");
			ss = ss.replace("日","");
			ch[n].so = Date.parse(ss);
			
			ch[n].xml = xml;
			
			++chComp;
			if (ch.length == chComp) chXMLComp();
		},
		
		setup : function(){
			var d = $(this.xml).find("movie").eq(0);
			var desc = $(this.xml).find("chdesc").text();
			var date = this.date;
			var pre = d.attr("present");
			var ne = d.attr("new");
			var up = d.attr("up");
			var img = d.find("img").text();
			var title = d.find("title").text();
			this.fname = img;
			
			var cht = '<div class="ch" id="chl_' + this.id + '">';
			cht += '<div class="ch_color c_'+this.id+'"></div>';
			cht += '<a href="'+this.url+'"class="ch_img">';
			cht += '<img src="'+this.thum+img+'" width="113" height="85" /><span>';
			cht += '<img src="common/img_top/bt_detail.gif" alt="詳細ページへ" width="76" height="17" /></span></a>';
			if (pre == "true") cht += '<img src="common/img/icon_ch_present.gif" alt="present" class="icon_present">';
			if (ne  == "true") cht += '<img src="common/img/icon_ch_new.gif" alt="new" class="icon_new">';
			if (up  == "true") cht += '<img src="common/img/icon_ch_up.gif" alt="up" class="icon_up">';
			cht += '<h3><a href="'+this.url+'">'+this.name+'</a></h3>';
			cht += '<p>'+desc+'</p><span class="ch_time">'+date+'更新</span></div>';
			this.listDate = cht;
			
			var li = '<div class="off" id="li' + this.num + '" onmouseover="eoch.top.listOver(' + this.num + ')">';
			li += '<img class="listsam" src="'+this.thum+img+'" />';
			li += '<h3><a href="'+this.url+'">'+this.name+'</a></h3>';
			li += '<p>'+desc+'</p>';
			li += '<a class="todetail" href="'+this.url+'"></a></div>';
			this.trailerData = li;
		}
	};
	
	return E;
}();

$(document).ready(function(){eoch.top.init();});
