// return the value of the radio button that is checked
// return an empty string if none are checked, or
// there are no radio buttons
function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

function check_valid_mailing_list_form (frm) {
	frm.ml_email.value=mytrim(frm.ml_email.value);
	if (frm.ml_email.value=='') {
		alert('לא הוכנסה כתובת אימייל');
		frm.ml_email.select();frm.ml_email.focus();
		return false;
	} else if (!isEmail(frm.ml_email.value)) {
		alert('יש שגיאה בכתובת האימייל שהוזנה');
		frm.ml_email.select();frm.ml_email.focus();
		return false;
	
	}	
	return true;
}

function check_valid_mailing_list_form_eng (frm) {
	frm.ml_email.value=mytrim(frm.ml_email.value);
	if (frm.ml_email.value=='') {
		alert('Email missing');
		frm.ml_email.select();frm.ml_email.focus();
		return false;
	} else if (!isEmail(frm.ml_email.value)) {
		alert('The email address is incorrect');
		frm.ml_email.select();frm.ml_email.focus();
		return false;
	
	}	
	return true;
}

function check_valid_newsletter(frm) {
	frm.first_name.value=mytrim(frm.first_name.value);
	frm.last_name.value=mytrim(frm.last_name.value);
	frm.email.value=mytrim(frm.email.value);
	if (frm.first_name.value=='' || frm.first_name.value=='שם') {
		alert('לא הוכנס שם פרטי');
		frm.first_name.select();frm.first_name.focus();
		return false;
	} else if (frm.last_name.value=='' || frm.last_name.value=='שם משפחה') {
		alert('לא הוכנס שם משפחה');
		frm.last_name.select();frm.last_name.focus();
		return false;
	} else if (frm.email.value=='' || frm.email.value=='דוא"ל') {
		alert('לא הוכנסה כתובת אימייל');
		frm.email.select();frm.email.focus();
		return false;
	} else if (!isEmail(frm.email.value)) {
		alert('יש שגיאה בכתובת האימייל שהוזנה');
		frm.email.select();frm.email.focus();
		return false;
	
	}	
	return true;
}
function check_valid_newsletter_eng(frm) {
	frm.first_name.value=mytrim(frm.first_name.value);
	frm.last_name.value=mytrim(frm.last_name.value);
	frm.email.value=mytrim(frm.email.value);
	if (frm.first_name.value=='' || frm.first_name.value=='Name') {
		alert('Name missing');
		frm.first_name.select();frm.first_name.focus();
		return false;
	} else if (frm.last_name.value=='' || frm.last_name.value=='Last name') {
		alert('Last name missing');
		frm.last_name.select();frm.last_name.focus();
		return false;
	} else if (frm.email.value=='' || frm.email.value=='Email') {
		alert('Email missing');
		frm.email.select();frm.email.focus();
		return false;
	} else if (!isEmail(frm.email.value)) {
		alert('The email address is incorrect');
		frm.email.select();frm.email.focus();
		return false;
	
	}	
	return true;
}

reEmail = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
re_phone = /^\d{2}([-]?)\d{7}$/;
re_mobile = /^\d{3}([-]?)\d{7}$/;
reClubPhone = /^\d{7}$/;
reZipCode = /^([\d{5}]?)$/;
reIdNum = /^([\d{7}]?)$/;
reNumbers = /^\d+$/;
//reText = /^([א-ת]+)$/;
reText = /^\w+$/;
//re_password = /^\w{4,6}$/;
re_password = /^(\w{4,6}|.{10,})$/;
re_id_num = /^\d{6,10}$/;
re_any_text = /^([אבגדהוזחטיכךלמםנןסעפףצץקרשת?<>]|\w|\d$)+([אבגדהוזחטיכךלמםנןסעפףצץקרשת?<>]|\w|\d$|\n|\s)*/;
re_unix_time = /^\d{4}[-]\d{2}[-]\d{2}$/; //= /^\d{6,}$/;
re_text = /^\w+$/;
re_email = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
re_num = /^\d{1,}$/;
re_id_num = /(^-?\d\d*$)/; // integers including negative for "other" option
re_float = /^\d{1,}([.]\d{1,})?$/;

