You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.3 KiB
86 lines
2.3 KiB
var EXPO = EXPO || {}; //isolated namespace
|
|
EXPO.profile = EXPO.profile || {};
|
|
if (EXPO.profile.calendar){
|
|
console.warn('WARNING: EXPO.profile.calendar is already defined!');
|
|
}else {
|
|
|
|
EXPO.profile.calendar = (function () {
|
|
// dependencies
|
|
var com = EXPO.common;
|
|
|
|
// variables
|
|
var that = {};
|
|
|
|
that.opt = {}; //свойства по умолчанию
|
|
//private
|
|
$(function () {
|
|
});
|
|
|
|
// methods
|
|
//инициализация общих свойств
|
|
that.init = function (options) {
|
|
$.extend(this.opt, options);
|
|
/**
|
|
* scrolling calendar object
|
|
* depend on mCustomScroll Jquery plugin
|
|
* @type {*|jQuery|HTMLElement}
|
|
*/
|
|
var $scrollBox = $('#'+this.opt.scrollBoxId),
|
|
$calendar = $('#'+this.opt.calenadrId),
|
|
currentDayOffset = $calendar.find('td.'+this.opt.currentDayClass).index()*this.opt.cellWidth,
|
|
$leftScroll = $('#'+this.opt.scrollLeftId),
|
|
$rightScroll = $('#'+this.opt.scrollRightId),
|
|
$calendarToggle = $('.'+this.opt.calendarToggleClass);
|
|
scrollStep = this.opt.cellWidth*this.opt.cellsToScroll;
|
|
|
|
$(window).load(function(){
|
|
$scrollBox.mCustomScrollbar({
|
|
axis:'y',
|
|
horizontalScroll: true,
|
|
advanced:{ // Advanced options
|
|
autoScrollOnFocus: false,
|
|
updateOnContentResize: false, // Scrollbar will be updated on content resize
|
|
updateOnBrowserResize: false // Scrollbar will be updated on browser resize
|
|
}
|
|
});
|
|
$scrollBox.mCustomScrollbar("scrollTo",currentDayOffset);
|
|
});
|
|
$leftScroll.on('click', function () {
|
|
$scrollBox.mCustomScrollbar("scrollTo",'+='+scrollStep);
|
|
});
|
|
$rightScroll.on('click', function () {
|
|
$scrollBox.mCustomScrollbar("scrollTo",'-='+scrollStep);
|
|
});
|
|
$calendarToggle.on('click', function () {
|
|
var $switch = $(this);
|
|
var $sect = $switch.closest('.ep-sect');
|
|
var $sectBody = $sect.children('div.ep-sect-body');
|
|
|
|
if ($sect.hasClass('eps-opened')) {
|
|
$rightScroll.hide();
|
|
$leftScroll.hide();
|
|
$sectBody
|
|
.stop()
|
|
.animate({
|
|
opacity: 0
|
|
}, 300, function () {
|
|
$sect.removeClass('eps-opened');
|
|
});
|
|
} else {
|
|
$rightScroll.show();
|
|
$leftScroll.show();
|
|
$sectBody
|
|
.stop()
|
|
.animate({
|
|
opacity: 1
|
|
}, 300, function () {
|
|
$sect.addClass('eps-opened');
|
|
});
|
|
}
|
|
|
|
return false;
|
|
});
|
|
};
|
|
return that;
|
|
}());
|
|
}
|
|
|