﻿function StorknetDate(d)
{
  if (d == null) return '';
  try
  {
    var d_names = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");

    var m_names = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");

    var curr_day = d.getDay();
    var curr_date = d.getDate();
    var curr_month = d.getMonth();
    var curr_year = d.getFullYear();

    return d_names[curr_day] + ', ' + m_names[curr_month] + ' ' + curr_date + ', ' + curr_year;
  } catch (err) {
    return '';
  }
}

function Storknet() {
  this.babyCtr = 0;
  this.babies = new Array();
  
  this.AddBaby = AddBaby;
  this.DisplayAllBabies = DisplayAllBabies;
  this.DisplayOneBaby = DisplayOneBaby;
}
function AddBaby(baby) {
  this.babies[this.babyCtr++] = baby;
}
function DisplayAllBabies() {
  var s = '';
  var todayDate = new Date();
  todayDate.setFullYear(todayDate.getFullYear(), todayDate.getMonth(), todayDate.getDate() - 1);
  s = '<table class="StorknetBabies"><tr><td class="Name"><span class="ContentHeader">Name</span></td><td><span class="ContentHeader">Date of Birth</span></td></tr>';
  for (i = 0; i < this.babyCtr; i++) {
    if (this.babies[i].displayToDate >= todayDate)
    {
      s += '<tr><td class="Name"><a href="#' + i + '" onclick="StorknetOneBaby(' + i + ');return false;" class="Storknet' + this.babies[i].gender + '">' + this.babies[i].name + '</a></td><td>' + StorknetDate(this.babies[i].birthDate) + '</td></tr>';
    }
  }
  s += '</table>';
  return s;
}
function DisplayOneBaby(babyIndex) {
  return this.babies[babyIndex].Display();
}

function Baby(name, gender, birthMonth, birthDay, birthYear, weight, height, parents, imageName) {
  // Properties
  this.name = name;
  this.gender = gender;
  var bd = new Date();
  bd.setFullYear(birthYear, birthMonth - 1, birthDay);
  this.birthDate = bd;
  this.weight = weight;
  this.height = height;
  this.parents = parents;
  this.imageName = imageName;
  this.grandparentsCtr = 0;
  this.grandparents = new Array();
  this.siblingsCtr = 0;
  this.siblings = new Array();
  this.greatGrandparentsCtr = 0;
  this.greatGrandparents = new Array();
  this.miscMessage = '';
  this.parentsHeading = 'Parents';
  this.siblingsHeading = 'Siblings';
  this.grandparentsHeading = 'Grandparents'
  this.greatGrandparentsHeading = 'Great Grandparents';
  this.displayToDate = addDays(this.birthDate, 31);

  // Functions
  this.AddGrandparents = AddGrandparents;
  this.AddSibling = AddSibling;
  this.AddGreatGrandparents = AddGreatGrandparents;
  this.Display = DisplayBaby;
  this.ExtendDisplay = ExtendDisplay;
}

function AddGrandparents (grandparentsName){
  this.grandparents[this.grandparentsCtr++] = grandparentsName;
}
function AddSibling (siblingName){
  this.siblings[this.siblingsCtr++] = siblingName;
}
function AddGreatGrandparents (greatGrandparentsName){
  this.greatGrandparents[this.greatGrandparentsCtr++] = greatGrandparentsName;
}
function DisplayBaby() {
  var s = '';
  s += '<div class="Paragraph"><a href="#" onclick="StorknetAllBabies();">Return to Babies</a></div>';
  if (this.imageName != '')
    s += '<img src="babies/' + this.imageName + '.jpg" class="StorknetBaby" alt="' + this.name + '"/>';
  s += '<table>';
  // It's a boy or girl
  s += '<tr><td colspan="2" style="text-align:center;">';
  if (this.gender == 'M') s += '<span class="ItsABoy">It\'s a Boy!</span>'; 
  else s += '<span class="ItsAGirl">It\'s a Girl!</span>';
  s += '</td><tr>';

  s += '<tr><td colspan="2" style="text-align:center;"><div class="ContentHeader">' + this.name + '</div></td></tr>';
  s += '<tr><td colspan="2" style="text-align:center;">' + StorknetDate(this.birthDate) + '</td></tr>';
  if (this.weight != '') s += '<tr><td colspan="2" style="text-align:center;">' + this.weight + '</td></tr>';
  if (this.height != '') s += '<tr><td colspan="2" style="text-align:center;">' + this.height + '</td></tr>';
  s += '<tr><td colspan="2"><br/></td></tr>';
  s += '<tr><th>' + this.parentsHeading + ':</th><td>' + this.parents + '</td></tr>';

  if (this.siblingsCtr > 0) {
    s += '<tr><th>' + this.siblingsHeading + ':</th><td>';
    for (i = 0; i < this.siblingsCtr; i++) {
      s += this.siblings[i] + '<br/>';
    }
    s += '</td></tr>';
  }

  if (this.grandparentsCtr > 0) {
    s += '<tr><th>' + this.grandparentsHeading + ':</th><td>';
    for (i = 0; i < this.grandparentsCtr; i++) {
      s += this.grandparents[i] + '<br/>';
    }
    s += '</td></tr>';
  }

  if (this.greatGrandparentsCtr > 0) {
    s += '<tr><th>' + this.greatGrandparentsHeading + ':</th><td>';
    for (i = 0; i < this.greatGrandparentsCtr; i++) {
      s += this.greatGrandparents[i] + '<br/>';
    }
    s += '</td></tr>';
  }

  if (this.miscMessage != '') s += '<tr><td colspan="2"><br/>' + this.miscMessage + '</td></tr>';

  s += '</table>';
  return s;
}

function ExtendDisplay(days) {
  if (isNaN(days)) return;
  this.displayToDate = addDays(this.displayToDate, days);
}

function addDays(myDate, days) {
    return new Date(myDate.getTime() + days*24*60*60*1000);
}

