Your IP : 3.144.200.88
/*
����� ��������� �����������
pWnd - �������� �� ������ ����� <td> � ������� ������� ���������
bVertical - ��������� �� ��������� ��� ����������� ��������
*/
function BXToolbarSet(pColumn, pMainObj, bVertical)
{
this.className = 'BXToolbarSet';
pColumn.unselectable = "on";
this.pWnd = pColumn;
this.pMainObj = pMainObj;
this.bVertical = bVertical;
this.pWnd.className = 'bxedtoolbarset';
if(bVertical)
{
pColumn.style.verticalAlign = "top";
pColumn.innerHTML = '<img src="/bitrix/images/1.gif" width="1" height="0">';
this.pWnd = pColumn.appendChild(this.pMainObj.pDocument.createElement("TABLE"));
this.pWnd.unselectable = "on";
this.pWnd.cellSpacing = 0;
this.pWnd.cellPadding = 0;
this.pWnd.border = 0;
this.pWnd.insertRow(0);
this.pParent = pColumn;
}
/*
�������� - �������� �� ���������� � ������ ���������� (��� ��������� �����)
���������
������:
"row" => ������,
"col" => ������ � ������ ����� ����� �������� ����������,
"addrow" => ������ ����� ���� �������� ��������
��� false ���� ��� ������ ������
*/
BXToolbarSet.prototype.HitTest = function (px, py)
{
var delta = 5;
var position = GetRealPos((this.bVertical ? this.pParent : this.pWnd));
if(
position["left"] - delta < px && px < position["right"] + delta
&& position["top"] - delta < py && py < position ["bottom"] + delta
)
{
//window.status = 'L:' + position['left'] + '; T: '+position['top'] + '; R: ' + position['right'] + '; B: ' + position['bottom'] + '; px = ' + px + '; py = ' + py;
var result = Array();
result["row"] = 0;
result["col"] = 0;
result["addrow"] = false;
// ������ ��� ������ ������ ������
var allNodes;
if(this.bVertical)
allNodes = this.pWnd.rows[0].cells;
else
allNodes = this.pWnd.childNodes;
if(!allNodes || allNodes.length<=0)
{
result["addrow"] = true;
return result;
}
var allCells, j;
for(var i=0; i < allNodes.length; i++)
{
var toolbar_position = GetRealPos(allNodes[i]);
if(this.bVertical)
{
if(toolbar_position["left"] - delta < px && px < toolbar_position["right"] + delta)
{
if(toolbar_position["left"] + delta > px)
{
result["addrow"] = true;
result["col"] = i;
}
else if(toolbar_position["right"] - delta < px)
{
result["addrow"] = true;
result["col"] = i+1;
}
else
{
result["col"] = i;
allCells = allNodes[i].childNodes[0].rows;
for(j = allCells.length-1; j > 0; j--)
{
var celltemp = allCells[j].cells[0];
var celltemp_position = GetRealPos(celltemp);
if(celltemp_position["top"] - delta < py)
{
result["row"] = j;
break;
}
}
}
return result;
}
}
else
{
// ���� ���� ������� ������ ����� �� �����
if(toolbar_position["top"] - delta < py && py < toolbar_position["bottom"] + delta)
{
if(toolbar_position["top"] + delta > py)
{
result["addrow"] = true;
result["row"] = i;
}
else if(toolbar_position["bottom"] - delta < py)
{
result["addrow"] = true;
result["row"] = i + 1;
}
else
{
result["row"] = i;
allCells = allNodes[i].rows[0].cells;
for(j = allCells.length-1; j > 0; j--)
{
var cell_position = GetRealPos(allCells[j]);
if(cell_position["left"] - delta < px)
{
result["col"] = j;
return result;
}
}
}
return result;
}
}
}
}
return false;
}
BXToolbarSet.prototype.__AddRow = function (id)
{
var t = this.pMainObj.pDocument.createElement("TABLE");
t.id = id;
t.cellSpacing = 0;
t.cellPadding = 0;
t.border = 0;
t.unselectable = "on";
var r = t.insertRow(0);
return t;
}
/*
�������� ������ � ��������� � ������� �����
��������:
pToolbar - ����� �� ����� ���� BXToolbar,
row, col - ������, ������ � ������ ������� ������,
bAddRow - true: ������ ������� ���� ������ �� ����� col, false - ����� ������� � ������ row
������������� ������ BXToolbar.bDocked, ������ ������ relative � ��������� � ������ �����, ������� �����
� �������� ������ � ����� ��������� �������.
���� ������� ������ ����� BXToolbar.UnDock
*/
BXToolbarSet.prototype.AddToolbar = function (pToolbar, row, col, bAddRow)
{
pToolbar.bDocked = true;
var pColTable = null;
var rowIcons;
pToolbar.SetDirection(this.bVertical);
if(this.bVertical)
{
var cols = this.pWnd.rows[0].cells;
var pRow, tTable;
if(col>cols.length)
col = cols.length;
if(col >= cols.length || bAddRow)
{
var ctmp = this.pWnd.rows[0].insertCell(col);
ctmp.style.verticalAlign = "top";
tTable = ctmp.appendChild(this.pMainObj.pDocument.createElement("TABLE"));
tTable.cellSpacing = 0;
tTable.cellPadding = 0;
tTable.border = 0;
tTable.unselectable = "on";
}
else
{
tTable = cols[col].childNodes[0];
if(tTable.clientHeight + pToolbar.pWnd.clientHeight > this.pMainObj.arConfig["height"])
return this.AddToolbar(pToolbar, row, col+1, bAddRow);
}
if(row>tTable.rows.length)
row = tTable.rows.length;
pRow = tTable.insertRow(row);
pColTable = pRow.insertCell(0);
}
else
{
var allNodes = this.pWnd.childNodes;
var pRowTable;
if(row>allNodes.length)
row = allNodes.length;
if(row >= allNodes.length || bAddRow)
{
var t = this.pMainObj.pDocument.createElement("TABLE"); t.cellSpacing = 0; t.cellPadding = 0; t.border = 0; t.unselectable = "on";
var r = t.insertRow(0);
if(row >= allNodes.length)
pRowTable = this.pWnd.appendChild(t);
else
pRowTable = this.pWnd.insertBefore(t, allNodes[row]);
}
else
{
pRowTable = allNodes[row];
if(pRowTable.clientWidth + pToolbar.pWnd.clientWidth > this.pMainObj.arConfig["width"])
return this.AddToolbar(pToolbar, row+1, col, bAddRow);
}
if(col>pRowTable.rows[0].cells.length)
col = pRowTable.rows[0].cells.length;
pColTable = pRowTable.rows[0].insertCell(col);
rowIcons = pToolbar.pIconsTable.rows[0];
rowIcons.cells[0].style.display = GetDisplStr(1);
rowIcons.cells[rowIcons.cells.length-1].style.display = GetDisplStr(1);
}
pToolbar.row = row;
pToolbar.col = col;
pToolbar.pWnd.style.position = "relative";
pToolbar.pWnd.style.zIndex = "1";
pToolbar.pWnd.style.left = null;
pToolbar.pWnd.style.top = null;
pToolbar.pTitleRow.style.display = "none";
//alert(pToolbar.pWnd.outerHTML);
//return;
pToolbar.pWnd = pColTable.appendChild(pToolbar.pWnd);
pToolbar.pToolbarSet = this;
pToolbar.parentCell = pColTable;
this.__ReCalc();
}
/*
������ ������ pToolbar �� ����������:
������ ��� �� ������ ����� ����������, ���� ������ ���������� �����, ������ � ��.
������� BXToolbar.pToolbarSet
*/
BXToolbarSet.prototype.DelToolbar = function (pToolbar)
{
pToolbar.parentCell.removeChild(pToolbar.pWnd);
pToolbar.pToolbarSet = null;
this.__ReCalc();
}
BXToolbarSet.prototype.__ReCalc = function ()
{
var allNodes;
var i, j, pToolbar;
if(this.bVertical)
{
var cols = this.pWnd.rows[0].cells;
for(i=cols.length-1; i>=0; i--)
{
allNodes = cols[i].childNodes[0].rows;
for(j=allNodes.length-1; j>=0; j--)
if(allNodes[j].cells[0].childNodes.length<=0)
cols[i].childNodes[0].deleteRow(j);
if(cols[i].childNodes[0].rows.length<=0)
this.pWnd.rows[0].deleteCell(i);
}
for(i=0; i<cols.length; i++)
{
allNodes = cols[i].childNodes[0].rows;
for(j=0; j<allNodes.length; j++)
{
pToolbar = allNodes[j].cells[0].childNodes[0].pObj;
pToolbar.row = j;
pToolbar.col = i;
}
}
}
else
{
allNodes = this.pWnd.childNodes;
for(i=allNodes.length-1; i>=0; i--) // ������������ ����� (������)
{
var tbl = allNodes[i];
for(j=tbl.rows[0].cells.length-1; j>=0; j--)
if(tbl.rows[0].cells[j].childNodes.length<=0)
tbl.rows[0].deleteCell(j);
//���� � ������ ��� �����, ������ �� ������
if(tbl.rows[0].cells.length<=0)
this.pWnd.removeChild(tbl);
}
for(i=0; i<allNodes.length; i++)
for(j=0; j<allNodes[i].rows[0].cells.length; j++)
{
pToolbar = allNodes[i].rows[0].cells[j].childNodes[0].pObj;
pToolbar.row = i;
pToolbar.col = j;
}
}
}
}
BXToolbar.prototype.fun = function(e)
{
// var a=xc("s");
return;
if(window.event)
e = window.event;
rpos = GetRealPos(this);
if(Math.abs(e.clientX - rpos["left"])<3)
this.style.cursor = 'E-resize';
else if(Math.abs(e.clientX - rpos["right"])<3)
this.style.cursor = 'E-resize';
else if(Math.abs(e.clientY - rpos["top"])<3)
this.style.cursor = 'N-resize';
else if(Math.abs(e.clientY - rpos["bottom"])<3)
this.style.cursor = 'N-resize';
else
this.style.cursor = 'default';
if(this.drag && this.style.cursor == 'n-resize')
{
//alert(e.clientY - rpos["top"]);
this.style.height = e.clientY - rpos["top"]+3;
//alert(this.innerHTML);
}
}
/////////////////////////////////////////////////////////////////////////////////////
// ����� BXToolbar - ������
// pWnd - �������� �� TABLE �������
// bDragging - �������� �����������
// bDocked - �������� - � ���� (false) ��� ���������� (true)
// pTitleRow - �������� �� ������ <tr> � ������� ������� ��������� �������
// pIconsTable - �������� �� ������ <table> � ������ ������� ������ ������ �������
// pToolbarSet - �������� �� ����� BXToolbarSet, � �������� �������� ������
// bVertical - ���������� ��� ������������ ������
// parentCell - �������� �� ��������� ������ ����� �� ����������
// row - ����� ������ � ����������
// col - ����� ������ � ����������
/////////////////////////////////////////////////////////////////////////////////////
function BXToolbar(pMainObj, title, dx, dy)
{
this.pMainObj = pMainObj;
this.className = 'BXToolbar';
this.id = Math.random();
this.bVertical = false;
this.title = title;
this.arButtons = Array();
var obj = this;
var tableToolbar = pMainObj.pDocument.createElement("TABLE");
tableToolbar.unselectable = "on";
tableToolbar.pObj = this;
tableToolbar.ondragstart = function (e){return false;};
//tableToolbar.onmousedown = function (e){return false;};
tableToolbar.cellSpacing = 0;
tableToolbar.cellPadding = 0;
//!!tableToolbar.className = "bxedtoolbar";
tableToolbar.style.width = (dx != null ? dx : "0%");
tableToolbar.style.height = (dy != null ? dy : "20px");
var rowTitle = tableToolbar.insertRow(0);
var cellTitle = rowTitle.insertCell(0);
cellTitle.noWrap = "nowrap";
cellTitle.className = "bxedtoolbartitle";
cellTitle.unselectable = "on";
cellTitle.style.cursor = "move";
cellTitle.innerHTML = '<table cellpadding=0 cellspacing=0 border=0 width="100%" class="bxedtoolbartitletext"><tr><td width="99%" nowrap>'+title+'</td><td width="0%"> </td><td width="1%">x</td></table>';
cellTitle.onmousedown = function(e){obj.MouseDown(e); return false;};
this.pTitleRow = rowTitle;
var row2 = tableToolbar.insertRow(1);
var cellrow2 = row2.insertCell(0);
cellrow2.className = "bxedtoolbar";
cellrow2.unselectable = "on";
var tableIcons = pMainObj.CreateElement("TABLE");
tableIcons.pObj = this;
tableIcons.cellSpacing = 0;
tableIcons.cellPadding = 0;
tableIcons.className = "bxedtoolbaricons";
tableIcons.style.width = "100%";
tableIcons.style.height = (dy != null ? dy : "22px");
tableIcons.unselectable = "on";
var rowIcons = tableIcons.insertRow(0);
//rowIcons.style.backgroundImage = "url(/icons/toolbarbg.gif)";
var cellIcons = rowIcons.insertCell(0);
cellIcons.style.width = "0%";
cellIcons.style.cursor = "move";
cellIcons.appendChild(pMainObj.CreateElement("IMG", {"src": "/bitrix/images/fileman/htmledit2/toolbarleft.gif", "title": title, "alt": title}));
cellIcons.unselectable = "on";
cellIcons.onmousedown = function(e){obj.MouseDown(e); return false;};
cellIcons = rowIcons.insertCell(-1);
cellIcons.unselectable = "on";
cellIcons.style.width = "100%";
//cellIcons.style.backgroundImage = "url(/icons/toolbarbg.gif)";
cellIcons.innerHTML = ' ';
cellIcons = rowIcons.insertCell(-1);
cellIcons.unselectable = "on";
cellIcons.style.width = "0%";
cellIcons.appendChild(pMainObj.CreateElement("IMG", {"src": "/bitrix/images/fileman/htmledit2/toolbarright.gif", "title": title, "alt": title}));
cellIcons.onmousedown = function(e){obj.MouseDown(e); return false;};
//this.SetDirection(this.bVertical);
this.pIconsTable = cellrow2.appendChild(tableIcons);
this.pWnd = this.pMainObj.pWnd.appendChild(tableToolbar);
//pBXEventDispatcher.AddHandler('mousedown', function(e){obj.MouseDown(e);});
pBXEventDispatcher.AddHandler('mouseup', function(e){obj.MouseUp(e);});
pBXEventDispatcher.AddHandler('mousemove', function(e){obj.MouseMove(e);});
/*
f = function (e)
{
if(window.event)
e = window.event;
if(this.style.cursor == 'n-resize')
this.drag = true;
}
this.pMainObj.AddEventHandler("mousedown", f);
f = function (e)
{
if(window.event)
e = window.event;
if(this.style.cursor == 'n-resize')
this.drag = false;
}
this.pMainObj.AddEventHandler("mouseup", f);
*/
//this.pMainObj.TranslateEvent(this.pTable);
///////////////////////////////////////////////////
// �����
///////////////////////////////////////////////////
BXToolbar.prototype.SetDirection = function(bVertical)
{
if(this.bVertical == bVertical)
return;
/*
BXTButton.prototype.onToolbarChangeDirection = function (bVertical)
{
if(this.id=='separator')
{
if(bVertical)
{
this.pWnd.style.width = '22px';
this.pWnd.style.height = '2px';
}
else
{
this.pWnd.style.width = '2px';
this.pWnd.style.height = '22px';
}
}
}
*/
var obj = this;
this.bVertical = bVertical;
var newr, i, buttons, ar = Array();
if(bVertical)
{
buttons = this.pIconsTable.rows[0].cells;
i=0;
while(buttons.length>3)
ar[i++] = this.pIconsTable.rows[0].removeChild(buttons[1]);
this.pIconsTable.deleteRow(0);
var ct = this.pIconsTable.insertRow(0).insertCell(0);
ct.appendChild(pMainObj.CreateElement("IMG", {"src": "/bitrix/images/fileman/htmledit2/toolbartop.gif", "title": title, "alt": title}));
ct.style.width = "0%";
ct.onmousedown = function(e){obj.MouseDown(e); return false;};
ct.style.height = "0%";
ct.style.cursor = "move";
for(i=0; i<ar.length; i++)
{
var ra = this.pIconsTable.insertRow(i+1);
ct = ra.appendChild(ar[i]);
ct.style.backgroundImage = "url(/bitrix/images/fileman/htmledit2/toolbarbg_vert.gif)";
if(ct.pObj.onToolbarChangeDirection)
ct.pObj.onToolbarChangeDirection(bVertical);
}
ct = this.pIconsTable.insertRow(-1).insertCell(0).appendChild(pMainObj.CreateElement("IMG", {"src": "/bitrix/images/fileman/htmledit2/toolbarbottom.gif", "title": title, "alt": title}));
}
else
{
buttons = this.pIconsTable.rows;
for(i=1; i<buttons.length-1; i++)
ar[i-1] = buttons[i].removeChild(buttons[i].cells[0]);
while(this.pIconsTable.rows.length>0)
this.pIconsTable.deleteRow(0);
var r = this.pIconsTable.insertRow(0)
var ct2 = r.insertCell(0);
ct2.appendChild(pMainObj.CreateElement("IMG", {"src": "/bitrix/images/fileman/htmledit2/toolbarleft.gif", "title": title, "alt": title}));
ct2.style.width = "0%";
ct2.style.height = "0%";
ct2.style.cursor = "move";
ct2.onmousedown = function(e){obj.MouseDown(e); return false;};
for(i=0; i<ar.length; i++)
{
ct2 = r.appendChild(ar[i]);
ct2.style.width = "0%";
ct2.style.backgroundImage = "url(/bitrix/images/fileman/htmledit2/toolbarbg.gif)";
if(ct2.pObj.onToolbarChangeDirection)
ct2.pObj.onToolbarChangeDirection(bVertical);
}
var ln = r.cells.length;
ct2 = r.insertCell(ln)
ct2.innerHTML = ' ';
ct2.style.width = "100%";
r.insertCell(-1).appendChild(pMainObj.CreateElement("IMG", {"src": "/bitrix/images/fileman/htmledit2/toolbarright.gif", "title": title, "alt": title}));
}
}
/*
�������� ������ � ������
*/
BXToolbar.prototype.AddButton = function (pButton, num)
{
this.arButtons[this.arButtons.length] = pButton;
var rowIcons = this.pIconsTable.rows[0];
var but_count = rowIcons.cells.length - 3;
if(!num || num>but_count)
num = but_count;
var cellIcon = rowIcons.insertCell(num + 1);
cellIcon.unselectable = "on";
//cellIcon.style.backgroundImage = "url(/icons/toolbarbg.gif)";
cellIcon.style.width = "0%";
//pButton.Show(cellIcon);
cellIcon.appendChild(pButton.pWnd);
cellIcon.pObj = pButton; // opera bug!
}
BXToolbar.prototype.OnClick = function (px, py)
{
}
}
/*
��� ������� �� ���� ������ ��:
�������� - ������� �� � ��� ������ ����� �������,
���� ��, �� ������� drag
*/
BXToolbar.prototype.MouseDown = function (e)
{
if(window.event)
e = window.event;
if(e.pageX || e.pageY)
{
e.realX = e.pageX;
e.realY = e.pageY;
}
else if(e.clientX || e.clientY)
{
e.realX = e.clientX + document.body.scrollLeft;
e.realY = e.clientY + document.body.scrollTop;
}
var position = GetRealPos(this.pWnd);
this.pMainObj.bDragging = true;
this.bDragging = true;
this.pMainObj.iLeftDragOffset = e.realX - position["left"];
this.pMainObj.iTopDragOffset = e.realY - position["top"];
pBXEventDispatcher.SetCursor("move");
this.pWnd.oldBorder = this.pWnd.style.border;
this.pWnd.style.zIndex = "1000";
}
/*
��� ���������� ������ ��:
���� ��� ������������ ����� �������, �� ��������� ���
*/
BXToolbar.prototype.MouseUp = function (e)
{
if(this.pMainObj.bDragging && this.bDragging)
{
this.pMainObj.bDragging = false;
this.bDragging = false;
this.pWnd.style.zIndex = "1";
this.pWnd.style.border = this.pWnd.oldBorder;
pBXEventDispatcher.SetCursor("auto");
}
}
/*
���������� ������ �� ����������
������ ��� �� ���������� ��� ����� BXToolbarSet.DelToolbar
������ ��� position = "absolute";
���� ����� � ��������� ��������� �������
*/
BXToolbar.prototype.UnDock = function ()
{
if(this.pToolbarSet)
this.pToolbarSet.DelToolbar(this);
this.pWnd.style.zIndex = "1000";
this.pWnd.style.position = "absolute";
this.pMainObj.pWnd.appendChild(this.pWnd);
var rowIcons = this.pIconsTable.rows[0];
rowIcons.cells[0].style.display = "none";
//rowIcons.cells[rowIcons.cells.length-2].style.display = "none";
rowIcons.cells[rowIcons.cells.length-1].style.display = "none";
this.pTitleRow.style.display = GetDisplStr(1);
this.SetDirection(false);
}
/*
��� �������� ��
���� �������� �����������, �� �������� ��� ����� BXToolToolbarSet.HitTest �
����� ��������� �������� � � ����������� �� ����� ���� ���������� � ����������,
���� ��������, ���� ��������� ������ ��� � ���� ��������� "��������"
*/
BXToolbar.prototype.MouseMove = function (e)
{
// window.status = e.realY;
if(this.pMainObj.bDragging && this.bDragging)
{
//var position = GetRealPos(this.pWnd);
// ��������: �������� �� � ���������
var bDocked = false;
var actToolbarSet = false;
var arToolbarSet = this.pMainObj.GetToolbarSet();
for(var i=0; i<arToolbarSet.length; i++)
{
var arPos = arToolbarSet[i].HitTest(e.realX, e.realY)
if(arPos)
{
bDocked = true;
actToolbarSet = arToolbarSet[i];
break;
}
}
if(this.bDocked && !bDocked) // ������ ��� �� ����������
{
this.UnDock();
this.pWnd.style.left = e.realX - this.pMainObj.iLeftDragOffset;
this.pWnd.style.top = e.realY - this.pMainObj.iTopDragOffset;
}
else if(!this.bDocked && bDocked && actToolbarSet) // ������ �������� � ���������
{
if(this.pToolbarSet)
this.pToolbarSet.DelToolbar(this);
actToolbarSet.AddToolbar(this, arPos['row'], arPos['col'], arPos['addrow']);
}
else if(!this.bDocked && !bDocked)
{
this.pWnd.style.left = e.realX - this.pMainObj.iLeftDragOffset;
this.pWnd.style.top = e.realY - this.pMainObj.iTopDragOffset;
}
else if((arPos["addrow"] /*&& this.row!=0 && arPos['row']!=0*/) || this.row!=arPos['row'] || this.col!=arPos['col'])
{
//window.status = this.row + '!=' + arPos['row'] + '||' + this.col + '!=' + arPos['col'];
if(this.pToolbarSet)
this.pToolbarSet.DelToolbar(this);
actToolbarSet.AddToolbar(this, arPos['row'], arPos['col'], arPos['addrow']);
//window.status = Math.random() + '; ' + this.row + '!=' + arPos['row'] + ' x ' + this.col + '!=' + arPos['col'];
}
/*
else
window.status = Math.random();
*/
this.bDocked = bDocked;
// window.status = 'mousemove: ' + e.realX + 'x' + e.realY;
}
//alert(this.className);
}
function BXTaskbarSet(pColumn, pMainObj, iNum)
{
var obj = this;
var bVertical = (iNum == 1 || iNum==2);
this.__Size = ["100%", "100%"];
this.className = 'BXTaskbarSet';
pColumn.unselectable = "on";
this.pParentWnd = pColumn;
this.pMainObj = pMainObj;
this.bVertical = bVertical;
this.pParentWnd.className = 'bxedtaskbarset';
this.iNum = iNum;
if(bVertical)
pColumn.style.verticalAlign = "top";
pColumn.innerHTML = '<img src="/bitrix/images/1.gif" width="1" height="1" border="0">';
pColumn.style.paddingBottom = "1px";
this.pWnd = pColumn.appendChild(this.pMainObj.CreateElement("TABLE"));
this.pWnd.unselectable = "on";
this.pWnd.cellSpacing = 0;
this.pWnd.cellPadding = 0;
this.pWnd.border = 0;
//this.pWnd.style.border = "1px #DF0000 solid";
this.pWnd.style.width = this.__Size[0];
this.pWnd.style.height = this.__Size[1];
var r = this.pWnd.insertRow(-1);
switch(this.iNum)
{
case 0: //������
this.pMainCell = r.insertCell(-1);
this.pMoveColumn = this.pWnd.insertRow(-1).insertCell(-1);
break;
case 1: //����
this.pMainCell = r.insertCell(-1);
this.pMoveColumn = r.insertCell(-1);
break;
case 2: //�����
this.pMoveColumn = r.insertCell(-1);
this.pMainCell = r.insertCell(-1);
break;
case 3: //������
this.pMoveColumn = r.insertCell(-1);
this.pMainCell = this.pWnd.insertRow(-1).insertCell(-1);
break;
}
this.pTaskbarsTable = this.pMainCell.appendChild(this.pMainObj.CreateElement("TABLE", {"unselectable": "on", "cellPadding": "0", "cellSpacing": "0", "border": "0"}, {"height": "100%", "width": "100%"}));
this.pDataColumn = this.pTaskbarsTable.insertRow(-1).insertCell(-1);
this.pBottomColumn = this.pTaskbarsTable.insertRow(-1).insertCell(-1);
this.arTaskbars = Array();
this.pMainCell.style.height = "100%";
this.pMainCell.style.width = "100%";
this.pDataColumn.style.height = "100%";
this.pDataColumn.style.width = "100%";
switch(this.iNum)
{
case 0: //������
case 3: //������
this.pMoveColumn.style.cursor = "N-resize";
this.pMoveColumn.style.height = "6px";
this.pMoveImg = this.pMoveColumn.appendChild(this.pMainObj.CreateElement("IMG", {"border": "0", "width": "48", "height": "6"}));
break;
case 1: //����
case 2: //�����
this.pMoveColumn.style.cursor = "W-resize";
this.pMoveColumn.style.width = "6px";
this.pMoveImg = this.pMoveColumn.appendChild(this.pMainObj.CreateElement("IMG", {"border": "0", "width": "6", "height": "48"}));
break;
}
this.pMoveImg.style.cursor = "default";
this.pMoveColumn.align = 'center';
this.pMoveColumn.vAlign = 'middle';
//this.pBottomColumn.style.display = 'none';
//this.pBottomColumn.style.paddingBottom = "1px";
this.pMoveColumn.style.display = "none";
this.pMoveColumn.style.width = "0%";
this.pMoveColumn.style.height = "0%";
//this.pMoveColumn.innerHTML='<img src="/bitrix/images/1.gif" alt="" border=0 width="6" height="4">';
//this.pMoveColumn.style.border = "1px solid #333333";
addCustomElementEvent(this.pMoveImg, "mousedown", function (){this.ShowToggle();}, this);
this.pMoveColumn.ondragstart = function (e){return false;};
this.pMoveColumn.onmousedown = function(e){obj.MouseDown(e); return false;};
pBXEventDispatcher.AddHandler('mouseup', function(e){obj.MouseUp(e);});
pBXEventDispatcher.AddHandler('mousemove', function(e){obj.MouseMove(e);});
this.Show();
}
BXTaskbarSet.prototype.MouseDown = function (e)
{
//this.pMoveColumn.style.border="1px dashed #000000";
if(!this.bShowing)
return;
if(window.event)
e = window.event;
if(e.pageX || e.pageY)
{
e.realX = e.pageX;
e.realY = e.pageY;
}
else if(e.clientX || e.clientY)
{
e.realX = e.clientX + document.body.scrollLeft;
e.realY = e.clientY + document.body.scrollTop;
}
var position = GetRealPos(this.pWnd);
this.pMainObj.bDragging = true;
this.bDragging = true;
switch (this.iNum)
{
case 0:
this.pMainObj.iDragOffset = position["bottom"] - e.realY - position["top"];
pBXEventDispatcher.SetCursor("N-resize");
break;
case 1:
this.pMainObj.iDragOffset = position["right"] - e.realX - position["left"] ;
pBXEventDispatcher.SetCursor("W-resize");
break;
case 2:
this.pMainObj.iDragOffset = e.realX - position["left"] + position["right"];
pBXEventDispatcher.SetCursor("W-resize");
break;
case 3:
this.pMainObj.iDragOffset = e.realY - position["top"] + position["bottom"];
pBXEventDispatcher.SetCursor("N-resize");
break;
}
}
BXTaskbarSet.prototype.MouseMove = function (e)
{
if(this.pMainObj.bDragging && this.bDragging)
{
var v;
switch (this.iNum)
{
case 0:
v = this.pMainObj.iDragOffset + e.realY;
this.pWnd.style.height = (v<=0? 0 : v);
break;
case 1:
v = this.pMainObj.iDragOffset + e.realX;
this.pWnd.style.width = (v<=0? 0 : v);
//this.pMoveColumn.style.width = "1000px";
break;
case 2:
v = this.pMainObj.iDragOffset - e.realX;
this.pWnd.style.width = (v<=0? 0 : v);
break;
case 3:
v = this.pMainObj.iDragOffset - e.realY;
this.pWnd.style.height = (v<=0? 0 : v);
break;
}
}
}
BXTaskbarSet.prototype.MouseUp = function (e)
{
if(this.pMainObj.bDragging && this.bDragging)
{
//this.pMoveColumn.style.border="0px solid #000000"
this.pMainObj.bDragging = false;
this.bDragging = false;
pBXEventDispatcher.SetCursor("auto");
}
}
BXTaskbarSet.prototype.Show = function ()
{
this.pDataColumn.style.display = GetDisplStr(1);
this.pBottomColumn.style.display = GetDisplStr(1);
this.pMoveImg.alt = this.pMoveImg.title = BX_MESS.Hide;
switch(this.iNum)
{
case 0:
this.pMoveImg.src="/bitrix/images/fileman/htmledit2/splitterh-r.gif";
this.pMoveColumn.style.backgroundImage = "url(/bitrix/images/fileman/htmledit2/splitterhbg-r.gif)";
break;
case 1:
this.pMoveImg.src="/bitrix/images/fileman/htmledit2/splitterv-r.gif";
this.pMoveColumn.style.backgroundImage = "url(/bitrix/images/fileman/htmledit2/splittervbg-r.gif)";
break;
case 2:
this.pMoveImg.src="/bitrix/images/fileman/htmledit2/splitterv.gif";
this.pMoveColumn.style.backgroundImage = "url(/bitrix/images/fileman/htmledit2/splittervbg.gif)";
break;
case 3:
this.pMoveImg.src="/bitrix/images/fileman/htmledit2/splitterh.gif";
this.pMoveColumn.style.backgroundImage = "url(/bitrix/images/fileman/htmledit2/splitterhbg.gif)";
break;
}
switch(this.iNum)
{
case 0:
case 3:
this.pWnd.style.height = this.__Size[1];
break;
case 1:
case 2:
this.pWnd.style.width = this.__Size[0];
break;
}
this.bShowing = true;
}
BXTaskbarSet.prototype.Hide = function ()
{
this.pDataColumn.style.display = GetDisplStr(0);
this.pBottomColumn.style.display = GetDisplStr(0);
this.pMoveImg.alt = this.pMoveImg.title = BX_MESS.Restore;
switch(this.iNum)
{
case 0:
this.pMoveImg.src="/bitrix/images/fileman/htmledit2/splitterh.gif";
this.pMoveColumn.style.backgroundImage = "url(/bitrix/images/fileman/htmledit2/splitterhbg.gif)";
break;
case 1:
this.pMoveImg.src="/bitrix/images/fileman/htmledit2/splitterv.gif";
this.pMoveColumn.style.backgroundImage = "url(/bitrix/images/fileman/htmledit2/splittervbg.gif)";
break;
case 2:
this.pMoveImg.src="/bitrix/images/fileman/htmledit2/splitterv-r.gif";
this.pMoveColumn.style.backgroundImage = "url(/bitrix/images/fileman/htmledit2/splittervbg-r.gif)";
break;
case 3:
this.pMoveImg.src="/bitrix/images/fileman/htmledit2/splitterh-r.gif";
this.pMoveColumn.style.backgroundImage = "url(/bitrix/images/fileman/htmledit2/splitterhbg-r.gif)";
break;
}
switch(this.iNum)
{
case 0:
case 3:
this.__Size[1] = this.pWnd.offsetHeight;
this.pWnd.style.height = "0%";
break;
case 1:
case 2:
this.__Size[0] = this.pWnd.offsetWidth;
this.pWnd.style.width = "0%";
break;
}
this.bShowing = false;
}
BXTaskbarSet.prototype.ShowToggle = function()
{
if(this.bShowing)
this.Hide();
else
this.Show();
}
BXTaskbarSet.prototype.OnResize = function (e)
{
}
BXTaskbarSet.prototype.AddTaskbar = function (pTaskbar)
{
pTaskbar.bDocked = true;
pTaskbar.pWnd.style.position = "relative";
pTaskbar.pWnd.style.zIndex = "0";
pTaskbar.pWnd.style.left = null;
pTaskbar.pWnd.style.top = null;
//pTaskbar.pWnd.style.height = null;
//pTaskbar.pWnd.style.width = null;
pTaskbar.oldWidth = pTaskbar.pWnd.style.width;
pTaskbar.oldHeight = pTaskbar.pWnd.style.height;
pTaskbar.pTaskbarSet = this;
pTaskbar.parentCell = this.pWnd;
this.arTaskbars[this.arTaskbars.length] = pTaskbar;
this.DrawTabs();
pTaskbar.SetActive();
if(this.bVertical)
{
//pTaskbar.pWnd.style.width = "100%";
pTaskbar.pWnd.style.height = "100%";
}
else
{
if(this.arTaskbars.length==1)
this.pWnd.style.height = "150px";
//else
pTaskbar.pWnd.style.height = "100%";
pTaskbar.pWnd.style.width = "100%";
}
this.pDataColumn.appendChild(pTaskbar.pWnd);
}
BXTaskbarSet.prototype.DelTaskbar = function (pTaskbar)
{
pTaskbar.pWnd.parentNode.removeChild(pTaskbar.pWnd);
pTaskbar.pTaskbarSet = null;
for(var i=0; i<this.arTaskbars.length; i++)
{
if(pTaskbar.id==this.arTaskbars[i].id)
{
var arNewTemp = Array();
for(var j=0; j<this.arTaskbars.length; j++)
if(i!=j)
arNewTemp[arNewTemp.length] = this.arTaskbars[j];
this.arTaskbars = arNewTemp;
this.DrawTabs();
if(arNewTemp.length>0)
this.ActivateTaskbar(arNewTemp[0].id);
break;
}
}
}
BXTaskbarSet.prototype.HitTest = function (px, py)
{
var delta = 5;
var position = GetRealPos((/*this.bVertical ? this.pParent : */this.pWnd));
if(
position["left"] - delta < px && px < position["right"] + delta
&& position["top"] - delta < py && py < position ["bottom"] + delta
)
{
return true;
}
if(this.iNum==0)
{
//window.status = position["left"]+' - '+delta+' < '+px+' && '+px+' < '+position["right"]+' + '+delta+' && '+position["top"]+' - '+delta+' < '+py+' && '+py+' < '+position["bottom"]+' + '+delta+';';
}
return false;
}
BXTaskbarSet.prototype.DrawTabs = function ()
{
if(this.arTaskbars.length<=0)
{
this.pMoveColumn.style.display = "none";
this.pWnd.style.width = "0%";
this.pWnd.style.height = "0%";
}
else
this.pMoveColumn.style.display = (BXIsIE()?"block":"table-cell");
if(this.arTaskbars.length<=1)
{
this.pBottomColumn.style.display = 'none';
}
else
{
this.pBottomColumn.style.display = (BXIsIE()?"block":"table-cell");
//var w = this.pWnd.clientWidth/this.arTaskbars.length;
while(this.pBottomColumn.childNodes.length>0)
this.pBottomColumn.removeChild(this.pBottomColumn.childNodes[0]);
var pIconTable = this.pMainObj.pDocument.createElement("TABLE");
pIconTable.unselectable = "on";
pIconTable.cellSpacing = 0;
pIconTable.cellPadding = 0;
pIconTable.width = "100%";
pIconTable.border = 0;
var r = pIconTable.insertRow(0), c;
//var obj;
for(var k=0; k<this.arTaskbars.length; k++)
{
c = r.insertCell(-1);
//c.className = 'bxedtaskbaricontable';
c.style.width = "0%";
c.tid = this.arTaskbars[k].id;
c.innerHTML = '<span unselectable="on" style="overflow:hidden; cursor:default; ">'+this.arTaskbars[k].title+'</span>';
c.pObj = this.arTaskbars[k];
c.onclick = function (e){this.pObj.SetActive();};
}
c = r.insertCell(-1);
c.width = "100%";
c.unselectable = "on";
c.className = 'bxedtaskbaricontable';
c.innerHTML = ' ';
this.pBottomColumn.appendChild(pIconTable);
}
}
BXTaskbarSet.prototype.ActivateTaskbar = function (id)
{
while(this.pDataColumn.childNodes.length>0)
this.pDataColumn.removeChild(this.pDataColumn.childNodes[0]);
for(var i=0; i<this.arTaskbars.length; i++)
{
if(this.arTaskbars[i].id==id)
{
this.pDataColumn.appendChild(this.arTaskbars[i].pWnd);
break;
}
}
if(this.pBottomColumn.childNodes[0])
{
var tsb_cells = this.pBottomColumn.childNodes[0].rows[0].cells;
for(i=0; i<tsb_cells.length-1; i++)
{
if(tsb_cells[i].tid!=id && tsb_cells[i].className!='bxedtaskbaricontable')
tsb_cells[i].className = 'bxedtaskbaricontable';
else if(tsb_cells[i].tid==id && tsb_cells[i].className!='bxedtaskbaricontableact')
tsb_cells[i].className = 'bxedtaskbaricontableact';
}
}
}
/////////////////////////////////////////////////////////////
function BXTaskbar()
{
}
BXTaskbar.prototype.Create = function(pMainObj, title, dx, dy)
{
this.pMainObj = pMainObj;
this.className = 'BXTaskbar';
this.id = Math.random();
this.bVertical = false;
this.title = title;
var obj = this;
var tableTaskbar = pMainObj.pDocument.createElement("TABLE");
tableTaskbar.unselectable = "on";
tableTaskbar.pObj = this;
tableTaskbar.ondragstart = function (e){return false;};
tableTaskbar.cellSpacing = 0;
tableTaskbar.cellPadding = 0;
//!!tableToolbar.className = "bxedtoolbar";
tableTaskbar.style.width = (dx != null ? dx : "100%");
tableTaskbar.style.height = (dy != null ? dy : "200px");
tableTaskbar.style.position = "absolute";
tableTaskbar.style.zIndex = "1000";
var rowTitle = tableTaskbar.insertRow(0);
var cellTitle = rowTitle.insertCell(0);
cellTitle.noWrap = "nowrap";
cellTitle.className = "bxedtaskbartitle";
cellTitle.unselectable = "on";
cellTitle.style.cursor = "move";
cellTitle.style.height = "0%";
//cellTitle.style.width = "200px";
//cellTitle.innerHTML = '<table cellpadding=0 cellspacing=0 border=0 width="100%" class="bxedtaskbartitletext"><tr><td width="99%" id = "text" nowrap unselectable="on">'+title+'</td><td width="0%" id="sep"> </td><td width="1%" id="button"><img src="/bitrix/images/fileman/htmledit2/taskbarx.gif" width="17" height="17"/></td></table>';
var hdrow = cellTitle.appendChild(pMainObj.CreateElement("TABLE", {"cellPadding":"0", "cellSpacing":"0", "border":"0", "width":"100%", "className":"bxedtaskbartitletext"})).insertRow(-1);
var c = hdrow.insertCell(-1);
c.style.width = "180px";
c.id = "text";
c.noWrap=true;
c.unselectable="on";
c.innerHTML = title;
c = hdrow.insertCell(-1);
c.style.width = "0%";
c.id = "sep";
c.innerHTML = " ";
c = hdrow.insertCell(-1);
c.style.width = "1%";
c.id = "button";
c.innerHTML = '<img src="/bitrix/images/fileman/htmledit2/taskbarx.gif" width="17" height="17"/>';
addCustomElementEvent(c, "mousedown", function (){this.Close();}, this);
cellTitle.onmousedown = function(e){obj.MouseDown(e); return false;};
this.pTitleRow = rowTitle;
var row2 = tableTaskbar.insertRow(1);
var cellrow2 = row2.insertCell(0);
cellrow2.className = "bxedtaskbar";
cellrow2.unselectable = "on";
cellrow2.style.height = "100%";
this.pDataCell = cellrow2;
this.pWnd = this.pMainObj.pWnd.appendChild(tableTaskbar);
pBXEventDispatcher.AddHandler('mouseup', function(e){obj.MouseUp(e);});
pBXEventDispatcher.AddHandler('mousemove', function(e){obj.MouseMove(e);});
this.pDataCell.className = "bxedtaskbarinner";
//this.pDataCell.innerHTML = "XX";
if(this.OnTaskbarCreate)
this.OnTaskbarCreate();
}
BXTaskbar.prototype.SetActive = function ()
{
if(this.pTaskbarSet)
{
this.pTaskbarSet.ActivateTaskbar(this.id);
}
}
BXTaskbar.prototype.Close = function()
{
if(this.pTaskbarSet)
this.pTaskbarSet.DelTaskbar(this);
}
BXTaskbar.prototype.MouseDown = function (e)
{
return false;
if(window.event)
e = window.event;
if(e.pageX || e.pageY)
{
e.realX = e.pageX;
e.realY = e.pageY;
}
else if(e.clientX || e.clientY)
{
e.realX = e.clientX + document.body.scrollLeft;
e.realY = e.clientY + document.body.scrollTop;
}
var position = GetRealPos(this.pWnd);
this.pMainObj.bDragging = true;
this.bDragging = true;
this.pMainObj.iLeftDragOffset = e.realX - position["left"];
this.pMainObj.iTopDragOffset = e.realY - position["top"];
pBXEventDispatcher.SetCursor("move");
this.pWnd.oldBorder = this.pWnd.style.border;
this.pWnd.style.border = "1px solid #000000";
this.pWnd.style.zIndex = 1000;
//alert(this.pWnd.style.zIndex);
if(!this.bDocked)
{
this.pWnd.parentNode.removeChild(this.pWnd);
this.pMainObj.pWnd.appendChild(this.pWnd);
}
}
BXTaskbar.prototype.MouseMove = function (e)
{
if(this.pMainObj.bDragging && this.bDragging)
{
var bDocked = false;
var actTaskbarSet = false;
var arTaskbarSet = this.pMainObj.GetTaskbarSet();
for(var i=0; i<arTaskbarSet.length; i++)
{
if(arTaskbarSet[i].HitTest(e.realX, e.realY))
{
bDocked = true;
actTaskbarSet = arTaskbarSet[i];
break;
}
}
if(this.bDocked && !bDocked) // ������ ��� �� ����������
{
this.UnDock();
this.pWnd.style.left = e.realX - this.pMainObj.iLeftDragOffset;
this.pWnd.style.top = e.realY - this.pMainObj.iTopDragOffset;
}
else if(!this.bDocked && bDocked && actTaskbarSet) // ������ �������� � ���������
{
if(this.pTaskbarSet)
this.pTaskbarSet.DelTaskbar(this);
actTaskbarSet.AddTaskbar(this);
}
else if(!this.bDocked && !bDocked)
{
this.pWnd.style.left = e.realX - this.pMainObj.iLeftDragOffset;
this.pWnd.style.top = e.realY - this.pMainObj.iTopDragOffset;
}
this.bDocked = bDocked;
}
}
BXTaskbar.prototype.MouseUp = function (e)
{
if(this.pMainObj.bDragging && this.bDragging)
{
this.pMainObj.bDragging = false;
this.bDragging = false;
this.pWnd.style.zIndex = "1";
//alert(this.pWnd.style.zIndex);
this.pWnd.style.border = this.pWnd.oldBorder;
pBXEventDispatcher.SetCursor("auto");
}
}
BXTaskbar.prototype.SetContent = function (sContent)
{
this.pDataCell.innerHTML = sContent;
}
BXTaskbar.prototype.UnDock = function ()
{
if(this.pTaskbarSet)
this.pTaskbarSet.DelTaskbar(this);
this.pWnd.style.zIndex = "1000";
this.pWnd.style.position = "absolute";
this.pWnd.style.width = this.oldWidth;
this.pWnd.style.height = this.oldHeight;
this.pMainObj.pWnd.appendChild(this.pWnd);
}
BXTaskbar.prototype.CreateScrollableArea = function (pParent)
{
var res = this.pMainObj.pDocument.createElement("DIV");
res.style.position = "relative";
res.style.left = "0px";
res.style.right = "0px";
res.style.width = "100%";
res.style.height = "100%";
pParent = pParent.appendChild(res);
res = this.pMainObj.pDocument.createElement("DIV");
res.style.position = "absolute";
res.style.left = "0px";
res.style.right = "0px";
res.style.width = "100%";
res.style.height = "100%";
if(!BXIsIE())
res.style.overflow = "-moz-scrollbars-vertical";
res.style.overflowY = "scroll";
res.style.overflowX = "auto";
res.style.scrollbar3dLightColor = "#C0C0C0";
res.style.scrollbarArrowColor = "#252525";
res.style.scrollbarBaseColor = "#C0C0C0";
res.style.scrollbarDarkShadowColor = "#252525";
res.style.scrollbarFaceColor = "#D4D4D4";
res.style.scrollbarHighlightColor = "#EFEFEF";
res.style.scrollbarShadowColor = "#EFEFEF";
res.style.scrollbarTrackColor = "#DFDFDF";
pParent = pParent.appendChild(res);
return pParent;
}
////////////////////////////////
// Custom taskbars
///////////////////////////////
/*** Properties taskbar ***/
function BXPropertiesTaskbar()
{
var obj = this;
BXPropertiesTaskbar.prototype.OnTaskbarCreate = function ()
{
var obj = this;
var table = this.pMainObj.pDocument.createElement("TABLE");
table.style.width = "100%";
table.style.height = "100%";
table.cellSpacing = 0;
table.cellPadding = 0;
this.pCellPath = table.insertRow(-1).insertCell(-1);
this.pCellPath.style.height = "0%";
this.pCellPath.className = "bxproptagspath";
this.pCellProps = table.insertRow(-1).insertCell(-1);
this.pCellProps.style.height = "100%";
this.pCellProps.vAlign = "top";
this.pDataCell.appendChild(table);
this.pCellProps = this.CreateScrollableArea(this.pCellProps);
this.pCellProps.className = "bxtaskbarprops";
//this.pCellProps.innerHTML = 'Property tab';
this.pMainObj.AddEventHandler("OnSelectionChange", obj.OnSelectionChange);
}
BXPropertiesTaskbar.prototype.OnSelectionChange = function (sReloadControl)
{
// obj - ��� �������
//alert('1');
//try {swsw();} catch(e){}
var oSelected = obj.pMainObj.GetSelectionObject();
var pElement = oSelected;
var pElementTemp, strPath = '';
if(sReloadControl == "always" || !obj.oOldSelected || !BXElementEqual(oSelected, obj.oOldSelected))
{
obj.oOldSelected = oSelected;
while(obj.pCellPath.childNodes.length>0)
obj.pCellPath.removeChild(obj.pCellPath.childNodes[0]);
var tPath = obj.pMainObj.pDocument.createElement("TABLE");
tPath.className = "bxproptagspathinl";
tPath.cellSpacing = 0;
tPath.cellPadding = 1;
var rPath = tPath.insertRow(-1);
var cPath, pBut;
var oRange;
var cActiveTag = null;
var fPropertyPanel = null;
var fPropertyPanelElement = null;
if(obj.pMainObj.pEditorDocument.body.createTextRange)
oRange = obj.pMainObj.pEditorDocument.body.createTextRange();
while(pElement && (pElementTemp = pElement.parentNode) != null)
{
if(pElementTemp.nodeType!=1 || !pElement.tagName)
{
pElement = pElementTemp;
continue;
}
strPath = pElement.tagName.toLowerCase();
if(pElement.getAttribute("__bxtagname"))
strPath = pElement.getAttribute("__bxtagname").toLowerCase();
if(strPath == 'tbody')
{
pElement = pElementTemp;
continue;
}
cPath = rPath.insertCell(0);
if(!fPropertyPanel && pPropertybarHandlers[strPath])
{
fPropertyPanel = pPropertybarHandlers[strPath];
fPropertyPanelElement = pElement;
cActiveTag = cPath;
}
cPath.innerHTML = '<'+strPath+'>';
cPath.style.cursor = "default";
cPath.pElement = pElement;
cPath.oRange = oRange;
cPath.pMainObj = obj.pMainObj;
cPath.onclick = function (){
if(this.oRange && this.oRange.moveToElementText)
{
this.oRange.moveToElementText(this.pElement);
this.oRange.select();
}
else
{
this.pMainObj.pEditorWindow.getSelection().selectAllChildren(this.pElement);
}
this.pMainObj.OnEvent("OnSelectionChange");
};
cPath = rPath.insertCell(0);
cPath.innerHTML = ' ';
pElement = pElementTemp;
}
var bDefault = false;
obj.pCellPath.appendChild(tPath);
if(!fPropertyPanel)
{
fPropertyPanel = pPropertybarHandlers['default'];
fPropertyPanelElement = oSelected;
bDefault = true;
}
if(cActiveTag)
{
cActiveTag.style.backgroundColor = '#E4E4E4';
cActiveTag.style.fontWeight = 'bold';
}
if(fPropertyPanelElement && fPropertyPanelElement.tagName && (!(obj.oOldPropertyPanelElement && BXElementEqual(fPropertyPanelElement, obj.oOldPropertyPanelElement)) || sReloadControl == "always"))
{
var sRealTag = fPropertyPanelElement.tagName.toLowerCase();
if(fPropertyPanelElement.getAttribute("__bxtagname"))
sRealTag = fPropertyPanelElement.getAttribute("__bxtagname").toLowerCase();
obj.oOldPropertyPanelElement = fPropertyPanelElement;
var bNew = false;
if((sReloadControl == "always") || (bDefault && obj.bDefault != bDefault) || (!bDefault && (!obj.sOldTag || obj.sOldTag != sRealTag)))
{
bNew = true;
while(obj.pCellProps.childNodes.length>0)
obj.pCellProps.removeChild(obj.pCellProps.childNodes[0]);
}
obj.sOldTag = sRealTag;
if(fPropertyPanel)
{
//alert(bNew);
fPropertyPanel(bNew, obj, fPropertyPanelElement);
}
obj.bDefault = bDefault;
}
}
return true;
}
}
BXPropertiesTaskbar.prototype = new BXTaskbar;
/*** Components taskbar ***/
function BXComponentsTaskbar()
{
var obj = this;
BXComponentsTaskbar.prototype.OnTaskbarCreate = function ()
{
var obj = this;
this.pDataCell = this.CreateScrollableArea(this.pDataCell);
var table = this.pMainObj.CreateElement("TABLE", {'cellSpacing': '0', 'cellPadding': '8', 'className': "bxtaskbarcomp"});
table.style.height = "100%";
this.pDataCell.appendChild(table);
this.pWnd.style.width = "200px"; //////init
this.pWnd.style.width = "100%"; //////init
//this.pWnd.id = 'xxxx';
this.pCellList = table.insertRow(-1).insertCell(-1);
this.pCellList.style.height = "0%";
this.pModulesList = this.pMainObj.CreateCustomElement('BXList',
{
'width': '150',
'height': '150',
'field_size': '150',
'bSetGlobalStyles': true,
'values': [],
'onChange': function (selected)
{
obj.ShowComponentList(selected["value"]);
}
}
);
this.pCellList.appendChild(this.pModulesList.pWnd);
var emptyRow = table.insertRow(-1).insertCell(-1);
emptyRow.style.height = "0%";
emptyRow.innerHTML = " ";
this.pCellComp = table.insertRow(-1).insertCell(-1);
this.pCellComp.style.height = "100%";
this.pCellComp.vAlign = "top";
//this.pCellComp = this.CreateScrollableArea(this.pCellComp);
this.pMainObj.pComponentTaskbar = this;
this.BuildList();
//table.style.width = "100%";
}
BXComponentsTaskbar.prototype.BuildList = function ()
{
var arList = [];
var arFolders = this.pMainObj.arTemplateParams["FOLDERS"];
for(var i=0; i<arFolders.length; i++)
arList.push({'value': arFolders[i]["ID"], 'name': arFolders[i]["NAME"]});
this.pModulesList.SetValues(arList);
this.pModulesList.Select(0);
this.pModulesList.FireChangeEvent();
}
BXComponentsTaskbar.prototype.ShowComponentList = function (sFolder)
{
while(this.pCellComp.childNodes.length>0)
this.pCellComp.removeChild(this.pCellComp.childNodes[0]);
var arComponents = [], arAllComponents = this.pMainObj.arTemplateParams["COMPONENTS"];
for(var i=0; i<arAllComponents.length; i++)
{
if(arAllComponents[i]["FOLDER"]==sFolder)
arComponents.push(arAllComponents[i]);
}
var r, c, im, obj = this;
this.bOpenedBlock = false;
for(i=0;i<arComponents.length; i++)
{
if(arComponents[i]["SEPARATOR"])
{
this.__OpenBlock(arComponents[i]["NAME"]);
}
else
{
if(!this.bOpenedBlock)
this.__OpenBlock('');
r = this._tableCompList.insertRow(-1);
c = r.insertCell(-1);
//alert(BXSerialize(arComponents[i]));
im = this.pMainObj.CreateElement('IMG', {'src': arComponents[i]["ICON"]});
im.ondragstart = function (e){if(window.event)window.event.cancelBubble = true;};
im.setAttribute("__bxtagname", "component");
im.setAttribute("__bxcontainer", BXSerialize({"SCRIPT_NAME": arComponents[i]["PATH"], "PARAMS": {}}));
if(BXIsIE())
im.ondragend = function (e){
this.id = Math.random();
obj.pMainObj.nLastDragNDropComponent = this.id;
obj.pMainObj.onDragDrop();
};
else
im.onmousedown = function (e){
this.id = Math.random();
obj.pMainObj.nLastDragNDropComponent = this.id;
};
c.appendChild(im);
c = r.insertCell(-1);
c.innerHTML = arComponents[i]["NAME"];
}
}
this.__CloseBlock();
for(i=0; i<this.pCellComp.childNodes.length; i++)
{
if(this.pCellComp.childNodes[i].rows)
this.pCellComp.childNodes[i].rows[0].Hide(true);
}
}
BXComponentsTaskbar.prototype.__OpenBlock = function (name)
{
this.__CloseBlock();
this._tableBlock = this.pCellComp.appendChild(this.pMainObj.CreateElement("table", {cellPadding: '0', border: 0, cellSpacing: 0, width: '100%', className: 'bxedcompblock'}));
var rowTitle = this._tableBlock.insertRow(-1);
var c = rowTitle.insertCell(-1);
c.style.width = '0%';
var im_l = c.appendChild(this.pMainObj.CreateElement("IMG", {'src': '/bitrix/images/fileman/htmledit2/tscomp-lt-o.gif', 'width': '20', height: '20'}));
c = rowTitle.insertCell(-1);
c.unselectable = "on";
c.style.width = '100%';
c.id = "title";
c.innerHTML = (name && name.length>0 ? name : BX_MESS.CompTBTitle);
c.style.backgroundImage = 'url(/bitrix/images/fileman/htmledit2/tscomp-ct-bg.gif)';
c = rowTitle.insertCell(-1);
c.style.width = '0%';
var im_r = c.appendChild(this.pMainObj.CreateElement("IMG", {'src': '/bitrix/images/fileman/htmledit2/tscomp-rt-o.gif', 'width': '5', height: '20'}));
var rowData = this._tableBlock.insertRow(-1);
c = rowData.insertCell(-1);
c.colSpan = "3";
c.style.borderLeft = "solid 1px #7A7A7A";
c.style.borderRight = "solid 1px #7A7A7A";
this._tableCompList = c.appendChild(this.pMainObj.CreateElement("TABLE", {cellPadding: '2', border: 0, cellSpacing: 0, width: '100%', 'className': 'bxcomplist'}));
var rowBottom = this._tableBlock.insertRow(-1);
c = rowBottom.insertCell(-1);
c.appendChild(this.pMainObj.CreateElement("IMG", {'src': '/bitrix/images/fileman/htmledit2/tscomp-lb.gif', 'width': '20', height: '4'}));
c = rowBottom.insertCell(-1);
c.style.backgroundImage = 'url(/bitrix/images/fileman/htmledit2/tscomp-cb.gif)';
c.appendChild(this.pMainObj.CreateElement("IMG", {'src': '/bitrix/images/1.gif', 'width': '4', height: '4'}));
c = rowBottom.insertCell(-1);
c.appendChild(this.pMainObj.CreateElement("IMG", {'src': '/bitrix/images/fileman/htmledit2/tscomp-rb.gif', 'width': '4', height: '4'}));
this.pCellComp.appendChild(this.pMainObj.CreateElement("IMG", {'src': '/bitrix/images/1.gif', 'width': '4', height: '4'}));
rowTitle.rowData = rowData;
rowTitle.rowBottom = rowBottom;
rowTitle.im_r = im_r;
rowTitle.im_l = im_l;
rowTitle.Hide = this.Hide;
rowTitle.onclick = function(){this.Hide(!this.hidden)};
this.bOpenedBlock = true;
}
BXComponentsTaskbar.prototype.__CloseBlock = function ()
{
if(!this.bOpenedBlock)
return;
this.bOpenedBlock = false;
}
BXComponentsTaskbar.prototype.Hide = function (bHide)
{
if(!bHide)
{
this.hidden = false;
this.rowData.style.display = GetDisplStr(1);
this.rowBottom.style.display = GetDisplStr(1);
this.im_r.src = '/bitrix/images/fileman/htmledit2/tscomp-rt-o.gif';
this.im_l.src = '/bitrix/images/fileman/htmledit2/tscomp-lt-o.gif';
}
else
{
this.hidden = true;
this.rowData.style.display = GetDisplStr(0);
this.rowBottom.style.display = GetDisplStr(0);
this.im_r.src = '/bitrix/images/fileman/htmledit2/tscomp-rt-c.gif';
this.im_l.src = '/bitrix/images/fileman/htmledit2/tscomp-lt-c.gif';
}
}
}
BXComponentsTaskbar.prototype = new BXTaskbar;
/*** Explorer taskbar ***/
function BXExplorerTaskbar()
{
}
BXExplorerTaskbar.prototype = new BXTaskbar;
/*** Clipboard taskbar ***/
/*** Context help taskbar ***/
function BXHelpTaskbar()
{
}
BXHelpTaskbar.prototype = new BXTaskbar;
function BXCreateTaskbars(pMainObj, arParams)
{
var tttime, lllog = '';
tttime = (new Date().getTime());
var pTaskbar;
if(!pMainObj.arConfig["bWithoutPHP"])
{
pTaskbar = new BXComponentsTaskbar();
pTaskbar.Create(pMainObj, BX_MESS.CompTBTitle);
pMainObj.arTaskbarSet[2].AddTaskbar(pTaskbar);
}
lllog = lllog + 'Component='+(new Date().getTime() - tttime)+'\r\n';
/*
var pTaskbar = new BXExplorerTaskbar();
pTaskbar.Create(pMainObj, '���������');
pMainObj.arTaskbarSet[2].AddTaskbar(pTaskbar);
pTaskbar1.SetActive();
*/
//pTaskbar1 = new BXPropertiesTaskbar();
//pTaskbar1.Create(pMainObj, '��������');
//pMainObj.arTaskbarSet[1].AddTaskbar(pTaskbar1);
pTaskbar = new BXPropertiesTaskbar();
pTaskbar.Create(pMainObj, BX_MESS.CompTBProp);
pMainObj.arTaskbarSet[3].AddTaskbar(pTaskbar);
lllog = lllog + 'Prop='+(new Date().getTime() - tttime)+'\r\n';
/*
pTaskbar = new BXHelpTaskbar();
pTaskbar.Create(pMainObj, '����');
pMainObj.arTaskbarSet[3].AddTaskbar(pTaskbar);
pTaskbar = new BXHelpTaskbar();
pTaskbar.Create(pMainObj, '����');
pMainObj.arTaskbarSet[2].AddTaskbar(pTaskbar);
pTaskbar1.SetActive();
*/
//alert(lllog);
}
pBXEventDispatcher.AddEditorHandler("OnCreate", BXCreateTaskbars);