// JavaScript Document
document.getElementsByClassName = function(cl) 
{
	var retnode = [];
	var myclass = new RegExp('\\b'+cl+'\\b');
	var elem = this.getElementsByTagName('*');
	for (var i = 0; i < elem.length; i++) 
	{
		var classes = elem[i].className;
		if (myclass.test(classes)) retnode.push(elem[i]);
	}
	return retnode;
}; 

Array.prototype.exists = function( o ) 
{
	for( var i = 0; i < this.length; i++ )
	{
		 if(this[i] === o)
		 {
			 return i;
		 }
	}
	return false;
}

function StopFlashMovie()
{
	var flashMovie = document.getElementById("FLVPlayer");
	flashMovie.StopPlay();
}

function failed(e) {
   // video playback failed - show a message saying why
   switch (e.target.error.code) {
     case e.target.error.MEDIA_ERR_ABORTED:
       alert('You aborted the video playback.');
       break;
     case e.target.error.MEDIA_ERR_NETWORK:
       alert('A network error caused the video download to fail part-way.');
       break;
     case e.target.error.MEDIA_ERR_DECODE:
       alert('The video playback was aborted due to a corruption problem or because the video used features your browser did not support.');
       break;
     case e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED:
       alert('The video could not be loaded, either because the server or network failed or because the format is not supported.');
       break;
     default:
       alert('An unknown error occurred.');
       break;
   }
 }

/////
////
///
//

var kill_video;

function hide_flash()
{
     var kill_video;
     var video = document.getElementById('video');
     video.style.display = "none";
     show_shell();
     wave_background();
     kill_video = setInterval( function() { kill_the_video(); }, 500 );
}
function kill_the_video ()
{
     var kill_video;
     removeElement('video');
     removeElement('show_intro');
     clearInterval( kill_video );
}
function removeElement(id)
{
	var Node = document.getElementById(id);
	Node.parentNode.removeChild(Node);
}

//	functions

function swap_iframe( this_page )
{
	document.getElementById('content_frame').src = this_page;
}

function show_element( the_id, the_display )
{
	var the_element = document.getElementById( the_id );
	if( the_element.style.display != the_display )
	{
		the_element.style.display = the_display;
	}
}
function hide_icons()
{
	document.getElementById('what_menu').style.display = 'none';
	document.getElementById('where_menu').style.display = 'none';
	document.getElementById('how_menu').style.display = 'none';
}

function toggle_class( element, classname )
{
	var block = document.getElementById( element );
	var class_array = block.className.split( " " );
	var has_class = class_array.exists( classname );
	if( has_class === false )
	{
		class_array.push( classname );
		block.className = class_array.join( " " );
	}
	else
	{
		class_array.splice( has_class, 1 );
		block.className = class_array.join( " " );
	}
}
function set_class( element, classname )
{
	if( typeof(element) == "object" )
	{
		var setblock = element;
	}
	else
	{
		var setblock = document.getElementById( element );
	}
	var class_array = setblock.className.split( " " );
	var has_class = class_array.exists( classname );
	if( has_class === false )
	{
		class_array.push( classname );
		setblock.className = class_array.join( " " );
	}
}
function unset_class( element, classname )
{
	if( typeof(element) == "object" )
	{
		var unsetblock = element;
	}
	else
	{
		var unsetblock = document.getElementById( element );
	}
	var class_array = unsetblock.className.split( " " );
	if( class_array.length > 0 )
	{
		var has_class = class_array.exists( classname );
		if( has_class !== false )
		{
			class_array.splice( has_class, 1 );
			unsetblock.className = class_array.join( " " );
		}
	}
}
function set_aglow( button_name )
{
	var prefix_array = new Array( 'how', 'where', 'what' );
	
	for( var x = 0; x < prefix_array.length; x++ )
	{
		// swap glows
		var w = prefix_array[x] + "_button";
		if( w == button_name )
		{
			set_class( w, "glow" );
		}
		else
		{
			unset_class( w, "glow" );
		}
		
		// swap block backgrounds
		//var this_block = prefix_array[x] + "_block";
		var this_block = document.getElementById( prefix_array[x] + "_block" );
		var divs = this_block.getElementsByTagName( 'div' );
		var these_as = new Array;
		for( var y = 0; y < divs.length; y++ )
		{
			if( prefix_array[x] + "_button" == button_name )
			{
				// divs[y].style.backgroundImage = "url('images/bottom_button_" + prefix_array[x] + "_" + y + ".png')";
				these_as = divs[y].getElementsByTagName('a');
				these_as[0].style.display = "block";
			}
			else
			{
				// divs[y].style.backgroundImage = "url('images/bottom_button.png')";
				these_as = divs[y].getElementsByTagName('a');
				these_as[0].style.display = "none";
			}
		}
	}	
	
}

