Advertisement
Guest User

Albania Tibo

a guest
Mar 28th, 2020
336
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.70 KB | None | 0 0
  1. Tibo = {
  2. session: {},
  3. params: {
  4. debug: false,
  5. imageUrl: 'http://tiboimages4.tibo.tv',
  6. categoryBgUrl: 'http://tiboimages4.tibo.tv/final/images/vodmenuicon/',
  7. wrapper: 'view',
  8. vodMaxMovies: 10,
  9. width: window.innerWidth,
  10. height: window.innerHeight,
  11.  
  12. spinnerClass: 'spinner',
  13.  
  14. vodDetailsClass: 'vod-details',
  15. movieDetailsClass: 'movie-details',
  16.  
  17. vodGalleryContinerId: 'vodList',
  18.  
  19. mainMenu: 'main-menu',
  20. menuContainerId: 'categoryMain',
  21. staticMenuItem: 'staticItem',
  22. dynamicMenuItem: 'catItem',
  23. stacticMenuClass: 'stacticMenu',
  24. dynamicMenuClass: 'dynamicMenu',
  25. activeMenuItemClass: 'activeMenu',
  26. menuItemClass: 'item',
  27.  
  28. //swiper
  29. swiperWrapperClass: 'swiper-wrapper',
  30. swiperContainerClass: 'swiper-container',
  31. swiperButtonNextClass: 'swiper-button-next',
  32. swiperButtonPrevClass: 'swiper-button-prev',
  33. swiperSlideClass: 'swiper-slide'
  34. },
  35. fn: [],
  36. startup: function(callback){
  37. if(callback){
  38. this.fn.push(callback);
  39. }
  40. },
  41. loadView: function(data){
  42. this.prepareData();
  43. //get data from native
  44. if(data) this.data = data;
  45.  
  46. if(this.fn.length > 0){
  47. for(var i = 0, l = this.fn.length; i < l; i++){
  48. var fn = this.fn[i];
  49.  
  50. if(this.isFunction(this.fn[i])){
  51. fn();
  52. }
  53. }
  54. }
  55. },
  56. prepareData: function(){
  57. //set default route
  58. this.route('staticCat');
  59. //warpper content
  60. this.wrapper = $('#'+ this.params.wrapper);
  61. this.spinner = $('.'+ this.params.spinnerClass);
  62. },
  63. isFunction: function(v){
  64. return typeof v === "function";
  65. },
  66. route: function(name){
  67. if(name){
  68. this.session.route = name;
  69. } else {
  70. return (this.session.route) ? this.session.route : 'staticCat';
  71. }
  72. },
  73. goBackHistory: function(){
  74. if(this.route() == 'vodList'){
  75. $('.routes').removeClass('active');
  76. $('#categoryMain').addClass('active');
  77. this.route('dynamicCat');
  78. } else if(this.route() == 'dynamicCat'){
  79. $('.'+ this.params.dynamicMenuClass).empty().hide();
  80. $('.'+ this.params.stacticMenuClass).show();
  81. Tibo.wrapper.attr('style', '');
  82. this.route('staticCat');
  83. } else if(this.route() == 'staticCat'){
  84. JsHandler.closeActivity();
  85. }
  86. },
  87. changeBgImage: function(image){
  88. Tibo.wrapper.css("background-image", "url("+Tibo.params.categoryBgUrl+image+")");
  89. },
  90. loadCategoryList: function(data){
  91. $(Tibo.session.staticMenuItem).parent().parent().find('li').removeClass(Tibo.params.activeMenuItemClass);
  92. $(Tibo.session.staticMenuItem).parent().addClass(Tibo.params.activeMenuItemClass);
  93.  
  94. Tibo.session.staticMenuItem = null;
  95.  
  96. Tibo.route('dynamicCat');
  97.  
  98. if(data){
  99. var catList = (Tibo.params.debug) ? data : JSON.parse(data);
  100. var dynamicMenu = $('.'+ Tibo.params.dynamicMenuClass);
  101.  
  102. for(var i = 0; i < catList.length; i++){
  103. dynamicMenu.append('<li class="'+((i == 0) ? 'activeMenu' : '')+'"><span iconurl="'+catList[i].IconUrl+'" catid="'+catList[i].id+'" class="item catItem">'+catList[i].name+'</span></li>');
  104. }
  105.  
  106. dynamicMenu.append('<li><span class="item backToStaticmenu">&larr; Back</span></li>');
  107.  
  108. $('.'+ Tibo.params.stacticMenuClass).hide();
  109.  
  110. Tibo.changeBgImage(catList[0].IconUrl);
  111.  
  112. dynamicMenu.show();
  113.  
  114. Tibo.spinner.hide();
  115. }
  116. },
  117. startVod: function(){
  118. //vod movie list
  119. if(Tibo.route() != 'vodList') return;
  120.  
  121. Tibo.wrapper.children('.routes').removeClass('active');
  122. Tibo.wrapper.children('#vodList').addClass('active');
  123.  
  124. //add class to main content to move movie gallery on bottom of screen
  125. if(Tibo.params.height > 800){
  126. Tibo.wrapper.addClass('moveBottom');
  127. } else {
  128. Tibo.wrapper.removeClass('moveBottom');
  129. }
  130.  
  131. //calculate movie details width
  132. //before will get warper width and we remove image with
  133. if(Tibo.params.width < 600){
  134. $('.' + Tibo.params.movieDetailsClass).css({
  135. 'width': $('.' + Tibo.params.vodDetailsClass).width() - 100
  136. });
  137. } else {
  138. $('.' + Tibo.params.movieDetailsClass).css({
  139. 'width': $('.' + Tibo.params.vodDetailsClass).width() - 230
  140. });
  141. }
  142.  
  143. function changeMovie(activeIndex){
  144. var movies = Tibo.session.movieList;
  145.  
  146. if(movies){
  147. var active = movies[activeIndex];
  148.  
  149. if(movies && active){
  150. $('.'+Tibo.params.vodDetailsClass+' .image img').attr('src', active.icon.replace("~", Tibo.params.imageUrl));
  151. $('.'+Tibo.params.vodDetailsClass+' .title .string').text(active.title);
  152. $('.'+Tibo.params.vodDetailsClass+' .category .string').text(Tibo.session.activeCategory);
  153. $('.'+Tibo.params.vodDetailsClass+' .clicks .string').text('21');
  154. $('.'+Tibo.params.vodDetailsClass+' .description .string').text(active.description);
  155. }
  156. }
  157. }
  158.  
  159. //var data = Tibo.data;
  160. var movie = Tibo.session.movieList;
  161. var swiperSlides = [];
  162.  
  163. if(movie){
  164. var swiperContent = $('.'+Tibo.params.swiperWrapperClass);
  165.  
  166. swiperContent.empty();
  167.  
  168. for(var i = 0; i < Tibo.params.vodMaxMovies; i++){
  169. if(movie[i] && movie[i].largeimage){
  170. swiperSlides.push('<div index="'+i+'" class="'+Tibo.params.swiperSlideClass+'"><img src="'+movie[i].icon.replace("~", Tibo.params.imageUrl)+'"></div>');
  171. }
  172. }
  173.  
  174. changeMovie(0);
  175. }
  176.  
  177. if(!Tibo.swiper){
  178. Tibo.swiper = new Swiper('.'+Tibo.params.swiperContainerClass, {
  179. slidesPerView: 'auto',
  180. speed: 800,
  181. centeredSlides: true,
  182. paginationClickable: true,
  183. nextButton: '.'+Tibo.params.swiperButtonNextClass,
  184. prevButton: '.'+Tibo.params.swiperButtonPrevClass,
  185. spaceBetween: 30,
  186. keyboardControl: true,
  187. autoResize: false,
  188. iOSEdgeSwipeDetection: true,
  189. nested: true,
  190. onSlideChangeStart: function(slide){
  191. changeMovie(slide.activeIndex);
  192. }
  193. });
  194.  
  195. if(swiperSlides.length > 0) Tibo.swiper.appendSlide(swiperSlides);
  196. } else {
  197. if(swiperSlides.length > 0){
  198. Tibo.swiper.removeAllSlides();
  199. Tibo.swiper.appendSlide(swiperSlides);
  200. Tibo.swiper.slideTo(0, 10);
  201. }
  202. }
  203.  
  204. Tibo.spinner.hide();
  205. },
  206. prepareMovieList: function(data){
  207. Tibo.session.movieList = (Tibo.params.debug) ? DummyData.moviewList : data;
  208.  
  209. var imgurl = $(Tibo.session.dynamicMenuItem).attr('iconurl');
  210. if(imgurl) Tibo.changeBgImage(imgurl);
  211. Tibo.route('vodList');
  212. $(Tibo.session.dynamicMenuItem).parent().parent().find('li').removeClass(Tibo.params.activeMenuItemClass);
  213. $(Tibo.session.dynamicMenuItem).parent().addClass(Tibo.params.activeMenuItemClass);
  214.  
  215. Tibo.startVod();
  216. }
  217. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement