// 
// confirmDelete
// ------------------
// Message: Confirmation Text
// RecordId:  Record Id
// FormId:  Form Id
//
// Return: Boolean
//
// Description: Let User Confirm Record Deletion
//
function confirmDelete(Message,RecordId,FormId)
{
  isConfirmed = confirm(Message);
  if(isConfirmed)
  {
    changeValueById('Action','Delete');
    changeValueById('ActionId',RecordId);
    formSubmit(FormId);
  }
  return(false);
}

// 
// verifyBirthdayCallData
// ------------------------------
// Action:  Action
// ActionId:  Action Id
// FormId:  Form Id
//
// Return: Boolean
//
// Description: Let User Verify The Birthday Call Data
//
function verifyBirthdayCallData(Action,ActionId,FormId)
{
  isGoodData = confirm('The song below will be sung. Is this correct?');
  if(isGoodData)
  {
    if(Action != '')
    {
      changeValueById('Action',Action);
    }
    if(ActionId != '')
    {
      changeValueById('ActionId',ActionId);
    }
    formSubmit(FormId);
  }
  return(false);
}

// 
// updateBirthdayMessage
// -------------------------------
//
// Description: Updates Sample Birthday Message Text
//
function updateBirthdayMessage()
{
  SpecialRelations      = '|Friend|Mom|Mommy|Mother|Dad|Daddy|Father|';
  UserFirstName         = document.getElementById('UFirstName').value;
  RelationshipTypeIndex = document.getElementById('RelationshipTypeId').selectedIndex;
  RelationshipType      = document.getElementById('RelationshipTypeId').options[RelationshipTypeIndex].text;
  RecipientFirstName    = document.getElementById('RFirstName').value;
  //
  // Capitalize Names
  //
  UserFirstName      = UserFirstName.substr(0,1).toUpperCase()      + UserFirstName.substr(1).toLowerCase();
  RecipientFirstName = RecipientFirstName.substr(0,1).toUpperCase() + RecipientFirstName.substr(1).toLowerCase();
  if(SpecialRelations.match(RelationshipType) == null)
  {
    document.getElementById('BRN').innerHTML = '&nbsp;' + RecipientFirstName;
    document.getElementById('BFM').innerHTML = 'Well This Call\'s From Your';
    document.getElementById('BRT').innerHTML = '&nbsp;' + RelationshipType;
    document.getElementById('BUN').innerHTML = '&nbsp;' + UserFirstName + '...';
  }
  else
  {
    if(RelationshipType == 'Friend')
    {
      document.getElementById('BRN').innerHTML = '&nbsp;' + RecipientFirstName;
      document.getElementById('BFM').innerHTML = 'Well This Call Is From';
      document.getElementById('BRT').innerHTML = '';
      document.getElementById('BUN').innerHTML = '&nbsp;' + UserFirstName;
    }
    else
    {
      document.getElementById('BRN').innerHTML = '&nbsp;' + RecipientFirstName;
      document.getElementById('BFM').innerHTML = 'Well This Call\'s From Your';
      document.getElementById('BRT').innerHTML = '';
      document.getElementById('BUN').innerHTML = '&nbsp;' + RelationshipType;
    }
    document.getElementById('UFirstName').value = UserFirstName;
    document.getElementById('RFirstName').value = RecipientFirstName;
  }
}

// 
// AreacodeObject
// ---------------------
// Areacode: Area Code Property
// Timezone: Timezone Property
// 
// Description:  Creates Object (Areacode, Timezone)
//
function AreacodeObject(Areacode,Timezone)
{
  this.Areacode = Areacode;
  this.Timezone = Timezone;
}

// 
// setTimezoneFromAreacodeUSAById()
// -----------------------------------------------
// TimezoneId:  Id Of Time Zone Field
// AreacodeId:  Id Of Area Code Field
// ValidAreacodeInfo:  Array Of Areacode Info (Areacode,Timezone)
//
// Return:  Boolean (True/False)
//
// Description:  Checks Area Code Against Valid Area Codes For The USA And Sets Associated Time Zone
//
function setTimezoneFromAreacodeUSAById(TimezoneId,AreacodeId,ValidAreacodeInfo)
{
  Digits = '0123456789';
  Areacode = "";
  //
  // Extract Area Code Value From Field Containing Area Code
  //
  Phonenumber = document.getElementById(AreacodeId).value.replace(/\D/g,"");
  Areacode = Phonenumber.substr(0,3);
  //
  // Check Area Code s
  //
  if(Areacode.length != 3)
  {
    alert('Incomplete Areacode: '+Areacode);
    return(false);
  }
  //
  // Check Area Code Against Valid Area Codes
  //
  for(ArrIdx in ValidAreacodeInfo)
  {
    if(Areacode == ValidAreacodeInfo[ArrIdx].Areacode)
    {
      //
      // Set Corresponding Timezone
      //
      if(ValidAreacodeInfo[ArrIdx].Timezone != 'Unknown')
      {
        document.getElementById(TimezoneId).value = ValidAreacodeInfo[ArrIdx].Timezone;
      }
      return(true);
    }
  }
  alert('Invalid USA Areacode: '+Areacode);
  return(false);
}