function shift_icon( ul, li_num )
{
	var list_name = document.getElementById( ul );
	var list = list_name.getElementsByTagName( 'li' );
	for( var x = 0; x < list.length; x++ )
	{
		if( x == li_num )
		{
			set_class( list[x], 'shift' );
		}
		else
		{
			unset_class( list[x], 'shift' );
		}
	}
}
function unshift_icons( ul )
{
	var list_name = document.getElementById( ul );
	var list = list_name.getElementsByTagName( 'li' );
	for( var x = 0; x < list.length; x++ )
	{
		unset_class( list[x], 'shift' );
	}
}
function activate_menu( ul, li_num )
{
	var list_name = document.getElementById( ul );
	var list = list_name.getElementsByTagName( 'li' );
	for( var x = 0; x < list.length; x++ )
	{
		if( x == li_num )
		{
			set_class( list[x], 'active' );
		}
		else
		{
			unset_class( list[x], 'active' );
		}
	}
}
function show_shell()
{
	var shell_div = document.getElementById( 'shell' );
	shell_div.style.display = "block";
}
function hide_video()
{
	var video_div = document.getElementById( 'video' );
	video_div.style.display = "none";
	// var video_e = video_div.getElementsByTagName( 'video' );
	// video_e[0].pause();
}

function fade_video()
{
	var video_div = document.getElementById( 'video' );
	var this_browser = navigator.appName;
	var o_now;
	
	if( this_browser == "Microsoft Internet Explorer" )
	{
		var ie_op = 100;
		fade_away_id = setInterval( function() { ie_fade_away(); }, 20 );
	}
	else
	{
		video_div.style.opacity = 1.0;
		fade_away_id = setInterval( function() { fade_away(); }, 20 );
	}
	function fade_away( )
	{		
		o_now = parseFloat( video_div.style.opacity ).toFixed(1);
		if( o_now > 0 )
		{
			o_now = o_now - 0.1;
			video_div.style.opacity = o_now;
		}
		else
		{
			clearInterval( fade_away_id );
			video_div.style.display = "none";
		}
	}
	function ie_fade_away()
	{		
		if( ie_op > 0 )
		{
			ie_op = ie_op - 20;
			video_div.style.filter = "alpha(opacity="+( ie_op )+")";
		}
		else
		{
			clearInterval( fade_away_id );
			document.getElementById( 'video' ).style.display = "none";
		}
	}
}
function wave_background( )
{
	var bkgd = document.getElementById( 'bkgd' );
	var this_browser = navigator.appName;
	var o_now, fade_away_id, fade_in_id;
	
	//   set max, min and increment of opacity wave as percentage
	var o_max = 0.66;
	var o_min = 0.10;
	var o_increment = 0.02;
	
	var ie_o_max = o_max * 100;
	var ie_o_min = o_min * 100;
	var ie_o_increment = o_increment * 100;
	var ie_o_start = Math.round( (ie_o_max + ie_o_min) / 2 );
	var o_start = ie_o_start / 100;
		
	
	if( this_browser == "Microsoft Internet Explorer" )
	{
		var ie_op = ie_o_start;
		fade_away_id = setInterval( function() { ie_fade_away(); }, 150 );
	}
	else
	{
		bkgd.style.opacity = o_start;
		fade_away_id = setInterval( function() { fade_away(); }, 150 );
	}
	function fade_away()
	{		
		o_now = bkgd.style.opacity;
		if( o_now > o_min )
		{
			bkgd.style.opacity = o_now - o_increment;
		}
		else
		{
			clearInterval( fade_away_id );
			fade_in_id = setInterval( function() { fade_in(); }, 150 );
		}
	}
	function ie_fade_away()
	{		
		if( ie_op > ie_o_min )
		{
			ie_op = ie_op - ie_o_increment;
			bkgd.style.filter = "alpha(opacity="+( ie_op )+")";
		}
		else
		{
			clearInterval( fade_away_id );
			fade_in_id = setInterval( function() { ie_fade_in(); }, 150 );
		}
	}
	function fade_in()
	{		
		o_now = parseFloat( bkgd.style.opacity );
		if( o_now < o_max )
		{
			bkgd.style.opacity = o_now + o_increment;
		}
		else
		{
			clearInterval( fade_in_id );
			fade_away_id = setInterval( function() { fade_away(); }, 150 );
		}
	}
	function ie_fade_in()
	{		
		if( ie_op > ie_o_max )
		{
			ie_op = ie_op + ie_o_increment;
			bkgd.style.filter = "alpha(opacity="+( ie_op )+")";
		}
		else
		{
			clearInterval( fade_in_id );
			fade_away_id = setInterval( function() { ie_fade_away(); }, 150 );
		}
	}
}
