var text_exp = /^[a-z]+[a-z\.\s]*$/i;
var phone_exp =/^([(0-9\+])(([()\-\s0-9]){0,})([0-9])$/i;
var number_exp = /^\d+$/;
var date_exp = /^(\d{4}[\-\/]\d{1,2}[\-\/]\d{1,2})$/;
var float_exp = /^\-{0,1}\d+([\.,]*\d+){0,1}$/;
var email_exp = /^\w[\.\w\-]*\w@([\w\-]+\w\.)+[a-z]{2,5}$/i
var money_exp = /^(\d+)\.(\d{1,2})$|^(\d+)$/i;
var ip_exp = /^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})+$/;
var image_exp = /^.+(\.gif)|(\.jpeg)|(\.jpg)$/i;
var host_exp = /^([a-z0-9](\-*[a-z0-9]+)*\.)+[a-z0-9]{2,4}$/i;
var url_exp = /^(((http)|(ftp)|(https)):\/\/){0,1}(\w+:\w+@){0,1}(([a-z0-9](\-*[a-z0-9]+)*\.)+[a-z0-9]{2,4})(\/|((\/{1}[a-z_0-9\_\.\-]+\/{0,1}){0,}))(\?([a-z_0-9\_\-\=\&\[\]\%]+){1,}){0,1}(#\w*){0,1}$/i
var image_exp = /^.+(\.gif)|(\.jpeg)|(\.jpg)$/i;

function check_select (element, mes)
{
	cb = eval(element);
 	return (cb.options[cb.options.selectedIndex].value != '') ? cb.options[cb.options.selectedIndex].value : false;
}

function check_radio (element)
{
	cd = eval(element);
	for (i = 0; i < cd.length; i++)
	{
		if (cd[i].checked) 
		{
			return cd[i].value;
		}
	}
	return false;
} 

function set_select (element, val)
{
	cb = eval(element);
  	for (c = 0; c < cb.length; c++){
   		if (cb.options[c].value == val)
	   	{
			cb.options[c].selected = true;
	   		return true;
		}
   	}
 	return false;
}

function check_type(src, types, mesg, mes_empt)
{
	mes = (!mesg || mesg == "") ? "Обнаружена синтаксическая ошибка" : mesg;
	if (trim(src.value) == ""){
		mes_empt = (!mes_empt || mes_empt == "") ? "Это поле не должно быть пустым" : mes_empt;
		alert(mes_empt);
		src.focus();
		return false;
	}
	
	if(!check_custom(src, types)){
		alert(mes);
		src.focus();
		src.select();
		return false;
	}
	return true;
}

function check_str(src, err, maximum, maxmes){
	if(!err || err == "")
		var err="Это поле не должно быть пустым";
	if (trim(src.value) == ""){
		alert(err);
		src.focus();
		return false;
	}else
	if(maximum && src.value.length > maximum){
		if(!maxmes)
		 maxmes="Это поле не должно содержать "+maximum+" Симовлов.\nСейчас оно содержит "+src.value.length;
		alert(maxmes);
		src.focus();
		src.select();
		return false;
	}
	return true;
}

function check_custom(src,types)
{
	re = eval(types+"_exp");
	return (src.value.search(re) < 0) ? false : true;
}

function trim(str)
{
	  re = /(^\s*)|(\s*$)/gi;
	  return str.replace(re, "");
}

