// Use noconflict-compatible document.ready wrapper to allow
// $ alias when using wordpress jquery
(function($) {
  // Recreate $.post with 'error' callback
  $.post = function( url, data, callback, type ) {
    if ( jQuery.isFunction( data ) ) {
      callback = data;
      data = {};
    }
    settings = {
      type: "POST",
      url: url,
      data: data,
      dataType: type
    };
    if ( jQuery.isFunction( callback ) ) {
      settings.success = callback;
    } else {
      if ( jQuery.isFunction( callback.success ) ) {
        settings.success = callback.success;
      }
      if ( jQuery.isFunction( callback.error ) ) {
        settings.error = callback.error;
      }
    }

    return jQuery.ajax(settings);
  }

  // Create missing function
  $.postJSON = function(url, data, callback) {

    // Force disable jQuery cache setting
    var cache = jQuery.ajaxSettings.cache; jQuery.ajaxSettings.cache = false;

    $.post(url, data, callback, "json");

    // Restore jQuery caching setting
    jQuery.ajaxSettings.cache = cache;
  };

  // document.ready functions
  $(function() {
    $(".headlines").jCarouselLite({
      vertical: true,
      hoverPause:true,
      visible: 1,
      auto:2000,
      speed:1000
    });

    // donation page
    if ($('#DonateButtonForm').length != 0) {
      // Intercept form submission and process ajax first
      var captured = false;
      $("#DonateButtonForm").submit(function(e) {
        if (!captured) {
          e.preventDefault();
          // Form validation
          var valid = true,
              forminfo = {
                fname: $('input[name=fname]').val(),
                lname: $('input[name=lname]').val(),
                employer: $('input[name=employer]').val(),
                occupation: $('input[name=occupation]').val(),
                address: $('input[name=address]').val(),
                city: $('input[name=city]').val(),
                state: $('select[name=state]').val(),
                zip: $('input[name=zip]').val(),
                email: $('input[name=email]').val(),
                phone: $('input[name=phone]').val(),
                optin: $('input[name=optin]').is(':checked')?'1':'0'
              },
              email_reg = /^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+/,
              price_reg =  /^\d+(\.\d{2})*$/;
          for (i in forminfo) {
            valid = forminfo[i].length < 1 ? false : valid;
            if (i == 'state' && forminfo[i] == 0) { valid = false; }
            if (i == 'email' && email_reg.test(forminfo[i]) != true) { valid = false; }
           // if (i == 'item_price_1' && (forminfo[i] == 0 || forminfo[i] > 6000 || price_reg.test(forminfo[i]) != true)) { valid = false; }
          }
          if (valid) {
            $.postJSON('/contribute/',
                     $('#DonateButtonForm').serialize(),
                     { success: function(data){ captured = true; $('#DonateButtonForm').submit(); },
                       error:   function(){ alert('There was a problem submitting your information.'); captured = false; }
                     });
          } else {
            alert('Validation has failed, please check the form.'); captured = false; return false;
          }
        } else {
          return true;
        }
      });
    }
    // volunteer page
    if ($('#volunteerfrm').length != 0) {
    }

  });
})(jQuery);