function dtControl(wk,dmon,monyr,hr)
{
  this.dayofweek = document.getElementById(wk);
  this.daymonth = document.getElementById(dmon);
  this.monthyear = document.getElementById(monyr);
  this.halfhour = document.getElementById(hr);
  this.initIndex = function(dmi,myi,hri)
  {
    myDays=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
    if (hri==0) hri = 1;
    if (hri==21) hri = 20;
    this.halfhour.selectedIndex = hri;
    this.monthyear.selectedIndex = myi;
    this.daymonth.selectedIndex = dmi;
    var dm = this.daymonth.options[dmi].value;
    var my = this.monthyear.options[myi].value;
    var m = Number(my)+4;
    var dat = new Date(2008,m,dm);
    if (dm != dat.getDate())
    {
      this.monthyear.selectedIndex = Number(this.monthyear.selectedIndex) + 1;
      this.daymonth.selectedIndex = dat.getDate();
    }
    this.dayofweek.value=myDays[dat.getDay()];
    if (this.dayofweek.value=='Sat' && hri>18) this.halfhour.selectedIndex = 18;
  }
  this.initValue = function(day,my,hr)
  {
    var myi = 0;
    var hri = 0;
    switch (hr)
    {
      case '08:00' : hri=0;break;
      case '08:30' : hri=1;break;
      case '09:00' : hri=2;break;
      case '09:30' : hri=3;break;
      case '10:00' : hri=4;break;
      case '10:30' : hri=5;break;
      case '11:00' : hri=6;break;
      case '11:30' : hri=7;break;
      case '12:00' : hri=8;break;
      case '12:30' : hri=9;break;
      case '13:00' : hri=10;break;
      case '13:30' : hri=11;break;
      case '14:00' : hri=12;break;
      case '14:30' : hri=13;break;
      case '15:00' : hri=14;break;
      case '15:30' : hri=15;break;
      case '16:00' : hri=16;break;
      case '16:30' : hri=17;break;
      case '17:00' : hri=18;break;
      case '17:30' : hri=19;break;
      case '18:00' : hri=20;break;
      case '18:30' : hri=21;break;
    }
    switch (my)
    {
      case 'May 2008' : myi=0;break;
      case 'Jun 2008' : myi=1;break;
      case 'Jul 2008' : myi=2;break;
      case 'Aug 2008' : myi=3;break;
      case 'Sep 2008' : myi=4;break;
      case 'Oct 2008' : myi=5;break;
      case 'Nov 2008' : myi=6;break;
      case 'Dec 2008' : myi=7;break;
      case 'Jan 2009' : myi=8;break;
      case 'Feb 2009' : myi=9;break;
      case 'Mar 2009' : myi=10;break;
      case 'Apr 2009' : myi=11;break;
      case 'May 2009' : myi=12;break;
      case 'Jun 2009' : myi=13;break;
      case 'Jul 2009' : myi=14;break;
      case 'Aug 2009' : myi=15;break;
      case 'Sep 2009' : myi=16;break;
      case 'Oct 2009' : myi=17;break;
      case 'Nov 2009' : myi=18;break;
      case 'Dec 2009' : myi=19;break;
      case 'Jan 2010' : myi=20;break;
      case 'Feb 2010' : myi=21;break;
      case 'Mar 2010' : myi=22;break;
      case 'Apr 2010' : myi=23;break;
      case 'May 2010' : myi=24;break;
      case 'Jun 2010' : myi=25;break;
      case 'Jul 2010' : myi=26;break;
      case 'Aug 2010' : myi=27;break;
      case 'Sep 2010' : myi=28;break;
      case 'Oct 2010' : myi=29;break;
      case 'Nov 2010' : myi=30;break;
      case 'Dec 2010' : myi=31;break;
      case 'Jan 2011' : myi=32;break;
      case 'Feb 2011' : myi=33;break;
      case 'Mar 2011' : myi=34;break;
      case 'Apr 2011' : myi=35;break;
      case 'May 2011' : myi=36;break;
      case 'Jun 2011' : myi=37;break;
      case 'Jul 2011' : myi=38;break;
      case 'Aug 2011' : myi=39;break;
      case 'Sep 2011' : myi=40;break;
      case 'Oct 2011' : myi=41;break;
      case 'Nov 2011' : myi=42;break;
   }
    this.initIndex(day,myi,hri);
  }
  this.initDate = function(days)
  {
    var dat = new Date();
    dat.setDate(dat.getDate()+days);
    var d = dat.getDate();
    var m = dat.getMonth();
    var y = dat.getYear();
    if (y<500) y = y + 1900;
    var daym = (Number(y)-2008)*12+(Number(m)-4);
    this.initIndex(d,daym,0);
  }
  this.addDays = function(days)
  {
    var dat = this.displayedDate();
    dat.setDate(dat.getDate()+days);
    var d = dat.getDate();
    var m = dat.getMonth();
    var y = dat.getYear();
    if (y<500) y = y + 1900;
    var daym = (Number(y)-2008)*12+(Number(m)-4);
    this.initIndex(d,daym,0);
  }
  this.refresh= function()
  {
    if (this.daymonth.selectedIndex==0) this.daymonth.selectedIndex=1;
    this.initIndex(this.daymonth.selectedIndex,this.monthyear.selectedIndex,this.halfhour.selectedIndex);
  }
  this.displayedDate = function()
  {
    var dm = this.daymonth.options[this.daymonth.selectedIndex].value;
    var my = this.monthyear.options[this.monthyear.selectedIndex].value;
    var m = Number(my)+4;
    var mins = this.halfhour.selectedIndex * 30 + 480;
    return new Date(2008,m,dm,0,mins,0);
  }
  this.urlDate = function()
  {
    var dat = this.displayedDate();
    var y = dat.getYear();
    var m = dat.getMonth() + 1;
    if (y<500) y = y + 1900;
    return y+':'+m+':'+dat.getDate()+':'+dat.getHours()+':'+dat.getMinutes();
  }
  this.copyDate = function(c)
  {
    c.dayofweek.value = this.dayofweek.value;
    c.halfhour.selectedIndex = this.halfhour.selectedIndex;
    c.monthyear.selectedIndex = this.monthyear.selectedIndex;
    c.daymonth.selectedIndex = this.daymonth.selectedIndex;
  }
}

