mirror of
https://gitverse.ru/kpa39l/yaru.nixg.ru.git
synced 2026-09-29 09:55:06 +00:00
237 lines
5.3 KiB
JavaScript
237 lines
5.3 KiB
JavaScript
var groups;
|
|
|
|
/// Util functions
|
|
|
|
// Shorthand for String.fromCharCode
|
|
function gc(code)
|
|
{
|
|
return String.fromCharCode(code);
|
|
}
|
|
|
|
// Strip whitespace (or other characters) from the beginning and end of a string
|
|
function trim(str)
|
|
{
|
|
return str.replace(/^[\s\xA0]+/, '').replace(/[\s\xA0]+$/, '').replace(/ +$/, '').replace(/^ +/, '');
|
|
}
|
|
|
|
function escape_html(str)
|
|
{
|
|
return str.replace(/&/g, '&').replace(/</g, '<');
|
|
}
|
|
|
|
// Check element in array or object
|
|
function contains(object, element)
|
|
{
|
|
for (var i in object) {
|
|
if (object[i] == element) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function write_error(id, error)
|
|
{
|
|
document.getElementById(id).innerHTML = error;
|
|
}
|
|
|
|
function check_search_set(a, query, text)
|
|
{
|
|
a.href = query + encodeURIComponent(text) + '&charset=UTF-8';
|
|
|
|
if (text == '') {
|
|
a.className = 'disabled';
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
// Check query in blogs | news
|
|
function check_search_url(a)
|
|
{
|
|
var win = window.open(a.href, 'search');
|
|
|
|
return false;
|
|
}
|
|
|
|
|
|
var enter_submit = false;
|
|
|
|
function check_url(s)
|
|
{
|
|
s = s.replace(/^\s+/, '').replace(/\s+$/, '').replace(/^http:\/\//i, "\xC8");
|
|
|
|
if (s.indexOf('/') == -1) {
|
|
s += '/';
|
|
}
|
|
|
|
s = s.replace("\xC8", 'http://');
|
|
|
|
if (s.indexOf('://') == -1) {
|
|
s = 'http://' + s;
|
|
}
|
|
|
|
return s;
|
|
}
|
|
|
|
var user_counter = 0;
|
|
|
|
function select_button_enabler(select, button)
|
|
{
|
|
document.getElementById(button).disabled = (document.getElementById(select).selectedIndex == -1);
|
|
}
|
|
|
|
function input_button_enabler(input, button)
|
|
{
|
|
document.getElementById(button).disabled = (trim(document.getElementById(input).value)=='');
|
|
}
|
|
|
|
// Get event target (x-browser version)
|
|
function get_target(evt)
|
|
{
|
|
if (!evt) {
|
|
evt = window.event;
|
|
}
|
|
|
|
if (evt.target) { // Mozilla
|
|
return evt.target;
|
|
}
|
|
|
|
if (evt.srcElement) { // IE
|
|
return evt.srcElement;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
function listener_input(evt)
|
|
{
|
|
var input = get_target(evt);
|
|
if (input) {
|
|
input_button_enabler(input.id, input.getAttribute('checksubmit'));
|
|
}
|
|
return true;
|
|
}
|
|
|
|
function filter_enter(evt)
|
|
{
|
|
var input = get_target(evt);
|
|
if (input) {
|
|
if (!evt) {
|
|
evt = window.event;
|
|
}
|
|
if (evt.keyCode == 13) {
|
|
enter_submit = input.getAttribute('checksubmit');
|
|
}
|
|
}
|
|
}
|
|
|
|
function listener_select(evt)
|
|
{
|
|
var input = get_target(evt);
|
|
if (input) {
|
|
select_button_enabler(input.id, input.getAttribute('checksubmit'));
|
|
}
|
|
return true;
|
|
}
|
|
|
|
function confirm_delete(select, what)
|
|
{
|
|
var length = 0;
|
|
for (var i = 0; i < select.length; i++) {
|
|
length += select.options[i].selected ? 1 : 0;
|
|
}
|
|
var ret = false;
|
|
if (length > 1) {
|
|
ret = confirm('Удалить ' + y5.Strings.plural(length, ['RSS-поток', 'RSS-потока', 'RSS-потоков']) + '?')
|
|
} else if (length == 1) {
|
|
var title = select.options[select.selectedIndex].text;
|
|
ret = confirm('Удалить ' + (what ? what + ' ' : '') + gc(171) + title + gc(187) + '?');
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
|
|
function joinList(id)
|
|
{
|
|
var selected = [];
|
|
var thisFrom = document.getElementById(id);
|
|
|
|
for (var i = thisFrom.options.length - 1; i >= 0; i--) {
|
|
selected[selected.length] = thisFrom.options[i].value;
|
|
}
|
|
|
|
return selected.join(',');
|
|
}
|
|
|
|
function joinBits(frm, name)
|
|
{
|
|
var i = 0, k, bits = 0, obj;
|
|
|
|
while (frm[name + i]) {
|
|
obj = frm[name + i];
|
|
if (obj.checked) { // checkbox
|
|
bits += parseInt(obj.value);
|
|
}
|
|
if (obj.length) { // radio
|
|
for (k = 0; k < obj.length; k++) {
|
|
if (obj[k].checked) {
|
|
bits += parseInt(obj[k].value);
|
|
}
|
|
}
|
|
}
|
|
i++;
|
|
}
|
|
return bits;
|
|
}
|
|
|
|
function setNull(id)
|
|
{
|
|
var swtch = document.getElementById('switch_' + id);
|
|
var set = document.getElementById('switch_' + id + '_1');
|
|
var block = document.getElementById('for' + id);
|
|
var swtcher = document.getElementById('switcher_' + id);
|
|
|
|
if (set) {
|
|
set.disabled = swtch.checked;
|
|
}
|
|
|
|
if (block) {
|
|
block.className = swtch.checked ? '' : 'hiddenBlock';
|
|
}
|
|
|
|
if (swtcher) {
|
|
swtcher.className = swtch.checked ? '' : 'hiddenSwitch';
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
function escape_1251(rawStr)
|
|
{
|
|
var chars = 'йцукенгшщзхъфывапролджэячсмитьбюёЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁ+()|?&$#@" ';
|
|
var hexCP1251 = "%E9%F6%F3%EA%E5%ED%E3%F8%F9%E7%F5%FA%F4%FB%E2%E0%EF%F0%EE%EB%E4%E6%FD%FF%F7%F1%EC%E8%F2%FC%E1%FE%B8%C9%D6%D3%CA%C5%CD%C3%D8%D9%C7%D5%DA%D4%DB%C2%C0%CF%D0%CE%CB%C4%C6%DD%DF%D7%D1%CC%C8%D2%DC%C1%DE%A8%2B%28%29%7C%3F%26%24%23%40%22%20";
|
|
|
|
var ret = '', ch, pos, i;
|
|
|
|
for (i = 0; i < rawStr.length; i++) {
|
|
ch = rawStr.charAt(i);
|
|
pos = chars.indexOf(ch);
|
|
ret += ((pos >= 0) ? hexCP1251.substring(pos * 3, (pos + 1) * 3) : ch);
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
function operateByButton(e) {
|
|
e = e ? e : event;
|
|
document.getElementById('flows').focus()
|
|
if (e.keyCode == 46 && !document.getElementById('delItem').disabled) {
|
|
flowManager.deleteItem()
|
|
}
|
|
if ((e.keyCode == 10 || e.keyCode == 13) && !document.getElementById('renameIt').disabled) {
|
|
flowManager.renameItem();
|
|
}
|
|
return true;
|
|
}
|