﻿/*Social side slider*/

(function($) {
    $.fn.tabSlideOut = function(callerSettings) {
        var settings = $.extend({ tabHandle: '.handle', speed: 300, action: 'click', tabLocation: 'left', topPos: '200px', leftPos: '20px', fixedPosition: false, positioning: 'absolute', pathToTabImage: null, imageHeight: null, imageWidth: null, onLoadSlideOut: false }, callerSettings || {}); settings.tabHandle = $(settings.tabHandle); var obj = this; if (settings.fixedPosition === true) { settings.positioning = 'fixed'; } else { settings.positioning = 'absolute'; }
        if (document.all && !window.opera && !window.XMLHttpRequest) { settings.positioning = 'absolute'; }
        if (settings.pathToTabImage != null) { settings.tabHandle.css({ 'background': 'url(' + settings.pathToTabImage + ') no-repeat', 'width': settings.imageWidth, 'height': settings.imageHeight }); }
        settings.tabHandle.css({ 'display': 'block', 'textIndent': '-99999px', 'outline': 'none', 'position': 'absolute' }); obj.css({ 'line-height': '1', 'position': settings.positioning }); var properties = { containerWidth: parseInt(obj.outerWidth(), 10) + 'px', containerHeight: parseInt(obj.outerHeight(), 10) + 'px', tabWidth: parseInt(settings.tabHandle.outerWidth(), 10) + 'px', tabHeight: parseInt(settings.tabHandle.outerHeight(), 10) + 'px' }; if (settings.tabLocation === 'top' || settings.tabLocation === 'bottom') { obj.css({ 'left': settings.leftPos }); settings.tabHandle.css({ 'right': 0 }); }
        if (settings.tabLocation === 'top') { obj.css({ 'top': '-' + properties.containerHeight }); settings.tabHandle.css({ 'bottom': '-' + properties.tabHeight }); }
        if (settings.tabLocation === 'bottom') { obj.css({ 'bottom': '-' + properties.containerHeight, 'position': 'fixed' }); settings.tabHandle.css({ 'top': '-' + properties.tabHeight }); }
        if (settings.tabLocation === 'left' || settings.tabLocation === 'right') { obj.css({ 'height': properties.containerHeight, 'top': settings.topPos }); settings.tabHandle.css({ 'top': 0 }); }
        if (settings.tabLocation === 'left') { obj.css({ 'left': '-' + properties.containerWidth }); settings.tabHandle.css({ 'right': '-' + properties.tabWidth }); }
        if (settings.tabLocation === 'right') { obj.css({ 'right': '-' + properties.containerWidth }); settings.tabHandle.css({ 'left': '-' + properties.tabWidth }); $('html').css('overflow-x', 'hidden'); }
        settings.tabHandle.click(function(event) { event.preventDefault(); }); var slideIn = function() { if (settings.tabLocation === 'top') { obj.animate({ top: '-' + properties.containerHeight }, settings.speed).removeClass('open'); } else if (settings.tabLocation === 'left') { obj.animate({ left: '-' + properties.containerWidth }, settings.speed).removeClass('open'); } else if (settings.tabLocation === 'right') { obj.animate({ right: '-' + properties.containerWidth }, settings.speed).removeClass('open'); } else if (settings.tabLocation === 'bottom') { obj.animate({ bottom: '-' + properties.containerHeight }, settings.speed).removeClass('open'); } }; var slideOut = function() { if (settings.tabLocation == 'top') { obj.animate({ top: '-3px' }, settings.speed).addClass('open'); } else if (settings.tabLocation == 'left') { obj.animate({ left: '-3px' }, settings.speed).addClass('open'); } else if (settings.tabLocation == 'right') { obj.animate({ right: '-3px' }, settings.speed).addClass('open'); } else if (settings.tabLocation == 'bottom') { obj.animate({ bottom: '-3px' }, settings.speed).addClass('open'); } }; var clickScreenToClose = function() { obj.click(function(event) { event.stopPropagation(); }); $(document).click(function() { slideIn(); }); }; var clickAction = function() { settings.tabHandle.click(function(event) { if (obj.hasClass('open')) { slideIn(); } else { slideOut(); } }); clickScreenToClose(); }; var hoverAction = function() { obj.hover(function() { slideOut(); }, function() { slideIn(); }); settings.tabHandle.click(function(event) { if (obj.hasClass('open')) { slideIn(); } }); clickScreenToClose(); }; var slideOutOnLoad = function() { slideIn(); setTimeout(slideOut, 500); }; if (settings.action === 'click') { clickAction(); }
        if (settings.action === 'hover') { hoverAction(); }
        if (settings.onLoadSlideOut) { slideOutOnLoad(); };
    };
})(jQuery);

/*end*/
