// JavaScript Document
var msg_section = YAHOO.util.Dom.get("videolist_li");
var leftButton = YAHOO.util.Dom.get("leftButton");
var rightButton = YAHOO.util.Dom.get("rightButton");
//var vtitle = YAHOO.util.Dom.get("videoplayertitle");
var anno = YAHOO.util.Dom.get("annotation");
var isMSIE = /*@cc_on!@*/false;

YAHOO.util.Dom.setStyle("videolist-container", "background", "url('"+loadingImgPath+"') no-repeat center");


var showCompleteImage = function(imgElm) {
	if (imgElm.complete)
		YAHOO.util.Dom.setStyle(imgElm, "visibility", "visible");
	else
		window.setTimeout("showCompleteImage("+imgElm+")", 200);
}

var callbacks = {
	start: function() {
		for (i = 0; i < MaxItemsPerPage; i++)
			YAHOO.util.Dom.setStyle(thumbimgElm[i], "visibility", "hidden");
		YAHOO.util.Dom.setStyle("videolist-container", "background", "url('"+loadingImgPath+"') no-repeat center");
		YAHOO.util.Dom.setStyle("scroller", "display", "none");
		YAHOO.util.Dom.setStyle("leftButton", "visibility", "hidden");
		YAHOO.util.Dom.setStyle("rightButton", "visibility", "hidden");
	}, 
	complete: function() {
		YAHOO.util.Dom.setStyle("videolist-container", "background", "url()");
		YAHOO.util.Dom.setStyle("scroller", "display", "block");
		YAHOO.util.Dom.setStyle("leftButton", "visibility", "visible");
		YAHOO.util.Dom.setStyle("rightButton", "visibility", "visible");
	},
	success : function (o) {
		var m = [];
		try {
			m = YAHOO.lang.JSON.parse(o.responseText);
		} catch (x) {
			alert("JSON Parse failed!");
			return;
		}
		if (needInit) {
			for (var i = 0; i < m.length; i++) {
				if ((video == "" && image == "") || (video == unescape(m[i].video) && image == unescape(m[i].photo))) {
					//vtitle.innerHTML = YAHOO.util.Dom.get(m[i].type).innerHTML;
					// not needed for this page
					//if (m[i].type == "630pm")
					anno.innerHTML = m[i].body;
					createplayer(m[i].video,m[i].photo);
					video = unescape(m[i].video);
					image = unescape(m[i].photo);
					needInit = false;
					i = m.length;
				}
			}
		}
		if (needInit) {
			curPos += MaxItemsPerPage;
			if (m.length == MaxItemsPerPage) {
				YAHOO.util.Connect.asyncRequest('POST', JSONurl+'?from='+curPos+'&type='+program, callbacks);
			} else {
				//alert("找不到網址指定的新聞資料");
				video = "";
				image = "";
				//genLi(0, types[0]);
			}
		} else {
			for (var i = 0; i < m.length; i++) {
				YAHOO.util.Dom.setStyle(liElm[i], "visibility", "visible");
				liElm[i].className = m[i].type;
				if(i == 0)
					liElm[i].className += ' first';

				YAHOO.util.Dom.setStyle(thumbimgElm[i], "visibility", "hidden");
				thumbimgElm[i].src = m[i].thumbnail;
				YAHOO.util.Event.addListener(thumbimgElm[i], "load", function(e){
					YAHOO.util.Dom.setStyle(this, "visibility", "visible");
				}, false);
				if (isMSIE) showCompleteImage(thumbimgElm[i]);
				aimgElm[i].href = '?video='+m[i].video+'&image='+m[i].photo+"&program="+program;
				descdateElm[i].innerHTML = m[i].video_date;
				vdescElm[i].innerHTML = m[i].header;
				// not needed for this page
				//if (m[i].type == "630pm")
					//vdescElm[i].innerHTML = vdescElm[i].innerHTML.substring(0,18) + '...';
				//bodytextElm[i].innerHTML = m[i].body;
				
				if (image == unescape(m[i].photo)) {
					YAHOO.util.Dom.setStyle(watermarkdivElm[i], "background", "url()");
					thumbimgElm[i].className = "news_trans";
					playimgElm[i].className = "news_trans";
					spanElm[i].className = "news_trans";
					descdateElm[i].className = "news_trans descriptions_date";
					vdescElm[i].className = "news_trans descriptions";
				} else {
					YAHOO.util.Dom.setStyle(watermarkdivElm[i], "background", "url('"+loadingImgPath+"') no-repeat center");
					thumbimgElm[i].className = "";
					playimgElm[i].className = "";
					spanElm[i].className = "";
					descdateElm[i].className = "descriptions_date";
					vdescElm[i].className = "descriptions";
				}
			}
			YAHOO.util.Dom.setStyle(leftButton, "visibility", "visible");
			YAHOO.util.Dom.setStyle(rightButton, "visibility", "visible");
			if (i == MaxItemsPerPage) { // full page of MaxItemsPerPage news items
				if (curPos-MaxItemsPerPage >= 0) {
					leftButton.onclick = function(){genLi(curPos-MaxItemsPerPage, program)};
					rightButton.onclick = function(){genLi(curPos+MaxItemsPerPage, program)};
				} else { // beginning of list
					YAHOO.util.Dom.setStyle(leftButton, "visibility", "hidden");
					leftButton.onclick = function(){genLi(0, program)};
					rightButton.onclick = function(){genLi(MaxItemsPerPage, program)};
				}
			} else { // end of list
				// the list has less than MaxItemsPerPage items
				if (curPos == 0) YAHOO.util.Dom.setStyle(leftButton, "visibility", "hidden");
				YAHOO.util.Dom.setStyle(rightButton, "visibility", "hidden");
				for (; i < MaxItemsPerPage; i++) {
					YAHOO.util.Dom.setStyle(liElm[i], "visibility", "hidden");
				}
			}
		}
	},
	failure : function (o) {
		if (!YAHOO.util.Connect.isCallInProgress(o));
			//alert("Async call failed!");
	},
	timeout : 3000
}
YAHOO.util.Connect.startEvent.subscribe(callbacks.start); 
YAHOO.util.Connect.completeEvent.subscribe(callbacks.complete);
function genLi(liPos, newsType) {
	curPos = liPos;
	program = newsType;
	for (var i = 0; i < types.length; i++) {
		$("#video-tab-"+types[i]).removeClass('active');
		$("#page_content").removeClass(types[i]);
		if (types[i] == newsType)
		{
			$("#video-tab-"+types[i]).addClass('active');
			$("#page_content").addClass(types[i]);
		}
	}
	YAHOO.util.Connect.asyncRequest('POST', JSONurl+'?from='+liPos+'&type='+newsType, callbacks);
}

