/**
 * @author Jeroen van Hezik
 */
// stores the reference to the XMLHttpRequest object
var xmlHttp = createXmlHttpRequestObject();

// retrieves the XMLHttpRequest object
function createXmlHttpRequestObject() {
// will store the reference to the XMLHttpRequest object
	var xmlHttp;
	// if running Internet Explorer
	if(window.ActiveXObject) {
		try {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {
			xmlHttp = false;
		}
	} else {		// if running Mozilla or other browsers
		try {
			xmlHttp = new XMLHttpRequest();
		} catch (e) {
			xmlHttp = false;
		}
	}
	// return the created object or display an error message
	if (!xmlHttp) {
		alert("Error creating the XMLHttpRequest object.");
		return null;
	} 	else {
		return xmlHttp;
	}
}

// make asynchronous HTTP request using the XMLHttpRequest object
function process() {
// proceed only if the xmlHttp object isn't busy
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) {
		// retrieve the name typed by the user on the form
		name = encodeURIComponent(document.getElementById("myName").value);
		// execute the quickstart.php page from the server
		xmlHttp.open("GET", "quickstart.php?name=" + name, true);
		// define the method to handle server responses
		xmlHttp.onreadystatechange = handleServerResponse;
		// make the server request
		xmlHttp.send(null);
	} else { // if the connection is busy, try again after one second
		setTimeout('process()', 1000);
	}
}

// executed automatically when a message is received from the server
function handleServerResponse() {
	// move forward only if the transaction has completed
	if (xmlHttp.readyState == 4) {
		// status of 200 indicates the transaction completed successfully
		if (xmlHttp.status == 200) {
			// extract the XML retrieved from the server
			xmlResponse = xmlHttp.responseXML;
			// obtain the document element (the root element) of the XML structure
			xmlDocumentElement = xmlResponse.documentElement;
			// get the text message, which is in the first child of
			// the the document element
			helloMessage = xmlDocumentElement.firstChild.data;
			// update the client display using the data received from the server
			document.getElementById("divMessage").innerHTML = '<i>' + helloMessage + '</i>';
			// restart sequence
			setTimeout('process()', 1000);
		} else {  // a HTTP status different than 200 signals an error
			alert("There was a problem accessing the server: " + xmlHttp.statusText);
		}
	}
}
function toggleWachtwrd(ingelogd) {
	if (ingelogd) {
		document.getElementById('toonwachtw0').style.display="none";
		document.getElementById('toonwachtw1').style.display="none";
		document.getElementById('toonwachtw2').style.display="none";
		document.getElementById('naw_inlog').style.display="none"; 
	} else {
		document.getElementById('toonwachtw0').style.display="";
		document.getElementById('toonwachtw1').style.display="";
		document.getElementById('toonwachtw2').style.display="";
		document.getElementById('naw_inlog').style.display=""; 
	}
}	
function toggleVerzendadres(stand) {
	if (stand == 0) {
		document.getElementById('toonverzend1L').style.display="none";
		document.getElementById('toonverzend1R').style.display="none";
		document.getElementById('toonverzend2L').style.display="none";
		document.getElementById('toonverzend2R').style.display="none";
		document.getElementById('toonverzend3L').style.display="none";
		document.getElementById('toonverzend3R').style.display="none";
		try {
	  		document.getElementById('toonverzend4L').style.display = "none";
	  	} 	finally {
	  	}
		try {
			document.getElementById('toonverzend4R').style.display="none";
	  	} 	finally {
	  	}
		document.getElementById('toonverzend5L').style.display="none";
		document.getElementById('toonverzend5R').style.display="none";
		document.getElementById('toonverzend6L').style.display="none";
		document.getElementById('toonverzend6R').style.display="none";
		document.getElementById('toonverzend7L').style.display="none";
		document.getElementById('toonverzend7R').style.display="none";
		document.getElementById('toonverzend8L').style.display="none";
		document.getElementById('toonverzend8R').style.display="none";
		document.getElementById('toonverzend9L').style.display="none";
		document.getElementById('toonverzend9R').style.display="none";
	} else {
		document.getElementById('toonverzend1L').style.display="";
		document.getElementById('toonverzend1R').style.display="";
		document.getElementById('toonverzend2L').style.display="";
		document.getElementById('toonverzend2R').style.display="";
		document.getElementById('toonverzend3L').style.display="";
		document.getElementById('toonverzend3R').style.display="";
		try {
	  		document.getElementById('toonverzend4L').style.display = "";
	  	} 	finally {
	  	}
		try {
			document.getElementById('toonverzend4R').style.display="";
	  	} 	finally {
	  	}
		document.getElementById('toonverzend5L').style.display="";
		document.getElementById('toonverzend5R').style.display="";
		document.getElementById('toonverzend6L').style.display="";
		document.getElementById('toonverzend6R').style.display="";
		document.getElementById('toonverzend7L').style.display="";
		document.getElementById('toonverzend7R').style.display="";
		document.getElementById('toonverzend8L').style.display="";
		document.getElementById('toonverzend8R').style.display="";
		document.getElementById('toonverzend9L').style.display="";
		document.getElementById('toonverzend9R').style.display="";
	}
	
}
function toggleCadeau() {
	var stand = document.getElementById('cadeau').selectedIndex;
	if (stand==0) {
		document.getElementById('tooncadeauL').style.display="none";
		document.getElementById('tooncadeauM').style.display="none";
		document.getElementById('tooncadeauR').style.display="none";
		document.getElementById('tooncadeau1L').style.display="none";
		document.getElementById('tooncadeau1M').style.display="none";
		document.getElementById('tooncadeau1R').style.display="none";
	} else {
		document.getElementById('tooncadeauL').style.display="";
		document.getElementById('tooncadeauM').style.display="";
		document.getElementById('tooncadeauR').style.display="";
		document.getElementById('tooncadeau1L').style.display="";
		document.getElementById('tooncadeau1M').style.display="";
		document.getElementById('tooncadeau1R').style.display="";
	}
}

