﻿/*
    Questo codice è stato interamente sviluppato da salvatore bontempo
    con pochissime istruzioni si riesce a implementare un sistema ajax
    
    xmlhttp: è l'oggetto xmlhttp compatibile per qualsiasi browser;
    si deve istanziare in questo modo var my_req = new xmlhttp();
    
    
    ajaxThis(url, div): il metodo principale, 
    semplicemente mette un url in un tag di tipo DIV
    
    ajaxWait(div): viene inserito un immagine gif nel caricamento, 
    l'immagine apparirà di sopra finche l'intero div viene rimpiazzato
    dal nuovo codice html
    
*/
function xmlhttp() {
    var obj;
    var xml = new Array();        
    xml[0] = "MSXML2.XMLHTTP.5.0";
    xml[1] = "MSXML2.XMLHTTP.4.0";
    xml[2] = "MSXML2.XMLHTTP.3.0";
    xml[3] = "MSXML2.XMLHTTP";
    xml[4] = "Microsoft.XMLHTTP";
    xml[5] = "WinHttp.WinHttpRequest.5";
    xml[6] = "WinHttp.WinHttpRequest.5.1";
    
    if (window.ActiveXObject) {
        for (var i=0; i<xml.length; i++) {
            try {
                obj = new ActiveXObject(xml[i]);
                break;
            } catch(e) {
                obj = null;
            }
        }
    } else if(window.XMLHttpRequest) {
        try {
            obj = new XMLHttpRequest();                            
        } catch(e) {
            obj = null;                            
        }
    }
    return obj;
}



function ajaxThis(url, div, optionalCallback) {
    this.url = url;
    this.div = div;
    this.callback = optionalCallback;
    var ajax_req = new xmlhttp();
    
    ajax_req.onreadystatechange = function() {            
		if (ajax_req.readyState == 4) {
            div.innerHTML = ajax_req.responseText
            if(optionalCallback){
                optionalCallback()
            }
		}
	};

    ajax_req.open("GET", url, true);
    
    ajax_req.send(null);
    
    ajaxWait(div);
    
}


function ajaxWait(DIV) {
    
    DIV.innerHTML = "<IMG align='absmiddle' src='images\/ajax.gif' style='position:absolute'> " + DIV.innerHTML;
}
