var req=null;
var isValidCode = false;
var console=null;
var READY_STATE_UNINITIALIZED=0;
var READY_STATE_LOADING=1;
var READY_STATE_LOADED=2;
var READY_STATE_INTERACTIVE=3;
var READY_STATE_COMPLETE=4;

function sendRequest(url, params, HttpMethod, async, callBackFunc) {
    if (HttpMethod == undefined) {
        HttpMethod="GET";
    }
    if (async == undefined)
        async = true;
        
    req = getXMLHTTPRequest();
    if (req) {
        if (callBackFunc != undefined)
            req.onreadystatechange = callBackFunc;
        req.open(HttpMethod,url, async);
        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        req.send(params);
    } else
        return true; //Let PHP handle it!!!

    return (req.responseText == 'ok');
}

function getXMLHTTPRequest() {
    var xRequest=null;
    if (window.XMLHttpRequest) {
        xRequest=new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        xRequest=new ActiveXObject("Microsoft.XMLHTTP");
    }
    return xRequest;
}

function onReadyState() {
 // IExplorer calls this, even if async is false, while Firefox only when async == True!!!
    var ready=req.readyState;
    var data=null;
    if (ready == READY_STATE_COMPLETE) {
        if (req.status == 200)            
            //document.forms[0].submitForm.disabled = !(req.responseText == 'ok');
            isValidCode = (req.responseText == 'ok');
        else
            //document.forms[0].submitForm.disabled = false;
            isValidCode = true;
    } /*else {
        data="loading...["+ready+"]";
    }
    toConsole(data);*/
}

function toConsole(data) {
    if (console!=null) {
        var newline=document.createElement("div");
        console.appendChild(newline);
        var txt=document.createTextNode(data);
        newline.appendChild(txt);
    }
}

function validateCode(theCode) {
    if (theCode.length != 5)
        return false;
    else {
        return sendRequest('PHP/validatecode.php', 'code=' + theCode, 'POST', false);
    }
}

