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/2012', '05/19/2012', '1450');
add_rate('05/20/2012', '06/23/2012', '2050');
add_rate('06/24/2012', '08/25/2012', '2450');
add_rate('08/26/2012', '09/01/2012', '2050');
add_rate('09/02/2012', '09/22/2012', '1800');
add_rate('09/23/2012', '12/31/2012', '1450');

