function aff_login_form()
{
   var f = document.aff_login; 

   if (f.email.value.length < 1) { 
      f.email.focus();
      alert ("Adresa E-Mail este obligatorie. Daca sinteti un client nou va rugam sa va inregistrati."); 
      return false;
   } 

   if (!validateEmail(f.email.value)) {
      f.email.focus();
      alert ("Adresa E-Mail nu este valida.");
      return false;
   }

   if (f.pass.value.length < 4) { 
      f.pass.focus();
      alert ("Parola trebuie sa aibe cel putin 4 caractere."); 
      return false;
   } 

   if (!is_all_char_num_underscore(f.pass.value)) {
      f.pass.focus();
      alert ("Parola nu este valida! Numai litere, cifre, si underscore sint acceptate."); 
      return false;
   }

   return true;
}

function aff_check_pass_retrieve_email_form()
{
   var f = document.aff_pass_retrieve; 

   if (f.email.value.length < 1) { 
      f.email.focus();
      alert ("Adresa E-Mail este obligatorie. Daca sinteti un client nou va rugam sa va inregistrati."); 
      return false;
   } 

   if (!validateEmail(f.email.value)) {
      f.email.focus();
      alert ("Adresa E-Mail nu este valida.");
      return false;
   }

   return true;
}

function aff_add_affiliate_form() 
{
   var f = document.aff_add_affiliate; 

   if (!aff_check_login_section(f)) {
      return false;
   }
   if (!aff_check_profile_section(f)) {
      return false;
   }
   return true;
}

function aff_check_login_section(f) 
{
   if (!validateEmail(f.email.value)) {
      f.email.focus();
      alert ("Adresa E-Mail nu este valida.");
      return false;
   }

   if (f.pass.value.length < 4) { 
      f.pass.focus();
      alert ("Parola trebuie sa aibe cel putin 4 caractere."); 
      return false;
   } 

   if (!is_all_char_num_underscore(f.pass.value)) {
      f.pass.focus();
      alert ("Parola nu este valida! Numai litere, cifre, si underscore sint acceptate."); 
      return false;
   }

   if (f.pass.value != f.confirm_pass.value) {
      f.confirm_pass.focus();
      alert ("Parola si Parola de Verificare nu sint identice."); 
      return false;
   } 

   return true;
}

function aff_check_profile_section(f) 
{
   f.lastname.value = trim_multi_spaces(f.lastname.value);
   if (f.lastname.value.length < 1) { 
      f.lastname.focus();
      alert ("Numele este obligatoriu."); 
      return false;
   } 

   f.firstname.value = trim_multi_spaces(f.firstname.value);
   if (f.firstname.value.length < 1) { 
      f.firstname.focus();
      alert ("Prenumele este obligatoriu."); 
      return false;
   } 

   f.company.value = trim_multi_spaces(f.company.value);

   f.website.value = trim_multi_spaces(f.website.value);
   if (!validateURL(f.website.value)) {
      f.website.focus();
      alert ("Adresa URL nu este valida.");
      return false;
   }

   f.street.value = trim_multi_spaces(f.street.value);
   if (f.street.value.length < 2) { 
      f.street.focus();
      alert ("Strada este obligatorie si trebuie sa contina cel putin 2 caractere."); 
      return false;
   } 

   f.city.value = trim_multi_spaces(f.city.value);
   if ((f.city.value.length < 1) || (!is_all_char_num_space(f.city.value))) { 
      f.city.focus();
      alert ("Orasul este obligatoriu."); 
      return false;
   } 

   f.state.value = trim_multi_spaces(f.state.value);
   if ((f.state.value.length < 2) || (!is_all_char_dot_space(f.state.value))) { 
      f.state.focus();
      alert ("Judetul este obligatoriu. Numai cifre si punct sint acceptate."); 
      return false;
   } 

   if (f.postcode.value.length < 4) { 
      f.postcode.focus();
      alert ("Codul postal necesita cel putin 4 caractere."); 
      return false;
   } 

   if (f.country.value.charAt(0) == "-") {
      f.country.focus()
      alert("Va rugam sa alegeti o Tara.")
      return false;
   }

   f.phone.value = trim_multi_spaces(f.phone.value);
   if (f.phone.value.length < 1) {
      f.phone.focus();
      alert ("Numarul de telefon este obligatoriu.");
      return false;
   }

   if (f.phone.value.length > 30) {
      f.phone.focus();
      alert ("Numarul de telefon poate avea maximum 30 caractere.");
      return false;
   } 
   
   f.fax.value = trim_multi_spaces(f.fax.value);
   if (f.fax.value.length > 30) {
      f.fax.focus();
      alert ("Numarul de fax poate avea maximum 30 caractere.");
      return false;
   }

   f.comp_tax_id.value = trim_multi_spaces(f.comp_tax_id.value);
   f.comp_reg_num.value = trim_multi_spaces(f.comp_reg_num.value);
   f.indv_cnp_ssn.value = trim_multi_spaces(f.indv_cnp_ssn.value);

   return true;
}

