function earnMiles_buyMiles_buyNowButtonClicked(form, selfUrl, otherUrl)
{
  if(form.buyForWhom[0].checked)
  {
    location.href = selfUrl;
  }
  else
  {
    location.href = otherUrl;
  }
}

function earnMiles_buyMiles_stateSelect(cbo)
{
    if ((cbo.selectedIndex == -1)||(cbo.selectedIndex == 0))
        return;
    var s = cbo.options[cbo.selectedIndex].value;
    if((s=='AB')||(s=='BC')||(s=='MB')||(s=='NB')||(s=='NF')||(s=='NS')||(s=='ON')||(s=='PE')||(s=='PQ')||(s=='SK')||(s=='SP')||(s=='YU'))
    {
        cbo.form.countryCode.selectedIndex = 0;
    }
    else
    {
        cbo.form.countryCode.selectedIndex = 1;
    }
}

function earnMiles_buyMiles_forSelf_payment_iAcceptClick(form)
{
  var inputElements = document.getElementsByTagName('input');

  for(var i = 0; i < inputElements.length; i++)
  {
    if(inputElements[i].type == "submit")
    {
      inputElements[i].disabled = false;
    }
  }
}

function earnMiles_buyMiles_forOther_payment_iAcceptClick(form)
{
  var inputElements = document.getElementsByTagName('input');

  for(var i = 0; i < inputElements.length; i++)
  {
    if(inputElements[i].type == "submit")
    {
      inputElements[i].disabled = false;
    }
  }
}


function earnMiles_buyMiles_forSelf_payment_cancelClick(href)
{
  location.href = href;
}



// 1 Number of miles input field
// 3 x Aeroplan ID input fields
// 1 First name input field
// 1 Last name input field
// 1 Email input field
// 1 Country input field
// 1 Province/state input field
// = 9 input fields
var earnMiles_buyMilesForOther_personalInfo_numFields = 9;

// These are set to defaults but should be overwritten when the method below is
// called so that they are in the local language
var earnMiles_buyMilesForOther_personalInfo_removeText = "Remove";
var earnMiles_buyMilesForOther_personalInfo_milesText = "miles";
function earnMiles_buyMilesForOther_personalInfo_setLanguageStrings(removeText, milesText)
{
  earnMiles_buyMilesForOther_personalInfo_removeText = removeText;
  earnMiles_buyMilesForOther_personalInfo_milesText = milesText;
}

function earnMiles_buyMilesForOther_personalInfo_showRecipients()
{
  var parentDiv = document.getElementById("recipientsBlock");
  var displayDiv = document.getElementById("recipientsDisplay");

  var html = "";
  var inputs = parentDiv.getElementsByTagName("input");
  var numRecipients = inputs.length / earnMiles_buyMilesForOther_personalInfo_numFields;
  for(var i = 0; i < numRecipients; i ++)
  {
    var index = i * earnMiles_buyMilesForOther_personalInfo_numFields;
    var milesQuantity = inputs[index].value;
    var aeroplanNumber1 = inputs[index+1].value;
    var aeroplanNumber2 = inputs[index+2].value;
    var aeroplanNumber3 = inputs[index+3].value;
    var firstName = inputs[index+4].value;
    var lastName = inputs[index+5].value;
    var email = inputs[index+6].value;
    var countryCode = inputs[index+7].value;
    var stateProvinceCode = inputs[index+8].value;
    
    var pos = i + 1;
    var removeText = earnMiles_buyMilesForOther_personalInfo_removeText;
    
    var recipient = "";
    recipient += firstName + " " + lastName + " ";
    recipient += aeroplanNumber1 + " " + aeroplanNumber2 + " " + aeroplanNumber3 + " ";
    recipient += milesQuantity + " " + earnMiles_buyMilesForOther_personalInfo_milesText;
    recipient += " [<a href='#' onClick='earnMiles_buyMilesForOther_personalInfo_removeRecipient(" + pos + ");return false;'>" + removeText + "</a>]"

    html += recipient + "<br />";
  }

  displayDiv.innerHTML = html;
}

