// JavaScript Document

function getData(sourceElementId, destinationElementId, xmlpath, submittedValue) { 

	var reapice = new RegExp(/\'/g);
	var respace = new RegExp(/ /g);
	
	var userAgent = navigator.userAgent;

	var xmlHttp = GetXmlHttpObject();
	if (xmlHttp == null) {
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	var selectedObj = document.getElementById(sourceElementId);
	var selectLen = selectedObj.length;
	var selectedValue = "";
	for (var i = 0;i < selectLen;i++) {
		if (selectedObj.options[i].selected == true) selectedValue = selectedObj.options[i].value.toLowerCase();
	}

	//var url = "_xml_comuni/" + selectedValue.replace(respace,'_').replace(reapice,'') + ".xml";
	var url = xmlpath + selectedValue.replace(respace,'_').replace(reapice,'') + ".xml";
	//alert(url);

	if (userAgent.indexOf("Firefox/3") != -1){
		xmlHttp.onload = xmlHttp.onerror = xmlHttp.onabort = function(){ stateChanged(destinationElementId, xmlHttp, submittedValue); };
	} else {
		xmlHttp.onreadystatechange = function(){ stateChanged(destinationElementId, xmlHttp, submittedValue); };
	}
	xmlHttp.open("GET",url,false);
	xmlHttp.send(null);
}

function cleanData(elementId) {
	
	var selectedObj = document.getElementById(elementId);
	
	selectedObj.innerHTML = "";
}

function stateChanged(destinationElementId, xmlHttp, submittedValue)  { 

	//var respace = new RegExp(/ /g);
	//var reapice = new RegExp(/\'/g);
	
	//alert(submittedValue);

	if (xmlHttp.readyState==4) {
	
		if (xmlHttp.responseXML.documentElement == null || document.getElementById(destinationElementId) == null) return;
		var xmlDoc = xmlHttp.responseXML.documentElement;
		var childlen = xmlDoc.getElementsByTagName("opt").length;
		var nodelist = xmlDoc.getElementsByTagName("opt");
		var optionsstr = "";
		document.getElementById(destinationElementId).innerHTML = "";
		
		for (var i = 0;i < childlen;i++) {
		
			var current = nodelist[i];
			
			//var value = current.childNodes[0].nodeValue.replace(respace,'_').replace(reapice,''); //.toLowerCase()
			var value = current.childNodes[0].nodeValue;
			var text = current.childNodes[0].nodeValue;
			
			var newOpt = document.createElement("OPTION");
			newOpt.text = text;
			newOpt.value = value;
			if (text == submittedValue) newOpt.selected = 'selected';
			
			document.getElementById(destinationElementId).options[i] = newOpt;
		}
		
		//alert(document.getElementById(destinationElementId).name);
	}
}

function GetXmlHttpObject() {
	
	var xmlHttp=null;
	
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}
