var errCounter = 0;

function valShowError(fieldId, msg)
{
	$('#d_'+fieldId).addClass('err');
	$('#msg_'+fieldId).html(msg);
	$('#msg_'+fieldId).fadeIn('slow');
	errCounter ++;
}
function valHideError(fieldId)
{
	$('#d_'+fieldId).removeClass('err');
	$('#msg_'+fieldId).fadeOut('slow');
}

function validate1(fieldId, msg)
{
	if(!msg.length) {
		msg = "Pole wymagane";
	}
	
	var obj = document.getElementById(fieldId);

	if(!obj.value.length) {
		valShowError(fieldId, msg);
		return false;
	}

	valHideError(fieldId);
	return true;
}


function validate2(fieldId, msg, nullvalue)
{
	if(!msg.length) {
		msg = "Pole wymagane";
	}
	
	var obj = document.getElementById(fieldId);

	if(obj.value == nullvalue) {
		valShowError(fieldId, msg);
		return false;
	}

	valHideError(fieldId);
	return true;
}


function validate3(fieldId, msg)
{
	if(!msg.length) {
		msg = "Zaznaczenie tego pola jest wymagane";
	}
	
	var obj = document.getElementById(fieldId);
	
	if(!obj.checked) {
		valShowError(fieldId, msg);
		return false;
	}
	
	valHideError(fieldId);
	return true;
}


function validatePESEL(fieldId, excId)
{
	if(excId == null) {
		excId = 0;
	}

	var obj = document.getElementById(fieldId);
	
	if(!obj.value.length) {
		valShowError(fieldId, 'Pole wymagane');
		return false;
	}
	else if(obj.value.length != 11) {
		valShowError(fieldId, 'Nieprawidłowy format');
		return false;
	}
	
	
	// spr. formatu pesel
	$.get("/_val_pesel.php?exc_id="+excId+"&pesel="+obj.value, 0, function(data, status) {
		peselOK = false;
		
		if(data == "1") {
			valHideError(fieldId);
			peselOK = true;
			return true;
		}
		else if(data == "0") {
			valShowError(fieldId, 'Nieprawidłowy format');
			return false;
		}
		else if(data == "-1") {
			valShowError(fieldId, 'PESEL już istnieje');
			return false;
		}
	});	
}


function validateEmail(fieldId, excId)
{
	if(excId == null) {
		excId = 0;
	}
	
	var obj = document.getElementById(fieldId);
	
	if(!obj.value.length) {
		valShowError(fieldId, 'Pole wymagane');
		return false;
	}
	else if(obj.value.length < 6) {
		valShowError(fieldId, 'Nieprawidłowy format');
		return false;
	}
	
	
	// spr. formatu 
	$.get("/_val_email.php?exc_id="+excId+"&email="+obj.value, 0, function(data, status) {
		emailOK = false;
		
		if(data == "1") {
			valHideError(fieldId);
			emailOK = true;
			return true;
		}
		else if(data == "0") {
			valShowError(fieldId, 'Nieprawidłowy format');
			return false;
		}
		else if(data == "-1") {
			valShowError(fieldId, 'E-mail już istnieje');
			return false;
		}
	});	
}

function validateEmail2(fieldId1, fieldId2)
{
	var obj1 = document.getElementById(fieldId1);
	var obj2 = document.getElementById(fieldId2);
	
	if(!obj2.value.length) {
		valShowError(fieldId2, 'Pole wymagane');
		return false;
	}
	else if(obj1.value != obj2.value) {
		valShowError(fieldId2, 'Błedny adres e-mail');
		return false;
	}
	else {
		valHideError(fieldId2);
		return true;
	}
}


var saving = false;

