// initializes the script

function addLoadEvent(intitializeEmailClient) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = intitializeEmailClient;
  } else {
    window.onload = function() {
      oldonload();
      intitializeEmailClient();
    }
  }
}

addLoadEvent(intitializeEmailClient);






// getXMLHttpRequest object
function getXMLHttpRequestObject(){
	var xmlobj;
    // check for existing requests
    if(xmlobj!=null&&xmlobj.readyState!=0&&xmlobj.readyState!=4){
        xmlobj.abort();
    }
    try{
        // instantiate object for Mozilla, Nestcape, etc.
        xmlobj=new XMLHttpRequest();
    }
    catch(e){
        try{
            // instantiate object for Internet Explorer
            xmlobj=new ActiveXObject('Microsoft.XMLHTTP');
        }
        catch(e){
            // Ajax is not supported by the browser
            xmlobj=null;
            return false;
        }
    }
	return xmlobj;
}
// request 'sendmail.php' file - sends email message
function sendEmailRequest(){
	var botschaft=document.getElementById('newsletter').elements['email'].value;
	if(botschaft.length>1000){botschaft=botschaft.substring(0,1000)};
	// open socket connection
	emailXMLHttpObj.open('POST','php/newsletter.php',true);
	// set form http header
	emailXMLHttpObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
	// get form values and send http request
   	emailXMLHttpObj.send(getFormValues(document.getElementById('newsletter')));
	emailXMLHttpObj.onreadystatechange=emailStatusChecker;
}
// check status of email requester object
function emailStatusChecker(){
    // if mail request is completed
    if(emailXMLHttpObj.readyState==4){
        if(emailXMLHttpObj.status==200){
			// if status == 200 display server response
			displayServerResponse();
        }
        else{
            alert('Failed to get response :'+emailXMLHttpObj.statusText);
        }
    }
}
// display server response
function displayServerResponse(){
	var status=document.getElementById('newsletteralert').firstChild;
	if(!status){return};
	// display messages by <h1> header
	status.data=emailXMLHttpObj.responseText;	
}
// get form values
function getFormValues(fobj){
    var str='';
    for(var i=0;i< fobj.elements.length;i++){
        str+=fobj.elements[i].name+'='+ escape(fobj.elements[i].value)+'&';
    }
    str=str.substr(0,(str.length-1));
    return str;
}

	
	

function CheckInput () {
  for (i = 0; i < document.getElementById('newsletter').elements.length; ++i)
  	if (document.getElementById('newsletter').elements['name'].value == "Ihr Name *") {
  		document.getElementById('newsletter').elements['name'].value == "";
        document.getElementById('newsletter').elements['name'].focus();
        return false;
    }
    
   
    
    if (document.getElementById('newsletter').elements['email'].value == "Ihre Email Adresse *") {
    	document.getElementById('newsletter').elements['email'].value == "";
        document.getElementById('newsletter').elements['email'].focus();
        return false;
    }
   
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   	var emailaddresse = document.getElementById('newsletter').elements['email'].value;
   	if(reg.test(emailaddresse) == false) {
      document.getElementById('newsletter').elements['email'].focus();
      document.getElementById('newsletteralert').firstChild.data='Kontrollieren Sie bitte Ihre Email Adresse.';
      return false;
     }
     
   
   	
    document.getElementById('newsletter').reset();
  	return false;
}




// initialize email client 
function intitializeEmailClient(){
	if(document.getElementById&&document.getElementsByTagName&&document.createElement){
		var sendbtn=document.getElementById('newsletter').elements['send'];
		if(!sendbtn){return};
		// assign 'onlick' event handler to 'send' button
		sendbtn.onclick=function(){
			// display message
			setTimeout('CheckInput()', 1500);
			document.getElementById('newsletteralert').firstChild.data='Ihre Email wird gesendet...';
			// send email request
			sendEmailRequest();	
		}
		
	}
}
// instantiate email XMLHttpRequest object
var emailXMLHttpObj=getXMLHttpRequestObject();
// instantiate contact XMLHttpRequest object

var insertXMLHttpObj=getXMLHttpRequestObject();


/*function cursor()
{
document.formfelder.name.focus();

}*/


/**
*
*  UTF-8 data encode / decode
*  http://www.webtoolkit.info/
*
**/

var Utf8 = {

	// public method for url encoding
	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;
	},

	// public method for url decoding
	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;
	}

}