/*******************************************************************************
********************************************************************************
********************************************************************************
 KLASA Validator - klasa odpowiedzialna za sprawdzenie poprawnosci formularza
 oraz za wysłanie zapytania do bazy danych 
********************************************************************************
********************************************************************************
*******************************************************************************/
function Validator()
{
//ZMIENNE

//METODY

  //ODPOWIEDZIALNE ZA FORMULARZ "DODAJ NOWEGO KLIENTA"
  //weryfikuje wszystkie pola formularz "Dodaj nowego uzytkownika"
  this.newsSprawdzDodajKlienta = newsSprawdzDodajKlienta;
  
  //sprawdza poprawnosc wprowadzonego emaila
  this.newsSprawdzEmail = newsSprawdzEmail;
  
  this.newsSprawdzEmail1 = newsSprawdzEmail1;
    
  //sprawdza czy wybrano przynajmniej jedną grupę
  this.newsSprawdzGrupy = newsSprawdzGrupy;
      
  //sprawdza pola formularza danych konfiguracyjnych
  this.newsSprawdzKonfiguracja = newsSprawdzKonfiguracja;
  
  this.newsZapiszEmail = newsZapiszEmail;

  this.newsKlientZmiany = newsKlientZmiany;

}//sprawdza poprawnosc formularza


/*******************************************************************************
 Validator::newsZapiszEmail() - N
*******************************************************************************/
function newsZapiszEmail(formName, rozmiarEmail, jezyk)
{
    dlugi = Sl.czytaj(jezyk, 14);//za długi adres e-mail
    blad = Sl.czytaj(jezyk, 15);//niepoprawny adres e-mail
    
    var text = "";
    var email = formName.newsEmail.value.replace(/ /g, "");
    
    formName.newsEmail.value = email;
    text = email;
    if(text.length>rozmiarEmail)
    {
      alert(dlugi);
      return false;
    }
    
    if(text.indexOf("@")>0)
    {
      text = text.substring(text.indexOf("@"));
      if((text.indexOf(".")>1)&&(text.lastIndexOf(".")<(text.length - 2))) 
      {
        return true;
      }
      else
      {
        alert(blad);
        return false;
      }
    }
    else
    {
        alert(blad);
        return false;
    }
}//Validator::newsZapiszEmail(...)


/*******************************************************************************
 Zmiany przez klienta - P
*******************************************************************************/ 
function newsKlientZmiany(formName, rozmiarEmail, jezyk)
{
    var dlugi = Sl.czytaj(jezyk, 14);//za długi adres e-mail;
    var blad = Sl.czytaj(jezyk, 15);//niepoprawny adres e-mail
    var grupa_blad = Sl.czytaj(jezyk, 16);//zaznacz przynajmniej jedną grupę

    var text = "";
    var email = formName.newsEmail.value.replace(/ /g, "");
    
    formName.newsEmail.value = email;
    text = email;
    if(text.length>rozmiarEmail)
    {
      alert(dlugi);
      return false;
    }
    
    if(text.indexOf("@")>0)
    {
      text = text.substring(text.indexOf("@"));
      if((text.indexOf(".")>1)&&(text.lastIndexOf(".")<(text.length - 2))) 
      {
           var tablica = document.getElementsByName("newsGrupa[]");
            for(i=0;i<tablica.length;i++)
            if(tablica[i].checked) return true;

            alert(grupa_blad);
            return false;
      }
      else
      {
        alert(blad);
        return false;
      }
    }
    else
    {
        alert(blad);
        return false;
    }
    return false;  
}//function newsKlientZmiany


/*******************************************************************************
 Validator:::newsSprawdzDodajKlienta(...) - N
*******************************************************************************/
function newsSprawdzDodajKlienta(formName, rozmiarEmail, jezyk)
{  
  if(!val.newsSprawdzEmail(formName, rozmiarEmail))
  {
    alert(Sl.czytaj(jezyk, 15));//niepoprawny adres e-mail
    return false;
  }

  if(!val.newsSprawdzGrupy(formName))
  {
    alert(Sl.czytaj(jezyk, 16));//"Należy wybrać przynajmniej jedną grupę!
    return false;
  }
}//Validator::newsSprawdzDodajKlienta(...)


/*******************************************************************************
 Validator::newsSprawdzEmail() - N
*******************************************************************************/
function newsSprawdzEmail(formName, rozmiarEmail, jezyk)
{
    var text = '';
    var email = formName.newsEmail.value.replace(/ /g, "");
    
    formName.newsEmail.value = email;
    text = email;
    if(text.length>rozmiarEmail)
    {
      alert(Sl.czytaj(jezyk, 14));//Zbyt długi adres!!!
      return false;
    }
    
    if(text.indexOf("@")>0)
    {
      text = text.substring(text.indexOf("@"));
      if((text.indexOf(".")>1)&&(text.lastIndexOf(".")<(text.length - 2))) return true;
      else return false;
    }
    else return false;
}//Validator::newsSprawdzEmail()


