(function ($) {

   $.fn.datepickerrange = function () {
       var opts = $.extend({
           "dateFormat": "dd.mm.yy",
           "changeMonth": false,
           "changeYear": false,
           "dayNamesMin": ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],
           "monthNames": ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
           "monthNamesShort": ['янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'],
           "firstDay": 1,
           "numberOfMonths": 2,
           "onClose": function (dateText, inst) {
             updateWidth.call(this, dateText, inst);
             if ($.isFunction(opts.callback)) {
               opts.callback(dateText);
             }
           },
           "onSelect": function (dateText, inst) {
               var textStart;
               if (!inst.rangeStart) {
                   inst.stayOpen = true;
               } else {
                   inst.stayOpen = false;
                   textStart = $.datepicker.formatDate(opts.dateFormat, inst.rangeStart);
                   if (textStart !== dateText) {
                       $(this).val(textStart + " — " + dateText);
                   }
               }
           }
       }, arguments[0] || {});

       function updateWidth(dateText, inst) {
           var helper = $(this).siblings("span");
           $(helper).text(dateText);
           $(this).width(helper.width()).blur();
       }

       return this.each(function () {
           var dp, ele = $(this), input = ele.find("input.range-holder");

           $(document.createElement("span")).appendTo(ele).css({
               "position": "absolute",
               "visibility": "hidden",
               "fontSize": input.css("fontSize"),
               "whiteSpace": "nowrap"
           });

           dp = input.datepicker(opts)
                   .each(function () {
                       updateWidth.call(this, $(this).val(), {});
                   });

           ele.find("img").bind("click", function () {
               dp.datepicker("show");
           });
       });
   };

}(jQuery));