YAHOO.util.Event.onDOMReady(function(){
	for (i = 0; i < MaxItemsPerPage; i++) {
		liElm[i] = document.createElement('li');
		
		watermarkdivElm[i] = document.createElement('div');
		watermarkdivElm[i].className = 'watermark';
		YAHOO.util.Dom.setStyle(watermarkdivElm[i], "background-image", "url('"+loadingImgPath+"')");
		YAHOO.util.Dom.setStyle(watermarkdivElm[i], "background-repeat", "no-repeat");
		YAHOO.util.Dom.setStyle(watermarkdivElm[i], "background-position", "center");
		
		thumbimgElm[i] = document.createElement('img');
		watermarkdivElm[i].appendChild(thumbimgElm[i]);

		spanElm[i] = document.createElement('span');
		aimgElm[i] = document.createElement('a');
		aimgElm[i].href = 'javascript:void(0)';

		playimgElm[i] = document.createElement('img');
		playimgElm[i].src = playVidThumb;

		aimgElm[i].appendChild(playimgElm[i]);

		spanElm[i].appendChild(aimgElm[i]);
		watermarkdivElm[i].appendChild(spanElm[i]);

		liElm[i].appendChild(watermarkdivElm[i]);

		descdateElm[i] = document.createElement('div');
		descdateElm[i].className = 'descriptions_date';

		liElm[i].appendChild(descdateElm[i]);

		vdescElm[i] = document.createElement('div');
		vdescElm[i].className = 'descriptions';
		vdescElm[i].id = 'videodescription';

		liElm[i].appendChild(vdescElm[i]);

		bodytextElm[i] = document.createElement('div');
		bodytextElm[i].id = 'bodytext';

		liElm[i].appendChild(bodytextElm[i]);
		msg_section.appendChild(liElm[i]);
	}
	if (program != "")
		genLi(lastPos, program);
	else
		genLi(lastPos, types[0]);
});

