/*************
 * Javascript Ajax and PHP Development
 * Copyright: Glass Cube Developments
 * www.glasscube.co.za
 * Date: 03 / 05 / 2007
 * */

function getXmlVar() {
    var xmlHttp;

    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    } catch (e) {            
        // Internet Explorer
        try {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                alert("Your browser does not support AJAX!\nPlease enable Java Support in your browser or visit http://www.mozilla.com/en-US/firefox/ to download Firefox");
                return false;
            }
        }
    }
    
    return xmlHttp;
}

function getFormString(fn) {
    var queryString = 'rand=' + Math.random();
    
    for (i = 0; i < document.forms[fn].elements.length; i++) {
        switch (document.forms[fn].elements[i].type) {
            case 'radio':
                if (document.forms[fn].elements[i].checked == true) {
                    queryString = queryString + "&" + document.forms[fn].elements[i].name + "=" + document.forms[fn].elements[i].value;
                } 
                break;
            case 'checkbox':
                if (document.forms[fn].elements[i].checked == true) {
                    queryString = queryString + "&" + document.forms[fn].elements[i].name + "=" + document.forms[fn].elements[i].value;
                }                
                break;
            default:
                queryString = queryString + "&" + document.forms[fn].elements[i].name + "=" + document.forms[fn].elements[i].value;
                break;
        }
    }
    
    return queryString;
}

function ajaxPost(fn, url) {
    var xmlHttp = getXmlVar();
    var queryString = getFormString(fn);
    
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState == 4) { // request complete
            document.getElementById('loading').style.display = "none";
            var output = xmlHttp.responseText;
            document.getElementById('submit-button').disabled = false;
            document.getElementById('form-container').innerHTML = output;
        } else if (xmlHttp.readyState == 0) { // not initialized
        } else if (xmlHttp.readyState == 1) { // request has been set-up
            document.getElementById('submit-button').disabled = true;
            document.getElementById('loading').style.display = "block";
        } else if (xmlHttp.readyState == 2) { // request sent
        } else if (xmlHttp.readyState == 3) { // request in process

        }
    }
        
    xmlHttp.open("GET", url + "?fn=" + fn + "&" + queryString, true);
    xmlHttp.send(null);
    
    return false;
}
