<!--
var MediaPlayer = {

	FlashMovieId: "objFlashMediaResource",

	FlashExpressInstallPath: "",

	FlashMoviePath: "",

	PlayerVolumePct: new Array(),

	Command: function(ctrlId, commandName, params) {

		var flashPlayerId = ctrlId + "_" + MediaPlayer.FlashMovieId;
		var flashPlayer = byId(flashPlayerId);
		var result = null;

		if (flashPlayer) {
			result = eval("byId('" + flashPlayerId + "')." + commandName + "(" + (params ? params : "") + ");");
		} else {
			alert([flashPlayerId, commandName, params]);
		}

		return result;

	},


	// Converts the time format from hh:mm:ss to mm:ss
	ConvertTimeFormat: function(timeStr) {

		var result = timeStr;
		var fmtRe = new RegExp("(\\d+):(\\d+):(\\d+)", "gi");
		var itms = fmtRe.exec(timeStr);

		if ((itms != null) && (itms.length > 0)) {
			result = eval("(" + itms[1] + " * 60) + " + itms[2]) + ":" + itms[3];
		}

		return result;

	},


	Init: function(ctrlId) {

		var volumePct = MediaPlayer.Command(ctrlId, "getVolumePercent");

		if (!volumePct) {
			volumePct = "50";
		}

		MediaPlayer.PositionUpdateCallback(ctrlId, "0");
		MediaPlayer.VolumeUpdateCallback(ctrlId, volumePct);

	},


	Seek: function(ctrlId, evt) {

		var srcElt = (evt.srcElement ? evt.srcElement : evt.originalTarget);
		var evtOffsetX = (evt.offsetX ? evt.offsetX : (evt.layerX - evt.originalTarget.offsetLeft));

		// We want to be sure we'll be taking the size of the total.
		while ((srcElt != null) && (srcElt.id != (ctrlId + "_lblProgressTotal"))) {
			srcElt = srcElt.parentNode;
		}

		if (srcElt != null) {
			MediaPlayer.Command(ctrlId, "setPositionPercent", Math.round(100 * evtOffsetX / srcElt.offsetWidth));
		}

	},


	SetVolume: function(ctrlId, evt) {

		var srcElt = (evt.srcElement ? evt.srcElement : evt.target);
		var evtOffsetX = (evt.offsetX ? evt.offsetX : (evt.layerX - evt.originalTarget.offsetLeft));
		var pct = 0;

		// We want to be sure we'll be taking the size of the total.
		while ((srcElt != null) && (srcElt.id != (ctrlId + "_lblVolumeTotal"))) {
			srcElt = srcElt.parentNode;
		}

		pct = Math.round(100 * evtOffsetX / srcElt.offsetWidth);

		MediaPlayer.Command(ctrlId, "setVolumePercent", pct);
		MediaPlayer.VolumeUpdateCallback(ctrlId, pct);

	},


	// Changes the volume by an amount (as opposed to "to an amount").
	SetVolumeDiffPct: function(ctrlId, pctDiff) {

		var volumePnl = byId(ctrlId + "_lblVolume");
		var currentVol = 0;

		if (MediaPlayer.PlayerVolumePct[ctrlId]) {
			currentVol = MediaPlayer.PlayerVolumePct[ctrlId];
		}

		try {
			// Set the volume
			MediaPlayer.SetVolumePct(ctrlId, Math.min(100, Math.max(0, currentVol + pctDiff)));
		} catch (e) {}

	},


	SetVolumePct: function(ctrlId, pct) {
		// Set the volume
		MediaPlayer.Command(ctrlId, "setVolumePercent", pct);
		MediaPlayer.VolumeUpdateCallback(ctrlId, pct);
	},

    
	ShowFile: function(ctrlId, varName, varValue, evt, startPaused) {

		if (ctrlId != "") {

			var flashvars = {};
			var params = {};
			var attributes = {};
			var slideShowWrapper = byId(ctrlId + "_pnlSlideShowContainer");
			var slideShowActualContainerId = ctrlId + "_pnlSlideShow";
			var srcElt = (evt.srcElement ? evt.srcElement : evt.target);
			var height = "225";

			// alert([flashVarKey, fileFlashVars.replace(flashVarKey + "=", "")]);
			eval("flashvars." + varName + " = \"" + varValue + "\"");
			flashvars.positionUpdateCallback = "MediaPlayer.PositionUpdateCallback";
			flashvars.flashInitCallback = "MediaPlayer.Init";
			flashvars.playerId = ctrlId;
			// flashvars.debugMode = true;
			params.allowFullScreen = true;

			if (typeof(startPaused) != 'undefined') {
				flashvars.pausedVideo = "true";
			}

			attributes.id = ctrlId + "_" + MediaPlayer.FlashMovieId;

			if (varName.toLowerCase() == "audiofile") {
				height = "0";
				slideShowWrapper.style.height = "";
			}

			slideShowWrapper.style.display = "";
			slideShowWrapper.innerHTML = "<div id=\"" + slideShowActualContainerId + "\"></div>";
			swfobject.embedSWF(MediaPlayer.FlashMoviePath, slideShowActualContainerId, "300", height, "9.0.0", MediaPlayer.FlashExpressInstallPath, flashvars, params, attributes);
			//slideShowWrapper.scrollIntoView();

			// Should we show the audio and video controls or the slideshow ones?
			if (varName.toLowerCase() == "xmlfile") {
				byId(ctrlId + "_lblAudioVideoControls").style.display = "none";
				byId(ctrlId + "_pnlSlideShowControls").style.display = "";
				byId(ctrlId + "_lblVolume").style.display = "none";
				byId(ctrlId + "_lblProgressTotal").style.display = "none";
				byId(ctrlId + "_lblTime").style.display = "none";
			} else {
				byId(ctrlId + "_lblAudioVideoControls").style.display = "";
				byId(ctrlId + "_pnlSlideShowControls").style.display = "none";
				byId(ctrlId + "_lblVolume").style.display = "";
				byId(ctrlId + "_lblProgressTotal").style.display = "";
				byId(ctrlId + "_lblTime").style.display = "";
			}

			byId(ctrlId + "_pnlControls").style.display = "";

			// Look for the table row to select
			while ((srcElt != null) && (srcElt.tagName.toLowerCase() != "tr")) {
				srcElt = srcElt.parentNode;
			}

			if (srcElt != null) {

				var siblings = srcElt.parentNode.getElementsByTagName("tr");

				// Unselect them all
				for (var i = 0; i < siblings.length; i++) {
					siblings[i].className = siblings[i].className.replace(/\bselected\b/gi, "");
				}

				srcElt.className += " selected";

			}

		}

	},


	PositionUpdateCallback: function(ctrlId, pct) {
		var flashPlayerId = ctrlId + "_" + MediaPlayer.FlashMovieId;
		var flashPlayer = byId(flashPlayerId);
		var div = byId(ctrlId + "_lblProgressIndicator");
		div.style.width = Math.round(pct * 100) / 100 + "%";
		byId(ctrlId + "_lblTime").innerHTML = MediaPlayer.ConvertTimeFormat(flashPlayer.getProgress()) + " - " + MediaPlayer.ConvertTimeFormat(flashPlayer.getTotal());
	},


	VolumeUpdateCallback: function(ctrlId, pct) {

		var volumePnl = byId(ctrlId + "_lblVolume");
		var links = volumePnl.getElementsByTagName("a");

		// Set the volume
		MediaPlayer.PlayerVolumePct[ctrlId] = pct;
		// volumePnl.volumePct = pct;

		// Update the links
		for (var i = 1; i < (links.length - 1); i++) {
			links[i].className = links[i].className.replace("highlighted", "");
			if ((100 * (i / (links.length - 2))) <= pct) {
				links[i].className += " highlighted";
			}
		}

	}

};

