var H7Page = function(pageName){ var $this = this, $window, $isTouch, page; $this.NAME = 'H7Page'; $this.config = { pageName: pageName, blockAni: false } var initHandler = function(){ $window = $(window); $isTouch = $this.is_touch_device(); $(document).on('sendAjax', $this.sendAjaxHandler); $(document).on('freezScroll', $this.freezScrollHandler); $(document).on('unFreezScroll', $this.unFreezScrollHandler); $(document).on('lock', $this.lockUI); $(document).on('unlock', $this.unlockUI); $(document).on('showPopup', $this.showPopup); $window.on('scroll', $this.scrollHandler); $this.scrollHandler(); $this.prepareMenu(); $this.preparePopupMessage(); if( $this.config.pageName != '' ){ $this.page = eval( 'new Page' + pageName + '()' ); $this.page.prepare($window, $isTouch); $this.page.init(); } $this.EUCookies(); resizeHandler(); } $this.scrollHandler = function(){ var scrollTop = $window.scrollTop(); } $this.prepareMenu = function(){ if( $('#changeCurrency option').length > 1 ){ $('#changeCurrency').on('change', function(){ $(this).closest("form").submit(); }); }else{ $('#changeCurrency').closest('form').remove(); } $('.shop-menu a').each(function(){ var s = $(this).attr('href').replace('.html', ''); if( window.location.href.indexOf(s) > -1 ){ $this.activateShopMenu( $(this).parent().closest('li') ); return false; } }); $('input, select, textarea').on('change', function(e){ $(this).removeClass('warning'); $(this).closest('.form-item').removeClass('warning'); }).on('keyup', function(){ $(this).removeClass('warning'); $(this).closest('.form-item').removeClass('warning'); }); $('.main-nav .main-menu .submenu .current').closest('.has-submenu').children('a').addClass('current'); } $this.activateShopMenu = function($el){ if( $el.length > 0 ){ $el.addClass('current'); $this.activateShopMenu( $el.parent().closest('li') ); } } $this.preparePopupMessage = function(){ $('#popupMessage .popupClose').on('click', function(){ $this.popupMessageClose(); }); $('#popupMessage .popupMessageOK').on('click', function(){ $this.popupMessageClose(); }); $('#popupMessage .popupMessageCustom').on('click', function(){ $this.popupMessageClose(); }); } $this.popupMessageClose = function(){ $('#popupMessage').removeClass('show'); $('#popupMessage .popupMessageTitle').html(''); $('#popupMessage .popupMessageTxt').html(''); $this.unlockUI(); } $this.showPopup = function(e, eData){ $('#popupMessage').addClass('show'); } $this.freezScrollHandler = function(){ $('body').unbind('mousewheel DOMMouseScroll scroll').bind('mousewheel DOMMouseScroll scroll', function(e) { e.preventDefault(); e.stopPropagation(); return false }); document.ontouchstart = function(e){ if( e.target.nodeName.toLowerCase() == 'a' ){ return true; } e.preventDefault(); } } $this.unFreezScrollHandler = function(){ $('body').unbind('mousewheel DOMMouseScroll scroll'); document.ontouchstart = function(e){ return true; } } $this.lockUI = function(){ $('#uiLock').addClass('show'); $this.freezScrollHandler(); } $this.unlockUI = function(){ $('#uiLock').removeClass('show'); $this.unFreezScrollHandler(); } $this.sendAjaxHandler = function(e, eData){ var target = eData.target; $.ajax({ type: 'POST', url: '', dataType: 'json', data: {action: eData.action, params: eData.params} }).done(function(data){ var i = 0; var l = data.length; for( i; i .container > .main > .sidebar').outerHeight(true); if( nH < sH ){ nH = sH; } if( nH < 500 ){ nH = 500; } $('.page > .container > .main').css( {minHeight: nH+'px'} ); if( typeof $this.page != 'undefined' ){ $this.page.resize(); } } var loadHandler = function(){ if( typeof $this.page != 'undefined' ){ $this.page.load(); } resizeHandler(); } $this.EUCookies = function(){ var cp = $this.readCookie('cookiePopup'); if( cp == "on" ){ $('.cookie').css('display', 'none'); }else{ $('.cookie').css('display', 'block'); $('.cookieClose').click(function(){ $this.createCookie('cookiePopup', 'on', 1000); $('.cookie').css('display', 'none'); }); } } $this.createCookie = function(name,value,days) { if (days) { var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "; expires="+date.toGMTString(); } else var expires = ""; document.cookie = name+"="+value+expires+"; path=/"; } $this.readCookie = function(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null; } $this.eraseCookie = function(name) { $this.createCookie(name,"",-1); } $this.is_touch_device = function() { var isTouch = false; if( navigator.userAgent.indexOf("Phone") > -1 || navigator.userAgent.indexOf("Touch") > -1 ){ isTouch = true; }else if( navigator.userAgent.indexOf("MSIE") > -1 || navigator.userAgent.indexOf("Trident") > -1 ){ if( !!('ontouchstart' in window) ){ isTouch = true; } }else if( !!('ontouchstart' in window) || !!('onmsgesturechange' in window) ){ if ( navigator.userAgent.match(/mobile/i) ) { isTouch = true; } } return isTouch; }; return { init: initHandler, resize: resizeHandler, load: loadHandler }; } var h7Page = new H7Page(pageName); $(document).ready(h7Page.init); $(window).load(h7Page.load); $(window).resize(h7Page.resize);