
//--
// Global Vars
var buttons = new Array();
var categories = new Array();
var subcategories = new Array();
var hassubs = new Array();
var issub = new Array();
var issubfrom = new Array();
var language_folder = "de";
var browser = "";
var syslanguage = "";
var buttonid = new Array();
var currentopened = "";
var menutoclose = "";
var stoptimer = "";

//---
// Run Site Initialization
initSystem();

function initSystem()
{
	// Init Language
	initLanguage();
	// Run Browser Detection
	browserDetection();
	// Init the Buttons
	initButtons();
	// Init the ButtonIDs
	initButtonID();
	// Load the Buttons
	loadButtons();
	// Add the Hover Events
	addHoverEvents();
	// Mark Active Parts
	if ( current_menu_active != "" )
    {
    	markActiveMenu();
    }
	// Process the Table Rows
	alignRowColors();
}

//---
// Mark the Active Menu Items
function markActiveMenu()
{
	// Check for Main Menu
	if ( !hassubs[ current_menu_active ] )
	{
		// Mark the Main Button
		buttonid[ current_menu_active ].src = buttons[ current_menu_active ]['act'];
		// Remove the Events from the main button
		myRemEventListener( buttonid[ current_menu_active ], "mouseover", "normalHover" );
		myRemEventListener( buttonid[ current_menu_active ], "mouseout", "normalDeHover" );
	} else if ( hassubs[ current_menu_active ] ) {
		// Mark the Main Button
		buttonid[ current_menu_active ].src = buttons[ current_menu_active ]['act'];
		// Remove the Events from the main button
		myRemEventListener( buttonid[ current_menu_active ], "mouseover", "withSubsHover" );
		myRemEventListener( buttonid[ current_menu_active ], "mouseout", "withSubsDeHover" );
		// Display Submenu
		displaysubmenu( hassubs[ current_menu_active ] );
		// Remove the Events from the submenu
		myRemEventListener( buttonid[ current_menu_active ], "mouseout", "withSubsDeHoverHide" );
		myRemEventListener( buttonid[ current_menu_active ], "mouseover", "withSubsHoverHide" );
		// Remove the Event from the parent div
		myRemEventListener( document.getElementById( 'sub_' + current_menu_active ), "mouseout", "hidemenu" );
	}

	// Check for Active Sub Menu
	if ( issubfrom[ current_menu_active ] )
	{
		// Mark the Main Button
		buttonid[ issubfrom[ current_menu_active ] ].src = buttons[ issubfrom[ current_menu_active ] ]['act'];
		// Remove the Events from the main button
		myRemEventListener( buttonid[ issubfrom[ current_menu_active ] ], "mouseover", "withSubsHover" );
		myRemEventListener( buttonid[ issubfrom[ current_menu_active ] ], "mouseout", "withSubsDeHover" );
		// Display Submenu
		displaysubmenu( hassubs[ issubfrom[ current_menu_active ] ] );
		// Remove the Events from the submenu
		myRemEventListener( buttonid[ issubfrom[ current_menu_active ] ], "mouseout", "withSubsDeHoverHide" );
		myRemEventListener( buttonid[ issubfrom[ current_menu_active ] ], "mouseover", "withSubsHoverHide" );
		// Remove the Event from the parent div
		myRemEventListener( document.getElementById( 'sub_' + issubfrom[ current_menu_active ] ), "mouseout", "hidemenu" );
		// Remove the Events from the Sub Button
		myRemEventListener( buttonid[ current_menu_active ], "mouseover", "subHover" );
		myRemEventListener( buttonid[ current_menu_active ], "mouseout", "subDeHover" );
	}
}

