var ajax = new sack();
var ajaxContentObj;
var ajaxElemName;

function showContent() {
	var resp = ajax.response; // ajax.response is a variable that contains the content of the external file
	ajaxContentObj.innerHTML = resp;
	
	var esperto = resp.indexOf("esperto_risponde");
	if (esperto > -1) {
		ge("testo_esperto").value = "";
	}
	
	var goto = resp.indexOf("goto[");
	var closePar = resp.indexOf("]");
	if (goto > -1) {
		var address = resp.substr(goto + 5, closePar - goto - 5);
		//alert(address);
		if (address == "?") {
			window.location.reload()
		}
	}
}

function showWaitMessage() {
	ajaxContentObj.innerHTML = "LOADING...";
}

function getAjaxFile(fileName) {
	ajax.requestFile = fileName;	// Specifying which file to get
	ajax.onCompletion = showContent;	// Specify function that will be executed after file has been found
	ajax.onLoading = showWaitMessage;	// Action when AJAX is loading the file
	ajax.runAJAX();		// Execute AJAX function	
}

function ajax_logout() {
	ajaxContentObj = document.getElementById("ajax_form_text");
	getAjaxFile("ajax/login.asp?action=logout");
}

function ajax_esperti(id) {
	ajaxContentObj = document.getElementById("ajax_esperti");
	getAjaxFile("ajax/esperti.asp?id_e=" + id);
}

function ajax_form(formId, id_str) {
	ajaxContentObj = document.getElementById("ajax_form_text");
	var elemArray = document.getElementById(formId);
	var valueStr = "";
	for (var i = 0; i < elemArray.length; i++) {
        var element = elemArray[i];
		if (element.type) {
			var elemType = element.type.toUpperCase();
			var elemName = element.name;
			//var valueStr = "";
			if (element.disabled == false) {
				if (elemName) {
					var typesStr = "|TEXT|TEXTAREA|PASSWORD|BUTTON|RESET|SUBMIT|FILE|IMAGE|HIDDEN|";
					if (typesStr.indexOf("|" + elemType + "|") != -1) {
						valueStr = GetElemValue(elemName, element.value);
					} else if (elemType == "CHECKBOX") {
						valueStr = (element.checked) ? GetElemValue(elemName, element.value ? element.value : "On") : "";
					} else if (elemType == "RADIO" && element.checked) {
						valueStr = GetElemValue(elemName, element.value);
					} else if (elemType.indexOf("SELECT") != -1) {
						for (var j = 0; j < element.options.length; j++) {
							var option = element.options[j];
							if (option.selected) {
								//valueStr = GetElemValue(elemName, option.value ? option.value : option.text);
								valueStr = GetElemValue(elemName, option.value);
							}
						}
					}
				}
				//alert(valueStr);
				ajax.setVar(elemName, valueStr);
			}
		}	
    }
	//ajax.setVar("rndval", "");
	 if (formId == "form_login") {
		getAjaxFile('ajax/login.asp');
	} else if (formId == "form_esperto_risponde") {
		getAjaxFile('ajax/form_esperto_risponde.asp?action2=save');
	} else if (formId == "form_utenti_modifica") {
		getAjaxFile('ajax/form_utenti.asp?action2=update');
	}
}

function GetElemValue(el_name, value) {
	var comma = "";
	if (ajaxElemName != el_name) {
		valueStr = "";
	} else {
		comma = ", ";
	}
	//alert(el_name + "|" + value +  "|" +  valueStr);
    valueStr += comma + escape((value ? value : "")).replace(/%0A/g, "<br>");
	// escape(value ? value : "").replace(/\+/g, "%2B");
	//+ escape(value ? value : "").replace(/\n/g, "%0D");
	//if (valueStr) alert(valueStr);
	ajaxElemName = el_name;
	return valueStr;
}

function ajaxProvince(regione, provincia_str) {
	var provincia = document.getElementById("provincia");
	contentObj = provincia;
	num_option = provincia.options.length;
	for (a=num_option;a>=0;a--) {
		provincia.options[a]=null;
	}
	//alert(regione);
	ajax.requestFile = "ajax/form_province.asp?regione=" + regione;	// Specifying which file to get
	ajax.onCompletion = function() {
		var provStr = ajax.response;
		//alert(provStr);
		var provArray = provStr.split("|");
		for (a=0;a<provArray.length;a++) {
			var thisProv = provArray[a];
			var thisProvArray = thisProv.split(",");
			var provValue = thisProvArray[0];
			var provName = thisProvArray[1];
			var selected = false;
			if (provincia_str == provValue) selected = true;
			provincia.options[a]=new Option(provName, provValue, false, selected);
		}
	};	// Specify function that will be executed after file has been found
	ajax.onLoading = function() {
		provincia.options[0] = new Option("Elenco province in caricamento...", "", true, false);
	};	// Action when AJAX is loading the file
	ajax.onError = function() {
		provincia.options[0] = new Option("Si è verificato un errore!", "", true, false);
	};	// Action when AJAX is loading the file
	ajax.runAJAX();		// Execute AJAX function
}