function CheckForm(language){
	this.fields = new Array();
	this.count = 0;
	this.language = language;
	
	this.message = new Array();
	this.message['ru'] = 'Пожалуйста заполните обязательные поля!'
	//this.message['de'] = 'Bitte überprüfen Sie Angaben in den folgenden Feldern!:'
	//this.message['en'] = 'Please Check:'
}

CheckForm.prototype.addCheckField = function (name, title, value){
	var field = new Array();
		field['name'] = name;
		field['title'] = title;
		field['value'] = value;
	this.fields[this.count] = field;
	this.count++;
}

CheckForm.prototype.removeCheckField = function (name){
	var i=0;
	var field = new Array();
	for(f in this.fields)
	{
		if(this.fields[f]['name'] == name)
		{
			this.count--;
			continue;
		}
		field[i] = this.fields[f];
		i++;
	}
	this.fields = field;

}

CheckForm.prototype.Examine = function (form){
	
	var error = new Array();
	
	for(f in this.fields)
	{
		//ищем checkbox и radio
		if(form[this.fields[f]['name']].type == 'checkbox' || form[this.fields[f]['name']].type == 'radio')
		{
			if(this.fields[f]['value'] == '[empty]' && !form[this.fields[f]['name']].checked)
				error[f] = this.fields[f]['title'];
		}
		else{
			myRe = this.getTemplate(this.fields[f]['value']);
			if(form[this.fields[f]['name']].value.search(myRe)==-1)
			{
				error[f] = this.fields[f]['title'];
			}
		}
	}
	
	if(error.length>0)
	{
		//var mess = this.message[this.language]+"\n";
		for(e in error)
		{
			form[this.fields[e]['name']].style.backgroundColor = '#F3CFCF';
			//mess += ' - '+error[e]+"\n";
		}
		
		if(!document.getElementById('checkformMessageBox')){
			var div = document.createElement('div');
			div.setAttribute('id', 'checkformMessageBox')
			div.innerHTML = this.message['ru'];
			div.style.width = '99%';
			div.style.color = 'red';
			div.style.paddingBottom = '10px';
			div.style.textAlign = 'center';
			form.insertBefore(div, form.firstChild);
		}
		
		return false;
	}

	return true;
}

CheckForm.prototype.getTemplate = function (template){
	
	var reg = '';
	
	switch(template)
	{
		case '[empty]':
			reg = /[^\s]/;
			break;
		case '[date]':
			reg = /^([\d]{2}\.[\d]{2}\.[\d]{4})$/;
			break;
		case '[digit]':
			reg = /^[\d]+$/;
			break;
		case '[mail]':
			reg = /^([-a-zA-Z0-9._]+@[-a-zA-Z0-9.]+(\.[-a-zA-Z0-9]+)+)*$/;
			break;
		default:
			reg = template;
	}
	return reg;
}
