        /* GŁÓWNA FUNKCJA SPRAWDZAJĄCA WYPEŁNIENIE PÓL ZNAKAMI */
        /* sprawdzanie czy zostały wypełnione wymagane pola na formularzu */
        
        var email_chk = 0;
        var postcode_chk = 0;
        var phone_chk = 0;
        var phone_chk2 = 0;
        var fax_chk = 0;
		/* sprawdzam, czy podany ciąg znaków tzn znak jest cyfrą */
		function IsNumeric(sText)
		{
			var expression = new RegExp("[0-9]{1}");
            if(expression.test(sText))
            {
                return true;
            }
            else
            {
                return false;
            }
		}
				
        var validation = null;
        var validation_counter = null;  // jeżeli inny niż 0 tzn że pole nie zostało wypełnione
        var fields = null;           // tablica pól nie wypełnionych lub blędnie wypełnionych w formularzu
        
        
        function userRegValidation()
        {
            /* czyszczę tablicę i zmienne ze zbędnych smieci */
            validation_counter = 0;
            validation = null;
            validation  = new Array(4);   
            
             /* dane rejestrowanego użytkownika */
            var js_nickname     = document.portal.nickname.value;
            var js_email        = document.portal.email.value;
            var js_name         = document.portal.name.value;
            var js_surname      = document.portal.surname.value;
            
            /* validacja */
            if(!js_nickname)
            {
               validation[0] = "Prosimy o wypelnienie pola NICKNAME";  
               validation_counter++;            
            } 
            if(!js_email)
            {
               validation[1] = "Prosimy o wypelnienie pola EMAIL";  
               validation_counter++;           
            }
            if(!emailValidation2(js_email))
            {
               validation[1] = "Wprowadziłeś niepoprawny adres email";  
               validation_counter++;  
            }
            if(!js_name)
            {
               validation[2] = "Prosimy o wypelnienie pola IMIĘ";  
               validation_counter++;            
            }
            if(!js_surname)
            {
               validation[3] = "Prosimy o wypelnienie pola NAZWISKO";  
               validation_counter++;            
            }
            
            /* warunek walidacji wypełnienia pól wartościami */
            if(validation_counter == 0)
            {
                document.portal.submit();
            }
            else
            {
                var div = document.getElementById("errors_usr");    // należy na stronie HTML stworzyć warstwę id="errors"
                    div.style.backgroundColor="silver";
                    div.style.font.color = "yellow";
                    div.height = 500;
                    div.width = 200;
                 /* inicjalizacja tablicy pól nie wypelnionych w formularzu*/    
                fields = new Array(validation.length);    
                // wyjeb komunikat o wypełnieniu brakujących danych
                for(var i = 0 ; i <= validation.length; i++)
                {
                    /* wyświetlam informacje na warstwie gdzieś na stronie, tylko nie wypełnione pola danymi */
                    if(validation[i])
                    {
                        //var v = document.createTextNode(i+" - >" +validation[i] + "\n");
                        fields[i] = validation[i] + "<br />";
                        
                        //div.appendChild(v);
                    } 
                    //document.getElementById("errors").innerHTML = v; 
                    div = document.getElementById("errors_usr").innerHTML = "<b>Nie wypełnileś¶ wymaganych pól:</b> <br />" +fields;                   
                }     
            }
            
        }
        
        
        function allFieldsValidation()
        {
            /* czyszczę tablicę i zmienne ze zbędnych smieci */
            validation_counter = 0;
            validation = null;
            validation  = new Array(20);    
            /* dane teleadresowe */
            var js_object_name  = document.portal.object_name.value;
            //var js_object_type  = document.portal.object_type.value;
            //var js_region       = document.portal.region .value;
            //var js_area         = document.portal.area.value;
            var js_postcode     = document.portal.postcode.value;
            var js_city         = document.portal.city.value;
            var js_street       = document.portal.street.value;
            var js_house_nr     = document.portal.house_nr.value;
            var js_phone1       = document.portal.phone1.value;
            var js_phone2       = document.portal.phone2.value;
            var js_fax          = document.portal.fax.value;
            var js_email        = document.portal.email.value;
            var js_website      = document.portal.website.value;
            
           
            
            
            /* dodatkowe informacje */
            var js_price_from   = document.portal.price_from.value;
            var js_price_to     = document.portal.price_to.value;
            var js_places       = document.portal.night.value;     
            /* Sprawdzanie czy pola zostały wypelnione przez użytkownika */
            if(!js_object_name)
            {
               validation[0] = "nie wypełniona nazwa obiektu";  
               validation_counter++;            
            } 
            /*
            if(!js_object_type)
            {
               validation[1] = "nie wypełniona typ obiektu";
               validation_counter++;        
            } 
            
            if(!js_region)
            {
               validation[2] = "nie wypełniona region";    
               validation_counter++;    
            }
             
            if(!js_area)
            {
               validation[3] = "nie wypełnione województwo";
               validation_counter++;        
            }
            */    
            if(!js_postcode)
            {
               validation[1] = "nie wypełniona kod pocztowy"; 
               validation_counter++;     
            } 
            if(!js_city)
            {
               validation[2] = "nie wypełniona miasto";     
               validation_counter++;   
            } 
            if(!js_street)
            {
               validation[3] = "nie wypełniona ulica";      
               validation_counter++;
            }       
            if(!js_house_nr)
            {
                validation[4] = "nie wypełniona numer domu/lokalu"; 
                validation_counter++;       
            } 
            if(!js_phone1)
            {
               validation[5] = "nie wypełniona telefon";      
               validation_counter++;
            } 
            if(!js_phone2)
            {
               validation[6] = "nie wypełniona telefon dodatkowy";    
               validation_counter++;    
            } 
            if(!js_fax)
            {
               validation[7] = "nie wypełniona fax";      
               validation_counter++; 
            } 
           
            if(!js_website)
            {
               validation[9] = "nie wypełniona strona intenretowa";  
               validation_counter++;     
            } 
            if(!js_price_from)
            {
               validation[10] = "nie wypełniona cena za osobę od";       
               validation_counter++; 
            } 
            if(!js_price_to)
            {
               validation[11] = "nie wypełniona cena za osobę do";       
               validation_counter++;
            }
            if(!js_places)
            {
               validation[12] = "nie wypełniona liczba miejsc";  
               validation_counter++;     
            }    
            if(!js_email)
            {
               validation[8] = "nie wypełniona email";     
               validation_counter++;   
            } 
           
            /* jeżeli wymagane pola zostały wypełnione to sprawdzaj wartości w tych polach*/
            if(validation_counter == 0)
            {
                
                document.portal.submit();
                return true;
                
                var val = 0;
                /* sprawdzaj adres email */
                if(!emailValidation2(js_email))
                {
                   validation[1] = "Wprowadziłeś niepoprawny adres email";  
                   val++;  
                }
                if(!postcodeValidate())
                {
                   validation[2] = "Wprowadziłeś niepoprawny kod pocztowy";  
                   val++;
                }
                if(!objectNameValidation())
                {
                   validation[3] = "Zła ilośc znaków w nazwie obiektu. Maksymalna ilość to mniej niż 25.";  
                   val++; 
                }
                if(val == 0)
                {
                    document.portal.submit();
                    return true;
                }
                else
                {
                    var div = document.getElementById("errors");    // należy na stronie HTML stworzyć warstwę id="errors"
                    div.style.backgroundColor="brown";
                    div.style.font.color = "yellow";
                    div.height = 500;
                    div.width = 500;
                    /* inicjalizacja tablicy pól nie wypelnionych w formularzu*/    
                    fields = new Array(validation.length);    
                    // wyjeb komunikat o wypełnieniu brakujących danych
                    for(var i = 0 ; i <= validation.length; i++)
                    {
                        /* wyświetlam informacje na warstwie gdzieś na stronie, tylko nie wypełnione pola danymi */
                        if(validation[i])
                        {
                            //var v = document.createTextNode(i+" - >" +validation[i] + "\n");
                            fields[i] = validation[i] + "<br />";
                            
                            //div.appendChild(v);
                        } 
                        //document.getElementById("errors").innerHTML = v; 
                        div = document.getElementById("errors").innerHTML = "NIE UZUPEŁNIŁEŚ PÓL WYMAGANYCH: <br />" +fields;                   
                    } 
                    return false;   
                }
               
            }
            /* jeżeli nie wypełnileś wszystkich pól , wywal kominikaty */
            else
            {
                var div = document.getElementById("errors");    // należy na stronie HTML stworzyć warstwę id="errors"
                    div.style.backgroundColor="brown";
                    div.style.font.color = "yellow";
                    div.height = 500;
                    div.width = 500;
                /* inicjalizacja tablicy pól nie wypelnionych w formularzu*/    
                fields = new Array(validation.length);    
                // wyjeb komunikat o wypełnieniu brakujących danych
                for(var i = 0 ; i <= validation.length; i++)
                {
                    /* wyświetlam informacje na warstwie gdzieś na stronie, tylko nie wypełnione pola danymi */
                    if(validation[i])
                    {
                        //var v = document.createTextNode(i+" - >" +validation[i] + "\n");
                        fields[i] = validation[i] + "<br />";
                        
                        //div.appendChild(v);
                    } 
                    //document.getElementById("errors").innerHTML = v; 
                    div = document.getElementById("errors").innerHTML = "NIE UZUPEŁNIŁEŚ PÓL WYMAGANYCH: <br />" +fields;                   
                } 
                return false;                
            }   
        }
 
        var alfphabet = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","r","s","t","q",
                                 "w","x","y","z");
        var message = null;      
        var email_message = null;   
        var postcode_message = null;   
        var password_message = null; 
        var phone1_message = null;
        var phone2_message = null;
        var fax_message = null;  
        /* validacja adresu email */
        var at_count;
        function emailValidation()
        {
            /* sprawdzam czy pola zostały wogóle wypełnione */
            if(validation_counter == 0)
            {
                email_chk = 0;
                email_message = null;
                at_count = 0;
                var email = document.portal.email.value;
                var length = email.length; 
                for(var i=0;i<=length;i++) // znak po znaku 
                {      
                    if(email[0]=="@")
                    {
                      email_chk = 0;  
                      email_message = "znak AT na początku adresu email";
                      alert(email_message);
                      break;
                    } 
                    if(email[length-1]=="@")
                    {
                      email_chk = 0;  
                      email_message = "znak AT na końcu adresu email";
                      alert(email_message);
                      break;
                    }             
                    if(email[i] == "@" && email[i+1] == ".")    
                    {      
                      email_chk = 0;  
                      email_message = "wstawiony znak . lub - przed lub po znaku AT";
                      alert(email_message);
                      break;
                    }  
                    if(email[i] == "@" && email[i+1] == "-")    
                    {  
                      email_chk = 0;  
                      email_message = "wstawiony znak . lub - przed lub po znaku AT";
                      alert(email_message);
                      break;
                    }              
                    if(email[i] == "@")       // jeżeli znajdę znak AT
                    {                
                       at_count+=at_count+1;                
                    }  
                    if(at_count>1) 
                    {                  
                       email_chk = 0;
                       email_message = "adres email zawiera za dużo znaków AT";
                       alert(email_message);
                       break;
                    }
                    if(i == length-1) 
                    { 
                      /* adres emial jest wporządku */
                      email_chk = 1;                     
                      //email_message = "adres email OK";
                      //alert(email_message);
                    }   
                }
            }
        }
        
        /* walidacja emaila */
        function emailValidation2(email)
        {
         var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
         if (!filter.test(email)) 
         {
            email.focus;
            return false;
         }
         else
         {
            return true;
         }
         
        }
        
        /* walidacja kodu pocztowego */
        function postcodeValidate()
        {        
               postcode_chk = 0;    
               postcode_message = null; 
               var postcode = document.portal.postcode.value;
               var tmp = postcode.length; 
               if(tmp <= 6) // sprawdzenie długości kodu pocztowego
               {
                   var template = /[0-9]{2}-[0-9]{3}/g;
                   var a = postcode.match(template);         
                   if(a)
                   {
                        postcode_chk = 1;     
                        postcode_message = "podany kod pocztowy zgadza się";    
                        return true;
                   }
                   else
                   {
                        postcode_chk = 0;     
                        postcode_message = "podany kod pocztowy nie zgadza się";
                        var v = document.getElementById("errors").innerHTML = postcode_message;   
                        return false;
                   }
               }
               else
               {
                    postcode_message = "ilość znaków kodu pocztowego nie jest poprawna";
                    return false;
               }
        }       
        /* sprawdzanie długości wprowadzanego hasła */
        function validatePassword()
        {  
           /* sprawdzam czy pola zostały wogóle wypełnione */
           if(validation_counter == 0)
           {
                password_message = null;      
                var passw1 = document.portal.passwd1.value;
                var tmp = passw1.length;
                if(tmp <= 12)
                {
                    password_message = "ilość znaków hasla jest poprawna";
                    alert(password_message);
                }
                else
                {
                    password_message = "ilość znaków hasla nie jest poprawna";
                    alert(password_message);
                }
           } 
        }    
        /*porównywanie hasła 1 oraz powtórzonego */
        function comparePasswords(passwd1,passwd2)
        {   
             /* sprawdzam czy pola zostały wogóle wypełnione */
            if(validation_counter == 0)
            {    
                var passw1 = document.portal.passwd1.value;
                var passw2 = document.portal.passwd2.value;
                var tmp1 = passw1.length;
                var tmp2 = passw2.length;
                if(tmp1 == tmp2)  // sprawdzam długość ciągów
                {
                    for(i=0;i<=tmp1;i++)
                        for(j=0;j<=tmp2;j++)
                        {
                            if(passw1[i] == passw2[j])  // sprawdzam czy znaki są takie same
                            {
                                return true;
                            }
                            else
                            {
                                return false;
                            }
                        }     
                }
                else
                {
                    return false;
                }
            }      
        }
        /* sprawdzanie numeru głównego telefonu */
        function phoneValidate1()
        {   
			//alert("początek walidacji");
           /* sprawdzam czy pola zostały wogóle wypełnione */
           //if(validation_counter == 0)
           //{     
               phone_chk = 0; 
               var phon = document.portal.phone1.value;
			   for(i=0;i<=phon.length;i++)
               {				
                    for(j=0;j<=9;j++)
                    {
						// sprawdza czy ma numer kierunkowy i niepusta wartość tego numeru oraz czy liczba
                        if(phon[0]=="+" && (phon[1]!="" && phon[2]!="") && (IsNumeric(phon[1]) && IsNumeric(phon[2])))    
                        {
							// sprawdzam czy sotał podany telefon w cyfrach
							for(iter=3;iter<=6;iter++)
							{
								if(IsNumeric(phon[iter]))
                                {
    								phone_chk = 1;
    								alert("jest ok");
    								return true;
                                }
                                else
                                {
                                    phone_chk = 0;
                                    phone1_message = "podany numer telefonu głównego jest błędny";
                                    var v = document.getElementById("errors").innerHTML = phone1_message;   
                                    validation[0] = "źle podany numer telefonu głównego";
                                    alert("litery");
                                }
							}
                            
                        }
                        else
                        {
							alert("FALSE");
                            return false;
                        }
                    }
               }
           //}
        }    
         /* sprawdzanie numeru dodatkowego telefonu */
        function phoneValidate2()
        {   
			//alert("początek walidacji");
           /* sprawdzam czy pola zostały wogóle wypełnione */
           //if(validation_counter == 0)
           //{     
               phone_chk = 0; 
               var phon = document.portal.phone2.value;
			   for(i=0;i<=phon.length;i++)
               {				
                    for(j=0;j<=9;j++)
                    {
						// sprawdza czy ma numer kierunkowy i niepusta wartość tego numeru oraz czy liczba
                        if(phon[0]=="+" && (phon[1]!="" && phon[2]!="") && (IsNumeric(phon[1]) && IsNumeric(phon[2])))    
                        {
							// sprawdzam czy sotał podany telefon w cyfrach
							for(iter=3;iter<=6;iter++)
							{
								if(IsNumeric(phon[iter]))
                                {
    								phone_chk2 = 1;
    								alert("jest ok");
    								return true;
                                }
                                else
                                {
                                    phone_chk2 = 0;
                                    phone2_message = "podany numer telefonu dodatkowego jest błędny";
                                    var v = document.getElementById("errors").innerHTML = phone2_message;   
                                    validation[0] = "źle podany numer telefonu dodatkowego";
                                    alert("litery");
                                }
							}
                            
                        }
                        else
                        {
							alert("FALSE");
                            return false;
                        }
                    }
               }
           //}
        }    
        function faxValidate()
        {   
			alert("początek walidacji");
           /* sprawdzam czy pola zostały wogóle wypełnione */
           //if(validation_counter == 0)
           //{     
               phone_chk = 0; 
               var phon = document.portal.fax.value;
			   for(i=0;i<=phon.length;i++)
               {				
                    for(j=0;j<=9;j++)
                    {
						// sprawdza czy ma numer kierunkowy i niepusta wartość tego numeru oraz czy liczba
                        if(phon[0]=="+" && (phon[1]!="" && phon[2]!="") && (IsNumeric(phon[1]) && IsNumeric(phon[2])))    
                        {
							// sprawdzam czy sotał podany telefon w cyfrach
							for(iter=3;iter<=6;iter++)
							{
								if(IsNumeric(phon[iter]))
                                {
    								fax_chk = 1;
    								alert("jest ok");
    								return true;
                                }
                                else
                                {
                                    fax_chk = 0;
                                    fax_message = "podany numer fax jest błędny";
                                    var v = document.getElementById("errors").innerHTML = fax_message;
                                    validation[0] = "źle podany numer fax";
                                    alert("litery");
                                }
							}
                            
                        }
                        else
                        {
							alert("FALSE");
                            return false;
                        }
                    }
               }
        }    
        function objectNameValidation()
        {
            if(js_object_name.length < 25)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        /* funkcja w zasadzie to interfejs zawierający funkcje walidacji */
        function validationInterface()
        {
            emailValidation();
            if(email_message == " ")
            {
                var div = document.getElementById("errors");
                div.style.backgroundColor="black";
                div.style.font.color =  "yellow";
            }
            postcodeValidate();
            validatePassword();
            
        }  
