
/*******************************************************************************
Posts a ajax request to the desired url

Copyright DevelopersIsland.com
**/

var req;
var elementIdO;

/**
 *Simply send a request to the server. Does not capture any response
 */
function retrieveSimpleURL( url ) {
    //alert("Inside of retrieveURL");
    //alert(url);
    //alert(elementId);
    
    if (window.XMLHttpRequest) { // Non-IE browsers
        req = new XMLHttpRequest();
        //req.onreadystatechange = processStateChange;
        try {
            req.open("POST", url, true);
        } catch (e) {
        //alert(e);
        }
        req.send(null);
    } else if (window.ActiveXObject) { // IE
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            //req.onreadystatechange = processStateChange;
            req.open("POST", url, true);
            req.send();
        }
    }
}

/**
 *Simply send a request to the server capture the response.
 *Replaces the inner html of the element passed as reference
 */
function retrieveURL( url , elementId ) {
    
    //alert("Inside of retrieveURL");
    //alert(url);
    //alert(elementId);
    
    this.elementIdO = elementId;
    document.getElementById( elementIdO ).innerHTML = "Loading ... <img src='images/ajax/loading.gif' />";
    
    if (window.XMLHttpRequest) { // Non-IE browsers
        //alert("Non-IE browsers");
        
        req = new XMLHttpRequest();
        req.onreadystatechange = processStateChange;
        try {
            //alert("opening");
            req.open("POST", url, true);
        } catch (e) {
            alert(e);
        }
        req.send(null);
    } else if (window.ActiveXObject) { // IE
        //alert("IE browsers");
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
    
            //alert("processStateChange");
    
            req.onreadystatechange = processStateChange;
            req.open("POST", url, true);
            req.send();
        }
    }
//alert("End");
}


function processStateChange() {
    //alert("processStateChange");
    //alert( elementIdO );
    
    if (req.readyState == 4) { // Complete
        if (req.status == 200) { // OK response
            if( elementIdO != null ){
                document.getElementById( elementIdO ).innerHTML = req.responseText;
            }
        } else {
            alert("Problem: " + req.statusText);
            if( elementIdO != null ){
                document.getElementById( elementIdO ).innerHTML = "Problem: "+ req.statusText;
            }
        }
    }
}

/*******************************************************************************
 *Retrieve a URL and replace an array of elements in response
 */

function retrieveURLArray( url , elementId ) {
    //alert("Inside of processStateChangeArray");
    //alert(url);
    //alert(elementId);

    this.elementIdO = elementId;
    document.getElementById( elementIdO[0] ).innerHTML = "Loading ... <img src='images/ajax/loading.gif' />";

    if (window.XMLHttpRequest) { // Non-IE browsers
        //alert("Non-IE browsers");

        req = new XMLHttpRequest();
        req.onreadystatechange = processStateChangeArray;
        try {
            //alert("opening");
            req.open("POST", url, true);
        } catch (e) {
            alert(e);
        }
        req.send(null);
    } else if (window.ActiveXObject) { // IE
        //alert("IE browsers");
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {

            //alert("processStateChangeArray");

            req.onreadystatechange = processStateChangeArray;
            req.open("POST", url, true);
            req.send();
        }
    }
//alert("End");
}


function processStateChangeArray() {
    //alert("processStateChangeArray");
    //alert( elementIdO );

    if (req.readyState == 4) { // Complete
        if (req.status == 200) { // OK response
            if( elementIdO != null ){
                document.getElementById( elementIdO[0] ).innerHTML = req.responseText;
                for( var i=1; i<elementIdO.length;i++){
                    document.getElementById( elementIdO[i] ).innerHTML = "";
                }
            }
        } else {
            alert("Problem: " + req.statusText);
            document.getElementById( elementIdO ).innerHTML = "Problem: "+ req.statusText;
        }
    }
}

/*******************************************************************************
 * Post a form dynamically
 */

function postForm( formLocation, elementId, formName ){
    alert("postForm");

    document.getElementById( elementId ).style.display = "none";
    document.getElementById( 'ContentDivReplica' ).innerHTML = "Loading ... <img src='images/ajax/loading.gif' />";

    theForm = document.getElementById( formName );

    query = '';
    for( i=0; i < theForm.length; i++ ){
        query = query + theForm.elements[ i ].name +'='+ theForm.elements[ i ].value +'&';
    }

    //alert("Query="+query);

    req = new XMLHttpRequest();
    req.onreadystatechange = function(){
        if( req.readyState == 4 ){
            document.getElementById( elementId ).style.display = "";
            document.getElementById( elementId ).innerHTML = req.responseText;
        //alert( req.responseText );
        }
    }

    req.open( 'POST', ( formLocation ), true );
    req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
    req.setRequestHeader( 'Content-Length', query.length );
    req.send( query );
//alert("Query Sent");
}