//---
// Align Table Row Colors
function alignRowColors()
{
	var thetable = "";
	var currentrow = "";
	var thcount = 0;
	var rowcount = 0;
	// get all tables
	for ( var itables = 0; itables < document.getElementsByTagName( 'table' ).length; itables++ )
	{
		// Reset all counters
		rowcount = 0;
		thcount = 0;
		// Check if we have a table with the expected class
		if ( document.getElementsByTagName( 'table' )[ itables ].className == 'gluecksstelle_table' || document.getElementsByTagName( 'table' )[ itables ].className == 'kl_table' || document.getElementsByTagName( 'table' )[ itables ].className == 'rk_table' || document.getElementsByTagName( 'table' )[ itables ].className == 'ts_table' )
		{
			// expected table
			thetable = document.getElementsByTagName( 'table' )[ itables ];

			// process the rows
			for( var irows = 0; irows < thetable.getElementsByTagName( 'tr' ).length; irows++ )
			{
				// Check for th tags in this row
				currentrow = thetable.getElementsByTagName( 'tr' )[ irows ];
				if ( currentrow.getElementsByTagName( 'th' ).length )
				{
					// reset counts
					rowcount = 0;
					thcount = 0;
					// Change the
					thcount = currentrow.getElementsByTagName( 'th' ).length;
					currentrow.getElementsByTagName( 'th' )[ 0 ].className = "first";
					currentrow.getElementsByTagName( 'th' )[ thcount - 1 ].className = "last";
				} else {
					if ( rowcount == 0 )
					{
						currentrow.className = "row1";
					} else if ( rowcount == 1 ) {
						currentrow.className = "row2";
					} else if ( rowcount == 2 ) {
						currentrow.className = "row3";
					} else if ( rowcount == 3 ) {
						currentrow.className = "row4";
					} else if ( rowcount == 4 ) {
						currentrow.className = "row5";
					}

					if ( rowcount == 4 )
					{
						rowcount = 0;
					} else {
						rowcount++;
					}
				}
			}
		}
	}
}

//---
// Hide Submenu
function hidemenu()
{
	stoptimer = false;
	menutoclose = currentopened;
	setTimeout("dohidemenu()",50);
}

//---
// Hide da Menu
function dohidemenu()
{
	if ( stoptimer == false )
	{
		document.getElementById( menutoclose ).style.display = "none";
		buttonid[ issub[ menutoclose ] ].src = buttons[ issub[ menutoclose ] ]['inact'];

		myAddEventListener( buttonid[ issub[ menutoclose ] ], "onmouseover", "withSubsHover" );
		myAddEventListener( buttonid[ issub[ menutoclose ] ], "onmouseout", "withSubsDeHover" );
	}
}

//---
// Get Left Position Offset
function _get_obj_leftpos(obj)
{
	var left = obj.offsetLeft;

	while( (obj = obj.offsetParent) != null )
	{
		left += obj.offsetLeft;
	}

	return left;
}

//---
// Get Top Position Offset
function _get_obj_toppos(obj)
{
	var top = obj.offsetTop;

	while( (obj = obj.offsetParent) != null )
	{
		top += obj.offsetTop;
	}

	return top;
}

//---
// Display the Submenu
function displaysubmenu( themenu )
{
	if ( currentopened != themenu && currentopened != "" && currentopened != hassubs[ current_menu_active ] && currentopened != hassubs[ issubfrom[ current_menu_active ] ] )
	{
		document.getElementById( currentopened ).style.display = "none";
		buttonid[ issub[ currentopened ] ].src = buttons[ issub[ currentopened ] ]['inact'];
		myAddEventListener( buttonid[ issub[ currentopened ] ], "mouseover", "withSubsHover" );
		myAddEventListener( buttonid[ issub[ currentopened ] ], "mouseout", "withSubsDeHover" );
	}

	// Positioning the div correctly
	setTimeout("positionTheDiv( currentopened )", 50);

	currentopened = themenu;
	myAddEventListener( buttonid[ issub[ themenu ] ], "mouseout", "withSubsDeHoverHide" );
	myAddEventListener( buttonid[ issub[ themenu ] ], "mouseover", "withSubsHoverHide" );
	// Add Mouseout to the Parent Div
	myAddEventListener( document.getElementById( 'sub_' + issub[ themenu ] ), "mouseout", "hidemenu" );
}

//---
// Position the Div after a shor timeout to make sure, the parent element is loaded
function positionTheDiv( menu )
{
	newtop = 0;
	newtop = _get_obj_toppos( buttonid[ issub[ menu ] ]  ) + 33;
	document.getElementById( 'sub_' + issub[ menu ] ).style.top =  newtop + "px";
	newleft = 0;
	newleft = _get_obj_leftpos( buttonid[ issub[ menu ] ] );
	document.getElementById( 'sub_' + issub[ menu ] ).style.left = newleft + "px";
	document.getElementById( menu ).style.display = "";
}

