$(document).ready(
	function()
	{
		$("#kwestionariusz").submit(validateForm);
		addPhpErrors();
		postcodeFormat();
		
		$('[name=uczen][value=1]').click(
			function()
			{
				$('.pupil').show();
				$('.onlyPupil').show();
				$('.onlyStudent').hide();
				$('.isStudent').hide();
				$('.isStudent [name=student][value=0]').attr('checked', 'checked');
			}
		);
		
		$('[name=uczen][value=0]').click(
			function()
			{				
				$('.pupil').hide();
				$('.onlyPupil').hide();
				$('.onlyStudent').hide();
				$('.isStudent').show();
			}
		);
		
		$('[name=student][value=1]').click(
			function()
			{
				$('.pupil').show();
				$('.onlyStudent').show();
				$('.onlyPupil').hide();
				$('.isPupil').hide();
				$('.isPupil [name=uczen][value=0]').attr('checked', 'checked');
			}
		);
		
		$('[name=student][value=0]').click(
			function()
			{
				$('.pupil').hide();
				$('.onlyStudent').hide();
				$('.onlyPupil').hide();
				$('.isPupil').show();
			}
		);
		
		if ($('[name=student][value=0]').is(':checked'))
		{
			$('[name=student][value=0').click();
		}
		
		if ($('[name=uczen][value=0]').is(':checked'))
		{
			$('[name=uczen][value=0]').click();
		}
		
		if ($('[name=student][value=1]').is(':checked'))
		{
			$('[name=student][value=1]').click();
		}
		
		if ($('[name=uczen][value=1]').is(':checked'))
		{
			$('[name=uczen][value=1]').click();
		}
		
		//$('.contentheading').text('Kwestionariusz - ' + $('#occupation').text());			
	}
);

var fields = ['imie', 'nazwisko', 'adres', 'kod_pocztowy', 'email', 
	'telefon_komorkowy', 'nazwa_uczelni', 'kierunek', 'data_urodzenia', 
	'student', 'rok_studiow', 'typ_studiow', 'doswiadczenie', 'zgoda',
	'angielski', 'niemiecki', 'ok', 'inny_poziom', 'uczen', 'dowiedziales'
	];

var daysMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

/**
 * Sprawdź poprawność danych w formularzu. Zwraca true jeśli dane są poprawne i false w p.p. 
 */
