!!!!!!!!!!!
ÿØÿà JFIF ÿÛ „ ( %!1!%)+...383-7(-.+
home/julieblax/www/rvo/ktz/simple/js/main.js 0000644 00000014236 15220245273 0015114 0 ustar 00 (function($){
'use strict';
//Отдельном выносим языки, для более простой локализации
var Lang = {
ru: {
//Месяца
months: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
//Месяца в родительcком падеже
monthsRp: ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'],
//Месяца в предложном падеже
monthsPp: ['январе', 'феврале', 'марте', 'апреле', 'мае', 'июне', 'июле', 'августе', 'сентябре', 'октябре', 'ноябре', 'декабре'],
maxPurchase: 'Больше всего заказов (_COUNT_) было _DATE_ _MONTH_ 2015 года.',
stockInfoTitle: 'Более 100 000 продаж в ',
stockInfoTime: 'Сроки проведения акции с _STARTDATE_ _STARTMONTH_ по _ENDDATE_ _ENDMONTH_'
}
};
//Объявляем класс нашего лендинга
var Landing = function () {
this.nowDate = new Date();
//Параметры загрузки лендинга
this.params = {
lang: 'ru', //локализация
maxPurchase: 2419, //Максимальное кол-во покупок
maxPurchaseDate: 2, //Количество дней назад
startStockDate: 29, //Дней назад началась акция
endStockDate: 1, //Дней через которые акция закончится
lastPackTime: 15, //Секунд, через которое уменьшится количество оставшихся на складе упаковок
countDownDiff: Math.ceil((24*60*60)-(this.nowDate.getHours() * 60 * 60 + this.nowDate.getMinutes() * 60 + this.nowDate.getSeconds())), //Количество секунд до конца таймера
selectors: {
countDown: '.landing__countdown', //Таймер
maxPurcahesDate: '.landing__maxpurcashe', //Максимальное кол-во покупок
stockInfo: '.landing__stockinfo',
stockInfoTitle: '.landing__stockinfo_title',
lastPack: '.landing__lastpack'
}
};
//Стартуем таймер
this.initCountDown();
//Заполняем обман
//Максимальное количество покупок
this.initMaxPurcasheDate();
//Даты проведения акции
this.initStockInfo();
//Уменьшаем количество lastpack
this.initLastPack();
this.initEvents();
};
//Список ивентов лендинга
Landing.prototype.initEvents = function() {
};
//Уменьшаем количество last-pack
Landing.prototype.initLastPack = function() {
var _this = this;
var lastPackTimer = setTimeout(function() {
$(_this.params.selectors.lastPack).each(function (index, elem){
var val = parseFloat($(elem).text(), 10);
$(elem).html((val-1));
});
}, this.params.lastPackTime * 1000);
};
//Информация о дате проведения лендингов
Landing.prototype.initStockInfo = function() {
var lang = Lang[this.params.lang];
var stockTitle = lang.stockInfoTitle + lang.monthsPp[this.nowDate.getUTCMonth()];
var endStockDate = new Date(this.nowDate.getTime() + (this.params.endStockDate*24*60*60*1000));
var startStockDate = new Date(this.nowDate.getTime() - (this.params.startStockDate*24*60*60*1000));
var stockInfo = lang.stockInfoTime;
stockInfo = stockInfo.replace('_STARTDATE_', startStockDate.getUTCDate());
stockInfo = stockInfo.replace('_ENDDATE_', endStockDate.getUTCDate());
stockInfo = stockInfo.replace('_STARTMONTH_', lang.monthsRp[startStockDate.getMonth()]);
stockInfo = stockInfo.replace('_ENDMONTH_', lang.monthsRp[endStockDate.getMonth()]);
$(this.params.selectors.stockInfoTitle).html(stockTitle);
$(this.params.selectors.stockInfo).html(stockInfo);
};
//Максимальное количество покупок
Landing.prototype.initMaxPurcasheDate = function() {
var maxPurchaseDate = new Date(this.nowDate.getTime() - (this.params.maxPurchaseDate*24*60*60*1000));
var htmlString = Lang[this.params.lang].maxPurchase;
htmlString = htmlString.replace('_COUNT_', this.params.maxPurchase);
htmlString = htmlString.replace('_DATE_', maxPurchaseDate.getUTCDate());
htmlString = htmlString.replace('_MONTH_', Lang[this.params.lang].monthsRp[maxPurchaseDate.getUTCMonth()]);
$(this.params.selectors.maxPurcahesDate).html(htmlString);
};
//Таймер countdown
Landing.prototype.initCountDown = function() {
var _this = this,
endDate = new Date(this.nowDate.getTime() + this.params.countDownDiff * 1000);
var countDownTimer = setInterval( function () {
var diffDate = new Date(endDate.getTime() - Date.now()),
h = (diffDate.getHours() > 9) ? diffDate.getHours() : '0'+diffDate.getHours(),
m = (diffDate.getMinutes() > 9) ? diffDate.getMinutes() : '0'+diffDate.getMinutes(),
s = (diffDate.getSeconds() > 9) ? diffDate.getSeconds() : '0'+diffDate.getSeconds();
var htmlTime = ''+ h +''+
''+ m +''+
''+ s +'';
$(_this.params.selectors.countDown).html(htmlTime);
}, 1000);
};
$(function() {
window.landing = new Landing();
});
})(jQuery);