//---
// Loads the Button Images
function loadButtons()
{
	for ( var i = 0; i < categories.length; i++ )
	{
		buttonid[ categories[ i ] ].src = buttons[ categories[ i ] ]['inact'];
	}

	for ( var i = 0; i < subcategories.length; i++ )
	{
		buttonid[ subcategories[ i ] ].src = buttons[ subcategories[ i ] ]['inact'];
	}
}

function myEvtControl( evt, attr )
{
	var e_out;
	var ie_var = "srcElement";
	var moz_var = "target";

	// IE Sucks :)
	if ( browser == "Internet Explorer" )
	{
		e_out = evt[ie_var][attr];
		return e_out;
	} else {
		e_out = evt[moz_var][attr];
		return e_out;
	}
}

//---
// Event Function for normal Hover Menus
function normalHover( evt )
{
	currentid = myEvtControl( evt, "id" ).substring(4);
	buttonid[ currentid ].src = buttons[ currentid ]['hover']
}

//---
// Event Funtction for normal deHover Menus
function normalDeHover( evt )
{
	currentid = myEvtControl( evt, "id" ).substring(4);
	buttonid[ currentid ].src = buttons[ currentid ]['inact']
}

//---
// Event Function for Hover when Menu has Subs
function withSubsHover( evt )
{
	currentid = myEvtControl( evt, "id" ).substring(4);
	buttonid[ currentid ].src = buttons[ currentid ]['hover'];
	displaysubmenu( hassubs[ currentid ] );
}

//---
// Event Function for Hover when Menu has Subs and hide
function withSubsHoverHide( evt )
{
	stoptimer = true;
	currentid = myEvtControl( evt, "id" ).substring(4);
	buttonid[ currentid ].src = buttons[ currentid ]['hover'];
}

//---
// Event Function for deHover when Menu has Subs and hide
function withSubsDeHoverHide( evt )
{
	currentid = myEvtControl( evt, "id" ).substring(4);
	buttonid[ currentid ].src = buttons[ currentid ]['hover'];
	hidemenu();
}


//---
// Event Function for deHover when Menu has Subs
function withSubsDeHover( evt )
{
	currentid = myEvtControl( evt, "id" ).substring(4);
	buttonid[ currentid ].src = buttons[ currentid ]['hover'];
}

//---
// Event Function for Hover within a Sub Menu
function subHover( evt )
{
	currentid = myEvtControl( evt, "id" ).substring(4);
	buttonid[ currentid ].src = buttons[ currentid ]['hover']
	stoptimer=true;
}

//---
// Event Function for deHover within a Sub Menu
function subDeHover( evt )
{
	currentid = myEvtControl( evt, "id" ).substring(4);
	buttonid[ currentid ].src = buttons[ currentid ]['inact'];
}

//---
// myAddEventListener
function myAddEventListener( el, ev, func )
{
	if ( el.addEventListener )
	{
		el.addEventListener( ev, eval(func), false );
		//return true;
	} else if ( el.attachEvent ) {
		var retval = el.attachEvent( "on" + ev, eval(func) );
		return retval;
	} else {
		if ( ev == "mouseover" )
		{
			el.onmouseover = func;
			return true;
		} else if ( ev == "mouseout" ) {
			el.onmouseout = func;
			return true;
		}
	}
}

//---
// myRemEventListener
function myRemEventListener( el, ev, func )
{
	if ( el.removeEventListener )
	{
		el.removeEventListener( ev, eval(func), false );
		//return true;
	} else if ( el.detachEvent ) {
		var retval = el.detachEvent( "on" + ev, eval(func) );
		return retval;
	}
}

//---
// Add Hover Events
function addHoverEvents()
{
	for ( var i = 0; i < categories.length; i++ )
	{
		if ( hassubs[ categories[ i ] ] )
		{

			myAddEventListener( buttonid[ categories[ i ] ], "mouseover", "withSubsHover" );
			myAddEventListener( buttonid[ categories[ i ] ], "mouseout", "withSubsDeHover" );
		} else {
			myAddEventListener( buttonid[ categories[ i ] ], "mouseover", "normalHover" );
			myAddEventListener( buttonid[ categories[ i ] ], "mouseout", "normalDeHover" );
		}
	}

	for ( var i = 0; i < subcategories.length; i++ )
	{
		myAddEventListener( buttonid[ subcategories[ i ] ], "mouseover", "subHover" );
		myAddEventListener( buttonid[ subcategories[ i ] ], "mouseout", "subDeHover" );
	}
}

