function validateFormOnSubmit(theForm) {
	
	var reason = "";
	var sekcja = "";
	var filtrOgolny = /^([a-zA-Z0-9_\.\-ęóąśłżźćńĘÓĄŚŁŻŹĆŃ]){1,}/;
	var filterEmail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;  //filtr maila
	var filterNumbersOnly =/^[+]?\d+$/; //filtr tylko numery
	//	Dane kontaktowe
	sekcja="Dane kontaktowe";
	reason += validate_form(theForm.k_nazwa,"Pole Imię i nazwisko nie zostało uzupełnione",sekcja,2,50,filtrOgolny,false);
	reason += validate_form(theForm.k_email,"Pole E-mail nie zostało uzupełnione",sekcja,2,50, filterEmail,true);
	reason += validate_form(theForm.k_telefon,"Pole Telefon nie zostało uzupełnione",sekcja,2,50,filterNumbersOnly,false);
	reason += validate_form(theForm.k_miasto,"Pole Miejscowość nie zostało uzupełnione",sekcja,2,50,filtrOgolny,false);
	reason += validate_form(theForm.k_kod1,"Pole Kod pocztowy nie zostało uzupełnione",sekcja,1,50,filterNumbersOnly,false);
	reason += validate_form(theForm.k_kod2,"Pole Kod pocztowy nie zostało uzupełnione",sekcja,2,50,filterNumbersOnly,false);
	reason += validate_form(theForm.k_ulica,"Pole Ulica nie zostało uzupełnione",sekcja,2,50,filtrOgolny,false);
	reason += validate_form(theForm.k_nr_domu,"Pole Nr. domu nie zostało uzupełnione",sekcja,0,50,filtrOgolny,false);

	function sprawdz_wartosci(theForm){

		rd_index = -1;
		thisform = document.wysylka;

		
		for(i=thisform.k_tn_firma.length-1; i > -1; i--) {if (thisform.k_tn_firma[i].checked) {rd_index = i; i = -1;}}
		if(rd_index==1){ //wybieram drugi radiobutton
			sekcja="Rodzaj rachunku";
			reason += validate_form(theForm.k_nip,"Pole NIP nie zostało uzupełnione",sekcja,2,50,filterNumbersOnly,false);//dodane jesli urzytkownik wybierze firme	
		}
		rd_index = -1;
		for(i=thisform.r_tn_rachunek.length-1; i > -1; i--) {if (thisform.r_tn_rachunek[i].checked) {rd_index = i; i = -1;}}
		if(rd_index==1){ //wybieram drugi radiobutton
		rd_index = -1;
		for(i=thisform.r_tn_rachunek_dane.length-1; i > -1; i--) {if (thisform.r_tn_rachunek_dane[i].checked) {rd_index = i; i = -1;}}
			if(rd_index==1){ //wybieram drugi radiobutton
				//	Rodzaj rachunku
				sekcja="Rodzaj rachunku";
				reason += validate_form(theForm.r_nazwa,"Pole Nazwa zamawiającego nie zostało uzupełnione",sekcja,2,50,filtrOgolny,false);
				reason += validate_form(theForm.r_miasto,"Pole Miejscowość nie zostało uzupełnione",sekcja,1,50,filtrOgolny,false);
				reason += validate_form(theForm.r_kod1,"Pole Kod pocztowy nie zostało uzupełnione",sekcja,1,50,filterNumbersOnly,false);
				reason += validate_form(theForm.r_kod2,"Pole Kod pocztowy nie zostało uzupełnione",sekcja,2,50,filterNumbersOnly,false);
				reason += validate_form(theForm.r_ulica,"Pole Ulica nie zostało uzupełnione",sekcja,2,50,filtrOgolny,false);
				reason += validate_form(theForm.r_nr_domu,"Pole Nr. domu nie zostało uzupełnione",sekcja,0,50,filtrOgolny,false);
				//reason += validate_form(theForm.r_nip,"Pole NIP nie zostało uzupełnione",sekcja,2,50,filterNumbersOnly,false);
			}
		}
		rd_index = -1;
		for(i=thisform.w_tn_adres.length-1; i > -1; i--) {if (thisform.w_tn_adres[i].checked) {rd_index = i; i = -1;}}
		if(rd_index==1){ //wybieram drugi radiobutton
			//	Adres wysyłki
			sekcja="Adres wysyłki";
			reason += validate_form(theForm.w_nazwa,"Pole Miejscowość nie zostało uzupełnione",sekcja,2,50,filtrOgolny,false);
			reason += validate_form(theForm.w_miasto,"Pole Miejscowość nie zostało uzupełnione",sekcja,2,50,filtrOgolny,false);
			reason += validate_form(theForm.w_kod1,"Pole Kod pocztowy nie zostało uzupełnione",sekcja,1,50,filterNumbersOnly,false);
			reason += validate_form(theForm.w_kod2,"Pole Kod pocztowy nie zostało uzupełnione",sekcja,2,50,filterNumbersOnly,false);
			reason += validate_form(theForm.w_ulica,"Pole Ulica nie zostało uzupełnione",sekcja,2,50,filtrOgolny,false);
			reason += validate_form(theForm.w_nr_domu,"Pole Nr. domu nie zostało uzupełnione",sekcja,1,50,filtrOgolny,false);
			//reason += validate_form(theForm.w_telefon,"Pole Tel. kontaktowy nie zostało uzupełnione",sekcja,2,50,filterNumbersOnly,false);
		}
		//return reason;
	}
	sprawdz_wartosci(theForm);

   if (reason != "") {
    alert("Niektóre pola wymagają poprawy:\n\n" + reason);
    return false;
	}
}

// function validate_form(pole, typBledu, wKtorejSekcji, minDlugosZnakow, maxDlugoscZnakow, wymaganeZnaki, czyEmail);
function validate_form(fld,errorType,gdzie,Min,Max,wymaganeZnaki,czyEmail){

    var error = "";

    if (fld.value.length == 0) {
        fld.style.background = '#fdffc4'; 
        error = errorType+" w sekcji: "+ gdzie+"\n";
    }else if(fld.value.length <= Min){
		  fld.style.background = '#fdffc4'; 
			error = errorType+" w sekcji: "+ gdzie+" powód: Zbyt mała ilość znaków\n";
	}else if(fld.value.length >= Max){
		  fld.style.background = '#fdffc4'; 
			error = errorType+" w sekcji: "+ gdzie+" powód: Zbyt duża ilość znaków\n";
	} else if (!wymaganeZnaki.test(fld.value)) {
		  fld.style.background = '#fdffc4';
		  if(czyEmail==false){
			error = errorType+" w sekcji: "+ gdzie+" powód: Nieprawidłowy format wprowadzananej danej, wymagane tylko cyfry(0-9)\n";
		  }else{
			error = errorType+" w sekcji: "+ gdzie+" powód: Nieprawidłowy format email\n";
		  }
	}else {
        fld.style.background = 'White';
    }
    return error;  
}