/* universal form validation */

function IsFilled(elem) {
	if (elem.value.length < 1 || (elem.value==elem.title) ) {
		return false;
	} else {
		return true;
	}
}

function IsEmail(elem) {
	if (elem.value.indexOf("@") == -1 || elem.value.indexOf(".") == -1) {
		return false;
	} else {
		return true;
	}
}

function validate(thisForm) {
	// sprawdzam, czy DOM jest dostepny
	if(!document.getElementById || !document.createTextNode){ return false; }
		
	var result = true; // rezultat poprawnosci formularza  
	
	// zerowanie komunikatow
		for (i=0; i<thisForm.elements.length; i++) {
			var elem = thisForm.elements[i];		
			
			if (elem.className.indexOf("required") != -1) {
				elem.style.background = "#FFF";
				var message=elem.nextSibling; /* nastepnik */
				message.nextSibling.className="error"; /* wlasciwy obiekt i zmiana klasy */
			}
    }

	// pobranie elementow formularza i przetwarzanie tych z class="required"

	for (var i=0; i<thisForm.elements.length; i++) {
		var elem = thisForm.elements[i];		
		
		// sprawdzanie elementow typu required
		if ( (elem.className.indexOf("required") != -1) && elem.disabled==false ) {
			if (!IsFilled(elem)) {
				elem.style.background = "#FFFFCC";
				var message = elem.nextSibling; /* nastepnik */
				message.nextSibling.className="error-on"; /* wlasciwy obiekt i zmiana klasy */
				result = false;
			}
		}
		
		if ( (elem.className.indexOf("email") != -1) && elem.disabled==false ) {
			if (!IsEmail(elem)) {
				elem.style.background = "#FFFFCC";
				var message = elem.nextSibling; /* nastepnik */
				message.nextSibling.className="error-on"; /* wlasciwy obiekt i zmiana klasy */
				result = false;
			}
		}
		
	}

	// zwrocenie rezultatu
	return result;
}

function AutoValidation(thisForm) {
	// rozdzielenie funkcji w celu mozliwosci obslugi indywidualnej walidacji
	var result = validate(thisForm);
	if (!result) alert("Formularz nie został poprawnie wypełniony. Proszę uzupełnić wskazane pola.");
	return result;
}
	
	
	
	
	
