﻿	//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_Empty = 'Please! enter this field';
//var L_Invalid ='Incorrect value';
	//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)
{
     // 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) 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')
       {
			//alert("zzz");
           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)
 {
     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;
     }catch(e){};  
     try{
       Obj = document.getElementById("Street")
       if(!checkMe(Obj,Lan)) return false;
     }catch(e){};  
     try{
           Obj = document.all["city_free_text"];
           if(!checkMe(Obj)) return false;
     }catch(e){};
//       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;
//           }
//         }
//       }
       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){};
       try{
           Obj = document.getElementById("PhoneEx")
           if(!checkMe(Obj,Lan)) return false;
       }catch(e){};
       try{
           Obj = document.getElementById("Phone")
           if(!checkMe(Obj,Lan)) return false;
       }catch(e){};
       try{
           Obj = document.getElementById("MobileEx")
           if(!checkMe(Obj,Lan)) return false;
       }catch(e){};
       try{
           Obj = document.getElementById("Mobile")
           if(!checkMe(Obj,Lan)) return false;
       }catch(e){};
       try{
           Obj = document.getElementById("Email")
           if(!checkMe(Obj,Lan)) return false;
       }catch(e){};

       try
       {      
           for(var i=0;i<document.all["pay_opt"].length;i++)
           {
             if(document.all["pay_opt"][i].checked)
	{
	     document.all["txtPayOpt"].value = document.all["pay_opt"][i].value;
                	     if(!PayOption(document.all["pay_opt"][i].value)) return false;
	}
           } 
       }catch(e){};    
     //document.forms(0).action ="Basket_saveOrder.asp";
     document.order_form.submit();
 }
 function CheckAndSendRegistraionForm(vFields)
 {
     
     var Obj;
     if(vFields=="1") 
     {
        try{
            Obj = document.all["login_email"];
            if(!checkMe(Obj)) return false;  
        }catch(e){};
        try{
            Obj = document.all["login_email"];
            if(!checkMe(Obj)) return false;  
        }catch(e){};
        document.all["Update"].value="0";
        document.all["Login"].value="1";
     }
     else
     {        
       try{
           Obj = document.all["terms"];
           if(!checkMe(Obj)) return false;
       }catch(e){};
       try{
           
           Obj = document.all["name"];
           if(!checkMe(Obj)) return false;
       }catch(e){};
       try{
           Obj = document.all["address"];
           if(!checkMe(Obj)) return false;
       }catch(e){};
       try{
           Obj = document.all["city_free_text"];
           if(!checkMe(Obj)) return false;
       }catch(e){};
       try{
           Obj = document.all["zipcode"];
           if(!checkMe(Obj)) return false;
       }catch(e){};
       try{
           Obj = document.all["country"];
           if(!checkMe(Obj)) return false;
       }catch(e){};
       try{
           Obj = document.all["Phone"];
           if(!checkMe(Obj)) return false;
       }catch(e){};
       
       try
       {      
           for(var i=0;i<document.all["pay_opt"].length;i++)
           {
             if(document.all["pay_opt"][i].checked)
                if(!PayOption(document.all["pay_opt"][i].value)) return false;
           } 
       }catch(e){};    

       try{   
           Obj = document.all["identification_num"];
           if(!checkMe(Obj)) return false;
       }catch(e){};
       try{   
           Obj = document.all["cellular"];
           if(!checkMe(Obj)) return false;
       }catch(e){};
       try{   
           Obj = document.all["e_mail"];
           if(!checkMe(Obj)) return false;
       }catch(e){};
       try{   
           Obj = document.all["password"];
           if(!checkMe(Obj)) return false;
       }catch(e){};
       try{   
           Obj = document.all["password2"];
           if(!checkMe(Obj)) return false;
       }catch(e){};
       document.all["new_user"].value="1";
       document.all["Update"].value="1";
     }
     
     document.purch_new_address_form.submit();
 }


