function validate_checkbox_array(frm,name) {
	var f = eval("frm."+name);
	var l=f.length;
	for (var i=0; i<l; i++) {
		if (f[i].checked) return true;
	}
	return false;
}


var auto_complete_input,auto_complete_i_name,auto_complete_interval;
function auto_complete(input,i_name) {
	if (event.keyCode==13) return false;
	auto_complete_input=input;
	auto_complete_i_name=i_name;
	auto_complete_interval = setInterval(auto_complete2,50);
	return true;
}
function auto_complete2() {
	clearInterval(auto_complete_interval);
	var d = document.getElementById('auto_complete_'+auto_complete_i_name);
	var data = eval("auto_complete_"+auto_complete_i_name+"_data");
	var i_s = auto_complete_input.value;
	var l = i_s.length;
	var html="";
	for (i=0; i<data.length; i++) {
		if (data[i].substr(0,l)==i_s)
			html+="<tr><td onclick=\"auto_complete_select('"+auto_complete_i_name+"','"+data[i]+"');\" bgcolor=white onmouseover=this.style.background='#dddddd'; onmouseout=this.style.background='white';>"+data[i]+"</td></tr>";
	}
	d.innerHTML = "<table cellspacing=0 cellpadding=0>"+html+"</table>";
	d.style.visible='block';
}
function auto_complete_select(i_name,data) {
	auto_complete_input.value=data;
	var d = document.getElementById('auto_complete_'+i_name);
	d.innerHTML = "";
	d.style.visible='none';
}
function open_popup(w,h,url,name) {
    var viewimageWin = window.open( url, name,"status=0,height="+h+",width="+w+",resizable=0,scrollbars=yes")
	viewimageWin.moveTo(screen.availWidth/2-(w/2),screen.availHeight/2-(h/2));
	viewimageWin.focus();
}
function open_profile(id) {
	open_popup(600,500,"profile.php?user="+id,"prof_"+id);
}
function open_image(id) {
	open_popup(550,300,"show_image.php?id="+id,"img_"+id);
}
function open_message(id) {
	open_popup(550,300,"read_message.php?msg="+id,"msg_"+id);
}
function send_message(id) {
	open_popup(550,500,"profile.php?user="+id,"prof_"+id);
}
function chat(id) {
	open_popup(400,500,"profile.php?user="+id,"prof_"+id);
}

function resizeOuterTo(w,h) {
 if (parseInt(navigator.appVersion)>3) {
   if (navigator.appName=="Netscape") {
    top.outerWidth=w;
    top.outerHeight=h;
   }
   else top.resizeTo(w,h);
 }
}



//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 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;

} 




//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 (!isCreditCard(cc))
    return false;
  if (!isMasterCard(cc) && !isVisa(cc) && !isAmericanExpress(cc) && !isDinersClub(cc) &&
      !isDiscover(cc) && !isEnRoute(cc) && !isJCB(cc)) {
    return false;
  }
  return true;
} 

////////////////////////////////////////////////////////////////////////////////////////////////


function check_login_form(frm) {
	if (!isEmail(frm.email.value)) {
		frm.email.focus();
		frm.email.select();
		alert("נא מלאו כתובת אימייל תקינה");
		return false;
	}
	if (!isValidUserPass(frm.pass.value)) {
		frm.pass.focus();
		frm.pass.select();
		alert("הסיסמה חייבת להיות בין 6 ל-10 תווים");
		return false;
	}
	return true;
}

