var filaMonth;

function checkSubmitForm( strFrm ) {
  if (document.getElementById) {
    var frm = document.getElementById(strFrm);
    var y = frm.ciyymm.value.substr(0,4);
    var m = new Number(frm.ciyymm.value.substr(5,2));
    var nmd = new Number(frm.ciday.value);
	  if (isValidDate(nmd, m-1, y)) {
	    document.frm.submit();
		  return;
	  }
		alert('Please note the date is not valid');
	}
}

function isValidDate(day,month,year){
  //Purpose: return true if the date is valid, false otherwise. Valid dates should be current date or after
  //Variables: dteDate - date object
  var dteDate;
  //javascript months start at 0 (0-11 instead of 1-12)
  dteDate=new Date(year,month,day);
  var crntDt=new Date();
  var crntdate=new Date(crntDt.getYear(),crntDt.getMonth(),crntDt.getDate());
  var res=(crntdate <= dteDate);
  if (res) res=((day==dteDate.getDate()) && (month==dteDate.getMonth()) && (year==dteDate.getFullYear()));
  return res;
}

function calcDeparture( strFrm, strDepartDt ){
  if (document.getElementById) {
    var frm = document.getElementById(strFrm);
    var departdt = document.getElementById(strDepartDt);
    /*format-date( $lookupEndDate, 'dddd d MMMM yyyy'*/
    var y = frm.ciyymm.value.substr(0,4); //2006-01
    var m = new Number(frm.ciyymm.value.substr(5,2)); //2006-01
    var nmd = new Number(frm.ciday.value);
    var nmNights = new Number(frm.nights.value);
    var d = nmd + nmNights;
    var dt = new Date(y, m-1, d);
    var days = new Array("Sunday", "Monday", "Tuesday", "Wednesday","Thursday", "Friday", "Saturday");
    var months = new Array("January", "February", "March", "April","May", "June", "July", "August", "September", "October", "November", "December");
	  if (isValidDate(nmd, m-1, y)) {
      departdt.innerHTML = days[dt.getDay()] + ' ' + dt.getDate() + ' ' + months[dt.getMonth()] + ' ' + dt.getFullYear();
		  return;
	  }
    departdt.innerHTML = '';
  }
}

function showCalendar (img, cal, dt, frm,m,y,d){
    if (document.getElementById){
        var c = document.getElementById(cal);
        var i = document.getElementById(img);
        var f = document.getElementById(frm);
        calendar.calfrm = frm;
        calendar.cal = c;
        calendar.caldt = dt;
        calendar.calf = f;
        var my = f[dt + 'yymm'].value.split("-");
        y=my[0];m=my[1];d=f[ dt + 'day'].value;
        buildCal(y,m,d);
        var l=0; var t=0;
        aTag = i;
        do {
            aTag = aTag.offsetParent;
            l += aTag.offsetLeft;
            t += aTag.offsetTop;
        } while (aTag.offsetParent && aTag.tagName != 'BODY');
        var left =  i.offsetLeft + l;
        var top = i.offsetTop + t + i.offsetHeight + 2;
        c.style.left = left+'px';
        c.style.top = top+'px';
        c.style.display="block";
	}
}

function closeCal() {
    calendar.cal.style.display='none';
    //call update to departure date
    calcDeparture('frm', 'departDt');
}

function makeArray() {
     for (i = 0; i<makeArray.arguments.length; i++)
         this[i] = makeArray.arguments[i];
 }

