function trim(str)
{
	s = str.replace(/^(\s)*/, '');
	s = s.replace(/(\s)*$/, '');
	return s;
}

function dispAlert(elm,msg){				
		var ALtxt=elm.name+"Altxt";		
		var ALtxtID=document.getElementById(ALtxt);
		ALtxtID.innerHTML=msg;
}

function cleanAlert(elm){				
		var ALtxt=elm.name+"Altxt";		
		var ALtxtID=document.getElementById(ALtxt);
		ALtxtID.innerHTML='';
}

function clearAlert(str){				
		var ALtxt=str.toString()+"Altxt";		
		var ALtxtID=document.getElementById(ALtxt);
		ALtxtID.innerHTML='';
}

function reqFields(f,msg){		
		var fVal = f.value;
		fVal = trim(fVal);
		if (fVal == ""){
			f.focus();
			if(msg!='') dispAlert(f,msg);
			return 0;
		}
		return true;		
}

function selectFields(s,msg){		
		var sVal = s.value;
		if (sVal == "0"){
			s.focus();
			dispAlert(s,msg);
			return 0;
		}
		return true;			
}

function numFields(n,msg){		
		var nVal = n.value;
		var nChar = n.value.search("[^0-9]");
		if (nVal.length > 0 &&  nChar >= 0){
			n.focus();
			if(msg!='') dispAlert(n,msg);
			return 0;
		}
		return 1;	
}

function validateEmail(em,msg) {
	var emVal = em.value;
	if (emVal == '') return true;
	var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
	for (i=0; i<invalidChars.length; i++) {
	   if (emVal.indexOf(invalidChars.charAt(i),0) > -1) {       
		   em.focus();
		   dispAlert(em,msg);
	      return 0;
	   }
	}
	for (i=0; i<emVal.length; i++) {
	   if (emVal.charCodeAt(i)>127) {
	       em.focus();
		   dispAlert(em,msg);
	      return 0;
	   }
	}

	var atPos = emVal.indexOf('@',0);
	var len = emVal.length;
	if (atPos == -1) {
	    em.focus();
		dispAlert(em,msg);
	   return 0;
	}
	if (atPos == 0) {
	    em.focus();
		dispAlert(em,msg);
	   return 0;
	}
	if (emVal.indexOf('@', atPos + 1) > - 1) {
	    em.focus();
		dispAlert(em,msg);
	   return 0;
	}
	if (emVal.indexOf('.', atPos) == -1) {
	    em.focus();
		dispAlert(em,msg);
	   return 0;
	}
	if (emVal.indexOf('.', len-1) != -1) {
	    em.focus();
		dispAlert(em,msg);
	   return 0;
	}
	if (emVal.indexOf('@.',0) != -1) {
	    em.focus();
		dispAlert(em,msg);
	   return 0;
	}
	if (emVal.indexOf('.@',0) != -1){
	    em.focus();
		dispAlert(em,msg);
	   return 0;
	}
	if (emVal.indexOf('..',0) != -1) {
	    em.focus();
		dispAlert(em,msg);
	   return 0;
	}
	return true;
}

function validateEmailByString(emVal,msg,em) {
	emVal=trim(emVal);
	if (emVal == '') return true;
	var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
	for (i=0; i<invalidChars.length; i++) {
	   if (emVal.indexOf(invalidChars.charAt(i),0) > -1) {       
		   em.focus();
		   dispAlert(em,msg);
	      return false;
	   }
	}
	for (i=0; i<emVal.length; i++) {
	   if (emVal.charCodeAt(i)>127) {
	       em.focus();
		   dispAlert(em,msg);
	      return false;
	   }
	}

	var atPos = emVal.indexOf('@',0);
	var len = emVal.length;
	if (atPos == -1) {
	    em.focus();
		dispAlert(em,msg);
	   return false;
	}
	if (atPos == 0) {
	    em.focus();
		dispAlert(em,msg);
	   return false;
	}
	if (emVal.indexOf('@', atPos + 1) > - 1) {
	    em.focus();
		dispAlert(em,msg);
	   return false;
	}
	if (emVal.indexOf('.', atPos) == -1) {
	    em.focus();
		dispAlert(em,msg);
	   return false;
	}
	if (emVal.indexOf('.', len-1) != -1) {
	    em.focus();
		dispAlert(em,msg);
	   return false;
	}
	if (emVal.indexOf('@.',0) != -1) {
	    em.focus();
		dispAlert(em,msg);
	   return false;
	}
	if (emVal.indexOf('.@',0) != -1){
	    em.focus();
		dispAlert(em,msg);
	   return false;
	}
	if (emVal.indexOf('..',0) != -1) {
	    em.focus();
		dispAlert(em,msg);
	   return false;
	}
	return true;
}


 function numbersonly(e) {
  var key;
  var keychar;

  if (window.event)
    key = window.event.keyCode;
  else if (e)
    key = e.which;
  else
    return true;
  keychar = String.fromCharCode(key);

  // control keys
  if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==127) )
    return true;

  // numbers
  else if ((("0123456789").indexOf(keychar) > -1))
    return true;
  else
    return false;
}

function chooseBox(boxName,numberOfBoxes,ErrMsg,showM)
{
	var a=0;
	if(!showM) showM=2;
	
	for (p=1;p<=numberOfBoxes;p++){
		var box = document.getElementById(boxName+p.toString());
		if (box.checked==true){
				return true;
		}else{
			a=1;		
		}
	}
	if (a==1&&showM==2){		
		document.getElementById(boxName+'TD').style.border="1px solid red";
		return false;
	}
	else	
		return false;
}

