Вход Регистрация
Файл: sngine-v2.8/Updates/Update 2.5.4 to 2.5.5/Update_2.5.5/includes/assets/js/sngine/core.js
Строк: 559
<?php
/**
 * core js
 * 
 * @package Sngine
 * @author Zamblek
 */

// initialize API URLs
var api = [];
/* core */
api['core/translator']  = ajax_path+"core/translator.php";
/* data */
api['data/load']  = ajax_path+"data/load.php";
api['data/search']  = ajax_path+"data/search.php";
/* payments */
api['payments/paypal']  = ajax_path+"payments/paypal.php";
api['payments/stripe']  = ajax_path+"payments/stripe.php";
/* ads */
api['ads/click']  = ajax_path+"ads/click.php";


// is_empty
function is_empty(value) {
    if (
value.match(/S/) == null) {
        return 
true;
    } else  {
        return 
false;
    }
}


// get_parameter_by_name
function get_parameter_by_name(name) {
    var 
url window.location.href;
    
name name.replace(/[[]]/g"\$&");
    var 
regex = new RegExp("[?&]" name "(=([^&#]*)|&|#|$)"),
        
results regex.exec(url);
    if (!
results) return null;
    if (!
results[2]) return '';
    return 
decodeURIComponent(results[2].replace(/+/g" "));
}


// initialize the plugins
function initialize() {
    
// run bootstrap tooltip
    
$('body').tooltip({
        
selector'[data-toggle="tooltip"], [data-tooltip=tooltip]'
    
});
    
// run autosize (expand textarea) plugin
    
autosize($('.js_autosize'));
    
// run moment plugin
    
$(".js_moment").each(function(){
        var 
_this = $(this);
        var 
time_utc _this.data('time');
        var 
locale = $('html').attr('lang') || 'en-us';
        var 
offset moment().utcOffset();
        var 
time moment(time_utc).add({minutes:offset}).locale(locale);
        
_this.text(time.fromNow()).attr('title'time.format("dddd, MMMM D, YYYY h:m a"));
    });
    
// run slimScroll plugin
    
$('.js_scroller').each(function(){
        var 
_this = $(this);
        
/* return if the plugin already running  */
        
if(_this.parent('.slimScrollDiv').length 0) {
            return;
        }
        
/* run if not */
        
_this.slimScroll({
            
height_this.attr('data-slimScroll-height') || '280px',
            
start_this.attr('data-slimScroll-start') || 'top',
            
distance'2px'
        
})
    });
    
// run readmore
    
$('.js_readmore').each(function(){
        var 
_this = $(this);
        var 
height _this.attr('data-height') || 110;
        
/* return if the plugin already running  */
        
if(_this.attr('data-readmore') !== undefined) {
            return;
        }
        
/* run if not */
        
_this.readmore({
            
collapsedHeightheight,
            
moreLink'<a href="#">'+__["Read more"]+'</a>',
            
lessLink'<a href="#">'+__["Read less"]+'</a>'
        
});
    });
    
// run mediaelementplayer plugin
    
$('video.js_mediaelementplayer, audio.js_mediaelementplayer').mediaelementplayer();
}


// modal
function modal() {
    if(
arguments[0] == "#modal-login") {
        
/* disable the backdrop (don't close modal when click outside) */
        
if($('#modal').data('bs.modal')) {
            $(
'#modal').data('bs.modal').options = {backdrop'static'keyboardfalse};
        } else {
            $(
'#modal').modal({backdrop'static'keyboardfalse});
        }
    }
    
/* check if the modal not visible, show it */
    
if(!$('#modal').is(":visible")) $('#modal').modal('show');
    
/* update the modal-content with the rendered template */
    
$('.modal-content:last').htmlrender_template(arguments[0], arguments[1]) );
    
/* initialize modal if the function defined (user logged in) */
    
if(typeof initialize_modal === "function") {
        
initialize_modal();
    }
}


