// JavaScript Document
//Function to change the visibility of div's used for i.e. the menu.
// Determine Browser type
var browserType;

if (document.layers) {browserType = "nn4"}
if (document.all) {browserType = "ie"}
if (window.navigator.userAgent.toLowerCase().match("gecko")) {browserType= "gecko"}

/*
* Function to check forms that have mandatory fields.
* Usage: <FORM name="formName" action="actionUrl.php" method="POST" onSubmit="checkForm(new Array("fieldName1","fieldName2"),new Array("type1","type2"))">
* Types:
* notEmpty
* email
* onlyNumbers
* onlyDoubles
* initials
* password
* selectNotEmpty (empty or initial select item should have value -1)
* checkbox
* * = not implemented yet
*/
function checkForm(myForm, fields, types){

  var result = true;
  var isEmpty = false;
  var invalidEmail = false;
  var notANumber = false;
  var selectIsEmpty = false;
  var notInitial = false;
  var errordisplay = false;
  var checkboxNotChecked = false;
     
  for (i=0; i<fields.length; i++){
    switch(types[i]){
      case '':
        if(!checkNotEmpty(myForm[fields[i]])){result=false;isEmpty=true;}
      break;
      case null:
        if(!checkNotEmpty(myForm[fields[i]])){result=false;isEmpty=true;}
      break;
      case 'notEmpty':
        if(!checkNotEmpty(myForm[fields[i]])){result=false;isEmpty=true;}
      break;
      case 'selectNotEmpty':
        if(!checkSelectNotEmpty(myForm[fields[i]])){result=false;selectIsEmpty=true;}
      break;
      case 'email':
        if(!validateEmail(myForm[fields[i]])){result=false;invalidEmail=true;}
      break;
      case 'onlyNumbers':
        if(!validateOnlyNumber(myForm[fields[i]])){result=false;notANumber=true;}
      break;
      case 'checkbox':
        if(!checkboxChecked(myForm[fields[i]])){result=false; checkboxNotChecked=true;}
      break;
    }
  }
  if(isEmpty){
    msg = "U heeft niet alle verplichte velden ingevuld.\n";
    errordisplay = true;
  }
  if(selectIsEmpty){
  	msg += "\n - U dient een keuze te maken uit de lijst.";
  	errordisplay = true;
  }
  if(invalidEmail){
   msg += "\n - U heeft geen geldig e-mail adres ingevuld.";
   errordisplay = true;
  }
  if(notANumber){
   msg +=  "\n - De rode velden mogen alleen cijfers bevatten.";
   errordisplay = true;
  }
  if(checkboxNotChecked){
    msg +=  "\n - U dient te machtigen om verder te gaan.";
    errordisplay = true;
  }
  if (errordisplay == true) {
   	alert(msg);
   	msg = "";
  }
  return result;
}


function checkNotEmpty(myObject){
  if(myObject.value==""){
      myObject.focus();
      myObject.style.backgroundColor="#99CCFF";
      return false;
  }
  myObject.style.backgroundColor="";
  return true;
}

function checkboxChecked(myObject){
  if(!myObject.checked){
      myObject.focus();
      myObject.style.backgroundColor="#99CCFF";
      return false;
  }
  myObject.style.backgroundColor="";
  return true;
}

function checkSelectNotEmpty(myObject){
  if(myObject.options[myObject.selectedIndex].value=="-1"){
    myObject.focus();
    myObject.style.backgroundColor="#E0A724";
    return false;
  }
  myObject.style.backgroundColor="";
  return true;
}

function validateEmail(myObject){
  
if(!myObject.value.match(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)){
      myObject.style.backgroundColor="#99CCFF";
      myObject.focus();
      return false;
  }
  myObject.style.backgroundColor="";
  return true;
}


function validateOnlyNumber(myObject){
  if(!myObject.value.match(/^[0-9]+$/)){
      myObject.style.backgroundColor="#FF6633";
      myObject.focus();
      return false;
  }
  myObject.style.backgroundColor="";
  return true;
}
