$(document).ready(function() {  

  // select radio button when entering "Other" value
  $("#fieldother").blur(function() {
    if ($.trim(this.value) != ''){  
      $("#radioother").attr("checked","checked");
    }  
  });  

  // custom validation methods
  $.validator.addMethod("vfname", function(value, element) { if (value == "First Name") { return false; } else { return true; } }, "Please enter your first name.");
  $.validator.addMethod("vlname", function(value, element) { if (value == "Last Name") { return false; } else { return true; } }, "Please enter your last name.");
  $.validator.addMethod("vcompany", function(value, element) { if (value == "Company") { return false; } else { return true; } }, "Please enter your company's name.");
  $.validator.addMethod("vtopicarea", function(value, element) { if (value == "Topic Area") { return false; } else { return true; } }, "Please enter your topic of interest.");
  $.validator.addMethod("vwebsiteurl", function(value, element) { if (value == "Site URL (explain if none)") { return false; } else { return true; } }, "Please enter a URL or explanation.");
  
  // Apply Now
  $(".apply-now-form").validate({
    errorPlacement: function(error, element) {
      error.appendTo( element.parent("td").next("td") );
    },
    rules: {
      firstname: {
        required: true,
        vfname: true
      },
      lastname: {
        required: true,
        vlname: true
      },
      company: {
        required: true,
        vcompany: true
      },
      topicarea: {
        required: true,
        vtopicarea: true
      },
      industry: {
        required: true
      },
      industryother: {
        required: "#radioother:checked"
      },
      websiteurl: {
        required: true,
        vwebsiteurl: true
      },
      email: {
        required: true,
        email: true
      }
    },
    messages: {
      firstname: {
        required: "Please enter your first name."
      },
      lastname: {
        required: "Please enter your last name."
      },
      company: {
        required: "Please enter your company's name."
      },
      topicarea: {
        required: "Please enter your topic of interest."
      },
      industry: {
        required: "Please specify your industry."
      },
      industryother: {
        required: 'Please elaborate on "Other."'
      },
      websiteurl: {
        required: "Please enter a URL or explanation."
      },
      email: {
        required: "Please specify your email address.",
        email: "Please enter a valid email address."
      }
    }
  });
  
  // require "Other" field when "Other" radio button is checked
  $("#radioother").click(function() {
    $("#fieldother").valid();
  });
  
  // Contact Us
  $(".contact-us-form").validate({
    errorPlacement: function(error, element) {
      error.appendTo( element.parent("td").next("td") );
    },
    rules: {
      firstname: {
        required: true,
        vfname: true
      },
      lastname: {
        required: true,
        vlname: true
      },
      company: {
        required: true,
        vcompany: true
      },
      email: {
        required: true,
        email: true
      }
    },
    messages: {
      firstname: {
        required: "Please enter your first name."
      },
      lastname: {
        required: "Please enter your last name."
      },
      company: {
        required: "Please enter your company's name."
      },
      email: {
        required: "Please specify your email address.",
        email: "Please enter a valid email address."
      }
    }
  });
  
  // Newsletter
  $(".newsletter-form").validate({
    errorPlacement: function(error, element) {
      error.appendTo( element.parent("td").parent("tr").next("tr td") );
    },
    rules: {
      firstname: {
        required: true
      },
      email: {
        required: true,
        email: true
      }
    },
    messages: {
      firstname: {
        required: "Please enter your first name."
      },
      email: {
        required: "Please specify your email address.",
        email: "Please enter a valid email address."
      }
    }
  });
  
});