var Errors = new Array();
var nbErrors = 0;

var FormState = -1;

function ChangeBtnState(obj,state,cell) {
    if(obj.className != "menu_entry_use") {
        obj.className = "menu_entry_"+state;
        document.getElementById("menu_entry_"+cell).style.backgroundImage = "url(./images/btn_"+state+".png)";
    }
}

function getTotalHeight() {
// firefox is ok
    var height = document.documentElement.scrollHeight;

// now IE 7 + Opera with "min window"
    if(document.documentElement.clientHeight > height ) {
        height  = document.documentElement.clientHeight;
    }

// last for safari
    if(document.body.scrollHeight > height) {
        height = document.body.scrollHeight;
    }

    return height;
}


function ResizeDeco() {
    //ch = document.getElementById('content').style.height;

    if (document.all) // ok I.E
    {
        H = document.getElementById('content_inner').currentStyle.height;
    }
    else // ok firefox.0.9.2 , pas mozilla.1.0 ni netscape.7.02
    {
        H = document.defaultView.getComputedStyle(document.getElementById('content_inner'), null).height;
    }

    //alert(H);


    document.getElementById('content').style.minHeight=''+(getTotalHeight()-255)+'px';
}

function FocusCheckField(obj) {
    obj.className = "input_focus";
    if(obj.value == obj.defaultValue) {
        obj.value = "";
    }
}

function BlurCheckField(obj,ctrlId) {
    if(obj.defaultValue == obj.value) {
        obj.className = "input_form";
    } else if(obj.value == "") {
        obj.value = obj.defaultValue;
        obj.className = "input_form";
    } else {
        if(ctrlId != '') {
            ctrlVal = document.getElementById(ctrlId).value;
        } else {
            ctrlVal = '';
        }
        var result = AJAX_ExecFile('contact.php?action=AJAX&method=checkfield&check='+obj.id+'&value='+obj.value+'&ctrlVal='+ctrlVal);
        //alert(result);

        var errCount = 0;

        process = true;
        while(process == true) {
            result = result.substring(result.indexOf("|",0)+1,result.length)
            msg = result.substring(0,result.indexOf("|",0));
            if(msg == "") {
                process = false;
            } else {
                errCount++;
                txt = msg.substring(msg.indexOf("#",0)+1,msg.length)
                title = msg.substring(0,msg.indexOf("#",0));

                Errors[nbErrors] = new Array(true,obj.id+'_error',title,txt);
                nbErrors++;
            }
        }

        obj.className = "input_check";

        document.getElementById(obj.id+'_error').style.display = 'none';
        if(errCount>0) {
            obj.className = "input_error";
            document.getElementById(obj.id+'_error').style.display = 'block';
        }

        FormState = 0;
        CheckForm(document.getElementById('contact_form'));

        ReloadErrors();
    }
}

function CheckForm(obj) {
    var elements = obj.childNodes;

    for(var i=0;i<elements.length;i++) {
        if(elements.item(i).className) {
            if((elements.item(i).className == "input_error") || (elements.item(i).className == "input_form") || (elements.item(i).className == "input_check")) {
                if((elements.item(i).className == "input_error") || (elements.item(i).className == "input_form")) {
                    FormState = 1;
                }
            }
        }
        CheckForm(elements.item(i));
    }
}

function GetError(codeErreur) {
    var get = true;
    for(i=0;i<nbErrors;i++) {
        if(Errors[i][1]==codeErreur) {
            get = false;
            Errors[i][0] = true;
        }
    }

    if(get == true) {
        result = AJAX_ExecFile('contact.php?error='+codeErreur);

        result = result.substring(result.indexOf("#",0)+1,result.length)
        title = result.substring(0,result.indexOf("#",0));
        result = result.substring(result.indexOf("#",0)+1,result.length)
        description = result.substring(0,result.indexOf("#",0));

        Errors[nbErrors] = new Array(true,codeErreur,title,description);

        nbErrors++;
    }
}

function DelError(codeErreur) {
    for(i=0;i<nbErrors;i++) {
        if(Errors[i][1]==codeErreur) {
            Errors[i][0] = false;
        }
    }
}

function DelAllErrors() {
    for(i=0;i<nbErrors;i++) {
        Errors[i][0] = false;
    }
}

function RegenerateAF(code,URL) {
    document.getElementById('img_captcha').innerHTML = '<img onclick=\"javascript:RegenerateAF(\''+code+'\',\''+URL+'\');\" name="ImgCtrCodeControle" alt="controle" src="'+URL+'.&amp;rnd='+Math.random()+'">';
}

function AJAX_ExecFile(fichier) {
    if(window.XMLHttpRequest) {
        xhr_object = new XMLHttpRequest();
    } else if(window.ActiveXObject) {
        xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        return(false);
    }
    xhr_object.open("GET", fichier, false);
    xhr_object.send(null);
    if(xhr_object.readyState == 4) return(xhr_object.responseText);
    else return(false);
}

