function initOnLoad() {
  externalLinks();
  popupWindows();
  popupWindowsMemberships();
}

function externalLinks() {
  if (!document.getElementsByTagName) return;
  var anchors = document.getElementsByTagName("a");
  for (var i = 0; i < anchors.length; i++) {
    var anchor = anchors[i];
    if (anchor.getAttribute("href") &&
        anchor.getAttribute("rel") == "external")
      anchor.target = "_blank";
  }
}

function getElementsByClassName(className, tag, elm) {
  var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
  var tag = tag || "*";
  var elm = elm || document;
  var elements = (tag == "*" && elm.all) ? elm.all : elm.getElementsByTagName(tag);
  var returnElements = [];
  var current;
  var length = elements.length;
  for (var i = 0; i < length; i++) {
    current = elements[i];
    if (testClass.test(current.className)) {
      returnElements.push(current);
    }
  }
  return returnElements;
}

function popupWindows() {
  var popupLinks = getElementsByClassName('buy_recipes');
  // var current;
  for (var i = 0; i < popupLinks.length; i++) {
    var current = popupLinks[i];
    current.onclick = function() {
      window.open(this.getAttribute("rel"), 'popup_window', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=650,height=450');
      return false;
    };
  }
}

function popupWindowsMemberships() {
  var popupLinks = getElementsByClassName('membership_details');
  // var current;
  for (var i = 0; i < popupLinks.length; i++) {
    var current = popupLinks[i];
    current.onclick = function() {
      window.open(this.getAttribute("rel"), 'popup_window', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=500,height=150');
      return false;
    };
  }
}

window.onload = initOnLoad;

// general-purpose functions used by more than one page
function payToPaypal(name, price, requireShipping) {
  $('#hidden_paypal_form #name').val(name);
  $('#hidden_paypal_form #price').val(price);
  if (requireShipping) {
    $('#hidden_paypal_form #shipping').val("2"); //prompt for an address, and require one
  } else {
    $('#hidden_paypal_form #shipping').val("1"); //do not prompt for an address
  }
  $('#hidden_paypal_form').submit();
}

function paySubscriptionToPaypal(subscription_item_name, amount_per_month, requireShipping) {
  $('#hidden_paypal_subscription_form #subscription_item_name').val(subscription_item_name);
  $('#hidden_paypal_subscription_form #subscription_amount').val(amount_per_month);
  if (requireShipping) {
    $('#hidden_paypal_subscription_form #subscription_shipping').val("2"); //prompt for an address, and require one
  } else {
    $('#hidden_paypal_subscription_form #subscription_shipping').val("1"); //do not prompt for an address
  }
  $('#hidden_paypal_subscription_form').submit();
}

function payGiftMembershipToPaypal(name, price) {
  $('#hidden_paypal_gift_membership_form #name').val(name);
  $('#hidden_paypal_gift_membership_form #price').val(price);
  var recipient_first_name_id = "#" + price.split(".")[0] + "_recipient_first_name";
  $('#hidden_paypal_gift_membership_form #os0').val($(recipient_first_name_id).val());
  var recipient_last_name_id = "#" + price.split(".")[0] + "_recipient_last_name";
  $('#hidden_paypal_gift_membership_form #os1').val($(recipient_last_name_id).val());
  var recipient_email_id = "#" + price.split(".")[0] + "_recipient_email";
  $('#hidden_paypal_gift_membership_form #os2').val($(recipient_email_id).val());
  $('#hidden_paypal_gift_membership_form').submit();
  $(recipient_first_name_id).val('');
  $(recipient_last_name_id).val('');
  $(recipient_email_id).val('');
}

function scrollToInfo() {
  $.scrollTo($('#info'));
}