// @name      AJAX-style framework

// @version   1.0

// @author    Jon Booth -based on an example by Rasmus Lerdorf

// note: uses plain text but the same could be accomplished with XML CDATA



var browser = navigator.appName;



function createRequestObject() {

    var ro;

    if(browser == "Microsoft Internet Explorer"){

        ro = new ActiveXObject("Microsoft.XMLHTTP");

    }else{

        ro = new XMLHttpRequest();

    }

    return ro;

}



var http = createRequestObject();

var objLock=0;



function sendReq(page,target,sourceElement,func,params,js,noload) {

        if(objLock==1){ //check for lock

                alert("please wait until all loading elements are done.");

                if (sourceElement.type == 'checkbox') {
                        sourceElement.checked=false;
                }

                return false;

        }else{

                var req = page+'?target='+target+'&func='+func+'&params='+params+'&js='+js;

                //alert(req);
                document.rep.fill.value=req;

                if(!noload){loadNote(target,req)};

                objLock=1; //locking protects process from breaking

                http.open('get',req);

            http.onreadystatechange = handleResponse;

            http.send(null);

        }

}

function retry(req) {
            objLock=1;
            http.open('get',req)
            http.onreadystatechange = handleResponse;
            http.send(null);
}



function handleResponse() {

    if(http.readyState == 4){

        var response = http.responseText;

                objLock=0; //clear lock        

                eval(response); //behavior defined by php to be directly evaluated by client

    }

}

  

function updateObj(obj,data,color){

        if (!color){color='#ffff00';};

        document.getElementById(obj).innerHTML = data;

        Fat.fade_element(obj,12,600,color);

}



function clearObj(obj){ //clear out a DOM object

        document.getElementById(obj).innerHTML = '';

}

function loadNote(obj,req){ //put up a loading note until data is ready

        document.getElementById(obj).innerHTML = "<div class=\"load\">Loading... <a href=\"javascript:retry('"+req+"');\">[retry]</a></div>";

}