/*******************************************************************************
 Validator::newsSprawdzEmail1() - N
*******************************************************************************/
function newsSprawdzEmail1(eMail, rozmiarEmail, jezyk)
{
    var text = '';
    var email = eMail.value.replace(/ /g, "");
    
    eMail.value = email;
    text = email;
    if(text.length>rozmiarEmail)
    {
      alert(Sl.czytaj(jezyk, 14));//Zbyt długi adres!!!
      return false;
    }
    
    if(text.indexOf("@")>0)
    {
      text = text.substring(text.indexOf("@"));
      if((text.indexOf(".")>1)&&(text.lastIndexOf(".")<(text.length - 2))) return true;
      else return false;
    }
    else return false;
}//Validator::newsSprawdzEmail1()



/*******************************************************************************
 Validator::newsSprawdzGrupy() - P
*******************************************************************************/
function newsSprawdzGrupy(formName, jezyk)
{
    var tablica = document.getElementsByName("newsGrupa[]");
    for(i=0;i<tablica.length;i++)
      if(tablica[i].checked) return true;

  alert(Sl.czytaj(jezyk, 16));//"Należy wybrać przynajmniej jedną grupę!
  return false;
}//Validator::newsSprawdzGrupy()


/*******************************************************************************
 Validator::newsSprawdzkonfiguracja() - P
*******************************************************************************/
function newsSprawdzKonfiguracja(formName, jezyk)
{
    var text = formName.newsSMTPuser.value;

//SMTPserver        
    if(formName.newsSMTPserver.value.length==0)
    {
      alert(Sl.czytaj(jezyk, 17));//Adres serwera SMTP nie może być pusty!
      return false;
    }
        
    if(formName.newsSMTPserver.value.length>64)
    {
      alert(Sl.czytaj(jezyk, 18));//Zbyt długi adres serwera SMTP (max. 64 znaki)!
      return false;
    }

//SMTP user
    if(formName.newsSMTPuser.value.length==0)
    {
      alert(Sl.czytaj(jezyk, 19));//Adres użytkownika SMTP nie może być pusty!
      return false;
    }    
    
    if(!this.newsSprawdzEmail1(formName.newsSMTPuser, 64))
    {
      alert(Sl.czytaj(jezyk, 20));//Niepoprawny adres użytkownika SMTP!
      return false;      
    }

//SMTPpassword    
    if(formName.newsSMTPpassword.value.length==0)
    {
      alert(Sl.czytaj(jezyk, 21));//Pole hasła SMTP nie może być puste!
      return false;
    }
        
    if(formName.newsSMTPserver.value.length>64)
    {
      alert(Sl.czytaj(jezyk, 22));//Zbyt długie hasło serwera SMTP (max. 64 znaki)!
      return false;
    }

//Od kogo
    if(formName.newsFrom.value.length==0)
    {
      alert(Sl.czytaj(jezyk, 23));//Pole adresu nadawcy nie może być puste!
      return false;
    }    
    
    if(!this.newsSprawdzEmail1(formName.newsFrom, 64))
    {
      alert(Sl.czytaj(jezyk, 24));//Niepoprawny adres nadawcy!
      return false;      
    }    

//Nazwa nadawcy
    if(formName.newsName.value.length==0)
    {
      alert(Sl.czytaj(jezyk, 25));//Pole nazwy Nadawcy nie może być puste!
      return false;
    }
        
    if(formName.newsSMTPserver.value.length>64)
    {
      alert(Sl.czytaj(jezyk, 26));//Zbyt długa nazwa Nadawcy (max. 64 znaki)!
      return false;
    }

//adres zwrotny
   if(formName.newsZwrotny.value.length==0)
    {
      alert(Sl.czytaj(jezyk, 27));//Pole adresu zwrotnego nie może być puste!
      return false;
    }    
    
    if(!this.newsSprawdzEmail1(formName.newsZwrotny, 64))
    {
      alert(Sl.czytaj(jezyk, 28));//Niepoprawny adres zwrotny!
      return false;      
    }

//strona Klienta
   if(formName.newsStrona.value.length==0)
    {
      alert(Sl.czytaj(jezyk, 29));//Pole strony Klienta nie może być puste!
      return false;
    }    
    
}//Validator::newsSprawdzKonfiguracja(...)

/*******************************************************************************
********************************************************************************
********************************************************************************
Rozpoczyna proces 
********************************************************************************
********************************************************************************
*******************************************************************************/
var val = new Validator();

