var App = function() {
function handleLayout() {
(function($,sr){
var debounce = function (func, threshold, execAsap) {
var timeout;
return function debounced() {
var obj = this, args = arguments;
function delayed () {
if (!execAsap)
func.apply(obj, args);
timeout = null;
}
if (timeout)
clearTimeout(timeout);
else if (execAsap)
func.apply(obj, args);
timeout = setTimeout(delayed, threshold || 100);
};
};
jQuery.fn[sr] = function(fn){ return fn ? this.bind('resize', debounce(fn)) : this.trigger(sr); };
})(jQuery,'smartresize');
var $WRAPPER = $('.wrapper'),
$HEADER = $('header'),
$TITLE = $('.header-title'),
$NAV = $('.header-nav');
$FOOTER = $('footer');
$FOOTERTOP = $('.footer-top');
$SIDE = $('.basic-body-side');
$BODYMAIN = $('.basic-body-main');
$(document).ready(function() {
var setContentHeight = function() {
var wrapperHeight = $WRAPPER.outerHeight(),
headerHeight = $HEADER.height(),
titleHeight = $TITLE.height(),
navHeight = $NAV.height(),
footerHeight = $FOOTER.height(),
footertopHeight = $FOOTERTOP.height(),
sideHeight = $SIDE.height();
contentHeight = $(window).height() - headerHeight - footerHeight;
$BODYMAIN.css('min-height', contentHeight);
if (contentHeight < sideHeight) {
$BODYMAIN.css('min-height', sideHeight + 50);
} else {
$BODYMAIN.css('min-height', contentHeight);
}
};
$(window).smartresize(function() {
setContentHeight();
});
setContentHeight();
});
}
function handleViewport() {
$("input, textarea, select, button, i, div.note-editing-area, span.select2-selection, .calendar-time, ul.tag-editor, div.asSpinner-control").on({ 'touchstart' : function() {
zoomDisable();
}});
$("input, textarea, select, button, i, div.note-editing-area, span.select2-selection, .calendar-time, ul.tag-editor, div.asSpinner-control").on({ 'touchend' : function() {
setTimeout(zoomEnable, 500);
}});
function zoomDisable() {
$('head meta[name=viewport]').remove();
$('head').prepend('');
}
function zoomEnable() {
$('head meta[name=viewport]').remove();
$('head').prepend('');
}
}
function handleIEFixes() {
//fix html5 placeholder attribute for ie7 & ie8
if (jQuery.browser.msie && jQuery.browser.version.substr(0, 1) < 9) { // ie7&ie8
$('input[placeholder], textarea[placeholder]').each(function () {
var input = jQuery(this);
$(input).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'));
}
});
});
}
}
function handleBootstrap() {
/*Bootstrap Carousel*/
$('.carousel').carousel({
interval: 15000,
pause: 'hover'
});
/*Tooltips*/
$('.tooltips').tooltip();
$('.tooltips-show').tooltip('show');
$('.tooltips-hide').tooltip('hide');
$('.tooltips-toggle').tooltip('toggle');
$('.tooltips-destroy').tooltip('destroy');
/*Popovers*/
$('.popovers').popover();
$('.popovers-show').popover('show');
$('.popovers-hide').popover('hide');
$('.popovers-toggle').popover('toggle');
$('.popovers-destroy').popover('destroy');
}
function handleToggle() {
$('.list-toggle').on('click', function() {
$(this).toggleClass('active');
});
}
function handleSticky() {
var stickyAddClass = function() {
$("#header-fixed .header-sticky").addClass("header-fixed-trans");
$("#header-fixed .header-sticky-space").addClass("header-fixed-space-trans");
}
var stickyRemoveClass = function() {
$("#header-fixed .header-sticky").removeClass("header-fixed-trans");
$("#header-fixed .header-sticky-space").removeClass("header-fixed-space-trans");
}
$(window).scroll(function() {
if ($("#header-fixed").hasClass("fixed-main")) {
if ($(window).scrollTop()>100){ stickyAddClass(); } else { stickyRemoveClass(); }
} else {
if ($(window).scrollTop()>100){ stickyAddClass(); } else { stickyRemoveClass(); }
}
});
}
function handleSidebar() {
var sides = ["left", "top", "right", "bottom"];
for (var i = 0; i < sides.length; ++i) {
var cSide = sides[i];
$(".sidebar." + cSide).sidebar({side: cSide});
}
$(".sidebar-left-trigger[data-action]").on("click", function() {
var $this = $(this);
var action = $this.attr("data-action");
var side = $this.attr("data-side");
$(".sidebar." + side).trigger("sidebar:" + action);
$("html").toggleClass("overflow-hidden");
$(".sidebar-left-mask, .sidebar-left-content").toggleClass("active");
return false;
});
$(".sidebar-right-trigger[data-action]").on("click", function() {
var $this = $(this);
var action = $this.attr("data-action");
var side = $this.attr("data-side");
$(".sidebar." + side).trigger("sidebar:" + action);
$("html").toggleClass("overflow-hidden");
$(".sidebar-right-mask").toggleClass("active");
$("#admset-sidebar-iframe").attr("src", "");
return false;
});
setTimeout(function() {
$(".sidebar").show();
}, 500);
$(window).resize(function() {
$(".sidebar").show();
});
}
function handleBackToTop() {
$(document).ready(function() {
$(".back-to-top").addClass("hidden-top");
$(window).scroll(function() {
if ($(this).scrollTop() === 0) {
$(".back-to-top").addClass("hidden-top")
} else {
$(".back-to-top").removeClass("hidden-top")
}
});
$('.back-to-top').click(function() {
$('body,html').animate({scrollTop:0}, 1200);
return false;
});
$('.quick-scroll-btn.top-btn').click(function() {
$('body,html').animate({scrollTop:0}, 1200);
return false;
});
$('.quick-scroll-btn.down-btn').click(function() {
$('body,html').animate({scrollTop:$(document).height()}, 1200);
return false;
});
});
}
return {
init: function() {
handleLayout();
handleViewport();
handleBootstrap();
handleIEFixes();
handleToggle();
handleSticky();
handleSidebar();
handleBackToTop();
}
};
}();