// JavaScript Document
var sendReq = getXmlHttpRequestObject();
//var receiveReq = getXmlHttpRequestObject();
		
//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		document.getElementById('p_status').innerHTML = 'Status: Cound not create XmlHttpRequest Object.  Consider upgrading your browser.';
	}
}

//send id pays, province,... to the server
function sendItemId(itemid, itemname){
	if (sendReq.readyState == 4 || sendReq.readyState == 0) {
		var param = "itemname=" + itemname + "&itemid=" + itemid;
		var image = new Image();
		image.src = "./../images/waitingimg.gif";
		image.width = "15";
		//alert to wait
		document.getElementById("divalert").innerHTML = "";
		document.getElementById("divalert").appendChild(image);
		
		sendReq.open("POST", './admin/ctrl_as_filtersentitem.php', true);
		sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		switch(itemname){
			case 'pays': sendReq.onreadystatechange = getProvinceBack; break;
			case 'province': sendReq.onreadystatechange = getDistrictBack; break;
			case 'district': sendReq.onreadystatechange = getCommuneBack; break;
			case 'commune': sendReq.onreadystatechange = getVillageBack; break;
		}
		sendReq.send(param);
	}
}

//function to get the Items sent back
function getProvinceBack(){
	if (sendReq.readyState == 4) {
		var response = sendReq.responseXML;
		readXMLCreateOptionSelect(response, 'province');
		clearOptionOfSelection('district');
		clearOptionOfSelection('commune');
		clearOptionOfSelection('village');		
	}
}

//function to get the Items sent back
function getDistrictBack(){
	if (sendReq.readyState == 4) {
		var response = sendReq.responseXML;
		readXMLCreateOptionSelect(response, 'district');
		clearOptionOfSelection('commune');
		clearOptionOfSelection('village');
	}
}

//function to get the Items sent back
function getCommuneBack(){
	if (sendReq.readyState == 4) {
		var response = sendReq.responseXML;
		readXMLCreateOptionSelect(response, 'commune');
		clearOptionOfSelection('village');
	}
}

//function to get the Items sent back
function getVillageBack(){
	if (sendReq.readyState == 4) {
		var response = sendReq.responseXML;
		readXMLCreateOptionSelect(response, 'village');
	}
}

//function read data from xml doc and use these data to create option for select element
function readXMLCreateOptionSelect(xmlDoc, selectEle){
	var sentItem = xmlDoc.getElementsByTagName('item');
	var selectElement = document.getElementById(selectEle);
	//clear option of select element
	clearOptionOfSelection(selectEle);

	//add the default option for this selection
	selectElement.appendChild(new Option('', '', 0, 1));
	for (var i=0; i<sentItem.length; i++){
		var itemdata = xmlDoc.getElementsByTagName('item')[i].firstChild.nodeValue;
		var itemid = xmlDoc.getElementsByTagName('item')[i].getAttribute('id');
		//add new option to it	
		var option = new Option(itemdata, itemid, 0, 0);
		if (navigator.appName == 'Microsoft Internet Explorer')
			selectElement.add(option);
		else
			selectElement.options[i+1] = option;
	}
}

//delect all existing options in a selection
function clearOptionOfSelection(selectEle){
	if (document.getElementById(selectEle))
		var selectElement = document.getElementById(selectEle);
	else return ;
	//clear all option of this select element
	while (selectElement.length > 0) {
		selectElement.remove(0);
	} 	
}