	/*
		Designed and written by A. Taylor		
		Licensed to 'iMediaLibrary.com - United Kingdom'		
		(c) Copyright A.Taylor 2006 - 2010
		All rights reserved.

		Duplication, in whole or part is expressly forbidden.
		To report infringement contact:
		+44 (0)208 373 2361
		legal@SounndsOrange.com
	
		Version 2.0
		Last modified 21/04/2010
	*/
	
	// <![CDATA[
	
	// vars
		var jsReady  	= true;
		var lastPlay 	= 0;
		var lastClick	= "stop";
		var scrollStep	= 3;
		var autoStep 	= 106;
		var timerLeft	= "";
		var timerRight	= "";
		var lastImage	= 0;
		var lastLiveSld	= null;
		var seekVideo	= false;
		if (is_live)
		{
			var videoLen	= "LIVE";
		} else {
			var videoLen	= "00:00:00";
		}
		
		var playbackLen	= 0;
		var isPosDrag	= false;
		var isNowPlaying= true;
		var leftLimit 	= 0;
		var rightLimit	= 248;
		var DragHandler = {
		// private property.
			_oElem : null,
	 
		// public method. Attach drag handler to an element.
			attach : function(oElem) 
			{
				oElem.onmousedown = DragHandler._dragBegin;
		 
				// callbacks
				oElem.dragBegin = new Function();
				oElem.drag 		= new Function();
				oElem.dragEnd 	= new Function();
		 
				return oElem;
			},
	 
		// private method. Begin drag process.
			_dragBegin : function(e) 
			{
				isPosDrag = true;
				var oElem = DragHandler._oElem = this;
		 
				if (isNaN(parseInt(oElem.style.left))) 	{ oElem.style.left = '0px'; }
				if (isNaN(parseInt(oElem.style.top))) 	{ oElem.style.top = '0px'; }
		 
				var x = parseInt(oElem.style.left);
				var y = parseInt(oElem.style.top);
		 
				e = e ? e : window.event;
				
				oElem.mouseX = e.clientX;
				oElem.mouseY = e.clientY;
				oElem.dragBegin(oElem, x, y);
		 
				document.onmousemove 	= DragHandler._drag;
				document.onmouseup 		= DragHandler._dragEnd;
				return false;
			},
			
		// private method. Drag (move) element.
			_drag : function(e) 
			{
				
				var oElem 		= DragHandler._oElem;
				var x = parseInt(oElem.style.left);
				var y = parseInt(oElem.style.top);
		 
				e = e ? e : window.event;
			// test to see if we have reached left and right limits
				if (x < leftLimit)	{ x = leftLimit; }
				if (x > rightLimit)	{ x = rightLimit; }
				oElem.style.left 	= x + (e.clientX - oElem.mouseX) + 'px';
				oElem.style.top 	= y; // + (e.clientY - oElem.mouseY) + 'px';
		 
				oElem.mouseX = e.clientX;
				oElem.mouseY = e.clientY;
				oElem.drag(oElem, x, y);
		 
				return false;
			},

		// private method. Stop drag process.
			_dragEnd : function() 
			{
				var oElem = DragHandler._oElem;
		 
				var x = parseInt(oElem.style.left);
				var y = parseInt(oElem.style.top);
		 
				oElem.dragEnd(oElem, x, y);
		 
				document.onmousemove= null;
				document.onmouseup 	= null;
				DragHandler._oElem 	= null;
				
				seekTo(x);
				isPosDrag 			= false;
			}
		}

	// functions
		function isReady() 
		{
			return jsReady;
		}
		
		function pageInit() 
		{
			jsReady = true;
		}

		function pushSlide(image)
		{
			lastLiveSld = image;
			if (slide_seek)
			{
				clearAllSlideHighlights();
			}
			if (is_live)
			{
			// test to see if we have a URL for this slide in slide_URLs
				try 
				{
					if (slide_URLs[image].indexOf(".")> -1)
					{
					// we have a valid slide URL
						if(document.getElementById)
						{
							slideCont = document.getElementById('slideContainer');
							slideCont.innerHTML = '<a href="http://'+slide_URLs[image]+'" title="'+slide_URLs[image]+'" target="_blank"><img src="'+slide_array[image].src+'" width="'+ slideWidth +'" height="'+ slideHeight +'" name="slideWindow" id="slidewindow" alt="Video Slide" border="0" /></a>';
						}
					} else {
					// we do not have a valid slide URL
						if(document.getElementById)
						{
							slideCont = document.getElementById('slideContainer');
							slideCont.innerHTML = '<img src="'+slide_array[image].src+'" width="'+ slideWidth +'" height="'+ slideHeight +'" name="slideWindow" id="slidewindow" alt="Video Slide" border="0" />';
						}				
					}
				} catch (err) {
					if (num_slides > 0)
					{
					// update slide
						try
						{
							document.slideWindow.src = slide_array[image].src;
						} catch(err) {
							// do nothing	
						}
					}
				}
			} else {
			// test to see if we have a URL for this slide in slide_URLs
				if (slide_URLs[image].indexOf(".")> -1)
				{
				// we have a valid slide URL
					if(document.getElementById)
					{
						slideCont = document.getElementById('slideContainer');
						slideCont.innerHTML = '<a href="http://'+slide_URLs[image]+'" title="'+slide_URLs[image]+'" target="_blank"><img src="'+slide_array[image].src+'" width="'+ slideWidth +'" height="'+ slideHeight +'" name="slideWindow" id="slidewindow" alt="Video Slide" border="0" /></a>';
					}
				} else {
				// we do not have a valid slide URL
					if(document.getElementById)
					{
						slideCont = document.getElementById('slideContainer');
						slideCont.innerHTML = '<img src="'+slide_array[image].src+'" width="'+ slideWidth +'" height="'+ slideHeight +'" name="slideWindow" id="slidewindow" alt="Video Slide" border="0" />';
					}				
				}
			}
			
		// set Slide Navigation
			if (slide_seek)
			{
				if(document.getElementById)
				{
					var slideItm = document.getElementById('sld'+image);
					slideItm.setAttribute('border','2');
				}
				
				if ((image > 2) && !seekVideo)
				{
				// scroll area
					if(document.getElementById)
					{
						document.getElementById('ScContainer').scrollLeft += autoStep;
					}
				} else {
					seekVideo = false;
				}
			}
		}

		function doLiveSlidePush(slideNo)
		{
			//alert("slide "+slideNo+" has been pushed");
			//thisMovie("videoPlayer").doLiveSlidePush(slideNo);
			if (slideNo != lastLiveSld)
			{
				pushSlide(slideNo)
			}
		}
		
		function clearAllSlideHighlights()
		{
			for (var x=0;x<num_slides;x++)
			{
				if(document.getElementById)
				{
					var slideOld = document.getElementById('sld'+x);
					slideOld.setAttribute('border','0');
				}
			}
		}

		function clearSlideThumbs()
		{
			if(document.getElementById&&slide_seek)
			{
				var slideArea 			= document.getElementById('t1');
				slideArea.style.display	='none';
			}
		}

		function showSlideThumbs()
		{
			if(document.getElementById&&slide_seek)
			{
				var slideArea = document.getElementById('t1');
				slideArea.style.display='';
			}
		}
		
		function videoSeek(slideID)
		{
			thisMovie("videoPlayer").videoSeek(slideID);
			lastClick = "pause";
			seekVideo = true;
		}
		
		function thisMovie(movieName) 
		{
			if (navigator.appName.indexOf("Microsoft") != -1) 
			{
				return window[movieName];
			} else {
				return document[movieName];
			}
		}
		
		function playVideo(videoID)
		{
			thisMovie("videoPlayer").playVideo(videoID);
		// change play button to stop button
			if (lastPlay != 0)
			{
			// change last played button from stop to play
				returnToPlay();
			}
			setToPause();
			lastPlay = videoID;
			showSlideThumbs();
			isNowPlaying = true;
			//window.frames.videoPlayed.location.href='modules/mod_videoPresentation_played.php?videoID='+videoID;
		}

		function resumeVideo()
		{
			thisMovie("videoPlayer").resumeVideo(video_id);
		// change play button to stop button
			if (lastPlay != 0)
			{
			// change last played button from stop to play
				returnToPlay();
			}
			setToPause();
			lastPlay 	 = video_id;
			isNowPlaying = true;
		}
		
		function returnToPlay()
		{
			if(document.getElementById)
			{
			// set up button
				var button = document.getElementById('playPause');
				button.src = play_off.src;
				button.setAttribute('onmouseover','this.src=play_over.src');
				button.setAttribute('onmouseout','this.src=play_off.src');
				button.setAttribute('alt','Play Video');
			
			// set up link
				var linkTag = document.getElementById('PausePlay');
				linkTag.setAttribute('onclick','javascript: playVideo()');
				linkTag.setAttribute('title','Play Video');
			}
			//resetVideoTime();
		}

		function returnToResume()
		{
			if(document.getElementById)
			{
			// set up button
				var button = document.getElementById('playPause');
				button.src = play_off.src;
				button.setAttribute('onmouseover','this.src=play_over.src');
				button.setAttribute('onmouseout','this.src=play_off.src');
				button.setAttribute('alt','Resume Video');
			
			// set up link
				var linkTag = document.getElementById('PausePlay');
				linkTag.setAttribute('onclick','javascript: resumeVideo()');
				linkTag.setAttribute('title','Resume Video');
			}
		}
		
		function setToPause()
		{
			if(document.getElementById)
			{
			// set up button
				var button = document.getElementById('playPause');
				button.src = pause_off.src;
				button.setAttribute('onmouseover','this.src=pause_over.src');
				button.setAttribute('onmouseout','this.src=pause_off.src');
				button.setAttribute('alt','Pause Video');
	
			// set up link
				var linkTag = document.getElementById('PausePlay');
				linkTag.setAttribute('onclick','javascript: pauseVideo()');
				linkTag.setAttribute('title','Pause Video');
			}
		}

		function pauseVideo()
		{
			thisMovie("videoPlayer").pauseVideo(lastPlay);
			lastClick 	 = "pause";
			isNowPlaying = false;
			returnToResume();
		}

		function stopVideo()
		{
			thisMovie("videoPlayer").stopVideo(lastPlay);
			lastClick 	 = "stop";
			isNowPlaying = false;
			
		// have to set live slide to -1 so that when play is clicked again the last pushed slide will show
			if(is_live)
			{
				lastLiveSld = -1;
			}
			
		// clear old highlight
			if ((num_slides > 0)&&slide_seek)
			{
				if(document.getElementById)
				{
					var slideOld = document.getElementById('sld'+lastImage);
					slideOld.setAttribute('border','0');
				// return to first slide
					document.getElementById('ScContainer').scrollLeft-=10000;
				}
			}
			returnToPlay();
			clearSlideThumbs();
			resetVideoTime();
			stopMe();
			document.slideWindow.src = blankImage.src;
		}
		
		function playbackComplete()
		{
			stopVideo();
			
			
			lastClick 	 = "stop";
			isNowPlaying = false;
			document.slideWindow.src = blankImage.src;
			clearSlideThumbs();
			return true;
			//resetVideoTime();
		}

	// scrolling functions
		function scrollDivLeft(id)
		{
			clearTimeout(timerRight); 
			if(document.getElementById)
			{
				document.getElementById(id).scrollLeft-=scrollStep;
				timerRight=setTimeout("scrollDivLeft('"+id+"')",10);
			}
		}
		
		function scrollDivRight(id)
		{
			clearTimeout(timerLeft);
			if(document.getElementById)
			{
				document.getElementById(id).scrollLeft+=scrollStep;
				timerLeft=setTimeout("scrollDivRight('"+id+"')",10);
			}
		}
		
		function stopMe(){
			clearTimeout(timerRight);
			clearTimeout(timerLeft);
		}

	// video player functions
		function trackVideo(videoTime)
		{
			var hours 				= Math.floor(videoTime / (60 * 60));
			if (hours < 10) { hours = '0'+hours; }
			var divisor_for_minutes = videoTime % (60 * 60);
			var minutes 			= Math.floor(divisor_for_minutes / 60);
			if (minutes < 10) { minutes = '0'+minutes; }
			var divisor_for_seconds = divisor_for_minutes % 60;
			var seconds 			= Math.ceil(divisor_for_seconds);
			if (seconds < 10) { seconds = '0'+seconds; }
			if(document.getElementById)
			{
			// track playback time
				var videoTimeCon = document.getElementById('videoTimeContainer');
				videoTimeCon.innerHTML = '<div id="cTime" style="width:45px; float:left;"><font size="2"'+fontClr+'>'+ hours+':'+minutes+':'+seconds+'</font></div>';
                videoTimeCon.innerHTML += '<div style="float:left; width:5px;"><font size="2"'+fontClr+'>&nbsp;&nbsp;|&nbsp;</font></div>';
                videoTimeCon.innerHTML +='<div id="dTime" style="width:45px; float:right;"><font size="2"'+fontClr+'>'+videoLen+'</font></div>';
				
			// track progress bar - 255 is the width of the progress bar minus a few px for tidyness = 248 - set as var rightLimit
				if (!isPosDrag)
				{
					var progStep 		= rightLimit/playbackLen;
					var progPoss 		= progStep*videoTime;
					var progButn 		= document.getElementById('tracker');
					if (!is_live)
					{
						progButn.style.left = progPoss+'px';
					}
				}
			}
		}

		function setVideoLen(videoLength)
		{
			if (!is_live)
			{
				playbackLen 			= videoLength;
				videoLength				= Math.round(videoLength);
				var hours 				= Math.floor(videoLength / (60 * 60));
				if (hours < 10) { hours = '0'+hours; }
				var divisor_for_minutes = videoLength % (60 * 60);
				var minutes 			= Math.floor(divisor_for_minutes / 60);
				if (minutes < 10) { minutes = '0'+minutes; }
				var divisor_for_seconds = divisor_for_minutes % 60;
				var seconds 			= Math.ceil(divisor_for_seconds);
				if (seconds < 10) { seconds = '0'+seconds; }
				videoLen 				= hours+':'+minutes+':'+seconds;
			}
		}
		
		function resetVideoTime()
		{
			if(document.getElementById)
			{
				var videoTimeCon 		= document.getElementById('videoTimeContainer');
				hours 	= '00';
				minutes = '00';
				seconds = '00';
				videoTimeCon.innerHTML = '<div id="cTime" style="width:45px; float:left;"><font size="2"'+fontClr+'>'+ hours+':'+minutes+':'+seconds+'</font></div>';
                videoTimeCon.innerHTML += '<div style="float:left; width:5px;"><font size="2"'+fontClr+'>&nbsp;&nbsp;|&nbsp;</font></div>';
                videoTimeCon.innerHTML +='<div id="dTime" style="width:45px; float:right;"><font size="2"'+fontClr+'>'+videoLen+'</font></div>';
				var progButn 			= document.getElementById('tracker');
				progButn.style.left 	= '0px';
			}	
		}
		
		function seekTo(mousePos)
		{
			var progStep 		= rightLimit/playbackLen;
			var progPoss 		= mousePos/progStep;
			thisMovie("videoPlayer").seekTo(progPoss);
		}

	// Biog and description functionality
	// biog
		function showBiog()
		{
			var desc_ln = document.getElementById('lnk_desc');
			var desc_im	= document.getElementById('img_desc');
			var biog_ln = document.getElementById('lnk_biog');
			var biog_im	= document.getElementById('img_biog');
			var biog_tb	= document.getElementById('tbl_biog');
			var desc_tb	= document.getElementById('tbl_desc');
			
			biog_im.src = biog_tab_over.src;
			biog_im.setAttribute('onmouseover','this.src=biog_tab_over.src');
			biog_im.setAttribute('onmouseout','this.src=biog_tab_over.src');
			
			desc_im.src = desc_tab_off.src;
			desc_im.setAttribute('onmouseover','this.src=desc_tab_over.src');
			desc_im.setAttribute('onmouseout','this.src=desc_tab_off.src');
			
			desc_im.style.cursor = "pointer";
			biog_im.style.cursor = "default";
			
			biog_tb.style.display='';
			desc_tb.style.display='none';
		}
		
	// decsription
		function showDesc()
		{
			var desc_ln = document.getElementById('lnk_desc');
			var desc_im	= document.getElementById('img_desc');
			var biog_ln = document.getElementById('lnk_biog');
			var biog_im	= document.getElementById('img_biog');
			var biog_tb	= document.getElementById('tbl_biog');
			var desc_tb	= document.getElementById('tbl_desc');
			
			desc_im.src = desc_tab_over.src;
			desc_im.setAttribute('onmouseover','this.src=desc_tab_over.src');
			desc_im.setAttribute('onmouseout','this.src=desc_tab_over.src');
			
			biog_im.src = biog_tab_off.src;
			biog_im.setAttribute('onmouseover','this.src=biog_tab_over.src');
			biog_im.setAttribute('onmouseout','this.src=biog_tab_off.src');
			
			desc_im.style.cursor = "default";
			biog_im.style.cursor = "pointer";
			
			biog_tb.style.display='none';
			desc_tb.style.display='';
		}		

	// ]]>
