(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; }