
function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer") {
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}
var canPost = false;

var problemArray = new Array();

var http = createRequestObject();

function formIsValid() {
    return canPost;
}

function validate(fieldnm, value) {
    var url = 'ajx_check_form.php?field='+fieldnm+unescape("%26"+fieldnm+"=")+value;
    http.open('get', url);
    http.onreadystatechange = handleResponse;
    http.send(null);
}

function handleResponse() {
    if(http.readyState == 4){
        var response = http.responseText;
        var UPDATE = new Array();
        // LOOP THROUGH THE RESPONSES
        if(response.indexOf('|' != -1)) {
            UPDATE = response.split('|');
            if(UPDATE[1] != '!error'){
            	canPost = false;
                document.getElementById(UPDATE[0]).className = 'error';
                document.getElementById(UPDATE[0]+'_container').innerHTML = UPDATE[1];
                dispSubmit(UPDATE[0],'add');
            } else if(UPDATE[1] == '!error'){
            	canPost = true;
                if(document.getElementById(UPDATE[0]).className != 'skipped'){
                    document.getElementById(UPDATE[0]).className = 'noclass';
                }
                document.getElementById(UPDATE[0]+'_container').innerHTML = "";
                if(trimString(document.getElementById(UPDATE[0]+'_container').value) != ""){
                    dispSubmit(UPDATE[0],'remove');
                }
            }
        }
    }
}

function dispSubmit(field,action){
    var _submitbtn = '<input type="submit" name="Submit" value="Valider" />';
    if(problemArray.length != 0){
        for(var i = 0; i < problemArray.length; i++){
            if(problemArray[i] == field){    
                place = i;
                break;
            }else{
                place = -12;
            }
        }
    }else{
        place = -50;
    }
    if(action == "add" && place < 0){
        problemArray.splice(problemArray.length,0,field);
    }else if(action == "remove" && place >= 0){
        problemArray.splice(place,1);
    }
     // DISPLAY ERROR OR SUBMIT BUTTION
    if(problemArray.length != 0){
    	document.getElementById('submitholder').className = 'error';
        document.getElementById('submitholder').innerHTML = "Problème rencontré lors de la validation des infomations fournies";
    }else{
        document.getElementById('submitholder').className = 'noclass';
        document.getElementById('submitholder').innerHTML = _submitbtn;
    }
}


// TRIM ALL LEADING AND FOLLOWING WHITESPACE IN A STRING
function trimString (str) {
  return str.replace(/^s+/g, '').replace(/s+$/g, '');
}

// HIGHLIGHT EMPTY FIELDS THAT ARE REQUIRED
function hiliteRequired(startValFROM,place){
    // DEFINE THE ID'S OF THE REQUIRED FIELDS
    var requiredFields = new Array()
        requiredFields[0] = "userfield"
        requiredFields[1] = "passwordfield"
        requiredFields[2] = "genderfield"
        requiredFields[3] = "emailfield"
    
    var pos = requiredFields.length;
    for(var i = 0; i < requiredFields.length; i++){
        if(requiredFields[i] == startValFROM){
            pos = i;
        }else{
            if (pos > place){
                pos = place;
            }else{
                pos = pos;
            }
        }
    }
    // HIGHLIGHT EMPTY FIELDS
    for(var x = 0; x < pos; x++){
        if(trimString(document.getElementById(requiredFields[x]).value) == ""){
            document.getElementById(requiredFields[x]).className = 'skipped';
            dispSubmit(requiredFields[x],'add');
        }else if(document.getElementById(requiredFields[x]).className != "error"){
            document.getElementById(requiredFields[x]).className = 'noclass';
            dispSubmit(requiredFields[x],'remove');
        }
    }
    // FIX FOR IF THE USER WERE TO NAVIGATE THE FORM IN REVERSE
    for(var y = 0; y < requiredFields.length; y++){
        if(trimString (document.getElementById(requiredFields[y]).value) != "" && document.getElementById(requiredFields[y]).className != "error"){
            document.getElementById(requiredFields[y]).className = 'noclass';
            dispSubmit(requiredFields[y],'remove');
        }
    }
}

function getUsersList(room) {
    var url = 'http://www.jacquieetmichelvisio.net/php/getUsers.php?room='+room;
    http.open('get', url);
    http.onreadystatechange = onGetUsers;
    http.send(null);
}

function onGetUsers() {
    if(http.readyState == 4){
        var response = http.responseText;
        var REPONSE_DATA = new Array();
        if(response.indexOf('|' != -1)) {
            RESPONSE_DATA = response.split('|');
            if(RESPONSE_DATA[1] != 'Error'){
                document.getElementById(RESPONSE_DATA[0]+'_container').innerHTML = RESPONSE_DATA[1];;
                /*
                if (e != null) {
                	e.innerHTML = RESPONSE_DATA[1];
                }
                * */
            }
        }
    }
}