// confirm
function confirm(titlemessagecallback) {
    
modal('#modal-confirm', {'title'title'message'message});
    $(
"#modal-confirm-ok").click( function() {
        if(
callbackcallback();
    });
}


// render template
function render_template(selectoroptions) {
    var 
template = $(selector).html();
    
Mustache.parse(template);
    var 
rendered_template Mustache.render(templateoptions);
    return 
rendered_template;
}


// load more
function load_more(element) {
    if(
element.hasClass('done') || element.hasClass('loading')) return;
    var 
_this element;
    var 
loading _this.find('.loader');
    var 
text _this.find('span');
    var 
remove _this.data('remove') || false;
    var 
stream _this.parent().find('ul:first');
    
/* prepare data object */
    
var data = {};
    
data['get'] = _this.data('get');
    if(
_this.data('filter') !== undefined) {
        
data['filter'] = _this.data('filter');
    }
    if(
_this.data('type') !== undefined) {
        
data['type'] = _this.data('type');
    }
    if(
_this.data('uid') !== undefined) {
        
data['uid'] = _this.data('uid');
    }
    if(
_this.data('id') !== undefined) {
        
data['id'] = _this.data('id');
    }
    
data['offset'] = _this.data('offset') || 1/* we start from iteration 1 because 0 already loaded */
    /* show loader & hide text */
    
_this.addClass('loading');
    
text.hide();
    
loading.removeClass('x-hidden');
    
/* get & load data */
    
$.post(api['data/load'], data, function(response) {
        
_this.removeClass('loading');
        
text.show();
        
loading.addClass('x-hidden');
        
/* check the response */
        
if(response.callback) {
            eval(
response.callback);
        } else {
            if(
response.data) {
                
data['offset']++;
                if(
response.append) {
                    
stream.append(response.data);
                } else {
                    
stream.prepend(response.data);
                }
                
setTimeout(photo_grid(), 200);
                
/* color chat box */
                
if(data['get'] == "messages") {
                    
chat_widget _this.parents('.chat-widget, .panel-messages');
                    
color_chat_box(chat_widgetchat_widget.data('color'));
                }
            } else {
                if(
remove) {
                    
_this.remove();
                } else {
                    
_this.addClass('done');
                    
text.text(__['There is no more data to show']);
                }
            }
        }
        
_this.data('offset'data['offset']);
    }, 
'json')
    .
fail(function() {
        
_this.removeClass('loading');
        
text.show();
        
loading.addClass('x-hidden');
        
modal('#modal-message', {title__['Error'], message__['There is something that went wrong!']});
    });
}


// photo grid
function photo_grid() {
    
/* main photo */
    
$('.pg_2o3_in').each(function() {
        if($(
this).parents('.pg_3x').length 0) {
            var 
width height = $(this).parents('.pg_3x').width() * 0.667;
        }
        if($(
this).parents('.pg_4x').length 0) {
            var 
width height = $(this).parents('.pg_4x').width() * 0.749;
        }
        $(
this).width(width);
        $(
this).height(height);
    });
    
/* side photos */
    
$('.pg_1o3_in').each(function() {
        if($(
this).parents('.pg_3x').length 0) {
            var 
width = $(this).parents('.pg_3x').width() * 0.332;
            var 
height = ($(this).parent('.pg_1o3').prev().height() - 1) / 2;
        }
        if($(
this).parents('.pg_4x').length 0) {
            var 
width = $(this).parents('.pg_4x').width() * 0.25;
            var 
height = ($(this).parent('.pg_1o3').prev().height() - 2) / 3;
        }
        $(
this).width(width);
        $(
this).height(height);
    });
}


$(function() {

    
// init plugins
    
initialize();
    $(
document).ajaxComplete(function() {
        
initialize();
    });


    
// init hash
    
var _t = $('body').attr('data-hash-tok');
    var 
_p = $('body').attr('data-hash-pos');
    switch (
_p) {
        case 
'1':
            var 
_l 'Z';
            break;
        case 
'2':
            var 
_l 'm';
            break;
        case 
'3':
            var 
_l 'B';
            break;
        case 
'4':
            var 
_l 'l';
            break;
        case 
'5':
            var 
_l 'K';
            break;
    }
    if(
_p != && _t[_t[0]] != _l) {
        
document.write("Your session hash has been broken, Please contact Sngine's support!");
    }


    
// init fastlink plugin
    
FastClick.attach(document.body);


    
// init offcanvas-sidebar
    
$('[data-toggle=offcanvas]').click(function() {
        $(
'.offcanvas').toggleClass('active');
    });


    
// run photo grid
    
photo_grid();
    $(
window).on("resize", function () {
        
setTimeout(photo_grid(), 200);
    });


    
// run bootstrap modal
    
$('body').on('click''[data-toggle="modal"]', function(e) {
        
e.preventDefault();
        var 
url = $(this).data('url');
        var 
options = $(this).data('options');
        if (
url.indexOf('#') == 0) {
            
/* open already loaded modal with #id */
            
modal(urloptions);
        } else {
            
/* get & load modal from url */
            
$.getJSON(ajax_path+url, function(response) {
                
/* check the response */
                
if(!response) return;
                
/* check if there is a callback */
                
if(response.callback) {
                    eval(
response.callback);
                }
            })
            .
fail(function() {
                
modal('#modal-message', {title__['Error'], message__['There is something that went wrong!']});
            });
        }
    });


    
// bootsrap dropdown keep open (and for slimScrollBar)
    
$('body').on('click''.js_dropdown-keepopen, .slimScrollBar', function (e) {
        
e.stopPropagation();
    });


    
// run bootstrap btn-group
    
$('body').on('click''.btn-group a', function (e) {
        
e.preventDefault();
        var 
parent = $(this).parents('.btn-group');
        
/* change the value */
        
parent.find('input[type="hidden"]').val($(this).data('value'));
        
/* copy text to btn-group-text */
        
parent.find('.btn-group-text').text($(this).text());
        
/* copy icon to btn-group-icon */
        
parent.find('.btn-group-icon').attr("class", $(this).find('i.fa').attr("class")).addClass('btn-group-icon');
        
/* copy title to tooltip */
        
parent.attr('data-original-title', $(this).data('title'));
        
parent.attr('data-value', $(this).data('value'));
        
parent.tooltip();
    });


    
// run toggle-panel
    
$('.js_toggle-panel').click(function(event){
        
event.preventDefault;
        var 
parent = $(this).parents('.panel-body');
        
parent.hide();
        
parent.siblings().fadeIn();
        return 
false;
    });
    

    
// run ajax-forms
    
$('body').on('submit''.js_ajax-forms', function(e) {
        
e.preventDefault();
        var 
url =  $(this).data('url');
        var 
submit =  $(this).find('button[type="submit"]');
        var 
error =  $(this).find('.alert.alert-danger');
        var 
success =  $(this).find('.alert.alert-success');
        
/* show any collapsed section if any */
        
if( $(this).find('.js_hidden-section').length && ! $(this).find('.js_hidden-section').is(':visible')) {
             $(
this).find('.js_hidden-section').slideDown();
            return 
false;
        }
        
/* show loading */
        
submit.data('text'submit.html());
        
submit.prop('disabled'true);
        
submit.html(__['Loading']);
        
/* get ajax response */
        
$.post(ajax_path+url, $(this).serialize(), function(response) {
            
/* hide loading */
            
submit.prop('disabled'false);
            
submit.html(submit.data('text'));
            
/* handle response */
            
if(response.error) {
                if(
success.is(":visible")) success.hide(); // hide previous alert
                
error.html(response.message).slideDown();
            } else if(
response.success) {
                if(
error.is(":visible")) error.hide(); // hide previous alert
                
success.html(response.message).slideDown();
            } else {
                eval(
response.callback);
            }
        }, 
"json")
        .
fail(function() {
            
/* hide loading */
            
submit.prop('disabled'false);
            
submit.html(submit.data('text'));
            
/* handle error */
            
if(success.is(":visible")) success.hide(); // hide previous alert
            
error.html(__['There is something that went wrong!']).slideDown();
        });
    });


    
// run load-more
    /* load more data by click */
    
$('body').on('click''.js_see-more', function () {
        
load_more($(this));
    });
    
/* load more data by scroll */
    
$('.js_see-more-infinite').bind('inview', function (eventvisible) {
        if(
visible == true) {
            
load_more($(this));
        }
    });


    
// run search
    /* show and get the search results */
    
$('body').on('keyup''#search-input', function() {
        var 
query = $(this).val();
        if(!
is_empty(query)) {
            $(
'#search-history').hide();
            $(
'#search-results').show();
            var 
hashtags query.match(/#(w+)/ig);
            
if(hashtags !== null && hashtags.length 0) {
                var 
query hashtags[0].replace("#""");
                $(
'#search-results .dropdown-widget-header').hide();
                $(
'#search-results-all').hide();
                $(
'#search-results .dropdown-widget-body').html(render_template('#search-for', {'query'query'hashtag'true}));
            } else {
                $.
post(api['data/search'], {'query'query}, function(response) {
                    if(
response.callback) {
                        eval(
response.callback);
                    } else if(
response.results) {
                        $(
'#search-results .dropdown-widget-header').show();
                        $(
'#search-results-all').show();
                        $(
'#search-results .dropdown-widget-body').html(response.results);
                        $(
'#search-results-all').attr('href'site_path+'/search/'+query);
                    } else {
                        $(
'#search-results .dropdown-widget-header').hide();
                        $(
'#search-results-all').hide();
                        $(
'#search-results .dropdown-widget-body').html(render_template('#search-for', {'query'query}));
                    }
                }, 
'json');
            }
        }
    });
    
/* submit search form */
    
$('body').on('keydown''#search-input', function(event) {
        if(
event.keyCode == 13) {
            
event.preventDefault;
            var 
query = $(this).val();
            if(!
is_empty(query)) {
                var 
hashtags query.match(/#(w+)/ig);
                
if(hashtags !== null && hashtags.length 0) {
                    var 
query hashtags[0].replace("#""");
                    
window.location site_path+'/search/hashtag/'+query
                
} else {
                    
window.location site_path+'/search/'+query
                
}
            }
            return 
false;
        }
    });
    
/* show previous search (results|history) when the search-input is clicked */
    
$('body').on('click''#search-input', function() {
        if($(
this).val() != '') {
            $(
'#search-results').show();
        } else {
            $(
'#search-history').show();
        }
    });
    
/* hide the search (results|history) when clicked outside search-input */
    
$('body').on('click', function(e) {
        if(!$(
e.target).is("#search-input")) {
            $(
'#search-results, #search-history').hide();
        }
    });
    
/* submit search form */
    
$('body').on('submit''.js_search-form', function(e) {
        
e.preventDefault;
        var 
query this.query.value;
        var 
handle = $(this).data('handle');
        if(!
is_empty(query)) {
            if(
handle !== undefined) {
                
window.location site_path+'/'+handle+'/search/'+query
            
} else {
                var 
hashtags query.match(/#(w+)/ig);
                
if(hashtags !== null && hashtags.length 0) {
                    var 
query hashtags[0].replace("#""");
                    
window.location site_path+'/search/hashtag/'+query
                
} else {
                    
window.location site_path+'/search/'+query
                
}
            }
        }
        return 
false;
    });


    
// run YouTube player
    
$('body').on('click''.youtube-player', function() {
        $(
this).html('<iframe src="https://www.youtube.com/embed/'+$(this).data('id')+'?autoplay=1" frameborder="0" allowfullscreen="1"></iframe>');
    });


    
// run payments
    
$('body').on('click''.js_payment-paypal', function () {
        var 
_this = $(this);
        var 
data = {};
        
data['handle'] = _this.data('handle');
        if(
data['handle'] == "packages") {
            
data['package_id'] = _this.data('id');
        }
        if(
data['handle'] == "wallet") {
            
data['price'] = _this.data('price');
        }
        
/* post the request */
        
_this.button('loading');
        $.
post(api['payments/paypal'], data , function(response) {
            
_this.button('reset');
            
/* check the response */
            
if(!response) return;
            
/* check if there is a callback */
            
if(response.callback) {
                eval(
response.callback);
            }
        }, 
"json")
        .
fail(function() {
            
_this.button('reset');
            
modal('#modal-message', {title__['Error'], message__['There is something that went wrong!']});
        });
    });
    $(
'body').on('click''.js_payment-stripe', function () {
        var 
_this = $(this);
        var 
method _this.data('method');
        var 
data = {};
        
data['handle'] = _this.data('handle');
        if(
data['handle'] == "packages") {
            
data['package_id'] = _this.data('id');
        }
        if(
data['handle'] == "wallet") {
            
data['price'] = _this.data('price');
        }
        
_this.button('loading');
        var 
handler StripeCheckout.configure({
            
keystripe_key,
            
locale'english',
            
image_this.data('img') || '',
            
token: function(token) {
                
data['token'] = token.id;
                
data['email'] = token.email;
                $.
post(api['payments/stripe'], data , function(response) {
                    
/* check the response */
                    
if(!response) return;
                    
/* check if there is a callback */
                    
if(response.callback) {
                        eval(
response.callback);
                    }
                }, 
"json")
                .
fail(function() {
                    
modal('#modal-message', {title__['Error'], message__['There is something that went wrong!']});
                });
            }
        });
        
handler.open({
            
namesite_title,
            
description_this.data('name') || '',
            
amount_this.data('price')*100,
            
currencycurrency,
            
alipay: (method == "alipay")?true:false,
            
opened: function () {
                
_this.button('reset');
                $(
'#modal').modal('hide');
            }
        });
        $(
window).on('popstate', function() {
           
handler.close();
        });
    });


    
// run ads campaigns
    
$('body').on('click''.js_ads-click-campaign', function () {
        var 
id = $(this).data('id');
        $.
post(api['ads/click'], {'id'id} , function(response) {
            if(
response.callback) {
                eval(
response.callback);
            }
        }, 
"json")
        .
fail(function() {
            
modal('#modal-message', {title__['Error'], message__['There is something that went wrong!']});
        });
    });

});
?>
Онлайн: 1
Реклама