﻿/***** Press Conference *****/

function voice_promo()
{
	// clear segment interval
	if(document.timecode_interval) clearInterval(document.timecode_interval);

	// start playing
	var url = "http://cms027.sv1.qcn3.movenetworks.com/cms/publish/vod/vodclip/byutv/31169.qvt";
	MN.TP.qmp.Play(url);

	// hide speaker open button
	var seg_speaker = document.getElementById("speaker");
	seg_speaker.style.visibility = "hidden";
	// hide seg list
	var seg_list = document.getElementById("segments1");
	seg_list.style.visibility = "hidden";
	// hide description
	if (document.cur_detail) document.cur_detail.style.visibility = "hidden";
	// set title
	document.getElementById("divDate").innerHTML = "One Voice - Coming to BYU Television in 2010";

	// set now playing
	if (document.cur_h3) {
	    document.cur_h3.innerHTML = document.cur_h3.short_date;
	    document.cur_h3.style.color = "#fff";
	}
	// hide seg list
	var seg_list2 = document.getElementById("segments");
	seg_list2.style.visibility = "hidden";

	// hide episode list
	var seg_list3 = document.getElementById("episode");
	seg_list3.style.visibility = "hidden";

}
function generations_promo() {
    // clear segment interval
    if (document.timecode_interval) clearInterval(document.timecode_interval);

    // start playing
    var url = "http://cms027.sv1.qcn3.movenetworks.com/cms/publish/vod/vodclip/byutv/31199.qvt";
    MN.TP.qmp.Play(url);

    // hide speaker open button
    var seg_speaker = document.getElementById("speaker");
    seg_speaker.style.visibility = "hidden";
    // hide seg list
    var seg_list = document.getElementById("segments1");
    seg_list.style.visibility = "hidden";
    // hide description
    if (document.cur_detail) document.cur_detail.style.visibility = "hidden";
    // set title
    document.getElementById("divDate").innerHTML = "The Generation's Project - Coming to BYU Television in 2010";

    // set now playing
    if (document.cur_h3) {
        document.cur_h3.innerHTML = document.cur_h3.short_date;
        document.cur_h3.style.color = "#fff";
    }
    // hide seg list
    var seg_list2 = document.getElementById("segments");
    seg_list2.style.visibility = "hidden";
    
    // hide episode list
    var seg_list3 = document.getElementById("episode");
    seg_list3.style.visibility = "hidden";
    
    
}
function messiah_promo() {
    // clear segment interval
    if (document.timecode_interval) clearInterval(document.timecode_interval);

    // start playing
    var url = "http://cms027.sv1.qcn3.movenetworks.com/cms/publish/vod/vodclip/byutv/31175.qvt";
    MN.TP.qmp.Play(url);

    // hide speaker open button
    var seg_speaker = document.getElementById("speaker");
    seg_speaker.style.visibility = "hidden";
    // hide seg list
    var seg_list = document.getElementById("segments1");
    seg_list.style.visibility = "hidden";
    // hide description
    if (document.cur_detail) document.cur_detail.style.visibility = "hidden";
    // set title
    document.getElementById("divDate").innerHTML = "Messiah - Coming to BYU Television in 2010";

    // set now playing
    if (document.cur_h3) {
        document.cur_h3.innerHTML = document.cur_h3.short_date;
        document.cur_h3.style.color = "#fff";
    }
    // hide seg list
    var seg_list2 = document.getElementById("segments");
    seg_list2.style.visibility = "hidden";

    // hide episode list
    var seg_list3 = document.getElementById("episode");
    seg_list3.style.visibility = "hidden";

}
/***** Live QVT URL *****/

function live_url() {
    if (document.getElementById('segments1').style.top == '566px') {
        toggleDivOL('segments1');
    }    
	var now = new Date();
	var year = now.getYear();
	var monthnumber = now.getMonth() + 1;
	var daynumber = now.getDate();
	var yeartext = (year.toString()).substr(2, 2);
	var monthtext = (monthnumber.toString());
	var daytext = (daynumber.toString());
	if(yeartext.length == 1)
	{
		yeartext = '0' + yeartext;
	}

	if(monthtext.length == 1)
	{
		monthtext = '0' + monthtext;
	}

	if(daytext.length == 1)
	{
		daytext = '0' + daytext;
	}

	var qvtfile = "http://cms027.sv1.qcn3.movenetworks.com/cms/publish/feed/feed/byutv/21/today.qvt";
	//return qvtfile;
	MN.TP.qmp.Play(qvtfile);
	// hide speaker open button
	var seg_speaker = document.getElementById("speaker");
	seg_speaker.style.visibility = "hidden";
	// hide seg list
	var seg_list = document.getElementById("segments1");
	seg_list.style.visibility = "hidden";
	// hide seg list
	var seg_list2 = document.getElementById("segments");
	seg_list.style.visibility = "hidden";

	// hide description
	if (document.cur_detail) document.cur_detail.style.visibility = "hidden";

	// set title
	document.getElementById("divDate").innerHTML = "Live TV";

	// set now playing
	if (document.cur_h3) {
	    document.cur_h3.innerHTML = document.cur_h3.short_date;
	    document.cur_h3.style.color = "#fff";
	}
	/*
	MN.TP.CONFIG = {
		"channels": [
			{
				"url": qvtfile,
				"contentType": "live",
				"EPG": 30,
				"aspectAdjust": false
			}
		]
		}
	*/
}