function CheckAndSendRegistraionFormRU(vFields)
 {
     
     var Obj;
     if(vFields=="1") 
     {
        try{
            Obj = document.all["login_email"];
            if(!checkMe(Obj)) return false;  
        }catch(e){};
        try{
            Obj = document.all["login_email"];
            if(!checkMe(Obj)) return false;  
        }catch(e){};
        document.all["Login"].value="1";
     }
     else
     {        
       try{
           Obj = document.all["lastname"];
           if(!checkMe(Obj)) return false;
       }catch(e){};
       try{
           
           Obj = document.all["firstname"];
           if(!checkMe(Obj)) return false;
       }catch(e){};
	try{
           Obj = document.all["phone"];
           if(!checkMe(Obj)) return false;
       }catch(e){};

	try{
			
           if (document.all["day"].value!='' || document.all["month"].value!='' || document.all["year"].value!='')
           {
           //alert(document.all["day"].value);
           //alert(document.all["month"].value);
           //alert(document.all["year"].value);
				var Val = document.all["day"].value +"/"+ document.all["month"].value + "/" + document.all["year"].value
				//alert(Val);
		        var thePat = PatternsDict['is3Date'];   // select the validating regular expr
			    var gotIt = thePat.exec(Trim(Val)); // run it on value of elArr[i]
			    
 		            if(!gotIt)
 		            {
						document.all["day"].focus();
						alert("Неправильный формат даты");
						document.all["day"].style.filter="progid:DXImageTransform.Microsoft.Glow(color='red', Strength='3')";
						vObjMe=document.all["day"];
						window.setTimeout("resetMe()",1500);
						document.all["day"].select();
						return false;
						}
           }
       }catch(e){};	
		
       try{   
           Obj = document.all["login_email"];
           if(!checkMe(Obj)) return false;
       }catch(e){};
       try{   
           Obj = document.all["login_password"];
           if(!checkMe(Obj)) return false;
       }catch(e){};
       try{   
           Obj = document.all["rpassword"];
           if(!checkMe(Obj)) return false;
       }catch(e){};
	try{   
           Obj = document.all["login_password"];
           if(Obj.value!=document.all["rpassword"].value)
           {
		document.all["rpassword"].value='';
		return false;
           }
       }catch(e){};
       try{
           Obj = document.all["city"];
           if(Obj.selectedIndex==0)
           {
              alert("Выберите Ваш город");
              return false;
	   }
       }catch(e){};
       
       try{
           Obj = document.all["city"];
           if(Obj.selectedIndex==123 && document.all["station"].selectedIndex==0)
	   {
		alert("Выберите станцию метро");
		 return false;
	   }
       }catch(e){};
	try{
           Obj = document.all["street"];
           if(!checkMe(Obj)) return false;
       }catch(e){};

	
            }
     
     document.purch_new_address_form.submit();
 }

function ApproveOrderFormRU()
{
	document.order_form_approve.submit();
}

function CheckAndSendReqest()
{
	var Obj;
	//alert('666');
	try{
	    Obj = document.getElementById("from")
	    if(!checkMe(Obj,"")) return false;
	}catch(e){};
	try{
	    Obj = document.getElementById("email")
	    if(!checkMe(Obj,"")) return false;
	}catch(e){};
	try{
	    Obj = document.getElementById("subject_req")
	    if(!checkMe(Obj,"")) return false;
	}catch(e){};
	document.send_request.submit();
}

