(function($) {
  $(document).ready(function() {
    // HTML5 placeholder attribute browser compatibility
    $("form#login-form, form.contact-form").placeholder();
    
    // Contact/support form validation
    $("form.contact-form").validate({
      rules: {
        "message[from_name]": "required",
        "message[from_email]": {
          required: true,
          email: true
        },
        "message[subject]": "required",
        "message[text]": "required"
      },
      messages: {
        "message[from_name]": {
          required: "* Required"
        },
        "message[from_email]": {
          required: "* Required",
          email: "* Invalid email"
        },
        "message[subject]": {
          required: "* Required"
        },
        "message[text]": {
          required: "* Please enter a message.<br/>"
        },
      },
      errorPlacement: function(error, element) {
        if (element.attr("name") == "message[text]")
          error.insertBefore(element);
        else
          error.insertAfter(element);
      },
      submitHandler: function(form) {
        // Disable submit button and add spinner
        $(":submit", form).attr("disabled", "disabled");
        $("img.spinner", form).css("visibility", "visible");
        form.submit();
      }
    });
    
    // Login form validation and handling of submit
    $("form#login-form").validate({
      rules: {
        "username": "required",
        "password": "required"
      },
      errorPlacement: function(error, element) {
        // Don't display them
      },
      submitHandler: function(form) {
        // Clean up if necessary (protect against botched validation)
        $("input:hidden", form).remove();

        var username = $(":input[name='username']", form).val();
        var password = $(":input[name='password']", form).val();

        switch ($("select", form).val()) {
          case "horde":
            $(form).attr("action", "http://64.187.103.185/horde/imp/redirect.php");
            $(form).append('<input type="hidden" name="actionID" value=""/>')
              .append('<input type="hidden" name="url" value=""/>')
              .append('<input type="hidden" name="load_frameset" value="1"/>')
              .append('<input type="hidden" name="autologin" value="0"/>')
              .append('<input type="hidden" name="server_key" value="IMAP"/>')
              .append('<input type="hidden" name="imapuser" value="'+username+'"/>')
              .append('<input type="hidden" name="pass" value="'+password+'"/>');
            break;
          case "dwmail":
            $(form).attr("action", "http://64.187.103.185/dwmail/dologin.php");
            $(form).append('<input type="hidden" name="tpl" value="silver"/>')
              .append('<input type="hidden" name="l" value="en_US"/>')
              .append('<input type="hidden" name="e" value=""/>')
              .append('<input type="hidden" name="s" value=""/>')
              .append('<input type="hidden" name="port" value=""/>')
              .append('<input type="hidden" name="d" value=""/>')
              .append('<input type="hidden" name="st" value=""/>')
              .append('<input type="hidden" name="savesettings value=""/>')
              .append('<input type="hidden" name="redir" value=""/>')
              .append('<input type="hidden" name="dst" value="false"/>')
              .append('<input type="hidden" name="u" value="'+username+'"/>')
              .append('<input type="hidden" name="p" value="'+password+'"/>');
            break;
          case "squirrelmail":
            $(form).attr("action", "http://64.187.103.185/squirrelmail/src/redirect.php");
            $(form).append('<input type="hidden" name="js_autodetect_results" value="0"/>')
              .append('<input type="hidden" name="just_logged_in" value="1"/>')
              .append('<input type="hidden" name="login_username" value="'+username+'"/>')
              .append('<input type="hidden" name="secretkey" value="'+password+'"/>');
            break;
          case "hsphere":
          default:
            $(form).attr("action", "http://cp.webconnecthost.com/psoft/servlet/psoft.hsphere.CP");
            $(form).append('<input type="hidden" name="action" value="login"/>')
              .append('<input type="hidden" name="ftemplate" value="design/login.html"/>')
              .append('<input type="hidden" name="requestURL" value=""/>')
              .append('<input type="hidden" name="login" value="'+username+'"/>');
              // password input name = password, already in our form
              //.append('<input type="hidden" name="password" value="'+password+'"/>');
        }
        // Disable submit button and add spinner
        $(":submit", form).attr("disabled", "disabled");
        $("img.spinner", form).css("visibility", "visible");
        form.submit();
      }
    });
  });
})(jQuery);