/**
*
*  URL encode / decode
*  http://www.webtoolkit.info/
*
**/

var Url = {

    // public method for url encoding
    encode : function (string) {
        return escape(this._utf8_encode(string));
    },

    // public method for url decoding
    decode : function (string) {
        return this._utf8_decode(unescape(string));
    },

    // private method for UTF-8 encoding
    _utf8_encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";

        for (var n = 0; n < string.length; n++) {

            var c = string.charCodeAt(n);

            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }

        }

        return utftext;
    },

    // private method for UTF-8 decoding
    _utf8_decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;

        while ( i < utftext.length ) {

            c = utftext.charCodeAt(i);

            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }

        }

        return string;
    }

}


/////////////////


// #### AJAX

function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Dein Browser ist zu alt für dieses Tool.");
	}
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();


var temp_ajax_parameter1;
var temp_ajax_parameter2;
var temp_ajax_parameter3;
var temp_ajax_parameter4;
var temp_ajax_parameter5;
var temp_ajax_parameter6;
var temp_ajax_parameter7;
var temp_ajax_parameter8;
var temp_ajax_parameter9;
var temp_ajax_parameter10;
var temp_ajax_verarbeite;

function ajax_bereit() {

	if (searchReq.readyState == 4 || searchReq.readyState == 0)
		return true;
	else
		return false;
}


function ajax_senden(url,verarbeite,parameter1,parameter2,parameter3,parameter4,parameter5,parameter6,parameter7,parameter8,parameter9,parameter10) {

	if (ajax_bereit())
	{
		lade(1);

		temp_ajax_parameter1 = parameter1;
        temp_ajax_parameter2 = parameter2;
        temp_ajax_parameter3 = parameter3;
        temp_ajax_parameter4 = parameter4;
        temp_ajax_parameter5 = parameter5;
        temp_ajax_parameter6 = parameter6;
        temp_ajax_parameter7 = parameter7;
        temp_ajax_parameter8 = parameter8;
        temp_ajax_parameter9 = parameter9;
        temp_ajax_parameter10 = parameter10;
		temp_ajax_verarbeite = verarbeite;

		searchReq.open("GET", url, true);
		searchReq.onreadystatechange = ajax_empfangen
		searchReq.send(null);
	}
}

function ajax_empfangen() {

	if (searchReq.readyState == 4)
	{
		lade(0);
		
		temp_ajax_verarbeite(temp_ajax_parameter1,temp_ajax_parameter2,temp_ajax_parameter3,temp_ajax_parameter4,temp_ajax_parameter5,temp_ajax_parameter6,temp_ajax_parameter7,temp_ajax_parameter8,temp_ajax_parameter9,temp_ajax_parameter10);
	}
}


function lade(status) {
// 1 = lade, 0 = lade nicht

	if (status == 1)
		document.getElementById("lade1").className = "";
	else
		document.getElementById("lade1").className = "unsichtbar";
}


// Konakt-Formular
function check_formular() {
	
	var fehler = new Array();
	
	if (document.getElementById("name").value == "") fehler.push("Bitte geben Sie ihren Namen ein.");
	if (document.getElementById("email").value == "") fehler.push("Bitte geben Sie ihre Emailadresse ein.");
	if (document.getElementById("nachricht").value == "") fehler.push("Bitte geben Sie eine Nachricht ein.");
	
	if (fehler.length != 0)
	{
		document.getElementById("fehler_zeile_java").className = "";
		document.getElementById("fehler").innerHTML = "<ul>";
		
		for (var i = 0; i < fehler.length; ++i) 
					document.getElementById("fehler").innerHTML = document.getElementById("fehler").innerHTML + "<li>" + fehler[i] + "</li>";
					
		document.getElementById("fehler").innerHTML = document.getElementById("fehler").innerHTML + "</ul>";

		//document.getElementById("fehler_zeile_java").scrollIntoView(); 
		return false;
	}
	else
	{
		document.getElementById("fehler_zeile_java").className = "unsichtbar";
		return true;
	}
}

function formular_senden() {

	if (check_formular() == true) // Es gab keine Fehler
	{
		document.getElementById("kontakt-formular_text1").className = "";
		document.getElementById("kontakt-formular_text2").className = "unsichtbar";
		document.getElementById("kontakt-formular_text3").className = "unsichtbar";
		document.getElementById("kontakt-formular_text4").className = "unsichtbar";
		document.getElementById("kontakt-formular-nachricht1").className = "";
		
		ajax_senden("tools/kontakt_formular/inc_email_senden.php?ajax=true&name=" + Url.encode(document.getElementById("name").value) + 
		"&telefon=" + Url.encode(document.getElementById("telefon").value) + 
		"&email=" + Url.encode(document.getElementById("email").value)+ 
		"&nachricht=" + Url.encode(document.getElementById("nachricht").value), verarbeite_formular_senden);
	}
}

function verarbeite_formular_senden() {

	if (searchReq.responseText != "1")
	{
		document.getElementById("kontakt-formular_text2").className = "";
		document.getElementById("kontakt-formular_text3").className = "unsichtbar";		
	}
	else
	{		
		document.getElementById("kontakt-formular_text2").className = "unsichtbar";
		document.getElementById("kontakt-formular_text3").className = "";
	}
	
	document.getElementById("kontakt-formular_text1").className = "unsichtbar";
	document.getElementById("kontakt-formular_text4").className = "";
}

function formular_schliessen() {

	document.getElementById("kontakt-formular-nachricht1").className = "unsichtbar";
}