function buildCal(y,m,d){
	var daysInMonth=[31,0,31,30,31,30,31,31,30,31,30,31];
	var monthsNr = new makeArray("01","02","03","04","05","06","07","08","09","10","11","12");
	td=new Date();
  if (!y) y = td.getFullYear();
  if (!m) m = monthsNr[td.getMonth()];
  if (!d) d = td.getDate;
	var frm = calendar.calfrm;
  var dt = calendar.caldt;
  var mDate = new Date(y, m-1, 1);
  var firstMonthDay = mDate.getDay();
  daysInMonth[1]=(((mDate.getFullYear()%100!=0)
      &&(mDate.getFullYear()%4==0)) || (mDate.getFullYear()%400==0))?29:28;

  var today = (y==td.getFullYear() && m==td.getMonth()+1)? td.getDate() : 0;
  var t='<table class="caltable" cellspacing="0"><tr>';
  var flm=td.getMonth()+1;var flyr=td.getFullYear();
  for(p=0;p<=10;p++){
      if (flm == m) {
          filaMonth = p;
      }
      flm++; if (flm>12) { flm=1;flyr++ }
  }
  t+='<td class="calheader" colspan="7" >';
  if (filaMonth == 0) {
      t+='<img class="calNoPrevMonth" src="' + tr.icons + '/transparent.png" width="24" height="24" alt="'+tr.prevMonth+'">';
  }
  else {
      t+='<a class="calPrevMonth" href="" onclick="prevMonth('+y+','+m+'); return false;" title="'+tr.prevMonth+'"><img src="' + tr.icons + '/transparent.png" width="24" height="24" alt="'+tr.prevMonth+'"></a>';
  }
  t+='&nbsp;<select name="ym" onchange="goMonth(this.options[this.selectedIndex].value)">';
  var mn=td.getMonth()+1;var yr=td.getFullYear();
  for(n=0;n<=10;n++){
      t+='<option value="' + mn + '"';
      if (mn == m) {
          t+=' selected="selected"';
      }
      t+='>' + months[mn-1] + ' ' + yr +'</option>';
      mn++; if (mn>12) { mn=1;yr++ }
  }
  t+= ' </select>&nbsp;';
  if (filaMonth == 10) {
      t+='<img class="calNoNextMonth" src="' + tr.icons + '/transparent.png" width="24" height="24" alt="' + tr.nextMonth + '">';
  }
  else {
      t+='<a class="calNextMonth" href="" onclick="nextMonth('+y+','+m+'); return false;" title="' + tr.nextMonth +'"><img src="' + tr.icons + '/transparent.png" width="24" height="24" alt="' + tr.nextMonth + '"></a>';
  }
  t+='</td></tr>';
  t+='<tr class="dayNames">';
  for(dn=0;dn<7;dn++){
      var cl = '';
      if ((dn%7==5) || (dn%7 == 6)) cl += ' weekend';
      t+='<td class="'+cl+'">'+days[dn]+'</td>';
  }
  t+='</tr><tr class="days">';
  for(i=1;i<=42;i++){
      var x = i - (firstMonthDay+6)%7;
      if (x > daysInMonth[m-1] || x <1) x = '&nbsp;';
      var cl = '';
      var href = 0;
      if ((i%7==0) || (i%7 == 6)) cl += ' weekend';
      if (x>0){
          var xDay = new Date(y, m-1, x);
          if ((xDay.getFullYear() == y) && (xDay.getMonth()+1 == m)
              && (xDay.getDate() == d))
              { cl += ' selected' ; href=1}
          if ((xDay.getFullYear() == td.getFullYear())
              && (xDay.getMonth() == td.getMonth())
              && (xDay.getDate() == td.getDate()))
              { cl += ' today'; href=1;}
          else {
              if (xDay > td){ cl += ' future'; href=1; }
              else {
                  if (xDay < td) { cl += ' past'}
              }
          }
      };
      t+='<td class="'+cl+'">';
      if (href){
          t+='<a href="#" onclick="pickDate('+y+','+m+','+x+',\''+dt+'\',\''+frm+'\'); return false;">'+x+'</a>';
      } else {
          t+=x;
      }
      t+='</td>';
      if(((i)%7==0)&&(i<36)) {
          t+='</tr><tr class="days">';
      }
  }
  t+='</tr><tr><td colspan="7"><a href="#" onclick="closeCal();return false;">' + tr.closeCalendar + '</a></td></tr></table>';
  document.getElementById("calendar").innerHTML= t;
}