/***** Init *****/
function append_functions(f1, f2)
{
	return function()
	{
		if(f1) f1();
		if(f2) f2();
	};
}

//window.onload = append_functions(window.onload, hide_live);

/*function hide_live() {
    var play_live = document.getElementById("gc_hid").getElementsByTagName("input")[0].value;

	if(play_live != "1")
	{
		var live_ep = document.getElementById("imgLive").getElementsByTagName("li")[0];
		live_ep.style.display = "none";
	}
	else
	{
		var seg_list = document.getElementById("segments");
		seg_list.style.visibility = "hidden";
	}
}*/

function gc_load()
{	
	if(window.XMLHttpRequest) document.xmlDoc = new XMLHttpRequest();
	else document.xmlDoc = new ActiveXObject("Microsoft.XMLHTTP");

	document.xmlDoc.onreadystatechange = xml_ready;
	document.xmlDoc.open("GET", "gcData.xml?timestamp=" + new Date().getTime(), true);
	document.xmlDoc.send(null);
}

function xml_ready()
{
	if(document.xmlDoc.readyState != 4 || document.xmlDoc.status != 200) return;

	document.xmlDoc = document.xmlDoc.responseXML.documentElement;

	var play_live = document.getElementById("gc_hid").getElementsByTagName("input")[0].value;
	//if(play_live == "1") play_episode(0);
	//	else 
play_episode(0);
}

/***** Episodes *****/
function play_episode(ep_index)
{
	// clear segment interval
	if(document.timecode_interval) clearInterval(document.timecode_interval);
	
	// start playing
	var url = document.xmlDoc.getElementsByTagName("episode")[ep_index].attributes[2].nodeValue;
	//if(ep_index > 0) 
	MN.TP.qmp.Play(url);
//	else MN.TP.qmp.Play(live_url());

	// populate segments when episode starts playing
	document.getElementById("segments").innerHTML = "";
	document.to_populate = ep_index;
	MN.Event.Observe(MN.TP.qmp, 'PlayStateChanged', populate_segments);

	// set interface
	set_title(ep_index);
	set_now_playing(ep_index);

	// show description
	if(document.cur_detail) document.cur_detail.style.visibility = "hidden";
	var episodes = document.getElementById("episode_container").getElementsByTagName("li");
	var detail = episodes[ep_index].getElementsByTagName("div")[1];
	detail.style.visibility = "visible";
	document.cur_detail = detail;
	// hide speaker open button
	var seg_speaker = document.getElementById("speaker");
	seg_speaker.style.visibility = "visible";
	// hide seg list
	var seg_list = document.getElementById("segments1");
	seg_list.style.visibility = "visible";
	// hide seg list
	var seg_list2 = document.getElementById("segments");
	seg_list.style.visibility = "visible";
}

function set_title(ep_index)
{
	var ep_node = document.xmlDoc.getElementsByTagName("episode")[ep_index];
	var date_text = ep_node.attributes[1].nodeValue;
	document.getElementById("divDate").innerHTML = "" + date_text;
}

function set_now_playing(ep_index)
{
	if(document.cur_h3)
	{
		document.cur_h3.innerHTML = document.cur_h3.short_date;
		document.cur_h3.style.color = "#fff";
	}
	
	var episodes = document.getElementById("episode_container").getElementsByTagName("li");
	var title = episodes[ep_index].getElementsByTagName("h3")[0];
	title.short_date = title.innerHTML;
	title.style.color = "#778791";
	document.cur_h3 = title;
}

