//##################################################################################//## FORM SUBMIT WITH AJAX                                                        ##//## @Author: Simone Rodriguez aka Pukos <http://www.SimoneRodriguez.com>         ##//## @Version: 1.2                                                                ##//## @Released: 28/08/2007                                                        ##//## @License: GNU/GPL v. 2 <http://www.gnu.org/copyleft/gpl.html>                ##//##################################################################################
function xmlhttpPost(strURL,formname,responsediv,responsemsg) {    var xmlHttpReq = false;    var self = this;
    // Xhr per Mozilla/Safari/Ie7    if (window.XMLHttpRequest) {        self.xmlHttpReq = new XMLHttpRequest();    }
    // per tutte le altre versioni di IE    else if (window.ActiveXObject) {        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");    }
    self.xmlHttpReq.open('POST', strURL, true);    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
			// Quando pronta, visualizzo la risposta del form            updatepage(self.xmlHttpReq.responseText,responsediv);        }		else{			// In attesa della risposta del form visualizzo il msg di attesa			updatepage(responsemsg,responsediv);		}    }    self.xmlHttpReq.send(getquerystring(formname));}
function getquerystring(formname) {
    var form = document.forms[formname];	var qstr = "";
    function GetElemValue(name, value) {        qstr += (qstr.length > 0 ? "&" : "")            + escape(name).replace(/\+/g, "%2B") + "="            + escape(value ? value : "").replace(/\+/g, "%2B");
			//+ escape(value ? value : "").replace(/\n/g, "%0D");    }	var elemArray = form.elements;
    for (var i = 0; i < elemArray.length; i++) {        var element = elemArray[i];        var elemType = element.type.toUpperCase();        var elemName = element.name;
        if (elemName) {            if (elemType == "TEXT"                    || elemType == "TEXTAREA"                    || elemType == "PASSWORD"					|| elemType == "BUTTON"					|| elemType == "RESET"					|| elemType == "SUBMIT"					|| elemType == "FILE"					|| elemType == "IMAGE"                    || elemType == "HIDDEN")
                GetElemValue(elemName, element.value);
            else if (elemType == "CHECKBOX" && element.checked)                GetElemValue(elemName,                    element.value ? element.value : "On");
            else if (elemType == "RADIO" && element.checked)                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)                        GetElemValue(elemName,                            option.value ? option.value : option.text);                }        }    }
    return qstr;}
function updatepage(str,responsediv) {    document.getElementById(responsediv).innerHTML = str;}