function prevMonth(y,m) {
    if (new Date(y,m-1,1) < td) return;
    if (m > 1) {m--} else {m = 12; y--};
    buildCal(y,m);
}

function nextMonth(y,m) {
//    if ((new Date(y,m-1,1) - td) > 1000*3600*24*300) return;
    if (m<12){m++;} else {m=1;y++;}
    if (y > td.getFullYear() && m >= td.getMonth() ) return;
    buildCal(y,m);
}

function goMonth(m){
    var y = td.getFullYear();
    if (m < td.getMonth()+1) y++;
    buildCal(y,m);
}

function pickDate(y,m,d,dt,frm){
    // set form values
    var f = calendar.calf;
    var dt = calendar.caldt;
		var monthsNr = new makeArray("01","02","03","04","05","06","07","08","09","10","11","12");
    f[dt + 'yymm'].value = y + "-"  + monthsNr[m-1];
    f[dt + 'day'].value = d;
	//PDN tickCheckBox('availcheck');
	if (dt == "checkin"){
		checkDateOrder(calendar.calfrm, 'checkin_day', 'checkin_month', 'checkout_day', 'checkout_month');
	}
    closeCal();
}

function checkDateOrder(frm, ci_day, ci_month_year, co_day, co_month_year) {
	if (document.getElementById) {

		var frm = document.getElementById(frm);
		// create date object from checkin values
		// set date to 12:00 to avoid problems with one
		// date being wintertime and the other summertime
		var my = frm[ci_month_year].value.split("-");
	    var ci = new Date (my[0], my[1]-1, frm[ci_day].value, 12, 0, 0, 0);

        // create date object from checkout values
/* PDN
	    my = frm[co_month_year].value.split("-");
	    var co = new Date (my[0], my[1]-1, frm[co_day].value, 12, 0, 0, 0);


		// if checkin date is at or after checkout date,
		// add a day full of milliseconds, and set the
		// selectbox values for checkout date to new value
	    if (ci >= co){
    	    co.setTime(ci.getTime() + 1000 * 60 * 60 * 24);
	        frm[co_day].value =  co.getDate();
    	    var com = co.getMonth()+1;
	        frm[co_month_year].value = co.getFullYear() + "-" + com;
    	}
*/
	}
}

calendar = new Object();
tr = new Object();
tr.nextMonth = "Next month";
tr.prevMonth = "Previous month";
tr.closeCalendar = "Close";
tr.pressCtlD = "Press control-d or choose bookmarks/add or favorites/add in your browser";
tr.pressCtlP = "Press control-p or choose file/print in your browser";
tr.url = "http://www.bookings.nl/index.en.html";
tr.title = "Hotels-World Welcome";
tr.icons = "/tmplimages";
var months=['January','February','March','April','May','June','July','August','September','October','November','December'];
var days=['Mo','Tu','We','Th','Fr','Sa','Su'];

if (document.getElementById) {
		document.write("<style type='text/css'>");
    document.write(".blocktoggle {display: none}");
		document.write("</style>");
		var shown = new Array();
}

function blocktoggle(i) {
	if (document.getElementById) {
	shown[i] = (shown[i]) ? false : true;
    	currentdisplay = (shown[i]) ? 'block' : 'none';
          document.getElementById('blocktoggle'+i).style.display = currentdisplay;
		}
}

function blockdisplay(i) {
	if (document.getElementById){
		if (document.getElementById("blockdisplay"+i)) {
			for ( j = 1; j < 1000; j++ ) {
			  if (document.getElementById('blockdisplay' + j)) {document.getElementById('blockdisplay' + j).style.display = 'none';}
			else {j = 1000;}
			}
			if (i) {document.getElementById("blockdisplay"+i).style.display = 'block';}
		}
	}
}
