function Trim(s) {
	// Remove leading spaces and carriage returns
	while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r')) {
		s = s.substring(1,s.length);
	}
	while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r')) {
		s = s.substring(0,s.length-1);
	}
	return s;
}
function walid() {

	var status = true;			// Status się zmieni na false jeżeli wystšpiš błędy
	var statusWarn = true;		// Status się zmieni na false jeżeli wystšpiš błędy
	var warn = "";

	var ilePol = pole.length;	// ile pól do sprawdzenia
	var i = 0;					// ustawienie indeksu tablic na 0 (licznik pętli)	

	for ( i; i<ilePol; i++) {	// przelecenie wszystkich pól zadeklarowanych w tablice

		wartosc[i] = Trim(document.forms[0].elements[pole[i]].value);		// pobranie wartoci z pola

		switch(akcja[i]) 	// sprawdzanie jaki typ walidacji wykonać
		{
			case "czyNull":		// Czy pole jest puste
				if ( wartosc[i] == "" ) {
					warn = warn+etykieta[i]+":\tPole nie może być puste!\n";
					status = false;
					document.forms[0].elements[pole[i]].focus();
					document.forms[0].elements[pole[i]].select();
				}
				break;
			case "czyData":		// Czy data jest poprawna
				if ( wartosc[i] != "" ) {			// czy jest wpisana
					var kreski = "";
					kreski = kreski+wartosc[i].substring(4,5);
					kreski = kreski+wartosc[i].substring(7,8);
					
					if ( kreski == "--" ) {			// czy sš kreski w odpowiednich miejscach
						if ( wartosc[i].length == 10 ) {	// czy długoć stringu jest odpowiednia

							var rok = wartosc[i].substring(0,4);
							var miesiac = wartosc[i].substring(5,7);
							var dzien = wartosc[i].substring(8,10);

							if ( rok > 2999 || rok < 1699 ) {		// czy rok jest ok
								warn = warn+etykieta[i]+":\tSprawdź rok!\n";
								status = false;
								document.forms[0].elements[pole[i]].focus();
								document.forms[0].elements[pole[i]].select();
							}
							if ( miesiac > 12 || miesiac < 0 ) {	// czy miesiac jest ok
								warn = warn+etykieta[i]+":\tSprawdź miesišc!\n";
								status = false;
								document.forms[0].elements[pole[i]].focus();
								document.forms[0].elements[pole[i]].select();
							}
							if ( dzien > 31 || dzien < 0 ) {		// czy dzien jest ok
								warn = warn+etykieta[i]+":\tSprawdź dzień!\n";
								status = false;
								document.forms[0].elements[pole[i]].focus();
								document.forms[0].elements[pole[i]].select();
							}
						}
						else {
							warn = warn+etykieta[i]+":\tZły format daty!\n";		// jezeli kreski sš le
							status = false;
							document.forms[0].elements[pole[i]].focus();
							document.forms[0].elements[pole[i]].select();
						}
					}
					else {
							warn = warn+etykieta[i]+":\tZły format daty!\n";	// jeżeli długoć jest zła
							status = false;
							document.forms[0].elements[pole[i]].focus();
							document.forms[0].elements[pole[i]].select();
					}
				}
				break;
				
case "czyGodz":		// Czy data jest poprawna
				if ( wartosc[i] != "" ) {			// czy jest wpisana
					var dwukropki = "";
					dwukropki = dwukropki+wartosc[i].substring(2,3);
					//dwukropki = dwukropki+wartosc[i].substring(5,6);
					
					if ( dwukropki == ":" ) {			// czy sš kreski w odpowiednich miejscach
						if ( wartosc[i].length == 5 ) {	// czy długoć stringu jest odpowiednia

							var godzina = wartosc[i].substring(0,2);
							var minuta = wartosc[i].substring(3,5);
							var sekunda = wartosc[i].substring(6,8);

							if ( godzina > 25 || godzina < 0 ) {		// czy rok jest ok
								warn = warn+etykieta[i]+":\tSprawdź godzinę!\n";
								status = false;
								document.forms[0].elements[pole[i]].focus();
								document.forms[0].elements[pole[i]].select();
							}
							if ( minuta > 60 || minuta < 0 ) {	// czy miesiac jest ok
								warn = warn+etykieta[i]+":\tSprawdź minuty!\n";
								status = false;
								document.forms[0].elements[pole[i]].focus();
								document.forms[0].elements[pole[i]].select();
							}
						//	if ( sekunda > 60 || sekunda < 0 ) {		
						//		warn = warn+etykieta[i]+":\tSprawdź sekundy!\n";
						//		status = false;
						//		document.forms[0].elements[pole[i]].focus();
						//		document.forms[0].elements[pole[i]].select();
						//	}	
						}
						else {
							warn = warn+etykieta[i]+":\tZły format godziny! Wymagany GG:MM\n";		// jezeli kreski sš le
							status = false;
							document.forms[0].elements[pole[i]].focus();
							document.forms[0].elements[pole[i]].select();
						}
					}
					else {
							warn = warn+etykieta[i]+":\tZły format godziny! Wymagany GG:MM\n";	// jeżeli długoć jest zła
							status = false;
							document.forms[0].elements[pole[i]].focus();
							document.forms[0].elements[pole[i]].select();
					}
				}
				break;				
				
			case "czyLiczba":
				if ( isNaN(wartosc[i]) ) {
					warn = warn+etykieta[i]+":\tW polu mogą występować tylko liczby!\n";		// jezeli kreski sš le
					status = false;
					document.forms[0].elements[pole[i]].focus();
					document.forms[0].elements[pole[i]].select();
				}
				break;
			case "czyEmail":
				if ( wartosc[i] != "" ) {
					if ( wartosc[i].indexOf("@") == -1 || wartosc[i].indexOf(".") == -1 ) {
						warn = warn+etykieta[i]+":\tNie poprawny adres email!\n";		// jezeli kreski sš le
						status = false;
						document.forms[0].elements[pole[i]].focus();
						document.forms[0].elements[pole[i]].select();
					}
				}
				break;
			case "czyWykl":
				if ( wartosc[i] == wykluczone[i] ) {
					warn = warn+etykieta[i]+":\tNieprawidłowa wartość!\n";		// jezeli kreski sš le
					status = false;
				}
				break;
			case "czyWarn":				if ( wartosc[i] == "" ) {
					warn = warn+etykieta[i]+":\tPole nie powinno być puste!\n";
					statusWarn = false;
					document.forms[0].elements[pole[i]].focus();
					document.forms[0].elements[pole[i]].select();
				}
				break;
			case "spec01":
				if ( document.forms[0].elements['czy_potwierdzenie'].checked == true && document.forms[0].elements['data'].value == "" ) {
						warn = warn+"Data:\tPole nie może być puste!\n";						status = false;
				}
				break;
			case "spec02":
				if ( document.forms[0].elements['id_status'].selectedIndex == 0 && document.forms[0].elements['data_przypomnienie'].value == "" ) {
						warn = warn+"Data przypomnienia:\tPole nie może być puste!\n";						status = false;
				}
				break;
			case "spec03":
				if ( document.forms[0].elements['id_status'].selectedIndex == 1 && document.forms[0].elements['data_wykonanie'].value == "" ) {
						warn = warn+"Data wykonania:\tPole nie może być puste!\n";						status = false;
				}
				break;
			case "spec04":
				if ( document.forms[0].elements['czy_odsetki'].checked == true && document.forms[0].elements['id_dlugi'].selectedIndex == 0 ) {
						warn = warn+"Wybierz dokument!\n";						status = false;
				}
				break;
		}
	}

	if ( status == false )	{ 
		alert(warn); 
		return false; 
	} else if ( statusWarn == false ) {
		alert(warn);
		czy_true = confirm(warn +" Czy jesteś pewien, że chcesz zapisać dokument?");
		if ( czy_true ) { return true; } else { return false; }
	} else { 
		return true; 
	}
}
