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 message=document.getElementsByTagName('form')[0].elements['message'].value;
	if(message.length>1000){message=message.substring(0,1000)};
	// open socket connection
	emailXMLHttpObj.open('POST','sendmail.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.getElementsByTagName('form')[0]));
	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('Geen contact kunnen maken :'+emailXMLHttpObj.statusText);
        }
    }
}
// display server response
function hideForm() {
document.getElementById('res').style.display='none';
}
function showForm() {
document.getElementById('res').style.display='block';
}
function displayServerResponse(){
	var status=document.getElementsByTagName('h5')[0].firstChild;
	if(!status){return};
	// display messages by <h5> header
	status.data=emailXMLHttpObj.responseText;
	if(status.data =='STATUS: Bericht met succes verstuurd'){
	hideForm();
	}else{
	showForm();
	};	
}

// 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;
}	


// initialize email client 
function intitializeEmailClient(){
	if(document.getElementById&&document.getElementsByTagName&&document.createElement){
		var sendbtn=document.getElementById('res').elements['send'];
		if(!sendbtn){return}
		// assign 'onlick' event handler to 'send' button
		sendbtn.onclick=function(){
			// display message
			document.getElementsByTagName('h5')[0].firstChild.data='STATUS: Bericht verzenden...';
			// send email request
			sendEmailRequest();	
		}
		var clearbtn=document.getElementsByTagName('form')[0].elements['clear'];
		if(!clearbtn){return}
		// assign 'onlick' event handler to 'clear message' button
		clearbtn.onclick=function(){document.getElementsByTagName('h5')[0].firstChild.data='STATUS: nieuw bericht'};
	}
}
// instantiate email XMLHttpRequest object
var emailXMLHttpObj=getXMLHttpRequestObject();

