﻿//funkcja submituje zarowno formularze przez dodanie do metody onsubmit jak i przez dodanie formularza w parametrze

var InternetExplorer=(navigator.userAgent.indexOf('MSIE')==-1)?false:true;


/* uwaga funkcja odpalana przy kazdym submicie formularza */
function submituj_form(obj) 
                  {
	           if(true) { obj.submit(); return false; }
                   var blokada="Niektóre pola formularza nie są poprawnie wypełnione ! Uzupełnij je.";
                   var tenForm='',submituj=false; //pomocnicza zmienna mowiaca czy ma uzyc metody submit na formularzu
                   if(obj) { tenForm=obj; submituj=true;} 
                   else tenForm=this;
                   for(var i=0, elem=tenForm.elements; i<elem.length; i++)
                          {
                            if(elem[i].getAttribute('type')=='text' || elem[i].getAttribute('type')=='password') //waliduj tylko pola password i text
						       if(parseInt(elem[i].czyJestPoprawnieWypelniony)!=1) { alert(blokada); return false; }
						   //alert(elem[i].name+' '+elem[i].czyJestPoprawnieWypelniony);
			  }
				   if(submituj) obj.submit();
				   else return true;
		   }

function sprawdzaj_pola_input()
{
//regi do onchange
var tagREG=/<.*?>/g;
var mailREG=/^([a-z0-9_\.-]+)@[a-z0-9_\.-]+(\.[a-z]{2,4})$/g;
var ImNazREG=/^[a-zA-ZĄąĘęĆćŁłŃńŚśÓóŹźŻż]+$/g;
var nazwiskoREG=/^[a-zA-ZĄąĘęĆćŁłŃńŚśÓóŹźŻż\s-]+$/g;
var miastoREG=/^[a-zA-ZĄąĘęĆćŁłŃńŚśÓóŹźŻż\s-]+$/g;
var telREG=/^[0-9\s\(\)\-\+]+$/g;
var kodREG=/^[0-9]{2}-[0-9]{3}$/g;
var loginREG=/^[a-z0-9_\.\-]+$/g;
var passwordREG=/^\w{6,50}$/g; //dowolne znaki miedzy 6-50 znakow
var frazaREG=/^[a-zA-Z0-9ĄąĘęĆćŁłŃńŚśÓóŹźŻż ]+$/g; //do wyszukiwarki miedzy 2-300 znakow
//regi do onkeypress (pojedynczy klawisz)
var mailOnKeypressREG=/[a-z0-9\@\.\-_]+/g;
var dowolnyOnKeypressREG=/.+/g;

//sprawdzaj pola input na calej stronie i waliduj je po nazwach
for(var i=0,el='',inp=document.getElementsByTagName('input'); i<inp.length; i++)
   {
    el=inp[i];
     //dla pól o typie text lub password (inne nie sa walidowane)
    if(el.getAttribute('type')=='text' || el.getAttribute('type')=='password')
       {
       //Na
        switch(el.name)
              {
               //case 'login' : zakladajEventy(el,loginREG,loginREG); break;
               case 'new_email' : zakladajEventy(el,mailOnKeypressREG,mailREG); break;
               //case 'password' : zakladajEventy(el,dowolnyOnKeypressREG,passwordREG); break;
	           //case 'pass' : zakladajEventy(el,dowolnyOnKeypressREG,passwordREG); break; 
	           case 'fraza' : zakladajEventy(el,frazaREG,frazaREG); break; //wyszukiwarka
	           default : break;	          
	           
              }
       }
   }
//sprawdzaj formularze na calej stronie
for(var i=0, formularze=document.forms,f; i<formularze.length; i++)
   {
    f=formularze[i];
    if(!f.onsubmit) //jesli nie została wcześniej przypisana żadna  metoda submit do obiektu formularza
      {
           f.onsubmit=submituj_form ;
      }
   }//for

//funkcja do zakładania eventów na elementy formularza oraz przypisująca im wyrażenia regularne walidowane przy wywołaniu onkeypress i onchange
function zakladajEventy(obj,regOnkeypress,regOnchange)
{
 obj.czyJestPoprawnieWypelniony=0; //nadawaj wszystkim atrybut niewypelnionych na poczatku
 obj.wyrReg=regOnkeypress; //do funkcji filtruj_wyrReg
 obj.czyJestPoprawnieWypelniony=false;
 obj.onchangeWyrReg=regOnchange;
 obj.onkeypress=filtruj_wyrReg;
 obj.onchange=function()
			   {
			    this.value=this.value.replace(tagREG,'');
			    //wyjatek dla pola mail - zmieniaj na male litery 
			    if(this.name.indexOf('mail')!=-1) this.value=this.value.toLowerCase();
			    if(!this.value.match(this.onchangeWyrReg)) 
					{ 
					  alert('Pole '+this.name+' niepoprawnie wypełnione ! Wypełnij je ponownie !'); this.value=''; this.czyJestPoprawnieWypelniony=0;
				    }
				    //kontrolka kazdego elementu - sprawdzajaca czy jest on poprawnie wypełniony
				 else this.czyJestPoprawnieWypelniony=1;
				}
}//zakladajEventy

/* filtruj RegExp na elemencie DOM */
function filtruj_wyrReg(e)
 {
 var l='',keynum=0;
if(window.event) // IE
    keynum = window.event.keyCode;
else if(e.which) 			// Netscape/Firefox/Opera
    keynum = e.which;
 l=String.fromCharCode(keynum);
				//zezwalaj na event gdy jest tylko RegExp, backspace lub strzalki
 if(l.match(this.wyrReg) || keynum==8 || keynum==0) return true;
 				//blokuj event
 else return false;
 }//filtruj_wyrReg


 

//do zakladania dodatkowych eventow 

function addEvent( obj, type, fn )
{
  if (obj.addEventListener)
    obj.addEventListener( type, fn, false );
  else if (obj.attachEvent)
  {
    obj["e"+type+fn] = fn;
    obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
    obj.attachEvent( "on"+type, obj[type+fn] );
  }
}//addEvent

}//sprawdzaj_pola_input

if(!InternetExplorer)
   addEvent( window, 'load', sprawdzaj_pola_input);


