﻿var REGEX_BLANK = /^\s*$/;
var REGEX_EMAIL = /^\w+[.\w-]+\w@\w+[.\w-]+\.[a-zA-Z]{2,6}$/;

function valida(e) {
  var focus = null;

  if ($F('nl_cognome').match(REGEX_BLANK)) {
    $('ctrl_cognome').setStyle({ visibility: 'visible' });
    focus = focus || $('nl_cognome');
  }

  if ($F('nl_nome').match(REGEX_BLANK)) {
    $('ctrl_nome').setStyle({ visibility: 'visible' });
    focus = focus || $('nl_nome');
  }

  if (!$F('nl_mail').match(REGEX_EMAIL)) {
    $('ctrl_mail').setStyle({ visibility: 'visible' });
    focus = focus || $('nl_mail');
  }

  if ($('nl_privacy').checked == false) {
    $('ctrl_privacy').setStyle({ visibility: 'visible' });
    focus = focus || $('nl_privacy');
  }

  if ($F('nl_antispam').match(REGEX_BLANK)) {
    $('ctrl_antispam').setStyle({ visibility: 'visible' });
    focus = focus || $('nl_antispam');
  }

  if (focus) {
    focus.focus();
    e.stop();
  }
}

function registerEvents() {
  
  // valida form newsletter
  var form_nl = $('form_nl') || '';
  if (form_nl) {
    $('nl_cognome').observe('blur', function() {
      if ($F('nl_cognome').match(REGEX_BLANK)) {
        $('ctrl_cognome').setStyle({ visibility: 'visible' });
      } else {
        $('ctrl_cognome').setStyle({ visibility: 'hidden' });
      }
    });
    $('nl_cognome').observe('keyup', function() {
      if (!$F('nl_cognome').match(REGEX_BLANK)) {
        $('ctrl_cognome').setStyle({ visibility: 'hidden' });
      }
    });
    $('nl_nome').observe('blur', function() {
      if ($F('nl_nome').match(REGEX_BLANK)) {
        $('ctrl_nome').setStyle({ visibility: 'visible' });
      } else {
        $('ctrl_nome').setStyle({ visibility: 'hidden' });
      }
    });
    $('nl_nome').observe('keyup', function() {
      if (!$F('nl_nome').match(REGEX_BLANK)) {
        $('ctrl_nome').setStyle({ visibility: 'hidden' });
      }
    });
    $('nl_mail').observe('blur', function() {
      if (!$F('nl_mail').match(REGEX_EMAIL)) {
        $('ctrl_mail').setStyle({ visibility: 'visible' });
      } else {
        $('ctrl_mail').setStyle({ visibility: 'hidden' });
      }
    });
    $('nl_mail').observe('keyup', function() {
      if ($F('nl_mail').match(REGEX_EMAIL)) {
        $('ctrl_mail').setStyle({ visibility: 'hidden' });
      } else {
        $('ctrl_mail').setStyle({ visibility: 'visible' });
      }
    });
    form_nl.observe('submit', valida);
  }
}

Event.observe(window, 'load', registerEvents);
