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;
}
