
//==========================================
// ZEBRA TABLES: class="zebra"
//==========================================

function zebra_init(){
	var tables = document.getElementsByTagName("table");
	for (var i = 0; i < tables.length; i++) {
	  if (tables[i].className.match(/zebra/)) {
	    zebra(tables[i]);
	  }
	}
}

function zebra (table) {
	var current = "zebra_odd";
	var tr = table.getElementsByTagName("tr");
	for (var i = 0; i < tr.length; i++) {
	  tr[i].className += " " + current;
	  current = current == "zebra_even" ? "zebra_odd" : "zebra_even";
	}
}

window.onload = zebra_init;

//==========================================
// FORM
//==========================================

function validate_form() {

	var err = "";
	var err_notnull = "";
	var err_pattern = "";

	var elements = document.getElementsByTagName('input');

	// цикл по всем элементам формы
	for (var i = 0; i < elements.length; i++) {

		var is_error = false;

		var value = elements.item(i).value;
		var name = elements.item(i).getAttribute('namestr');

		// **********************************
		// поле обязательно для заполнения
		// **********************************
		var notnull = elements.item(i).getAttribute('notnull');
		if (notnull != null && value.length == 0) {

			is_error = true;
			err_notnull += "   * " + name + "\n";
		}

		// **********************************
		// проверка образца 
		// **********************************
		var pattern = elements.item(i).getAttribute('pattern');
		if (pattern != null) {

			if ( value.length != 0 ) {

				// валидация значения элемента, используя образец
				var offendingChar = value.match(pattern);

				// если встечен недопустимый символ 
				if (offendingChar != null ) {

					is_error = true;
					err_pattern += "   * " + name + "\n";
				}

			} else {

				// поле не заполнено
				is_error = true;
				err_notnull += "   * " + name + "\n";
			}
		}

		// ошибки при заполнении
		if ( is_error == true ) {

			// подсказка пользователю путем смены цвета фона
			elements.item(i).style.border = "2px #FF6666 solid"; 
		}
	} 

	// есть ошибки?
	if ( err_notnull != "" ) err += "Необходимо заполнить обязательные поля:\n\n" + err_notnull;
	if ( err_pattern != "" ) err += "\nНеверное значение полей:\n\n" + err_pattern;

	if ( err != "" ) {

		alert(err); 
		return false;

	} else {

		return true;
	}

	return false;
}