function formSave()
{
	if(saving) {
		return false;
	}
	
	
	errCounter = 0;
	
	// dane
	validate1('nazwisko', '');
	validate1('imie', '');
	validate2('plec', '', '');
	if(!peselOK) {
		validatePESEL('pesel');
	}
	validate1('miejsce_urodzenia', '');
	validate2('wyksztalcenie', '', '');

	// adres zamieszkania i dane kontaktowe
	var isMalopolskie = (document.getElementById('zam_wojewodztwo').value == 6);
	if(!emailOK) {
		validateEmail('email');
		validateEmail2('email', 'email2');
	}
	validate2('zam_wojewodztwo', '', 0);
	if(!zamZipOK) {
		validateZIP('zam_kod', 'zam_kod1', 'zam_kod2', isMalopolskie);
	}
	validate1('zam_ulica', '');
	validate1('zam_nr_domu', '');
	validate2('zam_miejsce_zamieszkania', '', 0);
	validate1('tel', '');
	validate1('tel_kom', '');
	if(isMalopolskie) {
		validate2('zam_powiat', '', 0);
	}
	else {
		try {
			validate1('zam_powiat', '');
			validate1('zam_poczta', '');
			validate1('zam_miejscowosc', '');
		} catch(e) {
			
		}
	}
	
	
	// dane pracodawcy
	validate2('przedmiot_nauczania', '', 0);
	validate2('okres_zatrudnienia', '', '');
	validate2('typ_placowki', '', '');
	
	// pracodawca - nazwa + adres
	validate2('adres_pracodawcy_gmina', '', 0);
	validate1('nazwa_pracodawcy', '');
	validate1('adres_pracodawcy', '');
	validate1('adres_pracodawcy_miejscowosc', '');
	validateZIP('adres_pracodawcy_kod', 'adres_pracodawcy_kod1', 'adres_pracodawcy_kod2', 0);
	validate1('adres_pracodawcy_poczta', '');


	
	// termin
	var termin = -1;
	for(var i=0; i<7; i++) {
		if(document.getElementById('termin'+i).checked) {
			termin = document.getElementById('termin'+i).value;
		}
	}
	if(termin == -1) {
		valShowError('termin', 'Proszę wybrać termin');
	}
	else {
		valHideError('termin');
	}

	
	// zgoda+oswiadczenie
	validate3('oswiadczenie', 'Aby się zarejestrować musisz zaakceptować oświadczenie');
	validate3('zgoda', 'Aby się zarejestrować musisz wyrazić zgodę na przetwarzanie danych osobowych przez WUP/MOS');

	
	if(!peselOK || !emailOK || !zamZipOK) {
		return false;
	}
	else if(errCounter) {
		return false;
	}


	saving = true;
	
	$.post("reg.php", $("#regform").serialize(), function() {
		location.href='ok.php';
	});			

	return false;
}



var peselOK = false;
var emailOK = false;
var zamZipOK = false;


function validateZIP(fieldId, z1, z2, checkWithDB)
{
	if(checkWithDB == null) {
		checkWithDB = 0;
	}	
	
	var v1 = document.getElementById(z1).value;
	var v2 = document.getElementById(z2).value;
	
	if(v1.length != 2 || v2.length != 3) {
		if(fieldId == 'zam_kod' && document.getElementById('zam_wojewodztwo').value==6) {
			document.getElementById('h_zam_miejscowosc').innerHTML = '';
			zamZipOK = false;
		}
		else {
			//document.getElementById('adres_pracodawcy_miejscowosc').innerHTML = '';
		}
		valShowError(fieldId, 'Pole wymagane');
		return false;
	}
	
	
	if(!checkWithDB) {
		valHideError(fieldId);
		if(fieldId == 'zam_kod') {
			zamZipOK = true;
		}
		return true;
	}
	
	
	// check with db
	var z = v1+'-'+v2;
	$.get("/_val_zip.php",{ zip: z, field: fieldId } , function(data) {
		if(data == 'err') {
			if(fieldId == 'zam_kod') {
				document.getElementById('h_zam_miejscowosc').innerHTML = '';
				zamZipOK = false;
			}
			else {
				//document.getElementById('adres_pracodawcy_miejscowosc').innerHTML = '';
			}
			valShowError(fieldId, 'Podany kod nie istnieje');
			return false;
		}
		else {
			valHideError(fieldId);
			if(fieldId == 'zam_kod') {
				document.getElementById('h_zam_miejscowosc').innerHTML = data;
				zamZipOK = true;
			}
			else {
				//document.getElementById('adres_pracodawcy_miejscowosc').innerHTML = data;
			}
			return true;
		}
	});			
	
}

function zamWojChange(obj)
{
	if(obj.value == 6) {  // malopolskie
		document.getElementById('h_zam_powiat').innerHTML = htmlPowiat;
		document.getElementById('h_zam_miejscowosc').innerHTML = '';
		document.getElementById('h_zam_poczta').innerHTML = '';
	}
	else {
		document.getElementById('h_zam_powiat').innerHTML = '<input name="zam_powiat" id="zam_powiat" type="text" maxlength="50" class="i1" onblur="validate1(\'zam_powiat\', \'\');" />';
		document.getElementById('h_zam_miejscowosc').innerHTML = '<input name="zam_miejscowosc" id="zam_miejscowosc" type="text" maxlength="50" class="i1" onblur="validate1(\'zam_miejscowosc\', \'\')"/>';
		document.getElementById('h_zam_poczta').innerHTML = '<input name="zam_poczta" id="zam_poczta" type="text" maxlength="50" class="i1" onblur="validate1(\'zam_poczta\', \'\')"/>';
	}

	valHideError('zam_miejscowosc');
	valHideError('zam_poczta');
	validateZIP('zam_kod', 'zam_kod1', 'zam_kod2', document.getElementById('zam_wojewodztwo').value==6);
}


function pracodawcaAC(obj)
{
	var v = obj.value;
	if(v.length < 3) {
		return;
	}
	
	var gminaID = document.getElementById('adres_pracodawcy_gmina').value;
	
	
	$.get("/_pracodawca.php",{ gmina: gminaID, text: v } , function(data) {
		
		alert(data);
		
	});			
	
	
	
}