(function($) {
$.fn.iwBelegungsKalender = function(options) {
var settings = $.extend({
'numberOfMonths' : 5,
'phpSide' : "bootstrap-occupancy/belegungskalender.php",
'roomId' : 0,
'language' : "de",
'startTime' : new Date()
}, options);
return this.each(function() {
var $bk = $(this);
var startTime = new Date(settings.startTime.getFullYear(),settings.startTime.getMonth(),1);
var time = new Date(settings.startTime.getFullYear(),settings.startTime.getMonth(),1);
// Den Zurück-Button beim Start deaktivieren
$('.bk_prev',$bk).addClass('disabled');
var bk_prevIsDisabled = true;
// nach dem Laden der Seite den Kalender ab dem aktuellen Monat zeigen
$('.bk_calendar',$bk).load(settings.phpSide+"?roomid="+settings.roomId+"&month="+(time.getMonth()+1)+"&year="+time.getFullYear()+"&count="+settings.numberOfMonths+"&language="+settings.language, function(response, status, xmlHttpRequest) {
if(status == "error") {
$(this).html("
Sorry but there was an error.
"+xmlHttpRequest.status+" "+xmlHttpRequest.statusText+"
");
}
/*
* ... von Jan eingefügt
*/
if(response.indexOf("error") != -1) {
$(this).parent().find('.bk_prev').hide();
$(this).parent().find('.bk_next').hide();
};
$('[data-toggle="tooltip"]').tooltip();
/*
* ... nur widget wenn bookingcalendar als Paramter mit übergeben wird
*/
if(location.search.indexOf("bookingcalendar") != -1){
parent.postMessage(String(document.body.offsetHeight), parentHost);
//ri.allowResponsiveEmbedding();
}
});
// Previous-Link
$('.bk_prev',$bk).click(function() {
time = prevMonth(time);
if(bk_prevIsDisabled==false && time<=startTime) {
$('.bk_prev',$bk).addClass('disabled');
bk_prevIsDisabled = true;
}
$('.bk_calendar',$bk).load(settings.phpSide+"?roomid="+settings.roomId+"&month="+(time.getMonth()+1)+"&year="+time.getFullYear()+"&count="+settings.numberOfMonths+"&language="+settings.language, function(response, status, xmlHttpRequest) {
if(status == "error") {
$(this).html("Sorry but there was an error.
"+xmlHttpRequest.status+" "+xmlHttpRequest.statusText+"
");
}
});
$(this).blur();
return false;
});
// Next-Link
$('.bk_next',$bk).click(function() {
time = nextMonth(time);
if(bk_prevIsDisabled && time>startTime) {
$('.bk_prev',$bk).removeClass('disabled');
bk_prevIsDisabled = false;
}
$('.bk_calendar',$bk).load(settings.phpSide+"?roomid="+settings.roomId+"&month="+(time.getMonth()+1)+"&year="+time.getFullYear()+"&count="+settings.numberOfMonths+"&language="+settings.language, function(response, status, xmlHttpRequest) {
if(status == "error") {
$(this).html("Sorry but there was an error.
"+xmlHttpRequest.status+" "+xmlHttpRequest.statusText+"
");
}
});
$(this).blur();
return false;
});
});
};
})(jQuery);
function prevMonth(time) {
var month = time.getMonth();
var year = time.getFullYear();
month = month - 1;
if(month < 0) {
month = 11;
year = year - 1;
}
time.setMonth(month);
time.setFullYear(year);
return time;
}
function nextMonth(time) {
var month = time.getMonth();
var year = time.getFullYear();
month = month + 1;
if(month > 11) {
month = 0;
year = year + 1;
}
time.setMonth(month);
time.setFullYear(year);
return time;
}