Advertisement
Guest User

Untitled

a guest
Jul 24th, 2014
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.34 KB | None | 0 0
  1. var Arya = {
  2. currentPage : 1,
  3. pageSize : 4,
  4. totalPages : 100,
  5. init : function() {
  6. jQuery('.open-side-menu').click(this.openSideMenu);
  7. jQuery('body').click(this.toggleSideMenu);
  8. jQuery('.st-menu').find('>ul').find('>li').find('>a').click(this.sideMenuInteraction);
  9. jQuery('.close-side-menu').click(this.closeSideMenu);
  10. setTimeout(function() {
  11. Arya.initWidgetsHeight();
  12. }, 100);
  13. this.resizeSlider();
  14. this.initSlider();
  15. this.initNormalSlider();
  16. this.initStickyPostHeader();
  17. this.likesFunctionality();
  18. this.postShare();
  19. //jQuery('.st-menu').outerHeight(jQuery(window).height());
  20. if(jQuery('body').hasClass('has-infinite-scroll')) {
  21. jQuery(window).scroll(Arya.initInfiniteScroll);
  22. }
  23. jQuery('.sidebar-slider').bind('mousewheel', function(e) {
  24. var body = jQuery('body');
  25. if(!body.hasClass('scrolling')) {
  26. Arya.initMouseMove(e.originalEvent.wheelDelta, true);
  27. body.addClass('scrolling');
  28. }
  29. });
  30. jQuery('.sidebar-slider').bind('DOMMouseScroll', function(e) {
  31. var body = jQuery('body');
  32. if(!body.hasClass('scrolling')) {
  33. Arya.initMouseMove(e.originalEvent.detail, false);
  34. body.addClass('scrolling');
  35. }
  36. });
  37. jQuery('#contact_submit').addClass('btn btn-default');
  38. },
  39. postShare : function() {
  40. jQuery('.post-share li a, .sticky-share li a').not('.dohref').on('click', function(e) {
  41. e.preventDefault();
  42. var href = jQuery(this).data('href');
  43. openWindow(href);
  44. });
  45.  
  46. function openWindow(url){
  47. var width=640;
  48. var height=460;
  49. var topPos=window.screen.height/2-(height/2);
  50. var leftPos=window.screen.width/2-(width/2);
  51. window.open(url,"Share", "status=1,height=" + height + ",width=" + width + ",top=" + topPos + ",left=" + leftPos + ",resizable=0");
  52. }
  53. },
  54. likesFunctionality : function() {
  55. jQuery('.icn-like').on('click', function(e) {
  56. e.preventDefault();
  57. var $this = jQuery(this),
  58. id = $this.data("id");
  59. jQuery.ajax({
  60. url: MyAjax.ajaxurl,
  61. type: "POST",
  62. data: {
  63. 'action' : 'like-submit',
  64. 'post_id' : id
  65. }
  66. }).done(function() {
  67. if($this.hasClass('liked') ) {
  68. $this.removeClass('liked');
  69. var likes = parseInt($this.find('span').html() ) - 1;
  70. $this.find('span').text(likes);
  71. }
  72. else {
  73. $this.addClass('liked');
  74. var likes = parseInt($this.find('span').html() ) + 1;
  75. $this.find('span').text(likes);
  76. }
  77. });
  78. });
  79. },
  80. initMouseMove : function(index, inverse) {
  81. if(index > 0) {
  82. if(inverse) {
  83. Arya.sidebarSlider.goToPrevSlide();
  84. } else {
  85. Arya.sidebarSlider.goToNextSlide();
  86. }
  87. } else {
  88. if(inverse) {
  89. Arya.sidebarSlider.goToNextSlide();
  90. } else {
  91. Arya.sidebarSlider.goToPrevSlide();
  92. }
  93. }
  94. setTimeout(function() {
  95. jQuery('body').removeClass('scrolling');
  96. }, 1500);
  97. },
  98. initInfiniteScroll : function() {
  99. var windowH = jQuery(window).height();
  100. var scrollTop = jQuery(window).scrollTop();
  101. var watchContainer = jQuery('main').find('.left-container');
  102. if(jQuery('body').hasClass('homepage3')) {
  103. watchContainer = jQuery('main').find('.homepage-articles');
  104. }
  105. var treshold = watchContainer.outerHeight() + jQuery('header').outerHeight() + jQuery('.normal-slider-wrap').outerHeight();
  106. if(treshold * 0.95 < (scrollTop + windowH) ) {
  107. Arya.startInfiniteScroll();
  108. jQuery('body').addClass('loading');
  109. }
  110. },
  111. startInfiniteScroll : function() {
  112. var body = jQuery('body');
  113. if(body.hasClass('loading')) return false;
  114. if(Arya.currentPage >= Arya.totalPages) return false;
  115. if(body.hasClass('homepage3')) {
  116. Arya.infiniteScrollHomepage3();
  117. }
  118. if(body.hasClass('homepage2')) {
  119. Arya.infiniteScrollHomepage2();
  120. }
  121. return true;
  122. },
  123. infiniteScrollHomepage3 : function() {
  124. var appendContainer = jQuery('.homepage-articles').find('.col-sm-12');
  125. var id='';
  126. if(jQuery('.post_id').length) {
  127. id = jQuery('.post_id').data('id');
  128. }
  129. jQuery.ajax({
  130. method: "GET",
  131. url : MyAjax.ajaxurl,
  132. dataType : 'json',
  133. data : {
  134. action : 'teo-infinite',
  135. page : Arya.currentPage,
  136. pageSize : Arya.pageSize,
  137. template : 'home3',
  138. post_id : id
  139. },
  140. success : function(rsp) {
  141. Arya.appendContent(rsp, appendContainer);
  142. }
  143. });
  144. },
  145. infiniteScrollHomepage2 : function() {
  146. var appendContainer = jQuery('#post-container').find('.left-container');
  147. var extra = '';
  148. var id = '';
  149. if(jQuery('.query_parameters').length) {
  150. extra = jQuery('.query_parameters').data('parameters');
  151. }
  152. if(jQuery('.post_id').length) {
  153. id = jQuery('.post_id').data('id');
  154. }
  155. jQuery.ajax({
  156. method: "GET",
  157. url : MyAjax.ajaxurl,
  158. dataType : 'json',
  159. data : {
  160. action : 'teo-infinite',
  161. page : Arya.currentPage,
  162. pageSize : Arya.pageSize,
  163. template : 'home2',
  164. query_string : extra,
  165. post_id : id
  166. },
  167. success : function(rsp) {
  168. Arya.appendContent(rsp, appendContainer);
  169. Arya.postShare();
  170. },
  171. error: function (request, status, error) {
  172. console.log(request + " --- " + status + " --- " + error);
  173. }
  174. });
  175. },
  176. initWidgetsHeight : function() {
  177. var container = jQuery('#post-container').find('.left-container').first();
  178. var widgets = jQuery('.widgets');
  179. container.removeAttr('style');
  180. widgets.removeAttr('style');
  181. var minHeight = container.height() > widgets.height() ? container.height() : widgets.height();
  182. if(jQuery(window).width() >= 768) {
  183. container.css('min-height', minHeight+'px');
  184. //widgets.css('min-height', minHeight+'px');
  185. }
  186. },
  187. appendContent : function(rsp, appendContainer) {
  188. Arya.currentPage++;
  189. Arya.totalPages = rsp.totalPages;
  190. setTimeout(function() {
  191. jQuery('body').removeClass('loading');
  192. }, 500);
  193. jQuery.each(rsp.items, function(index, item) {
  194. var source = jQuery("#article-template").html();
  195. var template = Handlebars.compile(source);
  196. item.title = jQuery("<div/>").html(item.title).text();
  197. item.excerpt = jQuery("<div/>").html(item.excerpt).text();
  198. var html = template(item);
  199. html = jQuery(html).hide();
  200. appendContainer.append(html.fadeIn(300, function() {
  201. Arya.initWidgetsHeight();
  202. }));
  203. });
  204. },
  205. openSideMenu : function(e) {
  206. var body = jQuery('body');
  207. jQuery('#main-container').css('min-height', jQuery(window).height() + "px");
  208. //jQuery('.st-menu').outerHeight(jQuery(window).height());
  209. if(body.hasClass('st-menu-open')) {
  210. body.removeClass('st-menu-open');
  211. setTimeout(function() {
  212. body.removeClass('body-overflow');
  213. }, 300);
  214. } else {
  215. setTimeout(function() {
  216. body.addClass('st-menu-open');
  217. setTimeout(function() {
  218. body.addClass('body-overflow');
  219. }, 300);
  220. }, 50);
  221. }
  222. e.preventDefault();
  223. },
  224. closeSideMenu : function() {
  225. var body = jQuery('body');
  226. body.removeClass('st-menu-open');
  227. setTimeout(function() {
  228. body.removeClass('body-overflow');
  229. }, 300);
  230. },
  231. toggleSideMenu : function() {
  232. var body = jQuery('body');
  233. if(body.hasClass('st-menu-open') && !jQuery('.st-menu').is(':hover')) {
  234. body.removeClass('st-menu-open');
  235. setTimeout(function() {
  236. body.removeClass('body-overflow');
  237. }, 300);
  238. }
  239. },
  240. sideMenuInteraction : function(e) {
  241. var el = jQuery(this);
  242. var next = jQuery(this).next();
  243. if(next.is('ul')) {
  244. if(next.children('li').is(':visible')) {
  245. next.children('li').slideUp(300);
  246. el.parent().removeClass('selected');
  247. } else {
  248. next.children('li').slideDown(300);
  249. el.parent().addClass('selected');
  250. }
  251. e.preventDefault();
  252. }
  253. },
  254. resizeSlider : function() {
  255. var mainSlider = jQuery('.main-slider');
  256. var sidebarSlider = jQuery('.sidebar-slider');
  257. var windowH = jQuery(window).height();
  258. jQuery('.full-homepage').height(windowH);
  259. mainSlider.height(windowH);
  260. sidebarSlider.height(windowH);
  261. mainSlider.find('article').outerHeight(windowH);
  262. sidebarSlider.find('article').outerHeight(windowH/3);
  263. var slideH = windowH/3;
  264. jQuery('.right-section').find('.bx-viewport').css({
  265. 'padding-top' : slideH + "px"
  266. });
  267. },
  268. initNormalSlider : function() {
  269. var normalSliderWrap = jQuery('.normal-slider-wrap');
  270. var slider = jQuery('.normal-slider').bxSlider({
  271. mode: 'vertical',
  272. slideSelector : '.slide',
  273. controls : false,
  274. pager : false,
  275. onSlideBefore : function() {
  276. normalSliderWrap.find('.slider-controls').find('.current-slide').text(slider.getCurrentSlide()+1);
  277. }
  278. });
  279. if(normalSliderWrap.length) {
  280. normalSliderWrap.find('.slider-controls').find('.current-slide').text(slider.getCurrentSlide()+1);
  281. normalSliderWrap.find('.slider-controls').find('.count-slides').text(slider.getSlideCount());
  282. normalSliderWrap.find('.slider-controls').find('.prev').on('click', function() {
  283. slider.goToPrevSlide();
  284. });
  285. normalSliderWrap.find('.slider-controls').find('.next').on('click', function() {
  286. slider.goToNextSlide();
  287. });
  288. }
  289. },
  290. initSlider : function() {
  291. var sidebarSliderContainer = jQuery('.sidebar-slider');
  292. var rightSection = jQuery('.right-section');
  293. var mainSlider = jQuery('.main-slider');
  294. Arya.sidebarSlider = sidebarSliderContainer.bxSlider({
  295. mode: 'vertical',
  296. minSlides: 3,
  297. moveSlides : 1,
  298. controls : false,
  299. pager : false,
  300. onSliderLoad : function() {
  301. var windowH = jQuery(window).height();
  302. var slideH = windowH/3;
  303. jQuery('.right-section').find('.bx-viewport').css({
  304. 'padding-top' : slideH + "px"
  305. });
  306. },
  307. onSlideBefore : function($slideElement) {
  308. jQuery('html, body').animate({
  309. scrollTop: 0
  310. }, 500);
  311. sidebarSliderContainer.find('.active').removeClass('active');
  312. $slideElement.addClass('active');
  313. rightSection.find('.slider-controls').find('.current-slide').text(Arya.sidebarSlider.getCurrentSlide()+1);
  314. },
  315. onSlideNext : function() {
  316. var visibleItem = mainSlider.find('.visible');
  317. var next = visibleItem.next();
  318. if(!visibleItem.next().is('article')) {
  319. next = mainSlider.find('article').first();
  320. }
  321. visibleItem.addClass('firstAnim').removeClass('bigIndex');
  322. next.addClass('bigIndex');
  323. setTimeout(function() {
  324. next.addClass('secondAnim').addClass('visible');
  325. }, 400);
  326. setTimeout(function() {
  327. visibleItem.removeClass('visible').removeClass('firstAnim');
  328. next.removeClass('secondAnim');
  329. }, 800);
  330. setTimeout(function() {
  331. next.removeClass('bigIndex');
  332. }, 1200);
  333. },
  334. onSlidePrev : function() {
  335. var visibleItem = mainSlider.find('.visible');
  336. var prev = visibleItem.prev();
  337. if(!visibleItem.prev().is('article')) {
  338. prev = mainSlider.find('article').last();
  339. }
  340. visibleItem.addClass('firstAnim').removeClass('bigIndex');
  341. prev.addClass('bigIndex');
  342. setTimeout(function() {
  343. prev.addClass('bigIndex').addClass('secondAnim').addClass('visible');
  344. }, 400);
  345. setTimeout(function() {
  346. visibleItem.removeClass('visible').removeClass('firstAnim');
  347. prev.removeClass('secondAnim');
  348. }, 800);
  349. setTimeout(function() {
  350. prev.removeClass('bigIndex');
  351. }, 1200);
  352.  
  353. }
  354. });
  355. sidebarSliderContainer.find('article').on('click', function() {
  356. var index = jQuery(this).data('slide-index');
  357. if(Arya.sidebarSlider.getCurrentSlide() != index) {
  358. var visibleItem = mainSlider.find('.visible');
  359. var currentSlide = mainSlider.find('article').eq(index);
  360. Arya.sidebarSlider.goToSlide(index);
  361. visibleItem.addClass('firstAnim').removeClass('bigIndex');
  362. currentSlide.addClass('bigIndex');
  363. setTimeout(function() {
  364. currentSlide.addClass('secondAnim').addClass('visible');
  365. }, 400);
  366. setTimeout(function() {
  367. visibleItem.removeClass('visible').removeClass('firstAnim');
  368. currentSlide.removeClass('secondAnim');
  369. }, 800);
  370. setTimeout(function() {
  371. currentSlide.removeClass('bigIndex');
  372. }, 1200);
  373. }
  374. });
  375. if(Arya.sidebarSlider.length) {
  376. rightSection.find('.slider-controls').find('.current-slide').text(Arya.sidebarSlider.getCurrentSlide()+1);
  377. rightSection.find('.slider-controls').find('.count-slides').text(Arya.sidebarSlider.getSlideCount());
  378. rightSection.find('.slider-controls').find('.prev').on('click', function() {
  379. Arya.sidebarSlider.goToPrevSlide();
  380. });
  381. rightSection.find('.slider-controls').find('.next').on('click', function() {
  382. Arya.sidebarSlider.goToNextSlide();
  383. });
  384. }
  385. },
  386. initStickyPostHeader : function() {
  387. $postHeader = jQuery('.post-header');
  388. $headerHeight = jQuery('header').outerHeight();
  389. $containerWIdth = jQuery('.left-container').outerWidth();
  390. if (jQuery(window).scrollTop() <= $headerHeight) {
  391. $postHeader.removeClass('sticky');
  392. } else {
  393. $postHeader.addClass('sticky');
  394. jQuery('.sticky').css('width', $containerWIdth + 'px');
  395. }
  396. }
  397. };
  398. jQuery(document).ready(function() {
  399. Arya.init();
  400. });
  401. jQuery(window).resize(function() {
  402. Arya.initWidgetsHeight();
  403. Arya.resizeSlider();
  404. Arya.initStickyPostHeader();
  405. });
  406. jQuery(window).scroll(function(){
  407. Arya.initStickyPostHeader();
  408. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement