///////////////////////////////////////////////
//
// Testing & Debugging Functions
//
//////////////////////////////////////////////

function getDTQuantity() {
	var agenda = document.getElementById('agenda');
	var dts = agenda.getElementsByTagName('dt');
	alert(dts.length);
	for (var i = 0; i < dts.length; i++) {
		alert(dts[i].getAttribute("id"));
	}
}


///////////////////////////////////////////////
//
// Helper Functions
//
//////////////////////////////////////////////

function insertAfter(newElement, targetElement) {
	var parent = targetElement.parentNode;
	if (parent.lastChild == targetElement) {
		parent.appendChild(newElement);
	} else {
		parent.insertBefore(newElement, targetElement.nextSibling);
	}
}


function createFullElement( elementName, classNames, elementText ) {
	var fullElement = document.createElement(elementName);
	// TODO: Handle multiple classnames.  Perhaps should be refactored out into a separate function
	fullElement.className = classNames;
	var fullElementText = document.createTextNode(elementText);
	fullElement.appendChild(fullElementText);
	
	return fullElement;
}

function addClass(target, classValue) {
 var pattern = new RegExp("(^| )" + classValue + "( |$)");
 if (!pattern.test(target.className)) {
   if (target.className === undefined) {
     target.className = classValue;
   }
   else {
     target.className += " " + classValue;
   }
 }
 
 return true;
}

function removeClass(target, classValue) {
 var removedClass = target.className;
 var pattern = new RegExp("(^| )" + classValue + "( |$)");

 removedClass = removedClass.replace(pattern, "$1");
 removedClass = removedClass.replace(/ $/, "");

 target.className = removedClass;

 return true;
}

function playingStatus(eucc) {
  var agg = document.getElementById(eucc);
  var tnn = agg.childNodes[2];
  insertAfter(PlayStatus, tnn);
  insertAfter(tnPadding, tnn);
}


///////////////////////////////////////////////
//
// Application Logic
//
//////////////////////////////////////////////


var currentVideoMarker;

var WatchButton = createFullElement( "span", "watchNow", "Watch Now");
var PlayStatus = createFullElement( "span", "play", "Currently Playing.");
var tnPadding = document.createTextNode(" ");

var OpenBlurbs = [];



function seekToMarker(iWhichMarker){
	if (!window.opera && navigator.userAgent.indexOf('MSIE') != -1) {
		if (iWhichMarker <= document.MediaPlayer1.MarkerCount) {
			document.MediaPlayer1.CurrentMarker = iWhichMarker;
		} else {  
			alert("This Marker doesn't exist.");
		}
    } else {
		return false;
    }
}

function toggleAgendas(itemID) {
	//debugger;
	//if (OpenBlurbs.shift(itemID) != itemID) { // || OpenBlurbs.length == 0
		OpenBlurbs.unshift(itemID);
	//}
	for (i in OpenBlurbs) {
		toggleAgendaBlock(OpenBlurbs[i]);
	}
	if (OpenBlurbs.length > 1) {
		OpenBlurbs.pop();
	}
}

function toggleAgendaBlock(itemID) {
	//debugger;

	var agendaItem = document.getElementById(itemID);
	if(agendaItem.className == "itemActive") {
		agendaItem.className = "itemInActive";
		if (!window.opera && navigator.userAgent.indexOf('MSIE') != -1) {
			if (agendaItem.childNodes[2].className == "watchNow") {
				var wn = agendaItem.childNodes[2];
				agendaItem.removeChild(wn);
			}
		}
	} else {
		agendaItem.className = "itemActive";
		if (!window.opera && navigator.userAgent.indexOf('MSIE') != -1) {
			var agendaHandle = document.getElementById(itemID);
			var timeNode = agendaHandle.childNodes[2];
			agendaHandle.insertBefore(WatchButton.cloneNode(true), timeNode);
			agendaHandle.childNodes[2].onclick = function() {
				var t = itemID;
				var tt = (parseInt(t.substring(6,9), 10)).toString();
				seekToMarker(tt);
			};
			agendaHandle.insertBefore(tnPadding, timeNode);
		}
	}
	
	if (document.getElementById(itemID + "blurb")) {
		var agendaBlurb = document.getElementById(itemID + "blurb");
		if (agendaBlurb.className == "blurbActive") {
			agendaBlurb.className = "blurbInActive";
		} else {
			agendaBlurb.className = "blurbActive";
		}
	}
}












