function SetFocus( field ) {
  field.focus();
}

function Trim( str ) {
  var trimmed;
  trimmed = str.toString().replace( /^ */g, '' );
  trimmed = trimmed.toString().replace( / *$/g, '' );
  return( trimmed );
}

function CompareFields(form, field1, field2, message) {
	var success = true;
	
	if(form.elements[field1].value != form.elements[field2].value) {
		success = false;
		alert(message);
	}
	return (success);
}

function CheckField( form, name, message, type, minlength, maxlength ) {
	var str;
	var success = 1;
	var field;

	for (i = 0; i < form.elements.length; i++)
		if ( form.elements.item(i).name == name ) field = form.elements.item(i);

	str = Trim( field.value );

	if (str == '') {
		success = 0;
	}	

	if (success && (minlength != null) && (str.length < minlength)) {
		message += " \r\n(Минимальная длина строки - " + minlength + " симв.)";
		success = 0;
	}
	if (success && (maxlength != null) && (str.length > maxlength)) {
		message += " \r\n(Превышена максимальная длина строки - " + maxlength + " симв.)";
		success = 0;
	}

	//	У оперы проблемы с проверкой регулярного выражения email, т.о. изменяем тип на строку
	//type = (((window.opera + '') != 'undefined') && type == 3) ? 0 : type;	

	//
	// TYPE description 
	// 0 - text
	// 1 - int
	// 2 - float
	// 3 - e-mail
	// 4 - AlphaNumeric
	if (success) {
		switch (type){
			case 1:
				if (!IsInt(str)) {
					success = 0;
				}
			break;
			case 2:
				if (!IsFloat(str)) {
					success = 0;
				}
			break;
			case 3:
				if (!IsEmail(str)) {
					message += " \r\n(Неправильный формат электронного адреса)";					
					success = 0;
				}
			break;
			case 4:
				if (!IsAlphaNumeric(str)) {
					success = 0;
				}
			break;
	
		}
	}

	if (success == 0) {
	    	alert ( message );
	    	SetFocus( field );
	    	return ( false );
	} else {
	    	return ( true );
	}
}

function IsInt( val ) {
  var pattern = /^[0-9]+$/gi;
  return( pattern.exec( val )!=null );
}

function IsFloat( val ) {
  var pattern = /^[0-9]*\.?[0-9]+$/gi;
  return( pattern.exec( val )!=null );
}

function IsEmail( val ) {
	//var pattern = /^[^\.@]+(\.[^\.@]+)*@([^\.@]+\.)+[^\.@]+$/gi;
	var pattern = /^[^\s()<>@,;:\/]+@\w[\w\.-]*\.[a-z]{2,}$/i;
	return pattern.test( val );
}

function IsAlphaNumeric( val ) {
  var pattern = /^\w+$/gi;
  return( pattern.exec( val )!=null );
}

function ConfirmWindow(question){
	return window.confirm(question);
}

function CheckDate(day, month, year, message) {
	month = month - 1;
	dt = new Date(year, month, day);
	result = (dt.getDate() == day) && (dt.getMonth() == month) && (dt.getFullYear() == year);
	if (result == false) {
		month = month * 1 + 1;
		alert(message + " Date: " + day + "-" + month + "-" + year);
	}
	return result;
}