function enablePayment() {
	var stand = document.forms[0].akkoord.checked;
	if (stand) {
		document.getElementsByName('paypal')[0].disabled = false;
		document.getElementsByName('ideal')[0].disabled = false;
		document.getElementsByName('paypal')[1].disabled = false;
		document.getElementsByName('ideal')[1].disabled = false;
	} else {
		document.getElementsByName('paypal')[0].disabled = true;
		document.getElementsByName('ideal')[0].disabled = true;
		document.getElementsByName('paypal')[1].disabled = true;
		document.getElementsByName('ideal')[1].disabled = true;
	}
}

function Refresh(object, min) {
	if (min==0) { // selectboxes
		if(object.value > min) {
			if (object.className=='wrongfields') {
				object.className = '';
			}
		}		
	} else {
		if(object.value.length >= min) {
			if (object.className=='wrongfields') {
				object.className = '';
			}
		}
	}
}

function valid(o,w,caption){
	var r={
'special':/[\d&' '&'~'&'`'&'!'&'@'&'#'&'$'&'%'&'\^'&'*'&'('&')'&'_'&'='&'\['&'\]'&'{'&'}'&'\:'&';'&'\''&'\"'&'|'&'\\'&'<'&'>'&'.'&','&'?'&'\/']/g,
'quotes':/['\''&'\"']/g,
'notnumbers':/[^\d]/g
	}
  o.value = o.value.replace(r[w],'');
	o.value = o.value.toLowerCase();
	document.getElementById('woordvrij').style.display="none";
	document.getElementById('zoekofregistreer').value=caption;
	document.getElementById('zoekofregistreer').name="zoeken";
	document.getElementById('zoekofregistreer').style.display="";
}

function beep() {
   java.awt.Toolkit.getDefaultToolkit().beep();
   }

function checkLength(object, max, message) {
	var lengte = object.value.length
	if (lengte > max) {
		object.value = object.value.substr(0,max);
		lengte=255;
		document.getElementById('tellermotivatie').value=lengte+' / ' +max;
		document.getElementById('tellermotivatie').style.fontWeight='bold';
		beep();
	} else {
		document.getElementById('tellermotivatie').style.fontWeight='normal';
		document.getElementById('tellermotivatie').value=lengte+' / ' +max;
	}
}

