function inValidCharSet(str,charset)
{
	var result = true;
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}
	
	return result;
}

   
   function ValidEmail(text){
      if(text=='') return false;
        var re = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;
        if(re.test(text)) return true; else return false; 
   }

   function ValidNum(text)
{   if(text=='') return false;
 	return inValidCharSet(text,".0123456789");
}


   function ValidText(text)
{   if(text=='') return false;
 	return inValidCharSet(text,"+ QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnmÉÖÓÊÅÍÃØÙÇÕÚ¨ÔÛÂÀÏÐÎËÄÆÝß×ÑÌÈÒÜÁÞ,éöóêåíãøùçõúôûâàïðîëäæýÿ÷ñìèòüáþ.¸\"1234567890-/");
}
   function ValidSelect(text){
      if(text!=0) return true; else return false;
   }

   function ValidCheckbox(input){
      var temp=input.name.split('[')[0];
      //if(input.checked) return true;
      var inputs=document.contract.elements;
      var ret=false;
      for(var i=0;i<inputs.length;i++) if(inputs[i].name.split('[')[0]==temp) if(inputs[i].checked) {ret=true; break};
      
      if(!ret) document.getElementById(temp).style.borderColor="#ff0000"; else document.getElementById(temp).style.borderColor="#FFFFFF";
     return ret; 
   }
      
   function CheckValid(){
     input = this;
     if(input.className=="main_email") { if(!ValidEmail(input.value)) input.style.borderColor="#ff0000"; else input.style.borderColor="#aaaaaa";}
     if(input.className=="main_text") { if(!ValidText(input.value)) input.style.borderColor="#ff0000"; else input.style.borderColor="#aaaaaa";}
     if(input.className=="main_numeric") {if(!ValidNum(input.value)) input.style.borderColor="#ff0000"; else input.style.borderColor="#aaaaaa";}
     if(input.className=="main_selector") {if(!ValidSelect(input.value)) input.style.borderColor="#ff0000"; else input.style.borderColor="#aaaaaa";}
     if(input.className=="main_checkbox") {if(!ValidCheckbox(input)) input.style.borderColor="#ff0000"; else input.style.borderColor="#aaaaaa";}
     return true; 
   }
   
   function Validater(){
     var inputs=document.contract.elements;
     for(var i=0;i<inputs.length;i++) if(!isValid(inputs[i])) {
                                                               document.getElementById('error').innerHTML='Îøèáêà çàïîëíåíèÿ ôîðìû';
                                                               document.getElementById('error').style.color="#ff0000";
                                                               return false;
                                                              }
     return true;  
   }




   function isValid(input){
     if(input.className=="main_email") { if(!ValidEmail(input.value)) input.style.borderColor="#ff0000"; else input.style.borderColor="#aaaaaa";}
     if(input.className=="main_text") { if(!ValidText(input.value)) input.style.borderColor="#ff0000"; else input.style.borderColor="#aaaaaa";}
     if(input.className=="main_numeric") {if(!ValidNum(input.value)) input.style.borderColor="#ff0000"; else input.style.borderColor="#aaaaaa";}
     if(input.className=="main_selector") {if(!ValidSelect(input.value)) input.style.borderColor="#ff0000"; else input.style.borderColor="#aaaaaa";}
     if(input.className=="main_email") return ValidEmail(input.value);
     if(input.className=="main_text") return ValidText(input.value);
     if(input.className=="main_numeric") return ValidNum(input.value);
     if(input.className=="main_selector") return ValidSelect(input.value);
     if(input.className=="main_checkbox") return ValidCheckbox(input);
     return true; 
   }
   
   function Validate(){
     var inputs=document.contract.elements;
     for(var i=0;i<inputs.length;i++) inputs[i].onblur=CheckValid;
   }

