    
 var emptyString = /^\s*$/ ;  
 var global_valfield;	
 
     function trim(str)
	{
  		return str.replace(/^\s+|\s+$/g, '');
	}

	function setFocusDelayed()
	{
		global_valfield.focus();
	}

	function setfocus(valfield)
	{
  		global_valfield = valfield;
  		setTimeout( 'setFocusDelayed()', 100 );
	}
      
    function setVisibility(objId, sVisibility) 
    {

        var obj = document.getElementById(objId);

        obj.style.visibility = sVisibility;
           
    }
   
   	function setEnabled(objId, if_enabled) 
    {

        var obj = document.getElementById(objId);

        obj.disabled = if_enabled;
           
    }
    /*sprawdza czy wymagane pole */
    function commonCheck    (valfield,   // element do zwalidowania
                         	 infofield,  // id elementu do otrzymania powiadomienia
                         	 required,   // czy wymagane
                         	 blad_wymagane)   
	{
  		var is_ok = true;
  		//jesli puste pole to sprawdz
  		if (emptyString.test(valfield.value)) 
  		{
  			//jesli pole jest wymagane
    		if (required) 
    		{
		     	msg (infofield,blad_wymagane);  
	      		if(valfield.style.visibility != 'hidden')
	      		{
	      			setfocus(valfield);
	      		}
    			is_ok = false;
    		}
    		else 
    		{
      			
	      		is_ok = false;  
    		}
  		}
  	 	//jesli nie puste pole to wyczysc
  	 	else
  	 	{
  	 		if (required) 
    		{
    			msg (infofield,"*");   
    		}
    		
  	 	}
  	 	
  	 	return is_ok;
	}
	
	/*wyswietla informacje */
	function msg(fld,     // id elementu do wyswietlenia informacji
             	 message) // tekst do wyswietlenia
	{
  
  		var dispmessage;
	  	if (emptyString.test(message)) 
    		dispmessage = String.fromCharCode(nbsp);    
  		else  
    		dispmessage = message;
  		var elem = document.getElementById(fld);
  		elem.firstChild.nodeValue = dispmessage;  
  
	}
	
	/*walidacja emaila */
    function validateEmail  (valfield,   // element do zwalidowania
                         	   infofield,  // id elementu do odbioru informacji
	                           required,   // czy wymagane	
	                           blad_email) // tresc bledu email 
	                           
	{
		var is_ok = true;
		
  		if(!commonCheck (valfield, infofield, required))
  		{
  		 is_ok = false;
  		}
  		
  		var tfld = trim(valfield.value);  // wyrzucenie pustych znakow
  		var email = /^[^@]+@[^@.]+\.[^@]*\w\w$/  ;
  		if (!email.test(tfld)) 
  		{
    		msg (infofield, blad_email);
		    setfocus(valfield);
		    is_ok = false;
  	  	}
  	  	else
  	  	{
  	  		msg (infofield, "*");
		    setfocus(valfield);
		    is_ok = true;
  	  	}
  	  	
  	  	return is_ok;
	}
	
	//walidacja ceny
	function validatePrice (valfield,infofield,required,blad_cena)
	{
		var is_ok = true;
		
		if(!commonCheck (valfield, infofield, required))
  		{
  		 is_ok = false;
  		}
  		var tfld = trim(valfield.value);  // wyrzucenie pustych znakow
  		//var price = /^\d+([,|.][0-9]+)?$/ ; 
  		var price = /^\d+$/ ;
  		if (!price.test(tfld)) 
  		{
    		msg (infofield, blad_cena);
		    setfocus(valfield);
		    is_ok = false;
  	  	}
  	  	else
  	  	{
  	  		msg (infofield, "*");
		    setfocus(valfield);
  	  		is_ok = true;
  		}
  		return is_ok;
	}
	
	//walidacja numeru telefonu 
	function validatePhone (valfield,infofield,required,blad_telefon)
	{
		var is_ok = true;
		
		if(!commonCheck (valfield, infofield, required))
  		{
  		 is_ok = false;
  		}
  		var tfld = trim(valfield.value);  // wyrzucenie pustych znakow
  		var phone = /^\+? ?([0-9][-| ]?)+$/; 
  		if (!phone.test(tfld)) 
  		{
    		msg (infofield, blad_telefon);
		    setfocus(valfield);
		   	is_ok = false;
  	  	}
  	  	else
  	  	{
  	  		msg (infofield, "*");
		    setfocus(valfield);
  	  		is_ok = true;
  		}
  		
  		return is_ok;
	}
	//walidacja kodu pocztowego
	function validatePostCode (valfield,infofield,blad_kod_pocz)
	{
		
		var tfld = trim(valfield.value);  // wyrzucenie pustych znakow
  		var postCode = /^[0-9]{2}-[0-9]{3}$/ ; 
  		var is_ok = true;
  		
  		if(commonCheck (valfield, infofield,true,blad_kod_pocz))
  		{
  		 
  			if (!postCode.test(tfld)) 
  			{
    			msg (infofield, blad_kod_pocz);
    			setVisibility(infofield,'visible');
		    	setfocus(valfield);
		    	is_ok = false;
  	  		}
  	  	
  	  		else
  	  		{
    			msg (infofield, "*");
		    	is_ok = true;
  	  		}
  	  	}
  	  	else
  	  	{
  	  		setVisibility(infofield,'visible');
  	  		is_ok = false;
  	  	}
  	  	
  	  	return is_ok;
	}
	//walidacja miejscowości 
	function validateCity (valfield,infofield, blad_miasto)
	{
		var tfld = trim(valfield.value);  // wyrzucenie pustych znakow
  		var city = /^[^0-9]+$/ ; 
  		var is_ok = true;
  		
  		if(commonCheck (valfield, infofield,true,blad_miasto))
  		{
  		 
  			if (!city.test(tfld)) 
  			{
    		msg (infofield, blad_miasto);
    		setVisibility(infofield,'visible');
		    setfocus(valfield);
		    is_ok = false;
  	  		}
  	  		else
  	  		{	
  	  		msg (infofield, "*");
  	  		is_ok = true;
  	  		}
  	  	}
  	  	else
  	  	{
  	  	setVisibility(infofield,'visible');
  	  	is_ok = false;
  	  	}
  	  	
  	  	return is_ok;
	}
	/*walidacja hasla */
	function validatePassword(pw1,pw2,infoField,blad_haslo_znaki,blad_haslo_spacje,blad_haslo_powtorz) 
	{
		
		
		var invalid = " "; // spacje niedozwolone
		var minLength = 6; // minimalna dlugosc
		//sprawdzenie czy puste sa
		if(!commonCheck (pw1,infoField, true))
		{
			return false;
		}
		// minimalna dlugosc - sprawdzenie
		if (pw1.value.length < minLength) 
		{
			msg (infoField, blad_haslo_znaki);
			return false;
		}
		// sprawdzenie spacji
		if (pw1.value.indexOf(invalid) > -1) 
		{
			msg (infoField, blad_haslo_spacje);
			return false;
		}
		
		if (pw1.value != pw2.value) 
		{
			msg (infoField, blad_haslo_powtorz);
			return false;
		}
		else
		{
			msg (infofield, "*");
			return true;	
		}
   	}
	
