function validateEmail() {

  var registrationFormExists = typeof document.forms['registrationForm'] != 'undefined';
  var contactFormExists = typeof document.forms['contactForm'] != 'undefined';
  var customerContactFormExists = typeof document.forms['customerContactForm'] != 'undefined';
  var inputContactForm = typeof document.forms['advancedForm'] != 'undefined';

  var good = false;
  var email = "";
  if (registrationFormExists) {
    email = document.registrationForm.regEmail.value;
  }
  else if (contactFormExists) {
    email = document.contactForm.email.value;
  }
  else if (customerContactFormExists) {
    email = document.customerContactForm.email.value;
  }
  else if (inputContactForm) {
    email = document.advancedForm.email.value;
  }

  if (email.length > 0) {
    document.getElementById("emailValidator").style.display = "inline";
  }

  if (email.match("(.+)@(.+)\\.(.+)")) {
    document.images["emailValidator"].src = "images/ok.gif";
    good = true;
    if (inputContactForm) {
        document.advancedForm.emailCorrect.value = 'true';
        document.advancedForm.regEmail.value = email;
    }
  }
  else {
    document.images["emailValidator"].src = "images/oknot.gif";
    good = false;
  }

  return good;
}

function validatePassword() {

  if (document.getElementById("user_id") != null) {
    var changePassword = document.registrationForm.change_password.checked;

    if (!changePassword) {
      return true;
    }
  }

  var good = false;
  var pass1 = document.registrationForm.regPassword1.value;
  var pass2 = document.registrationForm.regPassword2.value;

  if (pass1.length > 0) {
    document.getElementById("passwordValidator").style.display = "inline";
  }

  if (pass1.length >= 5 && pass1 == pass2) {
    document.images["passwordValidator"].src = "images/ok.gif";
    good = true;
  }
  else {
    document.images["passwordValidator"].src = "images/oknot.gif";
    good = false;
  }

  return good;
}

function validateName() {

  var registrationFormExists = typeof document.forms['registrationForm'] != 'undefined';
  var contactFormExists = typeof document.forms['contactForm'] != 'undefined';
  var customerContactFormExists = typeof document.forms['customerContactForm'] != 'undefined';

  var good = false;
  var name = "";
  if (registrationFormExists) {
    name = document.registrationForm.regName.value;
  }
  else if (contactFormExists) {
    name = document.contactForm.name.value;
  }
  else if (customerContactFormExists) {
    name = document.customerContactForm.name.value;
  }

  if (name.length > 0) {
    document.getElementById("nameValidator").style.display = "inline";
  }

  if (name.length >= 2) {
    document.images["nameValidator"].src = "images/ok.gif";
    good = true;
  }
  else {
    document.images["nameValidator"].src = "images/oknot.gif";
    good = false;
  }

  return good;
}

function validateSurname() {

  var good = false;
  var surname = document.registrationForm.regSurname.value;

  if (surname.length > 0) {
    document.getElementById("surnameValidator").style.display = "inline";
  }

  if (surname.length >= 2) {
    document.images["surnameValidator"].src = "images/ok.gif";
    good = true;
  }
  else {
    document.images["surnameValidator"].src = "images/oknot.gif";
    good = false;
  }

  return good;
}

function validateAddress1() {

  var good = false;
  var address1 = document.registrationForm.regAddress1.value;

  if (address1.length > 0) {
    document.getElementById("address1Validator").style.display = "inline";
  }

  if (address1.length >= 2) {
    document.images["address1Validator"].src = "images/ok.gif";
    good = true;
  }
  else {
    document.images["address1Validator"].src = "images/oknot.gif";
    good = false;
  }

  return good;
}

function validateZipTown() {

  var good = false;
  var zip = document.registrationForm.regZip.value;
  var town = document.registrationForm.regTown.value;

  if (zip.length > 0) {
    document.getElementById("zipValidator").style.display = "inline";
  }
  if (town.length > 0) {
    document.getElementById("townValidator").style.display = "inline";
  }

  if (zip.length >= 4) {
    document.images["zipValidator"].src = "images/ok.gif";
    good = true;
  }
  else {
    document.images["zipValidator"].src = "images/oknot.gif";
    good = false;
  }

  if (town.length >= 3) {
    document.images["townValidator"].src = "images/ok.gif";
    good = true;
  }
  else {
    document.images["townValidator"].src = "images/oknot.gif";
    good = false;
  }

  return good;
}

function validateCompany() {

  var good = false;
  var company = document.registrationForm.regCompanyName.value;

  if (company.length > 0) {
    document.getElementById("companyValidator").style.display = "inline";
  }

  if (company.length >= 2) {
    document.images["companyValidator"].src = "images/ok.gif";
    good = true;
  }
  else {
    document.images["companyValidator"].src = "images/oknot.gif";
    good = false;
  }

  return good;
}

function validateLanguage() {

  var good = false;
  document.getElementById("languageValidator").style.display = "inline";

  var index = document.registrationForm.regSelLanguage.selectedIndex;

  if (index > 0) {
    document.images["languageValidator"].src = "images/ok.gif";
    good = true;
  }
  else {
    document.images["languageValidator"].src = "images/oknot.gif";
    good = false;
  }

  return good;
}

function validateCountry() {

  var good = false;
  document.getElementById("countryValidator").style.display = "inline";

  var index = document.registrationForm.regSelCountry.selectedIndex;

  if (index > 0) {
    document.images["countryValidator"].src = "images/ok.gif";
    good = true;
  }
  else {
    document.images["countryValidator"].src = "images/oknot.gif";
    good = false;
  }

  return good;
}

function enableDisableSubmit() {

  if (document.registrationForm.regRules.checked) {
    document.registrationForm.submit1.disabled = false;
  }
  else {
    document.registrationForm.submit1.disabled = true;
  }
}

function showHideCompany() {

  if (document.registrationForm.regTypeOfAd[1].checked) {
    document.getElementById("companyRow").style.visibility = "visible";
  }
  else {
    document.registrationForm.regCompanyName.value = "";
    document.getElementById("companyRow").style.visibility = "hidden";
  }
}

function validateAndSubmit() {

  if (validateEmail() && validatePassword() &&
    validateName() && validateSurname() &&
    validateAddress1() && validateZipTown() &&
    validateLanguage() && validateCountry()) {

    document.forms["registrationForm"].submit();
  }
  else {
    alert("Form validation was not successful. Please fix the fields marked with red icon.");
    return false;
  }

  return true;
}

function validateAndSubmitCustomerContact() {

  if (validateEmail() && validateName()) {
    document.forms["customerContactForm"].submit();
  }
  else {
    alert("Form validation was not successful.\nPlease fill out empty fields or fix any fields marked with red icon.");
    return false;
  }

  return true;
}