var surchargestart = new Date(2010,6,1);
var surchargeend = new Date(2010,8,4);
var surchargepct = 15;
var Y = 1.15;
var N = 1.00;
// array indexed by rec_id so that surcharge[rec_id] = percentage
var surcharge = [];
surcharge[11]=N;
surcharge[12]=N;
surcharge[17]=N;
surcharge[18]=N;
surcharge[19]=N;
surcharge[21]=N;
surcharge[22]=N;
surcharge[24]=N;
surcharge[25]=N;
surcharge[26]=N;
surcharge[27]=N;
surcharge[28]=N;
surcharge[29]=N;
surcharge[30]=N;

var minibus = [];
minibus[11]='N';
minibus[12]='N';
minibus[17]='N';
minibus[18]='Y';
minibus[19]='Y';
minibus[21]='N';
minibus[22]='N';
minibus[24]='N';
minibus[25]='N';
minibus[26]='N';
minibus[27]='Y';
minibus[28]='N';
minibus[29]='N';
minibus[30]='N';


function chargemult(vehicle,startdate,enddate)
{
  if (startdate > surchargeend || enddate < surchargestart) return 1.00;
  return surcharge[vehicle];
}

//function priceindex(n)
//{
//  if (n==1) return 1;
//  if (n<=3) return 2;
//  if (n<=5) return 3;
//  if (n<15) return 4;
//  if (n<28) return 5;
//  return 6;
//}

function priceindex(n)
{
  if (n<28) return n;
  return 28;
}

//SELECT concat('prices[',price_id,'][',vp.vehicle_id,']=',vp.price,';\n') 
//FROM mr_vehicle_price vp join mr_vehicle v on v.rec_id=vp.vehicle_id 
//where v.status='A' order by price_id,vehicle_id

