var rates = new Array();

function rate(start_date, end_date, price)
{
  this.start_date = new Date(start_date);
  this.end_date = new Date(end_date);
  this.price = price;
}

function add_rate(start_date, end_date, price)
{
  rates[rates.length] = new rate(start_date, end_date, price);
  rates = rates.sort(sort_rate_dates);
}

function sort_rate_dates(a, b) 
{ 
   if (a.start_date > b.start_date) 
      return 1;
   if (a.start_date < b.start_date) 
      return -1; 
   return 0;
} 

function get_rate_idx(d)
{
  if (typeof(d) == "string")
    d = new Date(d);
  for (var i = 0; i < rates.length; i++)
  {
    if (rates[i].start_date <= d &&
        rates[i].end_date >= d)
      return i;
  }
  return -1;
}

function get_rate(d)
{
  var idx = get_rate_idx(d);
  if (idx == -1)
    return "Unknown";
  else
    return rates[idx].price;
}

add_rate('01/01/2010', '05/22/2010', '1450');
add_rate('05/23/2010', '06/26/2010', '2050');
add_rate('06/27/2010', '08/28/2010', '2450');
add_rate('08/29/2010', '09/04/2010', '2050');
add_rate('09/05/2010', '09/25/2010', '1800');
add_rate('09/26/2010', '12/31/2010', '1450');
