
var mnd_f=new Array(),mnd_m=new Array(),mnd_t=new Array();

function c4_validateForm() { //v4.01
  var i,p,q,nm,test,num,min,max,errors='',a=c4_validateForm.arguments;
  for (i=0; i<(a.length-3); i+=4) {
    test=a[i+2]; val=MM_findObj(a[i]);
    if (val) {
      nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) {
        if (!c4_validateEmail(val)) errors+='Adresa de e-mail nu este corecta\n';
      }
      else if (test.indexOf('isDate')!=-1) {
        if (!c4_validateDate(val)) errors+='Introduceti o data calendaristica\n';
      }
      else if (test.indexOf('isTime')!=-1) {
        if (!c4_validateTime(val)) errors+='Introduceti ora dorita\n';
      }
      else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='Acest camp trebuie sa fie de tip numeric\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+=nm+' trebuie sa fie intre '+min+' si '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += a[i+3]+'\n'; }
  } if (errors) alert(errors);
  document.MM_returnValue = (errors == '');
}

function c4_validateEmail(v) { //v1.01
  var at=v.indexOf('@'),cm=v.indexOf(','),cl=v.indexOf(';'),pd=v.lastIndexOf('.'),sp=v.indexOf(' '),ln=v.length-1,cnt=0;
  var p=at;
  while (p!=-1) { cnt++; p=v.indexOf('@',p+1); }
  if ((at<1)||(pd<=at+1)||(pd==ln)||(sp!=-1)||(cm!=-1)||(cl!=-1)||(cnt!=1)) return false;
  return true;
}

function c4_validateDate(ckDate) {
  if (ckDate.length == 6) {
    ckDate = ckDate.substr(0,2) + "/" + ckDate.substr(2,2) + "/" +ckDate.substr(4,2);
  }
  if (ckDate.length != 0 && (
      ckDate.length != 8 ||
     (ckDate.substr(0,1) <  "0" || ckDate.substr(0,1) >  "3") ||
     (ckDate.substr(1,1) <  "0" || ckDate.substr(1,1) >  "9") ||
     (ckDate.substr(2,1) != "/") ||
     (ckDate.substr(3,1) <  "0" || ckDate.substr(3,1) >  "1") ||
     (ckDate.substr(4,1) <  "0" || ckDate.substr(4,1) >  "9") ||
     (ckDate.substr(5,1) != "/") ||
     (ckDate.substr(6,1) <  "0" || ckDate.substr(6,1) >  "9") ||
     (ckDate.substr(7,1) <  "0" || ckDate.substr(7,1) >  "9")
     )) {
       return false;
  }

  var ckDay  = eval(ckDate.substr(0,2));
  var ckMon  = eval(ckDate.substr(3,2));
  var ckYear = eval(ckDate.substr(6,2));

  if ((ckDay > 31) ||
      (ckMon > 12) ||
      (ckDay == 31 && (ckMon == 4 || ckMon == 6 || ckMon == 9 || ckMon == 11)) ||
      (ckMon == 2  && ckDay> 29) ||
      (ckMon == 2  && ckDay == 29 && ckYear % 4 != 0)) {
        return false;
  }
  return true;
}

function c4_validateTime(v) {
  var reTime = /^(\d{2}):(\d{2})$/;
  if(!reTime.test(v) && (v != "")) {
    return false;
  }
  return true;
}

function RegisterMandatory() {
  var obj,msg,t='R',a=RegisterMandatory.arguments;
  obj=a[0]; msg=a[1];
  if (typeof(a[2])!='undefined') t=a[2];
  if (obj.id) {
    mnd_f = mnd_f.concat(obj.id);
    mnd_m = mnd_m.concat(msg);
    mnd_t = mnd_t.concat(t);
  }
  /*
  else {
    var url = 'ajax_register_error.php';
    var parameters = 'error=Error:_RegisterMandatory:_obj.id';
    var myAjax = new Ajax.Request(
    url,
    {
    method: 'get',
    parameters: parameters,
    onComplete: function (req) { var hawb_ps = handle_ajax_request(req); }
    });
  }
  */
	return true;
}

function CheckMandatory() {
  var form_ok = true;
	for (i=0; (i<mnd_f.length && form_ok==true); i++) {
	  c4_validateForm(mnd_f[i],'',mnd_t[i], mnd_m[i]);
	  if (!document.MM_returnValue) {
      var el = MM_findObj(mnd_f[i]);
      el.value = ''; el.focus(); form_ok = false;
	  }
	}
	return form_ok;
}
