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

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

function checkForm(elem, elements)
{
	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"]);
		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)
{
	if(value.length == 0 && min == 0)
	{
	return true;
	}

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[0] - 1, date[1]);
	date[0] = parseInt(date[0], 10);
	date[1] = parseInt(date[1], 10);
	date[2] = parseInt(date[2], 10);
		if(testDate.getDate() == date[1])
		{
			if((testDate.getMonth() + 1) == date[0])
			{
				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 re = /^\d*$/;
value = value.toString();
	if(!value.match(re))
	{
	return false;
	}
	else
	{
	return true;
	}
}

function isDoubleNumber(value)
{
var re = /^\d*\.?\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)
{
	if(typeof str != "undefined")
	{
	document.getElementById("ERROR").style.display = "";
	document.getElementById("ERROR").innerHTML = "Ошибка: " + str;
	}
	else if(typeof MESSAGE_ERROR_FROM_PHP != "undefined")
	{
	document.getElementById("ERROR").style.display = "";
	document.getElementById("ERROR").innerHTML = "Ошибка: " + MESSAGE_ERROR_FROM_PHP;
	}
}

function addURLinText(obj)
{
obj.focus();

	if(document.selection)
	{
	var s = document.selection.createRange();
	var textIn = window.prompt("Текст ссылки (имя сайта):", "");
	var adress = window.prompt("Адрес сайта:", "http://");
	s.text = "[u=" + adress + "]" + textIn + "[/u]";
	s.select();
	}
	else if(typeof(obj.selectionStart) == "number")
	{
	var start = obj.selectionStart;
	var end = obj.selectionEnd;
	text = obj.value.substr(start, end-start);
	var textIn = window.prompt("Текст ссылки (имя сайта):", "");
	var adress = window.prompt("Адрес сайта:", "http://");
	var rs = "[u=" + adress + "]" + textIn + "[/u]";
	obj.value = obj.value.substr(0, start) + rs + obj.value.substr(end);
	}
}