Current Path : /var/www/www-root/data/www/monolith-realty.ru/bitrix/modules/fileman/js/ |
Current File : /var/www/www-root/data/www/monolith-realty.ru/bitrix/modules/fileman/js/toolbarbuttons.js |
var arButtons = Array(); arButtons['separator'] = 'separator'; arButtons['Fullscreen'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/fullscreen.gif', 'name': 'Fullscreen', 'title': 'Fullscreen', 'codeEditorMode': true, 'handler': function() { if(this.pMainObj.bFullscreen) this.pMainObj.SetFullscreen(false); else this.pMainObj.SetFullscreen(true); this.Check(this.pMainObj.bFullscreen); }}]; arButtons['Cut'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/cut.gif', 'name': BX_MESS.Cut, 'cmd': 'Cut'}]; arButtons['Copy'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/copy.gif', 'name': BX_MESS.Copy, 'cmd': 'Copy'}]; arButtons['Paste'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/paste.gif', 'name': BX_MESS.Paste, 'cmd': 'Paste'}]; arButtons['RemoveFormat'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/removeformat.gif', 'name': BX_MESS.RemoveFormat, 'cmd': 'RemoveFormat'}]; arButtons['Undo'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/undo.gif', 'name': 'Undo', 'title': BX_MESS.Undo, 'cmd': 'Undo'}]; arButtons['Redo'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/redo.gif', 'name': 'Redo', 'title': BX_MESS.Redo, 'cmd': 'Redo'}]; arButtons['borders'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/borders.gif', 'name': BX_MESS.BordersTitle, 'handler': function (){this.pMainObj.ShowTableBorder(!this.pMainObj.bTableBorder);this.Check(this.pMainObj.bTableBorder);}}]; arButtons['spellcheck'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/spellcheck.gif', 'name': BX_MESS.Spellcheck, 'handler': function (){}}]; arButtons['find'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/find.gif', 'name': BX_MESS.Find}]; arButtons['replace'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/replace.gif', 'name': BX_MESS.Replace}]; arButtons['pastetext'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/pastetext.gif', 'name': BX_MESS.PasteAsText, 'handler': function () { if(BXIsIE()) this.pMainObj.PasteAsText(clipboardData.getData("Text")); else { this.bNotFocus = true; this.pMainObj.CreateCustomElement("BXDialog", { "width":"450", "height":"350", "name":"pasteastext", "params":{} }); } } }]; arButtons['pasteword'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/pasteword.gif', 'name': BX_MESS.PasteAsWord, 'handler': function () { this.bNotFocus = true; this.pMainObj.CreateCustomElement("BXDialog", { "width":"450", "height":"450", "name":"pasteword", "params":{} }); } }]; arButtons['new'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/new.gif', 'codeEditorMode': true, 'name': BX_MESS.TBNewPage, 'handler': function () { if(this.pMainObj.bNotSaved && !confirm("�������� �� �������. ��� �������� ������ ���������, ��� �������� ����� �����. ���������?")) return; } }]; arButtons['settings'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/settings.gif', 'name': BX_MESS.TBSettings}]; arButtons['exit'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/exit.gif', 'codeEditorMode': true, 'name': BX_MESS.TBExit, 'handler': function () { if(this.pMainObj.bNotSaved) { this.bNotFocus = true; this.pMainObj.CreateCustomElement("BXDialog", { "width":"600", "height":"180", "name":"asksave", "not_use_default": "Y", "params":{'window': window} }); } else if(this.pMainObj.arConfig["sBackUrl"]) window.location = this.pMainObj.arConfig["sBackUrl"]; } }]; arButtons['saveas'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/saveas.gif', 'codeEditorMode': true, 'name': BX_MESS.TBSaveAs}]; arButtons['save'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/save.gif', 'codeEditorMode': true, 'name': BX_MESS.TBSave, 'handler': function () { this.pMainObj.SaveContent(true); this.pMainObj.pForm.submit(); } }]; arButtons['pageprops'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/pageprops.gif', 'codeEditorMode': true, 'name': BX_MESS.TBProps, 'handler': function () { if(this.pMainObj.bNotSaved) { this.bNotFocus = true; this.pMainObj.CreateCustomElement("BXDialog", { "width":"600", "height":"180", "name":"pageprops", "params":{'window': window} }); } } }]; arButtons['insertrow'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/insertrow.gif','name': BX_MESS.TBInsRow, 'handler': function (){this.pMainObj.TableOperation('insertrow');}}]; arButtons['deleterow'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/deleterow.gif','name': BX_MESS.TBDelRow, 'handler': function (){this.pMainObj.TableOperation('deleterow');}}]; arButtons['insertcolumn'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/insertcolumn.gif','name': BX_MESS.TBInsCol, 'handler': function (){this.pMainObj.TableOperation('insertcolumn');}}]; arButtons['deletecolumn'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/deletecolumn.gif','name': BX_MESS.TBDelCol, 'handler': function (){this.pMainObj.TableOperation('deletecolumn');}}]; arButtons['insertcell'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/insertcell.gif','name': BX_MESS.TBInsCell, 'handler': function (){this.pMainObj.TableOperation('insertcell');}}]; arButtons['deletecell'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/deletecell.gif','name': BX_MESS.TBDellCell, 'handler': function (){this.pMainObj.TableOperation('deletecell');}}]; arButtons['mergecell'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/mergecell.gif','name': BX_MESS.TBMergeCell, 'handler': function (){this.pMainObj.TableOperation('mergecell');}}]; arButtons['splitcell'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/splitcell.gif','name': BX_MESS.TBSplitCell, 'handler': function (){this.pMainObj.TableOperation('splitcell');}}]; arButtons['table'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/instable.gif', 'name': BX_MESS.TBInsTable, 'title': BX_MESS.TBInsTable, 'handler': function () { this.bNotFocus = true; this.pMainObj.CreateCustomElement("BXDialog", { "width":"450", "height":"260", "name":"table", "params":{} }); } }]; arButtons['tableprop'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/instable.gif','name': BX_MESS.TBTableProp, 'title': BX_MESS.TBTableProp, 'handler': function () { this.bNotFocus = true; this.pMainObj.CreateCustomElement("BXDialog", { "width":"450", "height":"260", "name":"table", "params":{'check_exists':true} }); } }]; arButtons['CreateLink'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/link.gif', 'name': BX_MESS.TBLink, 'title': BX_MESS.TBLink, 'handler': function () { this.bNotFocus = true; this.pMainObj.CreateCustomElement("BXDialog", { "width":"450", "height":"380", "name":"link", "params":{} }); } }]; arButtons['deletelink'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/dellink.gif', 'name': BX_MESS.TBDelLink, 'cmd': 'Unlink', 'handler': function() { var pElement = BXFindParentByTagName(this.pMainObj.GetSelectionObject(), 'A'); if(pElement) { this.pMainObj.SelectElement(pElement); this.pMainObj.executeCommand('Unlink'); } } }]; arButtons['anchor'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/anchor.gif', 'name': 'Anchor', 'title': BX_MESS.TBAnchor, 'handler': function () { this.bNotFocus = true; this.pMainObj.CreateCustomElement("BXDialog", { "width":"300", "height":"150", "name":"anchor", "params":{} }); } }]; arButtons['image'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/image.gif', 'name': BX_MESS.TBImg, 'handler': function () { this.bNotFocus = true; this.pMainObj.CreateCustomElement("BXDialog", { "width":"400", "height":"350", "name":"image", "params":{} }); } }]; arButtons['BackColor'] = ['BXColorPicker', {'title': 'Background color', 'icon': '/bitrix/images/fileman/htmledit2/bgcolor.gif', 'onChange': function (color) { if(BXIsIE()) this.pMainObj.executeCommand('BackColor', color); else this.pMainObj.executeCommand('hilitecolor', color); } }]; arButtons['ForeColor'] = ['BXColorPicker', {'title': 'Foreground Color', 'icon': '/bitrix/images/fileman/htmledit2/fgcolor.gif', 'onChange': function (color) { this.pMainObj.executeCommand('ForeColor', color); }/*, 'OnSelectionChange': function () { var val; val = this.pMainObj.queryCommand('ForeColor'); this.SetValue(val); }*/ }]; arButtons['Bold'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/bold.gif', 'name': BX_MESS.TBBold, 'cmd': 'Bold'}]; arButtons['Italic'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/italic.gif', 'name': BX_MESS.TBItalic, 'cmd': 'Italic'}]; arButtons['Underline'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/under.gif', 'name': BX_MESS.TBUnderline, 'cmd': 'Underline'}]; arButtons['Outdent'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/deindent.gif','name': BX_MESS.TBOutdent, 'cmd': 'Outdent'}]; arButtons['Indent'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/inindent.gif','name': BX_MESS.TBIndent, 'cmd': 'Indent'}]; arButtons['JustifyLeft'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/left.gif','name': BX_MESS.TBJLeft, 'cmd': 'JustifyLeft'}]; arButtons['JustifyCenter'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/center.gif', 'name': BX_MESS.TBJCent, 'cmd': 'JustifyCenter'}]; arButtons['JustifyRight'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/right.gif', 'name': BX_MESS.TBJRig, 'cmd': 'JustifyRight'}]; arButtons['JustifyFull'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/justify.gif', 'name': BX_MESS.TBJFull, 'cmd': 'JustifyFull'}]; arButtons['InsertOrderedList'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/numlist.gif', 'name': BX_MESS.TBOList, 'cmd': 'InsertOrderedList'}]; arButtons['InsertUnorderedList'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/bullist.gif', 'name': BX_MESS.TBUnOList, 'cmd': 'InsertUnorderedList'}]; arButtons['InsertHorizontalRule'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/hr.gif','name': BX_MESS.TBHr, 'cmd': 'InsertHorizontalRule'}]; __BXSrcBtn = function (mode, split_mode) { this.Check(mode==this.t); this._OnChangeView(mode, split_mode); } arButtons['source'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/text.gif', 'codeEditorMode': true, 'name': BX_MESS.TBSrc, 't': 'code', 'OnChangeView': __BXSrcBtn, 'handler': function (){this.pMainObj.SetView('code');}}]; arButtons['wysiwyg'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/wysiwyg.gif', 'codeEditorMode': true, 'name': BX_MESS.TBWysiwyg, 't': 'html', 'OnChangeView': __BXSrcBtn, 'handler': function (){this.pMainObj.SetView('wysiwyg');}}]; arButtons['split'] = ['BXButton', {'src': '/bitrix/images/fileman/htmledit2/split.gif', 'codeEditorMode': true, 'name': BX_MESS.TBSplitmode, 't': 'split', 'OnChangeView': __BXSrcBtn, 'handler': function (){this.pMainObj.SetView('split');}}]; arButtons['HeadingList'] = ['BXList', {'width': '150', 'height': '150', 'field_size': '70', 'title': '(format)', 'disableOnCodeView': true, 'values': [ {'value': 'p', 'name': 'Normal'}, {'value': 'h1', 'name': 'Heading 1'}, {'value': 'h2', 'name': 'Heading 2'}, {'value': 'h3', 'name': 'Heading 3'}, {'value': 'h4', 'name': 'Heading 4'}, {'value': 'h5', 'name': 'Heading 5'}, {'value': 'h6', 'name': 'Heading 6'}, {'value': 'pre', 'name': 'Preformatted'} ], 'OnSelectionChange': function (){ var sel = 0; var frm = this.pMainObj.queryCommand('FormatBlock'); if(frm) { var re = /[1-6]/; var r = frm.match(re); if(r>0) sel = r; else if(frm == 'pre') sel = 7; } this.Select(sel); }, 'onChange': function (selected){this.pMainObj.executeCommand('FormatBlock', (selected['value'].length>0?'<' + selected['value']+'>':'<p>'));}, 'onDrawItem': function (item){return (item['value'].length<=0?item['name']:'<'+item['value']+'>'+item['name']+'</'+item['value']+'>');} } ]; arButtons['FontName'] = ['BXList', {'width': '160', 'height': '120', 'field_size': '70', 'title': '(font)', 'disableOnCodeView': true, 'values': [ {'value': 'Times New Roman', 'name': 'Times New Roman'}, {'value': 'Courier', 'name': 'Courier'}, {'value': 'Arial', 'name': 'Arial'}, {'value': 'Tahoma', 'name': 'Tahoma'}, {'value': 'Verdana', 'name': 'Verdana'}, {'value': 'Georgia', 'name': 'Georgia'} ], 'OnSelectionChange': function (){ this.SelectByVal(this.pMainObj.queryCommand('FontName')); }, 'onChange': function (selected){this.pMainObj.executeCommand('FontName', selected['value']);}, //text-overflow : ellipsis; 'onDrawItem': function (item){return '<span style="white-space: nowrap; font-family:'+item['name']+';font-size: 10pt;">'+item['name']+'</span>';} } ]; arButtons['FontSize'] = ['BXList', {'width': '160', 'height': '175', 'field_size': '70', 'title': '(size)', 'disableOnCodeView': true, 'values': [ {'value': '1', 'name': 'xx-small'}, {'value': '2', 'name': 'x-small'}, {'value': '3', 'name': 'small'}, {'value': '4', 'name': 'medium'}, {'value': '5', 'name': 'large'}, {'value': '6', 'name': 'x-large'}, {'value': '7', 'name': 'xx-large'} ], 'OnSelectionChange': function (){ this.SelectByVal(this.pMainObj.queryCommand('FontSize')); }, 'onChange': function (selected){this.pMainObj.executeCommand('FontSize', selected['value']);}, 'onDrawItem': function (item){return '<font size="'+item['value']+'">'+item['name']+'</font>';} } ]; //arButtons['FontSize'] = ['FontSizeListSelect', '140', '200', '30', '(size)', ['8pt', '9pt', '10pt', '12pt', '14pt', '16pt', '18pt', '24pt', '36pt']]; arButtons['FontStyle'] = ['BXStyleList', { 'width': '200', 'height': '200', 'field_size': '130', 'title': '(CSS class)', 'disableOnCodeView': true, 'filter': ['DEFAULT'], 'OnChangeElement': function (arSelected) { //alert('Element('+this.pElement.tagName+')'); SAttr(this.pElement, 'className', arSelected["value"]); }, 'OnChangeText': function (arSelected) { /* oSelection = this.pMainObj.pEditorDocument.selection; var s = oSelection.createRange(); alert('oSelection.type='+oSelection.type); alert('oSelection.htmlText='+s.htmlText); alert('oSelection.text='+s.text); alert('s.parentElement().innerText='+s.parentElement().innerText); */ /* oSelection = this.pMainObj.pEditorWindow.getSelection(); alert('oSelection.rangeCount='+oSelection.rangeCount); var oRange;var container; oRange = oSelection.getRangeAt(0); container = oRange.startContainer; alert('container.nodeType='+container.nodeType); alert('container.childNodes.length='+container.childNodes.length); alert('container.' + container.nodeValue); alert('oRange.startOffse='+oRange.startOffset+' - '+(container.childNodes[oRange.startOffset]?container.childNodes[oRange.startOffset].nodeValue:"")); alert('oRange.endOffse='+oRange.endOffset+' - '+(container.childNodes[oRange.endOffset]?container.childNodes[oRange.endOffset].nodeValue:'')); */ /* if(container.childNodes.length>0) { for(var o=0; o<container.childNodes.length; o++) alert(container.childNodes[o].nodeType+'/'+container.childNodes[o].nodeValue); } if(container.nodeType!=3) { if(container.nodeType==1 && container.childNodes.length<=0) return container; else return false; } */ if(arSelected["value"]!='') this.pMainObj.WrapSelectionWith("span", {"class":arSelected["value"]}); else { var pElement = this.pMainObj.GetSelectedNode(); if(pElement) { while(pElement = pElement.parentNode) { if(pElement.nodeType == 1 && pElement.tagName.toUpperCase() == 'TABLE') break; if(pElement.nodeType == 1 && pElement.className) { if(pElement.tagName.toUpperCase() != 'SPAN' && pElement.tagName.toUpperCase() != 'FONT') break; SAttr(pElement, 'className', ''); var attr = pElement.attributes; if(attr.length<=0) BXDeleteNode(pElement); break; } } } } }, 'OnSelectionChange': function () { var pElement = this.pMainObj.GetSelectedNode(); if(pElement && pElement.nodeType == 1) { if(this.prevType != pElement.tagName.toUpperCase()) { this.prevType = pElement.tagName.toUpperCase(); this.tag_name = pElement.tagName.toUpperCase(); this.filter = [pElement.tagName.toUpperCase(), 'DEFAULT']; this.FillList(); } this.pElement = pElement; this.onChange = this.OnChangeElement; this.SelectByVal(this.pElement.className); } else { this.onChange = this.OnChangeText; if(this.prevType != 'DEFAULT') { this.prevType = 'DEFAULT'; this.filter = ['DEFAULT']; this.tag_name = ''; this.FillList(); } this.SelectByVal(); if(pElement) { if(BXIsIE() && pElement.parentElement && (pElement = pElement.parentElement())) pElement = pElement.childNodes[0]; while(pElement = pElement.parentNode) { if(pElement.nodeType == 1 && pElement.tagName.toUpperCase() == 'TABLE') break; if(pElement.nodeType == 1 && pElement.className) { if(pElement.tagName.toUpperCase() != 'SPAN' && pElement.tagName.toUpperCase() != 'FONT') break; this.SelectByVal(pElement.className); break; } } } } } } ]; arButtons['Template'] = ['BXList', {'width': '160', 'height': '110', 'field_size': '150', 'title': '(template)', 'bSetGlobalStyles': true, 'values': arBXTemplates, 'onCreate': function () { this.pMainObj.pTemplateListbox = this; }, 'onInit': function () { this.SelectByVal(this.pMainObj.templateID); }, 'onChange': function (selected) { this.pMainObj.SetTemplate(selected['value']); } } ]; /* arButtons['insrow'] = ['BXTButton', '/bitrix/images/fileman/htmledit2/insrow.gif', '']; arButtons['delrow'] = ['BXTButton', '/bitrix/images/fileman/htmledit2/delrow.gif', '']; arButtons['inscol'] = ['BXTButton', '/bitrix/images/fileman/htmledit2/inscol.gif', '']; arButtons['delcol'] = ['BXTButton', '/bitrix/images/fileman/htmledit2/delcol.gif', '']; arButtons['inscell'] = ['BXTButton', '/bitrix/images/fileman/htmledit2/inscell.gif', '']; arButtons['delcell'] = ['BXTButton', '/bitrix/images/fileman/htmledit2/delcell.gif', '']; arButtons['mergecell'] = ['BXTButton', '/bitrix/images/fileman/htmledit2/mrgcell.gif', '']; arButtons['splitcell'] = ['BXTButton', '/bitrix/images/fileman/htmledit2/spltcell.gif', '']; arButtons['specialchar'] = []; */ var arCMButtons = []; arCMButtons["DEFAULT"] = [ arButtons['Cut'], arButtons['Copy'], arButtons['Paste'] ]; arCMButtons["A"] = [ arButtons['CreateLink'], arButtons['deletelink'] ]; arCMButtons["IMG"] = [ arButtons['image'] ]; arCMButtons["TABLE"] = [ arButtons['tableprop'] ]; /* arCMButtons["TR"] = [ arButtons['insertrow'], arButtons['deleterow'] ]; arCMButtons["TD"] = [ arButtons['insertcolumn'], arButtons['deletecolumn'], arButtons['insertcell'], arButtons['deletecell'], arButtons['mergecell'], arButtons['splitcell'] ]; */ var arToolbars = Array(); /* arToolbars['manage'] = [ '���������� � ���������', [ arButtons['exit'], 'separator', arButtons['new'], arButtons['save'], arButtons['saveas'], 'separator', arButtons['pageprops'], 'separator', arButtons['settings'] ] ]; */ if(BXIsIE()) { arToolbars['standart'] = [ BX_MESS.TBSStandart, [arButtons['Fullscreen'], 'separator', arButtons['Cut'], arButtons['Copy'], arButtons['Paste'], arButtons['pasteword'], arButtons['pastetext'], arButtons['separator'], //arButtons['Undo'], arButtons['Redo'], arButtons['separator'], arButtons['borders'], 'separator', //arButtons['spellcheck'], arButtons['find'], arButtons['replace'], arButtons['separator'], arButtons['table'], arButtons['anchor'], arButtons['CreateLink'], arButtons['deletelink'], arButtons['image'] ] ]; } else { arToolbars['standart'] = [ BX_MESS.TBSStandart, [arButtons['Fullscreen'], 'separator', arButtons['Cut'], arButtons['Copy'], arButtons['Paste'], arButtons['pasteword'], arButtons['pastetext'], arButtons['separator'], arButtons['Undo'], arButtons['Redo'], arButtons['separator'], arButtons['borders'], 'separator', //arButtons['spellcheck'], arButtons['find'], arButtons['replace'], arButtons['separator'], arButtons['table'], arButtons['anchor'], arButtons['CreateLink'], arButtons['deletelink'], arButtons['image'] ] ]; } arToolbars['style'] = [ BX_MESS.TBSStyle, [arButtons['FontStyle'], arButtons['HeadingList'], arButtons['FontName'], arButtons['FontSize'], arButtons['separator'], arButtons['Bold'], arButtons['Italic'], arButtons['Underline'], 'separator', arButtons['RemoveFormat'] ] ]; arToolbars['formating'] = [ BX_MESS.TBSFormat, [arButtons['InsertHorizontalRule'], arButtons['separator'], arButtons['JustifyLeft'], arButtons['JustifyCenter'], arButtons['JustifyRight'], arButtons['JustifyFull'], arButtons['separator'], arButtons['InsertOrderedList'], arButtons['InsertUnorderedList'],arButtons['separator'], arButtons['Outdent'], arButtons['Indent'], arButtons['separator'], arButtons['BackColor'], arButtons['ForeColor'] ] ]; arToolbars['source'] = [ BX_MESS.TBSEdit, [arButtons['wysiwyg'], arButtons['source'], arButtons['split']] ]; arToolbars['template'] = [ BX_MESS.TBSTemplate, [arButtons['Template']] ]; /* arToolbars['table'] = [ '������', ['insrow', 'delrow', 'inscol', 'delcol', 'inscell', 'delcell', 'mergecell', 'splitcell'] ]; */ var arDefaultTBPositions = { 'standart': [0, 0, 0], 'manage': [0, 0, 1], 'template': [0, 0, 2], 'source': [1, 0, 0], 'style': [0, 1, 0], 'formating':[0, 1, 1] }; var pPropertybarHandlers = Array(); pPropertybarHandlers['table'] = function (bNew, pTaskbar, pElement) { if(bNew) { pTaskbar.arElements = Array(); var tProp; var arBarHandlersCache = pTaskbar.pMainObj.arBarHandlersCache; if(arBarHandlersCache['table']) { tProp = arBarHandlersCache['table'][0]; pTaskbar.arElements = arBarHandlersCache['table'][1]; } else { tProp = pTaskbar.pMainObj.pDocument.createElement("TABLE"); tProp.className = "bxtaskbarprops"; tProp.style.width = "100%"; //tProp.style.height = "100%"; tProp.cellSpacing = 0; tProp.cellPadding = 1; var row = tProp.insertRow(-1); var cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':BX_MESS.TPropSize})); cell = row.insertCell(-1); cell.noWrap = true; pTaskbar.arElements['width'] = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'size':'5', 'title': BX_MESS.TPropW, 'type': 'text'})); cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':'x'})); pTaskbar.arElements['height'] = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'size':'5', 'title': BX_MESS.TPropH, 'type': 'text'})); cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':BX_MESS.TPropBord})); cell = row.insertCell(-1); pTaskbar.arElements['border'] = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'type': 'text', 'size': '5'})); //// row = tProp.insertRow(-1); cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':BX_MESS.TPropStyle})); cell = row.insertCell(-1); var pObjTemp = pTaskbar.pMainObj.CreateCustomElement('BXStyleList', {'width': '200', 'height': '200', 'field_size': '80', 'title': '(CSS class)', 'tag_name': 'TABLE', 'filter': ['TABLE', 'DEFAULT']}); pTaskbar.arElements['cssclass'] = pObjTemp; cell.appendChild(pObjTemp.pWnd); cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':BX_MESS.TPropBG})); cell = row.insertCell(-1); pObjTemp = pTaskbar.pMainObj.CreateCustomElement('BXColorPicker', {'with_input': true}); pTaskbar.arElements['bgcolor'] = pObjTemp; cell.appendChild(pObjTemp.pWnd); //// row = tProp.insertRow(-1); cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':'CellPadding: '})); cell = row.insertCell(-1); pTaskbar.arElements['cellpadding'] = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'type': 'text', 'size': '5'})); //// cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':BX_MESS.TPropAlign})); cell = row.insertCell(-1); pObjTemp = pTaskbar.pMainObj.CreateCustomElement('BXTAlignPicker', {'type': 'table'}); pTaskbar.arElements['talign'] = pObjTemp; cell.appendChild(pObjTemp.pWnd); //// row = tProp.insertRow(-1); cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':'CellSpacing: '})); cell = row.insertCell(-1); pTaskbar.arElements['cellspacing'] = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'type': 'text', 'size': '5'})); cell = row.insertCell(-1); cell = row.insertCell(-1); arBarHandlersCache['table'] = [tProp, pTaskbar.arElements]; } pTaskbar.pCellProps.appendChild(tProp); } pTaskbar.arElements['width'].value = GAttr(pElement, 'width'); pTaskbar.arElements['height'].value = GAttr(pElement, 'height'); pTaskbar.arElements['border'].value = GAttr(pElement, 'border'); pTaskbar.arElements['cellpadding'].value = GAttr(pElement, 'cellPadding'); pTaskbar.arElements['cellspacing'].value = GAttr(pElement, 'cellSpacing'); pTaskbar.arElements['bgcolor'].SetValue(pElement.bgColor); pTaskbar.arElements['talign'].SetValue(pElement.align); pTaskbar.arElements['cssclass'].SelectByVal(pElement.className); var fChange = function (){ SAttr(pElement, 'width', pTaskbar.arElements['width'].value); SAttr(pElement, 'height', pTaskbar.arElements['height'].value); SAttr(pElement, 'border', pTaskbar.arElements['border'].value); SAttr(pElement, 'cellPadding', pTaskbar.arElements['cellpadding'].value); SAttr(pElement, 'cellSpacing', pTaskbar.arElements['cellspacing'].value); } pTaskbar.arElements['height'].onchange = fChange; pTaskbar.arElements['width'].onchange = fChange; pTaskbar.arElements['border'].onchange = fChange; pTaskbar.arElements['cellpadding'].onchange = fChange; pTaskbar.arElements['cellspacing'].onchange = fChange; pTaskbar.arElements['bgcolor'].onChange = function (color) {pElement.bgColor = color;}; pTaskbar.arElements['talign'].onChange = function (alH) {pElement.align = alH;}; pTaskbar.arElements['cssclass'].onChange = function (className) {pElement.className=className.value;}; } pPropertybarHandlers['td'] = function (bNew, pTaskbar, pElement) { if(bNew) { pTaskbar.arElements = Array(); var tProp; var arBarHandlersCache = pTaskbar.pMainObj.arBarHandlersCache; if(arBarHandlersCache['td']) { tProp = arBarHandlersCache['td'][0]; pTaskbar.arElements = arBarHandlersCache['td'][1]; } else { tProp = pTaskbar.pMainObj.pDocument.createElement("TABLE"); tProp.className = "bxtaskbarprops"; tProp.style.width = "100%"; //tProp.style.height = "100%"; tProp.cellSpacing = 0; tProp.cellPadding = 1; var row = tProp.insertRow(-1); var cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':BX_MESS.TPropStyle})); cell = row.insertCell(-1); var pObjTemp = pTaskbar.pMainObj.CreateCustomElement('BXStyleList', {'width': '200', 'height': '200', 'field_size': '80', 'title': '(CSS class)', 'tag_name': 'TD', 'filter': ['TD', 'DEFAULT']}); pTaskbar.arElements['cssclass'] = pObjTemp; cell.appendChild(pObjTemp.pWnd); cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':BX_MESS.TPropSize})); cell = row.insertCell(-1); pTaskbar.arElements['width_val'] = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'size':'5', 'title': BX_MESS.TPropW, 'type': 'text'})); cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':'x'})); pTaskbar.arElements['height_val'] = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'size':'5', 'title': BX_MESS.TPropH, 'type': 'text'})); row = tProp.insertRow(-1); cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':BX_MESS.TPropAlign})); cell = row.insertCell(-1); pObjTemp = pTaskbar.pMainObj.CreateCustomElement('BXTAlignPicker'); pTaskbar.arElements['talign'] = pObjTemp; cell.appendChild(pObjTemp.pWnd); cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':BX_MESS.TPropBG})); cell = row.insertCell(-1); pObjTemp = pTaskbar.pMainObj.CreateCustomElement('BXColorPicker', {'with_input': true}); pTaskbar.arElements['bgcolor'] = pObjTemp; cell.appendChild(pObjTemp.pWnd); row = tProp.insertRow(-1); cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':BX_MESS.TPropNoWrap})); cell = row.insertCell(-1); pTaskbar.arElements['nowrap'] = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'title': 'nowrap', 'type': 'checkbox'})); arBarHandlersCache['td'] = [tProp, pTaskbar.arElements]; } pTaskbar.pCellProps.appendChild(tProp); } pTaskbar.arElements['width_val'].value = pElement.width; pTaskbar.arElements['height_val'].value = pElement.height; pTaskbar.arElements['nowrap'].checked = pElement.noWrap; pTaskbar.arElements['bgcolor'].SetValue(pElement.bgColor); pTaskbar.arElements['talign'].SetValue(pElement.align, pElement.vAlign); pTaskbar.arElements['cssclass'].SelectByVal(pElement.className); var fChange = function (){ pElement.width = pTaskbar.arElements['width_val'].value; pElement.height = pTaskbar.arElements['height_val'].value; pElement.noWrap = pTaskbar.arElements['nowrap'].checked; } pTaskbar.arElements['height_val'].onchange = fChange; pTaskbar.arElements['width_val'].onchange = fChange; pTaskbar.arElements['nowrap'].onclick = fChange; pTaskbar.arElements['bgcolor'].onChange = function (color) {pElement.bgColor = color;}; pTaskbar.arElements['talign'].onChange = function (alH, alV) {pElement.align = alH; pElement.vAlign = alV;}; pTaskbar.arElements['cssclass'].onChange = function (className) {pElement.className = className.value;}; } pPropertybarHandlers['a'] = function (bNew, pTaskbar, pElement) { pTaskbar.pHtmlElement = pElement; if(bNew) { pTaskbar.arElements = Array(); var tProp; var arBarHandlersCache = pTaskbar.pMainObj.arBarHandlersCache; if(arBarHandlersCache['a']) { tProp = arBarHandlersCache['a'][0]; pTaskbar.arElements = arBarHandlersCache['a'][1]; } else { tProp = pTaskbar.pMainObj.CreateElement("TABLE"); tProp.className = "bxtaskbarprops"; tProp.style.width = "100%"; //tProp.style.height = "100%"; tProp.cellSpacing = 0; tProp.cellPadding = 1; var row, cell; row = tProp.insertRow(-1); cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':'URL: '})); cell = row.insertCell(-1); pTaskbar.arElements['href_val'] = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'size':'40', 'title': BX_MESS.TPropURL, 'type': 'text'})); ////// cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':'Title: '})); cell = row.insertCell(-1); pTaskbar.arElements['title'] = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'size':'30', 'title': BX_MESS.TPropTitle, 'type': 'text'})); ////// row = tProp.insertRow(-1); cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':BX_MESS.TPropTarget})); cell = row.insertCell(-1); var tTemp = cell.appendChild(pTaskbar.pMainObj.CreateElement("TABLE", {'cellPadding': '0', 'cellSpacing': '0'})); pTaskbar.arElements['target_list'] = pTaskbar.pMainObj.CreateCustomElement( "BXList", {'width': '150', 'height': '80', 'field_size': '130', 'bSetGlobalStyles': true, 'taskbar': pTaskbar, 'values': [ {'value': '', 'name': ' '}, {'value': '_blank', 'name': BX_MESS.TPropTargetBlank}, {'value': '_parent', 'name': BX_MESS.TPropTargetParent}, {'value': '_self', 'name': BX_MESS.TPropTargetSelf}, {'value': '_top', 'name': BX_MESS.TPropTargetTop} ], 'OnSelectionChange': function (){ //this.Select(sel); }, 'onChange': function (selected){ this.taskbar.arElements['target'].disabled = (selected['value']!=''); this.taskbar.arElements['target'].value = selected['value']; this.taskbar.pHtmlElement.target = selected['value']; } }); tTemp.insertRow(-1).insertCell(-1).appendChild(pTaskbar.arElements['target_list'].pWnd); pTaskbar.arElements['target'] = tTemp.rows[0].insertCell(-1).appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'size':'13', 'title': BX_MESS.TPropTargetWin, 'type': 'text'})); ////// cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':BX_MESS.TPropStyle})); cell = row.insertCell(-1); var pObjTemp = pTaskbar.pMainObj.CreateCustomElement('BXStyleList', {'width': '200', 'height': '200', 'field_size': '120', 'title': '(CSS class)', 'tag_name': 'A', 'filter': ['A', 'DEFAULT']}); pTaskbar.arElements['cssclass'] = pObjTemp; cell.appendChild(pObjTemp.pWnd); arBarHandlersCache['a'] = [tProp, pTaskbar.arElements]; } ////// pTaskbar.pCellProps.appendChild(tProp); } pTaskbar.arElements['cssclass'].SelectByVal(pElement.className); pTaskbar.arElements['target_list'].SelectByVal(pElement.target); pTaskbar.arElements['href_val'].value = pElement.getAttribute("href", 2); pTaskbar.arElements['title'].value = pElement.title; pTaskbar.arElements['target'].value = pElement.target; pTaskbar.arElements['target'].disabled = !(pElement.target!='_blank' && pElement.target!='_top' && pElement.target!='_self' && pElement.target!='_parent'); var fChange = function (){ pElement.href = pTaskbar.arElements['href_val'].value; pElement.title = pTaskbar.arElements['title'].value; pElement.target = pTaskbar.arElements['target'].value; } pTaskbar.arElements['href_val'].onchange = fChange; pTaskbar.arElements['title'].onchange = fChange; pTaskbar.arElements['target'].onchange = fChange; pTaskbar.arElements['cssclass'].onChange = function (sel) {pElement.className=sel['value'];}; }; pPropertybarHandlers['anchor'] = function (bNew, pTaskbar, pElement) { pTaskbar.pHtmlElement = pElement; if(bNew) { pTaskbar.arElements = Array(); var tProp; var arBarHandlersCache = pTaskbar.pMainObj.arBarHandlersCache; if(arBarHandlersCache['anchor']) { tProp = arBarHandlersCache['anchor'][0]; pTaskbar.arElements = arBarHandlersCache['anchor'][1]; } else { tProp = pTaskbar.pMainObj.CreateElement("TABLE"); tProp.className = "bxtaskbarprops"; tProp.style.width = "100%"; //tProp.style.height = "100%"; tProp.cellSpacing = 0; tProp.cellPadding = 1; var row, cell; row = tProp.insertRow(-1); cell = row.insertCell(-1); cell.align = 'right'; cell.width="50%"; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':BX_MESS.TPropName})); cell = row.insertCell(-1); cell.width="50%"; pTaskbar.arElements['name'] = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'size':'40', 'title': BX_MESS.TPropAnchorName, 'type': 'text'})); arBarHandlersCache['anchor'] = [tProp, pTaskbar.arElements]; } ////// pTaskbar.pCellProps.appendChild(tProp); } var val = BXUnSerialize(pElement.getAttribute("__bxcontainer")); pTaskbar.arElements['name'].value = val["name"]; var fChange = function (){ pElement.setAttribute("__bxcontainer", BXSerialize({"name":pTaskbar.arElements['name'].value})); } pTaskbar.arElements['name'].onchange = fChange; }; /* pPropertybarHandlers['tr'] = {}; pPropertybarHandlers['default'] = pPropertybarHandlers['p']; */ pPropertybarHandlers['img'] = function (bNew, pTaskbar, pElement) { if(bNew) { pTaskbar.arElements = Array(); var tProp; var arBarHandlersCache = pTaskbar.pMainObj.arBarHandlersCache; if(arBarHandlersCache['img']) { tProp = arBarHandlersCache['img'][0]; pTaskbar.arElements = arBarHandlersCache['img'][1]; } else { tProp = pTaskbar.pMainObj.CreateElement("TABLE"); tProp.className = "bxtaskbarprops"; tProp.style.width = "100%"; //tProp.style.height = "100%"; tProp.cellSpacing = 0; tProp.cellPadding = 1; var row, cell; row = tProp.insertRow(-1); cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':BX_MESS.TPropImgPath})); cell = row.insertCell(-1); pTaskbar.arElements['src'] = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'size':'40', 'title': BX_MESS.TPropImgPath2, 'type': 'text'})); ////// cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':'HSpace: '})); cell = row.insertCell(-1); pTaskbar.arElements['hspace'] = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'size':'6', 'title': 'HSpace', 'type': 'text'})); ////// row = tProp.insertRow(-1); cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':BX_MESS.TPropSize})); cell = row.insertCell(-1); pTaskbar.arElements['width'] = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'size':'5', 'title': BX_MESS.TPropW, 'type': 'text'})); cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':'x'})); pTaskbar.arElements['height'] = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'size':'5', 'title': BX_MESS.TPropH, 'type': 'text'})); ////// cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':'VSpace: '})); cell = row.insertCell(-1); pTaskbar.arElements['vspace'] = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'size':'6', 'title': 'VSpace', 'type': 'text'})); ////// row = tProp.insertRow(-1); cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':'Title: '})); cell = row.insertCell(-1); pTaskbar.arElements['alt'] = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'size':'40', 'title': BX_MESS.TPropTitle, 'type': 'text'})); ////// cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':BX_MESS.TPropStyle})); cell = row.insertCell(-1); var pObjTemp = pTaskbar.pMainObj.CreateCustomElement('BXStyleList', {'width': '200', 'height': '200', 'field_size': '120', 'title': '(CSS class)', 'tag_name': 'A', 'filter': ['A', 'DEFAULT']}); pTaskbar.arElements['cssclass'] = pObjTemp; cell.appendChild(pObjTemp.pWnd); ////// row = tProp.insertRow(-1); cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':'Border: '})); cell = row.insertCell(-1); pTaskbar.arElements['border'] = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'size':'4', 'title': BX_MESS.TPropImgBorder, 'type': 'text'})); ////// cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':BX_MESS.TPropAlign})); cell = row.insertCell(-1); pObjTemp = pTaskbar.pMainObj.CreateCustomElement('BXTAlignPicker', {'type': 'image'}); pTaskbar.arElements['talign'] = pObjTemp; cell.appendChild(pObjTemp.pWnd); arBarHandlersCache['img'] = [tProp, pTaskbar.arElements]; } ////// pTaskbar.pCellProps.appendChild(tProp); } pTaskbar.arElements['cssclass'].SelectByVal(pElement.className); pTaskbar.arElements['talign'].SetValue(pElement.align); pTaskbar.arElements['src'].value = GAttr(pElement, 'src'); pTaskbar.arElements['alt'].value = GAttr(pElement, 'alt'); pTaskbar.arElements['hspace'].value = GAttr(pElement, 'hspace'); pTaskbar.arElements['vspace'].value = GAttr(pElement, 'vspace'); pTaskbar.arElements['border'].value = GAttr(pElement, 'border'); pTaskbar.arElements['width'].value = GAttr(pElement, 'width'); pTaskbar.arElements['height'].value = GAttr(pElement, 'height'); var fChange = function (){ SAttr(pElement, 'src', pTaskbar.arElements['src'].value); SAttr(pElement, 'alt', pTaskbar.arElements['alt'].value); SAttr(pElement, 'hspace', pTaskbar.arElements['hspace'].value); SAttr(pElement, 'vspace', pTaskbar.arElements['vspace'].value); SAttr(pElement, 'border', pTaskbar.arElements['border'].value); SAttr(pElement, 'width', pTaskbar.arElements['width'].value); SAttr(pElement, 'height', pTaskbar.arElements['height'].value); } pTaskbar.arElements['src'].onchange = fChange; pTaskbar.arElements['alt'].onchange = fChange; pTaskbar.arElements['hspace'].onchange = fChange; pTaskbar.arElements['vspace'].onchange = fChange; pTaskbar.arElements['border'].onchange = fChange; pTaskbar.arElements['width'].onchange = fChange; pTaskbar.arElements['height'].onchange = fChange; pTaskbar.arElements['cssclass'].onChange = function (sel) {pElement.className=sel['value'];}; pTaskbar.arElements['talign'].onChange = function (align) {pElement.align = align;}; pTaskbar.pHtmlElement = pElement; }; pPropertybarHandlers['php'] = function (bNew, pTaskbar, pElement) { pTaskbar.pHtmlElement = pElement; if(bNew) { pTaskbar.arElements = Array(); var tProp = pTaskbar.pMainObj.CreateElement("TABLE"); tProp.className = "bxtaskbarprops"; tProp.style.width = "100%"; //tProp.style.height = "100%"; tProp.cellSpacing = 0; tProp.cellPadding = 1; var row, cell; row = tProp.insertRow(-1); cell = row.insertCell(-1); pTaskbar.arElements['code'] = cell.appendChild(pTaskbar.pMainObj.CreateElement("TEXTAREA", {'rows':'3', cols: '60', 'title': BX_MESS.TPropPHP}, {"width": "100%"})); ////// pTaskbar.pCellProps.appendChild(tProp); } pTaskbar.arElements['code'].value = BXUnSerialize(pElement.getAttribute("__bxcontainer")).code; var fChange = function (){ pElement.setAttribute("__bxcontainer", BXSerialize({'code':pTaskbar.arElements['code'].value})); } pTaskbar.arElements['code'].onchange = fChange; }; var __BXSetOptionSelected = function (pOption, bSel) { return function(){pOption.selected = bSel;}; } var BXShowComponentPanel = function (bNew, pTaskbar, pElement) { while(pTaskbar.pCellProps.childNodes.length>0) pTaskbar.pCellProps.removeChild(pTaskbar.pCellProps.childNodes[0]); pTaskbar.pHtmlElement = pElement; //alert(pElement.getAttribute("__bxcontainer")); var arSettings = BXUnSerialize(pElement.getAttribute("__bxcontainer")); var fChange = function (e) { //alert(e); var arAllFields = Array(); function addel(arEls) { var el; for(var i=0; i<arEls.length; i++) { if(!arEls[i]["__exp"] || arEls[i]["__exp"]!="Y") continue; el = arEls[i]; if(el["name"].substr(el["name"].length-2, 2) == '[]') { if(arAllFields[el["name"].substr(0, el["name"].length-2)]) arAllFields[el["name"].substr(0, el["name"].length-2)].push(el); else arAllFields[el["name"].substr(0, el["name"].length-2)] = Array(el); } else arAllFields[el["name"]] = el; } } arSettings["PARAMS"] = {}; var propID, i, j, val; addel(pTaskbar.pCellProps.getElementsByTagName("select")); addel(pTaskbar.pCellProps.getElementsByTagName("input")); addel(pTaskbar.pCellProps.getElementsByTagName("textarea")); for(i=0; i<pTaskbar.arElements.length; i++) { propID = pTaskbar.arElements[i]; val = arAllFields[propID]; if(arAllFields[propID+'_alt'] && val.selectedIndex == 0) val = arAllFields[propID+'_alt']; if(!val) continue; if(val.tagName) // one element { if(val.tagName.toUpperCase() == "SELECT") { for(j=0; j<val.length; j++) { if(val[j].selected && val[j].value!='') arSettings["PARAMS"][propID] = val[j].value; } } else arSettings["PARAMS"][propID] = val.value; } else { arSettings["PARAMS"][propID] = []; for(k=0; k<val.length; k++) { if(val[k].tagName.toUpperCase() == "SELECT") { for(j=0; j<val[k].length; j++) { if(val[k][j].selected && val[k][j].value!='') arSettings["PARAMS"][propID].push(val[k][j].value); } } else arSettings["PARAMS"][propID].push(val[k].value); } } } if(pElement) pElement.setAttribute("__bxcontainer", BXSerialize(arSettings)); } pTaskbar.arElements = Array(); var templateID = pTaskbar.pMainObj.templateID; var tProp = pTaskbar.pMainObj.CreateElement("TABLE"); tProp.className = "bxtaskbarprops"; tProp.style.width = "100%"; //tProp.style.height = "100%"; tProp.cellSpacing = 0; tProp.cellPadding = 1; var row, cell, arPropertyParams, bSel, arValues, res, pSelect, arUsedValues, bFound, key, oOption, val, xCell, opt_val, bBr, i, k, alt; ////////// var sURL = '/bitrix/admin/fileman_get_xml.php?op=componentconfig&lang='+BXLang+'&site='+BXSite+'&templateID='+templateID+'&path='+arSettings["SCRIPT_NAME"]; var arParams = pTaskbar.pMainObj.GetData(sURL, arSettings["PARAMS"]); if(typeof(arParams)!='object') arParams = {}; for(var propertyID in arParams) { pTaskbar.arElements.push(propertyID); res = ''; arUsedValues = []; arPropertyParams = arParams[propertyID]; if(!arSettings["PARAMS"][propertyID] && arPropertyParams["DEFAULT"]) arValues = arPropertyParams["DEFAULT"]; else if(arSettings["PARAMS"][propertyID]) arValues = arSettings["PARAMS"][propertyID]; else arValues = ''; if(!arPropertyParams["MULTIPLE"] || arPropertyParams["MULTIPLE"]!="Y") arPropertyParams["MULTIPLE"] = "N"; if(!arPropertyParams["TYPE"]) arPropertyParams["TYPE"] = "STRING"; if(!arPropertyParams["CNT"]) arPropertyParams["CNT"] = 0; if(!arPropertyParams["SIZE"]) arPropertyParams["SIZE"] = 0; if(!arPropertyParams['ADDITIONAL_VALUES']) arPropertyParams['ADDITIONAL_VALUES'] = 'N'; if(!arPropertyParams['ROWS']) arPropertyParams['ROWS'] = 0; if(!arPropertyParams["COLS"] || arPropertyParams["COLS"]<1) arPropertyParams["COLS"] = '30'; if(arPropertyParams["MULTIPLE"] && arPropertyParams["MULTIPLE"]=='Y' && typeof(arValues)!='object') { if(!arValues) arValues = Array(); } else if(arPropertyParams["TYPE"]&& arPropertyParams["TYPE"]=="LIST" && typeof(arValues)!='object') arValues = Array(arValues); if(arPropertyParams["MULTIPLE"] && arPropertyParams["MULTIPLE"]=='Y') { arPropertyParams["CNT"] = parseInt(arPropertyParams["CNT"]); if(arPropertyParams["CNT"]<1) arPropertyParams["CNT"] = 1; } row = tProp.insertRow(-1); row.className = "bxtaskbarpropscomp"; cell = row.insertCell(-1); cell.width = "50%"; cell.align = "right"; cell.vAlign = "top"; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML': arPropertyParams['NAME']+':'})); cell = row.insertCell(-1); cell.width = "50%"; arPropertyParams["TYPE"] = arPropertyParams["TYPE"].toUpperCase(); switch(arPropertyParams["TYPE"]) { case "LIST": arPropertyParams["SIZE"] = (arPropertyParams["MULTIPLE"]=='Y' && (parseInt(arPropertyParams["SIZE"])<=1 || isNaN(parseInt(arPropertyParams["SIZE"]))) ? '3' : arPropertyParams["SIZE"]); if(parseInt(arPropertyParams["SIZE"])<=0 || isNaN(parseInt(arPropertyParams["SIZE"]))) arPropertyParams["SIZE"] = 1; pSelect = pTaskbar.pMainObj.CreateElement("SELECT", {'size': arPropertyParams["SIZE"], 'name': propertyID+(arPropertyParams["MULTIPLE"]=='Y'?'[]':''), '__exp': 'Y', 'onchange': fChange, "multiple":(arPropertyParams["MULTIPLE"]=="Y")}); cell.appendChild(pSelect); if(!arPropertyParams["VALUES"]) arPropertyParams["VALUES"] = []; bFound = false; for(opt_val in arPropertyParams["VALUES"]) { bSel = false; oOption = new Option(arPropertyParams["VALUES"][opt_val], opt_val, false, false); pSelect.options.add(oOption); if(pSelect.options.length<=1) setTimeout(__BXSetOptionSelected(oOption, false), 1); key = BXSearchInd(arValues, opt_val); if(key>=0) { //alert(opt_val); bFound = true; arUsedValues[key]=true; bSel = true; setTimeout(__BXSetOptionSelected(oOption, true), 1); } } if(arPropertyParams['ADDITIONAL_VALUES']!='N') { oOption = document.createElement("OPTION"); oOption.value = ''; oOption.selected = !bFound; oOption.text = (arPropertyParams['MULTIPLE']=='Y'?BX_MESS.TPropCompNS:BX_MESS.TPropCompOth)+' ->'; pSelect.options.add(oOption, 0); } /* if(propertyID == "IBLOCK") { var x = pSelect; setTimeout(function (){ x.options[2].selected = true; x.options[1].selected = true; }, 19); } pSelect.options[0].selected = true; */ if(arPropertyParams['ADDITIONAL_VALUES']!='N') { if(arPropertyParams['MULTIPLE']=='Y') { for(k=0; k<arValues.length; k++) { if(arUsedValues[k]) continue; cell.appendChild(pTaskbar.pMainObj.CreateElement("BR")); if(arPropertyParams['ROWS']>1) cell.appendChild(pTaskbar.pMainObj.CreateElement("TEXTAREA", {'cols': (isNaN(arPropertyParams['COLS'])?'20':arPropertyParams['COLS']), 'value': arValues[k], 'name': propertyID+'[]', '__exp': 'Y', 'onchange': fChange})); else cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'type': 'text', 'size': (isNaN(arPropertyParams['COLS'])?'20':arPropertyParams['COLS']), 'value': arValues[k], 'name': propertyID+'[]', '__exp': 'Y', 'onchange': fChange})); } for(k=0; k<arPropertyParams["CNT"]; k++) { cell.appendChild(pTaskbar.pMainObj.CreateElement("BR")); if(arPropertyParams['ROWS']>1) cell.appendChild(pTaskbar.pMainObj.CreateElement("TEXTAREA", {'cols': (isNaN(arPropertyParams['COLS'])?'20':arPropertyParams['COLS']), 'value': '', 'name': propertyID+'[]', '__exp': 'Y', 'onchange': fChange})); else cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'type': 'text', 'size': (isNaN(arPropertyParams['COLS'])?'20':arPropertyParams['COLS']), 'value': '', 'name': propertyID+'[]', '__exp': 'Y', 'onchange': fChange})); } xCell = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'type': 'button', 'value': '+', 'pMainObj': pTaskbar.pMainObj, 'arPropertyParams': arPropertyParams})); cell.appendChild(pTaskbar.pMainObj.CreateElement("BR")); xCell.propertyID = propertyID; xCell.fChange = fChange; xCell.onclick = function () { this.parentNode.insertBefore(this.pMainObj.CreateElement("BR"), this); if(this.arPropertyParams['ROWS'] && this.arPropertyParams['ROWS']>1) this.parentNode.insertBefore(this.pMainObj.CreateElement("TEXTAREA", {'cols': (!this.arPropertyParams['COLS'] || isNaN(this.arPropertyParams['COLS'])?'20':this.arPropertyParams['COLS']), 'value': '', 'name': this.propertyID+'[]', '__exp': 'Y', 'onchange': this.fChange}), this); else this.parentNode.insertBefore(this.pMainObj.CreateElement("INPUT", {'type': 'text', 'size': (!this.arPropertyParams['COLS'] || isNaN(this.arPropertyParams['COLS'])?'20':this.arPropertyParams['COLS']), 'value': '', 'name': this.propertyID+'[]', '__exp': 'Y', 'onchange': this.fChange}), this); } } else { val = ''; for(k=0; k<arValues.length; k++) { if(arUsedValues[k]) continue; val = arValues[k]; break; } if(arPropertyParams['ROWS'] && arPropertyParams['ROWS']>1) alt = cell.appendChild(pTaskbar.pMainObj.CreateElement("TEXTAREA", {'cols': (!arPropertyParams['COLS'] || isNaN(arPropertyParams['COLS'])?'20':arPropertyParams['COLS']), 'value': val, 'disabled': bFound, 'name': propertyID+'_alt', '__exp': 'Y', 'onchange': fChange})); else alt = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'type': 'text', 'size': (!arPropertyParams['COLS'] || isNaN(arPropertyParams['COLS'])?'20':arPropertyParams['COLS']), 'value': val, 'disabled': bFound, 'name': propertyID+'_alt', '__exp': 'Y', 'onchange': fChange})); pSelect.pAlt = alt; pSelect.onchange = function (e){this.pAlt.disabled = (this.selectedIndex!=0); fChange(e);}; } } break; default: if(arPropertyParams["MULTIPLE"]=='Y') { bBr = false; for(val in arValues) { if(bBr) cell.appendChild(pTaskbar.pMainObj.CreateElement("BR")); else bBr = true; if(arPropertyParams['ROWS']>1) cell.appendChild(pTaskbar.pMainObj.CreateElement("TEXTAREA", {'cols': (isNaN(arPropertyParams['COLS'])?'20':arPropertyParams['COLS']), 'value': val, 'name': propertyID+'[]', '__exp': 'Y', 'onchange': fChange})); else cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'type': 'text', 'size': (isNaN(arPropertyParams['COLS'])?'20':arPropertyParams['COLS']), 'value': val, 'name': propertyID+'[]', '__exp': 'Y', 'onchange': fChange})); } for(k=0; k<arPropertyParams["CNT"]; k++) { if(bBr) cell.appendChild(pTaskbar.pMainObj.CreateElement("BR")); else bBr = true; if(arPropertyParams['ROWS']>1) cell.appendChild(pTaskbar.pMainObj.CreateElement("TEXTAREA", {'cols': (isNaN(arPropertyParams['COLS'])?'20':arPropertyParams['COLS']), 'value': '', 'name': propertyID+'[]', '__exp': 'Y', 'onchange': fChange})); else cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'type': 'text', 'size': (isNaN(arPropertyParams['COLS'])?'20':arPropertyParams['COLS']), 'value': '', 'name': propertyID+'[]', '__exp': 'Y', 'onchange': fChange})); } xCell = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'type': 'button', 'value': '+', 'pMainObj': pTaskbar.pMainObj, 'arPropertyParams': arPropertyParams})); xCell.propertyID = propertyID; xCell.fChange = fChange; xCell.onclick = function () { this.parentNode.insertBefore(this.pMainObj.CreateElement("BR"), this); if(this.arPropertyParams['ROWS'] && this.arPropertyParams['ROWS']>1) this.parentNode.insertBefore(this.pMainObj.CreateElement("TEXTAREA", {'cols': (!this.arPropertyParams['COLS'] || isNaN(this.arPropertyParams['COLS'])?'20':this.arPropertyParams['COLS']), 'value': '', 'name': this.propertyID+'[]', '__exp': 'Y', 'onchange': this.fChange}), this); else this.parentNode.insertBefore(this.pMainObj.CreateElement("INPUT", {'type': 'text', 'size': (!this.arPropertyParams['COLS'] || isNaN(this.arPropertyParams['COLS'])?'20':this.arPropertyParams['COLS']), 'value': '', 'name': this.propertyID+'[]', '__exp': 'Y', 'onchange': this.fChange}), this); } cell.appendChild(pTaskbar.pMainObj.CreateElement("BR")); } else { val = arValues; if(arPropertyParams['ROWS'] && arPropertyParams['ROWS']>1) cell.appendChild(pTaskbar.pMainObj.CreateElement("TEXTAREA", {'cols': (!arPropertyParams['COLS'] || isNaN(arPropertyParams['COLS'])?'20':arPropertyParams['COLS']), 'value': val, 'name': propertyID, '__exp': 'Y', 'onchange': fChange})); else cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'type': 'text', 'size': (!arPropertyParams['COLS'] || isNaN(arPropertyParams['COLS'])?'20':arPropertyParams['COLS']), 'value': val, 'name': propertyID, '__exp': 'Y', 'onchange': fChange})); } break; } if(arPropertyParams["REFRESH"] && arPropertyParams["REFRESH"]=="Y") { xCell = cell.appendChild(pTaskbar.pMainObj.CreateElement("INPUT", {'type': 'button', 'value': 'ok', 'pMainObj': pTaskbar.pMainObj, 'arPropertyParams': arPropertyParams})); xCell.onclick = function (){BXShowComponentPanel(bNew, pTaskbar, pElement);}; } /* row = tProp.insertRow(-1); cell = row.insertCell(-1); cell.colSpan = "2"; cell.className = " "; */ } var arTemplate; if(tProp.rows.length>0 && (arTemplate = pTaskbar.pMainObj.FindComponentByPath(arSettings["SCRIPT_NAME"]))) { cell = tProp.rows[0].cells[1]; cell.noWrap = true; cell.insertBefore(pTaskbar.pMainObj.CreateElement("IMG", {'src': '/bitrix/images/fileman/htmledit2/info.gif', 'title': arTemplate['FULL_PATH'], 'align': 'right', 'width': '16', 'height':'16'}), cell.childNodes[0]); } pTaskbar.pCellProps.appendChild(tProp); ////////// }; pPropertybarHandlers['component'] = BXShowComponentPanel; pPropertybarHandlers['default'] = function (bNew, pTaskbar, pElement) { if(bNew) { pTaskbar.arElements = Array(); var tProp; var arBarHandlersCache = pTaskbar.pMainObj.arBarHandlersCache; if(arBarHandlersCache['default']) { tProp = arBarHandlersCache['default'][0]; pTaskbar.arElements = arBarHandlersCache['default'][1]; } else { tProp = pTaskbar.pMainObj.pDocument.createElement("TABLE"); tProp.className = "bxtaskbarprops"; tProp.style.width = "100%"; //tProp.style.height = "100%"; tProp.cellSpacing = 0; tProp.cellPadding = 1; var row = tProp.insertRow(-1); //// var cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':BX_MESS.TPropStyle})); cell = row.insertCell(-1); var pObjTemp = pTaskbar.pMainObj.CreateCustomElement('BXStyleList', {'width': '200', 'height': '200', 'field_size': '80', 'title': '(CSS class)', 'filter':['DEFAULT']}); pTaskbar.arElements['cssclass'] = pObjTemp; cell.appendChild(pObjTemp.pWnd); cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':BX_MESS.TPropBIU})); cell = row.insertCell(-1); pObjTemp = pTaskbar.pMainObj.CreateCustomElement(arButtons['Bold'][0], arButtons['Bold'][1]); cell.appendChild(pObjTemp.pWnd); pObjTemp = pTaskbar.pMainObj.CreateCustomElement(arButtons['Italic'][0], arButtons['Italic'][1]); cell.appendChild(pObjTemp.pWnd); pObjTemp = pTaskbar.pMainObj.CreateCustomElement(arButtons['Underline'][0], arButtons['Underline'][1]); cell.appendChild(pObjTemp.pWnd); //// row = tProp.insertRow(-1); cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML': BX_MESS.TPropFFace})); cell = row.insertCell(-1); pObjTemp = pTaskbar.pMainObj.CreateCustomElement(arButtons['FontName'][0], arButtons['FontName'][1]) cell.appendChild(pObjTemp.pWnd); cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML':BX_MESS.TPropFSize})); cell = row.insertCell(-1); pObjTemp = pTaskbar.pMainObj.CreateCustomElement(arButtons['FontSize'][0], arButtons['FontSize'][1]) cell.appendChild(pObjTemp.pWnd); //// row = tProp.insertRow(-1); cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML': BX_MESS.TPropColor})); cell = row.insertCell(-1); pObjTemp = pTaskbar.pMainObj.CreateCustomElement(arButtons['ForeColor'][0], arButtons['ForeColor'][1]); cell.appendChild(pObjTemp.pWnd); cell = row.insertCell(-1); cell.align = 'right'; cell.appendChild(pTaskbar.pMainObj.CreateElement("SPAN", {'innerHTML': BX_MESS.TPropBG})); cell = row.insertCell(-1); pObjTemp = pTaskbar.pMainObj.CreateCustomElement(arButtons['BackColor'][0], arButtons['BackColor'][1]); cell.appendChild(pObjTemp.pWnd); arBarHandlersCache['default'] = [tProp, pTaskbar.arElements]; } pTaskbar.pCellProps.appendChild(tProp); } //pTaskbar.arElements['width_val'].value = Math.random(); //pTaskbar.arElements['height_val'].value = pElement.height; //pTaskbar.arElements['nowrap'].checked = pElement.noWrap; //pTaskbar.arElements['style']; //pTaskbar.arElements['bgcolor']; //pTaskbar.arElements['style']; }