var url = "/mod/Shop01/getData.php"; // The server-side script
var urlPrice = "/mod/Shop01/getPrice.php"; // The server-side script
var http = getHTTPObject(); // We create the HTTP Object
var httpPrice = getHTTPObject(); // We create the HTTP Object

function requestBoxes(categorie, subcategorie, artikel) {
	var categorie = categorie;
	var subcategorie = subcategorie;
	var artikel = artikel;

	var selectedValueAtt1 = document.forms.eigenschappenForm.att1.value;
	var selectedValueAtt2 = document.forms.eigenschappenForm.att2.value;
	var selectedValueAtt3 = document.forms.eigenschappenForm.att3.value;

	http.open("GET",url
			  +"?categorie="+escape(categorie)
			  +"&subcategorie="+escape(subcategorie)
			  +"&artikel="+escape(artikel)
			  +"&box1="+escape(selectedValueAtt1)
			  +"&box2="+escape(selectedValueAtt2)
			  +"&box3="+escape(selectedValueAtt3)
			  ,true);
	
	http.onreadystatechange = handleHttpResponse;
	http.send(null);
	if(selectedValueAtt1 != 'noInput' && selectedValueAtt2 != 'noInput' && selectedValueAtt3 != 'noInput') {
		httpPrice.open("GET",urlPrice
				  +"?categorie="+escape(categorie)
				  +"&subcategorie="+escape(subcategorie)
				  +"&artikel="+escape(artikel)
				  +"&box1="+escape(selectedValueAtt1)
				  +"&box2="+escape(selectedValueAtt2)
				  +"&box3="+escape(selectedValueAtt3)
				  ,true);
		httpPrice.onreadystatechange = handleHttpResponsePrice;
		httpPrice.send(null);
	} else {
		document.getElementById('Shop01RequestedPrice').innerHTML = '';
	}
}
function handleHttpResponsePrice() {
	if (httpPrice.readyState == 4) {
		if(httpPrice.status == 200) {
			var results = httpPrice.responseText;
			document.getElementById('Shop01RequestedPrice').innerHTML = results;
		}
	}
}
function handleHttpResponse() {
	if (http.readyState == 4) {
		if(http.status == 200) {
			var results = http.responseText;

			var att1List = document.getElementById("selectAtt1Id");
			var att2List = document.getElementById("selectAtt2Id");
			var att3List = document.getElementById("selectAtt3Id");

			var selectedValueAtt1 = document.forms.eigenschappenForm.att1.value;
			var selectedValueAtt2 = document.forms.eigenschappenForm.att2.value;
			var selectedValueAtt3 = document.forms.eigenschappenForm.att3.value;

			while (att1List.childNodes[0]) { att1List.removeChild(att1List.childNodes[0]) }
			while (att2List.childNodes[0]) { att2List.removeChild(att2List.childNodes[0]) }
			while (att3List.childNodes[0]) { att3List.removeChild(att3List.childNodes[0]) }
			
			generateLoadingOption(att1List);
			generateLoadingOption(att2List);
			generateLoadingOption(att3List);
			
			setTimeout("fillOptions('" + results + "', '" + selectedValueAtt1 + "', '" + selectedValueAtt2 + "', '" + selectedValueAtt3 + "')", 300);
		}
	}
}
function fillOptions(results, selectedValueAtt1, selectedValueAtt2, selectedValueAtt3) {
	var allAttributes = results.split('^');
	
	var att1List = document.getElementById("selectAtt1Id");
	var att2List = document.getElementById("selectAtt2Id");
	var att3List = document.getElementById("selectAtt3Id");
	
	var att1values = allAttributes[0].split('|');
	var att2values = allAttributes[1].split('|');
	var att3values = allAttributes[2].split('|');
	
	while (att1List.childNodes[0]) { att1List.removeChild(att1List.childNodes[0]) }
	while (att2List.childNodes[0]) { att2List.removeChild(att2List.childNodes[0]) }
	while (att3List.childNodes[0]) { att3List.removeChild(att3List.childNodes[0]) }
	
	generateOptions(att1List, att1values, selectedValueAtt1);
	generateOptions(att2List, att2values, selectedValueAtt2);
	generateOptions(att3List, att3values, selectedValueAtt3);
}
function generateOptions(listElement, listValues, selectedValue) {
	var x=document.createElement('option');
	x.value = 'noInput';
	if(selectedValue == 'noInput') {
		var y=document.createTextNode('- Maak uw keuze -');
	} else {
		var y=document.createTextNode('- Reset uw keuze -');
	}
	x.appendChild(y);
	listElement.appendChild(x);
	for (i=1; i<listValues.length; i++) {
		var x=document.createElement('option');
		x.value = listValues[i];
		if(listValues[i] == selectedValue) {
			x.selected = 'selected';
		}
		var y=document.createTextNode(listValues[i]);
		x.appendChild(y);
		listElement.appendChild(x);
	}
}
function generateLoadingOption(listElement) {
	var x=document.createElement('option');
	x.value = 'Loading';
	var y=document.createTextNode('- Gegevens ophalen.. -');
	x.appendChild(y);
	listElement.appendChild(x);
}
function getHTTPObject() {
	var xmlhttp;
	if(window.XMLHttpRequest){
		xmlhttp = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		if (!xmlhttp) {
			xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
	}
	return xmlhttp;
}

