if(typeof jQuery=='undefined'){throw new Error('jQuery is not loaded');} jQuery.fn.zabuto_calendar=function(options){var $=jQuery,opts=$.extend({},$.fn.zabuto_calendar_defaults(),options);var languageSettings=$.fn.zabuto_calendar_language(opts.language);opts=$.extend({},opts,languageSettings);this.each(function(){var $calendarElement=$(this);$calendarElement.attr('id',"zabuto_calendar_"+Math.floor(Math.random()*99999).toString(36));$calendarElement.data('initYear',opts.year);$calendarElement.data('initMonth',opts.month);$calendarElement.data('monthLabels',opts.month_labels);$calendarElement.data('weekStartsOn',opts.weekstartson);$calendarElement.data('navIcons',opts.nav_icon);$calendarElement.data('dowLabels',opts.dow_labels);$calendarElement.data('showToday',opts.today);$calendarElement.data('showDays',opts.show_days);$calendarElement.data('showPrevious',opts.show_previous);$calendarElement.data('showNext',opts.show_next);$calendarElement.data('cellBorder',opts.cell_border);$calendarElement.data('jsonData',opts.data);$calendarElement.data('ajaxSettings',opts.ajax);$calendarElement.data('legendList',opts.legend);$calendarElement.data('actionFunction',opts.action);$calendarElement.data('actionNavFunction',opts.action_nav);drawCalendar();function drawCalendar(){var dateInitYear=parseInt($calendarElement.data('initYear'));var dateInitMonth=parseInt($calendarElement.data('initMonth'))-1;var dateInitObj=new Date(dateInitYear,dateInitMonth,1,0,0,0,0);$calendarElement.data('initDate',dateInitObj);var tableClassHtml=($calendarElement.data('cellBorder')===true)?' table-bordered':'';$tableObj=$('
');$tableObj=drawTable($calendarElement,$tableObj,dateInitObj.getFullYear(),dateInitObj.getMonth());$legendObj=drawLegend($calendarElement);var $containerHtml=$('
');$containerHtml.append($tableObj);$containerHtml.append($legendObj);$calendarElement.append($containerHtml);var jsonData=$calendarElement.data('jsonData');if(false!==jsonData){checkEvents($calendarElement,dateInitObj.getFullYear(),dateInitObj.getMonth());}} function drawTable($calendarElement,$tableObj,year,month){var dateCurrObj=new Date(year,month,1,0,0,0,0);$calendarElement.data('currDate',dateCurrObj);$tableObj.empty();$tableObj=appendMonthHeader($calendarElement,$tableObj,year,month);$tableObj=appendDayOfWeekHeader($calendarElement,$tableObj);$tableObj=appendDaysOfMonth($calendarElement,$tableObj,year,month);checkEvents($calendarElement,year,month);return $tableObj;} function drawLegend($calendarElement){var $legendObj=$('
');var legend=$calendarElement.data('legendList');if(typeof(legend)=='object'&&legend.length>0){$(legend).each(function(index,item){if(typeof(item)=='object'){if('type'in item){var itemLabel='';if('label'in item){itemLabel=item.label;} switch(item.type){case'text':if(itemLabel!==''){var itemBadge='';if('badge'in item){if(typeof(item.classname)==='undefined'){var badgeClassName='zabuto-badge-event';}else{var badgeClassName=item.classname;} itemBadge=''+item.badge+' ';} $legendObj.append(''+itemBadge+itemLabel+'');} break;case'block':if(itemLabel!==''){itemLabel=''+itemLabel+'';} if(typeof(item.classname)==='undefined'){var listClassName='event';}else{var listClassName='event-styled '+item.classname;} $legendObj.append('