var Ajax =
{
    getHttpObject: function()
    {
        var xhr = false;
        if (window.XMLHttpRequest) {
            xhr = new XMLHttpRequest();
        }
        else if (window.ActiveXObject) {
            try {
                xhr = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    xhr = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e) {
                    xhr = false;
                }
            }
        }
        return xhr;
    },

    /**
     * TODO: impostare un oggetto con la url con l'inc
     */

    getData: function(targetElement)
    {
        if (targetElement.nodeName.toLowerCase() == "form") {
            targetElement.onsubmit = function() {
                var form = this;
                var parameters = "ajax=1";
                for (var i = 0; i < form.elements.length; i++) {

                    // crea un'immagine di caricamento
                    if (form.elements[i].type == "submit") {
                        form.elements[i].disabled = true;
                        var loading = document.createElement("div");
                        loading.className = "loading";
                        var loadingImage = document.createElement("img");
                        loadingImage.alt = "Invio in corso...";
                        loadingImage.src = "images/loading.gif";
                        loadingImage.title = "Invio in corso...";
                        loading.appendChild(loadingImage);
                        form.appendChild(loading);
                    }
                    
                    parameters += "&" + form.elements[i].name + "=" + encodeURI(form.elements[i].value);
                }
                var request = Ajax.getHttpObject();
                request.onreadystatechange = function() {
                    if (request.readyState == 4) {
                        if (request.status == 200 || request.status == 304) {
                            form.parentNode.innerHTML = request.responseText;
                            AjaxForm.init();
                        }
                        else {
                            alert("Impossibile contattare il server!");
                        }
                    }
                };
                var url = "form-contatti.inc.php"
                request.open("POST", url, true);
                request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                request.send(parameters);
                return !request;
            };
        }
    }
};
