/**
* $()    = vervanging getElementById
* addEvent( node, type, listener )
* removeEvent(node, type, listener )
* getElementsByClassName(className, tag, parent)
* function addClass(element,value)
* toggleDisplay(node, value)
* makerequest(serverPage, objID)
* addLoadEvent(func)
* correctPNG() in IE 5.5 , 6
**/



if(document.all && !document.getElementById) {
    document.getElementById = function(id) {
         return document.all[id];
    }
}

(function(){
if(!window['EdW']) {
    window['EdW'] = {};
}
window['EdW']['$'] = $;
window['EdW']['addEvent'] = addEvent;
window['EdW']['removeEvent'] = removeEvent;
window['EdW']['getElementsByClassName'] = getElementsByClassName;
window['EdW']['addClass'] = addClass;
window['EdW']['toggleDisplay'] = toggleDisplay;
window['EdW']['makerequest'] = makerequest;
window['EdW']['addLoadEvent'] = addLoadEvent;
window['EdW']['correctPNG'] = correctPNG;
window['EdW']['intitializeEmailClient'] = intitializeEmailClient;

function $() {
    var elements = new Array();
     for (var i = 0; i < arguments.length; i++) {
        var element = arguments[i];      
         if (typeof element == 'string') {
            element = document.getElementById(element);
        }
        if (arguments.length == 1) {
            return element;
        }
        elements.push(element);
    }
    return elements;
};

function addEvent( node, type, listener ) {
    if(!isCompatible()) { return false }
    if(!(node = $(node))) return false;
    
    if (node.addEventListener) {
        // W3C method
        node.addEventListener( type, listener, false );
        return true;
    } else if(node.attachEvent) {
        // MSIE method
        node['e'+type+listener] = listener;
        node[type+listener] = function(){node['e'+type+listener]( window.event );}
        node.attachEvent( 'on'+type, node[type+listener] );
        return true;
    }
    return false;
};

function removeEvent(node, type, listener ) {
    if(!(node = $(node))) return false;
    if (node.removeEventListener) {
        node.removeEventListener( type, listener, false );
        return true;
    } else if (node.detachEvent) {
        // MSIE method
        node.detachEvent( 'on'+type, node[type+listener] );
        node[type+listener] = null;
        return true;
    }
    return false;
};

function getElementsByClassName(className, tag, parent){
    parent = parent || document;
    if(!(parent = $(parent))) return false;
        var allTags = (tag == "*" && parent.all) ? parent.all : parent.getElementsByTagName(tag);
    var matchingElements = new Array();
    className = className.replace(/\-/g, "\\-");
    var regex = new RegExp("(^|\\s)" + className + "(\\s|$)");   
    var element;
    for(var i=0; i<allTags.length; i++){
        element = allTags[i];
        if(regex.test(element.className)){
            matchingElements.push(element);
        }
    }
    return matchingElements;
};

function addClass(element,value) {
  if (!element.className) {
    element.className = value;
  } else {
    newClassName = element.className;
    newClassName+= " ";
    newClassName+= value;
    element.className = newClassName;
  }
}
function toggleDisplay(node, value) {
    if(!(node = $(node))) return false;
    if ( node.style.display != 'none' ) {
        node.style.display = 'none';
    } else {
        node.style.display = value || '';
    }
    return true;
}

var xmlhttp = false;
try {
	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
	try {
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (E) {
		xmlhttp = false;
	}
}
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
	xmlhttp = new XMLHttpRequest();
}
//var fId;
function makerequest(serverPage, objID) {
	
	var obj = document.getElementById(objID);
	xmlhttp.open("GET", serverPage);
	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
			obj.innerHTML = xmlhttp.responseText;
			//addLoadEvent(correctPNG);
			page=serverPage;
		switch (page)
		{
		case 'contact.htm':
		//fId='res';
		  intitializeEmailClient('res');
		  break;
		  default:
		  break;
		}
		}
	}
	xmlhttp.send(null);
}
function hideForm() {
document.getElementById('res').style.display='none';
}
function showForm() {
document.getElementById('res').style.display='block';
}
function displayServerResponse(){
	var status=document.getElementsByTagName('h6')[0].firstChild;
	if(!status){return};
	// display messages by <h1> header
	status.data=emailXMLHttpObj.responseText;
	if(status.data =='STATUS: Bericht met succes verstuurd'){
	hideForm();
	}else{
	showForm();
	};	
}
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);
        }
    }
}
var emailXMLHttpObj=getXMLHttpRequestObject();

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 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;
}

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(){
		hideForm();
			// display message
			document.getElementsByTagName('h6')[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('h6')[0].firstChild.data='Bericht niet verzonden'};
	}
}
function addLoadEvent(fn){
var oldfn;
   if (typeof window.addEventListener != 'undefined'){
      window.addEventListener('load', fn, false);
   }
   else if (typeof document.addEventListener != 'undefined'){
      document.addEventListener('load', fn, false);
   }
   else if (typeof window.attachEvent != 'undefined'){
      window.attachEvent('onload', fn);
   }
   else{
      oldfn = window.onload;
      if (typeof window.onload != 'function'){
         window.onload = fn;
      }
      else{
         window.onload = function() {
            oldfn();
            fn();
			
         };
      }
   }
}

/*function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}*/
function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6.
{
var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])
if ((version >= 5.5) && (document.body.filters))
{
for(var i=0; i<document.images.length; i++)
{
var img = document.images[i]
var imgName = img.src.toUpperCase()
if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
{
var imgID = (img.id) ? "id='" + img.id + "' " : ""
var imgClass = (img.className) ? "class='" + img.className + "' " : ""
var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
var imgStyle = "display:inline-block;" + img.style.cssText
if (img.align == "left") imgStyle = "float:left;" + imgStyle
if (img.align == "right") imgStyle = "float:right;" + imgStyle
if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
var strNewHTML = "<span " + imgID + imgClass + imgTitle
+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
img.outerHTML = strNewHTML
i = i-1
}
}
}
}

})();
if (typeof window.attachEvent != 'undefined'){
      window.attachEvent('onload', EdW.correctPNG);
   }
//window.attachEvent("onload", EdW.correctPNG);

