//validator vars
var error_msg=new Array();
error_msg['min']="البيانات المدخلة قصيرة جدا ";
error_msg['max']="البيانات المدخلة طويلة جدا ";
error_msg['min_val']="القيمة المدخلة صغيرة جدا ";
error_msg['max_val']="القيمة المدخلة كبيرة جدا ";
error_msg['empty']="هذا الحقل إلزامى ";
error_msg['not_num']=" لابد وان تكون القيمة المدخلة ارقام فقط";
error_msg['invalid_mail']=" بريد الكترونى غير صحيح ";
error_msg['invalid_mdate']="الشكل السليم للتاريخ 30-03-1998 ";
error_msg['invalid_hdate']="الشكل السليم للتاريخ 30-03-1430 ";


function error_alert(obj,error_id){
	var div_id=obj.id;
	var error_msg_id='error_txt_'+div_id.substring(10);
	var error_img_id='error_img_'+div_id.substring(10);
	document.getElementById(error_msg_id).innerHTML=error_msg[error_id];
	document.getElementById(error_img_id).className='form_error_img_error';
	document.getElementById(error_img_id).innerHTML='&nbsp;';
}

function correct_error(obj){
	var div_id=obj.id;
	var error_msg_id='error_txt_'+div_id.substring(10);
	var error_img_id='error_img_'+div_id.substring(10);
	document.getElementById(error_msg_id).innerHTML='';
	document.getElementById(error_img_id).className='form_error_img_correct';
	document.getElementById(error_img_id).innerHTML='&nbsp;';
}

function remove_alert(obj){
	var div_id=obj.id;
	var error_msg_id='error_txt_'+div_id.substring(10);
	var error_img_id='error_img_'+div_id.substring(10);
	document.getElementById(error_msg_id).innerHTML='';
	document.getElementById(error_img_id).className='form_error_img';
	document.getElementById(error_img_id).innerHTML='&nbsp;';
}

function edit_alert(obj){
	var div_id=obj.id;
	var error_msg_id='error_txt_'+div_id.substring(10);
	var error_img_id='error_img_'+div_id.substring(10);
	document.getElementById(error_msg_id).innerHTML='';
	document.getElementById(error_img_id).className='form_error_img_edit';
	document.getElementById(error_img_id).innerHTML='&nbsp;';
}

function check_required(obj,min,max){
	var val=Trim(obj.value);
	if(val == '') {
		error_alert(obj,'empty');
		return false;
	}
	if(val.length< min) {
		error_alert(obj,'min');
		return false;
	}
	if(val.length> max) {
		error_alert(obj,'max');
		return false;
	}
	correct_error(obj);
	return true;	
}


function check_num(obj,min,max,req){
	var val=Trim(obj.value);
	if(isNaN(val)){
		error_alert(obj,'not_num');
		return false;
	}
	if(req =="req" && val == '' ) {
		error_alert(obj,'empty');
		return false;
	}

	if(val.length < min && req =="req" ) {
		error_alert(obj,'min');
		return false;
	}
	if(val.length < min && val != '') {
		error_alert(obj,'min');
		return false;
	}
	if(val.length > max) {
		error_alert(obj,'max');
		return false;
	}
	if(val == '')remove_alert(obj);
	else correct_error(obj);
	return true;	
}

function check_num_val(obj,min,max,req){
	var val=Trim(obj.value);
	if(isNaN(val)){
		error_alert(obj,'not_num');
		return false;
	}
	if(req =="req" && val == '' ) {
		error_alert(obj,'empty');
		return false;
	}

	if(val < min && req =="req" ) {
		error_alert(obj,'min_val');
		return false;
	}
	if(val < min && val != '') {
		error_alert(obj,'min');
		return false;
	}
	if(val > max) {
		error_alert(obj,'max_val');
		return false;
	}
	if(val == '')remove_alert(obj);
	else correct_error(obj);
	return true;	
}


