
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 errorExist = false;
var problemArray = new Array();
var http = createRequestObject();

function formIsValid() {
    checkAllFields();
    return canPost;
}

function validate(fieldnm, value) {
    var url = '/top/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'){
            	errorExist = true;
                document.getElementById(UPDATE[0]).className = 'error';
                document.getElementById(UPDATE[0]+'_container').innerHTML = UPDATE[1];
                // dispSubmit(UPDATE[0],'add');
            } else if(UPDATE[1] == '!error'){
            	// errorExist = false;
                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 checkAllFields() {
    // DEFINE THE ID'S OF THE REQUIRED FIELDS
    errorExist = false;
    var requiredFields = new Array()
        requiredFields[0] = "name"
        requiredFields[1] = "url"
        requiredFields[2] = "out_url"
        requiredFields[3] = "description"
        requiredFields[4] = "email"
        requiredFields[5] = "password"
    
    var pos = requiredFields.length;
    for(var i = 0; i < requiredFields.length; i++){
        validate(requiredFields[i], document.getElementById(requiredFields[i]).value);
    }
    
    if(errorExist) {
    	canPost = false;
    } else {
    	canPost = true;
    } 
}

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 = "Impossible de valider le formulaire car des erreurs ont été détectées";
    } else{
        document.getElementById('submitholder').className = 'noclass';
        document.getElementById('submitholder').innerHTML = '';
    }
}

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

