﻿// watermark/validation
$('#txtFriendEmailAddress').watermark('Your friend’s email address', { className: 'input_watermark', useNative: false });
$('#txtNewsletterEmailAddress').watermark('Your email address', { className: 'input_watermark', useNative: false });
$('#txtFriendDialogToEmailAddress').watermark("Friend's email address", { className: 'input_watermark', useNative: false });
$('#txtFriendDialogFromEmailAddress').watermark('Your email address', { className: 'input_watermark', useNative: false });
$.validator.addMethod("email", function (value, element) { return this.optional(element) || /^(([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+$/i.test(value); });

// newsletter sign up
$("#frmNewsletter").validate
({
  rules:
  {
    txtNewsletterEmailAddress:
    {
      required: true,
      email: true
    }
  },
  messages:
  {
    txtNewsletterEmailAddress: ""
  },
  errorLabelContainer: "#newsletter_error_box",
  invalidHandler: function (form, validator)
  {
    $("#newsletter_error_box").html("Invalid Email Address.");
    $.watermark.showAll();
  },
  submitHandler: function (form)
  {
    var data = 'email=' + $("input#txtNewsletterEmailAddress").val();

    $.ajax(
    {
      type: "POST",
      url: "/ajax/newsletter",
      data: data,
      success: function (result)
      {
        if (result)
        {
          $("#frmNewsletter").html("<div id='newsletter_success_box'>Thank you for subscribing.</div>").hide().fadeIn(1500);
        }
        else
        {
          $("#newsletter_error_box").html("An error occured. Please try again.").show();
        }

        $.watermark.showAll();
      },
      error: function ()
      {
        $("#newsletter_error_box").html("An error occured. Please try again.").show();
        $.watermark.showAll();
      }
    });
  }
});

// tell a friend button
$("#frmTellAFriend").validate
({
  rules:
  {
    txtFriendEmailAddress:
    {
      required: true,
      email: true
    }
  },
  messages:
  {
    txtFriendEmailAddress: ""
  },
  errorLabelContainer: "#friend_error_box",
  invalidHandler: function ()
  {
    $("#friend_error_box").html("Invalid Email Address.");
    $.watermark.showAll();
  },
  submitHandler: function (form)
  {
    $("input#txtFriendDialogToEmailAddress").val($("input#txtFriendEmailAddress").val());
    $('#friend_dialog').dialog({ modal: true, width: 420, height: 460, title: 'Tell a Friend', zIndex: 10000 });
    $.watermark.showAll();
  }
});

// tell a friend dialog submit
$("#frmTellAFriendDialog").validate
({
  rules:
  {
    txtFriendDialogToEmailAddress:
    {
      required: true,
      email: true
    },
    txtFriendDialogFromEmailAddress:
    {
      required: true,
      email: true
    }
  },
  messages:
  {
    txtFriendDialogToEmailAddress: "Invalid Email Address",
    txtFriendDialogFromEmailAddress: "Invalid From Email Address"
  },
  errorLabelContainer: "#friend_dialog_error_box ul",
  wrapper: "li",
  invalidHandler: function ()
  {
    $.watermark.showAll();
  },
  submitHandler: function (form)
  {
    var data = 'from=' + $("input#txtFriendDialogFromEmailAddress").val() + '&to=' + $("input#txtFriendDialogToEmailAddress").val() + '&body=' + encodeURIComponent($("textarea#txtFriendDialogBody").val());

    $.ajax(
    {
      type: "POST",
      url: "/ajax/send-email",
      data: data,
      success: function (result)
      {
        if (result)
        {
          $('#friend_dialog').dialog("destroy");
          $("#frmTellAFriend").html("<div id='friend_success_box'>Thank you for sharing.</div>").hide().fadeIn(1500);
        }
        else
        {
          $("#friend_dialog_error_box").html("An error occured. Please try again.").show();
        }

        $.watermark.showAll();
      },
      error: function ()
      {
        $("#friend_dialog_error_box").html("An error occured. Please try again.").show();
        $.watermark.showAll();
      }
    });
  }
});