function check_email(obj,req) {
	var val=Trim(obj.value);
  // are regular expressions supported?
	if(val !=''){
		var supported = 0;
	 	if (window.RegExp) {
			var tempStr = "a";
			var tempReg = new RegExp(tempStr);
			if (tempReg.test(tempStr)) supported = 1;
	  	}
	  	if (!supported) return (val.indexOf(".") > 2) && (val.indexOf("@") > 0);
	  	var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	  	var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
	  	if (!r1.test(val) && r2.test(val)) {
			correct_error(obj);
			return true;
		}
	  	else{
			error_alert(obj,'invalid_mail');
			return false;
		}
	}
	if(req=="req")	error_alert(obj,'empty');
	else remove_alert(obj);
	return true;	
}

function update_hdate(obj){
	var obj_id=obj.id;
	var obj_num=obj_id.substring(10);
	var day=document.getElementById("daydayday_"+obj_num).value;
	var month=document.getElementById("mon_month_"+obj_num).value;
	var year=document.getElementById("year_year_"+obj_num).value;
	document.getElementById("form_item_"+obj_num).value=year+"-"+month+"-"+day;
	check_hdate(document.getElementById("form_item_"+obj_num),'req');
}

function update_mdate(obj){
	var obj_id=obj.id;
	var obj_num=obj_id.substring(10);
	var day=document.getElementById("daydayday_"+obj_num).value;
	var month=document.getElementById("mon_month_"+obj_num).value;
	var year=document.getElementById("year_year_"+obj_num).value;
	document.getElementById("form_item_"+obj_num).value=year+"-"+month+"-"+day;
	check_mdate(document.getElementById("form_item_"+obj_num),'req');
}

function check_hdate(obj,req){
	var val=Trim(obj.value);
  // are regular expressions supported?
	if(val !=''){
		var vaild =1 ;
		if(val.length != 10) vaild =0 ;
		else if(val.substr(0,4) < 1200 || val.substr(0,4) >1600)vaild =0 ;
		else if(val.substr(5,2) < 1 || val.substr(5,2) >12)vaild =0 ;
		else if(val.substr(8,2) < 1 || val.substr(8,2) >30)vaild =0 ;
		if (vaild ==1) {
			correct_error(obj);
			return true;
		}
	  	else{
			error_alert(obj,'invalid_hdate');
			return false;
		}
	}
	if(req=="req")	error_alert(obj,'empty');
	else remove_alert(obj);
	return true;	
}

function check_mdate(obj,req){
	var val=Trim(obj.value);
  // are regular expressions supported?
	if(val !=''){
		var vaild =1 ;
		if(val.length != 10) vaild =0 ;
		else if(val.substr(0,4) < 1900 || val.substr(0,4) >2200)vaild =0 ;
		else if(val.substr(5,2) < 1 || val.substr(5,2) >12)vaild =0 ;
		else if(val.substr(8,2) < 1 || val.substr(8,2) >31)vaild =0 ;
		if (vaild ==1) {
			correct_error(obj);
			return true;
		}
	  	else{
			error_alert(obj,'invalid_mdate');
			return false;
		}
	}
	if(req=="req")	error_alert(obj,'empty');
	else remove_alert(obj);
	return true;	
}

function set_radio_val(obj){
	var val=Trim(obj.value);
	var obj_id=obj.id;
	//alert(obj_id);
	var obj_name=obj_id.substring(4);
	document.getElementById(obj_name).value=val;
	edit_alert(document.getElementById(obj_name));
}
		
function check_length(obj,min,max){
	var val=Trim(obj.value);
	if(val == '') {
		correct_error(obj);
		return true;
	}
	if(val.length< min) {
		error_alert(obj,'min');
		return false;
	}
	if(val.length> max) {
		error_alert(obj,'max');
		return false;
	}
	correct_error(obj);
	return true;	
}	

