// steruje ukrywaniem i pokazywaniem elementow formularza (input_toggluja…cy, element_togglowany, [wartosc_jesli_sterowane_selectem])
function partToggle(input, part, val) {
	if(val) {
		if(input.val()==val) {part.removeClass("hidden");}
		
		input.change(function() {
			if($(this).val()==val) {part.removeClass("hidden");}
			else {part.addClass("hidden");}
		});
	}
	else {
		if(input.is(":checked")) {part.removeClass("hidden");}
		
		input.click(function() {
			if($(this).is(":checked")) {part.removeClass("hidden");}
			else {part.addClass("hidden");}
		});
	}
	
	input.blur();
	//input.focus();
}


$(document).ready(function(){
	
	partToggle($("#chkAdresKorespondencyjny"), $("#adresKorespondencyjny"));
	partToggle($("#chkZatrudnienie"), $("#zatrudnienie"));
	partToggle($("#wkuStosunek"), $("#wkuStosunek").parent("td").parent("tr").next("tr"), 3);
	
	
	var valid = '<img class="formVal valid" src="'+host+'/images/form_valid.gif" alt="" />';
	var notValid = '<img class="formVal notvalid" src="'+host+'/images/form_not_valid.gif" alt="" />';
	
	var validationResult = true;
	var focusedOnError = false;
	
	
	function isEmpty(obj) {
		return obj.val()=="" || obj.val()==0;
	}
	
	function isFull(obj) {
		return obj.val()!="" && obj.val()!=0
	}
	
	function isTooLong(obj) {
		return obj.val().length > obj.attr("maxlength");
	}
	
	function isNumber(obj) {
		var result = /^\d+$/.test(obj.val());
		return result;
	}
	
	function isAlphaBasic(obj) {
		var result = /^[A-Za-z±æê³ñó¶¼¿¡ÆÊ£ÑÓ¦¬¯\-_\s]+$/.test(obj.val());
		return result;
	}	
		
	function isYear(obj) {
		var result = /^\d{4}$/.test(obj.val());
		return result;
	}
	
	function isDataUr(obj) {
		var result = /^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/.test(obj.val());
		return result;
	}
	
	function isPhone(obj) {
		var result = /^\d{9}$/.test(obj.val());
		return result;
	}
	
	function isEmail(obj) {
		var result = /^[a-zA-Z0-9]+([\.\-\_]{1}[a-zA-Z0-9]+)*\@[a-zA-Z0-9]+([\.\-\_]{1}[a-zA-Z0-9]+)*\.[a-zA-Z0-9\-\_]{2,}[\ ]*$/.test(obj.val());
		
		//var result = /^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])$/.test(obj.val());
		return result;
	}
	
	function isPesel(obj) {
		var n = obj.val();
		var weights = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3, 1];
		var checksum = 0;
		
		for(i=0; i<n.length; i++) {
			checksum += parseInt(n.charAt(i)) * weights[i];
		}
		
		var result = checksum % 10 == 0;
		return result;
	}
	
	function isNip(obj) {
		var n = obj.val().replace(/[\s-_]/g, "");
		var weights = [6, 5, 7, 2, 3, 4, 5, 6, 7];
		var checksum = 0;
		
		for(i=0; i<n.length-1; i++) {
			checksum += parseInt(n.charAt(i)) * weights[i];
		}
		
		var result = /^\d{3}-\d{3}-\d{2}-\d{2}$|^\d{3}-\d{2}-\d{2}-\d{3}$|^\d{10}$/.test(obj.val()) && checksum % 11 % 10 == parseInt(n.charAt(9));
		return result;
	}
	
	function isDowod(obj) {
		var result = /^[A-Za-z]{2}\d{7}$|^[A-Za-z]{3}\d{6}$/.test(obj.val());
		return result;
	}
	
	function isKod(obj) {
		var result = /^\d{2}-\d{3}$/.test(obj.val());
		return result;
	}
	
	
	function validate(obj, conditions, position, optional) {
		if(optional && (obj.val()=="" || obj.val()==0)) {
			obj.parent().find(".formVal").remove();
		}
		else {
			if(conditions) {
				if(position == "after" || !position) {obj.parent().append(notValid);}
				else if(position == "before") {obj.parent().prepend(notValid);}
				else {position.append(notValid);}
				validationResult = false;
				if(!focusedOnError) {
					obj.focus();
					focusedOnError = true;
				}
			}
			else {
				if(position == "after" || !position) {obj.parent().append(valid);}
				else if(position == "before") {obj.parent().prepend(valid);}
				else {position.append(valid);}
			}
		}
	}
	
	
	$("#signupForm").submit(function() {
		validationResult = true;
		focusedOnError = false;
		
		$("#signupForm .formVal").remove();
		
		
		validate($("#miasto"), isEmpty($("#miasto")));
		validate($("#kierunek_1"), isEmpty($("#kierunek_1")) || isEmpty($("#kierunek_1_tryb")));
		
		if (isFull($("#kierunek_2"))) {
			validate($("#kierunek_2_tryb"), isEmpty($("#kierunek_2_tryb")));
		}
		
		validate($("#imie"), isEmpty($("#imie")) || !isAlphaBasic($("#imie")));
		validate($("#nazwisko"), isEmpty($("#nazwisko")) || !isAlphaBasic($("#nazwisko")));
		validate($("#drugieImie"), !isAlphaBasic($("#drugieImie")), "after", true);
		validate($("#nazwiskoPanienskie"), !isAlphaBasic($("#nazwiskoPanienskie")), "after", true);
		validate($("#dataUrodzeniaDzien"), isEmpty($("#dataUrodzeniaDzien")) || isEmpty($("#dataUrodzeniaMiesiac")) || isEmpty($("#dataUrodzeniaRok")) || !isYear($("#dataUrodzeniaRok")));
		validate($("#miejsceUrodzenia"), isEmpty($("#miejsceUrodzenia")) || !isAlphaBasic($("#miejsceUrodzenia")));
		validate($("#miejsceUrodzeniaWojewodztwo"), isEmpty($("#miejsceUrodzeniaWojewodztwo")));
		validate($("#imieOjca"), isEmpty($("#imieOjca")) || !isAlphaBasic($("#imieOjca")));
		validate($("#imieMatki"), isEmpty($("#imieMatki")) || !isAlphaBasic($("#imieMatki")));
		validate($("#pesel"), isEmpty($("#pesel")) || !isPesel($("#pesel")));
		validate($("#dowodOsobisty"), isEmpty($("#dowodOsobisty")) || !isDowod($("#dowodOsobisty")));
		validate($("#nip"), !isNip($("#nip")), "after", true);
		validate($("#adresZamieszkaniaUlica"), isEmpty($("#adresZamieszkaniaUlica")));
		validate($("#adresZamieszkaniaNumerDomu"), isEmpty($("#adresZamieszkaniaNumerDomu")));
		validate($("#adresZamieszkaniaMiejscowosc"), isEmpty($("#adresZamieszkaniaMiejscowosc")) || !isAlphaBasic($("#adresZamieszkaniaMiejscowosc")));
		validate($("#adresZamieszkaniaKodPocztowy"), isEmpty($("#adresZamieszkaniaKodPocztowy")) || !isKod($("#adresZamieszkaniaKodPocztowy")));
		validate($("#adresZamieszkaniaWojewodztwo"), isEmpty($("#adresZamieszkaniaWojewodztwo")));
		validate($("#adresZamieszkaniaTelefon"), !isPhone($("#adresZamieszkaniaTelefon")), "after", true);
		validate($("#adresZamieszkaniaTelefonKomorkowy"), !isPhone($("#adresZamieszkaniaTelefonKomorkowy")), "after", true);
		validate($("#email"), isEmpty($("#email")) || !isEmail($("#email")));
		
		if ($("#chkAdresKorespondencyjny").is(":checked")) {
			validate($("#adresKorespondencjiUlica"), isEmpty($("#adresKorespondencjiUlica")));
			validate($("#adresKorespondencjiNumerDomu"), isEmpty($("#adresKorespondencjiNumerDomu")));
			validate($("#adresKorespondencjiMiejscowosc"), isEmpty($("#adresKorespondencjiMiejscowosc")) || !isAlphaBasic($("#adresKorespondencjiMiejscowosc")));
			validate($("#adresKorespondencjiKod"), isEmpty($("#adresKorespondencjiKod")) || !isKod($("#adresKorespondencjiKod")));
			validate($("#adresKorespondencjiWojewodztwo"), isEmpty($("#adresKorespondencjiWojewodztwo")));
			validate($("#adresKorespondencjiTelefon"), !isPhone($("#adresKorespondencjiTelefon")), "after", true);
			validate($("#adresKorespondencjiTelefonKomorkowy"), !isPhone($("#adresKorespondencjiTelefonKomorkowy")), "after", true);
		}
		
		if ($("#chkZatrudnienie").is(":checked")) {
			validate($("#zatrudnienieNazwaFirmy"), isEmpty($("#zatrudnienieNazwaFirmy")));
			validate($("#zatrudnienieAdres"), isEmpty($("#zatrudnienieAdres")));
			validate($("#zatrudnienieMiejscowosc"), isEmpty($("#zatrudnienieMiejscowosc")) || !isAlphaBasic($("#zatrudnienieMiejscowosc")));
			validate($("#zatrudnienieTelefon"), isEmpty($("#zatrudnienieTelefon")) || !isPhone($("#zatrudnienieTelefon")), "after", true);
			validate($("#zatrudnienieStanowisko"), isEmpty($("#zatrudnienieStanowisko")));
		}
		
		validate($("#szkolaTyp"), isEmpty($("#szkolaTyp")));
		validate($("#szkolaMiejscowosc"), isEmpty($("#szkolaMiejscowosc")));
		validate($("#szkolaRokUkonczenia"), isEmpty($("#szkolaRokUkonczenia")) || !isYear($("#szkolaRokUkonczenia")));
		validate($("#szkolaMatura"), isEmpty($("#szkolaMatura")));
		validate($("#wkuStosunek"), isEmpty($("#wkuStosunek")));
		
		if ($("#wkuStosunek").val()==3) {
			validate($("#wkuSiedziba"), isEmpty($("#wkuSiedziba")));
		}
		
		validate($("#zgodaPrzetwarzanie"), !$("#zgodaPrzetwarzanie").is(":checked"), "before");
		validate($("#zgodaReklama"), !$("#zgodaReklama").is(":checked"), "before");
		
		validate(
			$("input[name='srodkiPromocji[]']"),
			$("input[name='srodkiPromocji[]']:checked").length < 1,
			$("input[name='srodkiPromocji[]']:first").parent("label").parent("li").parent("ul").parent("div").prev("p")
		);
		
		
		return validationResult;
	});
	
	$("#signupForm input[type='reset']").click(function() {
		$("#signupForm .formVal").remove();
	});
	
	
	$("#informatorForm").submit(function() {
		validationResult = true;
		focusedOnError = false;
		
		$("#informatorForm .formVal").remove();
		
		
		validate($("#imie"), isEmpty($("#imie")) || !isAlphaBasic($("#imie")));
		validate($("#nazwisko"), isEmpty($("#nazwisko")) || !isAlphaBasic($("#nazwisko")));
		validate($("#ulica"), isEmpty($("#ulica")));
		validate($("#dom"), isEmpty($("#dom")));
		validate($("#miejscowosc"), isEmpty($("#miejscowosc")) || !isAlphaBasic($("#miejscowosc")));
		validate($("#poczta"), isEmpty($("#poczta")) || !isKod($("#poczta")));
		validate($("#wojewodztwo"), isEmpty($("#wojewodztwo")));
		validate($("#email"), isEmpty($("#email")) || !isEmail($("#email")));
		
		validate(
			$("input[name='wersjaInformatora[]']"),
			$("input[name='wersjaInformatora[]']:checked").length < 1,
			$("input[name='wersjaInformatora[]']:first").parent("label").parent("li").parent("ul").parent("div").prev("h3")
		);
		
		validate(
			$("input[name='srodkiPromocji[]']"),
			$("input[name='srodkiPromocji[]']:checked").length < 1,
			$("input[name='srodkiPromocji[]']:first").parent("label").parent("li").parent("ul").parent("div").prev("p")
		);
		
		validate($("#szkolaMiasto"), isEmpty($("#szkolaMiasto")));
		validate($("#szkolaKierunek"), isEmpty($("#szkolaKierunek")));
		
		validate($("#reklama"), !$("#reklama").is(":checked"), "before");
		validate($("#zgoda"), !$("#zgoda").is(":checked"), "before");
		
		
		return validationResult;
	});
	
	$("#informatorForm input[type='reset']").click(function() {
		$("#informatorForm .formVal").remove();
	});
	
	
	$("#employerRegister").submit(function() {
		validationResult = true;
		focusedOnError = false;
		
		$("#employerRegister .formVal").remove();
		
		
		validate($("#rfNazwa"), isEmpty($("#rfNazwa")));
		validate($("#rfUlica"), isEmpty($("#rfUlica")) || !isAlphaBasic($("#rfUlica")));
		validate($("#rfBudynek"), isEmpty($("#rfBudynek")));
		validate($("#rfKod"), isEmpty($("#rfKod")) || !isKod($("#rfKod")));
		validate($("#rfMiasto"), isEmpty($("#rfMiasto")) || !isAlphaBasic($("#rfMiasto")));
		validate($("#rfWojewodztwo"), isEmpty($("#rfWojewodztwo")));
		validate($("#rfTelefon"), isEmpty($("#rfTelefon")) || !isPhone($("#rfTelefon")));
		validate($("#rfEmail"), isEmpty($("#rfEmail")) || !isEmail($("#rfEmail")));
		validate($("#rfBranza"), isEmpty($("#rfBranza")));
		
		validate($("#rfImie"), isEmpty($("#rfImie")) || !isAlphaBasic($("#rfImie")));
		validate($("#rfNazwisko"), isEmpty($("#rfNazwisko")) || !isAlphaBasic($("#rfNazwisko")));
		
		
		return validationResult;
	});
	
	$("#zapisKurs input[type='reset']").click(function() {
		$("#zapisKurs .formVal").remove();
	});
	
	$("#zapisKurs").submit(function() {
		validationResult = true;
		focusedOnError = false;
		
		$("#zapisKurs .formVal").remove();
		
		
		validate($("#nazwisko"), isEmpty($("#nazwisko")));
		validate($("#imie"), isEmpty($("#imie")));
		validate($("#dataUrodzenia"), isEmpty($("#dataUrodzenia")) || !isDataUr($("#dataUrodzenia")));
		validate($("#miejsceUrodzenia"), isEmpty($("#miejsceUrodzenia")) || !isAlphaBasic($("#miejsceUrodzenia")));		
		validate($("#adres"), isEmpty($("#adres")));
		validate($("#kodPocztowy"), isEmpty($("#kodPocztowy")) || !isKod($("#kodPocztowy")));		
		validate($("#miasto"), isEmpty($("#miasto")) || !isAlphaBasic($("#miasto")));
		validate($("#telefon"), isEmpty($("#telefon")));
		validate($("#email"), isEmpty($("#email")) || !isEmail($("#email")));
		validate($("#zgodaPrzetwarzanie"), !$("#zgodaPrzetwarzanie").is(":checked"), "before");
		
		return validationResult;
	});
	
	$("#zapisKurs input[type='reset']").click(function() {
		$("#zapisKurs .formVal").remove();
	});
	
	
	
	$("#metamorfozaForm").submit(function() {
		validationResult = true;
		focusedOnError = false;
		
		$("#metamorfozaForm .formVal").remove();
		
		
		validate($("#miasto"), isEmpty($("#miasto")));
		validate($("#kierunek_1"), isEmpty($("#kierunek_1")));
		
				
		validate($("#imie"), isEmpty($("#imie")) || !isAlphaBasic($("#imie")));
		validate($("#nazwisko"), isEmpty($("#nazwisko")) || !isAlphaBasic($("#nazwisko")));
		
		validate($("#ulica"), isEmpty($("#ulica")));
		validate($("#nrDomu"), isEmpty($("#nrDomu")));
		validate($("#nrMieszkania"), isEmpty($("#nrMieszkania")));
		validate($("#miejscowosc"), isEmpty($("#miejscowosc")) || !isAlphaBasic($("#miejscowosc")));
		validate($("#kod"), isEmpty($("#kod")) || !isKod($("#kod")));
		validate($("#telefon"), isEmpty($("#telefon")) || !isPhone($("#telefon")));
		validate($("#email"), isEmpty($("#email")) || !isEmail($("#email")));
		
		validate($("#odpowiedz"), isEmpty($("#odpowiedz")));
		
		validate($("#zgodaPrzetwarzanie"), !$("#zgodaPrzetwarzanie").is(":checked"), "before");
		validate($("#zgodaReklama"), !$("#zgodaReklama").is(":checked"), "before");
		validate($("#zgodaRegulamin"), !$("#zgodaRegulamin").is(":checked"), "before");
		
		return validationResult;
	});
	
	$("#metamorfozaForm input[type='reset']").click(function() {
		$("#metamorfozaForm .formVal").remove();
	});
	
	
	
	
	$("#studniowkaForm").submit(function() {
		validationResult = true;
		focusedOnError = false;
		
		$("#studniowkaForm .formVal").remove();
		
		
		validate($("#szkola"), isEmpty($("#szkola")));		
				
		validate($("#imie"), isEmpty($("#imie")) || !isAlphaBasic($("#imie")));
		validate($("#nazwisko"), isEmpty($("#nazwisko")) || !isAlphaBasic($("#nazwisko")));
		
		validate($("#ulica"), isEmpty($("#ulica")));
		validate($("#nrDomu"), isEmpty($("#nrDomu")));
		validate($("#nrMieszkania"), isEmpty($("#nrMieszkania")));
		validate($("#miejscowosc"), isEmpty($("#miejscowosc")) || !isAlphaBasic($("#miejscowosc")));
		validate($("#kod"), isEmpty($("#kod")) || !isKod($("#kod")));
		validate($("#telefon"), isEmpty($("#telefon")) || !isPhone($("#telefon")));
		validate($("#email"), isEmpty($("#email")) || !isEmail($("#email")));
		
		validate($("#odpowiedz"), isEmpty($("#odpowiedz")));
		
		validate($("#zgodaPrzetwarzanie"), !$("#zgodaPrzetwarzanie").is(":checked"), "before");
		validate($("#zgodaReklama"), !$("#zgodaReklama").is(":checked"), "before");
		validate($("#zgodaRegulamin"), !$("#zgodaRegulamin").is(":checked"), "before");
		
		return validationResult;
	});
	
	$("#studniowkaForm input[type='reset']").click(function() {
		$("#studniowkaForm .formVal").remove();
	});
	
	
	
	
	$("#mendukacjaForm").submit(function() {
		validationResult = true;
		focusedOnError = false;
		
		$("#mendukacjaForm .formVal").remove();
		
		
		validate($("#miasto"), isEmpty($("#miasto")));
		validate($("#kierunek_1"), isEmpty($("#kierunek_1")));
		
				
		validate($("#imie"), isEmpty($("#imie")) || !isAlphaBasic($("#imie")));
		validate($("#nazwisko"), isEmpty($("#nazwisko")) || !isAlphaBasic($("#nazwisko")));
		
		validate($("#ulica"), isEmpty($("#ulica")));
		validate($("#nrDomu"), isEmpty($("#nrDomu")));
		validate($("#nrMieszkania"), isEmpty($("#nrMieszkania")));
		validate($("#miejscowosc"), isEmpty($("#miejscowosc")) || !isAlphaBasic($("#miejscowosc")));
		validate($("#kod"), isEmpty($("#kod")) || !isKod($("#kod")));
		validate($("#telefon"), isEmpty($("#telefon")) || !isPhone($("#telefon")));
		validate($("#email"), isEmpty($("#email")) || !isEmail($("#email")));
		
		validate($("#odpowiedz"), isEmpty($("#odpowiedz")));

		validate($("#nagroda"), isEmpty($("#nagroda")));

		
		validate($("#zgodaPrzetwarzanie"), !$("#zgodaPrzetwarzanie").is(":checked"), "before");
		validate($("#zgodaReklama"), !$("#zgodaReklama").is(":checked"), "before");
		validate($("#zgodaRegulamin"), !$("#zgodaRegulamin").is(":checked"), "before");
		
		return validationResult;
	});
	
	$("#mendukacjaForm input[type='reset']").click(function() {
		$("#mendukacjaForm .formVal").remove();
	});
	
});
