var err="";
var fobj;
var errors=new Array();

function initcheck(obj){
  fobj=obj;
  l=obj.form.elements;
  for (var i=0; i<l.length; i++){
    if (l[i].id && l[i].id!='arr_ro' && l[i].id!='dep_ro'){
      l[i].onkeyup=function() { error_check(this); }
      error_check(l[i]);
    }
  }
}

function check(obj){
  t=obj.id.split("_");
  err="";
  if (obj.value=="" && t[t.length-1]=="MAND") {err+="Field is empty!<br/>";} 

  if (err!="" || obj.value!="")
  {
        switch (t[0]){
          case "char":{
            if (obj.value.length>t[1]) err+="Maximum "+t[1]+" characters!";
          }
          break;
          case "num":{
            if (isNaN(obj.value)) err+="Use only numbers!<br/>(E.g: 12)";
            else if (obj.value==0) err+="0 is not valid!";
            else if (obj.value.length>t[1]) err+="Maximum "+t[1]+" numbers!<br/>(E.g: 12)";
          }
          break;
          case "numeric":{
            if (isNaN(obj.value)) err+="Use only numbers!<br/>(E.g: 12)";
            else if (obj.value.length>t[1]) err+="Maximum "+t[1]+" numbers!<br/>(E.g: 12)";
          }
          break;

          case "time":{
            reg=/^(\d{1,2}):(\d{2})$/;
            if (!reg.test(obj.value)) err="Not a valid time format!<br /> (E.g: 21:35)";
          }
          break;
          case "tel":{
            reg=/^[0-9\/+ -]*$/;
            if (!reg.test(obj.value) || obj.value.length>18 || obj.value.length<7) err="Not a valid phone number!<br/> (E.g: +36 20 444-5334)";
          }
          break;
          case "email":{
            reg=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
            if (!reg.test(obj.value)) err="Not a valid e-mail!<br /> (E.g: name@mailserver.com)";
          }
          break;
          case "fname":{
            if (!isNaN(obj.value)) err+="Letters only, no numbers!<br /> (E.g: John)";
            else if (obj.value.length<2) err+="Minimum 2 characters!<br /> (E.g: Smith)";
          }
          break;
          case "lname":{
            if (!isNaN(obj.value)) err+="Letters only, no numbers!<br/> (E.g: Smith)";
            else if (obj.value.length<2) err+="Minimum 2 characters!<br /> (E.g: Smith)";
          }
          break;
          case "name":{
            if (!isNaN(obj.value)) err+="Letters only, no numbers! <br/> (E.g: John Smith)";
            else if (obj.value.length<6) err+="Minimum 6 characters!<br/> (E.g: John Smith)";
          }
          break;
          case "date":{
            reg=/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/;
            if (!reg.test(obj.value)) err="Choose a date";
          }
          break;
          case "choose":{
              if (obj.value=="" || obj.value=="0" ) {err="Please choose";}
          }
          break;

      
        }
  }

  if (err!=""){
     return false;
    
  }
  else {
    return true;
  }
}

function error_check(obj){
  
  if (!check(obj)){
    t=obj.id.split("_");
          obj.style.background='#fff';
          document.getElementById(obj.id+'_m').style.visibility="visible";
          document.getElementById(obj.id+'_m').innerHTML=err;
          hit=false;
          for (i=0; i<errors.length; i++){
            if (errors[i]==obj.id){
                hit=true;
                  if (t[t.length-1]!="MAND" && obj.value.length>0)
                  document.getElementById(obj.id+'_m').style.visibility="visible";
                  else{
                      if (t[t.length-1]!="MAND" && obj.value.length==0) {document.getElementById(obj.id+'_m').style.visibility="hidden";}
                    }
              }
          }
          if (!hit) {
            errors[errors.length]=obj.id;
            document.getElementById(obj.id+'_m').style.zIndex=errors.length;
          }
      
  }
  else{
    obj.style.background='#fff';
    document.getElementById(obj.id+'_m').style.visibility="hidden";
    for (i=0; i<errors.length; i++){
      if (errors[i]==obj.id) errors.splice(i,1);
    }
  }

  if (errors.length==0) fobj.style.display="";
  else fobj.style.display="none";
  //alert(errors.length);
}
