Skip to content

Instantly share code, notes, and snippets.

@z81
Created February 22, 2018 10:33
Show Gist options
  • Save z81/ecd02b2ae57fc13d42ecb28188cb9698 to your computer and use it in GitHub Desktop.
Save z81/ecd02b2ae57fc13d42ecb28188cb9698 to your computer and use it in GitHub Desktop.
kazaj.js
//==============================================================================
var functions = {},
benchmark,
errors = {
network: 'Ошибка связи, сервер не доступен.'
};
//Ошибка
function error(text)
{
global_close();
mess_box(text);
}
//==============================================================================
// Базовые
//==============================================================================
//Ajax запрос
function ajax(data)
{
$.ajax({
url: "/api.php",
dataType: "json",
data: data,
success: function(data){
if(data.html) popup_cont(data.html);
if(data.login) login();
if(data.error) error(data.error);
},
error: function(err){
error(errors.network);
}
});
}
//Запрос ответа пользователя
function request(el)
{
var link = $(el).attr('link'),
question = $(el).attr('question'),
cont = "<p style='margin-bottom: 10px;'>" + question + "</p><a class='but' href='" + link + "'>Да</a> <a class='but' onclick='popup_close()'>Нет</a>";
popup({"zag": "Подтверждение", "cont": cont, "width": 250});
}
//Отправка родительской формы
function form_send(el)
{
$(el).closest('form').submit();
}
//Закрыть все
function global_close()
{
nav_close();
popup_close();
if(typeof user_menu_status != 'undefined') user_menu_hide();
}
//==============================================================================
// END Базовые
//==============================================================================
//==============================================================================
// Загрузчик
//==============================================================================
//Удаление загрузчика
function loader_remove()
{
$("#loader").remove();
}
//==============================================================================
// END Загрузчик
//==============================================================================
//==============================================================================
// Ширма
//==============================================================================
var screen_use = 0;
//Создать ширму
function screen()
{
if(!screen_use) $('body').prepend("<div id='screen' onclick='global_close()'></div>");
++screen_use;
}
//Удалить ширму
function screen_remove()
{
if(screen_use > 0)
{
--screen_use;
if(!screen_use) $('#screen').remove();
}
}
//==============================================================================
// END Ширма
//==============================================================================
//==============================================================================
// Header
//==============================================================================
var logo_width = $("#logo").width() + parseInt($("#logo").css('padding-left')) + parseInt($("#logo").css('padding-right'));
var nav_width = $("nav").width() + parseInt($("nav").css('padding-left')) + parseInt($("nav").css('padding-right'));
var header_panel_width = $("#header_panel").width();
//Инициализация header'а
functions['ini'] = function()
{
if($(window).width() >= (logo_width + nav_width + header_panel_width))
{
$("#header header nav").removeClass("nav_com").addClass("nav_norm").css("display", "inline-block");
$("#header header #nav_but").remove();
$("#logo").removeClass('logo_comp');
}
else
{
if(!$("#header header #nav_but").length)
{
$("#header header").prepend('<a id="nav_but" onclick="nav_tog()"><svg><use xlink:href="/img/icons.svg#menu"/></svg>.</a>');
$("#header header nav").removeClass("nav_norm").addClass("nav_com").css("display", "none");
$("#logo").addClass('logo_comp');
}
}
};
var width = $(window).width();
$(window).resize(function(){
if(width != $(window).width())
{
width = $(window).width();
functions['ini']();
}
});
//Закрытие меню навигации
function nav_close()
{
if(nav_status)
{
nav_status = 0;
$("nav").hide();
screen_remove();
}
}
//Переключать меню навигации
var nav_status = 0;
function nav_tog()
{
if(nav_status)
{
nav_close();
}
else
{
global_close();
screen();
nav_status = 1;
$("nav").show();
}
}
//==============================================================================
// END Header
//==============================================================================
//==============================================================================
// Бокс сообщений
//==============================================================================
function mess_box_close()
{
$("#mess_box_karkas").remove();
}
function mess_box(text, par)
{
mess_box_close();
if(par == 1)
{
$('body').append("<table id='mess_box_karkas'><tr><td><div id='mess_box_click_close' onclick='mess_box_close()'></div><div id='mess_box'><div id='mess_box_cont'></div></div></td></tr></table>");
}
else
{
$('body').append("<table id='mess_box_karkas'><tr><td><div id='mess_box_click_close' onclick='mess_box_close()'></div><div id='mess_box'><div id='mess_box_cont'></div><p id='mess_box_close'><input type='button' value='Окей' onclick='mess_box_close()'></p></div></td></tr></table>");
}
$('#mess_box_cont').html(text);
}
//==============================================================================
// END Бокс сообщений
//==============================================================================
//==============================================================================
// Всплывающее окно
//==============================================================================
//Инициализация окна
function popup_ini()
{
if(popup_status && parseInt($('#popup').attr('full')))
{
var width = $(window).width();
var height = $(window).height();
var popup_mw = parseInt($('#popup').css('max-width'));
if(width <= popup_mw)
{
$('#popup').css('height', '100%');
}
else
{
$('#popup').css('height', 'auto');
}
}
}
var popup_status = 0;
//Окно
function popup(popup_obj)
{
if(!popup_obj.zag) popup_obj.zag = '';
if(!popup_obj.cont) popup_obj.cont = '';
if(!popup_obj.width) popup_obj.width = '250';
if(!popup_obj.header) popup_obj.header = '';
if(!popup_obj.full) popup_obj.full = '0';
//============================================================================
//Если окно уже открыто закрыем его
if(popup_status) popup_close();
var popup_html = "<div id='popup_frame'><div id='popup_layer' onclick='popup_close()'></div><div id='popup' style='max-width: " + popup_obj.width + "px;' full='" + popup_obj.full + "'><div id='popup_body'><a id='popup_close' onclick='popup_close()'><svg><use xlink:href='/img/icons.svg#close'/></svg></a><div id='popup_header'>";
if(popup_obj.header)
{
popup_html += popup_obj.header;
}
else
{
popup_html += "<p id='popup_zag'>" + popup_obj.zag + "</p>";
}
popup_html += "</div>";
if(popup_obj.cont)
{
popup_html += "<div id='popup_cont'>" + popup_obj.cont;
}
else
{
popup_html += "<div id='popup_cont' class='popup_loading'>"
}
popup_html += "</div></div></div></div>";
$('body').append(popup_html).css('overflow-y', 'hidden');
popup_status = 1;
popup_ini();
}
//Установка контента окна
function popup_cont(html)
{
$('#popup_cont').removeClass('popup_loading');
$('#popup_cont').html(html);
}
//Закрыть окно
function popup_close()
{
$('#popup_frame').remove();
$('body').css('overflow-y', 'scroll');
popup_status = 0;
}
$(window).resize(function(){
if(popup_status) popup_ini();
});
//==============================================================================
// END Всплывающее окно
//==============================================================================
//==============================================================================
// Пользователи
//==============================================================================
//Форма авторизации
function login()
{
popup({'zag': 'Авторизация', 'cont': '', 'width': '250'});
$.ajax({
url: "/api.php",
data: "login_form",
dataType: "json",
success: function(data){
popup_cont(data.html);
},
error: function(error){
error(errors.network);
}
});
}
//==============================================================================
// END Пользователи
//==============================================================================
//Цена
function cost_(cost)
{
cost = cost.toFixed(2);
var str = '';
var count = 0;
var mas = cost.split('.');
cost = mas[0];
cost = String(cost).split('').reverse();
cost.forEach(function(item, i, cost){
++count;
if(count == 3)
{
str = str + item + ' ';
count = 0;
}
else
{
str = str + item;
}
});
//==========================================================================
var res = '';
str = String(str).split('').reverse();
str.forEach(function(item, i, str){
res = res + item;
});
if(mas[1] && mas[1] != 00) res = res + '.' + mas[1];
return res + ' €';
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment