<!--d- цифры; e - email; a - любое,непустое ; s - отсутствие спецсимволов;>

var alertStr = new Array;
alertStr[0] = "Ошибка заполнения формы";
alertStr[1] = "не должно быть пустым";
alertStr[2] = "Одно из полей связи должно быть заполнено";
alertStr[3] = "должно состоять из цифр, запятых, и тире";
alertStr[4] = "Проверьте правильность заполнения поля";
alertStr[5] = "Недопустимые символы в поле";


function SetWant(name){
	this.form = name;
	this.form_name =  new Array();
	this.alert_name = new Array();
	this.need = new Array();
	this.want =       new Array();
	this.nowant =     new Array();
	this.group = new Array();
	this.digits =     "0123456789,-";
	this.special =    "$~`#@%^*&<>'\/"+'"';
	this.Check_All = Check_All; 
	this.Check_Number = Check_Number;
	this.Check_Mail = Check_Mail;
	this.Check_Special = Check_Special;
	this.Clear_Field = Clear_Field;
}


function Clear_Field(numF)
{
   CF = document[this.form];
   CF[this.form_name[numF]].value = "";

}



function Check_All()
{
var alert_str = alertStr[0]+"\n\n";
var return_str = true;
<!--------------Обязательные поля---------------------------------->
   CF = document[this.form];
	for (var i=0;i<this.need.length;i++){
		if (CF[this.form_name[i]].value==""&&this.need[i]==1){
			alert_str +=  "[" + this.alert_name[i] + "] "+alertStr[1]+"\n";
			CF[this.form_name[i]].focus();
			return_str = false;
        }
	}

<!----------------Проверка группы полей----------------------->
	var count=0;
	for (var i=0;i<this.group.length;i++)
		if (CF[this.group[i]].value!="") count++;
	if (count==0&&this.group.length>0){
		alert_str +=  alertStr[2];
		return_str = false;
	}   

<!---------------Проверка на нужные поля--------------------------->
	for (var i=0;i<this.want.length;i++){
		var CheckData ="";
		for (var j=0;j<this.want[i].length;j++){
			if (this.want[i].charAt(j)!=="|") 
				CheckData = this.want[i].charAt(j);
		}
		
		if (Math.round(CheckData)==CheckData && CF[this.form_name[i]].value!=""){
			if(CF[this.form_name[i]].value.length < CheckData){
				alert_str +=  "[" + this.alert_name[i] + "]  "+alertStr[1]+"\n";
				CF[this.form_name[i]].focus();
				return_str = false;
			}
		}else if (CheckData=='d' && CF[this.form_name[i]].value!=""){
			if(this.Check_Number(CF[this.form_name[i]].value)==-1){
				alert_str +=  "[" + this.alert_name[i] + "]  "+alertStr[3]+"\n";
				CF[this.form_name[i]].focus();
				return_str = false;
			}
		}else if (CheckData=='e' && CF[this.form_name[i]].value!=""){
			 if(this.Check_Mail(CF[this.form_name[i]].value)==-1){
				 alert_str +=  ""+alertStr[4]+" [" + this.alert_name[i] + "]\n";
				 CF[this.form_name[i]].focus();
				 return_str = false;
			}
		}else if (CheckData=='s' && CF[this.form_name[i]].value!=""){
			 if(this.Check_Special(CF[this.form_name[i]].value)==-1){
				 alert_str +=  ""+alertStr[5]+" [" + this.alert_name[i]+"]\n";
				 CF[this.form_name[i]].focus();
				 return_str = false;
			 }
		}
	}
	

	if(!return_str)
		alert(alert_str);
	return return_str;

<!------------------------------------------------------------>
}


<!--------------------Проверка на цифры-------------------------->

function Check_Number(n)
{
	var thisChar;
	var counter = 0;
	for (var i = 0; i < n.length; i++) 
		{
 		thisChar = n.substring(i, i+1);
	 		if (this.digits.indexOf(thisChar) != -1)
			counter++;
         	}
	if (counter != n.length) return -1;

}

<!---------------------Проверка на мыло------------------------>

function Check_Mail(n)
{
        var thisChar;
	var counter = 0;
	var SplitMail = n.indexOf('@');
	for (var i=0;i<n.length;i++)
	{
	 if (i!=SplitMail)
	 {
	  thisChar = n.substring(i, i+1);
	  if (this.special.indexOf(thisChar) != -1)
	  counter++;
	 }
	
	}

	if (counter>0||SplitMail==-1 ) return -1;

}


<!----------------------Проверка на отсутствие спецсимволов------------------------>

function Check_Special(n)
{
	var thisChar;
	var counter = 0;
	for (var i = 0; i < n.length; i++) 
		{
 		thisChar = n.substring(i, i+1);
	 		if (this.special.indexOf(thisChar) != -1)
			counter++;
         	}
	if (counter>0) return -1;

}
