// funkcja dezaktywujaca na dzien dobry pola dotyczace platnika
function f_disable() {
    document.getElementById('platnik_nazwa').disabled=true;
    document.getElementById('platnik_nip').disabled=true;
    document.getElementById('platnik_adres').disabled=true;
    document.getElementById('pokoj').disabled=true;
}

// funkcja aktywujaca pola dotyczace platnika po kliknieciu
// checkboxa ze klient chce rachunek i dezaktywujaca te pola
// kiedy klient odhaczy checkboxa
function f_rachunek() {
    (document.getElementById('platnik_nazwa').disabled)=!(document.getElementById('platnik_nazwa').disabled);
    (document.getElementById('platnik_nip').disabled)=!(document.getElementById('platnik_nip').disabled);
    (document.getElementById('platnik_adres').disabled)=!(document.getElementById('platnik_adres').disabled);
}

// funkcja aktywujaca pole dotyczace pokoju jednoosobowego po kliknieciu
// checkboxa ze klient chce zarezerwowac pokoj i disabledujaca go
// kiedy klient odhaczy checkboxa
function f_pokoj() {
    (document.getElementById('pokoj').disabled)=!(document.getElementById('pokoj').disabled);
}

// funkcja sprawdzajaca poprawnosc podanego adresu email
function is_valid_email(email) {
    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email)) {
        return true;
    }
}

// funkcja sprawdzajaca poprawnosc podanego PESELa
function is_valid_pesel(pesel) {
    var crc=0; // inicjacja sumy kontrolnej

    // niepoprawna dlugosc PESELa
    if(pesel.length!=11) return false;

    // obliczamy sume kontrolna
    crc=10-(parseInt(pesel.charAt(0))+
	    parseInt(pesel.charAt(1)*3)+
	    parseInt(pesel.charAt(2)*7)+
	    parseInt(pesel.charAt(3)*9)+
	    parseInt(pesel.charAt(4))+
	    parseInt(pesel.charAt(5)*3)+
	    parseInt(pesel.charAt(6)*7)+
	    parseInt(pesel.charAt(7)*9)+
	    parseInt(pesel.charAt(8))+
	    parseInt(pesel.charAt(9)*3)) % 10;

    // przypadek szczegolny: jesli suma kontrolna=0 => cyfra kontrolna=10
    // a cyfra kontrolna nie moze byc dwucyfrowa...
    if(crc==10) crc=0;

    // jesli cyfra kontrolna nie zgadza sie z suma kontrolna
    if(crc!=pesel.charAt(10)) return false;

    return true;
}

// funkcja pobierajace dane z PESELa i wypelniajaca pola
// data urodzenia i plec
function get_data_pesel(pesel) {
    // sprawdzamy poprawnosc PESELa
    if(!is_valid_pesel(pesel)) return;
    
    // wyciagamy z PESELa miesiac urodzenia
    miesiac=parseInt(pesel.charAt(2))*10+parseInt(pesel.charAt(3));
    document.getElementById('data_m').value=miesiac;

    // wyciagamy z PESELa rok
    rok=1900; // domyslna wartosc
    if((miesiac>20) && (miesiac<33)) rok=2000;
    if((miesiac>80) && (miesiac<93)) rok=1800;
    rok+=parseInt(pesel.charAt(0)*10)+parseInt(pesel.charAt(1));
    document.getElementById('data_r').value=rok;

    // wyciagamy dzien
    dzien=parseInt(pesel.charAt(4)*10)+parseInt(pesel.charAt(5));
    document.getElementById('data_d').value=dzien;

    // wyciagamy plec
    plec=!(parseInt(pesel.charAt(9)) % 2);
    (plec) ?
	document.getElementById('kobieta').checked=true :
	document.getElementById('mezczyzna').checked=true;
}

// funkcja sprawdzajaca, czy wszystkie wymagane pola formularza sa wypelnione
// i czy sa wypelnione poprawnie
function validate_form(form) {
    var message='';
    var data=new Date();
    var rok_aktualny=data.getFullYear();

    if(form.nazwisko.value=='') message+=("\n* Podaj nazwisko");
	else if(form.nazwisko.value.length<3) message+=("\n* Nazwisko jest za krótkie");
    if(form.imie.value=='') message+=("\n* Podaj imię");
	else if(form.imie.value.length<3) message+=("\n* Imię jest za krótkie");

    if((form.pesel.value!='') && (!is_valid_pesel(form.pesel.value))) message+=("\n* Popraw PESEL");
    
    if(form.data_r.value=='') message+=("\n* Podaj rok urodzenia");
	else if((form.data_r.value<1850) || (form.data_r.value>rok_aktualny)) message+=("\n* Poraw rok w dacie urodzenia");

    if(form.data_m.value=='') message+=("\n* Podaj miesiąc urodzenia");
	else if((form.data_m.value<1) || (form.data_m.value>12)) message+=("\n* Poraw miesiąc w dacie urodzenia");

    if(form.data_d.value=='') message+=("\n* Podaj dzień urodzenia");
	else if((form.data_d.value<1) || (form.data_d.value>31)) message+=("\n* Poraw dzień w dacie urodzenia");

    if(form.nr_domu.value=='') message+=("\n* Podaj numeru domu");
    if(form.miejscowosc.value=='') message+=("\n* Podaj nazwę miejscowości");
    if(form.kraj.value=='') message+=("\n* Podaj nazwę kraju");

    if(form.email.value=='') message+=("\n* Podaj adres email");
	else if(!is_valid_email(form.email.value)) message+=("\n* Podaj poprawny adres email");
	
    if(form.specjalizacja.value=="0") message+=("\n* Podaj specjalizację");

    if(!form.zgoda.checked) message+=("\n* Nie wyrażono zgody na przetwarzanie danych osobowych");

    if(message!='') {
        alert("Popraw następujące błędy:\n" + message);
        return false;
    }
    return true;
}
