function getElementsByClass (searchClass) {
// IGNATIS E. MAVRIDIS
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.5'; // Set the opacity (firefox/Opera)
tnode.style.MozOpacity='0.50'; // Firefox 1.5
tnode.style.filter='alpha(opacity=50)'; // 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/-1))+'px';
}
return false;
}
