function CreateXmlHttpRequest(handler) {
    var xmlhhtp = null;
    try {
        xmlhttp = new XMLHttpRequest();
    } catch (e) {
        try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    xmlhttp.onreadystatechange = handler;
    return xmlhttp;
}
 
function ajaxOk(ajax_req) {
    if ((ajax_req.readyState == 4) && (ajax_req.status == 200)) {
        return ajax_req.responseText;
    } else {
        return false;
    }
}
 
function ajax_dummyHandler() {
    return true;
}
 
function ajaxGet(url, handler) {
    var a = new Array("");  // the first element is empty (will be filled by the result of the call to ajaxOk)
    for (var j = 2; j < arguments.length; j++) {
        a[a.length] = arguments[j];
    }
    var ajax_req = CreateXmlHttpRequest(ajax_dummyHandler);
    var myHandler = function() {
        var content = ajaxOk(ajax_req);
        if (content != false) {
            a[0] = content;
            try {
                return handler.apply(this, a);
            } catch (e) {
                return ajax_dummyApply(handler, a);
            }
        }
    }
    ajax_req.onreadystatechange = myHandler;
    ajax_req.open("GET", url);
    ajax_req.send(null);
}
 
function ajax_dummyApply(funcname, args) {
    var e = "funcname(";
    for (var i = 0; i < args.length; i++) {
        e += "args[" + i + "]";
        if (i+1 != args.length) {
            e += ",";
        }
    }
    e += ")";
    return eval(e);
}
 
function ajax_getRand(url, handler) {
    url += (url.indexOf("?") == -1) ? "?" : "&amp;";
    url += "rand=" + escape(Math.random());
    arguments[0] = url;
    try {
        return ajaxGet.apply(this, arguments);
    } catch (e) {
        // for compatibility with IE5
        return ajax_dummyApply(ajaxGet, arguments);
    }
}
 
function ajax_call(url, handler) {
    ajax_getRand(url, handler);
}
 
function ajax_updateId(url, id) {
    ajax_call(url, function (result) {document.getElementById(id).innerHTML = result;});
}
 
// *** FORM AJAX ***
 
function ajax_updateMainBody(result) {
    ajax_updateId("./main_body.php", "main_body");
}
 
function ajax_addDiscussion() {
    var title = document.getElementById('title').value;
    var description = document.getElementById('description').value;
    
    if ((title.length > 0) && (description.length > 0)) {
        ajax_call("add_discussion.php?title=" + title +"&description=" + description, ajax_updateMainBody);
    }
}
 
function ajax_addDiscussionText() {
    var text = document.getElementById('text').value;
    
    if (text.length > 0) {
        ajax_call("add_discussion_text.php?text=" + text, function (r) {ajax_updateId("./get_discussion_text.php", "discussion_text_body");});
    }
}
 
function ajax_addAnnouncement() {
    var text = document.getElementById('text').value;
 
    if (text.length > 0) {
        ajax_call("add_announcement.php?text=" + text, ajax_updateMainBody);
    }
}
 
function ajax_deleteAnnouncement(announcement_id) {
    ajax_call("delete_announcement.php?ID=" + announcement_id, ajax_updateMainBody);
}
 
function ajax_deleteDiscussion(discussion_id) {
    ajax_call("delete_discussion.php?ID=" + discussion_id, ajax_updateMainBody);
}
 
function ajax_deleteDiscussionText(text_id) {
    ajax_call("delete_discussion_text.php?ID=" + text_id, function (r) {ajax_updateId("./get_discussion_text.php", "discussion_text_body");});
}
 
function ajax_updateProfile(user_ID) {
    var username = document.getElementById('name').value;
    var surname = document.getElementById('surname').value;
    var nickname = document.getElementById('nickname').value;
    var password = document.getElementById('password').value;
    var confirm_password = document.getElementById('confirm_password').value;
    var email = document.getElementById('email').value;
    var tel_office = document.getElementById('tel_office').value;
    var tel_cell = document.getElementById('tel_cell').value;
    
    if (username.length < 1) {
        alert("Il nome non può essere vuoto");
        exit;
    }
    
    if (surname.length < 1) {
        alert("Il cognome non può essere vuoto");
        exit;
    }
    
    if (nickname.length < 1) {
        alert("Il nickname non può essere vuoto");
        exit;
    }
    
    if (password.length < 1) {
        alert("La password non può essere vuota");
        exit;
    } else {
        if (confirm_password.length > 0) {
            if (confirm_password != password) {
                alert("La password non è stata insertia in modo corretto (non è stata confermata correttamente)");
                exit;
            }
        }
    }
    
    ajax_call("./update_profile.php?ID="+user_ID+"&name="+username+"&surname="+surname+"&nickname="+nickname+"&password="+password+"&email="+email+"&tel_office="+tel_office+"&tel_cell="+tel_cell, function (r) {ajax_updateId("./profile_body.php", "profile_body");});
}

