// global variables
var g_images = new Array();
var g_divisions = new Array();

g_fade_divs = 0;

var mx = 0;
var my = 0;

function preload_images()
{
	if (document.images)
	{
		for( var i = 0; i < preload_images.arguments.length; i++ )
		{
			var img = new Image();
			img.src = preload_images.arguments[i];
			window.g_images.push( img );
			// window.g_images[ window.g_images.length - 1 ].src = preload_images.arguments[i];
		}
	}
}

// global functions
function onload_default()
{
	onload_hover();
	preload_images( new Array( 'images/toolbar_menu_bg.gif' ) )
	if( document.layers ) 
	{ 
		// Netscape
		document.captureEvents(Event.MOUSEMOVE);
		document.onmousemove = hide_menu;
	} 
	else if( document.all ) 
	{ 
		// Internet Explorer
		document.onmousemove = hide_menu;
	} 
	else if( document.getElementById ) 
	{ 
		// Netcsape 6
		document.onmousemove = hide_menu;
	}
	
	g_fade_divs = new Array( 'banner0', 'banner1', 'banner2' );
	fade_div_onload();
}

function onload_hover()
{
	var class_name = "hover";
	var objs = document.getElementsByTagName( 'a' );
	
	// loop through all the onmouseover a tags
	for( var i = 0; i < objs.length; i++ )
	{
		var parent = objs[ i ];
		var obj = null;
		if( typeof( parent.childNodes[ 0 ] ) != "undefined" ) obj = parent.childNodes[ 0 ];
		
		if( obj )
		{
			if( parent.className == class_name )
			{	
				var file1 = obj.src;
				var postfix = file1.split( '.' );
				postfix = postfix[ postfix.length - 1 ];
				postfix = "." + postfix;
				
				var file2 = file1.replace( postfix, "_over" + postfix );
				preload_images( new Array( file2 ) );
				
				if( obj.addEventListener )
				{
					obj.addEventListener( "mouseover", function ( a, b ) { return function(){ update_image( a, b ); } }( obj, file2 ), false ); 
					obj.addEventListener( "mouseout", function ( a, b ) { return function(){ update_image( a, b ); } }( obj, file1 ), false );
				}
				else
				{
					obj.attachEvent( "onmouseover", function ( a, b ) { return function(){ update_image( a, b ); } }( obj, file2 ) ); 
					obj.attachEvent( "onmouseout", function ( a, b ) { return function(){ update_image( a, b ); } }( obj, file1 ) );
				}			
			}
		}
	}
}

function get_object( id )
{
	return document.getElementById( id );
}

function update_image( obj, image )
{
	if( typeof( obj ) != "object" )
	{
		obj = get_object( obj );
	}
	obj.src = image;
}

function show_menu( parent )
{
	if( !document.getElementById( 'divisions_menu' ) )
	{
		var img = parent.childNodes[ 0 ];
		var x = get_x( img );
		var y = get_y( img ) + get_height( img ) - 8;
		
		//alert( x + " and " + y );
		var div = document.createElement( 'div' );
		
		div.id 			= "divisions_menu";
		div.className 	= "toolbar_menu";
		div.style.top 	= y + "px";
		div.style.left 	= x + "px";
		
		for( var i = 0; i < g_divisions.length; i++ )
		{
			div.appendChild( g_divisions[ i ] );
		}
		
		document.body.appendChild( div );
	}
}

function hide_menu( e )
{
	e = ( !e && window.event) ? window.event : e;
	
	// get the mouse coordinates
	if( document.getElementById( 'divisions_menu' ) )
	{
		var mx = mouse_x( e );
		var my = mouse_y( e );
		
		var x1, y1, x2, y2 = 0;
		
		var hide = true;
		
		// check the button dimensions
		var obj1 = document.getElementById( 'tb_divisions' );
		if( in_rect(	mx,
						my,
						get_x( obj1 ),
						get_y( obj1 ),
						get_x( obj1 ) + get_width( obj1 ),
						get_y( obj1 ) + get_height( obj1 ) - 8 ) )
		{
			hide = false;	
		}
		else
		{
			var obj2 = document.getElementById( 'divisions_menu' );
			if( in_rect(	mx,
							my,
							get_x( obj2 ),
							get_y( obj2 ),
							get_x( obj2 ) + get_width( obj2 ),
							get_y( obj2 ) + get_height( obj2 ) ) )
			{
				hide = false;	
			}	
		}
		
		if( hide )
		{
			document.body.removeChild( document.getElementById( 'divisions_menu' ) );
			var img_obj = document.getElementById( 'tb_divisions' );
			if( img_obj.parentNode.className == "hover" )
			{
				var img = "images/tb_divisions.gif";
				var src = img_obj.src = img;
			}
		}
		else
		{
			var img = "images/tb_divisions_over.gif";
			var src = document.getElementById( 'tb_divisions' ).src = img;
		}	
	}
}

function in_rect( dx, dy, x1, y1, x2, y2 )
{
	result = false;
	if( dx >= x1 && dx <= x2 && dy >= y1 && dy <= y2 )
	{
		result = true;	
	}
	return result;
}

function create_division( id, name )
{
	var div = document.createElement( 'div' );
	div.className = "toolbar_item";
	
	var a = document.createElement( 'a' );
	a.href = "division.php?id=" + id;
	a.innerHTML = name;
	
	div.appendChild( a );
	
	g_divisions.push( div );
}

function get_x( obj )
{
	var curleft = 0;
	if( obj.offsetParent )
	{
		while( 1 ) 
		{
			curleft += obj.offsetLeft;
			if( !obj.offsetParent )
			{
				break;
			}
			obj = obj.offsetParent;
		}
	}
	else if( obj.x )
	{
		curleft += obj.x;
	}
	return curleft;
}

function get_y( obj )
{
	var curtop = 0;
	if( obj.offsetParent )
	{
		while( 1 )
		{
	  		curtop += obj.offsetTop;
	  		if(!obj.offsetParent)
			{
				break;
			}
	  		obj = obj.offsetParent;
		}
	}
	else if( obj.y )
	{
		curtop += obj.y;
	}
	return curtop;
}

function get_height( obj )
{
	var result = 0;
	if( obj.offsetHeight )
	{
		result = obj.offsetHeight;	
	}
	else if( obj.style.pixelHeight )
	{
		result = obj.style.pixelHeight;	
	}
	return result;
}

function get_width( obj )
{
	var result = 0;
	if( obj.offsetWidth )
	{
		result = obj.offsetWidth;	
	}
	else if( obj.style.pixelWidth )
	{
		result = obj.style.pixelWidth;	
	}
	return result;
	
}

function mouse_x( e ) 
{
	var result = null;
	
	if( e.pageX )
	{
		result = e.pageX;
	}
	else if ( e.clientX )
	{
	   result = e.clientX + ( document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft );
	}
	return result;
}

function mouse_y( e ) 
{
	var result = null;

	if( e.pageY )
	{
		result = e.pageY;
	}
	else if( e.clientY )
	{
		result = e.clientY + ( document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop );
	}
    return result;
}

function ShowDivs( className, display )
{
	var divs = document.getElementsByTagName( "div" );
	for( var i = 0; i < divs.length; i++ )
	{
		var currentDiv = divs[ i ];
		if( currentDiv.className == className )
			currentDiv.style.display = display;

	}		
}
