﻿// JScript File

function validate(id,f){
    var v = get_element(id).value;
    if(!f){return true;}
    var r = f(v);
    if(r){
        writit(id+'_v', '('+r+')');
        return false;
    }
    writit(id+'_v', '');
    return v;
}
function checkPrice(str)
{
    var cb = checkBlank(str)
    if(cb){return cb;}
    return validateDecimal(str.replace(/ /g, ''),100,2);
}
function checkPassword(id){
    var v = get_element(id).value;
    var v2 = get_element(id+'2').value;
    var cb = checkPas(v)
    if(cb){return cb;}
    if(v!=v2)
        return 'пароль и подтверждение пароля не совпадают';
    return null;    
}
function checkInn(str)
{
    str = ValidatorTrim(str);
	var reg = new RegExp(/^[0-9]*$/);
	var num = parseInt(str);
	if (!reg.test(str) || (str.length != 10 && str.length != 12))
	    return 'ИНН должен состоять из цифр и иметь длинну 10 либо 12';
    return null;
}

function checkPas(str)
{
    if (str.length < 6)
		return 'не должно быть меньше 6 символов';
	return null;
}

function checkZero(str)
{
	if (str == "0")
		return 'не выбрано';
	return null;
}
function checkSelect(str)
{
	if (str == "")
		return 'не выбрано';
	return null;
}
function checkBlank(str)
{
	if (str == "")
		return 'обязательно для заполнения';
	var regex = new RegExp(/^\s+$/);
	if (regex.test(str))
		return 'не может быть пустым';
	return null;
}
function checkString(str, allowhtml)
{
	if (allowhtml = 'True')
		return null;
	var regex = new RegExp(/[\[\]\;\%\<\>\&\|]/);
	if (regex.test(str))
		return 'содержит недопустимые символы';
	return null;
}
function validateLength(str,len)
{
	if (str.length > parseInt(len))
		return 'не должно быть длиннее '+len+' символов';
	return null;
}
function validateNumber(str)
{
	var reg = new RegExp(/^[0-9]*$/);
	var num = parseInt(str);
	if (!reg.test(str) || ''+num !=str)
		return 'не является корректным целым беззнаковым числом';
	return null;
}
function validateDecimal(str, lval, rval)
{
	if ((str.indexOf('.') < 0) && (str.indexOf(',') < 0))
		str += '.';
	var re1 = /^-?0*/;
	var re2 = /0*$/;
	str = str.replace(re1, "").replace(re2, "");

	(lval == '*')? lval = '*': lval = "{0,"+parseInt(lval)+"}";
	(rval == '*')? rval = '*': rval = "{0,"+parseInt(rval)+"}";
	var regstr = "^[0-9]"+lval+"([\\.|,][0-9]"+rval+")?$";
	var regex = new RegExp(regstr);
	if (!regex.test(str))
		return "не является дробным числом или превышена точность";
	return null;
}
function validateEmail(str)
{	
	var emailReg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
	var emailReg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,6}|[0-9]{1,3})(\]?)$/; // valid
	if (!(!emailReg1.test(str) && emailReg2.test(str))) // if syntax is valid
		return "не является корректным E-Mail адресом"
	return null;
}
function validateURL(str)
{
	var urlReg = /^(file|ldap|http|https|ftp):\/\/(([-a-z0-9])+\.)+([a-z]{2,6}|([a-z/]+[a-z/]{2,6}))$/
	if (!urlReg.test(str))
		return "не является корректным URL";
	return null;
}

function ValidatorTrim(s)
{
	var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
	return (m == null) ? "" : m[1];
}