function item_validator(my_item, regulator, error_msg, select_item, focus_item)
{	
		//alert(my_form.my_item.type);
		if ((!regulator)&&(my_item.value == ""))
		{
			alert(error_msg);
			if (focus_item) {my_item.focus();}
			if (select_item) {my_item.select();}
			return false;
		}
		
		if ((regulator)&&(!(regulator.test(my_item.value))))
		{
			alert(error_msg);
			if (focus_item) {my_item.focus();}
			if (select_item) {my_item.select();}
			return false;
		}
		
		return true;
}

//user and pass can be alphnumeric at least 6 characters
function isValidUserPass(str)
{
   	return /^[a-zA-Z0-9]{6,10}$/.test(str)
	//   	return /^[\_\@\#\$\%\+\-a-zA-Z0-9]$/.test(str)
}

//is only alphnumeric
function isAlphanumeric(str)
{
   	return /^[a-zA-Z0-9]+$/.test(str)
}

//is alphnumeric or "-" 
function isAlphabetic(str)
{
   	return /^[-a-zA-Z\s]+$/.test(str)
}

//is only numeric
function isNumeric(str)
{
   	return /^[0-9]\.?[0-9]*/.test(str)
}
//is positive integer
function isPosInt(str)
{
   	return /^[0-9]+$/.test(str)
}

//is correct phone number
function isPhone(str)
{
   	return /^[\\(\\)\+\-0-9 ]+$/.test(str)
}

//is correct cellphone number
function isCellPhone(str)
{
   	return /^0[0-9]{2}-[0-9]{7}$/.test(str)
}

//is correct email
function isEmail(str)
{
	return /^.+\@.+\..+$/.test(str)
}

function isZip(str)
{
   	return /^[-a-zA-Z0-9]+$/.test(str)
	//return /^[0-9]{5,9}$/.test(str)
}

function isXalphnumeric(str)
{
   	return /^[-a-zA-Z0-9\s\\.]+$/.test(str)
}

function isIsraeliIdNum(idnum){
	if (!(/^[0-9]+$/.test(idnum))) return false;
	if (idnum.length<8 || idnum.length>9) return false;
	while (idnum.length<9){
		idnum="0"+idnum;
	}
	var idnum1=idnum.substr(0,1)*1;
	var idnum2=idnum.substr(1,1)*2;
	var idnum3=idnum.substr(2,1)*1;
	var idnum4=idnum.substr(3,1)*2;
	var idnum5=idnum.substr(4,1)*1;
	var idnum6=idnum.substr(5,1)*2;
	var idnum7=idnum.substr(6,1)*1;
	var idnum8=idnum.substr(7,1)*2;
	var idnum9=idnum.substr(8,1)*1;
	
	if (idnum1>9) idnum1=(idnum1%10)+1
	if (idnum2>9) idnum2=(idnum2%10)+1
	if (idnum3>9) idnum3=(idnum3%10)+1
	if (idnum4>9) idnum4=(idnum4%10)+1
	if (idnum5>9) idnum5=(idnum5%10)+1
	if (idnum6>9) idnum6=(idnum6%10)+1
	if (idnum7>9) idnum7=(idnum7%10)+1
	if (idnum8>9) idnum8=(idnum8%10)+1
	if (idnum9>9) idnum9=(idnum9%10)+1
	
	var sumval=idnum1+idnum2+idnum3+idnum4+idnum5+idnum6+idnum7+idnum8+idnum9;
	
	sumval=sumval%10
	if (sumval>0){
		//alert("תעודת הזהות שגוייה");
		return false;
	}
	return true;
}




////////////////////////////////////////////////////////////////////////////////////////////////
function isCardMatch (cardType, cardNumber)
{
	cardType = cardType.toUpperCase();
	//alert("cardType is " + cardType +"\n" + "cardNumber is " + cardNumber)
	var doesMatch = false;

	if ((cardType == "VISA") && (isVisa(cardNumber)))
		doesMatch = true;
	if ((cardType == "MASTERCARD") && (isMasterCard(cardNumber)))
		doesMatch = true;
	if ((cardType == "AMERICAN EXPRESS") && (isAmericanExpress(cardNumber))) 
		doesMatch = true;
	if ((cardType == "DISCOVER") && (isDiscover(cardNumber)))
		doesMatch = true;
	if ((cardType == "JCB") && (isJCB(cardNumber)))
		doesMatch = true;
	if ((cardType == "DINERS") && (isDinersClub(cardNumber)))
		doesMatch = true;
	if ((cardType == "CARTEBLANCHE") && (isCarteBlanche(cardNumber)))
		doesMatch = true;
	if ((cardType == "ENROUTE") && (isEnRoute(cardNumber)))
		doesMatch = true;
	return doesMatch;
}  