function set_check_val(obj,checked,unchecked){
	//val=Trim(obj.value);
	var obj_id=obj.id;	//alert(obj_id);
	var obj_name=obj_id.substring(4);
	if(obj.checked==true)val=checked;
	else val=unchecked;
	document.getElementById(obj_name).value=val;
}

function show_hide_sub_form(obj,show_val,hide_val){
	var s_vals=new Array();
	var h_vals=new  Array();
	var obj_id=obj.id;
	var obj_name=obj_id.substring(4);
	var obj_val=document.getElementById(obj_name).value;
	
	s_vals=show_val.split(",");
	h_vals=hide_val.split(",");
	// check if the vale in show vales
	for(var i=0;i<s_vals.length;i++){
		if(s_vals[i]==obj_val){
			show_items_div("sub_"+obj_name);
		return;	
		}
	}
	// check if the vale in hide vales
	for(var i=0;i<h_vals.length;i++){
		if(h_vals[i]==obj_val){
			hide_items_div("sub_"+obj_name);
		return;	
		}
	}
}

function show_hide_sub_form_other(obj,show_val,hide_val){
	var s_vals=new Array();
	var h_vals=new  Array();
	var obj_id=obj.id;
	var obj_name=obj_id;//.substring(4);
	var obj_val=document.getElementById(obj_name).value;
	
	s_vals=show_val.split(",");
	h_vals=hide_val.split(",");
	// check if the vale in show vales
	for(var i=0;i<s_vals.length;i++){
		if(s_vals[i]==obj_val){
			show_items_div("sub_"+obj_name);
		return;	
		}
	}
	// check if the vale in hide vales
	for(var i=0;i<h_vals.length;i++){
		if(h_vals[i]==obj_val){
			hide_items_div("sub_"+obj_name);
		return;	
		}
	}
}


function is_in_form(div_id,check_func){
	if(document.getElementById(div_id).style.display=='none')return true;
	else {
		return eval(check_func);
	}
	
}


 // unused funct
//
//function checkText(formname, textboxname, displaytext) {
//  var localerror = '';
//  if(Trim(eval('document.'+formname+'.'+textboxname+'.value'))=='') {
//    localerror =  '- '+displaytext+' is Required.\n';
//  } else localerror = '';
//  return localerror;
//}
//
//function checkNum(formname, textboxname, displaytext) {
//  var localerror = '';
//  if(isNaN(eval('document.'+formname+'.'+textboxname+'.value'))) {
//    localerror =  '- '+displaytext+' Should Be A Number With No Spaces.\n';
//  } else localerror = '';
//  return localerror;
//}
//
//function checkSpaces(formname, textboxname, displaytext) {
//  var valid = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_'; // define valid characters
//  var localerror = '';
//  if(!isValid(Trim(eval('document.'+formname+'.'+textboxname+'.value')), valid)) {
//    localerror =  '- '+displaytext+' Should Not Contain Spaces.\n';
//  } else localerror = '';
//  return localerror;
//}
//
//function checkSelect(formname, selectboxname, displaytext) {
//  var localerror = '';
//  if(eval('document.'+formname+'.'+selectboxname+'.selectedIndex')==0) {
//    localerror =  '- '+displaytext+' is Required.\n';
//  } else localerror = '';
//  return localerror;
//}
//
//function getRadio(formname, radioname, displaytext) {
//  for (var i=0; i < eval('document.'+formname+'.'+radioname+'.length'); i++) {
//    if (eval('document.'+formname+'.'+radioname+'[i].checked')) {
//      var rad_val = eval('document.'+formname+'.'+radioname+'[i].value');
//      return rad_val;
//    }
//  }
//}
//
//function checkRadio(formname, radioname, displaytext) {
//  var localerror = '';
//  var rad_val    = '';
//  for (var i=0; i < eval('document.'+formname+'.'+radioname+'.length'); i++) { //check every radio button by that name
//    if (eval('document.'+formname+'.'+radioname+'[i].checked'))  { //if it is checked
//      rad_val += '-';
//      }	else rad_val += '';
//      }
//    if (rad_val=='') {
//      localerror =  '- '+displaytext+' is Required.\n';
//    }
//  return localerror;
//}
//
//function autoComplete (field, select, property) {
///*onKeyUp="autoComplete(this,this.form.selectboxname,'value',false)" - add this to textbox where you are typing*/
//  var found = false;
//  for (var i = 0; i < select.options.length; i++) {
//    if (select.options[i][property].toUpperCase().indexOf(field.value.toUpperCase()) == 0) {
//      found=true; break;
//    }
//  }
//  if (found) {
//    select.selectedIndex = i;
//  } else {
//    select.selectedIndex = -1;
//  }
//  if (field.createTextRange) {
//    if (!found) {
//      field.value=field.value.substring(0,field.value.length-1);
//      return;
//    }
//    var cursorKeys ="8;46;37;38;39;40;33;34;35;36;45;";
//    if (cursorKeys.indexOf(event.keyCode+";") == -1) {
//      var r1 = field.createTextRange();
//      var oldValue = r1.text;
//      var newValue = found ? select.options[i][property] : oldValue;
//      if (newValue != field.value) {
//        field.value = newValue;
//        var rNew = field.createTextRange();
//        rNew.moveStart('character', oldValue.length) ;
//        rNew.select();
//      }
//    }
//  }
//}