function check_cust_change_login_info_form()
{
   var f = document.cust_change_login_info_form; 

   if (f.email.value.length < 1) { 
      f.email.focus();
      alert ("Noua Adresa E-Mail este obligatorie."); 
      return false;
   } 

   if (!validateEmail(f.email.value)) {
      f.email.focus();
      alert ("Adresa E-Mail nu este valida.");
      return false;
   }

   if (f.old_pass.value.length < 1) { 
      f.old_pass.focus();
      alert ("Parola curenta trebuie specificata pentru a schimba parola ori adresa E-Mail."); 
      return false;
   } 

   if (f.pass.value.length > 0) { 
      if (f.pass.value.length < 4) { 
         f.pass.focus();
         alert ("Parola trebuie sa aibe cel putin 4 caractere."); 
         return false;
      } 

      if (!is_all_char_num_underscore(f.pass.value)) {
         f.pass.focus();
         alert ("Parola nu este valida! Numai litere, cifre, si underscore sint acceptate."); 
         return false;
      }

      if (f.pass.value != f.confirm_pass.value) { 
         f.confirm_pass.focus();
         alert ("Parola de verificare trebuie sa fie identica cu parola noua."); 
         return false;
      }
   } 

   return true;
}

function aff_mod_profile_form() 
{
   var f = document.aff_mod_profile; 

   if (!aff_check_profile_section(f)) {
      return false;
   }
   return true;
}

function aff_check_referral_form()
{
   var f = document.aff_add_referral; 

   if (f.ref_name.value.length < 1) { 
      f.ref_name.focus();
      alert ("Numele recomandatului este obligatoriu."); 
      return false;
   } 

   if (f.ref_email.value.length < 1) { 
      f.ref_email.focus();
      alert ("Adresa E-Mail a recomandatului este obligatorie."); 
      return false;
   } 

   if (!validateEmail(f.ref_email.value)) {
      f.ref_email.focus();
      alert ("Adresa E-Mail nu este valida.");
      return false;
   }

   if (f.ref_msg.value.length < 1) { 
      f.ref_msg.focus();
      alert ("Mesajul de recomandare este obligatoriu."); 
      return false;
   } 

   return true;
}

function aff_check_account_msg_form()
{
   var f = document.aff_add_message; 

   if (f.aff_subject.value.length < 1) { 
      f.aff_subject.focus();
      alert ("Subjectul este obligatoriu."); 
      return false;
   } 

   if (f.aff_msg.value.length < 1) { 
      f.aff_msg.focus();
      alert ("Mesajul este obligatoriu."); 
      return false;
   } 

   return true;
}

function is_all_char_num_underscore(str) {
   var valid_chars =/^[a-z0-9_]{0,32}$/i;
   return valid_chars.test(str);
}

function is_all_char_num_space(str) {
   var valid_chars =/^[a-z][-a-z0-9 ]{0,32}$/i;
   return valid_chars.test(str);
}

function is_all_char_dot_space(str) {
   var valid_chars =/^[a-z][-a-z\. ]{0,32}$/i;
   return valid_chars.test(str);
}

function is_valid_phone_num(str) {
   var valid_chars =/(^[0-9]{5}-[0-9]{3}-[0-9]{3}$)|(^[0-9]{4}-[0-9]{3}-[0-9]{4}$)|(^[0-9]{3}-[0-9]{3}-[0-9]{4}$)/i;
   return valid_chars.test(str);
}

function trim_multi_spaces(str)
{
   var reg_exp = /\s+/g;
   str = TrimAll(str);
   return str.replace(reg_exp, " "); 
}

function validateEmail( strValue) {
   var objRegExp = /(^[a-z]([a-z0-9_\-\.]*)@([a-z0-9_\.]*)([.][a-z]{2,3})$)|(^[a-z]([a-z0-9_\.]*)@([a-z0-9_\.]*)(\.[a-z]{3})(\.[a-z]{2})*$)/i;
  return objRegExp.test(strValue);
}

function validateURL ( strValue) {
  var objRegExp =/^(((ht|f)tp(s?))\:\/\/)(www\.|[a-zA-Z]+\.)[a-zA-Z0-9\-\.]+(.[\w]+(\/?)){1,2}(\:[0-9]+)*$/i;
  return objRegExp.test(strValue);
}

function LTrim(str) {
   if (str==null){return null;}
   for(var i=0;str.charAt(i)==" ";i++);
   return str.substring(i,str.length);
}

function RTrim(str) {
   if (str==null){return null;}
   for(var i=str.length-1;str.charAt(i)==" ";i--);
   return str.substring(0,i+1);
}

function Trim(str) {return LTrim(RTrim(str));}

function LTrimAll(str) {
   if (str==null){return str;}
   for (var i=0; str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t"; i++);
   return str.substring(i,str.length);
}

function RTrimAll(str) {
   if (str==null){return str;}
   for (var i=str.length-1; str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t"; i--);
   return str.substring(0,i+1);
}

function TrimAll(str) {
   return LTrimAll(RTrimAll(str));
}

//Validates that a string a United States zip code in 5 digit format or zip+4 format.
// - example:  4444, 55555, 666666 or 55555-4444
// This API is not used because it is not complete.
function validateZip( strValue ) {
   var objRegExp  = /(^\d{4,5}$)|(^\d{6}$)|(^\d{5}-\d{4}$)/;
  return objRegExp.test(strValue);
}