function earnMiles_buyMilesForOther_personalInfo_addRecipient()
{
  var milesQuantity = document.BuyMilesForOtherPersonalInfoForm.milesQuantity_temp.value;
  var aeroplanNumber1 = document.BuyMilesForOtherPersonalInfoForm.aeroplanNumber1_temp.value;
  var aeroplanNumber2 = document.BuyMilesForOtherPersonalInfoForm.aeroplanNumber2_temp.value;
  var aeroplanNumber3 = document.BuyMilesForOtherPersonalInfoForm.aeroplanNumber3_temp.value;
  var firstName = document.BuyMilesForOtherPersonalInfoForm.firstName_temp.value;
  var lastName = document.BuyMilesForOtherPersonalInfoForm.lastName_temp.value;
  var email = document.BuyMilesForOtherPersonalInfoForm.email_temp.value;
  var countryCode = document.BuyMilesForOtherPersonalInfoForm.countryCode_temp.value;
  var stateProvinceCode = document.BuyMilesForOtherPersonalInfoForm.stateProvinceCode_temp.value;

  if(firstName == "" || lastName == "")
    return;
  
  var parentDiv = document.getElementById("recipientsBlock");
  var inputs = parentDiv.getElementsByTagName("input");
  var numRecipients = inputs.length / earnMiles_buyMilesForOther_personalInfo_numFields;
  
  var pos = numRecipients + 1;
  parentDiv.innerHTML +=
    earnMiles_buyMilesForOther_personalInfo_getRecipientAsHiddenFields(
      pos, milesQuantity, aeroplanNumber1, aeroplanNumber2, aeroplanNumber3,
      firstName, lastName, email, countryCode, stateProvinceCode);
  
  earnMiles_buyMilesForOther_personalInfo_showRecipients();
}


function earnMiles_buyMilesForOther_personalInfo_getRecipientAsHiddenFields(
  pos, milesQuantity, aeroplanNumber1, aeroplanNumber2, aeroplanNumber3,
  firstName, lastName, email, countryCode, stateProvinceCode)
{
  var html = "";
  
  html += "<input type='hidden' name='milesQuantity" + pos + "' value='" + milesQuantity + "'/>\n";
  html += "<input type='hidden' name='aeroplanNumber1" + pos + "' value='" + aeroplanNumber1 + "'/>\n";
  html += "<input type='hidden' name='aeroplanNumber2" + pos + "' value='" + aeroplanNumber2 + "'/>\n";
  html += "<input type='hidden' name='aeroplanNumber3" + pos + "' value='" + aeroplanNumber3 + "'/>\n";
  html += "<input type='hidden' name='firstName" + pos + "' value='" + firstName + "'/>\n";
  html += "<input type='hidden' name='lastName" + pos + "' value='" + lastName + "'/>\n";
  html += "<input type='hidden' name='email" + pos + "' value='" + email + "'/>\n";
  html += "<input type='hidden' name='countryCode" + pos + "' value='" + countryCode + "'/>\n";
  html += "<input type='hidden' name='stateProvinceCode" + pos + "' value='" + stateProvinceCode + "'/>\n";
  
  return html;
}


function earnMiles_buyMilesForOther_personalInfo_removeRecipient(recipientNumber)
{
  var parentDiv = document.getElementById("recipientsBlock");
  var inputs = parentDiv.getElementsByTagName("input");
  var numRecipients = inputs.length / earnMiles_buyMilesForOther_personalInfo_numFields;
  
  var hiddenHtml = "";
  var newPos = 1;
  for(var i = 0; i < numRecipients; i++)
  {
    var pos = i + 1;
    if(pos != recipientNumber)
    {
      var index = i * earnMiles_buyMilesForOther_personalInfo_numFields;
      
      var milesQuantity = inputs[index].value;
      var aeroplanNumber1 = inputs[index+1].value;
      var aeroplanNumber2 = inputs[index+2].value;
      var aeroplanNumber3 = inputs[index+3].value;
      var firstName = inputs[index+4].value;
      var lastName = inputs[index+5].value;
      var email = inputs[index+6].value;
      var countryCode = inputs[index+7].value;
      var stateProvinceCode = inputs[index+8].value;
      
      hiddenHtml += earnMiles_buyMilesForOther_personalInfo_getRecipientAsHiddenFields(
        newPos, milesQuantity, aeroplanNumber1, aeroplanNumber2, aeroplanNumber3,
        firstName, lastName, email, countryCode, stateProvinceCode);
      
      newPos++;
    }
  }
  
  var displayHtml = document.getElementById("recipientsDisplay").innerHTML;
  var displayDivHtml = "<div id='recipientsDisplay'>\n" + displayHtml + "\n</div>\n";
  parentDiv.innerHTML = displayDivHtml + hiddenHtml;
  
  earnMiles_buyMilesForOther_personalInfo_showRecipients();
}



function earnMiles_buyMilesForOther_personalInfo_getTitleText(code1)
{
    var list = getItemListTitle();
    return getListItem(list, code1);
}

function earnMiles_buyMilesForOther_personalInfo_getListItem(list, code1)
{
    for(var i = 0; i < list.length; i++)
    {
        if(list[i].code1 == code1)
        {
            return list[i].value;
        }
    }
    
    // If we can't find the value, just return the code
    return code1;
}

