?
Current Path : /home1/savoy/www/savoyglobal.net/cocorico/assets/scripts/ |
Linux gator3171.hostgator.com 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 |
Current File : /home1/savoy/www/savoyglobal.net/cocorico/assets/scripts/app.js |
/** Core script to handle the entire layout and base functions **/ var App = function () { // IE mode var isRTL = false; var isIE8 = false; var isIE9 = false; var isIE10 = false; var sidebarWidth = 225; var sidebarCollapsedWidth = 35; var responsiveHandlers = []; // theme layout color set var layoutColorCodes = { 'blue': '#4b8df8', 'red': '#e02222', 'green': '#35aa47', 'purple': '#852b99', 'grey': '#555555', 'light-grey': '#fafafa', 'yellow': '#ffb848' }; // last popep popover var lastPopedPopover; var handleInit = function() { if ($('body').css('direction') === 'rtl') { isRTL = true; } isIE8 = !! navigator.userAgent.match(/MSIE 8.0/); isIE9 = !! navigator.userAgent.match(/MSIE 9.0/); isIE10 = !! navigator.userAgent.match(/MSIE 10.0/); if (isIE10) { jQuery('html').addClass('ie10'); // detect IE10 version } } var handleDesktopTabletContents = function () { // loops all page elements with "responsive" class and applies classes for tablet mode // For Metronic 1280px or less set as tablet mode to display the content properly if ($(window).width() <= 1280 || $('body').hasClass('page-boxed')) { $(".responsive").each(function () { var forTablet = $(this).attr('data-tablet'); var forDesktop = $(this).attr('data-desktop'); if (forTablet) { $(this).removeClass(forDesktop); $(this).addClass(forTablet); } }); } // loops all page elements with "responsive" class and applied classes for desktop mode // For Metronic higher 1280px set as desktop mode to display the content properly if ($(window).width() > 1280 && $('body').hasClass('page-boxed') === false) { $(".responsive").each(function () { var forTablet = $(this).attr('data-tablet'); var forDesktop = $(this).attr('data-desktop'); if (forTablet) { $(this).removeClass(forTablet); $(this).addClass(forDesktop); } }); } } var handleSidebarState = function () { // remove sidebar toggler if window width smaller than 900(for table and phone mode) if ($(window).width() < 980) { $('body').removeClass("page-sidebar-closed"); } } var runResponsiveHandlers = function () { // reinitialize other subscribed elements for (var i in responsiveHandlers) { var each = responsiveHandlers[i]; each.call(); } } var handleResponsive = function () { handleTooltips(); handleSidebarState(); handleDesktopTabletContents(); handleSidebarAndContentHeight(); // handleChoosenSelect(); handleFixedSidebar(); runResponsiveHandlers(); } var handleResponsiveOnInit = function () { handleSidebarState(); handleDesktopTabletContents(); handleSidebarAndContentHeight(); } var handleResponsiveOnResize = function () { var resize; if (isIE8) { var currheight; $(window).resize(function() { if(currheight == document.documentElement.clientHeight) { return; //quite event since only body resized not window. } if (resize) { clearTimeout(resize); } resize = setTimeout(function() { handleResponsive(); }, 50); // wait 50ms until window resize finishes. currheight = document.documentElement.clientHeight; // store last body client height }); } else { $(window).resize(function() { if (resize) { clearTimeout(resize); } resize = setTimeout(function() { handleResponsive(); }, 50); // wait 50ms until window resize finishes. }); } } //* BEGIN:CORE HANDLERS *// // this function handles responsive layout on screen size resize or mobile device rotate. var handleSidebarAndContentHeight = function () { var content = $('.page-content'); var sidebar = $('.page-sidebar'); var body = $('body'); var height; if (body.hasClass("page-footer-fixed") === true && body.hasClass("page-sidebar-fixed") === false) { var available_height = $(window).height() - $('.footer').height(); if (content.height() < available_height) { content.attr('style', 'min-height:' + available_height + 'px !important'); } } else { if (body.hasClass('page-sidebar-fixed')) { height = _calculateFixedSidebarViewportHeight(); } else { height = sidebar.height() + 20; } if (height >= content.height()) { content.attr('style', 'min-height:' + height + 'px !important'); } } } var handleSidebarMenu = function () { jQuery('.page-sidebar').on('click', 'li > a', function (e) { if ($(this).next().hasClass('sub-menu') == false) { if ($('.btn-navbar').hasClass('collapsed') == false) { $('.btn-navbar').click(); } return; } var parent = $(this).parent().parent(); var the = $(this); parent.children('li.open').children('a').children('.arrow').removeClass('open'); parent.children('li.open').children('.sub-menu').slideUp(200); parent.children('li.open').removeClass('open'); var sub = jQuery(this).next(); var slideOffeset = -200; var slideSpeed = 200; if (sub.is(":visible")) { jQuery('.arrow', jQuery(this)).removeClass("open"); jQuery(this).parent().removeClass("open"); sub.slideUp(slideSpeed, function () { if ($('body').hasClass('page-sidebar-fixed') == false && $('body').hasClass('page-sidebar-closed') == false) { App.scrollTo(the, slideOffeset); } handleSidebarAndContentHeight(); }); } else { jQuery('.arrow', jQuery(this)).addClass("open"); jQuery(this).parent().addClass("open"); sub.slideDown(slideSpeed, function () { if ($('body').hasClass('page-sidebar-fixed') == false && $('body').hasClass('page-sidebar-closed') == false) { App.scrollTo(the, slideOffeset); } handleSidebarAndContentHeight(); }); } e.preventDefault(); }); // handle ajax links jQuery('.page-sidebar').on('click', ' li > a.ajaxify', function (e) { e.preventDefault(); App.scrollTop(); var url = $(this).attr("href"); var menuContainer = jQuery('.page-sidebar ul'); var pageContent = $('.page-content'); var pageContentBody = $('.page-content .page-content-body'); menuContainer.children('li.active').removeClass('active'); menuContainer.children('arrow.open').removeClass('open'); $(this).parents('li').each(function () { $(this).addClass('active'); $(this).children('a > span.arrow').addClass('open'); }); $(this).parents('li').addClass('active'); App.blockUI(pageContent, false); $.ajax({ type: "GET", cache: false, url: url, dataType: "html", success: function(res) { App.unblockUI(pageContent); pageContentBody.html(res); App.fixContentHeight(); // fix content height App.initUniform(); // initialize uniform elements }, error: function(xhr, ajaxOptions, thrownError) { pageContentBody.html('<h4>Could not load the requested content.</h4>'); App.unblockUI(pageContent); }, async: false }); }); } var _calculateFixedSidebarViewportHeight = function () { var sidebarHeight = $(window).height() - $('.header').height() + 1; if ($('body').hasClass("page-footer-fixed")) { sidebarHeight = sidebarHeight - $('.footer').height(); } return sidebarHeight; } var handleFixedSidebar = function () { var menu = $('.page-sidebar-menu'); if (menu.parent('.slimScrollDiv').size() === 1) { // destroy existing instance before updating the height menu.slimScroll({ destroy: true }); menu.removeAttr('style'); $('.page-sidebar').removeAttr('style'); } if ($('.page-sidebar-fixed').size() === 0) { handleSidebarAndContentHeight(); return; } if ($(window).width() >= 980) { var sidebarHeight = _calculateFixedSidebarViewportHeight(); menu.slimScroll({ size: '7px', color: '#a1b2bd', opacity: .3, position: isRTL ? 'left' : ($('.page-sidebar-on-right').size() === 1 ? 'left' : 'right'), height: sidebarHeight, allowPageScroll: false, disableFadeOut: false }); handleSidebarAndContentHeight(); } } var handleFixedSidebarHoverable = function () { if ($('body').hasClass('page-sidebar-fixed') === false) { return; } $('.page-sidebar').off('mouseenter').on('mouseenter', function () { var body = $('body'); if ((body.hasClass('page-sidebar-closed') === false || body.hasClass('page-sidebar-fixed') === false) || $(this).hasClass('page-sidebar-hovering')) { return; } body.removeClass('page-sidebar-closed').addClass('page-sidebar-hover-on'); $(this).addClass('page-sidebar-hovering'); $(this).animate({ width: sidebarWidth }, 400, '', function () { $(this).removeClass('page-sidebar-hovering'); }); }); $('.page-sidebar').off('mouseleave').on('mouseleave', function () { var body = $('body'); if ((body.hasClass('page-sidebar-hover-on') === false || body.hasClass('page-sidebar-fixed') === false) || $(this).hasClass('page-sidebar-hovering')) { return; } $(this).addClass('page-sidebar-hovering'); $(this).animate({ width: sidebarCollapsedWidth }, 400, '', function () { $('body').addClass('page-sidebar-closed').removeClass('page-sidebar-hover-on'); $(this).removeClass('page-sidebar-hovering'); }); }); } var handleSidebarToggler = function () { // handle sidebar show/hide $('.page-sidebar').on('click', '.sidebar-toggler', function (e) { var body = $('body'); var sidebar = $('.page-sidebar'); if ((body.hasClass("page-sidebar-hover-on") && body.hasClass('page-sidebar-fixed')) || sidebar.hasClass('page-sidebar-hovering')) { body.removeClass('page-sidebar-hover-on'); sidebar.css('width', '').hide().show(); e.stopPropagation(); runResponsiveHandlers(); return; } $(".sidebar-search", sidebar).removeClass("open"); if (body.hasClass("page-sidebar-closed")) { body.removeClass("page-sidebar-closed"); if (body.hasClass('page-sidebar-fixed')) { sidebar.css('width', ''); } } else { body.addClass("page-sidebar-closed"); } runResponsiveHandlers(); }); // handle the search bar close $('.page-sidebar').on('click', '.sidebar-search .remove', function (e) { e.preventDefault(); $('.sidebar-search').removeClass("open"); }); // handle the search query submit on enter press $('.page-sidebar').on('keypress', '.sidebar-search input', function (e) { if (e.which == 13) { window.location.href = "extra_search.html"; return false; //<---- Add this line } }); // handle the search submit $('.sidebar-search .submit').on('click', function (e) { e.preventDefault(); if ($('body').hasClass("page-sidebar-closed")) { if ($('.sidebar-search').hasClass('open') == false) { if ($('.page-sidebar-fixed').size() === 1) { $('.page-sidebar .sidebar-toggler').click(); //trigger sidebar toggle button } $('.sidebar-search').addClass("open"); } else { window.location.href = "extra_search.html"; } } else { window.location.href = "extra_search.html"; } }); } var handleHorizontalMenu = function () { //handle hor menu search form toggler click $('.header').on('click', '.hor-menu .hor-menu-search-form-toggler', function (e) { if ($(this).hasClass('hide')) { $(this).removeClass('hide'); $('.header .hor-menu .search-form').hide(); } else { $(this).addClass('hide'); $('.header .hor-menu .search-form').show(); } e.preventDefault(); }); //handle hor menu search button click $('.header').on('click', '.hor-menu .search-form .btn', function (e) { window.location.href = "extra_search.html"; e.preventDefault(); }); //handle hor menu search form on enter press $('.header').on('keypress', '.hor-menu .search-form input', function (e) { if (e.which == 13) { window.location.href = "extra_search.html"; return false; } }); } var handleGoTop = function () { /* set variables locally for increased performance */ jQuery('.footer').on('click', '.go-top', function (e) { App.scrollTo(); e.preventDefault(); }); } var handlePortletTools = function () { jQuery('body').on('click', '.portlet > .portlet-title > .tools > a.remove', function (e) { e.preventDefault(); jQuery(this).closest(".portlet").remove(); }); jQuery('body').on('click', '.portlet > .portlet-title > .tools > a.reload', function (e) { e.preventDefault(); var el = jQuery(this).closest(".portlet").children(".portlet-body"); App.blockUI(el); window.setTimeout(function () { App.unblockUI(el); }, 1000); }); jQuery('body').on('click', '.portlet > .portlet-title > .tools > .collapse, .portlet .portlet-title > .tools > .expand', function (e) { e.preventDefault(); var el = jQuery(this).closest(".portlet").children(".portlet-body"); if (jQuery(this).hasClass("collapse")) { jQuery(this).removeClass("collapse").addClass("expand"); el.slideUp(200); } else { jQuery(this).removeClass("expand").addClass("collapse"); el.slideDown(200); } }); } var handleUniform = function () { if (!jQuery().uniform) { return; } var test = $("input[type=checkbox]:not(.toggle), input[type=radio]:not(.toggle, .star)"); if (test.size() > 0) { test.each(function () { if ($(this).parents(".checker").size() == 0) { $(this).show(); $(this).uniform(); } }); } } var handleAccordions = function () { $(".accordion").collapse().height('auto'); var lastClicked; //add scrollable class name if you need scrollable panes jQuery('body').on('click', '.accordion.scrollable .accordion-toggle', function () { lastClicked = jQuery(this); }); //move to faq section jQuery('body').on('shown', '.accordion.scrollable', function () { jQuery('html,body').animate({ scrollTop: lastClicked.offset().top - 150 }, 'slow'); }); } var handleTabs = function () { // function to fix left/right tab contents var fixTabHeight = function(tab) { $(tab).each(function() { var content = $($($(this).attr("href"))); var tab = $(this).parent().parent(); if (tab.height() > content.height()) { content.css('min-height', tab.height()); } }); } // fix tab content on tab shown $('body').on('shown', '.nav.nav-tabs.tabs-left a[data-toggle="tab"], .nav.nav-tabs.tabs-right a[data-toggle="tab"]', function(){ fixTabHeight($(this)); }); $('body').on('shown', '.nav.nav-tabs', function(){ handleSidebarAndContentHeight(); }); //fix tab contents for left/right tabs fixTabHeight('.nav.nav-tabs.tabs-left > li.active > a[data-toggle="tab"], .nav.nav-tabs.tabs-right > li.active > a[data-toggle="tab"]'); //activate tab if tab id provided in the URL if(location.hash) { var tabid = location.hash.substr(1); $('a[href="#'+tabid+'"]').click(); } } var handleScrollers = function () { $('.scroller').each(function () { var height; if ($(this).attr("data-height")) { height = $(this).attr("data-height"); } else { height = $(this).css('height'); } $(this).slimScroll({ size: '7px', color: '#a1b2bd', position: isRTL ? 'left' : 'right', height: height, alwaysVisible: ($(this).attr("data-always-visible") == "1" ? true : false), railVisible: ($(this).attr("data-rail-visible") == "1" ? true : false), disableFadeOut: true }); }); } var handleTooltips = function () { if (App.isTouchDevice()) { // if touch device, some tooltips can be skipped in order to not conflict with click events jQuery('.tooltips:not(.no-tooltip-on-touch-device)').tooltip(); } else { jQuery('.tooltips').tooltip(); } } var handleDropdowns = function () { $('body').on('click', '.dropdown-menu.hold-on-click', function(e){ e.stopPropagation(); }) } var handleModal = function () { // this function adds .modal-open class to body element for select2 and chosen dropdown hacks if (jQuery().modalmanager) { return; // skip if Extended Modal plugin is used } $('body').on('shown', '.modal', function(e){ $('body').addClass('modal-open'); }); $('body').on('hidden', '.modal', function(e){ if ($('.modal').size() === 0) { $('body').removeClass('modal-open'); } }); } var handlePopovers = function () { jQuery('.popovers').popover(); // close last poped popover $(document).on('click.popover.data-api',function(e) { if(lastPopedPopover){ lastPopedPopover.popover('hide'); } }); } var handleFancybox = function () { if (!jQuery.fancybox) { return; } if (jQuery(".fancybox-button").size() > 0) { jQuery(".fancybox-button").fancybox({ groupAttr: 'data-rel', prevEffect: 'none', nextEffect: 'none', closeBtn: true, helpers: { title: { type: 'inside' } } }); } } var handleTheme = function () { var panel = $('.color-panel'); if ($('body').hasClass('page-boxed') == false) { $('.layout-option', panel).val("fluid"); } $('.sidebar-option', panel).val("default"); $('.header-option', panel).val("fixed"); $('.footer-option', panel).val("default"); //handle theme layout var resetLayout = function () { $("body"). removeClass("page-boxed"). removeClass("page-footer-fixed"). removeClass("page-sidebar-fixed"). removeClass("page-header-fixed"); $('.header > .navbar-inner > .container').removeClass("container").addClass("container-fluid"); if ($('.page-container').parent(".container").size() === 1) { $('.page-container').insertAfter('.header'); } if ($('.footer > .container').size() === 1) { $('.footer').html($('.footer > .container').html()); } else if ($('.footer').parent(".container").size() === 1) { $('.footer').insertAfter('.page-container'); } $('body > .container').remove(); } var lastSelectedLayout = ''; var setLayout = function () { var layoutOption = $('.layout-option', panel).val(); var sidebarOption = $('.sidebar-option', panel).val(); var headerOption = $('.header-option', panel).val(); var footerOption = $('.footer-option', panel).val(); if (sidebarOption == "fixed" && headerOption == "default") { alert('Default Header with Fixed Sidebar option is not supported. Proceed with Default Header with Default Sidebar.'); $('.sidebar-option', panel).val("default"); sidebarOption = 'default'; } resetLayout(); // reset layout to default state if (layoutOption === "boxed") { $("body").addClass("page-boxed"); // set header $('.header > .navbar-inner > .container-fluid').removeClass("container-fluid").addClass("container"); var cont = $('.header').after('<div class="container"></div>'); // set content $('.page-container').appendTo('body > .container'); // set footer if (footerOption === 'fixed' || sidebarOption === 'default') { $('.footer').html('<div class="container">'+$('.footer').html()+'</div>'); } else { $('.footer').appendTo('body > .container'); } } if (lastSelectedLayout != layoutOption) { //layout changed, run responsive handler: runResponsiveHandlers(); } lastSelectedLayout = layoutOption; //header if (headerOption === 'fixed') { $("body").addClass("page-header-fixed"); $(".header").removeClass("navbar-static-top").addClass("navbar-fixed-top"); } else { $("body").removeClass("page-header-fixed"); $(".header").removeClass("navbar-fixed-top").addClass("navbar-static-top"); } //sidebar if (sidebarOption === 'fixed') { $("body").addClass("page-sidebar-fixed"); } else { $("body").removeClass("page-sidebar-fixed"); } //footer if (footerOption === 'fixed') { $("body").addClass("page-footer-fixed"); } else { $("body").removeClass("page-footer-fixed"); } handleSidebarAndContentHeight(); // fix content height handleFixedSidebar(); // reinitialize fixed sidebar handleFixedSidebarHoverable(); // reinitialize fixed sidebar hover effect } // handle theme colors var setColor = function (color) { $('#style_color').attr("href", "assets/css/themes/" + color + ".css"); $.cookie('style_color', color); } $('.icon-color', panel).click(function () { $('.color-mode').show(); $('.icon-color-close').show(); }); $('.icon-color-close', panel).click(function () { $('.color-mode').hide(); $('.icon-color-close').hide(); }); $('li', panel).click(function () { var color = $(this).attr("data-style"); setColor(color); $('.inline li', panel).removeClass("current"); $(this).addClass("current"); }); $('.layout-option, .header-option, .sidebar-option, .footer-option', panel).change(setLayout); } var handleFixInputPlaceholderForIE = function () { //fix html5 placeholder attribute for ie7 & ie8 if (isIE8 || isIE9) { // ie7&ie8 // this is html5 placeholder fix for inputs, inputs with placeholder-no-fix class will be skipped(e.g: we need this for password fields) jQuery('input[placeholder]:not(.placeholder-no-fix), textarea[placeholder]:not(.placeholder-no-fix)').each(function () { var input = jQuery(this); if(input.val()=='' && input.attr("placeholder") != '') { input.addClass("placeholder").val(input.attr('placeholder')); } input.focus(function () { if (input.val() == input.attr('placeholder')) { input.val(''); } }); input.blur(function () { if (input.val() == '' || input.val() == input.attr('placeholder')) { input.val(input.attr('placeholder')); } }); }); } } var handleFullScreenMode = function() { // mozfullscreenerror event handler // toggle full screen function toggleFullScreen() { if (!document.fullscreenElement && // alternative standard method !document.mozFullScreenElement && !document.webkitFullscreenElement) { // current working methods if (document.documentElement.requestFullscreen) { document.documentElement.requestFullscreen(); } else if (document.documentElement.mozRequestFullScreen) { document.documentElement.mozRequestFullScreen(); } else if (document.documentElement.webkitRequestFullscreen) { document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); } } else { if (document.cancelFullScreen) { document.cancelFullScreen(); } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else if (document.webkitCancelFullScreen) { document.webkitCancelFullScreen(); } } } $('#trigger_fullscreen').click(function() { toggleFullScreen(); }); } //* END:CORE HANDLERS *// return { //main function to initiate template pages init: function () { //IMPORTANT!!!: Do not modify the core handlers call order. //core handlers handleInit(); handleResponsiveOnResize(); // set and handle responsive handleUniform(); handleScrollers(); // handles slim scrolling contents handleResponsiveOnInit(); // handler responsive elements on page load //layout handlers handleFixedSidebar(); // handles fixed sidebar menu handleFixedSidebarHoverable(); // handles fixed sidebar on hover effect handleSidebarMenu(); // handles main menu handleHorizontalMenu(); // handles horizontal menu handleSidebarToggler(); // handles sidebar hide/show handleFixInputPlaceholderForIE(); // fixes/enables html5 placeholder attribute for IE9, IE8 handleGoTop(); //handles scroll to top functionality in the footer handleTheme(); // handles style customer tool //ui component handlers handlePortletTools(); // handles portlet action bar functionality(refresh, configure, toggle, remove) handleDropdowns(); // handle dropdowns handleTabs(); // handle tabs handleTooltips(); // handle bootstrap tooltips handlePopovers(); // handles bootstrap popovers handleAccordions(); //handles accordions // handleChoosenSelect(); // handles bootstrap chosen dropdowns handleModal(); // App.addResponsiveHandler(handleChoosenSelect); // reinitiate chosen dropdown on main content resize. disable this line if you don't really use chosen dropdowns. handleFullScreenMode() // handles full screen }, fixContentHeight: function () { handleSidebarAndContentHeight(); }, setLastPopedPopover: function (el) { lastPopedPopover = el; }, addResponsiveHandler: function (func) { responsiveHandlers.push(func); }, // useful function to make equal height for contacts stand side by side setEqualHeight: function (els) { var tallestEl = 0; els = jQuery(els); els.each(function () { var currentHeight = $(this).height(); if (currentHeight > tallestEl) { tallestColumn = currentHeight; } }); els.height(tallestEl); }, // wrapper function to scroll to an element scrollTo: function (el, offeset) { pos = el ? el.offset().top : 0; jQuery('html,body').animate({ scrollTop: pos + (offeset ? offeset : 0) }, 'slow'); }, scrollTop: function () { App.scrollTo(); }, // wrapper function to block element(indicate loading) blockUI: function (el, centerY) { var el = jQuery(el); el.block({ message: '<img src="./assets/img/ajax-loading.gif" align="">', centerY: centerY != undefined ? centerY : true, css: { top: '10%', border: 'none', padding: '2px', backgroundColor: 'none' }, overlayCSS: { backgroundColor: '#000', opacity: 0.05, cursor: 'wait' } }); }, // wrapper function to un-block element(finish loading) unblockUI: function (el) { jQuery(el).unblock({ onUnblock: function () { jQuery(el).removeAttr("style"); } }); }, // initializes uniform elements initUniform: function (els) { if (els) { jQuery(els).each(function () { if ($(this).parents(".checker").size() == 0) { $(this).show(); $(this).uniform(); } }); } else { handleUniform(); } }, updateUniform : function(els) { $.uniform.update(els); }, // initializes choosen dropdowns initChosenSelect: function (els) { $(els).chosen({ allow_single_deselect: true }); }, initFancybox: function () { handleFancybox(); }, getActualVal: function (el) { var el = jQuery(el); if (el.val() === el.attr("placeholder")) { return ""; } return el.val(); }, getURLParameter: function (paramName) { var searchString = window.location.search.substring(1), i, val, params = searchString.split("&"); for (i = 0; i < params.length; i++) { val = params[i].split("="); if (val[0] == paramName) { return unescape(val[1]); } } return null; }, // check for device touch support isTouchDevice: function () { try { document.createEvent("TouchEvent"); return true; } catch (e) { return false; } }, isIE8: function () { return isIE8; }, isRTL: function () { return isRTL; }, getLayoutColorCode: function (name) { if (layoutColorCodes[name]) { return layoutColorCodes[name]; } else { return ''; } } }; }();