var xmlHttp;

function createXMLHttpRequest() {
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
		xmlHttp = new XMLHttpRequest()
	else if (window.ActiveXObject) { // if IE
		try { 
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP")
		} 
		catch (e){
			try {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e){}
		}
	}
}

function axMessage() {
	createXMLHttpRequest();
	var url="http://www.restobookings.be/index.cfm?action=restobookings.validation";
	xmlHttp.open("GET",url,true);
	xmlHttp.onreadystatechange = hello;
	xmlHttp.send(null);
}

function axValidate() {
	createXMLHttpRequest();
	var elVal=document.getElementById("test");
	var url="http://www.restobookings.be/index.cfm?action=restobookings.validation&test="+ escape(elVal.value);	
	alert(url);
	xmlHttp.open("GET",url,true);
	xmlHttp.onreadystatechange = callback("message");
	xmlHttp.send(null);
}

function axHello() {
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {
			setMessage("message","Hello World","true");
		}
	}
}

function axResetNbPers() {
	if (document.getElementById('group').checked) {
		document.getElementById('nbpersons').value= -1;
	}
}

function axResetGroup() {
	if (document.getElementById('nbpersons').value > -1) {
		document.getElementById('group').checked = false;
	}
}


function axResetRegion() {
	document.getElementById("idregion").value = -1;
}

function axResetCity() {
	document.getElementById("idcity").value = -1;
}

function axChangeRegion() {
	/* algoritme:
		- find regio of chosen city
		- loop trough van de children of region
		-   set "selected" on false, if regio eq chosen city set "selected" on true
	*/
	createXMLHttpRequest();
	var elVal=document.getElementById("idcity");
	var url="http://www.restobookings.be/index.cfm?action=restobookings.interaction&idcity="+ escape(elVal.value);	
	xmlHttp.open("GET",url,true);
	xmlHttp.onreadystatechange = selectRegion;
	xmlHttp.send(null);
}

function selectRegion() {
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {
			res = xmlHttp.responseXML.getElementsByTagName("id")[0].firstChild.data;		
			document.getElementById("idregion").value = res;
			/* clear etablissement name */
			document.getElementById("name").value = '';

		}
	}
}

function axChangeCity() {
	/* algoritme:
		- find cities of chosen city
		- loop trough van de children of region
		-   addlist of cities
	*/
	createXMLHttpRequest();
	var elVal=document.getElementById("idregion");
	var url="http://www.restobookings.be/index.cfm?action=restobookings.interaction&idregion="+ escape(elVal.value);	
	xmlHttp.open("GET",url,true);
	xmlHttp.onreadystatechange = selectCity;
	xmlHttp.send(null);
}

function selectCity() {
		/* algorithm
			-clear list on existing children
			-rebuild list
		*/
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {
			/* remove current list*/
			var cities = document.getElementById("idcity");
			while (cities.childNodes.length > 0) {
					cities.removeChild(cities.childNodes[0]);
			}			
			/* rebuild list */
			var res = xmlHttp.responseXML.getElementsByTagName("city");
			for (var i=0; i< res.length; i++) {
				document.createElement('option');
				var option = document.createElement('option');
				var textnode = document.createTextNode(res[i].getElementsByTagName("label")[0].firstChild.data);
				option.appendChild(textnode);
				option.setAttribute('value',res[i].getElementsByTagName("id")[0].firstChild.data);
				cities.appendChild(option);
			}
			/* clear etablissement name */
			document.getElementById("name").value = '';
		}
	}
}

function callback() {
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {
			var mes = xmlHttp.responseXML.getElementsByTagName("message")[0].firstChild.data;
			var val = xmlHttp.responseXML.getElementsByTagName("passed")[0].firstChild.data;
			setMessage("message"+elNme,mes,val);
		}
	}
}

function setMessage(idMsg,message, isValid) {
		alert('setMessage('+idMsg+','+message+','+isValid+')');
		var msgbox = document.getElementById(idMsg);
		if (isValid =="true") { fontColor = "green"; }
		else { fontColor = "red"; }
		msgbox.innerHTML = "<font color=" + fontColor + ">" + message + "</font>";
}
