//Add a setheight method to element object
Object.extend(Element, {
	setHeight: function(element,h) {
   		element = $(element);
    	element.style.height = h +"px";
	},
	setTop: function(element,t) {
	   	element = $(element);
    	element.style.top = t +"px";
	}
});

function getWindowHeight() {
if (navigator.userAgent.indexOf("MSIE") > 0) {
var sSize = (document.body.clientHeight);
return sSize;
} else {                                                
var sSize = (window.outerHeight);
return sSize;
}
return;      
}
// -----------------------------------------------------------------------------------

//
// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.org
//
function getPageScroll(){

	var yScroll;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
	}

	arrayPageScroll = new Array('',yScroll) 
	return arrayPageScroll;
}

// -----------------------------------------------------------------------------------

//
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
//
function getPageSize(){
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}


	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}

	var videoPlayer = new function () {
		this.init = function() {
			//insert the video player into the dom
			var objBody = document.getElementsByTagName("body").item(0);
			
			var videoObj = document.createElement("div");
			videoObj.id="enlargedPhoto-wrapper";
			videoObj.className="hide";
			videoObj.innerHTML='<div id="enlargedPhoto"><a href="#" id="closeMovie">Close</a><div id="flash_movie"><img src="/img/video_noflash.jpg" /></div><div id="movie_blurb"><p><strong id="player_title">Fundamentals of Tire Wear 1</strong></p></div><div id="drop_shadow_outer"><img id="drop_shadow" src="/img/video-shadow.png" alt="a drop shadow"/></div></div>';
			
			objBody.appendChild(videoObj);
			
			//init all view video links			
			var links = document.getElementsByTagName("*");
			var match = /view_video/;

			for(var link=0;link<links.length;link++) {
				if(match.test(links[link].className)) {
					links[link].onclick = videoPlayer.launchVideo;
				}
			}
			//hide the photo wrapper
			document.getElementById("enlargedPhoto-wrapper").className = "";
			document.getElementById("enlargedPhoto-wrapper").style.display="none";
			
			//find the close button and attach an event handler to it
			var closeBtn = document.getElementById("closeMovie");
			closeBtn.onclick = videoPlayer.close;
			
			//check to see if there is a video in the querystring
			movieName = window.location.href.toString().split("#");
			if(movieName[1] != null && movieName[1].length>1) {
				var links = document.getElementsByTagName("a");				
				for(var i=0;i<links.length;i++){
					var testHref = links[i].href.split("#");
					if(testHref[1] == movieName[1]) {
						movieTrigger = links[i].parentNode;
						try {
							movieTrigger.onclick.call(movieTrigger);
						} catch(err) {
							//error
						}
					}
				}				
			}
		}
		
		this.launchVideo = function() {	
			//insert overlay into dom
			var objBody = document.getElementsByTagName("body").item(0);			
			var overlay = document.createElement("div");
			overlay.id = "video_overlay";
			overlay.style.display = "none";
			
			objBody.appendChild(overlay);
			
			//put the title in player_title	
			cells = this.parentNode.getElementsByTagName("*");
			match = /video_title/;
			for(elem=0;elem<cells.length;elem++) {
				if(match.test(cells[elem].className)) {
					document.getElementById("player_title").innerHTML = cells[elem].innerHTML;
				}
			}	
			
			//align the window
			var arrayPageSize = getPageSize();
			var arrayPageScroll = getPageScroll();
			var videoTop = arrayPageScroll[1] + (arrayPageSize[3] / 15);
			
			Element.setTop('enlargedPhoto-wrapper', videoTop+100);			
			
			//make it appear
			Element.setTop('video_overlay', videoTop-50);
			Element.setHeight('video_overlay', arrayPageSize[1]);
			new Effect.Appear('video_overlay', { duration: 0.2, from: 0.0, to: 0.6 });						
			var player = document.getElementById("enlargedPhoto-wrapper");
			player.style.display="block";
			
			//play it
			videoPlayer.play(this);
		}
		
		this.play = function(movie) {
			var link = movie.getElementsByTagName("a");
			link = link[0];
			movieName = link.href.toString().split("#");
			if(movieName[1] != "") {
				movieName = "flvName=videos/"+movieName[1]+".flv";
			}
			var so = new SWFObject("/assets/flash/videoPlayer.swf","mymovie","322","265","#ffffff");
			so.addParam("wmode","opaque");
			so.addParam("FlashVars",movieName);
			so.write("flash_movie");
		}

		this.close = function() {
			new Effect.Fade('video_overlay', { duration: 0.2, from: 0.6, to: 0.0});			
			document.getElementById("enlargedPhoto-wrapper").style.display="none";
			document.getElementById("flash_movie").innerHTML = "";
			return false;
		}
	}

	Event.addEvent(window,"load",videoPlayer.init);
