//===================================================================
//  
//  checkMultiData: preform checks and if all is wrong alert error message 
//  
//===================================================================
function checkMultiData(field,checks,errorMsg) {
	var doChecks = checks.split(/,/);
	var ok = false;
	for (var i=0;i < doChecks.length; i++) {
		if (doChecks[i] == "tz") {
			ok = checkTZ(field,'','',true);
		}
		else if (doChecks[i] == "mail") {
			ok =emailCheck(field,'','',true);
		}
		else if (doChecks[i] == "tel") {
			ok =phoneCheck(field,'','',true);
		}
		if (ok) {
			return true;
		}
	}
	if (field.value != "") {
		textFieldError(field,errorMsg);
	}
	return false;
}

//======== This function check for legal ID================================
function checkTZ(idfield,okMgs,errorMsg,quite_mode) {   
	var idnum = idfield.value;
	idnum = idnum.replace(/\D/g,"");
	
	if (idnum.length < 7) {
		if (!quite_mode) {
			textFieldError(idfield,errorMsg);
		}
		return false;
	}
	
   	if (idnum.length < 9) {
		idnum = "000000000"+idnum;
		idnum = idnum.substr(-9);
	}
	// calculate legal ID number
	var digits = idnum.split("");
	var sumval = 0;
	for (var d=0; d < digits.length; d++) {
		if (d % 2) {
			digits[d] *= 2;
		}
		else {
			digits[d] *= 1;
		}
		if (digits[d] > 9) {
			digits[d] -= 9;
		}
		sumval += digits[d];
	}
	
	sumval = sumval % 10;
    if ((sumval > 0) || (digits.length != 9)) {
		if (!quite_mode) {
			textFieldError(idfield,errorMsg);
		}
		return false;
  	}
	if (okMgs) {
		alert(okMgs);
	}
	idfield.value = idnum;
	return true;
}
//===================================================================
//  
//  phoneCheck: check valid phone number 
//  
//===================================================================
function phoneCheck(pfield,okMgs,errorMsg,quite_mode) {
	var phone = pfield.value;
	phone = phone.replace(/^\+972/,"0");
	var len = (phone.search(/^\+/) != -1) ? 11 : 9;
	phone = phone.replace(/\D/g,"");
	if (phone.search(/^05/) != -1) {		// cellular
		len = 10;
	}
	else if (phone.search(/^07/) != -1) {		// hot,orange etc
		len = 10;
	}
	if (phone.length != len) {
		if (!quite_mode) {
			textFieldError(pfield,errorMsg);
		}
		return false;
	}
	else {
		if (okMgs) {
			alert(okMgs);
		}
	}
	return true;
}
//===================================================================
//  
//  emailCheck: check valid email 
//  
//===================================================================
function emailCheck(efield,okMgs,errorMsg,quite_mode) {
	var email = efield.value.toLowerCase();
	email = email.replace(/^\s+/,"");
	email = email.replace(/\s+$/,"");
	var email_reg = new RegExp("^[a-zA-Z0-9_][\\-\\.a-zA-Z0-9_]*\@[\\-\\.a-zA-Z0-9_]+\\.[a-zA-Z0-9_]+$");
	if (email.search(email_reg) == -1) {
		if (!quite_mode) {
			textFieldError(efield,errorMsg);
		}
		return false;
	}
	else {
		if (okMgs) {
			alert(okMgs);
		}
		efield.value = email;
	}
	return true;
}
//===================================================================
//  
//  name: do 
//  
//===================================================================
function dateCheck(dfield,okMgs,errorMsg,quite_mode) {
	var date = dfield.value.toLowerCase();
	date = date.replace(/^\s+/,"");
	date = date.replace(/\s+$/,"");
	var date_reg = new RegExp("^([0123]?[0-9])\\D+([01]?[0-9])\\D+(\\d+)$");
	if (date.search(date_reg) != -1) {
		var dd = parseInt(RegExp.$1);
		var mm = parseInt(RegExp.$2);
		var yyyy = parseInt(RegExp.$3);
		if (yyyy < 30) {
			yyyy+= 2000;
		}
		else if (yyyy < 100) {
			yyyy += 1900;
		}
		else if (yyyy < 1000) {
			yyyy += 1000;
		}
		
		var errDate = false;
		if ((dd < 1) || (dd > 31)) {
			errDate = true;
		}
		else if ((dd == 31) && ((mm == 4) || (mm == 6) || (mm == 9) || (mm == 11))) {
			errDate = true;
		}
		else if ((dd > 29) && (mm == 2)) {
			errDate = true;
		}
		else if ((mm > 12) || (mm < 1)) {
			errDate = true;
		}
		else if (yyyy > 9999) {
			errDate = true;
		}
		
		if (errDate) {
			if (!quite_mode) {
				textFieldError(dfield,errorMsg);
			}
			return false;
		}
		if (okMgs) {
			alert(okMgs);
		}
		dfield.value = date;
	}
	else {
		if (!quite_mode) {
			textFieldError(dfield,errorMsg);
		}
		return false;
	}
	return true;

}

//===================================================================
//  
//  textFieldError: do on error 
//  
//===================================================================
function textFieldError(f,msg) {
	if (msg) {
		alert(msg);
	}
	try {
		if (f.value != "") {
			f.value = f.defaultValue;
		}
		if (f.value != "") {
			f.select();
			f.focus(); 
		}
	}
	catch(e) {}
}