function SendMessage() {
    if(document.getElementById('nom').value == document.getElementById('nom').defaultValue) {
        var nom = "";
    } else {
        var nom = document.getElementById('nom').value;
    }

    if(document.getElementById('email').value == document.getElementById('email').defaultValue) {
        var email = "";
    } else {
        var email = document.getElementById('email').value;
    }

    if(document.getElementById('check').value == document.getElementById('check').defaultValue) {
        var confirm = "";
    } else {
        var confirm = document.getElementById('check').value;
    }

    var message = document.getElementById('message').value;
    var captcha = document.getElementById('code').value;
    var code = document.getElementById('checkCode').value;

    var errCount = 0;
    var ctrlVal = "";
    
    obj = document.getElementById('nom');
    var result = AJAX_ExecFile('contact.php?action=AJAX&method=checkfield&check='+obj.id+'&value='+nom+'&ctrlVal='+ctrlVal);
    
    obj = document.getElementById('email');
    result += '#'+AJAX_ExecFile('contact.php?action=AJAX&method=checkfield&check='+obj.id+'&value='+email+'&ctrlVal='+ctrlVal);
    
    obj = document.getElementById('check');
    result += '#'+AJAX_ExecFile('contact.php?action=AJAX&method=checkfield&check='+obj.id+'&value='+confirm+'&ctrlVal='+email);
    
    obj = document.getElementById('message');
    result += '#'+AJAX_ExecFile('contact.php?action=AJAX&method=checkfield&check='+obj.id+'&value='+obj.value+'&ctrlVal='+ctrlVal);
    
    obj = document.getElementById('code');
    result += '#'+AJAX_ExecFile('contact.php?action=AJAX&method=checkfield&check='+obj.id+'&value='+obj.value+'&ctrlVal='+code);
    //alert(result);

    var params = AJAX_ReadResultSequence("|",result);
    errCount = params.length;

    
    if(errCount == 0) {
        var result = AJAX_ExecFile('contact.php?action=AJAX&method=send&nom='+URLEncode(nom)+'&email='+URLEncode(email)+'&confirm='+URLEncode(confirm)+'&message='+URLEncode(message)+'&captcha='+URLEncode(captcha)+'&code='+URLEncode(code));
        
        // Pas d'erreurs
        if(result == '0') {
            document.getElementById("error_msg").style.color = '#111111';
            document.getElementById("error_msg").style.border = '2px #115511 solid';
            document.getElementById("error_msg").innerHTML = "<span>Votre message à bien été envoyé !</span>";
            document.getElementById("error_msg").style.display = 'block';
            FormState = 2;

        // Gestion d'erreurs
        } else {
            document.getElementById("error_msg").innerHTML = "<span>Une erreur s'est produite !</span>";
            document.getElementById("error_msg").style.display = 'block';
        }
    } else {
        obj = document.getElementById('nom');
        BlurCheckField(obj,"");
        
        obj = document.getElementById('email');
        BlurCheckField(obj,"");
        
        obj = document.getElementById('check');
        BlurCheckField(obj,"email");
        
        obj = document.getElementById('message');
        BlurCheckField(obj,"");
        
        obj = document.getElementById('code');
        BlurCheckField(obj,"checkCode");
    }
}

function ReloadErrors() {
    document.getElementById("error_msg").style.display = 'none';

    var displayRes = false;

    for(var i=0;i<nbErrors;i++) {
        if(Errors[i][0] == true) {
            if(document.getElementById(Errors[i][1]).style.display == 'block') document.getElementById("error_msg").style.display = 'block';
            document.getElementById(Errors[i][1]).innerHTML = '<span class="error_title">&#149;&nbsp;'+Errors[i][2]+'</span><span class="error_description">'+Errors[i][3]+'</span><br />';
        }
    }
}

function URLEncode (clearString) {
  var output = '';
  var x = 0;
  clearString = clearString.toString();
  var regex = /(^[a-zA-Z0-9_.]*)/;
  while (x < clearString.length) {
    var match = regex.exec(clearString.substr(x));
    if (match != null && match.length > 1 && match[1] != '') {
        output += match[1];
      x += match[1].length;
    } else {
      if (clearString[x] == ' ')
        output += '+';
      else {
        var charCode = clearString.charCodeAt(x);
        var hexVal = charCode.toString(16);
        output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
      }
      x++;
    }
  }
  return output;
}

function AJAX_ReadResultSequence(separator,result) {
    var process = true;
        
    var sequence = new Array();
    var nb = 0;

    while(process == true) {
        result = result.substring(result.indexOf(separator,0)+(separator.length),result.length)
        msg = result.substring(0,result.indexOf(separator,0));
        
        if(msg == "") {
            process = false;
        } else {
            sequence[nb] = msg;
            nb++;
        }
    }
    return sequence;
}
