scripts_js_file.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package template
  2. var VarScriptsJsFile = []byte(`(function(window, $) {
  3. var frontend = function(window, $) {
  4. var ShopProductsLightGalleryLastImage = '';
  5. // Private
  6. function ShopProductsInitLightGallery() {
  7. $('#product_thumbnails').lightGallery({
  8. pager: false,
  9. showThumbByDefault: false,
  10. toogleThumb: false,
  11. controls: false,
  12. download: false
  13. });
  14. $('#product_image img').css('cursor', 'pointer').click(function() {
  15. $($('#product_thumbnails a.thumbnail').get($(this).data('index'))).click();
  16. });
  17. $('#product_thumbnails a.thumbnail').each(function() {
  18. $(this).mouseover(function() {
  19. if($(this).data('hover') != ShopProductsLightGalleryLastImage) {
  20. ShopProductsLightGalleryLastImage = $(this).data('hover');
  21. $('#product_image img').attr('src', $(this).data('hover'));
  22. $('#product_image img').data('index', $(this).data('index'));
  23. }
  24. });
  25. });
  26. };
  27. function ShopSetBasketNavBtnProductsCount(value) {
  28. $('#basket-nav-btn .badge').html(value);
  29. };
  30. function Initialize() {
  31. // Check if jQuery was loaded
  32. if(typeof $ == 'function') {
  33. ShopProductsInitLightGallery();
  34. } else {
  35. console.log('Error: jQuery is not loaded!');
  36. }
  37. };
  38. // Initialize
  39. if(window.addEventListener) {
  40. // W3C standard
  41. window.addEventListener('load', Initialize, false);
  42. } else if(window.attachEvent) {
  43. // Microsoft
  44. window.attachEvent('onload', Initialize);
  45. };
  46. // Public
  47. return {
  48. ShopOpenBasket: function(object) {
  49. if(!$(object).hasClass('click-blocked')) {
  50. $(object).addClass('click-blocked');
  51. ShopSetBasketNavBtnProductsCount(0);
  52. console.log('ShopOpenBasket', object);
  53. $(object).removeClass('click-blocked');
  54. }
  55. return false;
  56. },
  57. // TODO: add product to basket or count++ if already in basket
  58. // Update products counter in header nav bar button
  59. // Automatically open basket popup
  60. ShopAddProductToBasket: function(object, product_id) {
  61. if(!$(object).hasClass('click-blocked')) {
  62. $(object).addClass('click-blocked');
  63. ShopSetBasketNavBtnProductsCount(product_id);
  64. console.log('ShopAddProductToBasket', object, product_id);
  65. $(object).removeClass('click-blocked');
  66. }
  67. return false;
  68. },
  69. };
  70. }(window, $);
  71. window.frontend = frontend;
  72. }(window, jQuery));`)