//---
// Initialize the Button IDs
function initButtonID()
{
	buttonid = new Array();
	buttonid['home'] 			= document.getElementById( 'but_home' );
	buttonid['klotterie'] 		= document.getElementById( 'but_klotterie' );
	buttonid['alotterien'] 		= document.getElementById( 'but_alotterien' );
	buttonid['bestellung'] 		= document.getElementById( 'but_bestellung' );
	buttonid['aboutus'] 		= document.getElementById( 'but_aboutus' );
	buttonid['kontakt'] 		= document.getElementById( 'but_kontakt' );
	buttonid['topchancen']		= document.getElementById( 'but_topchancen' );
	buttonid['spielinfo']		= document.getElementById( 'but_spielinfo' );
	buttonid['gewinnabfrage']	= document.getElementById( 'but_gewinnabfrage' );
	//buttonid['tierschutz']		= document.getElementById( 'but_tierschutz' );
	//buttonid['rotkreuz']		= document.getElementById( 'but_rotkreuz' );
}

//---
// Initialize Language Folder
function initLanguage()
{
	if ( language == "en-US" )
	{
		language_folder = "en";
	} else {
		language_folder = "de";
	}
	// Set the Order button to german
	document.getElementById("ctl00_but_gotoorder").src = "../images/" + language_folder + "/button_bestellung.gif";
	
}

