text: // DatePicker
  
  (function( $ ) {
      $.widget("metro.datepicker", {
  
          version: "1.0.0",
  
          options: {
              format: "dd.mm.yyyy",
              date: undefined,
              effect: 'none',
              position: 'bottom',
              //locale: $.Metro.currentLocale,
              //weekStart: (METRO_WEEK_START != undefined ? METRO_WEEK_START : 0), // 0 - Sunday, 1 - Monday
              otherDays: false,
              selected: function(d, d0){},
              _calendar: undefined
          },
  
  
          _create: function(){
              var that = this,
                  element = this.element,
                  input = element.children("input"),
                  button = element.children("button.btn-date");
  
              if (element.data('date') != undefined) this.options.date = element.data('date');
              if (element.data('format') != undefined) this.options.format = element.data('format');
              if (element.data('effect') != undefined) this.options.effect = element.data('effect');
              if (element.data('position') != undefined) this.options.position = element.data('position');
              if (element.data('locale') != undefined) this.options.locale = element.data('locale');
              if (element.data('weekStart') != undefined) this.options.weekStart = element.data('weekStart');
              if (element.data('otherDays') != undefined) this.options.otherDays = element.data('otherDays');
  
              this._createCalendar(element, this.options.date);
  
              input.attr('readonly', true);
              
              button.on('click', function(e){
                  e.stopPropagation();
                  if (that.options._calendar.css('display') == 'none') {
                      that._show();
                  } else {
                      that._hide();
                  }
              });
  
              element.on('click', function(e){
                  e.stopPropagation();
                  if (that.options._calendar.css('display') == 'none') {
                      that._show();
                  } else {
                      that._hide();
                  }
              });
  
              $('html').on('click', function(e){
                  $(".calendar-dropdown").hide();
              })
          },
  
          _createCalendar: function(to, curDate){
              var _calendar, that = this;
  
              _calendar = $("<div/>").css({
                  position: 'absolute'
                  , display: 'none'
                  , 'max-width': 260
                  , 'z-index': 1000
  
              }).addClass('calendar calendar-dropdown').appendTo(to);
  
              if (that.options.date != undefined) {
                  _calendar.data('date', that.options.date);
              }
  
              _calendar.calendar({
                  multiSelect: false,
                  format: that.options.format,
                  buttons: false,
                  locale: that.options.locale,
                  otherDays: that.options.otherDays,
                  weekStart: that.options.weekStart,
                  click: function(d, d0){
                      //console.log(d, d0);
                      _calendar.calendar('setDate', d0);
                      to.children("input[type=text]").val(d);
                      that.options.selected(d, d0);
                      that._hide();
                  }
              });
  
              if (curDate != undefined) {
                  _calendar.calendar('setDate', curDate);
                  to.children("input[type=text]").val(_calendar.calendar('getDate'));
              }
  
              // Set position
              switch (this.options.position) {
                  case 'top': _calendar.css({top: (0-_calendar.height()), left: 0}); break;
                  default: _calendar.css({top: '100%', left: 0});
              }
  
              this.options._calendar = _calendar;
          },
  
          _show: function(){
              if (this.options.effect == 'slide') {
                  $(".calendar-dropdown").slideUp('fast');
                  this.options._calendar.slideDown('fast');
              } else if (this.options.effect == 'fade') {
                  $(".calendar-dropdown").fadeOut('fast');
                  this.options._calendar.fadeIn('fast');
              } else {
                  $(".calendar-dropdown").hide();
                  this.options._calendar.show();
              }
          },
          _hide: function(){
              if (this.options.effect == 'slide') {
                  this.options._calendar.slideUp('fast');
              } else if (this.options.effect == 'fade') {
                  this.options._calendar.fadeOut('fast');
              } else {
                  this.options._calendar.hide();
              }
          },
  
          _destroy: function(){
          },
  
          _setOption: function(key, value){
              this._super('_setOption', key, value);
          }
      })
  })( jQuery );
  
  
  