var refY = 2010; // reference year (must be current year or earlier) var monthLength = new Array(); monthLength[0] = 31; // jan monthLength[1] = 28; // feb monthLength[2] = 31; // mrt monthLength[3] = 30; // apr monthLength[4] = 31; // mei monthLength[5] = 30; // jun monthLength[6] = 31; // jul monthLength[7] = 31; // aug monthLength[8] = 30; // sep monthLength[9] = 31; // okt monthLength[10] = 30; // nov monthLength[11] = 31; // dec var resDate = new Array(); resDate[0] = new Array(); resDate[0]['van'] = "2010-06-05"; resDate[0]['tot'] = "2010-06-19"; resDate[1] = new Array(); resDate[1]['van'] = "2010-07-11"; resDate[1]['tot'] = "2010-08-19"; resDate[2] = new Array(); resDate[2]['van'] = "2010-05-29"; resDate[2]['tot'] = "2010-06-02"; resDate[3] = new Array(); resDate[3]['van'] = "2010-08-21"; resDate[3]['tot'] = "2010-09-04"; resDate[4] = new Array(); resDate[4]['van'] = "2010-09-17"; resDate[4]['tot'] = "2010-09-21"; resDate[5] = new Array(); resDate[5]['van'] = "2010-04-01"; resDate[5]['tot'] = "2010-04-04"; function myNRdays(fDate) { // our date reference : 2010-01-01 returns 1 (2010-02-03 returns 34) // fDate is a Formatted Date like 2010-04-17 var i; var NRdays = 0; var y = 1*fDate.substr(0,4); var m = 1*fDate.substr(5,2); var d = 1*fDate.substr(8,2); var Qy = y - refY; for (i=0;i < Qy;i++) { NRdays += 365*(refY+i) + (TFschrikkeljaar(refY+i) ? 1 : 0); } for (i=0;i < m-1;i++) { NRdays += monthLength[i]; NRdays += (TFschrikkeljaar(y) && (i==1)) ? 1 : 0; } NRdays += d; return NRdays; } function TFschrikkeljaar(y) { return ((y%4)==0); } function TFdateReserved(daDate) { var i; var year = daDate.getYear(); if (year < 2000) { year += 1900; } // correct when browser assumes we're living in the 1900's var monthnumber = 1*daDate.getMonth() + 1; var monthday = daDate.getDate(); var dd,dV,dT; var TF = false; var Lrd = resDate.length; for (i=0;i < Lrd;i++) { // check alle gereserveerde periodes dd = myNRdays(myDate(daDate)); dV = myNRdays(resDate[i]['van']); dT = myNRdays(resDate[i]['tot']); if (dd >= dV && dd <= dT) { TF = true; break; } } return TF; } function myCurrentDate() { var now = new Date(); var year = now.getYear(); if (year < 2000) { year += 1900; } // correct when browser assumes we're living in the 1900's var monthnumber = 1*now.getMonth() + 1; monthday = "01"; // problem : if date is 31 etc. .. so hack it : make date 01, while every month has it .. if (monthnumber < 11) { monthnumber += 2; } else { monthnumber -= 10; year++; } return "" + year + "-" + monthnumber + "-" + monthday; } function myDate(daDate) { var year = daDate.getYear(); if (year < 2000) { year += 1900; } // correct when browser assumes we're living in the 1900's var monthnumber = 1*daDate.getMonth() + 1; if (monthnumber < 10) { monthnumber = "0" + monthnumber; } var monthday = daDate.getDate(); if (monthday < 10) { monthday = "0" + monthday; } return "" + year + "-" + monthnumber + "-" + monthday; } (function($){ var initLayout = function() { $('#RBgetSelection').bind('click', function(){ alert($('#date3').DatePickerGetDate(true)); return false; }); $('#clearSelection').bind('click', function(){ $('#date3').DatePickerClear(); return false; }); $('#date3').DatePicker({ flat: true, date: ['',''], // bv date: ['2010-03-19','2010-03-26'] current: myCurrentDate(), // bv '2010-09-01' calendars: 4, mode: 'range', onChange: function(){ var d2 = "" + $('#date3').DatePickerGetDate(true); var d2a = d2.substr(0,10); var d2b = d2.substr(11); document.getElementById('myDateRange').innerHTML = (d2a==d2b) ? "" : "van "+d2a+" t/m "+d2b; document.forms['FMboek'].elements['calRes'].value = (d2a==d2b) ? "" : ""+d2a+d2b; }, onRender: function(date) { return { disabled: TFdateReserved(date) } }, starts: 1 }); }; EYE.register(initLayout, 'init'); })(jQuery)