////////////////////
// Проверка формы //
////////////////////

function CheckElement(nameElem, fun, param, textErr)
{
this.nameElem = nameElem;
this.fun = fun;
this.param = param;
this.textErr = textErr;
}

function checkForm(elem, elements, where)
{
	for(var i = 0; i < elements.length; i++)
	{
	var value = addBR(elem[elements[i]["nameElem"]].value, "<br>");
	
	var srcStr = "'";
	var re = new RegExp(srcStr, "g");
	value = value.replace(re, '"');
	
	var param = elements[i]["param"];
		if(param != "")
		{
		eval("var how = " + elements[i]["fun"] + "('" + value + "', " + param + ")");
		}
		else
		{
		eval("var how = " + elements[i]["fun"] + "('" + value + "')");
		}
		if(!how)
		{
		alertFun(elements[i]["textErr"], where);
		elem[elements[i]["nameElem"]].focus();
		return;
		}
	}
elem.submit();
}

function addBR(value, replaceStr)
{
var searcher = new Array();
searcher[0] = "\r\n";
searcher[1] = "\n\r";
searcher[2] = "\n";
searcher[3] = "\r";

	for(var i = 0; i < searcher.length; i++)
	{
	re = new RegExp(searcher[i], "g");
	value = value.replace(re, replaceStr);
	}
return value;
}

function isNotEmpty(value, min, max)
{
var re = /.+/;
	if(value.match(re))
	{
		if(value.length < min || value.length > max)
		{
		return false;
		}
		else
		{
		return true;
		}
	}
	else
	{
	return false;
	}
}

function isDate(value)
{
var re = /^\d{2}(\.)\d{2}(\.)\d{4}$/;
	if(!value.match(re))
	{
	return false;
	}
	else
	{
	var date = value.split(".");
	var testDate = new Date(date[2], date[1] - 1, date[0]);
	date[0] = parseInt(date[0], 10);
	date[1] = parseInt(date[1], 10);
	date[2] = parseInt(date[2], 10);
		if(testDate.getDate() == date[0])
		{
			if((testDate.getMonth() + 1) == date[1])
			{
				if(testDate.getFullYear() == date[2])
				{
				return true;
				}
				else
				{
				return false;
				}
			}
			else
			{
			return false;
			}
		}
		else
		{
		return false;
		}
	}
}

function isEmail(value)
{
var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
	if(!value.match(re))
	{
	return false;
	}
	else
	{
	return true;
	}
}

function isNumber(value)
{
var how = isNotEmpty(value, 1, 20);
	if(!how) return false;
var re = /^\d*$/;
value = value.toString();
	if(!value.match(re))
	{
	return false;
	}
	else
	{
	return true;
	}
}

function isMatch(value, objSr)
{
	if(value != objSr.value)
	{
	return false;
	}
	else
	{
	return true;
	}
}

function alertFun(str, where)
{
	if(typeof MESSAGE_ERROR_FROM_PHP != "undefined")
	{
	document.getElementById(MESSAGE_ERROR_FROM_PHP["where"]).style.display = "";
	document.getElementById(MESSAGE_ERROR_FROM_PHP["where"]).innerHTML = MESSAGE_ERROR_FROM_PHP["text"];
	}
	else if(typeof str != "undefined")
	{
	document.getElementById(where).style.display = "";
	document.getElementById(where).innerHTML = str;
	}
}