function isCreditCard(st) {
  	if (st.length > 19)
    	return false;
  	sum = 0; 
	mul = 1; 
	l = st.length;
  	for (i = 0; i < l; i++) {
    	digit = st.substring(l-i-1,l-i);
    	tproduct = parseInt(digit ,10)*mul;
    	if (tproduct >= 10)
      		sum += (tproduct % 10) + 1;
    	else
      		sum += tproduct;
    		if (mul == 1)
      			mul++;
    		else
      			mul--;
  	}
  	if ((sum % 10) == 0)
    	return true;
  	else
    	return false;
} 



//Sample number: 4111 1111 1111 1111 (16 digits)
function isVisa(cc)
{
  if (((cc.length == 16) || (cc.length == 13)) &&
      (cc.substring(0,1) == 4))
    return isCreditCard(cc);
  return false;
}  




//Sample number: 5500 0000 0000 0004 (16 digits)
function isMasterCard(cc)
{
  firstdig = cc.substring(0,1);
  seconddig = cc.substring(1,2);
  if ((cc.length == 16) && (firstdig == 5) &&
      ((seconddig >= 1) && (seconddig <= 5)))
    return isCreditCard(cc);
  return false;

} 

function isIsraCard(cc)
{
	if (cc.length!=8 && cc.length!=9) return false;
	if (cc.length==8) cc="0"+cc;
	var sum=0;
	for (i=1; i<=9; i++) {
		sum+=i*cc.charAt(9-i);
	}
	return (sum%11==0);
} 





//Sample number: 340000000000009 (15 digits)
function isAmericanExpress(cc)
{
  firstdig = cc.substring(0,1);
  seconddig = cc.substring(1,2);
  if ((cc.length == 15) && (firstdig == 3) &&
      ((seconddig == 4) || (seconddig == 7)))
    return isCreditCard(cc);
  return false;
} 




//Sample number: 30000000000004 (14 digits)
function isDinersClub(cc)
{
  firstdig = cc.substring(0,1);
  seconddig = cc.substring(1,2);
  if ((cc.length == 14) && (firstdig == 3) &&
      ((seconddig == 0) || (seconddig == 6) || (seconddig == 8)))
    return isCreditCard(cc);
  return false;
}




function isCarteBlanche(cc)
{
  return isDinersClub(cc);
}




function isDiscover(cc)
{
  first4digs = cc.substring(0,4);
  if ((cc.length == 16) && (first4digs == "6011"))
    return isCreditCard(cc);
  return false;

} 





//Sample number: 201400000000009 (15 digits)
function isEnRoute(cc)
{
  first4digs = cc.substring(0,4);
  if ((cc.length == 15) &&
      ((first4digs == "2014") ||
       (first4digs == "2149")))
    return isCreditCard(cc);
  return false;
}




function isJCB(cc)
{
  first4digs = cc.substring(0,4);
  if ((cc.length == 16) &&
      ((first4digs == "3088") ||
       (first4digs == "3096") ||
       (first4digs == "3112") ||
       (first4digs == "3158") ||
       (first4digs == "3337") ||
       (first4digs == "3528")))
    return isCreditCard(cc);
  return false;
} // END FUNCTION isJCB()




function isAnyCard(cc)
{
	if (isIsraCard(cc)) return true;
	if (!isCreditCard(cc))
		return false;
	if (!isMasterCard(cc) && !isVisa(cc) && !isAmericanExpress(cc) && !isDinersClub(cc) &&
		!isDiscover(cc) && !isEnRoute(cc) && !isJCB(cc)) {
			return false;
	}
	return true;
} 

////////////////////////////////////////////////////////////////////////////////////////////////