var prices = [,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]];
//var prices = [,[],[],[],[],[],[],[]];
prices[1][11]=40.00;
prices[1][12]=60.00;
prices[1][17]=68.00;
prices[1][18]=82.00;
prices[1][19]=88.00;
prices[1][21]=32.00;
prices[1][22]=50.00;
prices[1][24]=39.00;
prices[1][25]=28.00;
prices[1][26]=36.00;
prices[1][27]=78.00;
prices[1][28]=42.00;
prices[1][29]=43.00;
prices[1][30]=68.00;
prices[2][11]=38.50;
prices[2][12]=59.00;
prices[2][17]=55.00;
prices[2][18]=70.00;
prices[2][19]=76.00;
prices[2][21]=28.00;
prices[2][22]=45.00;
prices[2][24]=34.00;
prices[2][25]=26.00;
prices[2][26]=32.00;
prices[2][27]=65.00;
prices[2][28]=39.00;
prices[2][29]=37.00;
prices[2][30]=55.00;
prices[3][11]=35.00;
prices[3][12]=58.00;
prices[3][17]=55.00;
prices[3][18]=70.00;
prices[3][19]=74.00;
prices[3][21]=28.00;
prices[3][22]=44.00;
prices[3][24]=32.00;
prices[3][25]=26.00;
prices[3][26]=29.00;
prices[3][27]=65.00;
prices[3][28]=38.00;
prices[3][29]=37.00;
prices[3][30]=55.00;
prices[4][11]=32.50;
prices[4][12]=50.00;
prices[4][17]=48.00;
prices[4][18]=60.00;
prices[4][19]=70.00;
prices[4][21]=24.00;
prices[4][22]=39.00;
prices[4][24]=29.00;
prices[4][25]=22.00;
prices[4][26]=26.50;
prices[4][27]=57.00;
prices[4][28]=35.00;
prices[4][29]=33.00;
prices[4][30]=48.00;
prices[5][11]=31.00;
prices[5][12]=50.00;
prices[5][17]=48.00;
prices[5][18]=57.00;
prices[5][19]=70.00;
prices[5][21]=24.00;
prices[5][22]=39.00;
prices[5][24]=29.00;
prices[5][25]=21.00;
prices[5][26]=25.00;
prices[5][27]=57.00;
prices[5][28]=34.00;
prices[5][29]=33.00;
prices[5][30]=48.00;
prices[6][11]=29.00;
prices[6][12]=50.00;
prices[6][17]=39.00;
prices[6][18]=54.00;
prices[6][19]=66.00;
prices[6][21]=21.00;
prices[6][22]=36.00;
prices[6][24]=26.00;
prices[6][25]=18.50;
prices[6][26]=23.00;
prices[6][27]=50.00;
prices[6][28]=30.00;
prices[6][29]=26.50;
prices[6][30]=39.00;
prices[7][11]=28.00;
prices[7][12]=50.00;
prices[7][17]=39.00;
prices[7][18]=54.00;
prices[7][19]=66.00;
prices[7][21]=21.00;
prices[7][22]=36.00;
prices[7][24]=26.00;
prices[7][25]=17.00;
prices[7][26]=22.00;
prices[7][27]=50.00;
prices[7][28]=28.00;
prices[7][29]=26.50;
prices[7][30]=39.00;
prices[8][11]=28.00;
prices[8][12]=50.00;
prices[8][17]=39.00;
prices[8][18]=54.00;
prices[8][19]=66.00;
prices[8][21]=21.00;
prices[8][22]=36.00;
prices[8][24]=24.50;
prices[8][25]=17.00;
prices[8][26]=22.00;
prices[8][27]=50.00;
prices[8][28]=26.00;
prices[8][29]=26.50;
prices[8][30]=39.00;
prices[9][11]=28.00;
prices[9][12]=50.00;
prices[9][17]=39.00;
prices[9][18]=54.00;
prices[9][19]=66.00;
prices[9][21]=21.00;
prices[9][22]=36.00;
prices[9][24]=24.00;
prices[9][25]=17.00;
prices[9][26]=22.00;
prices[9][27]=50.00;
prices[9][28]=26.00;
prices[9][29]=26.50;
prices[9][30]=39.00;
prices[10][11]=26.00;
prices[10][12]=50.00;
prices[10][17]=39.00;
prices[10][18]=54.00;
prices[10][19]=66.00;
prices[10][21]=21.00;
prices[10][22]=34.00;
prices[10][24]=24.00;
prices[10][25]=17.00;
prices[10][26]=22.00;
prices[10][27]=50.00;
prices[10][28]=26.00;
prices[10][29]=26.50;
prices[10][30]=39.00;
prices[11][11]=26.00;
prices[11][12]=50.00;
prices[11][17]=39.00;
prices[11][18]=51.00;
prices[11][19]=66.00;
prices[11][21]=21.00;
prices[11][22]=34.00;
prices[11][24]=24.00;
prices[11][25]=17.00;
prices[11][26]=22.00;
prices[11][27]=50.00;
prices[11][28]=26.00;
prices[11][29]=26.50;
prices[11][30]=39.00;
prices[12][11]=26.00;
prices[12][12]=50.00;
prices[12][17]=39.00;
prices[12][18]=51.00;
prices[12][19]=66.00;
prices[12][21]=21.00;
prices[12][22]=34.00;
prices[12][24]=24.00;
prices[12][25]=17.00;
prices[12][26]=22.00;
prices[12][27]=50.00;
prices[12][28]=26.00;
prices[12][29]=26.50;
prices[12][30]=39.00;
prices[13][11]=26.00;
prices[13][12]=50.00;
prices[13][17]=39.00;
prices[13][18]=51.00;
prices[13][19]=66.00;
prices[13][21]=21.00;
prices[13][22]=34.00;
prices[13][24]=24.00;
prices[13][25]=17.00;
prices[13][26]=22.00;
prices[13][27]=50.00;
prices[13][28]=26.00;
prices[13][29]=26.50;
prices[13][30]=39.00;
prices[14][11]=26.00;
prices[14][12]=50.00;
prices[14][17]=39.00;
prices[14][18]=51.00;
prices[14][19]=64.00;
prices[14][21]=21.00;
prices[14][22]=34.00;
prices[14][24]=24.00;
prices[14][25]=17.00;
prices[14][26]=21.00;
prices[14][27]=50.00;
prices[14][28]=24.50;
prices[14][29]=26.50;
prices[14][30]=39.00;
prices[15][11]=25.00;
prices[15][12]=42.00;
prices[15][17]=37.00;
prices[15][18]=48.00;
prices[15][19]=62.00;
prices[15][21]=18.00;
prices[15][22]=34.00;
prices[15][24]=22.00;
prices[15][25]=15.00;
prices[15][26]=20.00;
prices[15][27]=48.00;
prices[15][28]=24.00;
prices[15][29]=26.00;
prices[15][30]=37.00;
prices[16][11]=25.00;
prices[16][12]=42.00;
prices[16][17]=37.00;
prices[16][18]=48.00;
prices[16][19]=62.00;
prices[16][21]=18.00;
prices[16][22]=34.00;
prices[16][24]=22.00;
prices[16][25]=15.00;
prices[16][26]=20.00;
prices[16][27]=48.00;
prices[16][28]=24.00;
prices[16][29]=26.00;
prices[16][30]=37.00;
prices[17][11]=25.00;
prices[17][12]=42.00;
prices[17][17]=37.00;
prices[17][18]=48.00;
prices[17][19]=62.00;
prices[17][21]=18.00;
prices[17][22]=34.00;
prices[17][24]=22.00;
prices[17][25]=15.00;
prices[17][26]=20.00;
prices[17][27]=48.00;
prices[17][28]=24.00;
prices[17][29]=26.00;
prices[17][30]=37.00;
prices[18][11]=25.00;
prices[18][12]=42.00;
prices[18][17]=37.00;
prices[18][18]=48.00;
prices[18][19]=62.00;
prices[18][21]=18.00;
prices[18][22]=34.00;
prices[18][24]=22.00;
prices[18][25]=15.00;
prices[18][26]=20.00;
prices[18][27]=48.00;
prices[18][28]=24.00;
prices[18][29]=26.00;
prices[18][30]=37.00;
prices[19][11]=25.00;
prices[19][12]=42.00;
prices[19][17]=37.00;
prices[19][18]=48.00;
prices[19][19]=62.00;
prices[19][21]=18.00;
prices[19][22]=34.00;
prices[19][24]=22.00;
prices[19][25]=15.00;
prices[19][26]=20.00;
prices[19][27]=48.00;
prices[19][28]=24.00;
prices[19][29]=26.00;
prices[19][30]=37.00;
prices[20][11]=25.00;
prices[20][12]=42.00;
prices[20][17]=37.00;
prices[20][18]=48.00;
prices[20][19]=62.00;
prices[20][21]=18.00;
prices[20][22]=34.00;
prices[20][24]=22.00;
prices[20][25]=15.00;
prices[20][26]=20.00;
prices[20][27]=48.00;
prices[20][28]=24.00;
prices[20][29]=26.00;
prices[20][30]=37.00;
prices[21][11]=25.00;
prices[21][12]=42.00;
prices[21][17]=37.00;
prices[21][18]=48.00;
prices[21][19]=62.00;
prices[21][21]=18.00;
prices[21][22]=34.00;
prices[21][24]=22.00;
prices[21][25]=15.00;
prices[21][26]=19.00;
prices[21][27]=48.00;
prices[21][28]=23.00;
prices[21][29]=26.00;
prices[21][30]=37.00;
prices[22][11]=25.00;
prices[22][12]=42.00;
prices[22][17]=37.00;
prices[22][18]=48.00;
prices[22][19]=62.00;
prices[22][21]=18.00;
prices[22][22]=34.00;
prices[22][24]=22.00;
prices[22][25]=15.00;
prices[22][26]=19.00;
prices[22][27]=48.00;
prices[22][28]=22.00;
prices[22][29]=26.00;
prices[22][30]=37.00;
prices[23][11]=25.00;
prices[23][12]=42.00;
prices[23][17]=37.00;
prices[23][18]=48.00;
prices[23][19]=62.00;
prices[23][21]=18.00;
prices[23][22]=34.00;
prices[23][24]=22.00;
prices[23][25]=15.00;
prices[23][26]=19.00;
prices[23][27]=48.00;
prices[23][28]=22.00;
prices[23][29]=26.00;
prices[23][30]=37.00;
prices[24][11]=25.00;
prices[24][12]=42.00;
prices[24][17]=37.00;
prices[24][18]=48.00;
prices[24][19]=62.00;
prices[24][21]=18.00;
prices[24][22]=34.00;
prices[24][24]=22.00;
prices[24][25]=15.00;
prices[24][26]=19.00;
prices[24][27]=48.00;
prices[24][28]=22.00;
prices[24][29]=26.00;
prices[24][30]=37.00;
prices[25][11]=25.00;
prices[25][12]=42.00;
prices[25][17]=37.00;
prices[25][18]=48.00;
prices[25][19]=62.00;
prices[25][21]=18.00;
prices[25][22]=34.00;
prices[25][24]=22.00;
prices[25][25]=15.00;
prices[25][26]=19.00;
prices[25][27]=48.00;
prices[25][28]=22.00;
prices[25][29]=26.00;
prices[25][30]=37.00;
prices[26][11]=25.00;
prices[26][12]=42.00;
prices[26][17]=37.00;
prices[26][18]=48.00;
prices[26][19]=62.00;
prices[26][21]=18.00;
prices[26][22]=34.00;
prices[26][24]=22.00;
prices[26][25]=15.00;
prices[26][26]=19.00;
prices[26][27]=48.00;
prices[26][28]=22.00;
prices[26][29]=26.00;
prices[26][30]=37.00;
prices[27][11]=25.00;
prices[27][12]=42.00;
prices[27][17]=37.00;
prices[27][18]=48.00;
prices[27][19]=62.00;
prices[27][21]=18.00;
prices[27][22]=34.00;
prices[27][24]=22.00;
prices[27][25]=15.00;
prices[27][26]=19.00;
prices[27][27]=48.00;
prices[27][28]=22.00;
prices[27][29]=26.00;
prices[27][30]=37.00;
prices[28][11]=21.00;
prices[28][12]=38.00;
prices[28][17]=35.00;
prices[28][18]=43.00;
prices[28][19]=55.00;
prices[28][21]=17.00;
prices[28][22]=32.00;
prices[28][24]=20.00;
prices[28][25]=14.00;
prices[28][26]=17.50;
prices[28][27]=43.00;
prices[28][28]=20.50;
prices[28][29]=25.00;
prices[28][30]=35.00;
prices[29][11]=395.00;
prices[29][12]=680.00;
prices[29][17]=520.00;
prices[29][18]=700.00;
prices[29][19]=820.00;
prices[29][21]=340.00;
prices[29][22]=560.00;
prices[29][24]=445.00;
prices[29][25]=285.00;
prices[29][26]=398.00;
prices[29][27]=700.00;
prices[29][28]=438.00;
prices[29][29]=445.00;
prices[29][30]=679.00;


function price(vehicle,days,startdate,enddate)
{
  var dayi = priceindex(days);
  var mult = chargemult(vehicle,startdate,enddate);
  var p = prices[dayi][vehicle] * mult * days;
  return p.toFixed(2);
}