function CheckProduct(){
	var selectedprod = document.getElementsByName('reg_prod_id')[0].value;
	var bewaarbut = document.getElementById('save');
	if (selectedprod==0) {
		var product = document.getElementById('product').value;
		var methode = document.getElementById('betmethode').value;
		var datum = document.getElementById('betdatum').value;
		var vandaag = new Date();
		var datumvandaag = vandaag.getDate() + "-" + (vandaag.getMonth()+1) + "-" + vandaag.getFullYear();
		if (datum=="" && (product>0 || methode>0)) {
			document.getElementById('betdatum').value = datumvandaag;
		}
		if (product > 0 ) {
			if (methode > 0 && datum!="" && isDate(datum)) {
				document.getElementById('addextra').style.display='';
				bewaarbut.style.display='none';
			}
			document.getElementById('betmethode').style.visibility='visible';
			document.getElementById('betdatum').style.visibility='visible';
		} else {
			document.getElementById('addextra').style.display='none';
			document.getElementById('betmethode').style.visibility='hidden';
			document.getElementById('betdatum').style.visibility='hidden';
			bewaarbut.style.display='';
			bewaarbut.title = 'Bewaar de gegevens van deze registratie';
		}
	} else {
		bewaarbut.title = 'Bewaar de betaalgegevens van dit extra product';
	}
}

function Initialize(tonen) {
	if (tonen) {  // bij modus 1: display tonen
		document.getElementById('woordvrij').style.visibility="visible";
  } else {
		document.getElementById('woordvrij').style.visibility="hidden";
	}
}
function Wijzigscherm(tonen) {
	if (tonen) {  // bij modus 1: display tonen
		document.getElementById('aanpassingen').style.visibility="visible";
		document.getElementById('inloggen').style.visibility="hidden";
  } else {
		document.getElementById('aanpassingen').style.visibility="hidden";
		document.getElementById('inloggen').style.visibility="visible";
	}
}

function SetVolledigenaam() {
	var volledigenaam = document.getElementById('certnaam').value;
	if (volledigenaam =="") {
		var voorvoegsel = document.getElementById('voorvoegsel').value;
		volledigenaam = document.getElementById('voornaam').value;
		if (voorvoegsel != "") {
			volledigenaam += " " + voorvoegsel;	
		}
		volledigenaam += " " + document.getElementById('achternaam').value;
		document.getElementById('certnaam').value = volledigenaam;
		if (document.getElementById('certnaam').className=='wrongfields') {
			document.getElementById('certnaam').className = '';
		}
	}
}

function getVersion() {
  if (typeof(window.innerWidth) == 'number') {
  	//Non-IE
			version = "Non-IE";
	}	else if (document.documentElement && document.documentElement.clientHeight) {
  	//IE 6+ in 'standards compliant mode'
			version = "IE6+";
		}
		else 
			if (document.body && document.body.clientHeight) {
				//IE 4 compatible
				version = "IE4";
			}
}

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}

function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr){
// Declaring valid date character, minimum year and maximum year
var dtCh="-";
var minYear=1900;
var maxYear=2200;
	var daysInMonth = DaysArray(12);
	var pos1=dtStr.indexOf(dtCh);
	var pos2=dtStr.indexOf(dtCh,pos1+1);
	var strDay=dtStr.substring(0,pos1);
	var strMonth=dtStr.substring(pos1+1,pos2);
	var strYear=dtStr.substring(pos2+1);
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	var month=parseInt(strMonth);
	var day=parseInt(strDay);
	var year=parseInt(strYear);
	if (pos1==-1 || pos2==-1){
		alert("Het datum formaat moet zijn: dd-mm-jjjj");
		return false;
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Vul a.u.b. een geldige maand in");
		return false;
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Vul a.u.b. een geldige dag in");
		return false;
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Vul a.u.b. een geldig 4-cijferig jaartal in tussen "+minYear+" en "+maxYear);
		return false;
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Vul a.u.b. een geldige datum in");
		return false;
	}
return true;
}

function getHeight() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myHeight = window.innerHeight;
  } else if( document.documentElement &&
      document.documentElement.clientHeight ) {
    //IE 6+ in 'standards compliant mode'
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && document.body.clientHeight ) {
    //IE 4 compatible
    myHeight = document.body.clientHeight;
  }
  return(myHeight);
}
