// JavaScript Document

function getElementsByClass (searchClass) {  
	// This function returns an array of all HTML objects with the  
	// specified className.  Tag is optional     
	var returnArray = [];  
	var els = document.getElementsByTagName('*');  
	var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');  
	for (var i = 0; i < els.length; i++) {    
		if ( pattern.test(els[i].className) ) { returnArray.push(els[i]); }
	}  
	return returnArray;
}

function popVideo(vid, darken) {  
	// This function accepts a division ID (vid), either a string or the actual  
	// object itself.   vid is mandatory.   darken is optional, if it's true  
	// the page will be greyed out under the video.  
	var videos = getElementsByClass('video');     // Get all the videos on the page.  
	var isplaying=null;  
	for(i=0; i<videos.length; i++) {              // Loop through all the videos    
		if (videos[i].style.display=='block') {     // This video is playing       
			isplaying=videos[i].id;                   // remember its name      
			var tmp=videos[i].innerHTML;              // Get the division contents      
			videos[i].innerHTML='';                   // destroy the contents      
			videos[i].style.display='none';           // Terminate the video.      
			videos[i].innerHTML=tmp;                  // rebuild the contents.    
		}
	}  

	// This handles the darkening of the background while a video is playing.  
	// First we see if the dark layer exists. 
	var dark=document.getElementById('darkenScreenObject');  
	if (!dark) {    
		// The dark layer doesn't exist, it's never been created.  So we'll    
		// create it here and apply some basic styles.    
		var tbody = document.getElementsByTagName("body")[0];    
		var tnode = document.createElement('div');          // Create the layer.        
			tnode.style.backgroundColor='rgb(0, 0, 0)';     // Make it black.        
			tnode.style.opacity='0.7';                      // Set the opacity (firefox/Opera)        
			tnode.style.MozOpacity='0.70';                  // Firefox 1.5        
			tnode.style.filter='alpha(opacity=70)';         // IE.        
			tnode.style.zIndex='1';                         // Zindex of 50 so it "floats"        
			tnode.style.position='absolute';                // Position absolutely        
			tnode.style.top='0px';                          // In the top        
			tnode.style.left='0px';                         // Left corner of the page        
			tnode.style.overflow='hidden';                  // Try to avoid making scroll bars                    
			tnode.style.display='none';                     // Start out Hidden        
			tnode.id='darkenScreenObject';                  // Name it so we can find it later    
		tbody.appendChild(tnode);                           // Add it to the web page    
		dark=document.getElementById('darkenScreenObject'); // Get the object.  
	}  
	
	dark.style.display='none';  
	if ((isplaying==vid)||(/^close$/i.test(vid))) { return false; }  
	if (typeof(vid)=="string") { vid=document.getElementById(vid); }  
	if (vid&&typeof(vid)=="object") {    
		if (darken) {      
			// Calculate the page width and height       
			if( window.innerHeight && window.scrollMaxY )  {         
				var pageWidth = window.innerWidth + window.scrollMaxX;        
				var pageHeight = window.innerHeight + window.scrollMaxY;      
			} 
			else if( document.body.scrollHeight > document.body.offsetHeight ) {        
				var pageWidth = document.body.scrollWidth;        
				var pageHeight = document.body.scrollHeight;      
			} 
			else {         
				var pageWidth = document.body.offsetWidth + document.body.offsetLeft;         
				var pageHeight = document.body.offsetHeight + document.body.offsetTop;       
			}      
			//set the shader to cover the entire page and make it visible.       
			dark.style.width= pageWidth+'px';      
			dark.style.height= pageHeight+'px';      
			dark.style.display='block';                                    
		}    
		// Make the video visible and set the zindex so its on top of everything else    
		vid.style.zIndex='100';        
		vid.style.display='block';    
		var scrollTop = 0;    
		if (document.documentElement && document.documentElement.scrollTop)      
			scrollTop = document.documentElement.scrollTop;    
		else if (document.body)      
			scrollTop = document.body.scrollTop;    
		// set the starting x and y position of the video    
		vid.style.top=scrollTop+Math.floor((document.documentElement.clientHeight/2)-(vid.offsetHeight/2))+'px';    
		vid.style.left=Math.floor((document.documentElement.clientWidth/2)-(vid.offsetWidth/2))+'px';  
	}  
	return false;
}