function is_json(str){
try{
JSON.parse(str);
}catch(e){
return false;
}
return true;
}
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
var base_url = $("base").attr("href");
var style_url = $('meta[name="style_url"]').attr("content");
function notify_closer(){
if($('.close-alert').length >= 1){
$('body .close-alert').parent().fadeOut("normal", function(){
$(this).remove();
});
}
}
function notify(title, message, type){
type = parseInt(type);
switch(type){
case 2: type = 'alert-error'; break;
case 3: type = 'alert-success'; break;
case 4: type = 'alert-info'; break;
default: type = ''; break;
}
$('html, body').animate({scrollTop:0}, 'normal');
$(".main-content").prepend('<div class="alert '+type+' ajx"><a href="#" class="close-alert">×</a><b>'+title+'</b> '+message+'</div>');
setTimeout("notify_closer()", 2500);
return false;
}
function send_ret_req(method, url, params){
var req = null;
try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {
try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {
try { req = new XMLHttpRequest(); } catch(e) {}
}
}
if (req == null) throw new Error('XMLHttpRequest not supported');
req.open(method, url, false);
req.send(params);
return req.responseText;
}
$.mcr_session = {
url: base_url+"?mode=ajax&do=session",
get: function(name){
var params = "&name="+name.toString();
return send_ret_req("GET", this.url+"&op=get"+params, null);
},
set: function(name, value){
var params = "&name="+name.toString()+"&value="+value.toString();
return send_ret_req("GET", this.url+"&op=set"+params, null);
},
remove: function(name){
var params = "&name="+name.toString();
return send_ret_req("GET", this.url+"&op=remove"+params, null);
},
};
$.mcr = {
is_json: function(str){
try{
JSON.parse(str);
}catch(e){
return false;
}
return true;
},
loader: '<img src="'+style_url+'img/loading.gif" alt="loading..." />',
};
function init_monitoring(){
//if(!navigator.onLine){ notify("Ошибка!", "Мониторинг недоступен. Отсутствует интернет-соединение", 1); return false; }
$.ajax({
url: base_url+"?mode=ajax",
dataType: "json",
type: 'GET',
async: true,
data: "do=monitor",
error: function(data){
notify("Ошибка!", "Мониторинг временно недоступен.", 1);
},
success: function(data){
if(!data._status){ $('.js-monitor').text(data._message); return; }
$('.js-monitor').empty();
if(data._data.length==0){ $('.js-monitor').text('Мониторинг недоступен'); }
$.each(data._data, function(i, val){
$('.js-monitor').append(val.form);
var element = $('.js-monitor .monitor-id#'+val.id+' .bar');
element.css({'left': '-'+val.progress+'%', 'width': val.progress+'%'});
setTimeout(function(){
element.animate({left:'0%'}, 2000, 'easeInOutQuart');
}, 500*i);
});
}
});
}
$(function(){
$('body').tooltip({selector: '[rel="tooltip"]'});
$('.spl-body.closed').hide();
// +++ Monitoring loading
init_monitoring();
// --- Monitoring loading
$('.spl-btn').on("click", function(){
var element = $(this).attr("data-click");
$(".spl-body#"+element).toggleClass("opened").toggleClass("closed").slideToggle("fast");
$('.spl-btn[data-click="'+element+'"]').toggleClass("opened").toggleClass("closed");
if($(this).hasClass("session")){
var session = $.mcr_session.get(element);
if(session!='true'){
$.mcr_session.set(element, true);
}else if(session=='true'){
$.mcr_session.set(element, false);
}
}
return false;
});
$('.check-all').on("click", function(){
var element = $(this).attr("data-for");
var obj = $("."+element);
var length = obj.length;
var inc;
for(inc=0; inc < length; inc++){
if($(this)[0].checked==true){
obj[inc].checked=true;
}else{
obj[inc].checked=false;
}
}
});
$('.remove').click(function(){
if($(this).attr("data-checkbox")!='false'){
var element = $(this).attr("data-for");
var length = $('.'+element+':checked').length;
if(length<=0){
notify("Ошибка!", "Не выбрано ни одного пункта для удаления", 1);
return false;
}
}
var text = $(this).attr("data-text");
if(!confirm(text)){ return false; }
return true;
});
$('body').on("click", '.close-alert', function(){
$(this).parent().fadeOut("normal", function(){
$(this).remove();
});
return false;
})
$(".mcr-debug .action").on("click", function(){
$(".mcr-debug").toggleClass("open");
return false;
});
$(".bb-panel .bb").on("click", function(){
var panel_id = $(this).parent().closest(".bb-panel").attr("id");
var pid = ".bb-panel#"+panel_id;
var panel_obj = $('textarea[data-for="'+panel_id+'"]')[0];
var leftcode = $(this).attr("data-left");
var rightcode = ($(this).attr("data-right")==undefined) ? leftcode : $(this).attr("data-right");
if(!$(this).hasClass("woborder")){
leftcode = '['+leftcode+']';
rightcode = (rightcode=='') ? '' : '[/'+rightcode+']';
}else{
rightcode = (rightcode=='') ? '' : rightcode;
}
if(document.selection){
var s = document.selection.createRange();
if(s.text){
s.text = leftcode + s.text + rightcode;
}
}else{ // Opera, FireFox, Chrome
var start = (panel_obj.selectionStart==undefined) ? 0 : panel_obj.selectionStart;
var end = (panel_obj.selectionEnd==undefined) ? 0 : panel_obj.selectionEnd;
s = panel_obj.value.substr(start,end-start);
panel_obj.value = panel_obj.value.substr(0, start) + leftcode + s + rightcode + panel_obj.value.substr(end);
}
return false;
});
$("#search-selector a").click(function(){
var search_val = $("#search-hidden").val();
$("#search-selector a#"+search_val).parent().removeClass("active");
var id = this.id;
$("#search-hidden").val(id);
$(this).parent().addClass("active");
return false;
});
$("#close-notify").click(function(){
$(".block-notify").fadeOut("normal", function(){
$(this).remove();
});
return false;
});
$(".edit").click(function(){
var element = $(this).attr("data-for");
var length = $('.'+element+':checked').length;
var link = $(this).attr("data-link");
if(length<=0){
notify("Ошибка!", "Не выбрано ни одного пункта для удаления", 1);
return false;
}else if(length>1){
notify("Ошибка!", "Для редактирования необходимо выбрать только один пункт из списка", 1);
return false;
}
var id = $('.'+element+':checked').val();
window.location.href = link+id;
return false;
});
});