/* global false */
|
var ie4 = (document.all && !document.getElementById);
|
var ie5 = (document.all && document.getElementById);
|
var ns6 = (!document.all && document.getElementById);
|
var is_chrome = /chrome/i.test(navigator.userAgent.toLowerCase());
|
//var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
|
|
function GID(name) {
|
return document.getElementById(name) || {value: ''};
|
}
|
|
|
function callbackFunc(x) {
|
if ('object' === typeof x) {
|
if (x.module == 'NFC' && x.action == 'login') {
|
GID('fhUID').value = x.value;
|
GID('fhUIDform').submit();
|
}
|
} else alert('onfired(): ' + x)
|
}
|
function addEvent(obj, name, func) {
|
if (obj.addEventListener) {
|
obj.addEventListener(name, func, false);
|
if (ie4 || ie5) obj.onfired = func;
|
} else if (obj.attachEvent) {
|
obj.attachEvent("on" + name, func);
|
if (ie4 || ie5) obj.onfired = func;
|
} else alert("Add handler is not supported");
|
}
|
function init() {
|
var plugin = GID('plugin0');
|
if (plugin) {
|
try {
|
addEvent(plugin, 'fired', callbackFunc);
|
plugin.Initialize('NFC');
|
} catch (e) {
|
}
|
}
|
}
|
|
/*инициализация события загрузки страницы*/
|
function InitLoading() {
|
if (document.addEventListener) // Opera
|
document.addEventListener("DOMContentLoaded", init, false);
|
// Safari
|
if (/WebKit/i.test(navigator.userAgent)) {
|
var _timer = setInterval(function () {
|
if (/loaded|complete/.test(document.readyState)) {
|
clearInterval(_timer);
|
delete _timer;
|
init();
|
}
|
}, 10);
|
}
|
// Other
|
window.onload = init;
|
}
|
|
function getClientWidth() {
|
return document.compatMode == 'CSS1Compat' && !window.opera ? document.documentElement.clientWidth : document.body.clientWidth;
|
}
|
|
function getClientHeight() {
|
return document.compatMode == 'CSS1Compat' && !window.opera ? document.documentElement.clientHeight : document.body.clientHeight;
|
}
|
|
function PrintAct(path) {
|
var PrintWindow;
|
PrintWindow = window.parent.open(path, "��� �������");
|
if (PrintWindow.IsOpen())
|
PrintWindow.print();
|
}
|
|
function PrintConfirmation(path) {
|
var PrintWindow;
|
PrintWindow = window.parent.open(path, "��������������");
|
if (PrintWindow.IsOpen())
|
PrintWindow.print();
|
}
|
|
function CheckAllEx(C, A, xFunc) {
|
var E = C.form.elements;
|
/*var ex = '/^'+A+'\[\d+\]$/i'*/
|
var ex = new RegExp(A, 'i');
|
var exrep = /^[^\d]*(\d+)[^\d]*$/i;
|
var num = '';
|
|
var myalldiv = GID('div_' + C.id);
|
myalldiv.className = (C.checked) ? "checkbox_checked" : "checkbox_unchecked";
|
|
for (var D = 1, B = E.length; D < B; D++) {
|
//alert(E[D].name);
|
if (E[D].name.search(ex) != -1) {
|
if (E[D].checked != C.checked) {
|
//alert('2-'+E[D].name);
|
GID('div_' + E[D].id).className = (C.checked) ? "checkbox_checked" : "checkbox_unchecked";
|
num = E[D].name;
|
num = num.replace(exrep, '$1');
|
try {
|
if (xFunc != '') eval(xFunc + '(' + num + ', ' + C.checked + ');');
|
} catch (B) {
|
continue;
|
}
|
E[D].checked = C.checked;
|
}
|
}
|
}
|
}
|
|
function CheckAll(C, A) {
|
var E = C.form.elements;
|
var R = '';
|
/*var ex = '/^'+A+'\[\d+\]$/i';*/
|
var ex = new RegExp(A, 'i');
|
|
var myalldiv = GID('div_' + C.id);
|
myalldiv.className = (C.checked) ? "checkbox_checked" : "checkbox_unchecked";
|
|
for (var D = 1, B = E.length; D < B; D++) {
|
if (E[D].name.search(ex) != -1) {
|
/*alert('123321');return;*/
|
if (E[D].checked != C.checked) {
|
GID('div_' + E[D].id).className = (C.checked) ? "checkbox_checked" : "checkbox_unchecked";
|
E[D].checked = C.checked;
|
R = R + E[D].id + ',';
|
}
|
}
|
}
|
try {
|
xajax_SetCheckAll(R, C.checked);
|
} catch (B) {
|
}
|
}
|
function CheckCB(A) {
|
/*A.checked=!A.checked;*/
|
CheckThis(A);
|
try {
|
xajax_SetCheck(A.id, A.checked);
|
} catch (B) {
|
}
|
}
|
|
function CheckThisEx(C, A) {
|
var is_checked = C.checked;
|
if (is_checked) {
|
C.checked = false;
|
var E = C.form.elements;
|
var R = '';
|
var ex = new RegExp(A, 'i');
|
|
var myalldiv = GID('div_' + C.id);
|
if (myalldiv) myalldiv.className = (C.checked) ? "checkbox_checked" : "checkbox_unchecked";
|
|
for (var D = 1, B = E.length; D < B; D++) {
|
if (E[D].name.search(ex) != -1) {
|
/*alert('123321');return;*/
|
if (E[D].checked != C.checked) {
|
GID('div_' + E[D].id).className = (C.checked) ? "checkbox_checked" : "checkbox_unchecked";
|
E[D].checked = C.checked;
|
R = R + E[D].id + ',';
|
}
|
}
|
}
|
try {
|
xajax_SetCheckAll(R, C.checked);
|
} catch (B) {
|
}
|
}
|
C.checked = is_checked;
|
CheckThis(C);
|
}
|
function CheckThis(A) {
|
var B = GID('div_' + A.id);
|
if (B) {
|
B.className = (A.checked || B.className === "checkbox_unchecked") ? "checkbox_checked" : "checkbox_unchecked";
|
A.checked = (B.className === "checkbox_checked"); //override
|
}
|
}
|
|
function GetViewTextConf(A, B) {
|
B.style.display = (A.checked) ? 'block' : 'none';
|
}
|
|
/* изменение конфигурации*/
|
function EditConf_ChangeVag(T, NUM, NUMZ, MAX, SEL, newval, newvalZ, prev_bor, new_bor) {
|
var Obj = 0;
|
for (var i = 1; i <= MAX; i++) {
|
/*alert('t'+SEL+i);*/
|
Obj = document.getElementById('t' + SEL + i);
|
|
if (Obj == null) continue;
|
/*alert(Obj.style.border);
|
if (Obj.style.border!='1px #666 solid') */
|
Obj.style.border = prev_bor;//'1px #666 solid';
|
}
|
T.style.border = new_bor;//'3px #AADDFF solid';
|
//alert('='+NUM.value);
|
NUM.value = newval;
|
//alert('1');
|
NUMZ.value = newvalZ;
|
|
/*Date_Hid = document.getElementById('date'+SEL+'6');
|
Kilo_Hid = document.getElementById('kilo'+SEL+'6');
|
|
Date_Obj = document.getElementById('date_'+SEL);
|
Kilo_Obj = document.getElementById('kilo_'+SEL);
|
|
Date_Obj.value = Date_Hid.value;
|
Kilo_Obj.value = Kilo_Hid.value;*/
|
|
document.getElementById('date_' + SEL).value = '';
|
document.getElementById('kilo_' + SEL).value = '';
|
try {
|
document.getElementById('date_' + SEL).value = document.getElementById('date' + SEL + newval).value;
|
document.getElementById('kilo_' + SEL).value = document.getElementById('kilo' + SEL + newval).value;
|
} catch (B) {
|
}
|
;
|
if (GID('cascad_' + SEL)) GID('cascad_' + SEL).checked = (GID('num' + SEL).value == 1) ? true : false;
|
|
return;
|
}
|
|
var Elem;
|
function ch_pr(A, B, C, D) {
|
var Els = new Array('A', 'B', 'C', 'D');
|
//alert(Els[A.value-1]);
|
var str = '';
|
if (A.checked) str += 'A ';
|
if (B.checked) str += 'B ';
|
if (C.checked) str += 'C ';
|
if (D.checked) str += 'D ';
|
//alert(Elem.value);
|
Elem.value = str;
|
}
|
|
function focus_pr(tpr, A, B, C, D) {
|
var str = tpr.value;
|
A.checked = false;
|
B.checked = false;
|
C.checked = false;
|
D.checked = false;
|
|
if (str.search(/A/i) != -1) A.checked = true;
|
if (str.search(/B/i) != -1) B.checked = true;
|
if (str.search(/C/i) != -1) C.checked = true;
|
if (str.search(/D/i) != -1) D.checked = true;
|
//th.value = str;
|
//alert('1');
|
}
|
|
function Sel(A) {
|
A.style.textDecoration = 'underline';
|
A.style.color = '#44F';
|
}
|
|
function UnSel(A) {
|
A.style.textDecoration = 'none';
|
A.style.color = '#000';
|
}
|
|
var SelectedItem = [];
|
function SelectItem(A, pref) {
|
//var E;
|
var B;
|
var count = 9999;
|
|
// если выбран старый выбранный элемент, то на выход
|
if (pref + 'tr' + SelectedItem[pref] == A.id) return;
|
|
var exrep = /^[^\d]*(.+)$/i;
|
var num = A.id;
|
var newElem = num.replace(exrep, '$1');
|
//alert(newElem+'-'+num);
|
//alert(pref + 'tr' + SelectElement);
|
|
// выделение выбранного элемента
|
for (var j = 1; j < count; j++) {
|
B = GID(pref + 'td' + newElem + '_' + j);
|
if (B == null) break;
|
B.style.border = 'solid 2px #BB0';
|
}
|
|
// убираю выделение старого выбранного элемента (если такой был)
|
if (SelectedItem[pref]) {
|
for (var j = 1; j < count; j++) {
|
B = GID(pref + 'td' + SelectedItem[pref] + '_' + j);
|
if (B == null) break;
|
B.style.border = '';
|
}
|
}
|
SelectedItem[pref] = newElem;
|
}
|
|
function SelectElemREM(A, pref, rem_cnt, inp_cnt) {
|
var E;
|
var TD;
|
var max_cnt;
|
for (var i = 1, B = 100; i < B; i++) {
|
E = document.getElementById(pref + 'tr' + i);
|
if (E == null) break;
|
E.style.border = 'none';
|
if (A.id == E.id) {
|
TD = document.getElementById(rem_cnt + i);
|
//alert(TD.innerHTML);
|
if (GID(inp_cnt)) GID(inp_cnt).value = Number(TD.innerHTML);
|
if (GID('max_' + inp_cnt)) GID('max_' + inp_cnt).value = Number(TD.innerHTML);
|
TD = document.getElementById('id_' + rem_cnt + i);
|
if (GID('id_' + inp_cnt)) GID('id_' + inp_cnt).value = Number(TD.value);
|
//alert(document.getElementById('max_'+inp_cnt).value);
|
for (var j = 1, C = 100; j < C; j++) {
|
TD = document.getElementById(pref + 'td' + i + '_' + j);
|
if (TD == null) break;
|
TD.style.border = 'solid 2px #BB0';
|
}
|
} else {
|
for (var j = 1, C = 100; j < C; j++) {
|
TD = document.getElementById(pref + 'td' + i + '_' + j);
|
if (TD == null) break;
|
TD.style.border = 'none';
|
}
|
}
|
}
|
}
|
|
var SelectElement = -1;
|
function SelectElem(A, pref) {
|
//var E;
|
var TD;
|
var count = 9999;
|
var begin = 1;
|
if (document.getElementById(pref + 'tr0') != null) begin = 0;
|
|
// если выбран старый выбранный элемент, то на выход
|
if (pref + 'tr' + SelectElement == A.id) return;
|
|
var exrep = /^[^\d]*(\d+)$/i;
|
var num = A.id;
|
var newElem = num.replace(exrep, '$1');
|
//alert('-'+num);
|
|
// выделение выбранного элемента
|
for (var j = 1; j < count; j++) {
|
TD = document.getElementById(pref + 'td' + newElem + '_' + j);
|
if (TD == null) break;
|
TD.style.border = 'solid 1px #BB0';
|
}
|
|
// убираю выделение старого выбранного элемента (если такой был)
|
if (SelectElement != -1) {
|
for (var j = 1; j < count; j++) {
|
TD = document.getElementById(pref + 'td' + SelectElement + '_' + j);
|
if (TD == null) break;
|
TD.style.border = '1px solid #fff';
|
}
|
}
|
SelectElement = newElem;
|
}
|
|
function SelectElem_old(A, pref) {
|
var E;
|
var TD;
|
var count = 999999;
|
var begin = 1;
|
if (document.getElementById(pref + 'tr0') != null) begin = 0;
|
|
for (var i = begin; i < count; i++) {
|
E = document.getElementById(pref + 'tr' + i);
|
if (E == null) break;
|
//E.style.border = '0px solid #fff';
|
if (A.id == E.id) {
|
//
|
for (var j = 1; j < count; j++) {
|
TD = document.getElementById(pref + 'td' + i + '_' + j);
|
if (TD == null) break;
|
TD.style.border = 'solid 1px #BB0';
|
}
|
} else {
|
for (var j = 1; j < count; j++) {
|
TD = document.getElementById(pref + 'td' + i + '_' + j);
|
if (TD == null) break;
|
TD.style.border = '0px solid #fff';
|
}
|
}
|
}
|
//alert(A.id);
|
//alert(A.style.border);
|
//A.style.border = 'small none -moz-use-text-color';
|
/*A.style.border = 'solid 2px #BB0';
|
A.style.backgroundColor = '#BB0';*/
|
}
|
|
function ChangeTab(A) {
|
var E;
|
for (var i = 1, B = 100; i < B; i++) {
|
E = document.getElementById('tab' + i);
|
if (E == null) {
|
if (i == 3) continue; else break;
|
}
|
//E.style.background = 'none';
|
E.style.border = 'none';
|
document.getElementById(E.id + '_div').style.display = 'none';
|
}
|
//A.style.background = 'url(images/borders1.gif) repeat-x transparent left';
|
//alert(A.id);
|
document.getElementById(A.id + '_div').style.display = 'block';
|
A.style.border = 'solid 2px #BB0';
|
}
|
|
function getAbsolutePos(el) {
|
var r = { x: el.offsetLeft, y: el.offsetTop };
|
if (el.offsetParent) {
|
var tmp = getAbsolutePos(el.offsetParent);
|
r.x += tmp.x;
|
r.y += tmp.y;
|
}
|
return r;
|
}
|
|
function toolTip(el, th) {
|
var obj = document.getElementById(el);
|
//var obj = find_child_obj(E, 'div');
|
var objth = document.getElementById(th);
|
//var obj = el;
|
if (obj && objth) {
|
if (obj.style.visibility != "visible") {
|
//alert(th.offsetLeft);
|
var res = getAbsolutePos(objth);
|
obj.style.left = res.x + "px";
|
obj.style.top = res.y + objth.offsetHeight + "px";
|
/*obj.style.left = event.clientX/2;
|
obj.style.top = event.clientY/2+document.body.scrollTop;*/
|
/*obj.style.left = "5px";
|
obj.style.top = "5px";*/
|
obj.style.width = "300px";
|
obj.style.height = "300px";
|
obj.style.display = "block";
|
obj.style.visibility = "visible";
|
}
|
}
|
}
|
|
function hideTip(el) {
|
//var obj = find_child_obj(el, 'div');
|
var obj = document.getElementById(el);
|
if (obj) {
|
obj.style.display = "none";
|
obj.style.visibility = "hidden";
|
}
|
}
|
|
/*
|
function onOver(event,id) {
|
var div = document.getElementById(id);
|
div.style.display = "block";
|
onMove(event,id);
|
}
|
function onMove(event,id) {
|
var div = document.getElementById(id);
|
div.style.left = event.clientX + document.documentElement.scrollLeft;
|
div.style.top = event.clientY + document.documentElement.scrollTop;
|
// alert(document.body.scrollTop);
|
}
|
function onOut(id) {
|
var div = document.getElementById(id);
|
div.style.display = "none";
|
}
|
function showHide(id) {
|
if (document.layers["id"].visibility == "show")
|
document.layers["id"].visibility= "hide"
|
else document.layers["id"].visibility= "show";
|
}
|
*/
|
|
function numberOnly(evt) {
|
evt = (evt) ? evt : ((window.event) ? event : null);
|
if (evt) {
|
var elem = (evt.target) ? evt.target :
|
((evt.srcElement) ? evt.srcElement : null);
|
if (elem) {
|
var charCode = (evt.charCode) ? evt.charCode :
|
((evt.which) ? evt.which : evt.keyCode);
|
if ((charCode < 32 ) ||
|
(charCode > 44 && charCode < 47) ||
|
(charCode > 47 && charCode < 58)) {
|
return true;
|
} else {
|
return false;
|
}
|
}
|
}
|
}
|
|
function ViewDetails(is_checked) {
|
return true;
|
}
|
|
/*
|
* Функция отображает элемент с параметром id = vobj
|
* относительно элемента с параметром id = obj
|
*/
|
function vis(obj, vobj, left, width, top) {
|
obj = document.getElementById(obj);
|
vobj = document.getElementById(vobj);
|
var lastObj = null;
|
var x = 0, y = 0, h = 0;
|
while (obj) {
|
x += obj.offsetLeft;
|
y += obj.offsetTop;
|
h = obj.offsetHeight;
|
lastObj = obj;
|
obj = obj.offsetParent;
|
}
|
vobj.style.top = (top == -1) ? y + "px" : top + "px";
|
vobj.style.width = width + "px";
|
vobj.style.left = (left == true) ? (x - width - 20) + "px" : (x + 25) + "px";
|
vobj.style.display = 'block';
|
}
|
|
function vis2(obj, vobj, isleft, istop) {
|
obj = document.getElementById(obj);
|
vobj = document.getElementById(vobj);
|
vobj.style.display = 'block';
|
|
var lastObj = null;
|
var x = 0, y = 0, h = 0;
|
while (obj) {
|
x += obj.offsetLeft;
|
y += obj.offsetTop;
|
h = obj.offsetHeight;
|
w = obj.offsetWidth;
|
lastObj = obj;
|
obj = obj.offsetParent;
|
}
|
|
if (isleft) {
|
deltaW = x - vobj.offsetWidth;
|
if (deltaW < 0) deltaW = 0;
|
} else {
|
deltaW = x + 20;
|
if (deltaW + vobj.offsetWidth > w) deltaW = w - vobj.offsetWidth;
|
}
|
|
if (istop) {
|
deltaH = y - vobj.offsetHeight;
|
if (deltaH < 0) deltaH = 0;
|
} else {
|
deltaH = y;
|
if (deltaH + vobj.offsetHeight > h) deltaH = h - vobj.offsetHeight;
|
}
|
|
//alert(window.clientHeight);
|
//if (deltaH > window.clientHeight) deltaH = window.clientHeight;
|
|
vobj.style.top = deltaH + "px";
|
vobj.style.width = vobj.offsetWidth + "px";
|
vobj.style.left = deltaW + "px";
|
|
/*
|
vobj.style.top = (top == -1) ?y + "px": y - vobj.offsetHeight + "px";
|
vobj.style.width = (left==true) ?vobj.offsetWidth + "px": width + "px";
|
vobj.style.left = (left==true) ?x - vobj.offsetWidth + "px": (x + 25) + "px";
|
*/
|
}
|
/*
|
* Функция скрывает элемент с параметром id=obj
|
*/
|
function hide(obj) {
|
obj = document.getElementById(obj);
|
if (obj) obj.style.display = 'none';
|
}
|
|
function show(obj, ie_obj) {
|
ie_obj = ie_obj || obj;
|
obj = document.getElementById(((ie4 || ie5) ? ie_obj : obj));
|
if (obj) obj.style.display = 'block';
|
}
|
|
/* последний элемент с фокусом */
|
/*var focusedElement = null;
|
if (document.addEventListener)
|
{
|
document.addEventListener('focus', function(e){ /*alert(e.target,'-'); /focusedElement = e.target }, true);
|
document.addEventListener('blur', function(e){ focusedElement = null }, true);
|
}*/
|
|
// получение фокуса для IE
|
function GetFocusIE() {
|
//document.getElementById(\''.$name.'\').value = /*document.activeElement.id/focusedElement.id;return false;
|
return document.activeElement;
|
}
|
function CloseFilter(obj, div_obj) {
|
if (!(ie4 || ie5 || is_chrome)) return;
|
//alert(focusedElement+'-CloseFilter');
|
//alert(focusedElement.id+'-'+focusedElement.name+'-');
|
focusedElem = GetFocusIE();
|
//alert(focusedElem+'-');
|
//p_2 p_1 dp_1
|
//alert('-'+focusedElem.id+'-'+obj+'-'+div_obj);
|
/*obj = document.getElementById(obj);
|
div_obj = document.getElementById(div_obj);*/
|
if (focusedElem.id == '' || (focusedElem.id != obj && focusedElem.id != div_obj/* && (ie4||ie5)*/))
|
hide(div_obj)
|
}
|
|
|
function addHandler(object, event, handler, useCapture) {
|
if (object.addEventListener) {
|
object.addEventListener(event, handler, useCapture ? useCapture : false);
|
} else if (object.attachEvent) {
|
object.attachEvent('on' + event, handler);
|
} else alert("Add handler is not supported");
|
}
|
|
function removeHandler(object, event, handler) {
|
if (object.removeEventListener) {
|
object.removeEventListener(event, handler, false);
|
} else if (object.detachEvent) {
|
object.detachEvent('on' + event, handler);
|
} else alert("Remove handler is not supported");
|
}
|
|
/* создание окна для фильтра */
|
var focusedElem = null;
|
var ElObj = null;
|
function documentFocusFilter(e) {
|
// ff
|
//alert("2-"+e.currentTarget.id+'-'+e.target.id+'='+focusedElem.id+'-'+ElObj.id);
|
//2-undefined-p_2=d_inp_1-[object HTMLInputElement]
|
var el = /*(ie4||ie5)?e.srcElement:*/e.target;
|
if (el != null && focusedElem != null && (el.id == undefined || el.id != 'd' + ElObj.id)) {
|
//alert('-');
|
hide(focusedElem.id);
|
//removeHandler(document, "focus", documentFocusFilter);
|
//focusedElem = null;
|
}
|
}
|
|
function CreateFilterSelect(obj, /*vobj_name,*/ left, width, top) {
|
//p_1-d_inp_1-false--1--2
|
//alert(obj+'-'+vobj_name+'-'+left+'-'+width+'-'+top);
|
obj = document.getElementById(obj);
|
var firstobj = obj;
|
|
var vobj_name = 'd_in' + obj.id;
|
var vobj = document.getElementById(vobj_name);
|
if (vobj == null) {
|
vobj = document.createElement("div");
|
vobj.id = vobj_name;
|
vobj.style.position = "absolute";
|
vobj.style.zIndex = 50;
|
}
|
|
var lastObj = null;
|
var x = 0, y = 0, h = 0;
|
while (obj) {
|
x += obj.offsetLeft;
|
y += obj.offsetTop;
|
h = obj.offsetHeight;
|
lastObj = obj;
|
obj = obj.offsetParent;
|
}
|
if (top == -2) vobj.style.top = y + firstobj.offsetHeight + "px";
|
else vobj.style.top = (top == -1) ? y + "px" : top + "px";
|
|
vobj.style.width = (width == -1) ? firstobj.offsetWidth + 20 + "px" : width + 20 + "px";
|
vobj.style.left = (left == true) ? (x - width - 20) + "px" : /*(x + 25)*/x + "px";
|
vobj.style.display = 'block';
|
|
// для FF
|
if (!(ie4 || ie5)) {
|
//alert(vobj.id+'-'+firstobj.id);
|
focusedElem = vobj;
|
ElObj = firstobj;
|
addHandler(document, "focus", documentFocusFilter, true);
|
//addHandler(El, "focus", ChangeFilterFunc, true);
|
}
|
document.body.appendChild(vobj);
|
}
|
|
//GetCbids(this, 'cb')
|
function GetCbids(C, A) {
|
//var E=C.form.elements;
|
var E = document.getElementsByName(C);
|
var RES = [];
|
var i = 0;
|
var txt = A + '\d*';
|
var ex = new RegExp(txt, 'i');
|
for (var D = 0, B = E.length; D < B; D++) {
|
//console.log(E[D].name, E[D].id);
|
if (E[D].id.search(ex) != -1) {
|
if (E[D].checked) {
|
RES[i] = E[D].id;
|
i++;
|
}
|
}
|
}
|
//console.log(RES);
|
return RES;
|
}
|
|
// отображение и скрытие одного столбца
|
function show_hide_column(table_name, col_no, do_show, ncol) {
|
var stl;
|
stl = (do_show) ? '' : 'none';
|
var tbl = document.getElementById(table_name);
|
var rows = tbl.getElementsByTagName('tr');
|
var colsn = 0;
|
var bl = false;
|
var cels;
|
var cel = 0;
|
|
for (var row = 0; row < rows.length; row++) {
|
cels = rows[row].getElementsByTagName('td');
|
// количество столбцов при проходе в цикле(colSpan)
|
colsn = 0;
|
bl = false;
|
for (cel = 0; cel < cels.length; cel++) {
|
//alert(cels[cel].tagName+' '+cels[cel].innerHTML+' '+cels[cel].colSpan);
|
//if (do_show && row<=5 && cels[cel].colSpan>0) alert('Кол-во:'+colsn+' Номер столбца:'+col_no+' Столбец:'+cel+' colSpan:'+cels[cel].colSpan);
|
if (do_show) {
|
// ncol - количество столбцов
|
/*if (cels[cel].colSpan >= 1 && ncol>cels.length && (/*если конец столбца/cels[cel+1]==null || (cels[cel+1]!=null && cels[cel+1].colSpan+colsn > col_no+1)))
|
{
|
//alert(cels[cel].tagName+' '+cels[cel].innerHTML+' '+cels[cel].colSpan);
|
//cels[cel].colSpan++;
|
if (colspans[table_name+'_'+row+'_'+cel])
|
cels[cel].colSpan = colspans[table_name+'_'+row+'_'+cel];
|
bl = true;
|
break;
|
}
|
colsn += cels[cel].colSpan;*/
|
if (cels[cel].colSpan >= 1 && colspans[table_name + '_' + row + '_' + cel]) {
|
//alert('-'+colspans[table_name+'_'+row+'_'+cel]);
|
cels[cel].colSpan = colspans[table_name + '_' + row + '_' + cel];
|
}
|
} else {
|
if (cels[cel].colSpan > 1 && colsn >= cel) {
|
//alert(cels[cel].tagName+' '+cels[cel].innerHTML+' '+cels[cel].colSpan);
|
cels[cel].colSpan--;
|
bl = true;
|
break;
|
}
|
colsn += cels[cel].colSpan;
|
}
|
}
|
//alert('042'+cels[col_no]);
|
if (cels[col_no] != null && !bl) {
|
//if (do_show && row<5) alert(col_no+'='+cels[col_no].style.display);
|
cels[col_no].style.display = stl;
|
cels[col_no].style.backgroundColor = '#DDF';
|
//if (do_show && row<5) alert(cels[col_no].style.display);
|
}
|
}
|
}
|
|
// отображение и скрытие списка столбцов
|
|
// чистка для аякса
|
var sh_tables = {};
|
function SHCClear() {
|
sh_tables = {};
|
}
|
|
// отображение и скрытие списка столбцов
|
var colspans = {};
|
function show_hide_columns(table_name, col_no, checkb_name, ncol, always_show) {
|
always_show = always_show || false;
|
/* настройки */
|
var checkb = document.getElementById(checkb_name),
|
sh_cols,
|
tbl,
|
rows,
|
cels,
|
cel;
|
if (checkb) {
|
var do_show = checkb.checked;
|
var cookie_name = 'shc_' + table_name;
|
if (always_show === true) {
|
do_show = checkb.checked = true;
|
} else {
|
if (!sh_tables[table_name]) // первый раз читаем куки
|
{
|
sh_cols = getCookie(cookie_name);
|
if (!sh_cols || sh_cols == '') { // если нет куков
|
sh_cols = do_show.toString();
|
}
|
do_show = checkb.checked = !!(sh_cols === 'true'); // чекбокс в true и для всех столбцов
|
}
|
}
|
CheckThis(checkb);
|
sh_tables[table_name] = true;
|
setCookie(cookie_name, do_show, "Mon, 01-Jan-2025 00:00:00 GMT", "/");
|
|
/* чтение данных colspan */
|
if (!do_show) {
|
tbl = document.getElementById(table_name);
|
rows = tbl.getElementsByTagName('tr');
|
for (var row = 0; row < rows.length; row++) {
|
cels = rows[row].getElementsByTagName('td');
|
for (cel = 0; cel < cels.length; cel++)
|
if (cels[cel].colSpan > 1)
|
colspans[table_name + '_' + row + '_' + cel] = cels[cel].colSpan;
|
//alert(table_name+'_'+row+'_'+cel+' = '+colspans[table_name+'_'+row+'_'+cel]);
|
}
|
}
|
|
/* изменение видимости столбцов */
|
for (var i = 0; i < col_no.length; i++)
|
show_hide_column(table_name, col_no[i], do_show, ncol);
|
}
|
}
|
|
|
/* РАБОТА с COOKIEs */
|
function setCookie(name, value, expires, path, domain, secure) {
|
document.cookie = name + "=" + escape(value) +
|
((expires) ? "; expires=" + expires : "") +
|
((path) ? "; path=" + path : "") +
|
((domain) ? "; domain=" + domain : "") +
|
((secure) ? "; secure" : "");
|
}
|
|
function getCookie(name) {
|
var cookie = " " + document.cookie;
|
var search = " " + name + "=";
|
var setStr = null;
|
var offset = 0;
|
var end = 0;
|
if (cookie.length > 0) {
|
offset = cookie.indexOf(search);
|
if (offset != -1) {
|
offset += search.length;
|
end = cookie.indexOf(";", offset)
|
if (end == -1) {
|
end = cookie.length;
|
}
|
setStr = unescape(cookie.substring(offset, end));
|
}
|
}
|
return(setStr);
|
}
|
|
|
function vis_load(obj, vobj, isLeft, isTop) {
|
obj = document.getElementById(obj);
|
vobj = document.getElementById(vobj);
|
var lastObj = null;
|
var x = 0, y = 0, h = 0;
|
while (obj) {
|
x += obj.offsetLeft;
|
y += obj.offsetTop;
|
h = obj.offsetHeight;
|
w = obj.offsetWidth;
|
lastObj = obj;
|
obj = obj.offsetParent;
|
}
|
|
var vobj_offsetWidth = 30;
|
var vobj_offsetHeight = 30;
|
var deltaW, deltaH;
|
|
if (isLeft) {
|
deltaW = x - vobj_offsetWidth;
|
} else {
|
deltaW = x + 20;
|
}
|
if (deltaW < 0) deltaW = 0;
|
if (deltaW + vobj_offsetWidth > w) deltaW = w - vobj_offsetWidth;
|
|
if (isTop) {
|
deltaH = y - vobj_offsetHeight;
|
} else {
|
deltaH = y;
|
}
|
if (deltaH < 0) deltaH = 0;
|
if (deltaH + vobj_offsetHeight > h) deltaH = h - vobj_offsetHeight;
|
|
vobj.style.top = deltaH + "px";
|
vobj.style.width = vobj_offsetWidth + "px";
|
vobj.style.height = vobj_offsetHeight + "px";
|
vobj.style.left = deltaW + "px";
|
|
/*vobj.style.top = y + "px";
|
vobj.style.width = "30px";
|
vobj.style.height = "30px";
|
vobj.style.left = x + 25 + "px";*/
|
//vobj.style.backgroundImage = "images/ajax_loader.gif";
|
vobj.innerHTML = '<img src="images/ajax_loader.gif" />';
|
vobj.style.display = 'block';
|
}
|
|
function createKeyboardEvent(elem_name, ev_name) {
|
// для FF
|
if (!(ie4 || ie5 || is_chrome)) {
|
var evt = document.createEvent("KeyboardEvent");
|
evt.initKeyEvent(
|
ev_name/*"keypress"*/, // in DOMString typeArg,
|
true, // in boolean canBubbleArg,
|
true, // in boolean cancelableArg,
|
null, // in nsIDOMAbstractView viewArg, Specifies UIEvent.view. This value may be null.
|
false, // in boolean ctrlKeyArg,
|
false, // in boolean altKeyArg,
|
false, // in boolean shiftKeyArg,
|
false, // in boolean metaKeyArg,
|
13, // in unsigned long keyCodeArg,
|
0);
|
//применяем это событие для элемента
|
target = document.getElementById(elem_name);
|
target.dispatchEvent(evt);
|
}
|
}
|
|
function vcenter(el) {
|
var p = el.parentNode, s = el.style;
|
var y = (document.documentElement.clientHeight || document.body.clientHeight) / 2 - (p.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px";
|
if (y) s.top = y;
|
}
|
|
function spoil(id){
|
var el = GID(id);
|
if (el) {
|
el.scrollIntoView(true);
|
}
|
return false;
|
}
|