//---
// Initialize Buttons Array
function initButtons()
{
	buttons								= new Array();
	buttons['home']						= new Array();
	buttons['klotterie']				= new Array();
	buttons['alotterien']				= new Array();
	buttons['bestellung']				= new Array();
	buttons['aboutus']					= new Array();
	buttons['kontakt']					= new Array();
	buttons['topchancen']				= new Array();
	buttons['spielinfo']				= new Array();
	buttons['gewinnabfrage']			= new Array();
	//buttons['tierschutz']				= new Array();
	//buttons['rotkreuz']					= new Array();
	// Home
	buttons['home']['act']				= "/images/" + language_folder + "/menu_but_home_act.gif";
	buttons['home']['hover']			= "/images/" + language_folder + "/menu_but_home_hover.gif";
	buttons['home']['inact']			= "/images/" + language_folder + "/menu_but_home_inact.gif";
	// Klassenlotterie
	buttons['klotterie']['act']			= "/images/" + language_folder + "/menu_but_klotterie_act.gif";
	buttons['klotterie']['hover']		= "/images/" + language_folder + "/menu_but_klotterie_hover.gif";
	buttons['klotterie']['inact']		= "/images/" + language_folder + "/menu_but_klotterie_inact.gif";
	// Andere Lotterien
	buttons['alotterien']['act']		= "/images/" + language_folder + "/menu_but_alotterien_act.gif";
	buttons['alotterien']['hover']		= "/images/" + language_folder + "/menu_but_alotterien_hover.gif";
	buttons['alotterien']['inact']		= "/images/" + language_folder + "/menu_but_alotterien_inact.gif";
	// Bestellung
	buttons['bestellung']['act']		= "/images/" + language_folder + "/menu_but_bestellung_act.gif";
	buttons['bestellung']['hover']		= "/images/" + language_folder + "/menu_but_bestellung_hover.gif";
	buttons['bestellung']['inact']		= "/images/" + language_folder + "/menu_but_bestellung_inact.gif";
	// ?ber uns
	buttons['aboutus']['act']			= "/images/" + language_folder + "/menu_but_aboutus_act.gif";
	buttons['aboutus']['hover']			= "/images/" + language_folder + "/menu_but_aboutus_hover.gif";
	buttons['aboutus']['inact']			= "/images/" + language_folder + "/menu_but_aboutus_inact.gif";
	// Kontakt
	buttons['kontakt']['act']			= "/images/" + language_folder + "/menu_but_kontakt_act.gif";
	buttons['kontakt']['hover']			= "/images/" + language_folder + "/menu_but_kontakt_hover.gif";
	buttons['kontakt']['inact']			= "/images/" + language_folder + "/menu_but_kontakt_inact.gif";
	// Submenu Topchancen
	buttons['topchancen']['act']		= "/images/" + language_folder + "/menu_but_chancen_act.gif";
	buttons['topchancen']['hover']		= "/images/" + language_folder + "/menu_but_chancen_hover.gif";
	buttons['topchancen']['inact']		= "/images/" + language_folder + "/menu_but_chancen_inact.gif";
	// Submenu Spielinfo
	buttons['spielinfo']['act']			= "/images/" + language_folder + "/menu_but_spielinfo_act.gif";
	buttons['spielinfo']['hover']		= "/images/" + language_folder + "/menu_but_spielinfo_hover.gif";
	buttons['spielinfo']['inact']		= "/images/" + language_folder + "/menu_but_spielinfo_inact.gif";
	// Submenu Gewinnabfrage
	buttons['gewinnabfrage']['act']		= "/images/" + language_folder + "/menu_but_kgewinn_act.gif";
	buttons['gewinnabfrage']['hover']	= "/images/" + language_folder + "/menu_but_kgewinn_hover.gif";
	buttons['gewinnabfrage']['inact']	= "/images/" + language_folder + "/menu_but_kgewinn_inact.gif";
	// Submenu Tierschutzlotterie
	/*buttons['tierschutz']['act']		= "/images/" + language_folder + "/menu_but_tierschutz_act.gif";
	buttons['tierschutz']['hover']		= "/images/" + language_folder + "/menu_but_tierschutz_hover.gif";
	buttons['tierschutz']['inact']		= "/images/" + language_folder + "/menu_but_tierschutz_inact.gif";
	
	// Submenu Rotkreuzlotterie
	buttons['rotkreuz']['act']			= "/images/" + language_folder + "/menu_but_rotkreuz_act.gif";
	buttons['rotkreuz']['hover']		= "/images/" + language_folder + "/menu_but_rotkreuz_hover.gif";
	buttons['rotkreuz']['inact']		= "/images/" + language_folder + "/menu_but_rotkreuz_inact.gif";
*/
	categories[0] = "home";
	categories[1] = "klotterie";
	categories[2] = "alotterien";
	categories[3] = "bestellung";
	categories[4] = "aboutus";
	categories[5] = "kontakt";

	subcategories[0] = "topchancen";
	subcategories[1] = "spielinfo";
	subcategories[2] = "gewinnabfrage";
	//subcategories[3] = "tierschutz";
	//subcategories[3] = "rotkreuz";

	hassubs['klotterie']	= "sub_klotterie";
	//hassubs['alotterien']	= "sub_alotterien";

	issub['sub_klotterie']	= "klotterie";
	//issub['sub_alotterien']	= "alotterien";

	issubfrom['topchancen']		= "klotterie";
	issubfrom['spielinfo']		= "klotterie";
	issubfrom['gewinnabfrage'] 	= "klotterie";
	//issubfrom['tierschutz']		= "alotterien";
	//issubfrom['rotkreuz']		= "alotterien";

	preload_image = new Image();
	for ( var i = 0; i < categories.length; i++ )
	{
		preload_image.src = buttons[ categories[ i ] ]['act'];
		preload_image.src = buttons[ categories[ i ] ]['hover'];
		preload_image.src = buttons[ categories[ i ] ]['inact'];
	}

	for ( var i = 0; i < subcategories.length; i++ )
	{
		preload_image.src = buttons[ categories[ i ] ]['act'];
		preload_image.src = buttons[ categories[ i ] ]['hover'];
		preload_image.src = buttons[ categories[ i ] ]['inact'];
	}
}

//--
// Browser Detection
function browserDetection()
{
	if ( checkIt('konquerer') )
	{
		browser = "Konquerer";
	} else if ( checkIt('safari') ) {
		browser = "Safari";
	} else if ( checkIt('omniweb') ) {
		browser = "OmniWeb";
	} else if ( checkIt('opera') ) {
		browser = "Opera";
	} else if ( checkIt('webtv') ) {
		browser = "WebTV";
	} else if ( checkIt('icab') ) {
		browser = "iCab";
	} else if ( checkIt('msie') ) {
		browser = "Internet Explorer";
	} else if ( checkIt('mozilla') ) {
		browser = "Mozilla Firefox";
	} else if ( checkIt('compatible') ) {
		browser = "Netscape Navigator";
	} else {
		browser = "Unknown Browser";
	}
}

function checkIt( thestring )
{
	detect = navigator.userAgent.toLowerCase();

	return detect.indexOf( thestring ) + 1;
}