var dbg=0; var overlap_book =0; var start_eq_end=1; var start_after_end=2; var no_start_and_end=3;   var overlap_book_str="Some of the dates you have requested are already booked"; var start_eq_end_str="You cannot arrive and leave on the same day!"; var start_after_end_str="Your departure day cannot be before your arrival day!"; var no_start_and_end_str="You must select an arrival and departure day";   var waps=new Array("JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"); var dipdap=new Array("S", "M", "T", "W", "T", "F", "S");   var ol;       var ths=new Array(); var start_calendar=undefined; var end_calendar=undefined;     var mkjh=new Array(); var Customers=new Array(); var currency=new Array(); var currency_id=new Array();     var edit_mode;   var ths_scroll=0;   var NO_BOOKING=0; var BOOKING_START=1; var BOOKING_END=2; var BOOKING_START_END=3; var BOOKING_NORMAL=4;     var this_day=new kjhjfd(1, 1, 2000); function set_this_day(_day, _month, _year)  {    this_day.day=parseInt(_day, 10);   this_day.month=parseInt(_month, 10);   this_day.year=parseInt(_year, 10); }      function index_from_now(d, m, y)  {   var d=new kjhjfd(d,m,y);  return d.to_int() - this_day.to_int(); }    function x_b()  {   currency.length=0;  currency=new Array();  currency_id.length=0;  currency_id=new Array();    for (var i=0;i < 400;i++)    currency.push(NO_BOOKING);  for (var bk=0;bk < mkjh.length;bk++)   {    if (!mkjh[bk].editing)    {     var start_from_now=index_from_now(mkjh[bk].start.day, mkjh[bk].start.month, mkjh[bk].start.year);    var end_from_now=index_from_now(mkjh[bk].end.day, mkjh[bk].end.month, mkjh[bk].end.year);    var loop_end=400;    if (end_from_now >= 0 && start_from_now < 400)     {        currency[start_from_now] += BOOKING_START;     currency_id[start_from_now]=mkjh[bk].booking_id;           if (end_from_now < 399)      {       currency[end_from_now] += BOOKING_END;      currency_id[end_from_now]=mkjh[bk].booking_id;      loop_end=end_from_now;     }      for (var l=start_from_now+1;l < loop_end;l++)      {       currency[l]=BOOKING_NORMAL;          currency_id[l]=mkjh[bk].booking_id;     }     }    }   }  }         kjhjfd.prototype.constructor=new kjhjfd(); kjhjfd.prototype.get_date_string=kjhjfd_get_date_string; kjhjfd.prototype.to_int=kjhjfd_to_int;   function kjhjfd(_day, _month, _year)  {   this.day=parseInt(_day, 10);  this.month=parseInt(_month, 10);  this.year=parseInt(_year, 10);       }    function kjhjfd_get_date_string()  {   return this.day + "/" + this.month + "/" + this.year; }    function kjhjfd_to_int()  {       var toint=0;  for (var y=2000;y < this.year;y++)   {    toint += 365;   if ((y%4)==0)     toint++;  }      for (var m=1;m<this.month;m++)     toint += days_per_month(m, this.year);  toint += this.day;    return toint; }          BookingObject.prototype.constructor=new BookingObject(); BookingObject.prototype.IsOverlap=BookingObject_IsOverlap;   function BookingObject(customer_id,  booking_id, _start_d, _start_m, _start_y, _end_d, _end_m, _end_y)  {   this.customer_id=customer_id;   this.booking_id=booking_id;  this.editing=false;     if (_start_d && _end_d)   {    this.start=new kjhjfd(_start_d, _start_m, _start_y);   this.end=new kjhjfd(_end_d, _end_m, _end_y);   }  }    function BookingObject_IsOverlap(_d, _m, _y)  {   check_date=new kjhjfd(_d, _m, _y);  if (check_date.to_int() >= this.start.to_int() && check_date.to_int() <= this.end.to_int())    return true;  return false; }    sqc.prototype.constructor=new sqc(); sqc.prototype.sqsl=sqc_sqsl; sqc.prototype.suq=sqc_suq; sqc.prototype.qsd=sqc_qsd; sqc.prototype.qsdSelected=sqc_qsdSelected; sqc.prototype.parrot=sqc_parrot; sqc.prototype.sqzzx=sqc_sqzzx; sqc.prototype.Click=sqc_Click; sqc.prototype.sqtss=sqc_sqtss; sqc.prototype.p_xs=sqc_p_xs; sqc.prototype.erfg=sqc_erfg;   sqc.prototype.dtod=sqc_dtod; sqc.prototype.dtid=sqc_dtid; sqc.prototype.sqide=sqc_sqide;   sqc.prototype.qsdDays=sqc_qsdDays;   function sqc(_day, _month, _year, _divname)  {   this._date=new kjhjfd(_day, _month, _year);  this.divname=_divname;    this.foom=-1;  this.diim=-1;  this.cauli=-1;  this.salt=-1;  this.lasit=-1;    this.ll=undefined;  this.hl=undefined;    var get_today=new Date();    this.HilightBookingStart=false;    this.cfghrt='red';  this.not_cfghrt='white';  this.edc='black';  this.ebc='#cccccc';  this.nicetry='black';    this.poiker=false; }      function sqc_erfg()  {   var wid=30;  var height=10;  var mon='0_';  var newTable=document.createElement("table");  var newBod=document.createElement("tbody");    var newTR=document.createElement("tr");  var newTD=document.createElement("td");  var newText=document.createTextNode('Jan');  newTD.setAttribute("id", this.divname + "month_title");  newTD.setAttribute("class", "month_title");  newTD.appendChild(newText);  newTR.appendChild(newTD);    var newTD=document.createElement("td");  var newText=document.createTextNode('2007');  newTD.setAttribute("id", this.divname + "year_title");  newTD.setAttribute("class", "year_title");  newTD.appendChild(newText);    newTR.appendChild(newTD);  newBod.appendChild(newTR);    newTable.appendChild(newBod);  document.getElementById(this.divname+"_wrapper").appendChild(newTable);     newTable=document.createElement("table");  newBod=document.createElement("tbody");    newTR=document.createElement("tr");  for (i=0;i < 7;i++)   {    newTD=document.createElement("td");   newText=document.createTextNode("n");   newTD.setAttribute("id", this.divname + "title" + i);         newTD.setAttribute("class", "day_of_week");   newTD.appendChild(newText);   newTR.appendChild(newTD);  }   newBod.appendChild(newTR);   var count=0;  for (i=0;i<6;i++)   {    newTR=document.createElement("tr");   for (d=0;d < 7;d++)    {     newTD=document.createElement("td");    newText=document.createTextNode('');    newTD.setAttribute("id", this.divname + Number((i*7)+d) );    newTD.appendChild(newText);    newTR.appendChild(newTD);   }    newBod.appendChild(newTR);  }   newTable.appendChild(newBod);  document.getElementById(this.divname+"_wrapper").appendChild(newTable); }        function sqc_sqsl(low_month, low_year, hi_month, hi_year)  {   this.ll=new kjhjfd(1, low_month, low_year);  this.hl=new kjhjfd(1, hi_month, hi_year); }      function sqc_suq()  {  }    function sqc_qsdDays()  {   var i;     for (i=0;i < 7;i++)   {    day_str=this.divname + "title"+i;   gbi(day_str).firstChild.nodeValue=dipdap[i];  }     var currency_index=index_from_now(1, this._date.month, this._date.year);    for (i=0;i < 42;i++)   {    day_str=this.divname + i;   var d=this.dtod(i);   var bgc=this.not_cfghrt;   if (d > 0 )    {     if (this.sqide(d))     {      document.getElementById(day_str).style.color=this.edc;          document.getElementById(day_str).style.backgroundColor=this.ebc;       bgc=this.ebc;        if (this.poiker)       document.getElementById(day_str).onmouseover=document.getElementById(day_str).style.cursor="default";         }     else     {      document.getElementById(day_str).style.color=this.nicetry;          }     document.getElementById(day_str).firstChild.nodeValue=d;    document.getElementById(day_str).style.visibility="visible";    if (currency[currency_index] == 4 || currency[currency_index] == 3)     {         gbi(day_str).style.backgroundColor=this.cfghrt;        gbi(day_str).style.backgroundImage="url(none)";     if (this.poiker)       gbi(day_str).onmouseover=gbi(day_str).style.cursor="default";         }     else if (currency[currency_index] == 1)     {      gbi(day_str).style.backgroundImage="url(../calimages/booking_start.gif)";    }     else if (currency[currency_index] == 2)     {      gbi(day_str).style.backgroundImage="url(../calimages/booking_end.gif)";    }     else     {      gbi(day_str).style.backgroundImage="url(none)";     document.getElementById(day_str).style.backgroundColor=bgc;    }       if (this.poiker)     {      if (currency[currency_index] == 4 || currency[currency_index] == 3)       gbi(day_str).onmouseover=gbi(day_str).style.cursor="default";          else      {       if ((currency[currency_index] == NO_BOOKING)||(this.divname == "start_day" && currency[currency_index] == BOOKING_END)||(this.divname == "end_day" && currency[currency_index] == BOOKING_START))        document.getElementById(day_str).onmouseover=document.getElementById(day_str).style.cursor="pointer";          else         gbi(day_str).onmouseover=gbi(day_str).style.cursor="default";          }     }                  currency_index++;       }    else    {     document.getElementById(day_str).firstChild.nodeValue='';     document.getElementById(day_str).style.visibility='hidden';    }    }  }      function sqc_qsd()  {     this.foom=foom(this._date.month, this._date.year);    this.diim=days_per_month(this._date.month, this._date.year);  var day_str;    gbi(this.divname + 'year_title').firstChild.nodeValue=this._date.year;    gbi(this.divname + 'month_title').firstChild.nodeValue=waps[this._date.month-1];  this.qsdDays();    if (this.divname == "start_day" || this.divname == "end_day")    this.qsdSelected(); }    function sqc_dtod(div_id)  {   if ((div_id>= this.foom)&&( div_id < this.diim + this.foom))    return div_id-this.foom+1;  else    return -1; }    function sqc_dtid(dat)  {   return dat + this.foom -1; }      function sqc_sqide(dat)  {   var daygetter=new kjhjfd(dat, this._date.month, this._date.year);  return (this_day.to_int() > daygetter.to_int()); }    function sqc_qsdSelected()  {   if (this.cauli == -1 || this.salt == -1 || this.lasit == -1)    return;    var overlap_start=false;  var overlap_end=false;  var sel=new kjhjfd(this.cauli, this.salt, this.lasit);  var sel_int=sel.to_int();  if ((this._date.month == this.salt)&&(this._date.year == this.lasit))   {    var id=this.dtid(this.cauli);   for (var b=0;b < mkjh.length;b++)    {     if (this.divname == 'start_day')     {      if (mkjh[b].end.to_int() == sel_int)       overlap_end=true;    }     if (this.divname == 'end_day')     {      if (mkjh[b].start.to_int() == sel_int)       overlap_start=true;    }    }       if (overlap_start)    {     gbi(this.divname + id).style.backgroundImage="url(../calimages/booking_start_enter.gif)";    }    else if (overlap_end)    {     gbi(this.divname + id).style.backgroundImage="url(../calimages/booking_enter_end.gif)";    }    else    {       gbi(this.divname + id).style.backgroundImage="url(none)";    gbi(this.divname + id).style.backgroundColor=entering_colour;   }   }  }    function sqc_parrot(direction)  {   month=this._date.month;  year=this._date.year;  benidt=false;    if (direction == 1)   {    if (this.hl == undefined)     benidt=true;   else    {     if (year < this.hl.year )      benidt=true;    else if (year == this.hl.year && month < this.hl.month )      benidt=true;   }    if (!benidt)     return;     if (month <= 11)     month++;   else    {     month=1;    year++;   }     }   else   {    if (this.ll == undefined && year > 2000)      benidt=true;   else    {     if (year > this.ll.year )      benidt=true;    else if (year == this.ll.year && month > this.ll.month )      benidt=true;   }    if (!benidt)     return;   if (this.ll != undefined)    {     if (year == this.ll.year )     {      if (month > this.ll.month)       month--;    }     else     {      if (month > 1 )       month--;     else      {       month=12;      year--;     }     }    }    else    {     if (month > 1 )      month--;    else     {      month=12;     year--;    }    }   }   this._date.month=month;  this._date.year=year;  this.qsd(); }    function sqc_sqzzx(month, year)  {   this._date.month=month;  this._date.year=year;  this.qsd(); }      function sqc_Click(_day, _allow_expired, start_end)  {   if ((_day < this.foom)||(_day >= this.diim+this.foom))    return false;  if ((!_allow_expired)&&(this.sqide(_day-this.foom+1)) )    return false;  var currency_index=index_from_now(_day - this.foom+1, this._date.month, this._date.year);  if (currency[currency_index] == BOOKING_NORMAL || currency[currency_index] == BOOKING_START_END)    return false;  if ((currency[currency_index] == BOOKING_END && this.divname == "start_day")||(currency[currency_index] == BOOKING_START && this.divname == "end_day")||(currency[currency_index] == NO_BOOKING))   {   this.lasit=this._date.year;  this.salt=this._date.month;  this.cauli=this.dtod(_day);  this.qsd();  return true;  }  }    function sqc_sqtss(_day, _month, _year)  {   this.lasit=_year;  this.salt=_month;  this.cauli=_day;  this.qsd(); }    function sqc_p_xs()  {   this.lasit=-1;  this.salt=-1;  this.cauli=-1;  this.qsd(); }          function start_day_plus()  {   start_calendar.parrot(1); }    function start_day_minus()  {   start_calendar.parrot(-1); }      function end_day_minus()  {   end_calendar.parrot(-1); }      function end_day_plus()  {   end_calendar.parrot(+1); }      function foom(month, year)  {     var anchor=new kjhjfd(1, 1, 2000);  var test=new kjhjfd(1, month, year);  var diff= test.to_int() - anchor.to_int();     return ((diff +6)%7); }      function days_per_month(month, year)  {      if (month == 4 || month == 6 || month == 9 || month == 11)    return 30;  else if (month == 2)    {    if ((year % 4) == 0 )     return 29;   else     return 28;  }   return 31; }    function increment_date(_date)  {   var day=_date.day;  var month=_date.month;  var year=_date.year;    day++;  if (day > days_per_month(month, year))   {    day=1;    month++;   if (month > 12)    {     month=1;    year++;   }   }   var _ret=new kjhjfd(day, month, year);  return _ret; }    function decrement_date(_date)  {   var day=_date.day;  var month=_date.month;  var year=_date.year;      if (day > 1 )   {    day--;  }   else   {    if (month > 1 )      {     month--;    day=days_per_month(month, year);   }    else    {     year--;    month=12;     day=31;    }   }     var _ret=new kjhjfd(day, month, year);  return _ret; }    function create_booking_string(str)  {   var monthval;  var dayval;  var yearval;  if (str == "start")   {    monthval=(start_calendar.salt);   dayval=start_calendar.cauli;   yearval=start_calendar.lasit;  }   else   {    var end_date=new kjhjfd(end_calendar.cauli, end_calendar.salt, end_calendar.lasit);   monthval=end_date.month;   dayval=end_date.day;   yearval=end_date.year;  }   if (monthval < 10)    monthval='0' + monthval;  if (dayval < 10)    dayval='0' + dayval;  return yearval + '-' + monthval + '-' + dayval; }        function IsReserved(d, allow_overlap_start, allow_overlap_end)  {     var currency_index=index_from_now(d.day, d.month, d.year);   if (currency_index < 0 || currency_index > 400)   return false;      if (allow_overlap_end)   {    if (currency[currency_index] == NO_BOOKING || currency[currency_index] == BOOKING_END)    {     return false;   }   }   if (allow_overlap_start)   {    if (currency[currency_index] == NO_BOOKING || currency[currency_index] == BOOKING_START)    {     return false;   }   }   return (currency[currency_index] != NO_BOOKING);   }      function CheckAvailability(start_str, end_str)  {      var date_strS=new Array();     date_strE=new Array();     var dateStr=new String(start_str);     date_strS=dateStr.split("-");     dateStr=new String(end_str);  date_strE=dateStr.split("-");    var s=new kjhjfd(date_strS[2], date_strS[1], date_strS[0]);  var e=new kjhjfd(date_strE[2], date_strE[1], date_strE[0]);  for (var b=0;b < mkjh.length;b++)   {    if (s.to_int() >= mkjh[b].start.to_int() && s.to_int() < mkjh[b].end.to_int() )     return false;   if (e.to_int() > mkjh[b].start.to_int() && e.to_int() <= mkjh[b].end.to_int() )     return false;   if (s.to_int() <= mkjh[b].start.to_int() && e.to_int() >= mkjh[b].end.to_int() )     return false;  }   return true; }                function UpdateCalendars()  {   ths_scroll=0;  if (start_calendar != undefined )   {    start_calendar.cauli=-1;   start_calendar.qsd();  }   if (end_calendar != undefined)   {    end_calendar.cauli=-1;   end_calendar.qsd();  }   for (m=0;m < 6;m++)   {    ths[m].qsd();  }  }    function ScrollMonthCalendars(direction)  {   if (direction == -1 && ths_scroll == 0 )    return;  if (direction == 1 && ths_scroll == 7)    return;  if (direction == -1)   {    ths_scroll--;   for (m=0;m < 6;m++)    {     ths[m].parrot(-1);   }   }   if (direction == 1)   {    ths_scroll++;   for (m=0;m < 6;m++)    {     ths[m].parrot(1);    ths[m].qsd();   }   }  }                           function get_booking_index(_booking_id)  {   var found=-1;    for (var i=0;i < mkjh.length;i++)   {    if (mkjh[i].booking_id == _booking_id)     found=i;  }     return found; }      function mouse_cal(id)  {  document.getElementById('id').style.backgroundColor='#aa00aa'; }