function CheckAndContinueOrderFormRU()
{
	var Obj
     var Lan = document.all["lan"].value;
     
     try
       {      
           for(var i=0;i<document.all["PersonType_opt"].length;i++)
           {
				if(document.all["PersonType_opt"][i].checked && i==1)
				{
					try{
						    Obj = document.getElementById("inn")
						    if(!checkMe(Obj,Lan)) return false;
						}catch(e){};
					try{
						    Obj = document.getElementById("kaccount")
						    if(!checkMe(Obj,Lan)) return false;
						}catch(e){};
					try{
						    Obj = document.getElementById("kpp")
						    if(!checkMe(Obj,Lan)) return false;
						}catch(e){};
					try{
						    Obj = document.getElementById("raccount")
						    if(!checkMe(Obj,Lan)) return false;
						}catch(e){};
					try{
						    Obj = document.getElementById("bik")
						    if(!checkMe(Obj,Lan)) return false;
						}catch(e){};
					try{
						    Obj = document.getElementById("bankname")
						    if(!checkMe(Obj,Lan)) return false;
						}catch(e){};
					try{
						    Obj = document.getElementById("companyaddrees")
						    if(!checkMe(Obj,Lan)) return false;
						}catch(e){};
				}
				
           }
     }catch(e){};
     //alert(document.all["pay_opt"].length);
     try
	{      
		for(var i=0;i<document.all["pay_opt"].length;i++)
		{
			if(document.all["pay_opt"][i].checked)
			{
				//alert(document.all["pay_opt"][i].value);
				document.all["txtPayOpt"].value = document.all["pay_opt"][i].value;
        	     if(!PayOption(document.all["pay_opt"][i].value)) return false;
			}
		} 
	}catch(e){};
	 try
       {      
           for(var i=0;i<document.all["delivery_opt"].length;i++)
           {
				if(document.all["delivery_opt"][i].checked && i==1)
				{
						try{
						       Obj = document.all["city"];
						       if(Obj.selectedIndex==0)
						       {
						          alert("Выберите Ваш город");
						          return false;
						   }
						   }catch(e){};
						   
						   try{
						       Obj = document.all["city"];
						       if(Obj.selectedIndex==123 && document.all["station"].selectedIndex==0)
						   {
							alert("Выберите станцию метро");
							 return false;
						   }
						   }catch(e){};
						try{
						       Obj = document.all["street"];
						       if(!checkMe(Obj)) return false;
						   }catch(e){};	
						try{
						       Obj = document.all["house_no"];
						       if(!checkMe(Obj)) return false;
						   }catch(e){};	
				}
			 }
		}catch(e){};
		order_form.submit();
}
     
    
 function PayOption(vPay)
 {
	//alert(vPay);
    switch(vPay)
    {
        case "credit_card":
			try{
               if (document.all["CardName"].selectedIndex==0)
               {
                   alert("Выберите тип кредитной карты");
                   return false;
                   }
           }catch(e){};
           try{   
               Obj = document.all["Card Number"];
               if(!checkMe(Obj)) return false;
           }catch(e){};
           try{   
               Obj = document.all["Card Holder"];
               if(!checkMe(Obj)) return false;
           }catch(e){};
           try{   
               Obj = document.all["ID_Number"];
               if(!checkMe(Obj)) return false;
           }catch(e){};
        break;
        case "web_money":
           try{   
               Obj = document.all["web_money"];
               if(!checkMe(Obj)) return false;
           }catch(e){};
        break;
        case "mail_money":
           try{   
               Obj = document.all["mail_money"];
               if(!checkMe(Obj)) return false;
           }catch(e){};
        break;
        case "yandex":
           try{   
               Obj = document.all["yandex"];
               if(!checkMe(Obj)) return false;
           }catch(e){};
        break;
        case "cash":
           try{   
               Obj = document.all["cash"];
               if(!checkMe(Obj)) return false;
           }catch(e){};
        break;
        case "bank_transfer":
           try{   
               Obj = document.all["bank_transfer_id"];
               if(!checkMe(Obj)) return false;
           }catch(e){};
           try{   
               Obj = document.all["bank_transfer_name"];
               if(!checkMe(Obj)) return false;
           }catch(e){};
           try{   
               Obj = document.all["bank_transfer_code"];
               if(!checkMe(Obj)) return false;
           }catch(e){};
           try{   
               Obj = document.all["bank_transfer_account"];
               if(!checkMe(Obj)) return false;
           }catch(e){};
        break;
    }
    return true;
 }
  
 var vObjMe
 function checkMe(vObj,Lan)
 {
    vObjMe = vObj;
    var oValue=""
    with(vObj)
    {
        if(vObj.required=="true")
        {
            switch(tagName.toUpperCase())
            {
                case "SELECT":
                    if(!vObj.value=="0")
                        oValue = "!"
                break;
                case "INPUT":
                    if(vObj.type.toUpperCase()=="CHECKBOX" && !vObj.checked)
                       oValue = "!";
                    else
                    {
                        if(vObj.value=="")
                           oValue = "!"
                        else
                        {
                            try
                            {
                                if(!vObj.validator)
                                   break;
                                else  
                                {
                                    if(vObj.validator!="")
                                    {
                                        switch(vObj.validator)
                                        {
                                            case "passowrd":
                                               if(vObj.value.length<8)
                                                   oValue = Len_Invalid;  
                                            break;
                                            case "isMatch":
                                               var vObj2 = document.all["password"]; 
                                               if(vObj.value!=vObj2.value)
                                                   oValue=L_NotMatch;  
                                            break;     
                                            default:
                                                if(!PatternsDict[vObj.validator].test(vObj.value))
                                                    oValue=L_Invalid;
                                            break;
                                        }
                                    }
                                }                            
                            }catch(e){};    
                        }    
                    }       
                break;
            }
        }
    }       
    if(oValue!="")
    {        
       vObj.focus();
       if(oValue=="!")
            alert(L_Empty);
       else if(oValue=="!!") 
           alert(Len_Invalid);
       else    
           alert(oValue);

       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';
}
 