/**
* Written by Rob Schmitt, The Web Developer's Blog
* http://webdeveloper.beforeseven.com/
*/

/**
* The following variables may be adjusted
*/
var active_color = '#fff'; // Colour of user provided text
var inactive_color = '#ccc'; // Colour of default text

/**
* No need to modify anything below this line
*/
window.onload = function(){initPage();}

function formDefaultValues() {
  var fields = getElementsByClassName(document, "*", "required");
  if (!fields) {
    return;
  }
  var default_values = new Array();
  for (var i = 0; i < fields.length; i++) {
    fields[i].style.color = inactive_color;
    if (!default_values[fields[i].id]) {
      default_values[fields[i].id] = fields[i].value;
    }
    fields[i].onfocus = function() {
      if (this.value == default_values[this.id]) {
        this.value = '';
        this.style.color = active_color;
      }
      this.onblur = function() {
        if (this.value == '') {
          this.style.color = inactive_color;
          this.value = default_values[this.id];
        }
      }
    }
  }
}

function getElementsByClassName(oElm, strTagName, strClassName){
  var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
  var arrReturnElements = new Array();
  strClassName = strClassName.replace(/\-/g, "\\-");
  var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
  var oElement;
  for (var i = 0; i < arrElements.length; i++) {
    oElement = arrElements[i];
    if (oRegExp.test(oElement.className)) {
      arrReturnElements.push(oElement);
    }
  }
  return (arrReturnElements);
}

/* restores styles after ie autofill yuckness */ 
function restoreStyles(){
    inputList = document.getElementsByTagName("INPUT");
    for(i=0;i<inputList.length;i++){
        inputList[i].style.backgroundColor = "";
        if(inputList[i].id.indexOf('txtFN')>0 || inputList[i].id.indexOf('txtLN')>0) {
            inputList[i].readOnly = true;
        }
        inputList[i].title = "";
    }
    selectList = document.getElementsByTagName("SELECT");
    for(i=0;i<selectList.length;i++){
        selectList[i].style.backgroundColor = "";
    }
    window.setTimeout(restoreStyles, 100);
}
/* Shows only required fields fanx Matt! */
function showReq(atag){
    form_fieldset = document.getElementsByTagName('fieldset');
    for(ff=0;ff<form_fieldset.length; ff++){
        hide=0;
        form_elements = form_fieldset[ff].getElementsByTagName('label');
        for (fe=0;fe<form_elements.length;fe++){
            if(form_elements[fe].className != "require"){
                changeReq(atag,form_elements[fe]);
                hide++;
            }
        }
        if(form_elements.length == hide) changeReq(null,form_fieldset[ff]);
        
    }
}
/* needed by the above */
function changeReq(html,element){
    if(element.className.indexOf("hidden") >= 0){
        newclass = element.className.replace("hidden","");
        element.className = newclass;
        if(html) html.innerHTML = "Afficher uniquement les champs obligatoires";
    }else {
        element.className += " hidden";
        if(html) html.innerHTML = "Afficher tous les champs (obligatoire et facultatif)";
    }
}

function clearDefaults() {
    with (document.forms[thisForm]) {
        for (var n=0; n<defaultVals.length; n++) {
            var thisField = defaultVals[n][0];
            var thisDefault = defaultVals[n][1];
            if (elements[thisField].value == thisDefault)
                elements[thisField].value = '';
        }
    }
}

function loadDefaults() {
    with (document.forms[thisForm]) {
        for (var n=0; n<defaultVals.length; n++) {
            var thisField = defaultVals[n][0];
            var thisDefault = defaultVals[n][1];
            if (elements[thisField].value == '')
                elements[thisField].value = thisDefault;

        }
    }
}

function initPage()
{
    restoreStyles();
    formDefaultValues();
    addClass(document.body, 'bodybg');
}