function validateEmailNoAlert(em) {
	var emVal = em.value;
	if (emVal == '') return true;
	var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
	for (i=0; i<invalidChars.length; i++) 
	   if (emVal.indexOf(invalidChars.charAt(i),0) > -1)  return 0;
	
	for (i=0; i<emVal.length; i++) 
	   if (emVal.charCodeAt(i)>127)    return 0;
	   
	var atPos = emVal.indexOf('@',0);
	var len = emVal.length;
	if (atPos == -1) return 0;
	if (atPos == 0)  return 0;	
	if (emVal.indexOf('@', atPos + 1) > - 1)  return 0;
	if (emVal.indexOf('.', atPos) == -1)  return 0;
	if (emVal.indexOf('.', len-1) != -1) return 0;
	if (emVal.indexOf('@.',0) != -1)   return 0;
	if (emVal.indexOf('.@',0) != -1)  return 0;
	if (emVal.indexOf('..',0) != -1)  return 0;
	return true;
}

function checkDate(myDay,myMonth,myYear){
		var charpos = myDay.value.search("[^0-9]");
	    var myDayVal = myDay.value;
		var myMonthVal = myMonth.value;
		var myYearVal = myYear.value;		
		if (myDayVal.length > 0 &&  charpos >= 0){
			//dispAlert(em,"רק מספרים בשדה יום");			
			return false;
		}
		if ((myDayVal<1) || (myDayVal>31)){
			//dispAlert(em,"יום חייב להיות בין 1 ל- 31");						
			return false;				             
		}
		if ((myMonthVal==04 || myMonthVal==06 || myMonthVal==09 || myMonthVal==11) && myDayVal==31){
			//dispAlert(em,"בחודש "+myMonthVal+" אין 31 ימים");		   
			return false;				
		 }
		if (myMonthVal == 02) { // check for february 29th
			var isleap = (myYearVal % 4 == 0 && (myYearVal % 100 != 0 || myYearVal % 400 == 0));
			if (myDayVal > 29 || (myDayVal==29 && !isleap)) {
				//dispAlert(em,"בפברואר "+myYearVal+" אין את מספר הימים שהוזן");		   				
				return false;
			}
		}								
}


function reqFields_border(f,msg){		
		var fVal = f.value;
		fVal = trim(fVal);
		if (fVal == ""){
			f.style.borderColor="red";
			f.focus();
			return 0;
		}else{
			f.style.borderColor="";			
		}
		return true;
}

function selectFields_border(s,msg){		
		var sVal = s.value;
		if (sVal == "0"){
			s.focus();
			return 0;
		}else{
			s.style.borderColor="";			
		}
		return true;
}

function numFields_border(n,msg){		
		var nVal = n.value;
		var nChar = n.value.search("[^0-9]");
		if (nVal.length > 0 &&  nChar >= 0){
			n.style.borderColor="red";
			n.focus();			
			return 0;
		}else{
			n.style.borderColor="";
		}
		return true;
}

function validateEmail_border(em,msg) {
	var emVal = em.value;
	if (emVal == '') return true;
	var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
	for (i=0; i<invalidChars.length; i++) {
	   if (emVal.indexOf(invalidChars.charAt(i),0) > -1) {       
		   em.style.borderColor="red";
		   em.focus();
	      return 0;
	   }
	}
	for (i=0; i<emVal.length; i++) {
	   if (emVal.charCodeAt(i)>127) {
	       em.style.borderColor="red";
		   em.focus();
	      return 0;
	   }
	}

	var atPos = emVal.indexOf('@',0);
	var len = emVal.length;
	if (atPos == -1) {
	   em.style.borderColor="red";
	   em.focus();
	   return 0;
	}else{
		em.style.borderColor="";
	}
	if (atPos == 0) {
	   em.style.borderColor="red";
	   em.focus();
	   return 0;
	}else{
		em.style.borderColor="";
	}
	if (emVal.indexOf('@', atPos + 1) > - 1) {
	   em.style.borderColor="red";
	   em.focus();
	   return 0;
	}else{
		em.style.borderColor="";
	}
	if (emVal.indexOf('.', atPos) == -1) {
	   em.style.borderColor="red";
	   em.focus();
	   return 0;
	}else{
		em.style.borderColor="";
	}
	if (emVal.indexOf('.', len-1) != -1) {
	   em.style.borderColor="red";
	   em.focus();
	   return 0;
	}else{
		em.style.borderColor="";
	}
	if (emVal.indexOf('@.',0) != -1) {
	   em.style.borderColor="red";
	   em.focus();
	   return 0;
	}else{
		em.style.borderColor="";
	}
	if (emVal.indexOf('.@',0) != -1){
	   em.style.borderColor="red";
	   em.focus();
	   return 0;
	}else{
		em.style.borderColor="";
	}
	if (emVal.indexOf('..',0) != -1) {
	   em.style.borderColor="red";
	   em.focus();
	   return 0;
	}else{
		em.style.borderColor="";
	}
	return true;
}

function alphaNumSpaceFields(str,msg){
	var strVal = str.value;
	var myRegxp = /^([a-zA-Z0-9\s]+)$/;
	if (myRegxp.test(strVal)==false){
		str.focus();
		if(msg!='') dispAlert(str,msg);
		return 0;
	}
	return true;
}


function alphaNumSpaceFieldsHeb(str,msg){
	var strVal = str.value;
	var myRegxp = /^([-\u0590-\u05FFa-zA-Z0-9]+)$/;
	if (myRegxp.test(strVal)==false){
		str.focus();
		if(msg!='') dispAlert(str,msg);
		return 0;
	}
	return true;
}