/***** Segments *****/
function populate_segments()
{
	if(MN.TP.qmp.CurrentPlayState() != 3) return;
	MN.Event.StopObserving(MN.TP.qmp, 'PlayStateChanged', populate_segments);

	var index = document.to_populate;
	var segments = document.xmlDoc.getElementsByTagName("episode")[index].getElementsByTagName("segment");
	var seg_list = document.getElementById("segments");

	if(segments.length < 1)
	{
		seg_list.style.visibility = "hidden";
		return;
	}
	else
		seg_list.style.visibility = "visible";
	for(var i = 0; i < segments.length; i++)
	{
		var seg = document.createElement("li");
		seg_list.appendChild(seg);
		seg.innerHTML = "<p onclick='jump_to_segment(" + i + ")'>" + segments[i].attributes[0].nodeValue + "</p>";
		
		var seg_details = "<div class='description_container'><p class='seg_description'>";
		var reporter_node = segments[i].getElementsByTagName("reporter")[0].childNodes[0];
		if(reporter_node) seg_details += "<em>" + reporter_node.nodeValue + "</em><br /><br />";
		
		var descrip = segments[i].getElementsByTagName("description")[0].childNodes[0].nodeValue;
		seg_details += "<span>" + descrip;
		
		var link_node = segments[i].getElementsByTagName("link")[0].childNodes[0];
		if(link_node)
			seg_details += "<br /><br /><a href='" + link_node.nodeValue + "' target='_blank'>Get More Talks...</a>";
		seg_details += "</span></p></div>";
		seg.innerHTML += seg_details;
		
		seg.timecode = segments[i].attributes[1].nodeValue;
		//seg.setAttribute("onclick", "jump_to_segment(" + i + ")");
		
		var details = seg.getElementsByTagName("div")[0];
		details.real_height = seg.offsetHeight - 10;
		details.style.height = "0px";
	}

	// setup to display first segment
	document.next_seg = 0;
	show_next_seg()
}

function jump_to_segment(index)
{
	// weird 'mouse event' bug
	if(isNaN(index)) return;
	
	var segments = document.getElementById("segments").getElementsByTagName("li");
	MN.TP.qmp.CurrentPosition(segments[index].timecode);
	set_seg(index);
}

function check_timecode()
{
	var next_timecode = document.getElementById("segments").getElementsByTagName("li")[document.cur_seg * 1 + 1].timecode;
	if(MN.TP.qmp.CurrentPosition() > next_timecode * 1 + 1)
		set_seg(document.cur_seg * 1 + 1);
}

function set_seg(index)
{
	clearInterval(document.timecode_interval);
	document.next_seg = index;

	// hide the current segment
	var segments = document.getElementById("segments").getElementsByTagName("li");
	cur_seg = segments[document.cur_seg];
	
	cur_seg.style.backgroundColor = "";
	cur_seg.onclick = jump_to_segment;
	cur_seg.style.cursor = "pointer";

	var title = cur_seg.getElementsByTagName("p")[0];
	title.style.fontWeight = "";

	var descrip = cur_seg.getElementsByTagName("div")[0];

	// animate closed
	var myAnim = new YAHOO.util.Anim(descrip);
	myAnim.attributes.height = { to: 0 };
	myAnim.duration = .4;
	myAnim.onComplete.subscribe(show_next_seg);
	myAnim.animate();
}

function show_next_seg()
{
	var segments = document.getElementById("segments").getElementsByTagName("li");
	seg = segments[document.next_seg];

	seg.style.backgroundColor = "#ffffff";
	seg.onclick = null;
	seg.style.cursor = "default";

	var title = seg.getElementsByTagName("p")[0];
	title.style.fontWeight = "bold";

	var descrip = seg.getElementsByTagName("div")[0];

	// animate open
	var myAnim = new YAHOO.util.Anim(descrip);
	myAnim.attributes.height = { to: descrip.real_height };
	myAnim.duration = .4;
	myAnim.animate();
	
	
	// start checking
	document.cur_seg = document.next_seg;
	if(document.next_seg < segments.length - 1)
		document.timecode_interval = setInterval("check_timecode()", 1000);
}

/***** Next/Prev *****/
function play_prev()
{
	if(document.cur_seg < 1) return;
	jump_to_segment(document.cur_seg - 1);
}


function play_next()
{
	var length = document.getElementById("segments").getElementsByTagName("li").length;
	if(document.cur_seg >= length - 1) return;
	jump_to_segment(document.cur_seg + 1);
}
function toggleDivOL(elemID) {
    var elem = document.getElementById(elemID);

    if (elem.style.top != '307px') {
        elem.style.position = 'absolute';
        elem.style.right = '358px';
        elem.style.top = '307px';
        document.getElementById("popImage").src = "images/closed_btn.png";
    }
    else {
        elem.style.position = 'absolute';
        elem.style.right = '358px';
        elem.style.top = '593px';
        document.getElementById("popImage").src = "images/open_btn.png";
    }
}
/*
function prev_seg() {var index = cur_seg.index - 1;if(index < 0) return;var seg = document.getElementById("segments").getElementsByTagName("li")[index];MN.TP.qmp.CurrentPosition(seg.timecode);}
function next_seg() {var index = cur_seg.index + 1;var length = document.getElementById("segments").getElementsByTagName("li").length;if(index > length-1) return;var seg = document.getElementById("segments").getElementsByTagName("li")[index];MN.TP.qmp.CurrentPosition(seg.timecode);}
*/