2013-08-29 12:30:04 +03:00
|
|
|
/**
|
|
|
|
* Кнопки тулбара
|
|
|
|
*
|
|
|
|
* @module ls/toolbar
|
|
|
|
*
|
|
|
|
* @license GNU General Public License, version 2
|
|
|
|
* @copyright 2013 OOO "ЛС-СОФТ" {@link http://livestreetcms.com}
|
|
|
|
* @author Denis Shakhov <denis.shakhov@gmail.com>
|
|
|
|
*/
|
|
|
|
|
2012-03-27 18:30:14 +03:00
|
|
|
var ls = ls || {};
|
2013-08-29 12:30:04 +03:00
|
|
|
|
2012-03-27 18:30:14 +03:00
|
|
|
ls.toolbar = ls.toolbar || {};
|
|
|
|
|
|
|
|
/**
|
2013-08-29 12:30:04 +03:00
|
|
|
* Кнопка навигации по топикам
|
2012-03-27 18:30:14 +03:00
|
|
|
*/
|
|
|
|
ls.toolbar.topic = (function ($) {
|
|
|
|
|
|
|
|
this.iCurrentTopic=-1;
|
|
|
|
|
|
|
|
this.init = function() {
|
2013-07-15 12:40:44 +03:00
|
|
|
var self = this;
|
2012-03-27 18:30:14 +03:00
|
|
|
var vars = [], hash;
|
|
|
|
var hashes = window.location.hash.replace('#','').split('&');
|
|
|
|
for(var i = 0; i < hashes.length; i++) {
|
|
|
|
hash = hashes[i].split('=');
|
|
|
|
vars.push(hash[0]);
|
|
|
|
vars[hash[0]] = hash[1];
|
|
|
|
}
|
|
|
|
|
|
|
|
if (vars.goTopic!==undefined) {
|
|
|
|
if (vars.goTopic=='last') {
|
|
|
|
this.iCurrentTopic=$('.js-topic').length-2;
|
|
|
|
} else {
|
2013-08-29 12:30:04 +03:00
|
|
|
this.iCurrentTopic=parseInt(vars.goTopic, 10)-1;
|
2012-03-27 18:30:14 +03:00
|
|
|
}
|
|
|
|
this.goNext();
|
|
|
|
}
|
2013-07-15 12:40:44 +03:00
|
|
|
|
|
|
|
|
|
|
|
// Переход по страницам
|
|
|
|
$(document).on('keyup', function (e) {
|
|
|
|
var key = e.keyCode || e.which;
|
|
|
|
|
|
|
|
if (e.ctrlKey) {
|
|
|
|
switch (key) {
|
|
|
|
case 38: // Up Arrow
|
|
|
|
self.goPrev();
|
|
|
|
break;
|
|
|
|
case 40: // Down Arrow
|
|
|
|
self.goNext();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
2012-03-27 18:30:14 +03:00
|
|
|
};
|
|
|
|
|
2012-04-13 03:20:59 +03:00
|
|
|
this.reset = function() {
|
|
|
|
this.iCurrentTopic=-1;
|
|
|
|
};
|
|
|
|
|
2012-03-27 18:30:14 +03:00
|
|
|
/**
|
|
|
|
* Прокрутка следующему топику
|
|
|
|
*/
|
|
|
|
this.goNext = function() {
|
|
|
|
this.iCurrentTopic++;
|
|
|
|
var topic=$('.js-topic:eq('+this.iCurrentTopic+')');
|
|
|
|
if (topic.length) {
|
|
|
|
$.scrollTo(topic, 500);
|
|
|
|
} else {
|
|
|
|
this.iCurrentTopic=$('.js-topic').length-1;
|
|
|
|
// переход на следующую страницу
|
2013-07-15 12:40:44 +03:00
|
|
|
ls.pagination.next(true);
|
2012-03-27 18:30:14 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Прокрутка предыдущему топику
|
|
|
|
*/
|
|
|
|
this.goPrev = function() {
|
|
|
|
this.iCurrentTopic--;
|
|
|
|
if (this.iCurrentTopic<0) {
|
|
|
|
this.iCurrentTopic=0;
|
|
|
|
// на предыдущую страницу
|
2013-07-15 12:40:44 +03:00
|
|
|
ls.pagination.prev(true);
|
2012-03-27 18:30:14 +03:00
|
|
|
} else {
|
|
|
|
var topic=$('.js-topic:eq('+this.iCurrentTopic+')');
|
|
|
|
if (topic.length) {
|
|
|
|
$.scrollTo(topic, 500);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
};
|
|
|
|
|
|
|
|
return this;
|
2012-04-13 03:20:59 +03:00
|
|
|
}).call(ls.toolbar.topic || {},jQuery);
|
|
|
|
|
2013-08-29 12:30:04 +03:00
|
|
|
|
2012-04-13 03:20:59 +03:00
|
|
|
/**
|
2013-08-29 12:30:04 +03:00
|
|
|
* Кнопка прокрутки вверх
|
2012-04-13 03:20:59 +03:00
|
|
|
*/
|
|
|
|
ls.toolbar.up = (function ($) {
|
|
|
|
|
|
|
|
this.init = function() {
|
|
|
|
$(window).scroll(function(){
|
|
|
|
if ($(window).scrollTop() > $(window).height() / 2) {
|
|
|
|
$('#toolbar_scrollup').fadeIn(500);
|
|
|
|
} else {
|
|
|
|
$('#toolbar_scrollup').fadeOut(500);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
this.goUp = function() {
|
|
|
|
ls.toolbar.topic.reset();
|
|
|
|
$.scrollTo(0, 500);
|
|
|
|
return false;
|
|
|
|
};
|
|
|
|
|
|
|
|
return this;
|
|
|
|
}).call(ls.toolbar.up || {},jQuery);
|