$(function () {
(function ($) {
$.fn.jalendar = function (options) {
var settings = $.extend({
customDay: new Date(),
color: '#65c2c0',
lang: 'CN'
}, options);
// Languages
var dayNames = {};
var monthNames = {};
var lAddEvent = {};
var lAllDay = {};
var lTotalEvents = {};
var lEvent = {};
dayNames['CN'] = new Array('一', '二', '三', '四', '五', '六', '日');
dayNames['EN'] = new Array('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun');
monthNames['CN'] = new Array('一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月');
monthNames['EN'] = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
lAddEvent['CN'] = '添加新事件';
lAddEvent['EN'] = 'Add New Event';
lAllDay['CN'] = '全天';
lAllDay['EN'] = 'All Day';
lTotalEvents['CN'] = '本月事件总计: ';
lTotalEvents['EN'] = 'Total Events in This Month: ';
lEvent['CN'] = 'Event(s)';
lEvent['EN'] = 'Event(s)';
var $this = $(this);
var div = function (e, classN) {
return $(document.createElement(e)).addClass(classN);
};
var clockHour = [];
var clockMin = [];
for (var i=0;i<24;i++ ){
clockHour.push(div('div', 'option').text(i))
}
for (var i=0;i<59;i+=5 ){
clockMin.push(div('div', 'option').text(i))
}
// HTML Tree
$this.append(//初始化日历
div('div', 'jalendar-wood').append(
div('div', 'jalendar-pages').append(
div('div', 'header').css('background-color', settings.color).append(
div('a', 'prv-m'),
div('h1'),
div('a', 'nxt-m'),
div('div', 'day-names')
),
/* div('div', 'total-bar').html( lTotalEvents[settings.lang] + ''),*/
div('div', 'days'),
div('div').html("")//存放查询月份
)
)
);
// Adding day boxes
for (var i = 0; i < 42; i++) {
$this.find('.days').append(div('div', 'day'));
}
// Adding day names fields
for (var i = 0; i < 7; i++) {
$this.find('.day-names').append(div('h2').text(dayNames[settings.lang][i]));
}
var d = new Date(settings.customDay);
var year = d.getFullYear();
var date = d.getDate();
var month = d.getMonth();
var isLeapYear = function(year1) {
var f = new Date();
f.setYear(year1);
f.setMonth(1);
f.setDate(29);
return f.getDate() == 29;
};
var feb;
var febCalc = function(feb) {
if (isLeapYear(year) === true) { feb = 29; } else { feb = 28; }
return feb;
};
var monthDays = new Array(31, febCalc(feb), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
function calcMonth() {
$("#choiseMonth").val(year+'-'+(month+1)+'-1 00:00:00');
monthDays[1] = febCalc(feb);
var weekStart = new Date();
weekStart.setFullYear(year, month, 0);
var startDay = weekStart.getDay();
$this.find('.header h1').html(monthNames[settings.lang][month] + ' ' + year);
$this.find('.day').html(' ');
$this.find('.day').removeClass('this-month');
$this.find('.day').removeClass('ui-reddot ui-reddot-static');
for (var i = 1; i <= monthDays[month]; i++) {
startDay++;
$this.find('.day').eq(startDay-1).addClass('this-month').attr('data-date', year+'-'+(month+1)+'-'+ i).html(i);
}
if ( month == d.getMonth() ) {
$this.find('.day.this-month').removeClass('today').eq(date-1).addClass('today').css('color', settings.color);
} else {
$this.find('.day.this-month').removeClass('today').attr('style', '');
}
getTaskListAndPlanList();
}
calcMonth();
var arrows = new Array ($this.find('.prv-m'), $this.find('.nxt-m'));
function prevAddEvent() {
$this.find('.day').removeClass('selected').removeAttr('style');
$this.find('.today').css('color', settings.color);
}
arrows[1].on('click', function () {//下个月
if ( month >= 11 ) {
month = 0;
year++;
} else {
month++;
}
calcMonth();
prevAddEvent();
});
arrows[0].on('click', function () {//上个月
dayClick = $this.find('.this-month');
if ( month === 0 ) {
month = 11;
year--;
} else {
month--;
}
calcMonth();
prevAddEvent();
});
$this.on('click', '.this-month', function () {//单击选择日期事件
prevAddEvent();
$(this).addClass('selected').css({'background-color': settings.color});
getLists();
});
};
}(jQuery));
});