﻿	//Validation.js
	//
	//For validation of form fields

	var NS = (document.layers)? true:false
	var IE = (document.all)? true:false
	var gNS = (document.layers)? true:false
	var gIE = (document.all)? true:false
	var gCurrElement;

	var L_Empty = 'יש להזין ערך בשדה זה';
        var L_Invalid ='הזנת ערך שגויי בשדה זה';
        var L_InvalidCard = "מספר הכרטיס לא תקין";
        var L_InvalidID = "תעודת זהות לא תקינה";
	var L_Empty_en = 'Please enter this field';
        var L_Invalid_en ='Incorrect value';
        var L_InvalidCarden = "Card Number is invalid";
        var L_InvalidIDen = "I.D. is invalid";
	//Patterns
	var PatternsDict = new Object();

	PatternsDict.isZip = /^(\d{5}(-\d{4})?)?$/;
	  // matches zip codes
	
	PatternsDict.isCrdCard = /^\d{8,16}$/;
	  // matches credit card number
	
	PatternsDict.isCommaDelimited = /^[1-9][0-9]?$|^([1-9][0-9]?\,?)*$/;
	  // matches comma dilimited numbers
	   
	PatternsDict.isCurrency = /^\d{1,3}(,\d{3})*\.\d{2}$/;
	  // matches $17.23 or 14,281,545.45 or ...
	
	PatternsDict.isFloat = /^\d*\.\d*$|^\d*$/;
	  // matches 17.23 or 14281.4555 or ...
	   
	PatternsDict.isTime = /^[0-1]?[0-9]:[0-5]?[0-9]$|^[2][0-3]:[0-5]?[0-9]$/;
	  // matches 5:04 or 12:34

	PatternsDict.isDate = '';// /^(?=\d)(?:(?:31(?!.(?:0?[2469]|11))|(?:30|29)(?!.0?2)|29(?=.0?2.(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(?:\x20|$))|(?:2[0-8]|1\d|0?[1-9]))([-./])(?:1[012]|0?[1-9])\1(?:1[6-9]|[2-9]\d)?\d\d(?:(?=\x20\d)\x20|$))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\x20[AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;
	  // matches 12/31/1998 or 31/12/1998 or empty is allowed

       	PatternsDict.is3Date = /^(?=\d)(?:(?:31(?!.(?:0?[2469]|11))|(?:30|29)(?!.0?2)|29(?=.0?2.(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(?:\x20|$))|(?:2[0-8]|1\d|0?[1-9]))([-./])(?:1[012]|0?[1-9])\1(?:1[6-9]|[2-9]\d)?\d\d(?:(?=\x20\d)\x20|$))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\x20[AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;
	  // matches 12/31/1998 or 31/12/1998 or empty is allowed

	PatternsDict.isAlpha = /^([A-Za-z\' \t])*$/;
	  // matches chuck Noris  or empty is allowed

	PatternsDict.isWord = /^([A-Za-z0-9_ \t\-])*$/;
	  // matches doto2_So

	PatternsDict.isEmail = /^(((\w)+[-.!])?(\w[!]?)+@((\w)+[-.])+(\w{1,3}))?$|^(((\w)+[-.!])?(\w[!]?)+@((\w)+[-.])+((\w{2})+[-.])+(\w{2}))?$/;

	  // matches k1234!@ting.tong.com or t@k.king.com or t-ding@dong.com

	PatternsDict.isDigit = /^\d*$/;
	  //equivalent to  [0-9]* matches 12312123 or empty is allowed

	PatternsDict.isTrueNumber = /^[1-9]$|^[1-9][0-9]$|^[1-9][0-9][0-9]$/;
	  //value >0  <= 255

	PatternsDict.isPhone = /^([0-9_ \t\-])*$/;
	  // matches 03-9433399 or 054-889900 or 039433399

	PatternsDict.isTinyInt = new Array("^\[0-9]?$","^[0-9]?[0-9]?$","^[0-2]?[0-5]?[0-5]?$");
	  // value <= 255

	PatternsDict.isSmallInt =new Array("^\[0-9]?$","^[0-9]?[0-9]?$","^[0-9]?[0-9]?[0-9]?$","^[0-9]?[0-9]?[0-9]?[0-9]?$","^[0-3]?[0-2]?[0-7]?[0-6]?[0-7]?$");
	  // value <= 32767

	PatternsDict.isLength = /^[a-zA-Z0-9]{8,8}$/;
	PatternsDict.isMatch = '';
	PatternsDict.isCity = '';
	//this function selects an option that begins with
	//a letter pressed on the keyboard
	function ComboQuickNav(combo){
		if (gIE)
		{
			key=window.event.keyCode
			i=0
			found=false
			while (i<combo.options.length && !found)
			{
				if (key==combo.options[i].text.charCodeAt(0))
				{
					combo.options[i].selected=true
					found=true
				}
				i++
			}
		}
	}
  // Validate the form fields by the validator attribute
function validateForm(theForm,Lan)
{
       try
       {
        if(Lan!=null && Lan!="")
        {
           if(Lan=="En")
           {
             L_Empty = L_Empty_en;
             L_Invalid = L_Invalid_en;
           }
        }
       }
       catch(e){};
     // return true if all is well
	 var elArr = theForm.elements;   // get all elements of the form into array
	 for(var i = 0; i < elArr.length; i++)
	  with(elArr[i])
	  {                // for each element of the form...
	    gCurrElement = elArr[i];
	    if(elArr[i].required=="true")
	    {
		if (tagName.toUpperCase()=="SELECT")
  	        {
                        var v = elArr[i].validator;   // get validator, if any
                        if(!v)
                        {
              		    if (value=="0")
      			    {
      				focus();

      				style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";

                                alert(L_Empty);
      				window.setTimeout("resetControl()",1500);
      				return false;
      			    }
                            continue;
                        }
                        else
                        {
                            if (v=="isCity")
                            {
                               if ((elArr[i].value=="0" || elArr[i].value=='') && elArr[i+1].value=='')
                               {
				focus();
				
				style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";

                                 alert("Please enter one of the city fields");
				window.setTimeout("resetControl()",1500);
				return false;
                               }
                               else
                               {
                                 return true;
                               }
                            }
                        }
           		if (value=="0")
			{
				focus();
				style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";
                 		alert(L_Empty);
				window.setTimeout("resetControl()",1500);
				return false;
			}
		}
	        if(Trim(value)=='')
	        {
	            try
		    {
			elArr[i].focus();
			elArr[i].style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";
			alert(L_Empty);
			window.setTimeout("resetControl()",1500);
			if (elArr[i].tagName.toUpperCase()!="SELECT")
			{
		  	    elArr[i].select();
			}
			return false;
		     }
		     catch(e)
		     {
		 	 return true;
		     }
		}
	   }
	   if(Trim(value)!='')
	   {
		var v = elArr[i].validator;   // get validator, if any
		if(!v) continue;              // no validator property, skip
		else
		{
		     if(PatternsDict[v].length > 0)
		     {
		        for(var j=0; j < PatternsDict[v].length; j++)
		        {
		           var TempPatternsDict = new RegExp(PatternsDict[v][j]);
		           var gotIt = TempPatternsDict.exec(Trim(value));
		           if(gotIt) break;
	 	        }
		        if(!gotIt)
		        {
		              elArr[i].focus();
		              elArr[i].style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";
		              alert(L_Invalid);
			      window.setTimeout("resetControl()",1500);
		              if (elArr[i].tagName.toUpperCase()!="SELECT")
		 	      {
				elArr[i].select();
			      }
			      return false;
			}
		     }
		     else
		     {
			if (v==='isDate')
			{
  			    if (isNaN(Date.parse(Trim(value))))
  			    {
				  elArr[i].focus();
				  elArr[i].style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";
				  alert(L_Invalid);
				  window.setTimeout("resetControl()",1500);
			          elArr[i].select();
				  return false;
  			     }
			}
			else if (v==='is3Date')
			{
                            var Val = elArr[i].value +"/"+ elArr[i+1].value + "/" + elArr[i+2].value
		            var thePat = PatternsDict[v];   // select the validating regular expr
			    var gotIt = thePat.exec(Trim(Val)); // run it on value of elArr[i]
 		            if(!gotIt)
 		            {
				  elArr[i].focus();
				  elArr[i].style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";
				  alert("Your Date of Birth is invalid.");
				  window.setTimeout("resetControl()",1500);
			          elArr[i].select();
				  return false;
  			     }
			}
			else if (v==='isMatch')
			{
 		            if(elArr[i-1].value!=elArr[i].value)
 		            {
				  elArr[i].focus();
				  elArr[i].style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";
				  alert("The two passwords you entered did not match.");
				  window.setTimeout("resetControl()",1500);
			          elArr[i].select();
				  return false;
  			    }
			}
			else
			{
			     var thePat = PatternsDict[v];   // select the validating regular expr
			     var gotIt = thePat.exec(Trim(value)); // run it on value of elArr[i]
			     if(!gotIt)
			     {
				   elArr[i].focus();
				   elArr[i].style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";
                                   if(v==="isLength")
                                       alert("Passowrd must be 8 characters");
                                   else
				       alert(L_Invalid);
			           window.setTimeout("resetControl()",1500);
			 	   elArr[i].select();
				   return false;
			     }
			}
		}
	}
    }
  }
  return true;

}

// Validate the form fields by the validator attribute
  function validateForm_en(theForm)
  {
     // return true if all is well
	 var elArr = theForm.elements;   // get all elements of the form into array
	 for(var i = 0; i < elArr.length; i++)
	  with(elArr[i])
	  {                // for each element of the form...
	    gCurrElement = elArr[i];
	    if(elArr[i].required=="true")
	    {
			if (tagName.toUpperCase()=="SELECT")
			{
				if (value=="0")
				{
						focus();
						alert(L_Empty_en);
						style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";
						window.setTimeout("resetControl()",1500);
						return false;
				}
			}
	        if(Trim(value)=='')
	        {
	            try
				{
					elArr[i].focus();
					alert(L_Empty_en);
					elArr[i].style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";
					window.setTimeout("resetControl()",1500);
					if (elArr[i].tagName.toUpperCase()!="SELECT")
					{
						elArr[i].select();
					}
				    return false;
				}
				catch(e)
				{
				 return true;
				}
			}
		}
	    if(Trim(value)!='')
	    { 
			var v = elArr[i].validator;   // get validator, if any
			if(!v) continue;              // no validator property, skip
			else
			{
			     if(PatternsDict[v].length > 0)
			     {
			        for(var j=0; j < PatternsDict[v].length; j++)
			        {
			           var TempPatternsDict = new RegExp(PatternsDict[v][j]);
			           var gotIt = TempPatternsDict.exec(Trim(value));
			           if(gotIt) break;
			        }
			        if(!gotIt)
			        {
			              alert(L_Invalid_en);
			              elArr[i].focus();
			              elArr[i].style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";
					      window.setTimeout("resetControl()",1500);
			              if (elArr[i].tagName.toUpperCase()!="SELECT")
							{
							elArr[i].select();
							}
			              return false;
			        }
			     }
			     else
			     {
					if (v==='isDate')
					{
  					 if (isNaN(Date.parse(Trim(value))))
  					 {
  					  alert(L_Invalid_en);
					  elArr[i].focus();
					  elArr[i].style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";
					  window.setTimeout("resetControl()",1500);
				          elArr[i].select();
					  return false;
  					 }
					}
					else
					{
						var thePat = PatternsDict[v];   // select the validating regular expr
						var gotIt = thePat.exec(Trim(value)); // run it on value of elArr[i]
						if(!gotIt)
						{
						   alert(L_Invalid_en);
						   elArr[i].focus();
						   elArr[i].style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";
					           window.setTimeout("resetControl()",1500);
						   elArr[i].select();
						   return false;
						}
					}	
			     }
			}
		}	
	  }
	  return true;
	}

  //The Trim function ensures that pattern matching occurs on the 
  //appropriate portion of the string the user entered 
  //by removing leading and trailing white spaces from the string. 
  function Trim(oldString)
    {
	   // is oldString made up completely of whitespace?
	   var emptyPattern = /^(\s*)$/;
	   if(emptyPattern.test(oldString))
	      // if so, return null string
	      return '';
	   else
	      // else, return non-whitespace characters from middle of oldString
	      return oldString.replace(/^\s*(.*\S+)\s*$/,"$1");
	}
	//Resets the marked unvalidate control style.
	function resetControl(sID)
	{
		gCurrElement.style.filter='none';
	}
	//Dispays the validation message with all the validation behaviour.
	//
	//Accepts:
	//	e_field - The field to set focus on after the message box.
	//	sMessage - The message text.
	function validationMessage(e_field, sMessage)
	{
		alert(sMessage);
		if (e_field)
		{
			gCurrElement = e_field;
			e_field.focus();
			e_field.style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";
			window.setTimeout("resetControl()",1500);
			e_field.select();
		}
	}
	
	//---------------------------------Old
	var bad_element=null //stores an element with invalid value.
	//if the form's submit button is pressed and bad_element is not null,
	//bad_element is colored red and the form is not submitted.
	
	function checkCard(myCard) 
	{
		var myTop=myCard.length
		
		if (myTop>=8) 
		{
			var myMod
			var mySum=0
			var myDivider=11
			if (myCard.length==8 || myCard.length==9)
				for (j=0; j<(myTop) ; j++)
					mySum=mySum+(j+1)*eval(myCard.substring(myTop-j-1,myTop-j))
			else if (myCard.length==15)
			{
				return true
			}
			else 
			{
				myDivider=5
				var myWeight=1
				for (j=0; j<(myTop) ; j++)
				{
					if (myWeight==1) {myWeight=2} else {myWeight=1}
						myAddition=eval(myWeight*myCard.substring(j,j+1))
					if (myAddition>9 && myAddition<20)
						myAddition=myAddition-9
					mySum=mySum+myAddition
			    }
		    }
		    myMod=mySum % myDivider
			if (myMod==0)
				return true
		}
		return false
	}

	function checkInputOld(CurrMode)
	{
		//Anat - the script here doesn't work well with netscape
		if (gIE){
	/*
		window.event.keyCode>47 && window.event.keyCode<58 - Numbers
		window.event.keyCode==46 - "."
		window.event.keyCode==44 - ","
		window.event.keyCode==47 - "/"
		window.event.keyCode==32 - " "
		window.event.keyCode==64 - "@"
		window.event.keyCode==95 - "_"
		window.event.keyCode==45 - "-"

		((window.event.keyCode>64 && window.event.keyCode<91) 
			|| (window.event.keyCode>95 && window.event.keyCode<123) - Enlish (Upper + Lower)
	*/
	
		if (CurrMode=='PositiveNumber')
		{
			if (window.event.keyCode>47 && window.event.keyCode<58){
				return true;
			}
			else
			{
				if (gIE){
				window.event.srcElement.style.background="#EFD000"
				if (document.all[window.event.srcElement.name + "_message"])
					document.all[window.event.srcElement.name + "_message"].innerHTML="הקשת תו לא חוקי"
				}
				else
				{
					alert("הקשת תו לא חוקי")
				}
				return false;
			}

		}

		if (CurrMode=='Email')
		{
			if ((window.event.keyCode>=64 && window.event.keyCode<91) || (window.event.keyCode>=95 && window.event.keyCode<123)  || (window.event.keyCode==46) || (window.event.keyCode>47 && window.event.keyCode<58) || (window.event.keyCode==45)){
				return true;
			}
			else
			{
				if (gIE){
				window.event.srcElement.style.background="#EFD000"
				if (document.all[window.event.srcElement.name + "_message"])
					document.all[window.event.srcElement.name + "_message"].innerHTML="הקשת תו לא חוקי"
				}
				else
				{
					alert("הקשת תו לא חוקי")
				}
				return false;
			}			

		}

		if (CurrMode=='Numbers')
		{
			if ((window.event.keyCode>47 && window.event.keyCode<58) || window.event.keyCode==45)
			{
				return true;
			}
			else
			{
				if (gIE){
				window.event.srcElement.style.background="#EFD000"
				if (document.all[window.event.srcElement.name + "_message"])
					document.all[window.event.srcElement.name + "_message"].innerHTML="הקשת תו לא חוקי"
				}
				else
				{
					alert("הקשת תו לא חוקי")
				}
				return false;
			}			
			
		}
		if (CurrMode=='NumbersDigits')
		{
			if ((window.event.keyCode>47 && window.event.keyCode<58) || window.event.keyCode==46 || window.event.keyCode==45)
			{				
				return true;
			}
			else
			{
				if (gIE){
				window.event.srcElement.style.background="#EFD000"
				if (document.all[window.event.srcElement.name + "_message"])
					document.all[window.event.srcElement.name + "_message"].innerHTML="הקשת תו לא חוקי"
				}
				else
				{
					alert("הקשת תו לא חוקי")
				}
				return false;
			}			
			
		}
		if (CurrMode=='DateNow')
		{
			if ((window.event.keyCode>47 && window.event.keyCode<58) || window.event.keyCode==47)
			{				
				return true;
			}
			else
			{
				if (gIE){
				window.event.srcElement.style.background="#EFD000"
				if (document.all[window.event.srcElement.name + "_message"])
					document.all[window.event.srcElement.name + "_message"].innerHTML="הקשת תו לא חוקי"
				}
				else
				{
					alert("הקשת תו לא חוקי")
				}
				return false;
			}			

		}
		else if(CurrMode=='English')
		{
			if ((window.event.keyCode>64 && window.event.keyCode<91) || (window.event.keyCode>95 && window.event.keyCode<123)  || window.event.keyCode==46  || window.event.keyCode==44 || window.event.keyCode==32)		
			{
				return true;
			}
			else
			{
				if (gIE){
				window.event.srcElement.style.background="#EFD000"
				if (document.all[window.event.srcElement.name + "_message"])
					document.all[window.event.srcElement.name + "_message"].innerHTML="הקשת תו לא חוקי"
				}
				else
				{
					alert("הקשת תו לא חוקי")
				}
				return false;
			}	
		}
		else if(CurrMode=='Hebrew')
		{
			if ((window.event.keyCode>1487 && window.event.keyCode<1515) || window.event.keyCode==46 || window.event.keyCode==44 || window.event.keyCode==32)
			{
				return true;
			}
			else
			{
				if (gIE){
				window.event.srcElement.style.background="#EFD000"
				if (document.all[window.event.srcElement.name + "_message"])
					document.all[window.event.srcElement.name + "_message"].innerHTML="הקשת תו לא חוקי"
				}
				else
				{
					alert("הקשת תו לא חוקי")
				}
				return false;
			}	
		}
		else
		{
			return true;
		}
	}
	}

	function checkValue(CurrMode,must)
	{

		//Anat - the script here doesn't work well with netscape
	/*
	if must is "1" and element's length is 0 as return is false
	*/
	var returnValue=false
	if (gIE){
	var elemValue=window.event.srcElement.value
	var elemSelected=window.event.srcElement.selectedIndex
		//checking if the entire field value is valid (looking at the big picture)
		//checkInput already checked every character seperately
		if (elemValue.length>0)
		{
			if (CurrMode=='Email'){
				if (elemValue.indexOf("@")>=1 && elemValue.indexOf("@")!=elemValue.length-1)
					returnValue = true
			}
			else
			if (CurrMode=='PositiveNumber'){
				if (elemValue>0)
					returnValue = true
			}
			else
			if (CurrMode=='PhoneNumber'){
				if (elemValue.indexOf("-")!=0 && elemValue.indexOf("-")!=elemValue.length-1)
					returnValue = true			
			}
			else
			if (CurrMode=='CreditCard')
			{
				if (checkCard(elemValue))
					returnValue = true
			}
			else
			if (CurrMode=='SelectBox'){
				if (elemSelected != 0)
					returnValue = true			
			}

			else
				returnValue=true;
		}	

		if (must==0 && elemValue.length==0)
		{
			//this is not an obligatory field, & it was not filled
			returnValue=true;
		}
		if (returnValue)	
		{
		messagediv=document.all[window.event.srcElement.name + "_message"]
		if (messagediv)
			messagediv.style.display = "none"
		if (window.event.srcElement.style.background=="#EFD000")
			window.event.srcElement.style.background=""
		if (window.event.srcElement.style.background=="#EFD000")
			window.event.srcElement.style.background=""
		if (window.event.srcElement==bad_element){
			bad_element=null
			window.event.srcElement.style.background="";
			if (messagediv)
				messagediv.style.display = "none"
			}
		//even if before there were unvalid fields,
		//all is forgiven now.
		}
		else
		{
		bad_element = window.event.srcElement
		bad_element.style.background="#EFD000";
		messagediv=document.all[bad_element.name + "_message"]
		if (messagediv){
			messagediv.style.display = "block"
			if (elemValue.length!=0){
				messagediv.innerHTML = "Incorrect value";
				window.event.srcElement.focus();
				}
			else
      			        messagediv.innerHTML = "Required field";
				window.event.srcElement.focus();
			}
		}
	}

	}
//=======================================================================
var CharCheck = new Object();
CharCheck.PositiveNumber = /^[0-9]*$/;
CharCheck.PositiveNumberDigits = /^[0-9.]*$/;
CharCheck.Numbers = /^[0-9-]*$/;
CharCheck.NumbersDigits = /^[0-9.-]*$/;
CharCheck.English = /^[\sa-zA-Z]*$/;
CharCheck.Password = /^[a-zA-Z0-9]*$/;
CharCheck.EnglishNumbers = /^[\sa-zA-Z0-9]*$/;
CharCheck.EnglishName = /^[\sa-zA-Z.'"-]*$/;
CharCheck.EnglishAddress = /^[\sa-zA-Z0-9.'#"-]*$/;
CharCheck.PhoneNumbers = /^[\s0-9().-]*$/;
CharCheck.Email = /^[a-zA-Z0-9\-_@.]*$/;
CharCheck.Time = /^[0-9:]*$/;
CharCheck.Date = /^[0-9\/]*$/;

function checkInput(CurrMode)
{
       if (CurrMode=='HebrewNumbers')
       {
           if(CharCheck.EnglishNumbers.test(String.fromCharCode(window.event.keyCode)))
                return true;
           else
           {
               if((window.event.keyCode>1487 && window.event.keyCode<1515) || window.event.keyCode==46 || window.event.keyCode==44 || window.event.keyCode==32)
                return true;
               else
                return false;
           }
       }
       if (CurrMode=='HebrewName')
       {
           if(CharCheck.EnglishName.test(String.fromCharCode(window.event.keyCode)))
                return true;
           else
           {
               if((window.event.keyCode>1487 && window.event.keyCode<1515) || window.event.keyCode==46 || window.event.keyCode==44 || window.event.keyCode==32)
                return true;
               else
                return false;
           }
       }
       if (CurrMode=='HebrewAddress')
       {
           if(CharCheck.EnglishAddress.test(String.fromCharCode(window.event.keyCode)))
                return true;
           else
           {
               if((window.event.keyCode>1487 && window.event.keyCode<1515) || window.event.keyCode==46 || window.event.keyCode==44 || window.event.keyCode==32)
                return true;
               else
                return false;
           }
       }
       if (CurrMode=='Email')
       {
           if(CharCheck.Email.test(String.fromCharCode(window.event.keyCode)))
                return true;
           else
                return false;
       }
       if (CurrMode=='PositiveNumber')
       {
           if(CharCheck.PositiveNumber.test(String.fromCharCode(window.event.keyCode)))
                return true;
           else
                return false;
       }
       if (CurrMode=='PositiveNumberDigits')
       {
           if(CharCheck.PositiveNumberDigits.test(String.fromCharCode(window.event.keyCode)))
                return true;
           else
                return false;
       }
       if (CurrMode=='Numbers')
       {
           if(CharCheck.Numbers.test(String.fromCharCode(window.event.keyCode)))
                return true;
           else
                return false;
       }
       if (CurrMode=='NumbersDigits')
       {
           if(CharCheck.NumbersDigits.test(String.fromCharCode(window.event.keyCode)))
                return true;
           else
                return false;
       }
       if (CurrMode=='English')
       {
           if(CharCheck.English.test(String.fromCharCode(window.event.keyCode)))
                return true;
           else
                return false;
       }
       if (CurrMode=='EnglishNumbers')
       {
           if(CharCheck.EnglishNumbers.test(String.fromCharCode(window.event.keyCode)))
                return true;
           else
                return false;
       }
       if (CurrMode=='EnglishName')
       {
           if(CharCheck.EnglishName.test(String.fromCharCode(window.event.keyCode)))
                return true;
           else
                return false;
       }
       if (CurrMode=='EnglishAddress')
       {
           if(CharCheck.EnglishAddress.test(String.fromCharCode(window.event.keyCode)))
                return true;
           else
                return false;
       }
       if (CurrMode=='PhoneNumbers')
       {
           if(CharCheck.PhoneNumbers.test(String.fromCharCode(window.event.keyCode)))
                return true;
           else
                return false;
       }
       if (CurrMode=='Time')
       {
           if(CharCheck.Time.test(String.fromCharCode(window.event.keyCode)))
                return true;
           else
                return false;
       }
       if (CurrMode=='Date')
       {
           if(CharCheck.Date.test(String.fromCharCode(window.event.keyCode)))
                return true;
           else
                return false;
       }
       if (CurrMode=='Password')
       {
           if(CharCheck.Password.test(String.fromCharCode(window.event.keyCode)))
                return true;
           else
                return false;
       }
 }
 function CheckAndSendForm(vFields,vSupp)
 {
     var Obj
     var Lan = document.all["lan"].value;
     
     try
     {
         if(document.all.opt_pay[0].checked)
         {
           
         }
         else
         {
             Obj = document.getElementById("Card Number");
             if(Obj != null)
             {
                 if(!checkMe(Obj,Lan)) return false;
                 if(!validCard(Obj.value,Lan)) return false;
             }

            Obj = document.getElementById("ID Number");
            if(Obj != null)
            {
              
                if(!checkMe(Obj,Lan)) return false;
                   if(!CheckValidID(Obj.value))
                   {
                     alert(L_InvalidID + Lan);
                     return false;
                   }
            }
         }
     }
     catch(e){};
     

     try
     {
         Obj = document.getElementById("terms")
         if(!checkMe(Obj,Lan)) return false;
     }
     catch(e){};

     
     

     

     try
     {
       Obj = document.getElementById("Name")
       if(!checkMe(Obj,Lan)) return false;
       Obj = document.getElementById("Street")
       if(!checkMe(Obj,Lan)) return false;
       if(vFields=='1')
       {
         Obj = document.getElementById("City")
         if(Obj.value=="0")
         {
           if(document.getElementById("city_free_text").value=="")
           {
                vObjMe = Obj;
                Obj.focus();
                if(Lan.toLowerCase()=="en")
    	          alert(L_Empty_en);
    	        else
                  alert(L_Empty);
    	        Obj.style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";
    	        window.setTimeout("resetMe()",1500);
         	return false;
           }
         }
       }
       if(vFields=='' || vFields==null)
       {
         Obj = document.getElementById("city_free_text")
         if(!checkMe(Obj,Lan)) return false;
       }
       try
       {
         Obj = document.getElementById("country")
         if(!checkMe(Obj,Lan)) return false;
       }catch(e){};
       try
       {
         Obj = document.getElementById("index")
         if(!checkMe(Obj,Lan)) return false;
       }catch(e){};
       Obj = document.getElementById("PhoneEx")
       if(!checkMe(Obj,Lan)) return false;
       Obj = document.getElementById("Phone")
       if(!checkMe(Obj,Lan)) return false;
       Obj = document.getElementById("MobileEx")
       if(!checkMe(Obj,Lan)) return false;
       Obj = document.getElementById("Mobile")
       if(!checkMe(Obj,Lan)) return false;
       Obj = document.getElementById("Email")
       if(!checkMe(Obj,Lan)) return false;
       if(vFields=='2')
       {
         Obj = document.getElementById("Card Number")
         if(!checkMe(Obj,Lan)) return false;
         try
         {
           if(document.getElementById("ID Number")!=null)
           {
             Obj = document.getElementById("ID Number")
             if(!checkMe(Obj,Lan)) return false;
           }
         }catch(e){};
         Obj = document.getElementById("Card Holder")
         if(!checkMe(Obj,Lan)) return false;
       }
     }
     catch(e){};

     if(vSupp!=null && vSupp!='')
     {
        document.forms(0).action ="Basket_saveOrderTest.asp";
     }
     else
     {
         document.forms(0).action ="Basket_saveOrder.asp";
     }
     document.forms(0).submit();
 }
  function LegalTz(num) {
        var tot = 0;
        var tz = new String(num);
        for (i=0; i<8; i++)
            {
                x = (((i%2)+1)*tz.charAt(i));
                if (x > 9) 
                    {
                    x =x.toString();
                    x=parseInt(x.charAt(0))+parseInt(x.charAt(1))
                    }
            tot += x;
            }
        
    if ((tot+parseInt(tz.charAt(8)))%10 == 0) {
        return true;
    } else {

        return false;
    }
}
 function CheckOfferForm(vType)
 {

 if(document.getElementById("ID Number").value.length != 9)
   {
      alert("תעודת זהות חייבת להיות בעלת 9 ספרות");
      document.getElementById("ID Number").focus();
      return false;
   }

  if(!LegalTz(document.getElementById("ID Number").value))
   {
    alert("תעודת זהות לא תקינה");
document.getElementById("ID Number").focus();
    return false;
   }


 




      if(checkIfIdentityInBlacklist(document.getElementById("supplier_id").value,document.getElementById("ID Number").value) == 1)
      {
       alert("לקוח חסום - נא פנה לשירות הלקוחות");
       return false;
      }
   
       if(checkIfProdIsBlockedForCustomer(document.getElementById("Prod").value,document.getElementById("ID Number").value,document.getElementById("Card Number").value) == 1)
     {
      alert("מוצר חסום ללקוח - נא פנה לשירות הלקוחות");
      return false;
      }
   

     var Obj
     var Lan = document.all["lan"].value;
     try
     {
         Obj = document.getElementById("terms")
         if(!checkMe(Obj,Lan)) return false;
     }
     catch(e){};

     try
     {
       Obj = document.getElementById("Name")
       if(!checkMe(Obj,Lan)) return false;

       Obj = document.getElementById("Street")
       if(!checkMe(Obj,Lan)) return false;

       Obj = document.getElementById("City")
       if(Obj.value=="0")
       {
           if(document.getElementById("city_free_text").value=="")
           {
                vObjMe = Obj;
                Obj.focus();
                if(Lan.toLowerCase()=="en")
    	          alert(L_Empty_en);
    	        else
                  alert(L_Empty);
    	        Obj.style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";
    	        window.setTimeout("resetMe()",1500);
         	return false;
           }
       }

       try
       {
         Obj = document.getElementById("country")
         if(!checkMe(Obj,Lan)) return false;
       }catch(e){};
        try
       {
         Obj = document.getElementById("index")
         if(!checkMe(Obj,Lan)) return false;
       }catch(e){};

       Obj = document.getElementById("PhoneEx")
       if(!checkMe(Obj,Lan)) return false;
       Obj = document.getElementById("Phone")
       if(!checkMe(Obj,Lan)) return false;
       Obj = document.getElementById("MobileEx")
       if(!checkMe(Obj,Lan)) return false;
       Obj = document.getElementById("Mobile")
       if(!checkMe(Obj,Lan)) return false;
       Obj = document.getElementById("Email")
       if(!checkMe(Obj,Lan)) return false;

       Obj = document.getElementById("Card Number")
       if(!checkMe(Obj,Lan)) return false;
       if(!validCard(Obj.value,Lan)) return false;

       try
       {
         if(document.getElementById("ID Number")!=null)
         {
           Obj = document.getElementById("ID Number")
           if(!checkMe(Obj,Lan)) return false;

           if(!CheckValidID(Obj.value))
           {
             alert(L_InvalidID + Lan);
             return false;
           }
         }
       }catch(e){};

       Obj = document.getElementById("Card Holder")
       if(!checkMe(Obj,Lan)) return false;
     }
     catch(e){};

     
     if(vType==99)
     {
       SendOrder();
     }
     else
     {
       document.getElementById("tblDetails").style.display = "none";
       document.getElementById("tblOffers").style.display = "inline";
     }
 }
  function CheckOfferFormPhone(vType)
 {
     var Obj
     var Lan = document.all["lan"].value;
     try
     {
         Obj = document.getElementById("terms")
         if(!checkMe(Obj,Lan)) return false;
     }
     catch(e){};

     try
     {
       Obj = document.getElementById("Name")
       if(!checkMe(Obj,Lan)) return false;

       Obj = document.getElementById("Street")
       if(!checkMe(Obj,Lan)) return false;

       Obj = document.getElementById("City")
       if(Obj.value=="0")
       {
           if(document.getElementById("city_free_text").value=="")
           {
                vObjMe = Obj;
                Obj.focus();
                if(Lan.toLowerCase()=="en")
    	          alert(L_Empty_en);
    	        else
                  alert(L_Empty);
    	        Obj.style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";
    	        window.setTimeout("resetMe()",1500);
         	return false;
           }
       }

       try
       {
         Obj = document.getElementById("country")
         if(!checkMe(Obj,Lan)) return false;
       }catch(e){};
        try
       {
         Obj = document.getElementById("index")
         if(!checkMe(Obj,Lan)) return false;
       }catch(e){};

       Obj = document.getElementById("PhoneEx")
       if(!checkMe(Obj,Lan)) return false;
       Obj = document.getElementById("Phone")
       if(!checkMe(Obj,Lan)) return false;
       Obj = document.getElementById("MobileEx")
       if(!checkMe(Obj,Lan)) return false;
       Obj = document.getElementById("Mobile")
       if(!checkMe(Obj,Lan)) return false;
       Obj = document.getElementById("Email")
       if(!checkMe(Obj,Lan)) return false;




      
     }
     catch(e){};

     if(vType==99)
     {
       SendOrder();
     }
     else
     {
       document.getElementById("tblDetails").style.display = "none";
       document.getElementById("tblOffers").style.display = "inline";
     }
 }
 var vObjMe
 function checkMe(vObj,Lan)
 {
    vObjMe = vObj;
    if(vObj.required=="true")
    {
        if(vObj.id.toLowerCase()=="terms")
        {
            if(!vObj.checked)
            {
   	    vObj.focus();
   	    alert(L_Empty + Lan.toLowerCase());

	    vObj.style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";
	    window.setTimeout("resetMe()",1500);
     	    return false;
            }
        }
	else if(vObj.value=="")
	{
   	    vObj.focus();
   	    alert(L_Empty + Lan.toLowerCase());
	    vObj.style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";
	    window.setTimeout("resetMe()",1500);
     	    return false;
        }
        
        if(vObj.validator!="")
        {
          if(vObj.validator=="isEmail")
          {
   	    if(!PatternsDict["isEmail"].exec(Trim(vObj.value)))
   	    {
               vObj.focus();
      	       alert(L_Invalid + Lan.toLowerCase());
    	       vObj.style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";
    	       window.setTimeout("resetMe()",1500);
               return false;
            }
          }
        }
    }
    return true;
}
function resetMe()
{
  vObjMe.style.filter='none';
}
function validCard(CCNumber,lan)
{
  if(CCNumber.length < 8)
  {
    alert(L_InvalidCard + lan);
    return false;
  }
  if(Number(CCNumber) * 1 == 0)
  {
    alert(L_InvalidCard + lan);
    return false;
  }
  if(CCNumber=="0000000000000000" || CCNumber=="4580000000000000" || CCNumber=="4580458045804580" || CCNumber=="4444333322221111"  || CCNumber=="5326100306623376" || CCNumber=="458045804580" || CCNumber=="4580555522221111" || CCNumber=="1111222233334444" || CCNumber=="12345678" || CCNumber=="123456789" || CCNumber=="1234567890" || CCNumber == "4444111140137333" || CCNumber == "4580000011114444")
  {
     alert(L_InvalidCard + lan);
     return false;
  }
  var Counter;
  var i;
  var TmpInt;
  var Answer;
  Counter = 1;
  i = 1;
  TmpInt = 0;
  Answer = 0;

  if(CCNumber.length <= 9)
  {
     for(Counter = CCNumber.length ; Counter>0 ; Counter--)
     {
        TmpInt += (i *  Number(CCNumber.substring(Counter-1,Counter)));
        i++;
     }
     if((TmpInt / 11) == (Math.round(TmpInt / 11)))
     {
        return true;
     }
     else
     {
        alert(L_InvalidCard + lan);
        return false;
     }
  }
  else
  {
      while(Counter <= CCNumber.length)
      {
          TmpInt = Number(CCNumber.substring(Counter-1, Counter));
          if(CCNumber.length % 2)
          {
                if(!(Counter % 2))
                {
                    TmpInt = TmpInt * 2;
                    if(TmpInt > 9) TmpInt = TmpInt - 9;
                }
          }
          else
          {
                if(Counter % 2)
                {
                    TmpInt = TmpInt * 2;
                    if(TmpInt > 9) TmpInt = TmpInt - 9;
                }
          }
          Answer += TmpInt;
          Counter++;
      }
      Answer = Answer % 10;
      if(Answer == 0)
      {
         return true;
      }
      alert(L_InvalidCard + lan);
      return false;
  }
}
function CheckValidID(VID){
    var iIDLength = VID.length,
        i,
        iID = VID;
    if(iIDLength<9){
        for(i=0;i<9-iIDLength;i++){
            iID = "0" + iID;
        }
        iIDLength = 9;
    }

    var iCount = 0,
        iCurrent,
        iTemp;

    for(i=2;i<iIDLength+2;i++){
        iTemp = iID.substr(i-2,1)*1;
        if(iTemp != 0){
            iCurrent=((i%2)+1)*iTemp;
            iCount+=iCurrent>9?1+iCurrent%10:iCurrent;
        }
    }
    //return(iCount%10===0);
    if(iCount%10!=0  || iID=="111111118" || iIDLength<6)
    {
      return false;
    }
    else
    {
      return true;
    }
}