var MediaOptions = {

	FlashMovieContainerId: "",
	FlashMoviePath: "",

	Init: function(listControlId) {

		if (MediaOptions.FlashMovieContainerId != "") {

			if ((ShowcaseMediaList[listControlId] != null) && (ShowcaseMediaList[listControlId].length > 0)) {

				var flashvars = {};
				var params = {};
				var attributes = {};
				var yearTypes = new Array(); // For each year, the list of types.
				var yearRe = /\d+\/\d+\/(\d+)/gi;
				var infoFlashVar = "";

				flashvars.setFilterCallback = "MediaOptions.Filter";
				flashvars.listId = listControlId;

				// Collect the data
				for (var i = 0; i < ShowcaseMediaList[listControlId].length; i++) {

					var obj = ShowcaseMediaList[listControlId][i];
					var year = parseInt(obj.Date.substr(obj.Date.lastIndexOf("/") + 1));
					var key = year + ":";
					var objTags = obj.Tags.split(/[^\w]+/gi); // Only take letters and numbers

					if (yearTypes[key] == null) {
						yearTypes[key] = new Array();
					}

					if (objTags != null) {
						for (var j = 0; j < objTags.length; j++) {

							var value = obj.Type + "-" + objTags[j];

							// Only add it once
							if (("" + yearTypes[key]).indexOf(value) < 0) {
								yearTypes[key].push(value);
							}

						}
					} else {
						yearTypes[key].push(obj.Type);
					}

                    

				}

				for (k in yearTypes) {
					if (infoFlashVar != "") {
						infoFlashVar += ";";
					}
					infoFlashVar += k + yearTypes[k];
				}

				flashvars.yearList = infoFlashVar;
                    
                // Show the flash movie.
				swfobject.embedSWF(MediaOptions.FlashMoviePath, MediaOptions.FlashMovieContainerId, "300", "68", "9.0.0", MediaPlayer.FlashExpressInstallPath, flashvars, params, attributes);
               
			} else {
				byId(MediaOptions.FlashMovieContainerId).style.display = "none";
			}

		}

	},


	// Filters the list
	Filter: function(listControlId, year, selectedTypes, selectedTag) {

		if (ShowcaseMediaList[listControlId] != null) {
            
            var firstVisibleEl = "";
            
			// Go through all the rows, and show only the ones that are acceptable.
			for (var i = 0; i < ShowcaseMediaList[listControlId].length; i++) {

				var obj = ShowcaseMediaList[listControlId][i];
				var show = false;

				if ((obj.Date.indexOf("/" + year) >= 0) &&
					((selectedTypes == "") || eval("/\b?" + obj.Type + "\b?/gi.test(\"" + selectedTypes + "\");")) &&
					((selectedTag == "") || eval("/\b?" + selectedTag + "\b?/gi.test(\"" + obj.Tags + "\");"))) {
					byId(obj.RowId).style.display = "";

                    if(firstVisibleEl == "" && (obj.Type == "SlideShow" || obj.Type == "Video")){
                        firstVisibleEl = byId(obj.RowId);                       
                    } 
					
				} else {
					byId(obj.RowId).style.display = "none";
				}

			}
			
			if (firstVisibleEl != "") {
			    // Play first content visible
				// Get the element vars from the onlcick event:
				var clickValue = firstVisibleEl.attributes['onclick'].value;
				var temparr = clickValue.split("'");
				var ctrlId = temparr[1];
				var varName = temparr[3];
				var varValue = temparr[5];
				MediaPlayer.ShowFile(ctrlId, varName, varValue, 'click', 1);
				//setTimeout("MediaPlayer.ShowFile('"+ctrlId+"', '"+varName+"', '"+varValue+"', 'click', 1);", 1000);
			}

		}

	}

};
//-->
