// JavaScript Document

var active;

function init(){
	var items = document.getElementById("mainmenu").childNodes;
	for(var i=0; i<items.length; i++){
		if(items[i].nodeName.toLowerCase() == "a" && items[i].href && items[i].href == window.location.href){
			active = items[i];
			items[i].style.backgroundImage = "url('/assets/menu_main/" + items[i].id + "_2.gif')";
			break;
		}
	}
	if(navigator.appName != "Microsoft Internet Explorer") return;
	var h = parseInt(window.document.body.offsetHeight, 10);
	if(h < 585) document.getElementById("container").style.height = "532px";
}

function mw_over(ref, dir){
	if(ref != active) ref.style.backgroundImage = "url('" + dir + ref.id + "_1.gif')";
}

function mw_out(ref, dir){
	if(ref != active) ref.style.backgroundImage = "url('" + dir + ref.id + "_0.gif')";
}

function mw_preload(){
	var images = new Array();
	for(var i=0; i<mw_preload.arguments.length; i++){
		document['pre_' + i] = new Image();
		document['pre_' + i].src = mw_preload.arguments[i];
	}
}

function switchlanguage(lan){
	var loc = window.location.href.substring(7);
	var dom = loc.substring(0,loc.indexOf("/")+1);
	var path = loc.substring(loc.indexOf("/", loc.indexOf("/")+1));
	window.location.href = "http://" + dom + lan + path;
}

b64s='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';

function decode(t){
	var r=''; var m=0; var a=0; var c;
	for(n=0; n<t.length; n++){
		c=b64s.indexOf(t.charAt(n));
		if(c >= 0){
			if(m) r+=String.fromCharCode((c << (8-m))&255 | a);
			a = c >> m;
			m+=2;
			if(m==8) m=0;
		}
	}
	return r;
}

function insertMailto(str, subj, css){
	document.write("<a href=\"mailto:" + decode(str) + "?subject=" + subj + "\">" + decode(str) + "<\/a>");
}

function highlight(ref){
	ref.parentNode.className = "input_active";
}

function unhighlight(ref){
	ref.parentNode.className = "input";
}

function showerror(ref){
	ref.parentNode.className = "input_error";
}

var errorstrings = {
	de:{
		name:"Bitte Namen eintragen.",
		mail1:"Bitte Mailadresse eintragen.",
		mail2:"Mailadresse ungültig.",
		message:"Bitte Nachricht eintragen."
	},
	en:{
		name:"Please enter name.",
		mail1:"Please enter email-address.",
		mail2:"Invalid email-address.",
		message:"Please enter message."
	}
}

function checkForm(uri, form, message, lan){
	var error = false;
	if(document.forms[form].referrer_name.value == "" || document.forms[form].referrer_name.value == errorstrings[lan].name){
		document.forms[form].referrer_name.value = errorstrings[lan].name;
		showerror(document.forms[form].referrer_name);
		error = true;
	}else{
		unhighlight(document.forms[form].referrer_name);
	}
	if(document.forms[form].referrer.value == "" || document.forms[form].referrer.value == errorstrings[lan].mail1){
		document.forms[form].referrer.value = errorstrings[lan].mail1;
		showerror(document.forms[form].referrer);
		error = true;
	}else{
		unhighlight(document.forms[form].referrer);
	}
	if(document.forms[form].referrer.value != errorstrings[lan].mail1 && !check_regex(document.forms[form].referrer.value, "mail")){
		document.forms[form].referrer.value = errorstrings[lan].mail2;
		showerror(document.forms[form].referrer);
		error = true;
	}else if(document.forms[form].referrer.value != errorstrings[lan].mail1){
		unhighlight(document.forms[form].referrer);
	}
	if(message){
		if(document.forms[form].messagetext.value == "" || document.forms[form].messagetext.value == errorstrings[lan].message){
			document.forms[form].messagetext.value = errorstrings[lan].message;
			showerror(document.forms[form].messagetext);
			error = true;
		}else{
			unhighlight(document.forms[form].messagetext);
		}
	}
	if(!error) sndReq(uri, form, lan);
	return false;
}

function check_regex(input, typ){
	if(!input) return false;
	switch(typ){
		case "date_dd":
			if(input < 1 || input > 31) return false;
		break;
		case "date_mm":
			if(input < 1 || input > 12) return false;
		break;
		case "date_yyyy":
			if(input < 1000 || input > 9999) return false;
		break;
		case "mail":
			val = /\w.+@\w.+\.\w.+/;
			if(!val.test(input)) return false;
		break;
		case "num":
			val = /\d/;
			if(!val.test(input)) return false;
		break;
		case "num_x":
			val = /\D/;
			if(!val.test(imput)) return false;
		break;
		default:
			return false;
		break;
	}
	return true;
}

function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}

var http = createRequestObject();
var ajaxstatics = new Object();

function sndReq(uri, form, lan){
	var arr = new Array();
	for(var i=0; i<document.forms[form].length; i++){
		arr.push(document.forms[form][i].name + "=" + document.forms[form][i].value);
	}
	var data = arr.join("&");
    http.open('get', uri + '?' + data);
    http.onreadystatechange = handleResponse;
    http.send(null);
	if(lan == "de") document.forms[form].submit.value = "Sende Nachricht …";
	else document.forms[form].submit.value = "Submitting message …";
	document.forms[form].submit.disabled = true;
	ajaxstatics.lan = lan;
}

function handleResponse(){
    if(http.readyState == 4){
        var response = parseInt(http.responseText,10);
		document.getElementById("mailform").style.height = "0px";
		document.getElementById("mailform").style.overflow = "hidden";
		if(ajaxstatics.lan == "de"){
			if(response == 0) document.getElementById("formresult").innerHTML = "<p style=\"color:#1d8700;\">Ihre Nachricht wurde erfolgreich versendet.</p><p>Wir werden uns umgehend mit Ihnen in Verbindung setzen.</p>";
			else document.getElementById("formresult").innerHTML = "<p style=\"font-weight:bold;color:#bf0000;\">Ihre Nachricht konnte nicht versendet werden.</p><p>Bitte versuchen Sie es zu einem späteren Zeitpunkt erneut.<br />Fehler " + response + "</p>";
		}else{
			if(response == 0) document.getElementById("formresult").innerHTML = "<p style=\"color:#1d8700;\">Sending your message was successfull.</p><p>We will contact you as soon as possible.</p>";
			else document.getElementById("formresult").innerHTML = "<p style=\"font-weight:bold;color:#bf0000;\">Sending your message failed.</p><p>Please try again later.<br />Errorcode " + response + "</p>";
		}
    }
}
