PageSourceSearch

https://tercan.bel.tr/assets/js/jquery.rangecalendar.js

js tercan.bel.tr collected 2026-09-25 08:13:39 UTC 34,279 bytes, 762 lines download raw bytes

1;( function( $, window, undefined ) {
2	
3    $.fn.rangeCalendar = function(options) {
4        
5        var defaults = {
6            
7                lang: "tr",
8                theme: "default-theme",
9                themeContext: this,
10                startDate: moment().add("MMM Do YY"),
11                endDate: moment().add('month', 3),
12                start : "+1",
13                startRangeWidth : 1, 
14                minRangeWidth: 1,
15                maxRangeWidth: 1,
16                weekends: true,
17                autoHideMonths: false,
18                visible: true,
19                trigger: null,
20                changeRangeCallback : function( el, cont, dateProp ) { return true; }
21            };
22        
23        var returnObj;
24        
25        
26        this.each(function(i, el) {
27    
28            var obj = el,
29                  $el = $(el),
30                  settings = $.extend( true, {},defaults, options );
31                  obj.options = settings;
32       
33            obj.showCalendar = function(animate) {
34                
35                var calPos = obj.calendarObj.position();
36                var lastItemPos = obj.calendarObj.find(".cell").last().position();
37                var lastItemRight =  (lastItemPos.left + obj.calendarObj.find(".cell").last().outerWidth() );
38                var selectedItemPos = obj.calendarObj.find(".cell").eq(0).position();
39                 
40                $el.slideDown((animate ? 300 : 0), function() {
41    
42                    var windowWidth = $(window).outerWidth();
43                    $(obj.calendarObj).css({left: windowWidth });
44                    $(obj.monthsObj).css({left: windowWidth });
45                    obj._placeElement(obj.calendarObj,(!selectedItemPos ? 0 : selectedItemPos.left) );
46                    obj._placeElement(obj.monthsObj);
47                });
48                
49                obj.visible = true;
50            },
51            obj.hideCalendar = function() {
52                
53                $el.slideUp(50);
54                obj.visible = false;
55            },
56            obj.toggleCalendar = function () {
57            
58                if(obj.visible)
59                    obj.showCalendar();
60                else
61                    obj.hideCalendar();
62            },
63        
64            obj.rangeWidth = function(){
65                
66                var cellWidth = obj.calendarObj.find(".cell").outerWidth();
67                var rangeWidth = parseInt(obj.calendarObj.find('.range-bar').outerWidth()/cellWidth); 
68                obj._rangeWidth = ( !rangeWidth ? obj._rangeWidth : rangeWidth) ;	
69                 
70                return obj._rangeWidth;
71            },
72            obj.setRangeWidth = function(rangeWidth) {
73                
74                var cellWidth = obj.calendarObj.find(".cal-cell").eq(0).outerWidth();
75                var rangeWidth = parseInt(!rangeWidth || rangeWidth < obj.minRangeWidth ? obj.minRangeWidth : rangeWidth);
76                $el.find(".range-bar").width(cellWidth*rangeWidth);
77                $el.find(".range-bar").trigger("resize");
78            },
79            obj.range = function() {
80    
81                var startDateIndex = obj.calendarObj.find('.cell.selected:eq(0)').index();
82                var endDateIndex = obj.calendarObj.find('.cell.selected').last().index();	
83                var startDate = moment().add('days', startDateIndex+obj.start);
84                var startDateFormatted = (startDateIndex>=0 ? moment().add('days', startDateIndex+obj.start).format() : null);
85                var endDateFormatted = (endDateIndex>=0 ? moment().add('days', endDateIndex+obj.start).format() : null);
86                var range = $.data( obj, "range", {
87                                    start: startDateFormatted,
88                                    end: endDateFormatted,
89                                    width: obj.rangeWidth(),
90                                    fromNow: startDate.fromNow()     
91                              });
92                return range;
93            },
94            
95            obj.setStartDate = function(startDate) {
96                
97                var date = moment(startDate);
98                var fullYear = date.format("YYYY");
99                var monthNumber = date.format("MM");
100                var dayNumber = date.format('D');
101                var dateId =  fullYear+monthNumber+dayNumber;
102                var monthId =  fullYear+monthNumber;
103                
104                var dateCell = obj.calendarObj.find('.cell[date-id="'+dateId+'"]').eq(0);
105                dateCell.trigger("click");
106                
107                var monthCell = obj.monthsObj.find('.cell[month-id="'+monthId+'"]').eq(0);
108                monthCell.trigger("click");
109            },
110            
111            obj.lang = function (){
112                return obj.lang;
113            },
114            
115            obj.setTheme = function (themeName){
116                
117                var _themeName = $(obj.themeContext).attr("theme");
118                
119                if(_themeName)
120                    $(obj.themeContext).removeClass(_themeName);
121                
122                $(obj.themeContext).attr("theme",""+themeName+"");
123                $(obj.themeContext).addClass(""+themeName+"");			
124                obj.theme = themeName;
125            },
126            
127            obj.update = function() {
128                
129                //console.log("update");
130                moment.lang(obj.lang);
131                obj.setTheme(obj.theme);
132                obj._generateView();
133            },
134            
135            //EVENTS
136            obj.didResizeBar = function() {
137                    
138                var prevRangeWidth = obj.rangeWidth();
139                var rangeWidth = prevRangeWidth;
140                var resizeBarPos = obj.calendarObj.find('.range-bar').position();
141                var resizeBarWidth = obj.calendarObj.find('.range-bar').outerWidth();
142                var resizeBarRight = resizeBarPos.left+resizeBarWidth;
143                var cellWidth = $(obj).find(".cell").first().outerWidth();
144                var lastCellPos = $(obj).find(".cell").last().position();
145                var deltaWidth = 0
146                var objWidth = (lastCellPos.left+cellWidth);
147                
148                if(resizeBarRight > objWidth){
149                    
150                    deltaWidth = objWidth-resizeBarWidth;
151                    prevRangeWidth = (resizeBarWidth-deltaWidth)/cellWidth;
152                }
153                    
154                
155                obj.calendarObj.find('.cell').removeClass("selected");
156                obj.calendarObj.find('.cell').removeClass("last");
157                obj.calendarObj.find('.cell.start').addClass("selected");
158                obj.calendarObj.find('.cell.start').nextAll().slice(0, (!rangeWidth ? obj.minRangeWidth-1 : rangeWidth-1)).addClass('selected');
159                obj.calendarObj.find('.cell.selected').last().addClass("last");
160                obj._dispatchEvent(obj.changeRangeCallback,obj.range(),obj);
161            },
162            obj.didSelectMonth = function(e) {
163            
164                
165                if(obj.isDragging || $(obj.lastTarget).is(obj.monthsObj) ){
166                
167                    delete obj.lastTarget;
168                    return;
169                }
170                
171                var currentMonthId = $(this).attr("month-id");
172                var currentCellMonth = obj.calendarObj.find('.cell[month-id="'+currentMonthId+'"].selected').eq(0);
173                var monthPosition = (!currentCellMonth.length  ? obj.calendarObj.find('.cell[month-id="'+currentMonthId+'"]').eq(0).position() : currentCellMonth.position());
174                var calendarViewWidth = $($el).outerWidth();
175                
176                obj.monthsObj.find('.cell').not(this).removeClass('selected');
177                $(this).addClass('selected');
178                
179                obj._placeElement(obj.calendarObj,monthPosition);
180                obj._dispatchEvent(obj.changeRangeCallback,obj.range(),obj);	
181                
182            },
183            
184            
185            
186            obj.didChangeRange = function(e,ui) {
187                
188                if(obj.isDragging || $(obj.lastTarget).is(obj.calendarObj)){
189                
190                    delete obj.lastTarget;
191                    return;
192                }
193                var rangeWidth = obj.rangeWidth();
194                var currentCalItem = $(this);	
195                var lastCalItem = obj.calendarObj.find('.cell').last();
196                var delta = lastCalItem.index()-currentCalItem.index();
197                
198                var rightBar  = currentCalItem.index()+rangeWidth-1;
199                if(rightBar > lastCalItem.index()){
200                    obj.calendarObj.find(' .cell').eq(currentCalItem.index()-rangeWidth+delta+1).trigger("click");
201                    return;
202                }
203                    
204                obj.calendarObj.find(".start").removeClass("start");
205                currentCalItem.addClass("start");
206                
207                obj._updateRangeBar();
208                obj._updateMonths();
209                obj._dispatchEvent(obj.changeRangeCallback,obj.range(),obj);
210                
211            },
212            
213            
214            
215            ///////////////////////////////////////////////////////*
216            
217            // PRIVATE METHODS
218            
219            
220            obj._initRangeBar = function(){
221                
222                $(window).unbind("resize"); //Prevents window.resize event triggering
223                var rangeWidth = obj.rangeWidth()  ;
224                var cellWidth = obj.calendarObj.find(".cell").eq(0).outerWidth();
225                var cellHeight = obj.calendarObj.find(".cell").eq(0).outerHeight();
226                var selectedCell = obj.calendarObj.find(".cell.selected:eq(0)");
227                
228                
229                if(!selectedCell.length)
230                    return;
231                    
232                
233                obj.calendarObj.find(".range-bar").unbind( "resize");
234                obj.calendarObj.find(".range-bar").remove();
235                
236                $(selectedCell).append('<div class="range-bar resizable"><div class="range-bar-content"></div></div>');
237                
238                if(obj.maxRangeWidth > 1){
239                    obj.calendarObj.find(".range-bar").resizable({
240                              grid:[cellWidth,0],
241                                 maxWidth: obj.maxRangeWidth*cellWidth,
242                                 minWidth: cellWidth*obj.minRangeWidth,
243                                 maxHeight:cellHeight,
244                                 minHeight:cellHeight,
245                                 handles: "e"
246                    });
247                }
248                
249    
250                obj.setRangeWidth(rangeWidth);
251                obj.calendarObj.find(".range-bar").on( "resize", obj.didResizeBar);
252                
253                $(window).bind("resize",obj._resize);
254                
255            },
256            obj._initMonths  = function() {
257                
258                
259                
260                obj.monthsObj.draggable({ 
261                    
262                    axis: "x" ,
263                      scrollSensitivity: 100,
264                      scrollSpeed: 100 ,
265                      cursor: "move",
266                      
267                      create: function (e, ui) {
268                          
269                          obj._updateMonths();
270                          obj._placeElement(obj.monthsObj);
271                          
272                      },
273                    start: function (e, ui) {
274                          
275                          obj.isDragging = true;
276                          obj.monthsObj.find('.cell').unbind("click");
277                          
278                          
279                      },
280                      drag: function (e, ui) {
281                           
282                      },
283                        
284                      stop: function(e, ui) {
285                        
286                        
287                        $(this).css({top: 0});
288                        obj.lastTarget = e.target;
289                        
290                            setTimeout(function(){
291                                obj.isDragging = false;
292                                delete obj.lastTarget;
293                                obj._placeElement(obj.monthsObj);
294                                obj.monthsObj.find('.cell').bind("click",obj.didSelectMonth);	
295                            },10);
296                      }
297                });
298                
299            },
300            
301            obj._initCalendar = function() {
302    
303                var xpos;
304                
305                obj.calendarObj.draggable({ 
306            
307                      axis: "x" ,
308                      scrollSensitivity: 100,
309                      scrollSpeed: 100 ,
310                      cursor: "move",
311                      
312                          create: function () {
313                              
314                              obj.calendarObj.find('.cell').removeClass("selected");
315                              obj.calendarObj.find('.cell').removeClass("last");
316                              obj.calendarObj.find(".cell").eq(obj.start-1).addClass("start");
317                              obj.calendarObj.find(".cell").eq(obj.start-1).addClass("selected");			
318                              obj.calendarObj.find('.cell.start').nextAll().slice(0, obj._rangeWidth-1).addClass('selected');
319                              obj.calendarObj.find('.cell').bind("click",obj.didChangeRange);
320                              obj.calendarObj.find('.cell.selected').last().addClass("last");
321                
322                              obj._placeElement(obj.calendarObj);	
323                          },
324                          start: function(e, ui) {
325                            
326                              xpos = ui.position.left;
327                                $(window).unbind("resize"); //Prevents window.resize event triggering
328                                obj.isDragging = true;
329                                obj.calendarObj.find('.cell').unbind("click");
330                          },
331                          drag: function (e, ui) {
332                              
333                               var xmove = ui.position.left - xpos;
334                               var direction = xmove >= 0 ? 'right' : 'left';
335          
336                              var rangeCalendarWidth = $el.outerWidth();
337                              var calendarOffset = obj.calendarObj.position();
338                              
339                            var monthMaxId = parseInt(obj.monthsObj.find(".cell").last().attr("month-id"));
340                            var monthMinId = parseInt(obj.monthsObj.find(".cell").first().attr("month-id"));
341        
342                              var currentMonthId = parseInt(obj.monthsObj.find(".cell.selected").attr("month-id"));
343                            var nextMonthId = parseInt(obj.monthsObj.find(".cell.selected").next().attr("month-id"));
344                            var prevMonthId = parseInt(obj.monthsObj.find(".cell.selected").prev().attr("month-id"));
345                            
346        
347                            if(nextMonthId && currentMonthId && nextMonthId <= monthMaxId && direction == "left") {
348                            
349                                var nextMonthsCell = obj.monthsObj.find('.cell[month-id="'+nextMonthId+'"]');
350                                var nextMonthCalendarCell = obj.calendarObj.find('.cell[month-id="'+nextMonthId+'"]').first();
351                                var nextMonthCalendarCellPos = nextMonthCalendarCell.position();
352                                
353                                
354                                var nextMonthLeftCenter = (rangeCalendarWidth/2 -(nextMonthCalendarCellPos.left )) ;
355                                
356                                if( nextMonthLeftCenter >= calendarOffset.left && calendarOffset.left != 0){
357                                      
358                                      obj.monthsObj.find(".cell").removeClass("selected");
359                                      $(nextMonthsCell).addClass("selected");
360                                      obj._placeElement(obj.monthsObj,nextMonthsCell.position());
361                                  }
362                                  
363                              }
364                              else if(prevMonthId && currentMonthId && prevMonthId >= monthMinId && direction == "right") {
365                            
366                                var prevMonthCell = obj.monthsObj.find('.cell[month-id="'+prevMonthId+'"]');
367                                var prevMonthCalendarCell = obj.calendarObj.find('.cell[month-id="'+prevMonthId+'"]').last();
368                                var prevMonthCalendarCellPos = prevMonthCalendarCell.position();
369                                var prevMonthLeftCenter = (rangeCalendarWidth/2 -(prevMonthCalendarCellPos.left )) ;
370                                                        
371                                  if(prevMonthLeftCenter <= calendarOffset.left+prevMonthCalendarCell.outerWidth() ) {
372                                      
373                                      obj.monthsObj.find(".cell").removeClass("selected");
374                                      $(prevMonthCell).addClass("selected");
375                                      
376                                      obj._placeElement(obj.monthsObj,prevMonthCell.position());
377                                  }
378                              }
379                          },
380                          stop: function(e, ui) {
381    
382                              //alert("Drag easing da inserire");
383                              //var calendarOffset = obj.calendarObj.position();
384                              //obj.calendarObj.animate({left: parseInt(calendarOffset.left)-100},300,'easeOutCirc');
385                              obj.lastTarget = e.target;
386                              obj._placeElement(obj.calendarObj);
387                              
388                              setTimeout(function(){
389                                  obj.isDragging = false;
390                                  delete obj.lastTarget;
391                                  
392                                  obj.calendarObj.find('.cell').bind("click",obj.didChangeRange);	
393                                  $(window).bind("resize",obj._resize);
394                                  obj._placeElement(obj.monthsObj);
395                              },100);
396                            
397                          }
398                });
399            },
400            
401            
402            obj._attachDragEasing = function(obj){
403            
404                return;
405                var draggableObj = $(obj);
406            
407                var x1, x2, y1, y2, t1, t2,
408                    minDistance = 40,
409                    friction = 10;
410                
411                var onMouseMove = function(e) {
412                    var mouseEvents = draggableObj.data("mouseEvents");
413                    if (e.timeStamp - mouseEvents[mouseEvents.length - 1].timeStamp > 40) {
414                        mouseEvents.push(e);
415                        if (mouseEvents.length > 2) {
416                            mouseEvents.shift();
417                        }
418                    }
419                };
420            
421                var onMouseUp = function() {
422                    //$(draggableObj).unbind("mousemove mouseup");
423                };
424            
425                draggableObj.bind('dragstart',function (e){
426                
427                    draggableObj.data("mouseEvents", [e]);
428                    $(document).mousemove(onMouseMove).mouseup(onMouseUp);
429                });
430                
431                draggableObj.bind('dragstop',function (e){
432                
433                        draggableObj.stop();
434            
435                        var lastE = draggableObj.data("mouseEvents").shift();
436            
437                        x1 = lastE.pageX;
438                        y1 = lastE.pageY;
439                        t1 = lastE.timeStamp;
440                        x2 = e.pageX;
441                        y2 = e.pageY;
442                        t2 = e.timeStamp;
443            
444                        // Deltas
445                        var dX = x2 - x1,
446                            dY = y2 - y1,
447                            dMs = Math.max(t2 - t1, 1);
448            
449                        // Speeds
450                        var speedX = Math.max(Math.min(dX / dMs, 1), -1),
451                            speedY = Math.max(Math.min(dY / dMs, 1), -1);
452            
453                        // Distance moved (Euclidean distance)
454                        var distance = Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));
455            
456                        if (distance > minDistance) {
457                            // Momentum
458                            var lastStepTime = new Date();
459                            
460                            var maxLeft = $(window).width() - (draggableObj.width() + 10),
461                                maxTop = 0;
462            
463                            draggableObj.animate({
464                                textIndent: 0
465                            }, {
466                                duration: Math.max(Math.abs(speedX), Math.abs(speedY)) * 2000,
467                                step: function(currentStep) {
468                                    speedX *= (currentStep / 100);
469                                    speedY *= (currentStep / 100);
470            
471                                    var now = new Date();
472                                    var stepDuration = now.getTime() - lastStepTime.getTime();
473            
474                                    lastStepTime = now;
475            
476                                    var position = draggableObj.position();
477            
478                                    var newLeft = (position.left + (speedX * stepDuration / friction)),
479                                        newTop = (position.top + (speedY * stepDuration / friction));
480                                        
481                                    console.log(newLeft);
482                                    newLeft = newLeft > maxLeft ? maxLeft : newLeft < 10 ? 10 : newLeft;
483                                    newTop  = newTop  > maxTop  ? maxTop  : newTop  < 10 ? 10 : newTop;
484            
485                                    draggableObj.css({
486                                        left: newLeft + "px",
487                                        top: 0 + "px"
488                                    });
489                                }
490                            });
491                        }
492                    });
493            },
494            obj._getCalendarHTML = function(startDate,endDate) {
495    
496                var calendarHtml = '';
497                var cell;
498                var date = moment(startDate).add('days', obj.start);
499                var endDate = moment(endDate).add('days', obj.start);
500                var rangeWidth = obj.rangeWidth();
501                
502                for (var index = 1; (date.isBefore(endDate) || date.isSame(endDate)) ; index++){
503                
504                    var fullYear = date.format("YYYY");
505                    var month = date.format("MMM");
506                    var monthNumber = date.format("MM");
507                    var day = date.format('ddd');
508                    var dayNumber = date.format('D');
509                    var isWeekend = date.day()%6==0;
510                    
511                    if(isWeekend && !obj.weekends){
512                        date.add('days', 1);
513                        continue;
514                    }
515                        
516                    cell = '<div class="cal-cell cell" date-id="'+fullYear+monthNumber+dayNumber+'" month-id="'+fullYear+''+monthNumber+'" month="'+monthNumber+'">';
517                    cell += '<div class="cell-content">';
518                    cell += '<div class="day-number">'+dayNumber+'</div>';
519                    
520                    cell += '<div class="day '+( isWeekend ? 'ferial' : '') +'">'+day+'</div>';
521                    cell += '</div>';
522                    cell += '</div>';
523                    
524                    calendarHtml += cell;
525                    date.add('days', 1);
526                }
527                
528                
529                
530                return calendarHtml;
531            },
532            obj._getMonthsHTML = function(startDate,endDate) {
533                
534                var monthsHtml = '';
535                var cell;
536                var date = moment(startDate).add('days', obj.start);
537                var endDate = moment(endDate).add('days', obj.start);
538                for (var index = 1; (date.isBefore(endDate) || date.isSame(endDate)) ; index++){
539                
540                    var year = date.format("YY");
541                    var fullYear = date.format("YYYY");
542                    var month = date.format("MMM");
543                    var monthNumber = date.format("MM");
544                    
545                    cell = '<div class="month-cell cell" month-id="'+fullYear+''+monthNumber+'" month="'+monthNumber+'">';
546                    cell += '<i class="bullet"></i>';
547                    cell += '<div class="date-formatted"><span class="month-name">'+month+'</span> '+year+'</span></div>';
548                    cell += '</div>';	
549                                
550                    monthsHtml += cell;
551                    date.add('month', 1);
552                }
553    
554                return monthsHtml;
555            },
556            obj._updateMonths = function() {
557    
558                var currentMonth = obj.calendarObj.find('.cell.selected:eq(0)').attr("month-id");
559                obj.monthsObj.find('.cell').removeClass('selected');
560                obj.monthsObj.find('.cell').removeClass('current');
561                obj.monthsObj.find('.cell[month-id="'+currentMonth+'"]').addClass('selected');
562                obj.monthsObj.find('.cell[month-id="'+currentMonth+'"]').addClass('current');
563            },
564            obj._updateRangeBar  = function() {
565    
566                obj.didResizeBar();
567                obj._initRangeBar();
568            },
569            obj._dispatchEvent = function (callback,options,el) {
570                
571                if(!callback)
572                    return false;
573                    
574                callback(el,options);
575            },
576            obj._placeElement = function (el) {
577                
578                obj._placeElement(el,null);
579            },
580            obj._placeElement = function (el, position) {
581                
582                var calendarViewWidth = $el.outerWidth();
583                var cellWidth = $(el).find(".cell").first().outerWidth();
584                var objChildrens = $(el).children().length;
585                var objWidth = (objChildrens*cellWidth);
586                
587                var elPos =  $(el).position();
588                left = (  !position ? parseInt(elPos.left) :  -position.left);
589                
590                if(calendarViewWidth > objWidth )
591                    left = (calendarViewWidth-objWidth)/2;
592                else if (calendarViewWidth < objWidth && left >= 0)
593                    left = 0 ;
594                else if(left < calendarViewWidth-objWidth)
595                    left = -objWidth+calendarViewWidth;
596                                    
597                $(el).stop().animate({left: left},300,'easeOutCirc');
598            },
599            obj._timedResize = function() {
600                    
601                clearTimeout(obj.resizeTimer);
602                obj.resizeTimer = setTimeout(obj._resize, obj.timeoutTime);
603            },
604            obj._bindEvents = function () {
605            
606                if(obj.trigger){
607                
608                    $(obj.trigger).unbind("click");
609                    $(obj.trigger).click(obj.toggleCalendar);
610                }
611                    
612                obj.timeout = false;
613                obj.timeoutTime = 100;
614                            
615                obj.calendarObj.find(".range-bar").on( "resize", obj.didResizeBar);
616                obj.monthsObj.find('.cell').bind("click",obj.didSelectMonth);
617                
618                $(window).bind('resize',obj._timedResize);
619                
620                $el.hover(
621                
622                    function() {
623                    
624                        if(obj.autoHideMonths)
625                            obj.monthsObj.slideDown(100,'easeOutCirc');
626                    }, 
627                    function() {
628                    
629                        if(obj.autoHideMonths)
630                            obj.monthsObj.slideUp(0,'easeOutCirc');
631                        
632                    }
633                );
634                
635                $(obj).on('mousedown', '.range-bar', function (e) {
636                    
637                    
638                    var topElement = document.elementFromPoint(e.clientX, e.clientY);
639                    if($(topElement).hasClass('ui-resizable-handle')){
640                        
641                        e.stopPropagation();
642                        return false;
643                    }
644                    
645                });
646                
647                
648                $(obj).on('mouseup', '.range-bar', function (e) {
649                
650                    if($(obj).find('.range-bar').hasClass('ui-resizable-resizing'))
651                        return true;
652                        
653                       $(this).hide();
654                       var BottomElement = document.elementFromPoint(e.clientX, e.clientY);
655                       $(this).show();
656                       
657                       $(BottomElement).trigger('click'); //Manually fire the event for desired underlying element
658                       return true;
659                });
660                
661            },
662            
663            obj._resize = function(){ 
664                    
665                
666                obj._placeElement(obj.calendarObj);
667                obj._placeElement(obj.monthsObj);
668                obj.timeout = false;
669                    
670            },
671            
672            obj._updateView = function (startDate,endDate){
673                
674                obj.calendarObj.append(obj._getCalendarHTML(startDate,endDate));
675                obj.monthsObj.append(obj._getMonthsHTML(startDate,endDate));
676                
677                if(obj.visible){	
678                    $el.css({display:"block"});
679                    obj.showCalendar();
680                }
681                else
682                    $el.css({display:"none"});	
683                
684                obj._initCalendar();
685                obj._initMonths();
686                obj._initRangeBar();
687                
688                obj._attachDragEasing(obj.calendarObj);
689            },
690            obj._generateView = function () {
691                
692                var mainClass = "range-calendar";
693                
694                $el.removeClass(mainClass)
695                $el.addClass(mainClass);
696                $el.empty();
697                
698                obj.monthsObj = $('<div class="wrapper"><div class="months"></div></div>');
699                $el.append( obj.monthsObj );
700                obj.monthsObj = obj.monthsObj.find(".months");
701                (obj.autoHideMonths ?  obj.monthsObj.addClass("auto-hide-months") : '');
702                
703                obj.calendarObj = $('<div class="wrapper"><div class="calendar"></div></div>');
704                $el.append( obj.calendarObj );
705                obj.calendarObj = obj.calendarObj.find(".calendar");
706    
707                
708                obj._updateView(obj.startDate,obj.endDate);
709                obj._bindEvents();
710                obj._dispatchEvent(obj.changeRangeCallback,obj.range(),obj);
711            }
712            
713            
714    
715            
716            
717            obj._init = function( element,options ) {
718                
719                obj.themeContext = options.themeContext;
720                obj.lang  = options.lang ; 
721                obj.isDragging = false;
722                obj.minRangeWidth = options.minRangeWidth;
723                obj.maxRangeWidth = options.maxRangeWidth;
724                obj.weekends = options.weekends;
725                obj.startDate = options.startDate;
726                obj.endDate = options.endDate;
727                obj.start = (!options.start ? "+7" : parseInt(options.start)) ;
728                obj.startRangeWidth = ( options.startRangeWidth > options.maxRangeWidth ? options.maxRangeWidth : options.startRangeWidth); 
729                obj._rangeWidth = obj.startRangeWidth;
730                obj.trigger = options.trigger;
731                obj.visible = options.visible;
732                obj.changeRangeCallback = options.changeRangeCallback;
733                obj.autoHideMonths = options.autoHideMonths ;
734                
735                obj.theme = (options.theme ? options.theme : defaults.theme );
736                obj.update();
737            },
738            
739            obj._init(el,obj.options);
740            $(obj).data('rangeCalendar', obj );
741            
742            
743        });
744        
745        
746        return this.data("rangeCalendar");
747         
748      
749    };
750    
751    } )( jQuery, window );
752    
753    
754    
755    
756    
757    
758    
759    
760    
761    
762    

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.