function validateEmail(email) {
  var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);

  return pattern.test(email);
}

// highlight fields
function doHighlight(selector, highlight) {
  if(highlight === undefined)
    highlight = true;

  if(selector == '') {
    if(highlight)
      $('input').addClass('inputError');
    else
      $('input').removeClass('inputError');
  } else {
    if(highlight)
      $(selector).addClass('inputError');
    else
      $(selector).removeClass('inputError');
  }
}

function showErrorText(selector, errorText, showErrorText) {
  if(showErrorText === undefined)
    showErrorText = true;
  
  if(selector == '') {
    $('span.errorText').remove();
  } else {
    if(errorText === undefined)
      errorText = 'required';
  
    var id = $(selector).attr('name');
    
    if(showErrorText) {
      if($('span#' + id).length > 0)
        $('span#' + id).remove();
      $(selector).after(' <span id="' + id + '" class="errorText">' + errorText + '</span>');
    } else {
      $('span#' + id).remove();
    }
  }
}

$(document).ready(function() {
  var form1 = 'stay-connected-form-1';
  var form2 = 'stay-connected-form-2';
  var loginForm = 'stay-connected-login-form';
  
  if($('#'+ form1 +'-email').val(''))
    $('#'+ form1 +'-email').val('e-mail address');
  
  $('input.btnCancelStayConnectedForm').click(function() {
    parent.tb_remove();
    window.parent.location.href = top.location;
  });

  $('#' + form1 + '-email').focus(function() {
    var email = $.trim(this.value);
    if(email == 'e-mail address')
      $(this).val('');
  });
  
  $('#' + form1 + '-email').blur(function() {
    var email = $.trim(this.value);
    if(email == '')
      $(this).val('e-mail address');
    else
      doHighlight(this, false);
  });
  
  $('#' + form1).submit(function() {
    var email = $.trim($('#' + form1 + '-email').val());
    
    if(email == '' || email == 'e-mail address') {
      alert('E-mail address is required.');
      doHighlight('#' + form1 + '-email');
    } else {
      doHighlight('#' + form1 + '-email', false);
      return true;
    }
    return false;
  });
  
  $('#' + loginForm).submit(function() {
    var email = $.trim($('#' + loginForm + '-email').val());
    var password = $.trim($('#' + loginForm + '-password').val());
    var validated = true;
    
    if(email == '') {
      doHighlight('#' + loginForm + '-email');
      validated = false;
    } else {
      doHighlight('#' + loginForm + '-email', false);
    }
    
    if(password == '') {
      doHighlight('#' + loginForm + '-password');
      validated = false;
    } else {
      doHighlight('#' + loginForm + '-password', false);
    }
    return validated;
  });

  $('#' + form2 + '-email').change(function() {
    var email = $.trim(this.value);
    $('tr.password').removeClass('hidden');
    if(email == '') {
      doHighlight(this);
    } else {
      doHighlight(this, false);
      $.post('/stay_connected.php', {email : email}, function(data) {
        if(data == 1)
          $('tr.password').addClass('hidden');
      });
    }
  });
  
  $('#' + form2 + '-company, #' + form2 + '-title, #' + form2 + '-name, #' + form2 + '-password, #' + form2 + '-password_confirm').change(function() {
    if($.trim(this.value) != '')
      doHighlight(this, false);
  });

  $('#' + form2).submit(function() {
    var email           = $.trim($('#' + form2 + '-email').val());
    var company         = $.trim($('#' + form2 + '-company').val());
    var name            = $.trim($('#' + form2 + '-name').val());
    var title           = $.trim($('#' + form2 + '-title').val());
    var password        = $.trim($('#' + form2 + '-password').val());
    var passwordConfirm = $.trim($('#' + form2 + '-password_confirm').val());
    doHighlight(form2 + ' input', false);   // unhighlight
    
    var validated = true;
    
    if(email == '')
      validated = false;
    
    if(!validated)
      doHighlight('#' + form2 + '-email');
    
    if(company == '') {
      validated = false;
      doHighlight('#' + form2 + '-company');
    }
    
    if(name == '') {
      validated = false;
      doHighlight('#' + form2 + '-name');
    }
    
    if(title == '') {
      validated = false;
      doHighlight('#' + form2 + '-title');
    }
    
    if($('.password').is(':hidden') == false) {
      if(password == '') {
        validated = false;
        doHighlight('#' + form2 + '-password');
      }
      
      if(passwordConfirm == '') {
        validated = false;
        doHighlight('#' + form2 + '-password_confirm');
      }
      
      if((password != '' && passwordConfirm != '') && password != passwordConfirm) {
        validated = false;
        doHighlight('#' + form2 + '-password');
        doHighlight('#' + form2 + '-password_confirm');
      }
    }
    
    if(validated)
      return true;
    return false;
  });
});
