var hoverColor, linkColor, activeColor;			// Globale Variablen, so dass Farbwerte nicht bei jedem Event neu ermittelt werden muessen

function setColors()  {
/* Minimal-Version, Farben werden statisch gesetzt.
   Kann durch eine Funktion ersetzt werden, welche die Stylesheets dynamisch ausliest. */
   hoverColor  = '#ff0000';
   linkColor   = '#00324c';
   activeColor = '#000000';
}

function getColor(identifier) {
/* Minimal Version, identifier kann bei dynamischem Auslesen der Farben in ein Objekt
   auch als Methodenparameter verwendet werden. */
	switch(identifier) {
		case '.menupattern a:hover':
			return hoverColor;
			break;
		case '.menupattern a:link':
			return linkColor;
			break;
		case '.menupattern a:active':
			return activeColor;
			break;
		case '.submenupattern a:hover':
			return hoverColor;
			break;
		case '.submenupattern a:link':
			return linkColor;
			break;
		case '.submenupattern a:active':
			return activeColor;
			break;
		};
}

function menuClick(e) {
// Aufrufen des Links, wenn ins Feld geklickt wird
	window.location.href = this.firstChild;
}

function menuOver(e) {
// Einfaerben des Links, wenn Maus im Feld steht
	var farbe;
	farbe = getColor('.'+this.className+' a:hover');
	if(farbe) {
		this.firstChild.style.color = farbe;
	};
}

function menuOut(e) {
// Ruecksetzen der Einfaerbung, wenn Maus das Feld verlaesst
	var farbe;
	farbe = getColor('.'+this.className+' a:link');
	if(farbe) {
		this.firstChild.style.color = farbe;
	};
}

function menuDown(e) {
// Einfaerben des Links, wenn ins Feld geklickt wird
	var farbe;
	farbe = getColor('.'+this.className+' a:active');
	if(farbe) {
		this.firstChild.style.color = farbe;
	};
}

function activateMenu() {
/* Buttons die einen Link als Element enthalten werden mit Event-Funktionen
   belegt, damit die :hover und :activate Auszeichnungen quasi fuer das
   ganze Button-Feld gelten.
*/
	var button,lnk;
	button = document.getElementById('menu').firstChild;
	while (button != null) {
		if(button.nodeName != '#text' && button.nodeName != 'HR' && button.firstChild.nodeName == 'A') {
			button.onclick = menuClick;
			button.onmouseover = menuOver;
			button.onmouseout = menuOut;
			button.onmousedown = menuDown;
			if(button.style && button.style.cursor) {
				button.style.cursor = 'pointer';
			};
		};
		button = button.nextSibling;
	};
}



function validateOrder() {
/* Check-Funktion fuer die Felder des Bestellforumlars
*/
	var result = true;
	var message = 'Please fill out these fields:\n';
	if(!document.getElementById('coolSelect').checked && !document.getElementById('tinySelect').checked) {
		result = false;
		message += '- Choose a Hosting Plan\n';
	};

	if(document.getElementById('domain').value=='') {
		result = false;
		message += '- Domain-Name\n';
	};

	if(document.getElementById('start').value=='') {
		result = false;
		message += '- Startdate\n';
	};

	if(document.getElementById('name').value=='') {
		result = false;
		message += '- Contact Name\n';
	};
	
	if(document.getElementById('address').value=='') {
		result = false;
		message += '- Contact Address\n';
	};

	if(result == false ) {
		window.alert(message);
	};

	return result;
}

function setValidateOrder() {
// Wenn das Bestellfromular auf der Seite vorhanden ist, wird der Submit-Event mit einer Check-Funktion belegt
	var orderForm = document.getElementById('orderform');
	if(orderForm) {
		orderForm.onsubmit = validateOrder;
	};
}


function init() {
// Allgemeine Init-Funktion, ruft weitere Funktionen auf, die onLoad ausgefuehrt werden sollen	
	if(document.getElementById) {		// Nur fuer DOM-faehige Browser
		setColors();
		activateMenu();
		setValidateOrder();
	};
}

// Load-Event des Body-Objektes mit der init()-Funktion belegen
window.onload = init;
