var ddays = new Array (31,28,31,30,31,30,31,31,30,31,30,31);

function validateFields(formName)
{
	var err = ''; // инициализируем переменную, в которой будем отмечать все ошибки
	numArgs = validateFields.arguments.length - 1;
	if (numArgs > 0)
	{
		for (var i = 1; i <= numArgs; i++)
		{
			currElement = eval(formName+"."+validateFields.arguments[i]+".type");
			//	определяем какой элемент формы мы будем очищать - текстовое поле или селектор
			if (currElement == 'textarea' || currElement == 'text')
			{
				//	в случае текстового поля
				val = eval(formName+"."+validateFields.arguments[i]+".value");
				if ((val == 0) || (val == '') || (val == ' '))
					err += 1;
			}
		}
		if (err != '')
		{
			alert("Некоторые обязательные поля остались незаполненными!");
			return false;
		}
		else return true;
	}
}

/* проверяет поле дата */
function validateDate(fn,date1,date2)
{

	var err = ''; // инициализируем переменную, в которой будем отмечать все ошибки
	d1v = eval(fn+"."+date1+".value");
	d2v = eval(fn+"."+date2+".value");
	//	проверка на идентичность
	if (d1v == d2v)
	{
		err = 'Дата заезда и отъезда не могут быть одинаковыми!';
		alert(err);
		return false;
	}
	//	проверка на длину
	if ((d1v.length < 8) || (d1v.length > 10) || (d2v.length < 8) || (d2v.length > 10))
	{
		err = 'Дата имеет не такую длину!';
		alert(err);
		return false;
	}
	//	правильность написания
     var aDt2 = d2v.split("-");
	 var aDt1 = d1v.split("-");

     if ( aDt2 && (aDt2.length == 3) )
        dt2 = new Date(parseInt(aDt2[2]),parseInt(aDt2[1])-1,parseInt(aDt2[0]));
     if ( aDt1 && (aDt1.length == 3) )
        dt1 = new Date(parseInt(aDt1[2]),parseInt(aDt1[1])-1,parseInt(aDt1[0]));
//	alert(dt2 - dt1);

//	проверка на корректность заезда-отезда
	if (dt2 < dt1)
	{
		err = 'Дата отезда не может быть раньше даты заезда!';
		alert(err);
		return false;
	}

	//	количество дней
	numDays = parseInt(aDt2[0]) - parseInt(aDt1[0]);
	if (numDays < 0)
	{
		ind = (parseInt(aDt2[1])-1);
		numDays = ddays[ind] + numDays;
	}
	eval(fn+".numdays.value = numDays");
	return true;
}

/*	отправляем форму */
function sendForm(formName)
{
//	(validateFields(sendForm.arguments)) ? formName.submit() : return false;
//	formName.submit();
}

function loadImage(path)
{
	document.images['preview'].src=path;
}
function  clearPreview()
{
	document.images['preview'].src = '/pic/shim.gif';
}
//	можно вводить только цифры
function numeralsOnly(evt) {
    evt = (evt) ? evt : event;
    var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : 
        ((evt.which) ? evt.which : 0));
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        alert("В это поле можно вводить только цифры");
        return false;
    }
    return true;
}
// =====================================================
// validates that the field value string has one or more characters in it
function isNotEmpty(elem) {
	var str = elem.value;
    var re = /.+/;
    if(!str.match(re)) {
        alert("Пожалуйста, заполните поле");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}
//validates that the entry is a positive or negative number
function isNumber(elem) {
	var str = elem.value;
    var re = /^[-]?\d*\.?\d*$/;
    str = str.toString();
    if (!str.match(re)) {
        alert("Пожалуйста, введите в это поле число");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    }
    return true;
}
// validates that the entry is 16 characters long
function isLen16(elem) {
	var str = elem.value;
    var re = /\b.{16}\b/;
    if (!str.match(re)) {
        alert("необходимо ввести 16 символов");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}
// validates that the entry is formatted as an e-mail address
function isEMailAddr(elem) {
	var str = elem.value;
    var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
    if (!str.match(re)) {
        alert("E-mail указан неверно");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}
// validate that the user made a selection other than default
function isChosen(select) {
    if (select.selectedIndex == 0) {
        alert("Please make a choice from the list.");
        return false;
    } else {
        return true;
    }
}

// validate that the user has checked one of the radio buttons
function isValidRadio(radio) {
    var valid = false;
    for (var i = 0; i < radio.length; i++) {
        if (radio[i].checked) {
            return true;
        }
    }
    alert("Make a choice from the radio buttons.");
    return false;
}

function focusElement(formName, elemName) {
    var elem = document.forms[formName].elements[elemName];
    elem.focus();
    elem.select();
}


