var default_map= "";
var preloadFlag= false;

// create a new image object
newImage= function( img_url )
{
	if( document.images )
	{
		var new_img= new Image();
		new_img.src= img_url;
		return new_img;
	}
}

// change images
changeImages= function( new_img )
{
	if( preloadFlag )
	{
		var map_img= document.getElementById( "img_map" );
		map_img.src= new_img;
	}
}

// change back to default image
changeBack= function()
{
	changeImages( default_map );
}

// apply mouse behaviour to AREA tags
// and use the longdesc attribute as the
// new image source
find_areas= function()
{
	var map= document.getElementById( "MAP" );

	for( var i= 0; i < map.childNodes.length; i++ )
	{
		var node= map.childNodes[ i ];
		if( node.nodeName == "AREA" )
		{
			node.onmouseover= function()
			{
				changeImages( this.attributes[ 'longdesc' ].nodeValue );
			}
			node.onmouseout= function()
			{
				changeBack();
			}
		}
	}
}

// preload images
preloadImages= function()
{
	if( document.images )
	{
		kreis_marburg_biedenkopf_over	= newImage( "./fileadmin/templates/images/hessen/marburg.gif" );
		kreis_lahn_dill_over			= newImage( "./fileadmin/templates/images/hessen/lahndill.gif" );
		kreis_giessen_over				= newImage( "fileadmin/templates/images/hessen/giessen.gif" );
		kreis_limburg_weilburg_over		= newImage( "fileadmin/templates/images/hessen/limburg.gif" );
		kreis_wetterau_over				= newImage( "fileadmin/templates/images/hessen/wetterau.gif" );
		kreis_main_kinzig_over			= newImage( "fileadmin/templates/images/hessen/mainkinzig.gif" );
		kreis_rheingau_taunus_over		= newImage( "fileadmin/templates/images/hessen/rheingautaunus.gif" );
		kreis_hochtaunus_over			= newImage( "fileadmin/templates/images/hessen/htk.gif" );
		kreis_main_taunus_over			= newImage( "fileadmin/templates/images/hessen/mtk.gif" );
		kreis_gross_gerau_over			= newImage( "fileadmin/templates/images/hessen/grossgerau.gif" );
		kreis_offenbach_over			= newImage( "fileadmin/templates/images/hessen/offenbach.gif" );
		kreis_darmstadt_dieburg_over	= newImage( "fileadmin/templates/images/hessen/darmstadt.gif" );
		kreis_bergstrasse_over			= newImage( "fileadmin/templates/images/hessen/bergstrasse.gif" );
		kreis_odenwald_over				= newImage( "fileadmin/templates/images/hessen/odenwald.gif" );
		kreis_kassel_over				= newImage( "fileadmin/templates/images/hessen/kassel.gif" );
		kreis_waldeck_frankenberg_over	= newImage( "fileadmin/templates/images/hessen/waldeck.gif" );
		kreis_werra_meisner_over		= newImage( "fileadmin/templates/images/hessen/werrameissner.gif" );
		kreis_schwalm_eder_over			= newImage( "fileadmin/templates/images/hessen/schwalmeder.gif" );
		kreis_hersfeld_rotenburg_over	= newImage( "fileadmin/templates/images/hessen/hersfeld.gif" );
		kreis_fulda_over				= newImage( "fileadmin/templates/images/hessen/fulda.gif" );
		kreis_vogelsberg_over			= newImage( "fileadmin/templates/images/hessen/vogelsberg.gif" );
		stadt_wiesbaden_over			= newImage( "fileadmin/templates/images/hessen/wiesbaden.gif" );
		stadt_frankfurt_over			= newImage( "fileadmin/templates/images/hessen/ffm.gif" );
		preloadFlag= true;
	}

	// set default image
	if( document.getElementById( "img_map" ) )
	{
		var map_img= document.getElementById( "img_map" );
		default_map= map_img.src;

		// apply mouse handler to area
		find_areas();
	}
}


/**************************************************
 * pseudo_hover
 *   applies :hover functionality to li elements
 *   that dont work in IE
 **************************************************/
pseudo_hover= function() {
	// apply only in IE
	if( document.all && document.getElementById )
	{
		// find navigation node
		var navDiv= document.getElementById( "NAV" );
		find_list( navDiv );
	}
}

find_list= function( n ) {
	// find ul node
	for( var i= 0; i < n.childNodes.length; i++ )
	{
		var node= n.childNodes[ i ];
		if( node.nodeName == "UL" )
		{
			// apply :hover pseudo handler to li nodes
			for( var j= 0; j < node.childNodes.length; j++ )
			{
				var listnode= node.childNodes[ j ];
				if( listnode.nodeName == "LI" )
				{
					listnode.onmouseover= function()
					{
						this.className += " over";
					}
					listnode.onmouseout= function()
					{
						this.className= this.className.replace( " over", "" );
					}
				}
				// recursive find subsequent lists
				find_list( listnode );
			}
		}
	}
}


// init scripts
init= function()
{
	// apply li:hover to IE
	pseudo_hover();

	// start preloading
	preloadImages();
}
window.onload= init;