function validateForm()
{	
	clearErrors(fields);	
	
	var isValidate = true;
	var form = $("#kwestionariusz");	
	var elem;
	
	var noEmpty = ['imie', 'nazwisko', 'adres'];
	
	/* DATA */
	
	elem = $("#kwestionariusz select[name=data_urodzenia_dzien]");
	var day = elem.val();
	elem = $("#kwestionariusz select[name=data_urodzenia_miesiac]");
	var month = elem.val();
	elem = $("#kwestionariusz select[name=data_urodzenia_rok]");
	var year = elem.val();
	
	if (year == 0)
	{
		isValidate = false;
		addError('data_urodzenia', 'Nieprawidłowy rok');
	}
	
	if (month < 1 || month > 12)
	{
		isValidate = false;
		addError('data_urodzenia', 'Nieprawidłowy miesiąc');
	}
		
	if (day < 1 || (month > 1 && month < 12 && day > daysMonth[month-1]))
	{
		isValidate = false;		
		addError('data_urodzenia', 'Nieprawidłowy dzień');		
	}
	else if (month == 2 && day == 29)
	{
		if (year % 4 != 0 
			|| (year % 100 == 0 && year % 400 != 0)
		)
		{
			isValidate = false;		
			addError('data_urodzenia', 'Rok ' + year + ' nie jest rokiem przestępnym.');
		}
	}
	
	/* DOSWIADCZENIE */
	 
	 
	elem = $("#kwestionariusz input[name=doswiadczenie]");
	 
	var hasExp = elem.eq(0).attr('checked');
	var hasntExp = elem.eq(1).attr('checked');
	
	if (((hasExp && hasntExp) || (!hasExp && !hasntExp)) && ccef) 
	{
		addError('doswiadczenie', 'Zaznacz jedną opcję');
		isValidate = false;
	}
	
	
	/* STUDENT */
	
	elem = $("#kwestionariusz input[name=student]");
	 	
	var isStudent = elem.eq(0).attr('checked');
	var isntStudent = elem.eq(1).attr('checked');
	if ((isStudent && isntStudent) || (!isStudent && !isntStudent))
	{
		addError('student', 'Zaznacz jedną opcję');
		isValidate = false;	
	}
	else if (isStudent)
	{
		noEmpty = ['imie', 'nazwisko', 'adres', 'nazwa_uczelni'];
		
		elem = $("#kwestionariusz *[name=rok_studiow]");
		var sYear = parseInt(elem.val());
		
		if (isNaN(sYear) || sYear < 1 || sYear > 6)
		{
			addError('rok_studiow', 'Nieprawidłowy rok studiów');
			isValidate = false;
		}
		
		elem = $("#kwestionariusz *[name=typ_studiow]");
		if (elem.val() == 0)
		{
			addError('typ_studiow', 'Nieprawidłowy typ studiów');
			isValidate = false;
		}
	}

	/* UCZEŃ */
	
	elem = $("#kwestionariusz input[name=uczen]");
	 	
	var isPupil = elem.eq(0).attr('checked');
	var isntPupil = elem.eq(1).attr('checked');
	if ((isPupil && isntPupil) || (!isPupil && !isntPupil))
	{
		addError('uczen', 'Zaznacz jedną opcję');
		isValidate = false;	
	}
	else if (isPupil)
	{
		noEmpty = ['imie', 'nazwisko', 'adres', 'nazwa_uczelni'];		
	}
	
	if (isPupil && isStudent)
	{
		addError('uczen', 'Nie możesz wybrać, że jesteś uczniem i studentem.');
		isValidate = false;	
	}
	
	/* KOD POCZTOWY */
	
	elem = $("#kwestionariusz input[name=kod_pocztowy]");
	if (/^\s*[0-9]{2}-[0-9]{3}\s*$/.test(elem.val()) == false)
	{
		addError('kod_pocztowy', 'Kod pocztowy powinien mieć format XX-XXX.');
		isValidate = false;
	}
	
	/* EMAIL */
	
	elem = $("#kwestionariusz input[name=email]");
	if (/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/.test(elem.val()) == false)
	{
		addError('email', 'Adres email jest nieprawidłowy.');
		isValidate = false;
	}
	
	/* TELEFON KOMÓRKOWY */
	
	elem = $("#kwestionariusz input[name=telefon_komorkowy]");
	if (/^[0-9]{9}$/.test(elem.val()) == false)
	{
		addError('telefon_komorkowy', 'Numer komórkowy ma mieć dokładnie 9 cyfr.');
		isValidate = false;
	}
	
	/* TELEFON */
	
	elem = $("#kwestionariusz input[name=telefon]");
	if (/^[0-9]{0,10}$/.test(elem.val()) == false)
	{
		addError('telefon', 'Numer telefonu ma mieć od 0 do 10 cyfr.');
		isValidate = false;
	}
	
	/* EMPTY FIELDS */
	
	elem = $("#kwestionariusz *[name=jezyk_angielski]");
	if (elem.val() == 0)
	{
		addError('angielski', 'Wybierz poziom znajomości języka');
		isValidate = false;
	}
	
	elem = $("#kwestionariusz *[name=jezyk_niemiecki]");
	if (elem.val() == 0)
	{
		addError('niemiecki', 'Wybierz poziom znajomości języka');
		isValidate = false;
	}
	
	elem = $("#kwestionariusz *[name=jezyk_inny]");
	var isOtherLanguage = (elem.val() != '');	
	elem = $("#kwestionariusz *[name=jezyk_inny_poziom]");	
	if (isOtherLanguage && elem.val() == '0')
	{
		addError('inny_poziom', 'Wybierz poziom znajomości języka');
		isValidate = false;
	}
	
	elem = $("#kwestionariusz *[name=skad_sie_dowiedziales]");	
	if (elem.val() == '0')
	{
		addError('dowiedziales', 'Wybierz jedną z opcji');
		isValidate = false;
	}
	
	
	for (var i = 0; i < noEmpty.length; i++)
	{		
		elem = $("#kwestionariusz input[name=" + noEmpty[i] + "]");				
		if (elem.val() == '')
		{
			addError(noEmpty[i], 'Wypełnij to pole');
			isValidate = false;									
		}
	}
	
	elem = $("#kwestionariusz input[name=zgoda]");	
	
	if (!elem.attr('checked'))
	{
		addError('zgoda', 'Musisz zaznaczyć to pole');
		isValidate = false;
	}

	
	// zgoda
	// dodatkowe_informacje
	// doswiadczenie
	// skad_sie_dowiedziales
	
	if (!isValidate)
	{
		alert('Formularz zawiera błędy. Popraw je, a następnie spróbuj wysłać formularz ponownie.');		
	}
	
	return isValidate;
}

function postcodeFormat() {
	postcode = $("#kwestionariusz input[name=kod_pocztowy]");
	
	postcode.keypress(function(e) {
		
		
		var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;

		// if a number was not pressed
		if (key < 48 || key > 57) {
			// check for other keys that have special purposes
			if (key == 8 /* backspace */|| key == 9 /* tab */|| key == 13 /* enter */
					|| key == 35 /* end */|| key == 36 /* home */
					|| key == 37 /* left */|| key == 39 /* right */
					|| key == 46 /* del */
			) {
				allow = true;
			} else {
				allow = false;
			}
		} else {
			if(postcode.val().length == 2)
			{
				postcode.val(postcode.val() + '-');
			}
			
			if(postcode.val().length < 6)
			{
				postcode.val(postcode.val() + (key - 48));
			}
			
			allow = false;
		}
		
		return allow;
	});
	
}

