function validatePhone(phone)
{
   var phoneReg = "^(\\+[0-9]{2}|0)[0-9] ?[0-9]{2} ?[0-9]{2} ?[0-9]{2} ?[0-9]{2} *$";
   var regex = new RegExp(phoneReg);
   return regex.test(phone);
}

function validateEmail (mail)
{
   var emailReg = "^[a-zA-Z0-9-_][a-zA-Z0-9+-_\\.]+@[a-zA-Z0-9-_]+\\.[a-zA-Z0-9]{2,4}$";
   var regex = new RegExp(emailReg);
   return regex.test(mail);
}

function validateNonEmptyAlpha (value)
{
   var textReg = "[a-zA-Z]+";
   var regex = new RegExp(textReg);
   return regex.test(value);
}

function validateNonEmptyNumeric (value)
{
   var numReg = "[0-9]+";
   var regex = new RegExp(numReg);
   return regex.test(value);
}

function validateField(id, type)
{
   var obj = document.getElementById(id);
   var value = obj.value;
   var isValid = false;
   
   if (type=="mail")
      isValid = validateEmail(value);
   else if (type == "phone")
      isValid = validatePhone(value);
   else if (type == "text")
      isValid = validateNonEmptyAlpha(value);
   else if (type == "numeric")
      isValid = validateNonEmptyNumeric(value);
   
   var errorObj = document.getElementById(id+"_error");
   if (isValid)
   {
      obj.style.backgroundColor="white";
      errorObj.style.display="none";
   }
   else
   {
      obj.style.backgroundColor="#FFBBBB";
      errorObj.style.display="block";
   }
      
   return isValid;
}

function validateRegisterForm()
{
   var result;
   
   result = validateField("groupName", "text");
   result = validateField("groupTerritory", "text") && result;
   result = validateField("contactName", "text") && result;
   result = validateField("contactMail", "mail") && result;
   result = validateField("contactPhone", "phone") && result;
   result = validateField("boys", "numeric") && result;
   result = validateField("girls", "numeric") && result;
   result = validateField("leaders", "numeric") && result;
   result = validateField("startLocation", "text") && result;
   
   return result;
}

function checkRoadAvailability()
{
    var startLocation = document.getElementById("startLocation");
    var value = startLocation.value;
    var warningDiv = document.getElementById("fullRoadWarning");
    if (value == "idf")
        warningDiv.style.display="";
    else
        warningDiv.style.display="none";
        
}

function CvAMultiFormCheckForm ()
{
   var result;
   
   result = validateField("multiFormName", "text");
   result = validateField("multiFormUnitName", "text") && result;
   
   return result;
}

function CvAMultiFormValueChecked ()
{
    var inputElement;
    var choiceIndex = 1;
    var checkedCount = 0;
    
    // on compte les elements cochés
    while (inputElement = document.getElementById("CvAMultiFormChoice_"+choiceIndex))
    {
      if (inputElement.checked)
         checkedCount ++;
         
      choiceIndex++;
    }
    
    // puis, si on est à 10, on desactive les non selectionnés
    choiceIndex = 1;
    while (inputElement = document.getElementById("CvAMultiFormChoice_"+choiceIndex))
    {
      inputElement.disabled = ((checkedCount>=10) && (!inputElement.checked))
         
      choiceIndex++;
    }
}