//function check_date(field){
//var checkstr = "0123456789";
//var DateField = field;
//var Datevalue = "";
//var DateTemp = "";
//var seperator = "-";
//var day;
//var month;
//var year;
//var leap = 0;
//var err = 0;
//var i;
//   err = 0;
//   DateValue = DateField.value;
//   /* Delete all chars except 0..9 */
//   for (i = 0; i < DateValue.length; i++) {
//	  if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
//	     DateTemp = DateTemp + DateValue.substr(i,1);
//	  }
//   }
//   DateValue = DateTemp;
//   /* Always change date to 8 digits - string*/
//   /* if year is entered as 2-digit / always assume 20xx */
//   if (DateValue.length == 6) {
//      DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); }
//   if (DateValue.length != 8) {
//      err = 19;}
//   /* year is wrong if year = 0000 */
//   year = DateValue.substr(4,4);
//   if (year == 0) {
//      err = 20;
//   }
//   /* Validation of month*/
//   month = DateValue.substr(2,2);
//   if ((month < 1) || (month > 12)) {
//      err = 21;
//   }
//   /* Validation of day*/
//   day = DateValue.substr(0,2);
//   if (day < 1) {
//     err = 22;
//   }
//   /* Validation leap-year / february / day */
//   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
//      leap = 1;
//   }
//   if ((month == 2) && (leap == 1) && (day > 29)) {
//      err = 23;
//   }
//   if ((month == 2) && (leap != 1) && (day > 28)) {
//      err = 24;
//   }
//   /* Validation of other months */
//   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
//      err = 25;
//   }
//   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
//      err = 26;
//   }
//   /* if 00 ist entered, no error, deleting the entry */
//   if ((day == 0) && (month == 0) && (year == 00)) {
//      err = 0; day = ""; month = ""; year = ""; seperator = "";
//   }
//   /* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
//   if (err == 0) {
//      DateField.value = day + seperator + month + seperator + year;
//   }
//   /* Error-message if err != 0 */
//   else {
//      alert("Date is incorrect!");
//      DateField.select();
//	  DateField.focus();
//   }
//}






//--------------------------------------------------------------------------------
function Trim(s) {
  while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r')) {
    s = s.substring(1,s.length);
  }
  while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r')) {
    s = s.substring(0,s.length-1);
  }
  return s;
}

function isValid(string,allowed) {
//  var valid = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; // define valid characters
    for (var i=0; i< string.length; i++) {
      if (allowed.indexOf(string.charAt(i)) == -1) return false;
    }
    return true;
}

