diff --git a/phpgwapi/js/dhtmlxtree/License_GPL.html b/phpgwapi/js/dhtmlxtree/License_GPL.html new file mode 100755 index 0000000000..afe2ef33f0 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/License_GPL.html @@ -0,0 +1,73 @@ +

GNU GENERAL PUBLIC LICENSE

+Version 2, June 1991

+

+

Copyright (C) 1989, 1991 Free Software Foundation, Inc.

+

59 Temple Place - Suite 330, Boston, MA 02111-1307, USA

+

+

Everyone is permitted to copy and distribute verbatim copies

+

of this license document, but changing it is not allowed.

+

+

+

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

+

0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".

+

+

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

+

+

1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

+

+

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

+

+

2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

+

+

+

a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.

+

+

b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

+

+

c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)

+

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

+

+

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

+

+

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

+

+

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

+

+

a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

+

+

b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

+

+

c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

+

The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

+

+

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

+

+

4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

+

+

5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

+

+

6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

+

+

7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

+

+

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

+

+

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

+

+

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

+

+

8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

+

+

9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

+

+

Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

+

+

10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

+

+

NO WARRANTY

+

+

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

+

+

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+

+

\ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/css/dhtmlxtree.css b/phpgwapi/js/dhtmlxtree/css/dhtmlxtree.css new file mode 100755 index 0000000000..65f4f16f0b --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/css/dhtmlxtree.css @@ -0,0 +1,136 @@ +.defaultTreeTable{ + margin : 0px; + padding : 0px; + border : 0px; +} +.containerTableStyle { overflow : auto; position:relative; top:0; font-size : 12px; -khtml-user-select: none;} +.containerTableStyleRTL span { direction: rtl; unicode-bidi: bidi-override; } +.containerTableStyleRTL { direction: rtl; overflow : auto; position:relative; top:0; font-size : 12px;} +.standartTreeRow { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 12px; -moz-user-select: none; } +.selectedTreeRow{ background-color : navy; color:white; font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 12px; -moz-user-select: none; } +.dragAndDropRow{ background-color : navy; color:white; } +.standartTreeRow_lor{ text-decoration:underline; background-color : #FFFFF0; font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 12px; -moz-user-select: none; } +.selectedTreeRow_lor{ text-decoration:underline; background-color : navy; color:white; font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 12px; -moz-user-select: none; } + +.standartTreeImage{ width:18px; height:18px; overflow:hidden; border:0; padding:0; margin:0; +font-size:1px; } +.hiddenRow { width:1px; overflow:hidden; } +.dragSpanDiv,.dragSpanDiv td{ font-size : 12px; background-color:white; z-index:999; } +.a_dhx_hidden_input{ position:absolute; top:-1px; left:-1px; width:1px; height:1px; border:none; background:none; } +.a_dhx_hidden_input{ position:absolute; top:-1px; left:-1px; width:1px; height:1px; border:none; background:none; } + +.selectionBox{ +background-color: #FFFFCC; +} +.selectionBar { + top:0; + background-color: Black; + position:absolute; + overflow:hidden; + height: 2px; + z-index : 11; +} + +.intreeeditRow{ + font-size:8pt; height:16px; border:1px solid silver; padding:0; margin:0; + margin-left:4px; + -moz-user-select: text; + -khtml-user-select: text; +} +.dhx_tree_textSign{ + font-size:8pt; + font-family:monospace; + width:21px; + color:black; + padding:0px; + margin:0px; + cursor:pointer; + text-align: center; +} +.dhx_tree_opacity{ + opacity:0; + -moz-opacity:0; + filter:alpha(opacity=0); +} +.dhx_bg_img_fix{ +width:18px; +height:18px; +background-repeat: no-repeat; +background-position: center; +background-position-x: center; +background-position-y: center; +} + +.dhxtree_dhx_black, .dhxtree_dhx_skyblue{ + background:white; + color:black; +} +*html .dhxtree_dhx_skyblue .standartTreeRow, *html .dhxtree_dhx_skyblue .standartTreeRow_lor{ + border-right:0px solid red; + border-left:0px solid red; +} +*html .dhxtree_dhx_skyblue span.standartTreeRow, *html .dhxtree_dhx_skyblue span.standartTreeRow_lor{ + margin-left:1px; +} + +.dhxtree_dhx_skyblue .standartTreeRow, .dhxtree_dhx_skyblue .standartTreeRow_lor{ + border-right:1px solid transparent; + border-left: 1px solid transparent; + font-family:Tahoma; + font-size:11px !important; + overflow:hidden; + padding:0px 0px 0px 0px; +} +.dhxtree_dhx_skyblue .selectedTreeRow_lor, .dhxtree_dhx_skyblue .selectedTreeRow{ + background-color:white; + background-image:url(imgs/sky_blue_sel_tree.png); + background-repeat:repeat-x; + border:1px solid #FFB951; + color:black; + + line-height:17px; + + font-size:11px !important; + font-family:Tahoma; + overflow:hidden; +} +html > body /**/ .dhxtree_dhx_skyblue .selectedTreeRow, html > body /**/ .dhxtree_dhx_skyblue .selectedTreeRow_lor{ + padding:1px 0px 1px 0px; + line-height:normal; + display:inline-block !ie; + height:13px; +} +body:nth-of-type(1) .dhxtree_dhx_skyblue span.selectedTreeRow, body:nth-of-type(1) .dhxtree_dhx_skyblue span.selectedTreeRow_lor{ + padding:1px 0px 1px 0px; + display:inline-block; + padding-top:0px; + height:13px; +} +body:nth-of-type(1) .dhxtree_dhx_skyblue span.standartTreeRow, body:nth-of-type(1) .dhxtree_dhx_skyblue span.standartTreeRow_lor{ + display:inline-block; + height:14px; +} + +.dhxtree_dhx_web .selectedTreeRow_lor, .dhxtree_dhx_web .selectedTreeRow{ + background-color:transparent; + +} +.dhxtree_dhx_web span.selectedTreeRow_lor , .dhxtree_dhx_web span.selectedTreeRow{ + background-color:#ACDAF0; + color:black; +} + +.dhxtree_dhx_web td.standartTreeRow, .dhxtree_dhx_web td.selectedTreeRow{ + padding-left:2px; +} +.dhxtree_dhx_web span.standartTreeRow, .dhxtree_dhx_web span.selectedTreeRow{ + padding-left:3px !important; +} + + + +.dhxtree_dhx_web .standartTreeRow, .dhxtree_dhx_web .standartTreeRow, .dhxtree_dhx_web .selectedTreeRow_lor, .dhxtree_dhx_web .selectedTreeRow{ + font-size:12px; + font-family:Tahoma; + overflow:hidden; +} diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxConnector/readme.txt b/phpgwapi/js/dhtmlxtree/dhtmlxConnector/readme.txt new file mode 100755 index 0000000000..7250a6791c --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxConnector/readme.txt @@ -0,0 +1,4 @@ +dhtmlxConnector is available for different server side platforms. +Please visit its home page to learn more and download necessary package. + +http://www.dhtmlx.com/docs/products/dhtmlxConnector/index.shtml \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxDataProcessor/codebase/dhtmlxdataprocessor.js b/phpgwapi/js/dhtmlxtree/dhtmlxDataProcessor/codebase/dhtmlxdataprocessor.js new file mode 100755 index 0000000000..17d9d4ad82 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxDataProcessor/codebase/dhtmlxdataprocessor.js @@ -0,0 +1,152 @@ +//v.2.6 build 100722 + +/* +Copyright DHTMLX LTD. http://www.dhtmlx.com +You allowed to use this component or parts of it under GPL terms +To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com +*/ + +function dataProcessor(serverProcessorURL){this.serverProcessor = serverProcessorURL;this.action_param="!nativeeditor_status";this.object = null;this.updatedRows = [];this.autoUpdate = true;this.updateMode = "cell";this._tMode="GET";this.post_delim = "_";this._waitMode=0;this._in_progress={};this._invalid={};this.mandatoryFields=[];this.messages=[];this.styles={updated:"font-weight:bold;", + inserted:"font-weight:bold;", + deleted:"text-decoration : line-through;", + invalid:"background-color:FFE0E0;", + invalid_cell:"border-bottom:2px solid red;", + error:"color:red;", + clear:"font-weight:normal;text-decoration:none;" + };this.enableUTFencoding(true);dhtmlxEventable(this);return this;};dataProcessor.prototype={setTransactionMode:function(mode,total){this._tMode=mode;this._tSend=total;}, + escape:function(data){if (this._utf)return encodeURIComponent(data);else + return escape(data);}, + + enableUTFencoding:function(mode){this._utf=convertStringToBoolean(mode);}, + + setDataColumns:function(val){this._columns=(typeof val == "string")?val.split(","):val;}, + + getSyncState:function(){return !this.updatedRows.length;}, + + enableDataNames:function(mode){this._endnm=convertStringToBoolean(mode);}, + + enablePartialDataSend:function(mode){this._changed=convertStringToBoolean(mode);}, + + setUpdateMode:function(mode,dnd){this.autoUpdate = (mode=="cell");this.updateMode = mode;this.dnd=dnd;}, + ignore:function(code,master){this._silent_mode=true;code.call(master||window);this._silent_mode=false;}, + + setUpdated:function(rowId,state,mode){if (this._silent_mode)return;var ind=this.findRow(rowId);mode=mode||"updated";var existing = this.obj.getUserData(rowId,this.action_param);if (existing && mode == "updated")mode=existing;if (state){this.set_invalid(rowId,false);this.updatedRows[ind]=rowId;this.obj.setUserData(rowId,this.action_param,mode);if (this._in_progress[rowId])this._in_progress[rowId]="wait";}else{if (!this.is_invalid(rowId)){this.updatedRows.splice(ind,1);this.obj.setUserData(rowId,this.action_param,"");}};if (!state)this._clearUpdateFlag(rowId);this.markRow(rowId,state,mode);if (state && this.autoUpdate)this.sendData(rowId);}, + _clearUpdateFlag:function(id){}, + markRow:function(id,state,mode){var str="";var invalid=this.is_invalid(id);if (invalid){str=this.styles[invalid];state=true;};if (this.callEvent("onRowMark",[id,state,mode,invalid])){str=this.styles[state?mode:"clear"]+str;this.obj[this._methods[0]](id,str);if (invalid && invalid.details){str+=this.styles[invalid+"_cell"];for (var i=0;i < invalid.details.length;i++)if (invalid.details[i])this.obj[this._methods[1]](id,i,str);}}}, + getState:function(id){return this.obj.getUserData(id,this.action_param);}, + is_invalid:function(id){return this._invalid[id];}, + set_invalid:function(id,mode,details){if (details)mode={value:mode, details:details, toString:function(){return this.value.toString();}};this._invalid[id]=mode;}, + + checkBeforeUpdate:function(rowId){return true;}, + + sendData:function(rowId){if (this._waitMode && (this.obj.mytype=="tree" || this.obj._h2)) return;if (this.obj.editStop)this.obj.editStop();if(typeof rowId == "undefined" || this._tSend)return this.sendAllData();if (this._in_progress[rowId])return false;this.messages=[];if (!this.checkBeforeUpdate(rowId)&& this.callEvent("onValidatationError",[rowId,this.messages])) return false;this._beforeSendData(this._getRowData(rowId),rowId);}, + _beforeSendData:function(data,rowId){if (!this.callEvent("onBeforeUpdate",[rowId,this.getState(rowId),data])) return false;this._sendData(data,rowId);}, + serialize:function(data, id){if (typeof id != "undefined")return this.serialize_one(data,"");else{var stack = [];var keys = [];for (var key in data)if (data.hasOwnProperty(key)){stack.push(this.serialize_one(data[key],key+this.post_delim));keys.push(key);};stack.push("ids="+this.escape(keys.join(",")));return stack.join("&");}}, + serialize_one:function(data, pref){if (typeof data == "string")return data;var stack = [];for (var key in data)if (data.hasOwnProperty(key)) + stack.push(this.escape((pref||"")+key)+"="+this.escape(data[key]));return stack.join("&");}, + _sendData:function(a1,rowId){if (!a1)return;if (!this.callEvent("onBeforeDataSending",rowId?[rowId,this.getState(rowId),a1]:[null, null, a1])) return false;if (rowId)this._in_progress[rowId]=(new Date()).valueOf();var a2=new dtmlXMLLoaderObject(this.afterUpdate,this,true);var a3 = this.serverProcessor+(this._user?(getUrlSymbol(this.serverProcessor)+["dhx_user="+this._user,"dhx_version="+this.obj.getUserData(0,"version")].join("&")):"");if (this._tMode!="POST")a2.loadXML(a3+((a3.indexOf("?")!=-1)?"&":"?")+this.serialize(a1,rowId));else + a2.loadXML(a3,true,this.serialize(a1));this._waitMode++;}, + sendAllData:function(){if (!this.updatedRows.length)return;this.messages=[];var valid=true;for (var i=0;i[close] [clear]  DataProcessor

 Current state
 Log:
";if (document.body)document.body.insertBefore(c,document.body.firstChild);else dhtmlxEvent(window,"load",function(){document.body.insertBefore(c,document.body.firstChild);}) + dhtmlxEvent(window,"dblclick",function(){c.style.display='';}) + return c;};dataProcessor.prototype._error=function(data){this._log(""+data+"");};dataProcessor.prototype._log=function(data){var div=document.createElement("DIV");div.innerHTML = data;var parent=this._console.childNodes[2];parent.appendChild(div);parent.scrollTop=parent.scrollHeight;if (window.console && window.console.log)window.console.log("DataProcessor :: "+data.replace(" "," ").replace("","").replace("",""));};dataProcessor.prototype._updateStat=function(data){var data=[" Current state"];for(var i=0;i")+"
Current mode: "+this.updateMode;};dataProcessor.prototype.xml_analize=function(xml){if (_isFF){if (!xml.xmlDoc.responseXML)this._error("Not an XML, probably incorrect content type specified ( must be text/xml ), or some text output was started before XML data");else if (xml.xmlDoc.responseXML.firstChild.tagName=="parsererror")this._error(xml.xmlDoc.responseXML.firstChild.textContent);else return true;}else if (_isIE){if (xml.xmlDoc.responseXML.parseError.errorCode)this._error("XML error : "+xml.xmlDoc.responseXML.parseError.reason);else if (!xml.xmlDoc.responseXML.documentElement)this._error("Not an XML, probably incorrect content type specified ( must be text/xml ), or some text output was started before XML data");else return true;};return false;};dataProcessor.wrap=function(name,before,after){var d=dataProcessor.prototype;if (!d._wrap)d._wrap={};d._wrap[name]=d[name];d[name]=function(){if (before)before.apply(this,arguments);var res=d._wrap[name].apply(this,arguments);if (after)after.apply(this,[arguments,res]);return res;}};dataProcessor.wrap("setUpdated",function(rowId,state,mode){this._log(" row "+rowId+" "+(state?"marked":"unmarked")+" ["+(mode||"updated")+","+(this.is_invalid(rowId)||"valid")+"]");},function(){this._updateStat();});dataProcessor.wrap("sendData",function(rowId){if (rowId){this._log(" Initiating data sending for "+rowId+"");if (this.obj.mytype=="tree"){if (!this.obj._idpull[rowId])this._log(" Error! item with such ID not exists "+rowId+"");}else {if (!this.obj.rowsAr[rowId])this._log(" Error! row with such ID not exists "+rowId+"");}}},function(){});dataProcessor.wrap("sendAllData",function(){this._log(" Initiating data sending for all rows ");},function(){});dataProcessor.logSingle=function(data,id){var tdata = {};if (id)tdata[id] = data;else + tdata = data;var url = [];for (var key in tdata){url.push("
"+key+"");var suburl = [];for (var ikey in tdata[key])suburl.push(ikey+" = "+tdata[key][ikey]);url.push(suburl.join("
"));url.push("
");};return url.join("");};dataProcessor.wrap("_sendData",function(data,rowId){if (rowId)this._log(" Sending in one-by-one mode, current ID = "+rowId);else + this._log(" Sending all data at once");this._log(" Server url: "+this.serverProcessor+" parameters");var url = [];this._log("
"+dataProcessor.logSingle(data,rowId)+"
");},function(){});dataProcessor.wrap("afterUpdate",function(that,b,c,d,xml){that._log(" Server response received details
"+(xml.xmlDoc.responseText||"").replace(/\&/g,"&").replace(//g,">")+"
");if (!that.xml_analize(xml)) return;var atag=xml.doXPath("//data/action");if (!atag){that._log(" No actions found");var atag=xml.getXMLTopNode("data");if (!atag)that._log(" XML not valid");else that._log(" Incorrect content type - need to be text/xml");}},function(){});dataProcessor.wrap("afterUpdateCallback",function(sid,tid,action){if (this.obj.mytype=="tree"){if (!this.obj._idpull[sid])this._log("Incorrect SID, item with such ID not exists in grid");}else {if (!this.obj.rowsAr[sid])this._log("Incorrect SID, row with such ID not exists in grid");};this._log(" Action: "+action+" SID:"+sid+" TID:"+tid);},function(){}); + + + + + + + +//v.2.6 build 100722 + +/* +Copyright DHTMLX LTD. http://www.dhtmlx.com +You allowed to use this component or parts of it under GPL terms +To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com +*/ \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxDataProcessor/codebase/dhtmlxdataprocessor_deprecated.js b/phpgwapi/js/dhtmlxtree/dhtmlxDataProcessor/codebase/dhtmlxdataprocessor_deprecated.js new file mode 100755 index 0000000000..2ce6e2cd59 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxDataProcessor/codebase/dhtmlxdataprocessor_deprecated.js @@ -0,0 +1,17 @@ +//v.2.6 build 100722 + +/* +Copyright DHTMLX LTD. http://www.dhtmlx.com +You allowed to use this component or parts of it under GPL terms +To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com +*/ + + + dataProcessor.prototype.setOnAfterUpdate = function(ev){this.attachEvent("onAfterUpdate",ev);};dataProcessor.prototype.enableDebug = function(mode){};dataProcessor.prototype.setOnBeforeUpdateHandler=function(func){this.attachEvent("onBeforeDataSending",func);}; +//v.2.6 build 100722 + +/* +Copyright DHTMLX LTD. http://www.dhtmlx.com +You allowed to use this component or parts of it under GPL terms +To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com +*/ \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxDataProcessor/readme.txt b/phpgwapi/js/dhtmlxtree/dhtmlxDataProcessor/readme.txt new file mode 100755 index 0000000000..03c882bcbe --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxDataProcessor/readme.txt @@ -0,0 +1,3 @@ +dhtmlxDataProcessor v.2.6 Standard edition build 100722 + +(c) DHTMLX Ltd. \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxDataProcessor/sources/dhtmlxdataprocessor.js b/phpgwapi/js/dhtmlxtree/dhtmlxDataProcessor/sources/dhtmlxdataprocessor.js new file mode 100755 index 0000000000..b9ccc77c6f --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxDataProcessor/sources/dhtmlxdataprocessor.js @@ -0,0 +1,584 @@ +//v.2.6 build 100722 + +/* +Copyright DHTMLX LTD. http://www.dhtmlx.com +You allowed to use this component or parts of it under GPL terms +To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com +*/ +/** + * @desc: constructor, data processor object + * @param: serverProcessorURL - url used for update + * @type: public + */ +function dataProcessor(serverProcessorURL){ + this.serverProcessor = serverProcessorURL; + this.action_param="!nativeeditor_status"; + + this.object = null; + this.updatedRows = []; //ids of updated rows + + this.autoUpdate = true; + this.updateMode = "cell"; + this._tMode="GET"; + this.post_delim = "_"; + + this._waitMode=0; + this._in_progress={};//? + this._invalid={}; + this.mandatoryFields=[]; + this.messages=[]; + + this.styles={ + updated:"font-weight:bold;", + inserted:"font-weight:bold;", + deleted:"text-decoration : line-through;", + invalid:"background-color:FFE0E0;", + invalid_cell:"border-bottom:2px solid red;", + error:"color:red;", + clear:"font-weight:normal;text-decoration:none;" + }; + + this.enableUTFencoding(true); + dhtmlxEventable(this); + + return this; + } + +dataProcessor.prototype={ + /** + * @desc: select GET or POST transaction model + * @param: mode - GET/POST + * @param: total - true/false - send records row by row or all at once (for grid only) + * @type: public + */ + setTransactionMode:function(mode,total){ + this._tMode=mode; + this._tSend=total; + }, + escape:function(data){ + if (this._utf) + return encodeURIComponent(data); + else + return escape(data); + }, + /** + * @desc: allows to set escaping mode + * @param: true - utf based escaping, simple - use current page encoding + * @type: public + */ + enableUTFencoding:function(mode){ + this._utf=convertStringToBoolean(mode); + }, + /** + * @desc: allows to define, which column may trigger update + * @param: val - array or list of true/false values + * @type: public + */ + setDataColumns:function(val){ + this._columns=(typeof val == "string")?val.split(","):val; + }, + /** + * @desc: get state of updating + * @returns: true - all in sync with server, false - some items not updated yet. + * @type: public + */ + getSyncState:function(){ + return !this.updatedRows.length; + }, + /** + * @desc: enable/disable named field for data syncing, will use column ids for grid + * @param: mode - true/false + * @type: public + */ + enableDataNames:function(mode){ + this._endnm=convertStringToBoolean(mode); + }, + /** + * @desc: enable/disable mode , when only changed fields and row id send to the server side, instead of all fields in default mode + * @param: mode - true/false + * @type: public + */ + enablePartialDataSend:function(mode){ + this._changed=convertStringToBoolean(mode); + }, + /** + * @desc: set if rows should be send to server automaticaly + * @param: mode - "row" - based on row selection changed, "cell" - based on cell editing finished, "off" - manual data sending + * @type: public + */ + setUpdateMode:function(mode,dnd){ + this.autoUpdate = (mode=="cell"); + this.updateMode = mode; + this.dnd=dnd; + }, + ignore:function(code,master){ + this._silent_mode=true; + code.call(master||window); + this._silent_mode=false; + }, + /** + * @desc: mark row as updated/normal. check mandatory fields,initiate autoupdate (if turned on) + * @param: rowId - id of row to set update-status for + * @param: state - true for "updated", false for "not updated" + * @param: mode - update mode name + * @type: public + */ + setUpdated:function(rowId,state,mode){ + if (this._silent_mode) return; + var ind=this.findRow(rowId); + + mode=mode||"updated"; + var existing = this.obj.getUserData(rowId,this.action_param); + if (existing && mode == "updated") mode=existing; + if (state){ + this.set_invalid(rowId,false); //clear previous error flag + this.updatedRows[ind]=rowId; + this.obj.setUserData(rowId,this.action_param,mode); + if (this._in_progress[rowId]) + this._in_progress[rowId]="wait"; + } else{ + if (!this.is_invalid(rowId)){ + this.updatedRows.splice(ind,1); + this.obj.setUserData(rowId,this.action_param,""); + } + } + + //clear changed flag + if (!state) + this._clearUpdateFlag(rowId); + + this.markRow(rowId,state,mode); + if (state && this.autoUpdate) this.sendData(rowId); + }, + _clearUpdateFlag:function(id){}, + markRow:function(id,state,mode){ + var str=""; + var invalid=this.is_invalid(id); + if (invalid){ + str=this.styles[invalid]; + state=true; + } + if (this.callEvent("onRowMark",[id,state,mode,invalid])){ + //default logic + str=this.styles[state?mode:"clear"]+str; + + this.obj[this._methods[0]](id,str); + + if (invalid && invalid.details){ + str+=this.styles[invalid+"_cell"]; + for (var i=0; i < invalid.details.length; i++) + if (invalid.details[i]) + this.obj[this._methods[1]](id,i,str); + } + } + }, + getState:function(id){ + return this.obj.getUserData(id,this.action_param); + }, + is_invalid:function(id){ + return this._invalid[id]; + }, + set_invalid:function(id,mode,details){ + if (details) mode={value:mode, details:details, toString:function(){ return this.value.toString(); }}; + this._invalid[id]=mode; + }, + /** + * @desc: check mandatory fields and varify values of cells, initiate update (if specified) + * @param: rowId - id of row to set update-status for + * @type: public + */ + checkBeforeUpdate:function(rowId){ + return true; + }, + /** + * @desc: send row(s) values to server + * @param: rowId - id of row which data to send. If not specified, then all "updated" rows will be send + * @type: public + */ + sendData:function(rowId){ + if (this._waitMode && (this.obj.mytype=="tree" || this.obj._h2)) return; + if (this.obj.editStop) this.obj.editStop(); + + + if(typeof rowId == "undefined" || this._tSend) return this.sendAllData(); + if (this._in_progress[rowId]) return false; + + this.messages=[]; + if (!this.checkBeforeUpdate(rowId) && this.callEvent("onValidatationError",[rowId,this.messages])) return false; + this._beforeSendData(this._getRowData(rowId),rowId); + }, + _beforeSendData:function(data,rowId){ + if (!this.callEvent("onBeforeUpdate",[rowId,this.getState(rowId),data])) return false; + this._sendData(data,rowId); + }, + serialize:function(data, id){ + if (typeof id != "undefined") + return this.serialize_one(data,""); + else{ + var stack = []; + var keys = []; + for (var key in data) + if (data.hasOwnProperty(key)){ + stack.push(this.serialize_one(data[key],key+this.post_delim)); + keys.push(key); + } + stack.push("ids="+this.escape(keys.join(","))); + return stack.join("&"); + } + }, + serialize_one:function(data, pref){ + if (typeof data == "string") + return data; + var stack = []; + for (var key in data) + if (data.hasOwnProperty(key)) + stack.push(this.escape((pref||"")+key)+"="+this.escape(data[key])); + return stack.join("&"); + }, + _sendData:function(a1,rowId){ + if (!a1) return; //nothing to send + if (!this.callEvent("onBeforeDataSending",rowId?[rowId,this.getState(rowId),a1]:[null, null, a1])) return false; + + if (rowId) + this._in_progress[rowId]=(new Date()).valueOf(); + var a2=new dtmlXMLLoaderObject(this.afterUpdate,this,true); + + var a3 = this.serverProcessor+(this._user?(getUrlSymbol(this.serverProcessor)+["dhx_user="+this._user,"dhx_version="+this.obj.getUserData(0,"version")].join("&")):""); + + if (this._tMode!="POST") + a2.loadXML(a3+((a3.indexOf("?")!=-1)?"&":"?")+this.serialize(a1,rowId)); + else + a2.loadXML(a3,true,this.serialize(a1)); + + this._waitMode++; + }, + sendAllData:function(){ + if (!this.updatedRows.length) return; + + this.messages=[]; var valid=true; + for (var i=0; i[close] [clear]  DataProcessor
 Current state
 Log:
"; + if (document.body) document.body.insertBefore(c,document.body.firstChild); + else dhtmlxEvent(window,"load",function(){ + document.body.insertBefore(c,document.body.firstChild); + }) + dhtmlxEvent(window,"dblclick",function(){ + c.style.display=''; + }) + return c; +} + +dataProcessor.prototype._error=function(data){ + this._log(""+data+""); +} +dataProcessor.prototype._log=function(data){ + var div=document.createElement("DIV"); + div.innerHTML = data; + var parent=this._console.childNodes[2]; + parent.appendChild(div); + parent.scrollTop=parent.scrollHeight; + + if (window.console && window.console.log) + window.console.log("DataProcessor :: "+data.replace(" "," ").replace("","").replace("","")); + +} +dataProcessor.prototype._updateStat=function(data){ + var data=[" Current state"]; + for(var i=0;i")+"
Current mode: "+this.updateMode; +} +dataProcessor.prototype.xml_analize=function(xml){ + if (_isFF){ + if (!xml.xmlDoc.responseXML) + this._error("Not an XML, probably incorrect content type specified ( must be text/xml ), or some text output was started before XML data"); + else if (xml.xmlDoc.responseXML.firstChild.tagName=="parsererror") + this._error(xml.xmlDoc.responseXML.firstChild.textContent); + else return true; + } else if (_isIE){ + if (xml.xmlDoc.responseXML.parseError.errorCode) + this._error("XML error : "+xml.xmlDoc.responseXML.parseError.reason); + else if (!xml.xmlDoc.responseXML.documentElement) + this._error("Not an XML, probably incorrect content type specified ( must be text/xml ), or some text output was started before XML data"); + else return true; + } + return false; +} + +dataProcessor.wrap=function(name,before,after){ + var d=dataProcessor.prototype; + if (!d._wrap) d._wrap={}; + d._wrap[name]=d[name]; + d[name]=function(){ + if (before) before.apply(this,arguments); + var res=d._wrap[name].apply(this,arguments); + if (after) after.apply(this,[arguments,res]); + return res; + } +}; + +dataProcessor.wrap("setUpdated",function(rowId,state,mode){ + this._log(" row "+rowId+" "+(state?"marked":"unmarked")+" ["+(mode||"updated")+","+(this.is_invalid(rowId)||"valid")+"]"); +},function(){ + this._updateStat(); +}); + + + +dataProcessor.wrap("sendData",function(rowId){ + if (rowId){ + this._log(" Initiating data sending for "+rowId+""); + if (this.obj.mytype=="tree"){ + if (!this.obj._idpull[rowId]) + this._log(" Error! item with such ID not exists "+rowId+""); + } else { + if (!this.obj.rowsAr[rowId]) + this._log(" Error! row with such ID not exists "+rowId+""); + } + } +},function(){ + +}); + +dataProcessor.wrap("sendAllData",function(){ + this._log(" Initiating data sending for all rows "); +},function(){ + +}); +dataProcessor.logSingle=function(data,id){ + var tdata = {}; + if (id) + tdata[id] = data; + else + tdata = data; + + var url = []; + for (var key in tdata) { + url.push("
"+key+""); + var suburl = []; + + for (var ikey in tdata[key]) + suburl.push(ikey+" = "+tdata[key][ikey]); + + url.push(suburl.join("
")); + url.push("
"); + } + return url.join(""); +} +dataProcessor.wrap("_sendData",function(data,rowId){ + if (rowId) + this._log(" Sending in one-by-one mode, current ID = "+rowId); + else + this._log(" Sending all data at once"); + this._log(" Server url: "+this.serverProcessor+" parameters"); + var url = []; + this._log("
"+dataProcessor.logSingle(data,rowId)+"
"); +},function(){ + +}); + + +dataProcessor.wrap("afterUpdate",function(that,b,c,d,xml){ + that._log(" Server response received details
"+(xml.xmlDoc.responseText||"").replace(/\&/g,"&").replace(//g,">")+"
"); + if (!that.xml_analize(xml)) return; + var atag=xml.doXPath("//data/action"); + if (!atag){ + that._log(" No actions found"); + var atag=xml.getXMLTopNode("data"); + if (!atag) that._log(" XML not valid"); + else that._log(" Incorrect content type - need to be text/xml"); + } +},function(){ + +}); + +dataProcessor.wrap("afterUpdateCallback",function(sid,tid,action){ + if (this.obj.mytype=="tree"){ + if (!this.obj._idpull[sid]) this._log("Incorrect SID, item with such ID not exists in grid"); + } else { + if (!this.obj.rowsAr[sid]) this._log("Incorrect SID, row with such ID not exists in grid"); + } + this._log(" Action: "+action+" SID:"+sid+" TID:"+tid); +},function(){ + +}); + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxDataProcessor/sources/dhtmlxdataprocessor_deprecated.js b/phpgwapi/js/dhtmlxtree/dhtmlxDataProcessor/sources/dhtmlxdataprocessor_deprecated.js new file mode 100755 index 0000000000..9d8dc6b793 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxDataProcessor/sources/dhtmlxdataprocessor_deprecated.js @@ -0,0 +1,45 @@ +//v.2.6 build 100722 + +/* +Copyright DHTMLX LTD. http://www.dhtmlx.com +You allowed to use this component or parts of it under GPL terms +To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com +*/ + + /** + * @desc: set function called after row updated + * @param: func - event handling function (or its name) + * @type: deprecated + * @topic: 10 + * @event: onAfterUpdate + * @eventdesc: Event raised after row updated on server side + * @eventparam: ID of clicked row + * @eventparam: type of command + * @eventparam: new Id, for _insert_ command + */ + dataProcessor.prototype.setOnAfterUpdate = function(ev){ + this.attachEvent("onAfterUpdate",ev); + } + + /** + * @desc: enable/disable debuging + * @param: mode - true/false + * @type: deprecated + */ + dataProcessor.prototype.enableDebug = function(mode){ + } + +/** +* @desc: set function called before server request sent ( can be used for including custom client server transport system) +* @param: func - event handling function +* @type: public +* @topic: 0 +* @event: onBeforeUpdate +* @eventdesc: Event occured in moment before data sent to server +* @eventparam: ID of item which need to be updated +* @eventparam: type of operation +* @eventreturns: false to block default sending routine +*/ + dataProcessor.prototype.setOnBeforeUpdateHandler=function(func){ + this.attachEvent("onBeforeDataSending",func); + }; \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/codebase/dhtmlxcommon.js b/phpgwapi/js/dhtmlxtree/dhtmlxTree/codebase/dhtmlxcommon.js new file mode 100755 index 0000000000..e8144c718a --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/codebase/dhtmlxcommon.js @@ -0,0 +1,928 @@ +dhtmlx=function(obj){ + for (var a in obj) dhtmlx[a]=obj[a]; + return dhtmlx; //simple singleton +}; +dhtmlx.extend_api=function(name,map,ext){ + var t = window[name]; + if (!t) return; //component not defined + window[name]=function(obj){ + if (obj && typeof obj == "object" && !obj.tagName){ + var that = t.apply(this,(map._init?map._init(obj):arguments)); + //global settings + for (var a in dhtmlx) + if (map[a]) this[map[a]](dhtmlx[a]); + //local settings + for (var a in obj){ + if (map[a]) this[map[a]](obj[a]); + else if (a.indexOf("on")==0){ + this.attachEvent(a,obj[a]); + } + } + } else + var that = t.apply(this,arguments); + if (map._patch) map._patch(this); + return that||this; + }; + window[name].prototype=t.prototype; + if (ext) + dhtmlXHeir(window[name].prototype,ext); +}; + +dhtmlxAjax={ + get:function(url,callback){ + var t=new dtmlXMLLoaderObject(true); + t.async=(arguments.length<3); + t.waitCall=callback; + t.loadXML(url) + return t; + }, + post:function(url,post,callback){ + var t=new dtmlXMLLoaderObject(true); + t.async=(arguments.length<4); + t.waitCall=callback; + t.loadXML(url,true,post) + return t; + }, + getSync:function(url){ + return this.get(url,null,true) + }, + postSync:function(url,post){ + return this.post(url,post,null,true); + } +} + +/** + * @desc: xmlLoader object + * @type: private + * @param: funcObject - xml parser function + * @param: object - jsControl object + * @param: async - sync/async mode (async by default) + * @param: rSeed - enable/disable random seed ( prevent IE caching) + * @topic: 0 + */ +function dtmlXMLLoaderObject(funcObject, dhtmlObject, async, rSeed){ + this.xmlDoc=""; + + if (typeof (async) != "undefined") + this.async=async; + else + this.async=true; + + this.onloadAction=funcObject||null; + this.mainObject=dhtmlObject||null; + this.waitCall=null; + this.rSeed=rSeed||false; + return this; +}; +/** + * @desc: xml loading handler + * @type: private + * @param: dtmlObject - xmlLoader object + * @topic: 0 + */ +dtmlXMLLoaderObject.prototype.waitLoadFunction=function(dhtmlObject){ + var once = true; + this.check=function (){ + if ((dhtmlObject)&&(dhtmlObject.onloadAction != null)){ + if ((!dhtmlObject.xmlDoc.readyState)||(dhtmlObject.xmlDoc.readyState == 4)){ + if (!once) + return; + + once=false; //IE 5 fix + if (typeof dhtmlObject.onloadAction == "function") + dhtmlObject.onloadAction(dhtmlObject.mainObject, null, null, null, dhtmlObject); + + if (dhtmlObject.waitCall){ + dhtmlObject.waitCall.call(this,dhtmlObject); + dhtmlObject.waitCall=null; + } + } + } + }; + return this.check; +}; + +/** + * @desc: return XML top node + * @param: tagName - top XML node tag name (not used in IE, required for Safari and Mozilla) + * @type: private + * @returns: top XML node + * @topic: 0 + */ +dtmlXMLLoaderObject.prototype.getXMLTopNode=function(tagName, oldObj){ + if (this.xmlDoc.responseXML){ + var temp = this.xmlDoc.responseXML.getElementsByTagName(tagName); + if(temp.length==0 && tagName.indexOf(":")!=-1) + var temp = this.xmlDoc.responseXML.getElementsByTagName((tagName.split(":"))[1]); + var z = temp[0]; + } else + var z = this.xmlDoc.documentElement; + + if (z){ + this._retry=false; + return z; + } + + if ((_isIE)&&(!this._retry)){ + //fall back to MS.XMLDOM + var xmlString = this.xmlDoc.responseText; + var oldObj = this.xmlDoc; + this._retry=true; + this.xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); + this.xmlDoc.async=false; + this.xmlDoc["loadXM"+"L"](xmlString); + + return this.getXMLTopNode(tagName, oldObj); + } + dhtmlxError.throwError("LoadXML", "Incorrect XML", [ + (oldObj||this.xmlDoc), + this.mainObject + ]); + + return document.createElement("DIV"); +}; + +/** + * @desc: load XML from string + * @type: private + * @param: xmlString - xml string + * @topic: 0 + */ +dtmlXMLLoaderObject.prototype.loadXMLString=function(xmlString){ + { + try{ + var parser = new DOMParser(); + this.xmlDoc=parser.parseFromString(xmlString, "text/xml"); + } + catch (e){ + this.xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); + this.xmlDoc.async=this.async; + this.xmlDoc["loadXM"+"L"](xmlString); + } + } + + this.onloadAction(this.mainObject, null, null, null, this); + + if (this.waitCall){ + this.waitCall(); + this.waitCall=null; + } +} +/** + * @desc: load XML + * @type: private + * @param: filePath - xml file path + * @param: postMode - send POST request + * @param: postVars - list of vars for post request + * @topic: 0 + */ +dtmlXMLLoaderObject.prototype.loadXML=function(filePath, postMode, postVars, rpc){ + if (this.rSeed) + filePath+=((filePath.indexOf("?") != -1) ? "&" : "?")+"a_dhx_rSeed="+(new Date()).valueOf(); + this.filePath=filePath; + + if ((!_isIE)&&(window.XMLHttpRequest)) + this.xmlDoc=new XMLHttpRequest(); + else { + this.xmlDoc=new ActiveXObject("Microsoft.XMLHTTP"); + } + + if (this.async) + this.xmlDoc.onreadystatechange=new this.waitLoadFunction(this); + this.xmlDoc.open(postMode ? "POST" : "GET", filePath, this.async); + + if (rpc){ + this.xmlDoc.setRequestHeader("User-Agent", "dhtmlxRPC v0.1 ("+navigator.userAgent+")"); + this.xmlDoc.setRequestHeader("Content-type", "text/xml"); + } + + else if (postMode) + this.xmlDoc.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); + + this.xmlDoc.setRequestHeader("X-Requested-With","XMLHttpRequest"); + this.xmlDoc.send(null||postVars); + + if (!this.async) + (new this.waitLoadFunction(this))(); +}; +/** + * @desc: destructor, cleans used memory + * @type: private + * @topic: 0 + */ +dtmlXMLLoaderObject.prototype.destructor=function(){ + this._filterXPath = null; + this._getAllNamedChilds = null; + this._retry = null; + this.async = null; + this.rSeed = null; + this.filePath = null; + this.onloadAction = null; + this.mainObject = null; + this.xmlDoc = null; + this.doXPath = null; + this.doXPathOpera = null; + this.doXSLTransToObject = null; + this.doXSLTransToString = null; + this.loadXML = null; + this.loadXMLString = null; + // this.waitLoadFunction = null; + this.doSerialization = null; + this.xmlNodeToJSON = null; + this.getXMLTopNode = null; + this.setXSLParamValue = null; + return null; +} + +dtmlXMLLoaderObject.prototype.xmlNodeToJSON = function(node){ + var t={}; + for (var i=0; i-1) + _isChrome=true; + +if ((navigator.userAgent.indexOf('Safari') != -1)||(navigator.userAgent.indexOf('Konqueror') != -1)){ + var _KHTMLrv = parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf('Safari')+7, 5)); + + if (_KHTMLrv > 525){ //mimic FF behavior for Safari 3.1+ + _isFF=true; + var _FFrv = 1.9; + } else + _isKHTML=true; +} else if (navigator.userAgent.indexOf('Opera') != -1){ + _isOpera=true; + _OperaRv=parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf('Opera')+6, 3)); +} + + +else if (navigator.appName.indexOf("Microsoft") != -1){ + _isIE=true; + if (navigator.appVersion.indexOf("MSIE 8.0")!= -1 && document.compatMode != "BackCompat") _isIE=8; + if (navigator.appVersion.indexOf("MSIE 9.0")!= -1 && document.compatMode != "BackCompat") _isIE=8; +} else { + _isFF=true; + var _FFrv = parseFloat(navigator.userAgent.split("rv:")[1]) +} + + +//multibrowser Xpath processor +dtmlXMLLoaderObject.prototype.doXPath=function(xpathExp, docObj, namespace, result_type){ + if (_isKHTML || (!_isIE && !window.XPathResult)) + return this.doXPathOpera(xpathExp, docObj); + + if (_isIE){ //IE + if (!docObj) + if (!this.xmlDoc.nodeName) + docObj=this.xmlDoc.responseXML + else + docObj=this.xmlDoc; + + if (!docObj) + dhtmlxError.throwError("LoadXML", "Incorrect XML", [ + (docObj||this.xmlDoc), + this.mainObject + ]); + + if (namespace != null) + docObj.setProperty("SelectionNamespaces", "xmlns:xsl='"+namespace+"'"); // + + if (result_type == 'single'){ + return docObj.selectSingleNode(xpathExp); + } + else { + return docObj.selectNodes(xpathExp)||new Array(0); + } + } else { //Mozilla + var nodeObj = docObj; + + if (!docObj){ + if (!this.xmlDoc.nodeName){ + docObj=this.xmlDoc.responseXML + } + else { + docObj=this.xmlDoc; + } + } + + if (!docObj) + dhtmlxError.throwError("LoadXML", "Incorrect XML", [ + (docObj||this.xmlDoc), + this.mainObject + ]); + + if (docObj.nodeName.indexOf("document") != -1){ + nodeObj=docObj; + } + else { + nodeObj=docObj; + docObj=docObj.ownerDocument; + } + var retType = XPathResult.ANY_TYPE; + + if (result_type == 'single') + retType=XPathResult.FIRST_ORDERED_NODE_TYPE + var rowsCol = new Array(); + var col = docObj.evaluate(xpathExp, nodeObj, function(pref){ + return namespace + }, retType, null); + + if (retType == XPathResult.FIRST_ORDERED_NODE_TYPE){ + return col.singleNodeValue; + } + var thisColMemb = col.iterateNext(); + + while (thisColMemb){ + rowsCol[rowsCol.length]=thisColMemb; + thisColMemb=col.iterateNext(); + } + return rowsCol; + } +} + +function _dhtmlxError(type, name, params){ + if (!this.catches) + this.catches=new Array(); + + return this; +} + +_dhtmlxError.prototype.catchError=function(type, func_name){ + this.catches[type]=func_name; +} +_dhtmlxError.prototype.throwError=function(type, name, params){ + if (this.catches[type]) + return this.catches[type](type, name, params); + + if (this.catches["ALL"]) + return this.catches["ALL"](type, name, params); + + alert("Error type: "+arguments[0]+"\nDescription: "+arguments[1]); + return null; +} + +window.dhtmlxError=new _dhtmlxError(); + + +//opera fake, while 9.0 not released +//multibrowser Xpath processor +dtmlXMLLoaderObject.prototype.doXPathOpera=function(xpathExp, docObj){ + //this is fake for Opera + var z = xpathExp.replace(/[\/]+/gi, "/").split('/'); + var obj = null; + var i = 1; + + if (!z.length) + return []; + + if (z[0] == ".") + obj=[docObj]; else if (z[0] == ""){ + obj=(this.xmlDoc.responseXML||this.xmlDoc).getElementsByTagName(z[i].replace(/\[[^\]]*\]/g, "")); + i++; + } else + return []; + + for (i; i < z.length; i++)obj=this._getAllNamedChilds(obj, z[i]); + + if (z[i-1].indexOf("[") != -1) + obj=this._filterXPath(obj, z[i-1]); + return obj; +} + +dtmlXMLLoaderObject.prototype._filterXPath=function(a, b){ + var c = new Array(); + var b = b.replace(/[^\[]*\[\@/g, "").replace(/[\[\]\@]*/g, ""); + + for (var i = 0; i < a.length; i++) + if (a[i].getAttribute(b)) + c[c.length]=a[i]; + + return c; +} +dtmlXMLLoaderObject.prototype._getAllNamedChilds=function(a, b){ + var c = new Array(); + + if (_isKHTML) + b=b.toUpperCase(); + + for (var i = 0; i < a.length; i++)for (var j = 0; j < a[i].childNodes.length; j++){ + if (_isKHTML){ + if (a[i].childNodes[j].tagName&&a[i].childNodes[j].tagName.toUpperCase() == b) + c[c.length]=a[i].childNodes[j]; + } + + else if (a[i].childNodes[j].tagName == b) + c[c.length]=a[i].childNodes[j]; + } + + return c; +} + +function dhtmlXHeir(a, b){ + for (var c in b) + if (typeof (b[c]) == "function") + a[c]=b[c]; + return a; +} + +function dhtmlxEvent(el, event, handler){ + if (el.addEventListener) + el.addEventListener(event, handler, false); + + else if (el.attachEvent) + el.attachEvent("on"+event, handler); +} + +//============= XSL Extension =================================== + +dtmlXMLLoaderObject.prototype.xslDoc=null; +dtmlXMLLoaderObject.prototype.setXSLParamValue=function(paramName, paramValue, xslDoc){ + if (!xslDoc) + xslDoc=this.xslDoc + + if (xslDoc.responseXML) + xslDoc=xslDoc.responseXML; + var item = + this.doXPath("/xsl:stylesheet/xsl:variable[@name='"+paramName+"']", xslDoc, + "http:/\/www.w3.org/1999/XSL/Transform", "single"); + + if (item != null) + item.firstChild.nodeValue=paramValue +} +dtmlXMLLoaderObject.prototype.doXSLTransToObject=function(xslDoc, xmlDoc){ + if (!xslDoc) + xslDoc=this.xslDoc; + + if (xslDoc.responseXML) + xslDoc=xslDoc.responseXML + + if (!xmlDoc) + xmlDoc=this.xmlDoc; + + if (xmlDoc.responseXML) + xmlDoc=xmlDoc.responseXML + + //MOzilla + if (!_isIE){ + if (!this.XSLProcessor){ + this.XSLProcessor=new XSLTProcessor(); + this.XSLProcessor.importStylesheet(xslDoc); + } + var result = this.XSLProcessor.transformToDocument(xmlDoc); + } else { + var result = new ActiveXObject("Msxml2.DOMDocument.3.0"); + try{ + xmlDoc.transformNodeToObject(xslDoc, result); + }catch(e){ + result = xmlDoc.transformNode(xslDoc); + } + } + return result; +} + +dtmlXMLLoaderObject.prototype.doXSLTransToString=function(xslDoc, xmlDoc){ + var res = this.doXSLTransToObject(xslDoc, xmlDoc); + if(typeof(res)=="string") + return res; + return this.doSerialization(res); +} + +dtmlXMLLoaderObject.prototype.doSerialization=function(xmlDoc){ + if (!xmlDoc) + xmlDoc=this.xmlDoc; + if (xmlDoc.responseXML) + xmlDoc=xmlDoc.responseXML + if (!_isIE){ + var xmlSerializer = new XMLSerializer(); + return xmlSerializer.serializeToString(xmlDoc); + } else + return xmlDoc.xml; +} + +/** +* @desc: +* @type: private +*/ +dhtmlxEventable=function(obj){ + obj.attachEvent=function(name, catcher, callObj){ + name='ev_'+name.toLowerCase(); + if (!this[name]) + this[name]=new this.eventCatcher(callObj||this); + + return(name+':'+this[name].addEvent(catcher)); //return ID (event name & event ID) + } + obj.callEvent=function(name, arg0){ + name='ev_'+name.toLowerCase(); + if (this[name]) + return this[name].apply(this, arg0); + return true; + } + obj.checkEvent=function(name){ + return (!!this['ev_'+name.toLowerCase()]) + } + obj.eventCatcher=function(obj){ + var dhx_catch = []; + var z = function(){ + var res = true; + for (var i = 0; i < dhx_catch.length; i++){ + if (dhx_catch[i] != null){ + var zr = dhx_catch[i].apply(obj, arguments); + res=res&&zr; + } + } + return res; + } + z.addEvent=function(ev){ + if (typeof (ev) != "function") + ev=eval(ev); + if (ev) + return dhx_catch.push(ev)-1; + return false; + } + z.removeEvent=function(id){ + dhx_catch[id]=null; + } + return z; + } + obj.detachEvent=function(id){ + if (id != false){ + var list = id.split(':'); //get EventName and ID + this[list[0]].removeEvent(list[1]); //remove event + } + } + obj.detachAllEvents = function(){ + for (var name in this){ + if (name.indexOf("ev_")==0) + delete this[name]; + } + } +} diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/codebase/dhtmlxtree.css b/phpgwapi/js/dhtmlxtree/dhtmlxTree/codebase/dhtmlxtree.css new file mode 100755 index 0000000000..65f4f16f0b --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/codebase/dhtmlxtree.css @@ -0,0 +1,136 @@ +.defaultTreeTable{ + margin : 0px; + padding : 0px; + border : 0px; +} +.containerTableStyle { overflow : auto; position:relative; top:0; font-size : 12px; -khtml-user-select: none;} +.containerTableStyleRTL span { direction: rtl; unicode-bidi: bidi-override; } +.containerTableStyleRTL { direction: rtl; overflow : auto; position:relative; top:0; font-size : 12px;} +.standartTreeRow { font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 12px; -moz-user-select: none; } +.selectedTreeRow{ background-color : navy; color:white; font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 12px; -moz-user-select: none; } +.dragAndDropRow{ background-color : navy; color:white; } +.standartTreeRow_lor{ text-decoration:underline; background-color : #FFFFF0; font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 12px; -moz-user-select: none; } +.selectedTreeRow_lor{ text-decoration:underline; background-color : navy; color:white; font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 12px; -moz-user-select: none; } + +.standartTreeImage{ width:18px; height:18px; overflow:hidden; border:0; padding:0; margin:0; +font-size:1px; } +.hiddenRow { width:1px; overflow:hidden; } +.dragSpanDiv,.dragSpanDiv td{ font-size : 12px; background-color:white; z-index:999; } +.a_dhx_hidden_input{ position:absolute; top:-1px; left:-1px; width:1px; height:1px; border:none; background:none; } +.a_dhx_hidden_input{ position:absolute; top:-1px; left:-1px; width:1px; height:1px; border:none; background:none; } + +.selectionBox{ +background-color: #FFFFCC; +} +.selectionBar { + top:0; + background-color: Black; + position:absolute; + overflow:hidden; + height: 2px; + z-index : 11; +} + +.intreeeditRow{ + font-size:8pt; height:16px; border:1px solid silver; padding:0; margin:0; + margin-left:4px; + -moz-user-select: text; + -khtml-user-select: text; +} +.dhx_tree_textSign{ + font-size:8pt; + font-family:monospace; + width:21px; + color:black; + padding:0px; + margin:0px; + cursor:pointer; + text-align: center; +} +.dhx_tree_opacity{ + opacity:0; + -moz-opacity:0; + filter:alpha(opacity=0); +} +.dhx_bg_img_fix{ +width:18px; +height:18px; +background-repeat: no-repeat; +background-position: center; +background-position-x: center; +background-position-y: center; +} + +.dhxtree_dhx_black, .dhxtree_dhx_skyblue{ + background:white; + color:black; +} +*html .dhxtree_dhx_skyblue .standartTreeRow, *html .dhxtree_dhx_skyblue .standartTreeRow_lor{ + border-right:0px solid red; + border-left:0px solid red; +} +*html .dhxtree_dhx_skyblue span.standartTreeRow, *html .dhxtree_dhx_skyblue span.standartTreeRow_lor{ + margin-left:1px; +} + +.dhxtree_dhx_skyblue .standartTreeRow, .dhxtree_dhx_skyblue .standartTreeRow_lor{ + border-right:1px solid transparent; + border-left: 1px solid transparent; + font-family:Tahoma; + font-size:11px !important; + overflow:hidden; + padding:0px 0px 0px 0px; +} +.dhxtree_dhx_skyblue .selectedTreeRow_lor, .dhxtree_dhx_skyblue .selectedTreeRow{ + background-color:white; + background-image:url(imgs/sky_blue_sel_tree.png); + background-repeat:repeat-x; + border:1px solid #FFB951; + color:black; + + line-height:17px; + + font-size:11px !important; + font-family:Tahoma; + overflow:hidden; +} +html > body /**/ .dhxtree_dhx_skyblue .selectedTreeRow, html > body /**/ .dhxtree_dhx_skyblue .selectedTreeRow_lor{ + padding:1px 0px 1px 0px; + line-height:normal; + display:inline-block !ie; + height:13px; +} +body:nth-of-type(1) .dhxtree_dhx_skyblue span.selectedTreeRow, body:nth-of-type(1) .dhxtree_dhx_skyblue span.selectedTreeRow_lor{ + padding:1px 0px 1px 0px; + display:inline-block; + padding-top:0px; + height:13px; +} +body:nth-of-type(1) .dhxtree_dhx_skyblue span.standartTreeRow, body:nth-of-type(1) .dhxtree_dhx_skyblue span.standartTreeRow_lor{ + display:inline-block; + height:14px; +} + +.dhxtree_dhx_web .selectedTreeRow_lor, .dhxtree_dhx_web .selectedTreeRow{ + background-color:transparent; + +} +.dhxtree_dhx_web span.selectedTreeRow_lor , .dhxtree_dhx_web span.selectedTreeRow{ + background-color:#ACDAF0; + color:black; +} + +.dhxtree_dhx_web td.standartTreeRow, .dhxtree_dhx_web td.selectedTreeRow{ + padding-left:2px; +} +.dhxtree_dhx_web span.standartTreeRow, .dhxtree_dhx_web span.selectedTreeRow{ + padding-left:3px !important; +} + + + +.dhxtree_dhx_web .standartTreeRow, .dhxtree_dhx_web .standartTreeRow, .dhxtree_dhx_web .selectedTreeRow_lor, .dhxtree_dhx_web .selectedTreeRow{ + font-size:12px; + font-family:Tahoma; + overflow:hidden; +} diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/codebase/dhtmlxtree.js b/phpgwapi/js/dhtmlxtree/dhtmlxTree/codebase/dhtmlxtree.js new file mode 100755 index 0000000000..b5816eee04 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/codebase/dhtmlxtree.js @@ -0,0 +1,211 @@ +//v.2.6 build 100722 + +/* +Copyright DHTMLX LTD. http://www.dhtmlx.com +You allowed to use this component or parts of it under GPL terms +To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com +*/ + + +function xmlPointer(data){this.d=data;};xmlPointer.prototype={text:function(){if (!_isFF)return this.d.xml;var x = new XMLSerializer();return x.serializeToString(this.d);}, + get:function(name){return this.d.getAttribute(name);}, + exists:function(){return !!this.d }, + content:function(){return this.d.firstChild?this.d.firstChild.data:"";}, + each:function(name,f,t,i){var a=this.d.childNodes;var c=new xmlPointer();if (a.length)for (i=i||0;i0){beforeNode=new Object;beforeNode.tr=parentObject.childNodes[0].tr.previousSibling;};parentObject._has_top=true;for (ik=Count;ik>0;ik--)Nodes[ik]=Nodes[ik-1];Count=0;break;}}};var n;if (!(n=this._idpull[itemId])|| n.span!=-1){n=Nodes[Count]=new dhtmlXTreeItemObject(itemId,itemText,parentObject,this,itemActionHandler,1);itemId = Nodes[Count].id;parentObject.childsCount++;};if(!n.htmlNode){n.label=itemText;n.htmlNode=this._createItem((this.checkBoxOff?1:0),n);n.htmlNode.objBelong=n;};if(image1)n.images[0]=image1;if(image2)n.images[1]=image2;if(image3)n.images[2]=image3;var tr=this._drawNewTr(n.htmlNode);if ((this.XMLloadingWarning)||(this._hAdI)) + n.htmlNode.parentNode.parentNode.style.display="none";if ((beforeNode)&&(beforeNode.tr.nextSibling)) + parentObject.htmlNode.childNodes[0].insertBefore(tr,beforeNode.tr.nextSibling);else + if (this.parsingOn==parentObject.id){this.parsedArray[this.parsedArray.length]=tr;}else + parentObject.htmlNode.childNodes[0].appendChild(tr);if ((beforeNode)&&(!beforeNode.span)) beforeNode=null;if (this.XMLsource)if ((childs)&&(childs!=0)) n.XMLload=0;else n.XMLload=1;n.tr=tr;tr.nodem=n;if (parentObject.itemId==0)tr.childNodes[0].className="hiddenRow";if ((parentObject._r_logic)||(this._frbtr)) + this._setSrc(n.htmlNode.childNodes[0].childNodes[0].childNodes[1].childNodes[0],this.imPath+this.radioArray[0]);if (optionStr){var tempStr=optionStr.split(",");for (var i=0;i=2){this._correctPlus(Nodes[parentObject.childsCount-2]);this._correctLine(Nodes[parentObject.childsCount-2]);};if (parentObject.childsCount!=2)this._correctPlus(Nodes[0]);if (this.tscheck)this._correctCheckStates(parentObject);if (this._onradh){if (this.xmlstate==1){var old=this.onXLE;this.onXLE=function(id){this._onradh(itemId);if (old)old(id);}}else + this._onradh(itemId);}};return n;};dhtmlXTreeObject.prototype.insertNewItem=function(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,children){var parentObject=this._globalIdStorageFind(parentId);if (!parentObject)return (-1);var nodez=this._attachChildNode(parentObject,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,children);return nodez;};dhtmlXTreeObject.prototype.insertNewChild=function(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,children){return this.insertNewItem(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,children);};dhtmlXTreeObject.prototype._parseXMLTree=function(a,b,c,d,xml){var p=new xmlPointer(xml.getXMLTopNode("tree"));a._parse(p);a._p=p;};dhtmlXTreeObject.prototype._parseItem=function(c,temp,preNode,befNode){var id;if (this._srnd && (!this._idpull[id=c.get("id")] || !this._idpull[id].span)) + {this._addItemSRND(temp.id,id,c);return;};var a=c.get_all();if ((typeof(this.waitUpdateXML)=="object")&&(!this.waitUpdateXML[a.id])){this._parse(c,a.id,1);return;};var zST=[];if (a.select)zST.push("SELECT");if (a.top)zST.push("TOP");if (a.call)this.nodeAskingCall=a.id;if (a.checked==-1)zST.push("HCHECKED");else if (a.checked)zST.push("CHECKED");if (a.open)zST.push("OPEN");if (this.waitUpdateXML){if (this._globalIdStorageFind(a.id)) + var newNode=this.updateItem(a.id,a.text,a.im0,a.im1,a.im2,a.checked);else{if (this.npl==0)zST.push("TOP");else preNode=temp.childNodes[this.npl];var newNode=this._attachChildNode(temp,a.id,a.text,0,a.im0,a.im1,a.im2,zST.join(","),a.child,0,preNode);preNode=null;}}else + var newNode=this._attachChildNode(temp,a.id,a.text,0,a.im0,a.im1,a.im2,zST.join(","),a.child,(befNode||0),preNode);if (a.tooltip)newNode.span.parentNode.parentNode.title=a.tooltip;if (a.style)if (newNode.span.style.cssText)newNode.span.style.cssText+=(";"+a.style);else + newNode.span.setAttribute("style",newNode.span.getAttribute("style")+";"+a.style);if (a.radio)newNode._r_logic=true;if (a.nocheckbox){var check_node=newNode.span.parentNode.previousSibling.previousSibling;check_node.childNodes[0].style.display='none';if (window._KHTMLrv)check_node.style.display="none";newNode.nocheckbox=true;};if (a.disabled){if (a.checked!=null)this._setCheck(newNode,a.checked);this.disableCheckbox(newNode,1);};newNode._acc=a.child||0;if (this.parserExtension)this.parserExtension._parseExtension.call(this,c,a,(temp?temp.id:0));this.setItemColor(newNode,a.aCol,a.sCol);if (a.locked=="1")this.lockItem(newNode.id,true,true);if ((a.imwidth)||(a.imheight)) this.setIconSize(a.imwidth,a.imheight,newNode);if ((a.closeable=="0")||(a.closeable=="1")) this.setItemCloseable(newNode,a.closeable);var zcall="";if (a.topoffset)this.setItemTopOffset(newNode,a.topoffset);if ((!this.slowParse)||(typeof(this.waitUpdateXML)=="object")){if (c.sub_exists("item")) + zcall=this._parse(c,a.id,1);};if (zcall!="")this.nodeAskingCall=zcall;c.each("userdata",function(u){this.setUserData(c.get("id"),u.get("name"),u.content());},this) + + + };dhtmlXTreeObject.prototype._parse=function(p,parentId,level,start){if (this._srnd && !this.parentObject.offsetHeight){var self=this;return window.setTimeout(function(){self._parse(p,parentId,level,start);},100);};if (!p.exists()) return;this.skipLock=true;if (!parentId){parentId=p.get("id");if (p.get("radio")) + this.htmlNode._r_logic=true;this.parsingOn=parentId;this.parsedArray=new Array();this.setCheckList="";this.nodeAskingCall="";};var temp=this._globalIdStorageFind(parentId);if (!temp)return dhtmlxError.throwError("DataStructure","XML refers to not existing parent");this.parsCount=this.parsCount?(this.parsCount+1):1;this.XMLloadingWarning=1;if ((temp.childsCount)&&(!start)&&(!this._edsbps)&&(!temp._has_top)) + var preNode=0;else + var preNode=0;this.npl=0;p.each("item",function(c,i){temp.XMLload=1;if ((this._epgps)&&(this._epgpsC==this.npl)){this._setNextPageSign(temp,this.npl+1*(start||0),level,node);return -1;};this._parseItem(c,temp,0,preNode);this.npl++;},this,start);if (!level){p.each("userdata",function(u){this.setUserData(p.get("id"),u.get("name"),u.content());},this);temp.XMLload=1;if (this.waitUpdateXML){this.waitUpdateXML=false;for (var i=temp.childsCount-1;i>=0;i--)if (temp.childNodes[i]._dmark)this.deleteItem(temp.childNodes[i].id);};var parsedNodeTop=this._globalIdStorageFind(this.parsingOn);for (var i=0;i1){if ( ( (Nodes[1].style.display!="none")|| (mode==1) ) && (mode!=2) ) {this.allTree.childNodes[0].border = "1";this.allTree.childNodes[0].border = "0";nodestyle="none";}else nodestyle="";for (var i=1;i7)td2.style.width="999999px";else if (!window._KHTMLrv)td2.style.width="100%";itemObject.span.innerHTML=itemObject.label;td2.appendChild(itemObject.span);td2.parentObject=itemObject;td1.parentObject=itemObject;td2.onclick=this.onRowSelect;td1.onclick=this.onRowClick;td2.ondblclick=this.onRowClick2;if (this.ettip)tr.title=itemObject.label;if (this.dragAndDropOff){if (this._aimgs){this.dragger.addDraggableItem(td12,this);td12.parentObject=itemObject;};this.dragger.addDraggableItem(td2,this);};itemObject.span.style.paddingLeft="5px";itemObject.span.style.paddingRight="5px";td2.style.verticalAlign="";td2.style.fontSize="10pt";td2.style.cursor=this.style_pointer;tr.appendChild(td1);tr.appendChild(td11);tr.appendChild(td12);tr.appendChild(td2);tbody.appendChild(tr);table.appendChild(tbody);if (this.ehlt || this.checkEvent("onMouseIn")|| this.checkEvent("onMouseOut")){tr.onmousemove=this._itemMouseIn;tr[(_isIE)?"onmouseleave":"onmouseout"]=this._itemMouseOut;};return table;};dhtmlXTreeObject.prototype.setImagePath=function( newPath ){this.imPath=newPath;this.iconURL=newPath;};dhtmlXTreeObject.prototype.setIconPath=function(path){this.iconURL=path;};dhtmlXTreeObject.prototype.setOnRightClickHandler=function(func){this.attachEvent("onRightClick",func);};dhtmlXTreeObject.prototype.setOnClickHandler=function(func){this.attachEvent("onClick",func);};dhtmlXTreeObject.prototype.setOnSelectStateChange=function(func){this.attachEvent("onSelect",func);};dhtmlXTreeObject.prototype.setXMLAutoLoading=function(filePath){this.XMLsource=filePath;};dhtmlXTreeObject.prototype.setOnCheckHandler=function(func){this.attachEvent("onCheck",func);};dhtmlXTreeObject.prototype.setOnOpenHandler=function(func){this.attachEvent("onOpenStart",func);};dhtmlXTreeObject.prototype.setOnOpenStartHandler=function(func){this.attachEvent("onOpenStart",func);};dhtmlXTreeObject.prototype.setOnOpenEndHandler=function(func){this.attachEvent("onOpenEnd",func);};dhtmlXTreeObject.prototype.setOnDblClickHandler=function(func){this.attachEvent("onDblClick",func);};dhtmlXTreeObject.prototype.openAllItems=function(itemId) + {var temp=this._globalIdStorageFind(itemId);if (!temp)return 0;this._xopenAll(temp);};dhtmlXTreeObject.prototype.getOpenState=function(itemId){var temp=this._globalIdStorageFind(itemId);if (!temp)return "";return this._getOpenState(temp);};dhtmlXTreeObject.prototype.closeAllItems=function(itemId) + {if (itemId===window.undefined)itemId=this.rootId;var temp=this._globalIdStorageFind(itemId);if (!temp)return 0;this._xcloseAll(temp);this.allTree.childNodes[0].border = "1";this.allTree.childNodes[0].border = "0";};dhtmlXTreeObject.prototype.setUserData=function(itemId,name,value){var sNode=this._globalIdStorageFind(itemId,0,true);if (!sNode)return;if(name=="hint")sNode.htmlNode.childNodes[0].childNodes[0].title=value;if (typeof(sNode.userData["t_"+name])=="undefined"){if (!sNode._userdatalist)sNode._userdatalist=name;else sNode._userdatalist+=","+name;};sNode.userData["t_"+name]=value;};dhtmlXTreeObject.prototype.getUserData=function(itemId,name){var sNode=this._globalIdStorageFind(itemId,0,true);if (!sNode)return;return sNode.userData["t_"+name];};dhtmlXTreeObject.prototype.getItemColor=function(itemId) + {var temp=this._globalIdStorageFind(itemId);if (!temp)return 0;var res= new Object();if (temp.acolor)res.acolor=temp.acolor;if (temp.scolor)res.scolor=temp.scolor;return res;};dhtmlXTreeObject.prototype.setItemColor=function(itemId,defaultColor,selectedColor) + {if ((itemId)&&(itemId.span)) + var temp=itemId;else + var temp=this._globalIdStorageFind(itemId);if (!temp)return 0;else {if (temp.i_sel){if (selectedColor)temp.span.style.color=selectedColor;}else + {if (defaultColor)temp.span.style.color=defaultColor;};if (selectedColor)temp.scolor=selectedColor;if (defaultColor)temp.acolor=defaultColor;}};dhtmlXTreeObject.prototype.getItemText=function(itemId) + {var temp=this._globalIdStorageFind(itemId);if (!temp)return 0;return(temp.htmlNode.childNodes[0].childNodes[0].childNodes[3].childNodes[0].innerHTML);};dhtmlXTreeObject.prototype.getParentId=function(itemId) + {var temp=this._globalIdStorageFind(itemId);if ((!temp)||(!temp.parentObject)) return "";return temp.parentObject.id;};dhtmlXTreeObject.prototype.changeItemId=function(itemId,newItemId) + {if (itemId==newItemId)return;var temp=this._globalIdStorageFind(itemId);if (!temp)return 0;temp.id=newItemId;temp.span.contextMenuId=newItemId;this._idpull[newItemId]=this._idpull[itemId];delete this._idpull[itemId];};dhtmlXTreeObject.prototype.doCut=function(){if (this.nodeCut)this.clearCut();this.nodeCut=(new Array()).concat(this._selected);for (var i=0;i=2){this._correctPlus(Nodes[targetObject.childsCount-2]);this._correctLine(Nodes[targetObject.childsCount-2]);};this._correctPlus(Nodes[targetObject.childsCount-1]);if (this.tscheck)this._correctCheckStates(targetObject);if (oldTree.tscheck)oldTree._correctCheckStates(z);};if (c>1){oldTree._correctPlus(z.childNodes[c-2]);oldTree._correctLine(z.childNodes[c-2]);};oldTree._correctPlus(z);oldTree._correctLine(z);this.callEvent("onDrop",[itemObject.id,targetObject.id,(beforeNode?beforeNode.id:null),oldTree,targetObject.treeNod]);return itemObject.id;};dhtmlXTreeObject.prototype._clearStyles=function(itemObject){if (!itemObject.htmlNode)return;var td1=itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[1];var td3=td1.nextSibling.nextSibling;itemObject.span.innerHTML=itemObject.label;itemObject.i_sel=false;if (itemObject._aimgs)this.dragger.removeDraggableItem(td1.nextSibling);if (this.checkBoxOff){td1.childNodes[0].style.display="";td1.childNodes[0].onclick=this.onCheckBoxClick;this._setSrc(td1.childNodes[0],this.imPath+this.checkArray[itemObject.checkstate]);}else td1.childNodes[0].style.display="none";td1.childNodes[0].treeNod=this;this.dragger.removeDraggableItem(td3);if (this.dragAndDropOff)this.dragger.addDraggableItem(td3,this);if (this._aimgs)this.dragger.addDraggableItem(td1.nextSibling,this);td3.childNodes[0].className="standartTreeRow";td3.onclick=this.onRowSelect;td3.ondblclick=this.onRowClick2;td1.previousSibling.onclick=this.onRowClick;this._correctLine(itemObject);this._correctPlus(itemObject);for (var i=0;i0)) + {if (node.childNodes[i].unParsed)var zb=this._getAllScraggyItemsXML(node.childNodes[i].unParsed,1);else + var zb=this._getAllScraggyItems(node.childNodes[i]) + + if (zb)if (z)z+=this.dlmtr+zb;else z=zb;}else + if (!z)z=node.childNodes[i].id;else z+=this.dlmtr+node.childNodes[i].id;};return z;};dhtmlXTreeObject.prototype._getAllFatItems =function(node) + {var z="";for (var i=0;i0)) + {if (!z)z=node.childNodes[i].id;else z+=this.dlmtr+node.childNodes[i].id;if (node.childNodes[i].unParsed)var zb=this._getAllFatItemsXML(node.childNodes[i].unParsed,1);else + var zb=this._getAllFatItems(node.childNodes[i]) + + if (zb)z+=this.dlmtr+zb;}};return z;};dhtmlXTreeObject.prototype._getAllSubItems =function(itemId,z,node) + {if (node)temp=node;else {var temp=this._globalIdStorageFind(itemId);};if (!temp)return 0;z="";for (var i=0;i=z.childsCount)) return null;return z.childNodes[index].id;};dhtmlXTreeObject.prototype.getChildItemIdByIndex=function(itemId,index){var z=this._globalIdStorageFind(itemId);if ((!z)||(index>=z.childsCount)) return null;return z.childNodes[index].id;};dhtmlXTreeObject.prototype.setDragHandler=function(func){this.attachEvent("onDrag",func);};dhtmlXTreeObject.prototype._clearMove=function(){if (this._lastMark){this._lastMark.className=this._lastMark.className.replace(/dragAndDropRow/g,"");this._lastMark=null;};this.allTree.className=this.allTree.className.replace(" selectionBox","");};dhtmlXTreeObject.prototype.enableDragAndDrop=function(mode,rmode){if (mode=="temporary_disabled"){this.dADTempOff=false;mode=true;}else + this.dADTempOff=true;this.dragAndDropOff=convertStringToBoolean(mode);if (this.dragAndDropOff)this.dragger.addDragLanding(this.allTree,this);if (arguments.length>1)this._ddronr=(!convertStringToBoolean(rmode));};dhtmlXTreeObject.prototype._setMove=function(htmlNode,x,y){if (htmlNode.parentObject.span){var a1=getAbsoluteTop(htmlNode);var a2=getAbsoluteTop(this.allTree)-this.allTree.scrollTop;this.dadmodec=this.dadmode;this.dadmodefix=0;var zN=htmlNode.parentObject.span;zN.className+=" dragAndDropRow";this._lastMark=zN;this._autoScroll(null,a1,a2);}};dhtmlXTreeObject.prototype._autoScroll=function(node,a1,a2){if (this.autoScroll){if (node){a1=getAbsoluteTop(node);a2=getAbsoluteTop(this.allTree);};if ( (a1-a2-parseInt(this.allTree.scrollTop))>(parseInt(this.allTree.offsetHeight)-50) ) + this.allTree.scrollTop=parseInt(this.allTree.scrollTop)+20;if ( (a1-a2)<(parseInt(this.allTree.scrollTop)+30) ) + this.allTree.scrollTop=parseInt(this.allTree.scrollTop)-20;}};dhtmlXTreeObject.prototype._createDragNode=function(htmlObject,e){if (!this.dADTempOff)return null;var obj=htmlObject.parentObject;if (!this.callEvent("onBeforeDrag",[obj.id])) return null;if (!obj.i_sel)this._selectItem(obj,e);var dragSpan=document.createElement('div');var text=new Array();if (this._itim_dg)for (var i=0;i"+this._selected[i].span.innerHTML+"";else + text=this.getSelectedItemText().split(this.dlmtr);dragSpan.innerHTML=text.join("");dragSpan.style.position="absolute";dragSpan.className="dragSpanDiv";this._dragged=(new Array()).concat(this._selected);return dragSpan;};dhtmlXTreeObject.prototype._focusNode=function(item){var z=getAbsoluteTop(item.htmlNode)-getAbsoluteTop(this.allTree);if ((z>(this.allTree.offsetHeight-30))||(z<0)) + this.allTree.scrollTop=z+this.allTree.scrollTop;};dhtmlXTreeObject.prototype._preventNsDrag=function(e){if ((e)&&(e.preventDefault)) {e.preventDefault();return false;};return false;};dhtmlXTreeObject.prototype._drag=function(sourceHtmlObject,dhtmlObject,targetHtmlObject){if (this._autoOpenTimer)clearTimeout(this._autoOpenTimer);if (!targetHtmlObject.parentObject){targetHtmlObject=this.htmlNode.htmlNode.childNodes[0].childNodes[0].childNodes[1].childNodes[0];this.dadmodec=0;};this._clearMove();var z=sourceHtmlObject.parentObject.treeNod;if ((z)&&(z._clearMove)) z._clearMove("");if ((!this.dragMove)||(this.dragMove())) + {if ((!z)||(!z._clearMove)||(!z._dragged)) var col=new Array(sourceHtmlObject.parentObject);else var col=z._dragged;var trg=targetHtmlObject.parentObject;for (var i=0;i2)?(sNode.checkstate-3):sNode.checkstate);this._setCheck(sNode);if (sNode.dscheck<3)sNode.dscheck=false;};dhtmlXTreeObject.prototype.setEscapingMode=function(mode){this.utfesc=mode;};dhtmlXTreeObject.prototype.enableHighlighting=function(mode) {this.ehlt=true;this.ehlta=convertStringToBoolean(mode);};dhtmlXTreeObject.prototype._itemMouseOut=function(){var that=this.childNodes[3].parentObject;var tree=that.treeNod;tree.callEvent("onMouseOut",[that.id]);if (that.id==tree._l_onMSI)tree._l_onMSI=null;if (!tree.ehlta)return;that.span.className=that.span.className.replace("_lor","");};dhtmlXTreeObject.prototype._itemMouseIn=function(){var that=this.childNodes[3].parentObject;var tree=that.treeNod;if (tree._l_onMSI!=that.id)tree.callEvent("onMouseIn",[that.id]);tree._l_onMSI=that.id;if (!tree.ehlta)return;that.span.className=that.span.className.replace("_lor","");that.span.className=that.span.className.replace(/((standart|selected)TreeRow)/,"$1_lor");};dhtmlXTreeObject.prototype.enableActiveImages=function(mode){this._aimgs=convertStringToBoolean(mode);};dhtmlXTreeObject.prototype.focusItem=function(itemId){var sNode=this._globalIdStorageFind(itemId);if (!sNode)return (0);this._focusNode(sNode);};dhtmlXTreeObject.prototype.getAllSubItems =function(itemId){return this._getAllSubItems(itemId);};dhtmlXTreeObject.prototype.getAllChildless =function(){return this._getAllScraggyItems(this.htmlNode);};dhtmlXTreeObject.prototype.getAllLeafs=dhtmlXTreeObject.prototype.getAllChildless;dhtmlXTreeObject.prototype._getAllScraggyItems =function(node) + {var z="";for (var i=0;i0)) + {if (node.childNodes[i].unParsed)var zb=this._getAllScraggyItemsXML(node.childNodes[i].unParsed,1);else + var zb=this._getAllScraggyItems(node.childNodes[i]) + + if (zb)if (z)z+=this.dlmtr+zb;else z=zb;}else + if (!z)z=node.childNodes[i].id;else z+=this.dlmtr+node.childNodes[i].id;};return z;};dhtmlXTreeObject.prototype._getAllFatItems =function(node) + {var z="";for (var i=0;i0)) + {if (!z)z=node.childNodes[i].id;else z+=this.dlmtr+node.childNodes[i].id;if (node.childNodes[i].unParsed)var zb=this._getAllFatItemsXML(node.childNodes[i].unParsed,1);else + var zb=this._getAllFatItems(node.childNodes[i]) + + if (zb)z+=this.dlmtr+zb;}};return z;};dhtmlXTreeObject.prototype.getAllItemsWithKids =function(){return this._getAllFatItems(this.htmlNode);};dhtmlXTreeObject.prototype.getAllFatItems=dhtmlXTreeObject.prototype.getAllItemsWithKids;dhtmlXTreeObject.prototype.getAllChecked=function(){return this._getAllChecked("","",1);};dhtmlXTreeObject.prototype.getAllUnchecked=function(itemId){if (itemId)itemId=this._globalIdStorageFind(itemId);return this._getAllChecked(itemId,"",0);};dhtmlXTreeObject.prototype.getAllPartiallyChecked=function(){return this._getAllChecked("","",2);};dhtmlXTreeObject.prototype.getAllCheckedBranches=function(){var temp= this._getAllChecked("","",1);if (temp!="")temp+=this.dlmtr;return temp+this._getAllChecked("","",2);};dhtmlXTreeObject.prototype._getAllChecked=function(htmlNode,list,mode){if (!htmlNode)htmlNode=this.htmlNode;if (htmlNode.checkstate==mode)if (!htmlNode.nocheckbox){if (list)list+=this.dlmtr+htmlNode.id;else list=htmlNode.id;};var j=htmlNode.childsCount;for (var i=0;i";temp.span.style.paddingRight=temp.span.style.paddingLeft='0px';temp.span.onclick = temp.span.ondblclick= function(e){(e||event).cancelBubble = true;};temp.span.childNodes[0].value=editText;temp.span.childNodes[0].onselectstart=function(e){(e||event).cancelBubble=true;return true;};temp.span.childNodes[0].onmousedown=function(e){(e||event).cancelBubble=true;return true;};temp.span.childNodes[0].focus();temp.span.childNodes[0].focus();temp.span.onclick=function (e){(e||event).cancelBubble=true;return false;};temp.span.className="";temp.span.parentNode.className="";var self=this;temp.span.childNodes[0].onkeydown=function(e){if (!e)e=window.event;if (e.keyCode==13){e.cancelBubble=true;self._stopEdit(window.undefined);}else if (e.keyCode==27){self._editCell.span.childNodes[0].value=self._editCell._oldValue;self._stopEdit(window.undefined);};(e||event).cancelBubble=true;};this.callEvent("onEdit",[1,id,this]);}}; + + +//v.2.6 build 100722 + +/* +Copyright DHTMLX LTD. http://www.dhtmlx.com +You allowed to use this component or parts of it under GPL terms +To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com +*/ \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/codebase/ext/dhtmlxtree_er.js b/phpgwapi/js/dhtmlxtree/dhtmlxTree/codebase/ext/dhtmlxtree_er.js new file mode 100755 index 0000000000..2ee60c6745 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/codebase/ext/dhtmlxtree_er.js @@ -0,0 +1,18 @@ +//v.2.6 build 100722 + +/* +Copyright DHTMLX LTD. http://www.dhtmlx.com +You allowed to use this component or parts of it under GPL terms +To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com +*/ +var _all_used_trees=new Array();dhtmlXTreeObject.prototype._createSelfA2=dhtmlXTreeObject.prototype._createSelf;dhtmlXTreeObject.prototype._createSelf=function(){_all_used_trees[_all_used_trees.length]=this;return this._createSelfA2();};window.onerror=function (a,b,c,d){var d=document.createElement("DIV");d.style.cssText="position:absolute;background-color:white;top:10px;left:10px;z-index:20;width:500px;border: 2px silver outset;";var dh="
Javascript Error
";dh+="
The next error ocured :
"+a+" in "+b+" at line "+c+"
";dh+="
If you think that error can be caused by dhtmlxtree press the 'Generate report' button and send generated report to support@dhtmlx.com
";dh+="";dh+="
";d.innerHTML=dh;document.body.appendChild(d);return true;};function dhtmlxtreeErrorReport(a,b,c){var str=a+" ["+b+"]";if (a=='LoadXML'){str+="
"+c[0].responseText+"
"+c[0].status;};window.onerror(str, "none", "none");};function dhtmlxtreeReport(node){var that=node.parentNode;that.lastChild.innerHTML="";var rep=that.childNodes[1].innerHTML;for (var a=0;a<_all_used_trees.length;a++){var atree=_all_used_trees[a];rep+="\n\n Tree "+a+"\n";for (b in atree){if (typeof(atree[b])=="function") continue;rep+=b+"="+atree[b]+"\n";};rep+="---------------------\n";if (atree.XMLLoader){try{var z=atree.XMLLoader.getXMLTopNode("tree") + if (document.all)rep+=z.xml+"\n";else{var xmlSerializer = new XMLSerializer();rep+=xmlSerializer.serializeToString(z)+"\n";}}catch(e){rep+="XML not recognised\n";}};rep+="---------------------\n";for (var i in atree._idpull){var n=atree._idpull[i];if (typeof(n)!='object') continue;rep+="Node: "+n.id;rep+=" Childs: "+n.childsCount;for (var j=0;j"+cont+"");window[id]=t;var oninit = obj.getAttribute("oninit");if (oninit)eval(oninit);return t;};function dhx_init_trees(){var z=document.getElementsByTagName("div");for (var i=0;i + + + Easy skinable design + + + + + + + + + + +
+ +
DHTMLX Docs & Samples Explorer
+
+ +
+
+ + +
+
+
+ +
+

Easy skinable design

+
+ + + + + +

dhtmlxTree is highly customizable JavaScript tree menu. Choose one of four tree + designs to see how easily the tree appearance can be changed.

+ + + + + + + + +
+ + +

+ +
+ + Set design 1
+ Set design 2
+ Set design 3
+ Set design 4
+ + + +
+ + + + + + +
+
+
Source
+
+
<link rel="STYLESHEET" type="text/css" href="../../codebase/dhtmlxtree.css">
+<script  src="../../codebase/dhtmlxcommon.js"></script>
+<script  src="../../codebase/dhtmlxtree.js"></script>    
+ 
+<script>
function setDesign(n) {
+    switch (n) {
+    case 4:
+        ;
+        tree.enableTreeLines(true);
+        tree.setImageArrays("plus", "plus2.gif", "plus3.gif", "plus4.gif", "plus.gif", "plus5.gif");
+        tree.setImageArrays("minus", "minus2.gif", "minus3.gif", "minus4.gif", "minus.gif", "minus5.gif");
+        tree.setStdImages("book.gif", "books_open.gif", "books_close.gif");
+        break;
+        break;
+    case 3:
+        ;
+        tree.enableTreeLines(true);
+        tree.setImageArrays("plus", "open2.gif", "open2.gif", "open2.gif", "open2.gif", "open2.gif");
+        tree.setImageArrays("minus", "close2.gif", "close2.gif", "close2.gif", "close2.gif", "close2.gif");
+        tree.setStdImages("leaf.gif", "folderOpen.gif", "folderClosed.gif");
+        break;
+    case 2:
+        ;
+        tree.enableTreeLines(true);
+        tree.setImageArrays("plus", "open2.gif", "open2.gif", "open2.gif", "open2.gif", "open2.gif");
+        tree.setImageArrays("minus", "close2.gif", "close2.gif", "close2.gif", "close2.gif", "close2.gif");
+        tree.setStdImages("book.gif", "books_open.gif", "books_close.gif");
+        break;
+    case 1:
+        ;
+        tree.enableTreeLines(false);
+        tree.setImageArrays("plus", "", "", "", "plus_ar.gif", "plus_ar.gif");
+        tree.setImageArrays("minus", "", "", "", "minus_ar.gif", "minus_ar.gif");
+        tree.setStdImages("book.gif", "books_open.gif", "books_close.gif");
+        break;
+    }
+    tree.refreshItem(0);
+}
</script> +<table> + <tr> + <td valign="top"> + + <div id="treeboxbox_tree" style="width:250px; height:218px;background-color:#f5f5f5;border :1px solid Silver;"></div><br> + </td> + <td rowspan="2" style="padding-left:25" valign="top"> + <a href="javascript:void(0)" onclick="setDesign(1);">Set design 1</a><br> + <a href="javascript:void(0)" onclick="setDesign(2);">Set design 2</a><br> + <a href="javascript:void(0)" onclick="setDesign(3);">Set design 3</a><br> + <a href="javascript:void(0)" onclick="setDesign(4);">Set design 4</a><br> + + </td> + </tr> +</table> + +<script>
tree = new dhtmlXTreeObject("treeboxbox_tree", "100%", "100%", 0);
+tree.setSkin('dhx_skyblue');
+tree.setImagePath("../common/images/");
+tree.enableDragAndDrop(0);
+tree.enableTreeLines(false);
+tree.setImageArrays("plus", "", "", "", "plus.gif");
+tree.setImageArrays("minus", "", "", "", "minus.gif");
+tree.setStdImages("book.gif", "books_open.gif", "books_close.gif");
+tree.setXMLAutoLoading("../common/tree4.xml");
+tree.loadXML("../common/tree4.xml");
</script>
+
+ + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/01_appearance/10_tree_iconset.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/01_appearance/10_tree_iconset.html new file mode 100755 index 0000000000..f92d496459 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/01_appearance/10_tree_iconset.html @@ -0,0 +1,155 @@ + + + + Changing iconsets + + + + + + + + + + +
+ +
DHTMLX Docs & Samples Explorer
+
+ +
+
+ + +
+
+
+ +
+

Changing iconsets

+
+ + + + + + + +

dhtmlxTree is highly customizable JavaScript tree menu. You can use different iconsets for trees by changing images path.

+ + + + + + + + + + + + + + + + + + +
+

+ +
 
+

+ +
 
+

+ +
+ + + + + + +
+
+
Source
+
+
<link rel="STYLESHEET" type="text/css" href="../../codebase/dhtmlxtree.css">
+<script  src="../../codebase/dhtmlxcommon.js"></script>
+<script  src="../../codebase/dhtmlxtree.js"></script>
+ 
+ 
+ 
+<table width="100%">
+    <tr>
+        <td valign="top">
+            <div id="treeboxbox_tree0" style="width:250px; height:218px;border :1px solid Silver;"></div><br>
+        </td>
+    </tr>
+    <tr>
+        <td>&nbsp;</td>
+    </tr>
+    <tr>
+        <td valign="top">
+            <div id="treeboxbox_tree1" style="width:250px; height:218px;border :1px solid Silver;"></div><br>
+        </td>
+    </tr>
+    <tr>
+        <td>&nbsp;</td>
+    </tr>
+    <tr>
+        <td>
+        <div id="treeboxbox_tree2" style="width:250px; height:218px;border :1px solid Silver;; overflow:auto;"></div><br>
+        </td>
+    </tr>
+</table>
+ 
+<script>
tree = new dhtmlXTreeObject("treeboxbox_tree0", "100%", "100%", 0);
+tree.setSkin('dhx_skyblue');
+tree.setImagePath("../../codebase/imgs/");
+tree.loadXML("../common/tree_b.xml");
+tree = new dhtmlXTreeObject("treeboxbox_tree1", "100%", "100%", 0);
+ 
+tree.setSkin('dhx_skyblue');
+tree.setImagePath("../../codebase/imgs/csh_scbrblue/");
+tree.loadXML("../common/tree_a.xml");
+tree = new dhtmlXTreeObject("treeboxbox_tree2", "100%", "100%", 0);
+ 
+tree.setSkin('dhx_skyblue');
+tree.setImagePath("../../codebase/imgs/csh_yellowbooks/");
+tree.loadXML("../common/tree_b.xml");
</script>
+
+ + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/01_appearance/11_tree_text_image.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/01_appearance/11_tree_text_image.html new file mode 100755 index 0000000000..e3a566a24c --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/01_appearance/11_tree_text_image.html @@ -0,0 +1,184 @@ + + + + Dynamical icon/text/style changing + + + + + + + + + + +
+ +
DHTMLX Docs & Samples Explorer
+
+ +
+
+ + +
+
+
+ +
+

Dynamical icon/text/style changing

+
+ + + + + + +

You can customize this JavaScript tree to look just the way you want. + Select a tree item you want to edit then click on image or color to make appropriate changes. + To change tree item's text, you should type new text in the box and click "Set new item label".

+ + + + + + + + +
+
+
+ + + Set new item label 

+ + To change item's image - click on one of next images: + + + + + + + + + + + + +
+
+
+
+ To change item's color - click on one of next colors: + + + + + + + + + + + + + + + + +
 
 
 
 
 
 
 
 
 
+
+ + + + + +
+
+
Source
+
+
<link rel="STYLESHEET" type="text/css" href="../../codebase/dhtmlxtree.css">
+<script  src="../../codebase/dhtmlxcommon.js"></script>
+<script  src="../../codebase/dhtmlxtree.js"></script>
+ 
+    
+<script>
function setColor(color1, color2); {
+    tree.setItemColor(tree.getSelectedItemId(), color1, color2);
+}
</script> +<table> + <tr> + <td valign="top"> + <div id="treeboxbox_tree" style="width:250px; height:218px;background-color:#f5f5f5;border :1px solid Silver;"></div> + </td> + <td rowspan="2" style="padding-left:25" valign="top"> + + <a href="javascript:void(0);" onClick="var d=new Date(); tree.setItemText(tree.getSelectedItemId(),document.getElementById('ed1').value);">Set new item label</a>&nbsp;<input type="text" value="New label" id="ed1"><br><br> + To change item's image - click on one of next images: + <table> + <tr><td> + <a href="javascript:void(0);" onClick="tree.setItemImage2(tree.getSelectedItemId(),'tombs.gif','tombs.gif','tombs.gif');"><img src="../../codebase/imgs/csh_yellowbooks/tombs.gif" border="0"></a></td> + <td><a href="javascript:void(0);" onClick="tree.setItemImage2(tree.getSelectedItemId(),'tombs_open.gif','tombs_open.gif','tombs_open.gif');"><img src="../../codebase/imgs/csh_yellowbooks/tombs_open.gif" border="0"></a></td> + <td><a href="javascript:void(0);" onClick="tree.setItemImage2(tree.getSelectedItemId(),'leaf.gif','leaf.gif','leaf.gif');"><img src="../../codebase/imgs/csh_yellowbooks/leaf.gif" border="0"></a></td> + <td><a href="javascript:void(0);" onClick="tree.setItemImage2(tree.getSelectedItemId(),'leaf2.gif','leaf2.gif','leaf2.gif');"><img src="../../codebase/imgs/csh_yellowbooks/leaf2.gif" border="0"></a></td> + </td></tr> + <tr><td nowrap> + <a href="javascript:void(0);" onClick="tree.setItemImage2(tree.getSelectedItemId(),'iconText.gif','iconText.gif','iconText.gif');"><img src="../../codebase/imgs/csh_yellowbooks/iconText.gif" border="0"></a></td> + <td><a href="javascript:void(0);" onClick="tree.setItemImage2(tree.getSelectedItemId(),'folderOpen.gif','folderOpen.gif','folderOpen.gif');"><img src="../../codebase/imgs/csh_yellowbooks/folderOpen.gif" border="0"></a></td> + <td><a href="javascript:void(0);" onClick="tree.setItemImage2(tree.getSelectedItemId(),'folderClosed.gif','folderClosed.gif','folderClosed.gif');"><img src="../../codebase/imgs/csh_yellowbooks/folderClosed.gif" border="0"></a></td> + <td><a href="javascript:void(0);" onClick="tree.setItemImage2(tree.getSelectedItemId(),'leaf3.gif','leaf3.gif','leaf3.gif');"><img src="../../codebase/imgs/csh_yellowbooks/leaf3.gif" border="0"></a></td> + </td></tr> + </table> + <br> + To change item's color - click on one of next colors: + <table> + <tr> + <td><div style="cursor:pointer; width:20px; height:20px; background-color:#ff0000;" onClick="setColor('#ff0000','#ff0000')">&nbsp;</div></td> + <td><div style="cursor:pointer;width:20px; height:20px; background-color:#ffa500;" onClick="setColor('#ffa500','#ffa500')">&nbsp;</div></td> + <td><div style="cursor:pointer;width:20px; height:20px; background-color:#ffff00;" onClick="setColor('#ffff00','#ffff00')">&nbsp;</div></td> + </tr> + <tr> + <td><div style="cursor:pointer;width:20px; height:20px; background-color:#008000;" onClick="setColor('#008000','#adff2f')">&nbsp;</div></td> + <td><div style="cursor:pointer; width:20px; height:20px; background-color:#00ff7f;" onClick="setColor('#00ff7f','#adff2f')">&nbsp;</div></td> + <td><div style="cursor:pointer; width:20px; height:20px; background-color:#adff2f;" onClick="setColor('#adff2f')">&nbsp;</div></td> + </tr> + <tr> + <td><div style="cursor:pointer; width:20px; height:20px; background-color:#0000ff;" onClick="setColor('#0000ff','#87ceeb')">&nbsp;</div></td> + <td><div style="cursor:pointer; width:20px; height:20px; background-color:#9932cc;" onClick="setColor('#9932cc','#9932cc')">&nbsp;</div></td> + <td><div style="cursor:pointer; width:20px; height:20px; background-color:#87ceeb;" onClick="setColor('#87ceeb','#87ceeb')">&nbsp;</div></td> + </tr> + </table> + </td> + </tr> +</table> + +<script>
tree = new dhtmlXTreeObject("treeboxbox_tree", "100%", "100%", 0);
+tree.setSkin('dhx_skyblue');
+tree.setImagePath("../../codebase/imgs/csh_yellowbooks/");
+tree.loadXML("../common/tree.xml");
</script>
+
+ + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/01_appearance/index.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/01_appearance/index.html new file mode 100755 index 0000000000..5eab55ba9f --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/01_appearance/index.html @@ -0,0 +1,45 @@ + + + + Appearance + + + + + + + + + + +
+ +
DHTMLX Docs & Samples Explorer
+
+ +
+
+ + +
+
+ + + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/02_checkboxes/05_tree_checkboxes.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/02_checkboxes/05_tree_checkboxes.html new file mode 100755 index 0000000000..ba9272758d --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/02_checkboxes/05_tree_checkboxes.html @@ -0,0 +1,159 @@ + + + + Checkboxes + + + + + + + + + + +
+ +
DHTMLX Docs & Samples Explorer
+
+ +
+
+ + +
+
+
+ +
+

Checkboxes

+
+ + + + + + + +

This JavaScript tree has checkbox system in order to use this component as a navigation bar + with selection lists. Besides usual two-state checkboxes (checked item, unchecked item), + there is a possibility to use three state checkboxes with "partly-checked" value (some sub-items are checked). To test any of these functionalities you should select an item in a tree and then click on an appropriate action link.

+ + + + + + + + + + + +
+
+
+ + Two state checkboxes

+ Check item

+ UnCheck item

+ Check branch

+ UnCheck branch

+ + Get list of checked

+ +
+
+
+ Three state checkboxes
+
+ + Check item

+ UnCheck item

+ + Get list of checked

+ +
+ + + + +
+
+
Source
+
+
<link rel="STYLESHEET" type="text/css" href="../../codebase/dhtmlxtree.css">
+<script  src="../../codebase/dhtmlxcommon.js"></script>
+<script  src="../../codebase/dhtmlxtree.js"></script>
+ 
+ 
+<table>
+    <tr>
+        <td valign="top">
+            <div id="treeboxbox_tree" style="width:250px; height:218px;background-color:#f5f5f5;border :1px solid Silver;"></div>
+        </td>
+        <td  style="padding-left:25" valign="top">
+        Two state checkboxes<br><br>
+        <a href="javascript:void(0);" onClick="tree.setCheck(tree.getSelectedItemId(),true);">Check item</a><br><br>
+        <a href="javascript:void(0);" onClick="tree.setCheck(tree.getSelectedItemId(),false);">UnCheck item</a><br><br>
+        <a href="javascript:void(0);" onClick="tree.setSubChecked(tree.getSelectedItemId(),true);">Check branch</a><br><br>
+        <a href="javascript:void(0);" onClick="tree.setSubChecked(tree.getSelectedItemId(),false);">UnCheck branch</a><br><br>
+        <a href="javascript:void(0);" onClick="alert(tree.getAllChecked());">Get list of checked</a><br><br>
+        </td>
+    </tr>
+    <tr>
+        <td valign="top">
+            <div id="treeboxbox_tree2" style="width:250px; height:218px;background-color:#f5f5f5;border :1px solid Silver;; overflow:auto;"></div>
+        </td>
+        <td  style="padding-left:25" valign="top">
+            Three state checkboxes<br>
+            <br>
+        <a href="javascript:void(0);" onClick="tree2.setCheck(tree2.getSelectedItemId(),true);">Check item</a><br><br>
+        <a href="javascript:void(0);" onClick="tree2.setCheck(tree2.getSelectedItemId(),false);">UnCheck item</a><br><br>
+        <a href="javascript:void(0);" onClick="alert(tree2.getAllChecked());">Get list of checked</a><br><br>
+        </td>
+    </tr>
+</table>    
+<script>
tree = new dhtmlXTreeObject("treeboxbox_tree", "100%", "100%", 0);
+tree.setSkin('dhx_skyblue');
+tree.setImagePath("../../codebase/imgs/csh_bluebooks/");
+tree.enableCheckBoxes(1);
+tree.loadXML("../common/tree3.xml");
+tree2 = new dhtmlXTreeObject("treeboxbox_tree2", "100%", "100%", 0);
+ 
+tree2.setSkin('dhx_skyblue');
+tree2.setImagePath("../../codebase/imgs/csh_bluebooks/");
+tree2.enableCheckBoxes(1);
+tree2.enableThreeStateCheckboxes(true);
+tree2.loadXML("../common/tree3.xml");
</script>
+
+ + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/02_checkboxes/index.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/02_checkboxes/index.html new file mode 100755 index 0000000000..632d5ff942 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/02_checkboxes/index.html @@ -0,0 +1,45 @@ + + + + Checkboxes + + + + + + + + + + +
+ +
DHTMLX Docs & Samples Explorer
+
+ +
+
+ + +
+
+
+ +
+

Checkboxes

+
+ +
+ + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/12_tree_drag.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/12_tree_drag.html new file mode 100755 index 0000000000..bc1acaa324 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/12_tree_drag.html @@ -0,0 +1,139 @@ + + + + Drag and Drop + + + + + + + + + + +
+ +
DHTMLX Docs & Samples Explorer
+
+ +
+
+ + +
+
+
+ +
+

Drag and Drop

+
+ + + + + + + +

This JavaScript tree menu has extended drag-and-drop functionality + (within one tree, between trees, between frames). Drop-as-sibling behavior makes + it easy to reorder nodes in a tree view. +You can easily edit the tree by dragging nodes within one tree or between trees or even to another object.

+ + + + + + + + +
+ +

+ + +
+ +

+ + +
+

Drag-and-Drop works in each tree and between trees too.

+ + + + + + +
+
+
Source
+
+
<link rel="STYLESHEET" type="text/css" href="../../codebase/dhtmlxtree.css">
+<script  src="../../codebase/dhtmlxcommon.js"></script>
+<script  src="../../codebase/dhtmlxtree.js"></script>
+ 
+ 
+<table>
+    <tr>
+        <td valign="top">
+            <div id="treeboxbox_tree" style="width:250px; height:218px;background-color:#f5f5f5;border :1px solid Silver;overflow:hidden"></div><br>
+            
+        </td>
+        <td style="padding-left:25px" valign="top">
+            <div id="treeboxbox_tree2" style="width:250px; height:218px;background-color:#f5f5f5;border :1px solid Silver;overflow:hidden"></div><br>
+ 
+        </td>
+    </tr>
+</table>
+ 
+ 
+<script>
tree = new dhtmlXTreeObject("treeboxbox_tree", "100%", "100%", 0);
+ 
+tree.setSkin('dhx_skyblue');
+tree.setImagePath("../../codebase/imgs/csh_yellowbooks/");
+tree.enableDragAndDrop(true);
+tree.loadXML("../common/tree_05_drag_n_drop.xml");
+ 
+tree2 = new dhtmlXTreeObject("treeboxbox_tree2", "100%", "100%", 0);
+ 
+tree2.setSkin('dhx_skyblue');
+tree2.setImagePath("../../codebase/imgs/csh_yellowbooks/");
+tree2.enableDragAndDrop(true);
+tree2.loadXML("../common/tree_05_drag_n_drop.xml");
</script>
+
+ + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/inc/pro_drag_frame2_f1.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/inc/pro_drag_frame2_f1.html new file mode 100755 index 0000000000..5b6bdd94e0 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/inc/pro_drag_frame2_f1.html @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+ + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/inc/pro_drag_frame2_f2.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/inc/pro_drag_frame2_f2.html new file mode 100755 index 0000000000..9e08052311 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/inc/pro_drag_frame2_f2.html @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + +

+
+
 
+
 
+
 
+
 
+
+ + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/inc/pro_drag_frame2_f3.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/inc/pro_drag_frame2_f3.html new file mode 100755 index 0000000000..28874629cc --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/inc/pro_drag_frame2_f3.html @@ -0,0 +1,16 @@ + + + + + + + + + +

Drag and Drop between frames

+

Frame without tree

+ + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/inc/pro_drag_frame_f1.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/inc/pro_drag_frame_f1.html new file mode 100755 index 0000000000..7ddbd38287 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/inc/pro_drag_frame_f1.html @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + +
+
+
+ + +
+ + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/inc/pro_drag_frame_f2.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/inc/pro_drag_frame_f2.html new file mode 100755 index 0000000000..024b0eeca7 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/inc/pro_drag_frame_f2.html @@ -0,0 +1,27 @@ + + + + + + + + + + + + +
+ + + +

+ + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/inc/pro_drag_frame_f3.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/inc/pro_drag_frame_f3.html new file mode 100755 index 0000000000..e78f8f8548 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/inc/pro_drag_frame_f3.html @@ -0,0 +1,19 @@ + + + + + + + + + +

Frame without tree

+ + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/index.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/index.html new file mode 100755 index 0000000000..3aa42dca30 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/05_drag_n_drop/index.html @@ -0,0 +1,45 @@ + + + + Drag-n-drop + + + + + + + + + + +
+ +
DHTMLX Docs & Samples Explorer
+
+ +
+
+ + +
+
+
+ +
+

Drag-n-drop

+
+ +
+ + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/07_events/03_tree_events.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/07_events/03_tree_events.html new file mode 100755 index 0000000000..41596138e0 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/07_events/03_tree_events.html @@ -0,0 +1,198 @@ + + + + Event handlers + + + + + + + + + + +
+ +
DHTMLX Docs & Samples Explorer
+
+ +
+
+ + +
+
+
+ +
+

Event handlers

+
+ + + + + + +

This JavaScript tree example illustrates the ability to assign user-defined functions to different + event handlers (e.g. Mouse Over, Mouse Out, Check, UnCheck, Select, Deselect). If you try to change + a checkbox value, an alert box will appear. Alert box is displayed also when a tree node is selected. + Confirm box will pop up if user opens or closes a node.
+So, dhtmlxTree allows you to define any functions and attach them to event handlers in order to customize +tree behavior. That enriches possibilities for user interaction with JavaScript tree interface.

+ + + + + + + + + + +
+
+
+
+
 
+ +
  • Selected node ID will be passed to function specified as argument for setDefaultAction(funcObj)
  • +
  • Dropped node ID and new parent node ID will be passed to function specified as argument for setDragFunction(funcObj)
  • +
  • node ID will be passed to the function specified as argument for setOpenAction(aFunc)
  • +
  • node ID will be passed to the function specified as argument for setDblClickAction(aFunc)
  • + + + +
    +
    +
    Source
    +
    +
    <link rel="STYLESHEET" type="text/css" href="../../codebase/dhtmlxtree.css">
    +<script  src="../../codebase/dhtmlxcommon.js"></script>
    +<script  src="../../codebase/dhtmlxtree.js"></script>
    + 
    + 
    +<table>
    +    <tr>
    +        <td>
    +            <div id="treeboxbox_tree" style="width:250px; height:218px;background-color:#f5f5f5;border :1px solid Silver; "/>
    +        </td>
    +        <td rowspan="2" style="padding-left:25" valign="top">
    +            <div id="logarea" style="background-color:lightgrey;height:218px;width:400px; padding:3px; overflow:auto;"></div>
    +        </td>
    +    </tr>
    +    <tr>
    +        <td>&nbsp;</td>
    +    </tr>
    +</table>
    +    <li>Selected node ID will be passed to function specified as argument for setDefaultAction(funcObj)</li>
    +    <li>Dropped node ID and new parent node ID  will be passed to function specified as argument for setDragFunction(funcObj)</li>
    +    <li>node ID will be passed to the function specified as argument for setOpenAction(aFunc)</li>
    +    <li>node ID will be passed to the function specified as argument for setDblClickAction(aFunc)</li>
    +<script>
    function doLog(str) {
    +    var log = document.getElementById("logarea");
    +    log.innerHTML = log.innerHTML + str + "<br/>";
    +    log.scrollTop = log.scrollHeight;
    +}
    +function tonclick(id) {
    +    doLog("Item " + tree.getItemText(id) + " was selected");
    +};
    +function tondblclick(id) {
    +    doLog("Item " + tree.getItemText(id) + " was doubleclicked");
    +};
    +function tondrag(id, id2) {
    +    return confirm("Do you want to move node " + tree.getItemText(id) + " to item " + tree.getItemText(id2) + "?");
    +};
    +function tonopen(id, mode) {
    +    return confirm("Do you want to " + (mode > 0 ? "close": "open") + " node " + tree.getItemText(id) + "?");
    +};
    +function toncheck(id, state) {
    +    doLog("Item " + tree.getItemText(id) + " was " + ((state) ? "checked": "unchecked"));
    +};
    + 
    +tree = new dhtmlXTreeObject("treeboxbox_tree", "100%", "100%", 0);
    + 
    +tree.setSkin('dhx_skyblue');
    +tree.setImagePath("../../codebase/imgs/csh_bluebooks/");
    +tree.enableCheckBoxes(1);
    +tree.enableDragAndDrop(1);
    +tree.setOnOpenHandler(tonopen);
    +tree.attachEvent("onOpenEnd", function(nodeId, event) {
    +    doLog("An id of open item is " + nodeId);
    +});
    +tree.setOnClickHandler(tonclick);
    +tree.setOnCheckHandler(toncheck);
    +tree.setOnDblClickHandler(tondblclick);
    +tree.setDragHandler(tondrag);
    +tree.loadXML("../common/tree3.xml");
    </script>
    +
    + + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/07_events/index.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/07_events/index.html new file mode 100755 index 0000000000..f65a717aa5 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/07_events/index.html @@ -0,0 +1,45 @@ + + + + Events + + + + + + + + + + +
    + +
    DHTMLX Docs & Samples Explorer
    +
    + +
    +
    + + +
    +
    +
    + +
    +

    Events

    +
    + +
    + + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/09_initialization_general_settings/02_tree_init_from_html.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/09_initialization_general_settings/02_tree_init_from_html.html new file mode 100755 index 0000000000..b62fef4050 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/09_initialization_general_settings/02_tree_init_from_html.html @@ -0,0 +1,237 @@ + + + + Initialize from HTML + + + + + + + + + + +
    + +
    DHTMLX Docs & Samples Explorer
    +
    + +
    +
    + + +
    +
    +
    + +
    +

    Initialize from HTML

    +
    + + + + + + + + +

    + To do automatic conversion: +

      +
    • Add dhtmlXTree_start.js file into the page
    • +
    • Set class attribute of the top div element to dhtmlxTree
    • +
    • Set some attributes defining tree-specific properties of the top div element +
        +
      • setImagePath - sets path to tree's image files
      • +
      • id - name of javascript variable referred to the tree object
      • +
      +
    • +
    +

    +
    Initilize from list
    + + + + + +
    +
    +
      +
    • Root +
        +
      • Child1 +
          +
        • Child 1-1
        • +
        +
      • +
      • Child2
      • +
      • Bold Italic
      • +
      +
    • +
    +
    +
    +
    +
      +
    • Root +
        +
      • Child1 +
          +
        • Child 1-1
        • +
        +
      • +
      • Child2
      • +
      • Bold Italic
      • +
      +
    • +
    +
    +
    + + + +
    Initialize from inline XML structure
    +
    It is possible to use standard dhtmlxTree XML structure enclosed in XMP +tag inside div element which is a tree container.
    +
    +
    + + <item text="Root" open="1" id="11"> + <item text="Child1" select="1" open="1" id="12"> + <item text="Child1-1" id="13"/> + </item> + <item text="Child2" id="14"/> + <item id="15" text="Text"/> + </item> + +
    + + + + + +
    Initialize from HTML using script command
    +
    It is possible to convert existing html structure calling an appropriate script command. To test it press the Confirm button.
    +
    +
      +
    • Root +
        +
      • Child1 +
          +
        • Child 1-1
        • +
        +
      • +
      • Child2
      • +
      • Bold Italic
      • +
      +
    • +
    +
    + + + +
    +
    +
    Source
    +
    +
    <link rel="STYLESHEET" type="text/css" href="../../codebase/dhtmlxtree.css">
    +<script  src="../../codebase/dhtmlxcommon.js"></script>
    +<script  src="../../codebase/dhtmlxtree.js"></script>
    +<script  src="../../codebase/ext/dhtmlxtree_start.js"></script>
    +<script>
    dhtmlx.skin = "dhx_skyblue";
    </script> + +<div class="h3">Initilize from list</div> +<table> + <tr> + <td> +<div id="treeboxbox_tree" setImagePath="../../codebase/imgs/csh_bluebooks/" xclass="dhtmlxTree" style="width:250px; height:218px; background-color:#f5f5f5;border :1px solid Silver; "> + <ul> + <li>Root + <ul> + <li>Child1 + <ul> + <li>Child 1-1</li> + </ul> + </li> + <li>Child2</li> + <li><b>Bold</b> <i>Italic</i></li> + </ul> + </li> + </ul></li> +</div> + </td> + <td> +<div id="treeboxbox_tree" setImagePath="../../codebase/imgs/csh_bluebooks/" class="dhtmlxTree" style="width:250px; height:218px; background-color:#f5f5f5;border :1px solid Silver;"> + <ul> + <li>Root + <ul> + <li>Child1 + <ul> + <li>Child 1-1</li> + </ul> + </li> + <li>Child2</li> + <li><b>Bold</b> <i>Italic</i></li> + </ul> + </li> + </ul></li> +</div> + </td> + </tr> +</table> + +<!--- Start ---> +<div class="h3"><strong>Initialize from inline XML structure</strong></div> +<div class="txt">It is possible to use standard dhtmlxTree XML structure enclosed in <strong>XMP</strong> +tag inside div element which is a tree container.<br> +<br> +<div id="treeboxbox_tree2" setImagePath="../../codebase/imgs/" class="dhtmlxTree" style="width:250px; height:218px; background-color:#f5f5f5;border :1px solid Silver;;"> +<xmp container="true"> +<item text="Root" open="1" id="11"> + <item text="Child1" select="1" open="1" id="12"> + <item text="Child1-1" id="13"/> + </item> + <item text="Child2" id="14"/> + <item id="15" text="Text"/> +</item> +</xmp> +</div> + + +<!--- Start ---> +<div class="h3"><strong>Initialize from HTML using script command</strong></div> +<div class="txt">It is possible to convert existing html structure calling an appropriate script command. To test it press the Confirm button.</div> +<div id="listBox" setImagePath="../../codebase/imgs/" style="width:250px; height:218px; background-color:#f5f5f5;border :1px solid Silver;"> +<ul> + <li>Root + <ul> + <li>Child1 + <ul> + <li>Child 1-1</li> + </ul> + </li> + <li>Child2</li> + <li><b>Bold</b> <i>Italic</i></li> + </ul> + </li> +</ul> +</div> +<button onClick="var myTree = dhtmlXTreeFromHTML('listBox');">Convert</button>
    +
    + + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/09_initialization_general_settings/03_tree_init_xml.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/09_initialization_general_settings/03_tree_init_xml.html new file mode 100755 index 0000000000..53966076b8 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/09_initialization_general_settings/03_tree_init_xml.html @@ -0,0 +1,107 @@ + + + + Initialization from xml + + + + + + + + + + +
    + +
    DHTMLX Docs & Samples Explorer
    +
    + +
    +
    + + +
    +
    +
    + +
    +

    Initialization from xml

    +
    + + + + + + + +

    You can place this JavaScript tree menu anywhere on your web page, attaching the tree + to any object.
    + Set up tree parameters to determine the appearance of the tree. + Specify whether the tree items will be loaded dynamically from XML. dhtmlxTree uses + AJAX for fast and flexible data loading.

    + + + + + + + + + +
    +
    +
    + + +
     
    + + + +
    +
    +
    Source
    +
    +
    <link rel="STYLESHEET" type="text/css" href="../../codebase/dhtmlxtree.css">
    +<script  src="../../codebase/dhtmlxcommon.js"></script>
    +<script  src="../../codebase/dhtmlxtree.js"></script>
    + 
    + 
    +<table>
    +    <tr>
    +        <td>
    +            <div id="treeboxbox_tree" style="width:250px; height:218px;background-color:#f5f5f5;border :1px solid Silver;; overflow:auto;"/>
    +        </td>
    +        <td rowspan="2" style="padding-left:25" valign="top">
    +    
    +        </td>
    +    </tr>
    +    <tr>
    +        <td>&nbsp;</td>
    +    </tr>
    +</table>
    +<script>
    tree = new dhtmlXTreeObject("treeboxbox_tree", "100%", "100%", 0);
    +tree.setSkin('dhx_skyblue');
    +tree.setImagePath("../../codebase/imgs/csh_bluebooks/");
    +tree.loadXML("../common/tree3.xml");
    </script>
    +
    + + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/09_initialization_general_settings/04_tree_init_o_api.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/09_initialization_general_settings/04_tree_init_o_api.html new file mode 100755 index 0000000000..fe6fce5e0e --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/09_initialization_general_settings/04_tree_init_o_api.html @@ -0,0 +1,87 @@ + + + + Object constructor + + + + + + + + + + +
    + +
    DHTMLX Docs & Samples Explorer
    +
    + +
    +
    + + +
    +
    +
    + +
    +

    Object constructor

    +
    + + + + + + + + + + +
    + + + + + +
    +
    +
    Source
    +
    +
    <link rel="STYLESHEET" type="text/css" href="../../codebase/dhtmlxtree.css">
    +<script  src="../../codebase/dhtmlxcommon.js"></script>
    +<script  src="../../codebase/dhtmlxtree.js"></script>
    + 
    + 
    +            <div id="treeboxbox_tree" style="width:250px; height:218px;background-color:#f5f5f5;border :1px solid Silver;; overflow:auto;"/>
    + 
    +<script>
    tree = new dhtmlXTreeObject({
    +    skin: "dhx_skyblue",
    +    parent: "treeboxbox_tree",
    +    image_path: "../../codebase/imgs/csh_bluebooks/",
    +    checkbox: true,
    +    xml: "../common/tree3.xml";
    +});
    </script>
    +
    + + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/09_initialization_general_settings/index.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/09_initialization_general_settings/index.html new file mode 100755 index 0000000000..75b08a695c --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/09_initialization_general_settings/index.html @@ -0,0 +1,45 @@ + + + + Initialization, general settings + + + + + + + + + + +
    + +
    DHTMLX Docs & Samples Explorer
    +
    + +
    +
    + + +
    +
    +
    + +
    +

    Initialization, general settings

    +
    + +
    + + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/12_loading_processing_data/13_tree_dyn_loading.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/12_loading_processing_data/13_tree_dyn_loading.html new file mode 100755 index 0000000000..ead1a6fe61 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/12_loading_processing_data/13_tree_dyn_loading.html @@ -0,0 +1,88 @@ + + + + Autoloading from XML + + + + + + + + + + +
    + +
    DHTMLX Docs & Samples Explorer
    +
    + +
    +
    + + +
    +
    +
    + +
    +

    Autoloading from XML

    +
    + + + + + + +

    Advanced processing of XML allows this JavaScript tree menu to handle large amount of data. + Dynamical items loading from XML stream enables you to create DHTML trees with unlimited + number of nodes. You can load data asynchronously in dhtmlxTree as-needed (using AJAX) + that increases overall performance of the tree. It means that the script specified in setXMLAutoLoading() method will be called when you click the tree to expand any of the parent nodes (which child nodes were not loaded). The script will get the id of the node to open, and return the XML with description of the child items.

    + +
    +
    + + + + + +
    +
    +
    Source
    +
    +
    <link rel="STYLESHEET" type="text/css" href="../../codebase/dhtmlxtree.css">
    +<script  src="../../codebase/dhtmlxcommon.js"></script>
    +<script  src="../../codebase/dhtmlxtree.js"></script>
    + 
    + 
    +<div id="treeboxbox_tree" style="width:250px; height:218px;background-color:#f5f5f5;border :1px solid Silver;; overflow:auto;"></div>
    +<br>                
    + 
    +<script>
    tree = new dhtmlXTreeObject("treeboxbox_tree", "100%", "100%", 0);
    +tree.setSkin('dhx_skyblue');
    +tree.setImagePath("../../codebase/imgs/csh_bluebooks/");
    +tree.setXMLAutoLoading("php/xml.php");
    +tree.loadXML("php/xml.php?id=0");
    </script>
    +
    + + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/12_loading_processing_data/index.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/12_loading_processing_data/index.html new file mode 100755 index 0000000000..5acaf6acd7 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/12_loading_processing_data/index.html @@ -0,0 +1,45 @@ + + + + Loading/Processing data + + + + + + + + + + +
    + +
    DHTMLX Docs & Samples Explorer
    +
    + +
    +
    + + +
    +
    +
    + +
    +

    Loading/Processing data

    +
    + +
    + + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/12_loading_processing_data/php/tree_perf_xml.php b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/12_loading_processing_data/php/tree_perf_xml.php new file mode 100755 index 0000000000..5cf1f2fe2a --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/12_loading_processing_data/php/tree_perf_xml.php @@ -0,0 +1,15 @@ +'; + + for ($i=0; $i"; + for ($j=0; $j<$data[$i]; $j++) + echo ""; + echo ""; + } + echo ''; +?> diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/12_loading_processing_data/php/xml.php b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/12_loading_processing_data/php/xml.php new file mode 100755 index 0000000000..8127acf182 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/12_loading_processing_data/php/xml.php @@ -0,0 +1,13 @@ +"); +if (isset($_GET["id"])) + $url_var=$_GET["id"]; +else + $url_var=0; +print(""); + for ($inta=0; $inta<4; $inta++) + print("ud_data"); +print(""); +?> diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/13_nodes_manipulation/05_tree_add_delete.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/13_nodes_manipulation/05_tree_add_delete.html new file mode 100755 index 0000000000..03fba5bad1 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/13_nodes_manipulation/05_tree_add_delete.html @@ -0,0 +1,170 @@ + + + + Add / Delete items + + + + + + + + + + +
    + +
    DHTMLX Docs & Samples Explorer
    +
    + +
    +
    + + +
    +
    +
    + +
    +

    Add / Delete items

    +
    + +

    You can freely customize a tree view. This sample illustrates that the tree items can be easily + added/deleted dynamically through the graphical user interface. + You can insert new sibling or child node as well. + This feature allows you to configure a DHTML tree menu effortlessly.

    + + + + + + + + + + + + +
    + + +
    +
    + + + Insert new child item Item label

    + + Insert new item next Item label

    + + Delete item

    + +
    + + + +
  • zeros passed to the function for arguments 4-7 (function to call on select, images) mean the usage of default values for them
  • +
  • Last argument is a comma delimited string of the following possible value (upper case only):
  • +
  • SELECT - move selection to this node after inserting
  • +
  • CALL - call function on select
  • +
  • TOP - add node to the top position
  • +
  • CHILD - node has child items
  • +
  • CHECKED - checkbox is checked (if exists)
  • + + + +
    +
    +
    Source
    +
    +
     
    +<link rel="STYLESHEET" type="text/css" href="../../codebase/dhtmlxtree.css">
    +<script  src="../../codebase/dhtmlxcommon.js"></script>
    +<script  src="../../codebase/dhtmlxtree.js"></script>
    +<script>
    function fixImage(id) {
    +    switch (tree.getLevel(id)) {
    +    case 1:
    +        ;
    +        tree.setItemImage2(id, 'folderClosed.gif', 'folderOpen.gif', 'folderClosed.gif');
    +        break;
    +    case 2:
    +        ;
    +        tree.setItemImage2(id, 'folderClosed.gif', 'folderOpen.gif', 'folderClosed.gif');
    +        break;
    +    case 3:
    +        ;
    +        tree.setItemImage2(id, 'folderClosed.gif', 'folderOpen.gif', 'folderClosed.gif');
    +        break;
    +    default:
    +        ;
    +        tree.setItemImage2(id, 'leaf.gif', 'folderClosed.gif', 'folderOpen.gif');
    +        break;
    +    }
    +}
    </script> +<table> + <tr> + <td valign="top"> + + <div id="treeboxbox_tree" style="width:250px; height:218px;background-color:#f5f5f5;border :1px solid Silver;; overflow:auto;"></div> + </td> + <td rowspan="2" style="padding-left:25" valign="top"> + + <a href="javascript:void(0);" onClick="var d=new Date(); tree.insertNewItem(tree.getSelectedItemId(),d.valueOf(),document.getElementById('ed1').value,0,0,0,0,'SELECT'); fixImage(d.valueOf());">Insert new child item</a> Item label <input type="text" value="New item" id="ed1"><br><br> + <a href="javascript:void(0);" onClick="var d=new Date(); tree.insertNewNext(tree.getSelectedItemId(),d.valueOf(),document.getElementById('ed2').value,0,0,0,0,'SELECT'); fixImage(d.valueOf());">Insert new item next</a> Item label <input type="text" value="New item" id="ed2"><br><br> + <a href="javascript:void(0);" onClick="tree.deleteItem(tree.getSelectedItemId(),true);">Delete item</a><br><br> + </td> + </tr> +</table> + + <li>zeros passed to the function for arguments 4-7 (function to call on select, images) mean the usage of default values for them</li> + <li>Last argument is a comma delimited string of the following possible value (upper case only):</li> + <li type="circle">SELECT - move selection to this node after inserting</li> + <li type="circle">CALL - call function on select</li> + <li type="circle">TOP - add node to the top position </li> + <li type="circle">CHILD - node has child items</li> + <li type="circle">CHECKED - checkbox is checked (if exists)</li> +<script>
    tree = new dhtmlXTreeObject("treeboxbox_tree", "100%", "100%", 0);
    +tree.setSkin('dhx_skyblue');
    +tree.setImagePath("../../codebase/imgs/csh_bluebooks/");
    +tree.loadXML("../common/tree3.xml");
    </script>
    +
    + + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/13_nodes_manipulation/06_tree_open_close.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/13_nodes_manipulation/06_tree_open_close.html new file mode 100755 index 0000000000..dd2594aea5 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/13_nodes_manipulation/06_tree_open_close.html @@ -0,0 +1,135 @@ + + + + Collapse/Expand nodes + + + + + + + + + + +
    + +
    DHTMLX Docs & Samples Explorer
    +
    + +
    +
    + + +
    +
    +
    + +
    +

    Collapse/Expand nodes

    +
    + + + + + +

    You can easily collapse/expand any node, branch or the entire tree.

    + + + + + + + + + + +
    + + +
    +
    + + + Expand all

    + Collapse all

    + Close selected item

    + Open selected item

    + Collapse selected branch

    + Expand selected branch

    + +
     
    + + + + + + +
    +
    +
    Source
    +
    +
    <link rel="STYLESHEET" type="text/css" href="../../codebase/dhtmlxtree.css">
    +<script  src="../../codebase/dhtmlxcommon.js"></script>
    +<script  src="../../codebase/dhtmlxtree.js"></script>
    + 
    +<script>
    function closeAllRoots() {
    +    var rootsAr = tree.getSubItems(0).split(",");
    +    for (var i = 0; i < rootsAr.length; i++) {
    +        tree.closeAllItems(rootsAr[i]);
    +    }
    +}
    </script> +<table> + <tr> + <td valign="top"> + + <div id="treeboxbox_tree" style="width:250px; height:218px;background-color:#f5f5f5;border :1px solid Silver;; overflow:auto;"></div> + </td> + <td rowspan="2" style="padding-left:25" valign="top"> + + <a href="javascript:void(0);" onClick="tree.openAllItems(0);">Expand all</a><br><br> + <a href="javascript:void(0);" onClick="tree.closeAllItems(0);">Collapse all</a><br><br> + <a href="javascript:void(0);" onClick="tree.closeItem(tree.getSelectedItemId());">Close selected item</a><br><br> + <a href="javascript:void(0);" onClick="tree.openItem(tree.getSelectedItemId());">Open selected item</a><br><br> + <a href="javascript:void(0);" onClick="tree.closeAllItems(tree.getSelectedItemId());">Collapse selected branch</a><br><br> + <a href="javascript:void(0);" onClick="tree.openAllItems(tree.getSelectedItemId());">Expand selected branch</a><br><br> + </td> + </tr> + <tr> + <td>&nbsp;</td> + </tr> +</table> + +<script>
    tree = new dhtmlXTreeObject("treeboxbox_tree", "100%", "100%", 0);
    +tree.setSkin('dhx_skyblue');
    +tree.setImagePath("../../codebase/imgs/csh_bluebooks/");
    +tree.loadXML("../common/tree3.xml");
    </script>
    +
    + + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/13_nodes_manipulation/index.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/13_nodes_manipulation/index.html new file mode 100755 index 0000000000..160e5384fc --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/13_nodes_manipulation/index.html @@ -0,0 +1,45 @@ + + + + Nodes manipulations + + + + + + + + + + +
    + +
    DHTMLX Docs & Samples Explorer
    +
    + +
    +
    + + +
    +
    +
    + +
    +

    Nodes manipulations

    +
    + +
    + + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/_context.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/_context.xml new file mode 100755 index 0000000000..7187b45245 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/_context.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/big_data.json b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/big_data.json new file mode 100755 index 0000000000..68864b1f75 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/big_data.json @@ -0,0 +1,12102 @@ +{id:'0', item:[ +{id:'0--', text:'level 1-0', item:[ + {id:'0-0-', text:'level 2-0-0', item:[ + {id:'0-0-0', text:'level 3-0-0-0'} +, {id:'0-0-1', text:'level 3-0-0-1'} +, {id:'0-0-2', text:'level 3-0-0-2'} +, {id:'0-0-3', text:'level 3-0-0-3'} +, {id:'0-0-4', text:'level 3-0-0-4'} +, {id:'0-0-5', text:'level 3-0-0-5'} +, {id:'0-0-6', text:'level 3-0-0-6'} +, {id:'0-0-7', text:'level 3-0-0-7'} +, {id:'0-0-8', text:'level 3-0-0-8'} +, {id:'0-0-9', text:'level 3-0-0-9'} +]} +, {id:'0-1-10', text:'level 2-0-1', item:[ + {id:'0-1-0', text:'level 3-0-1-0'} +, {id:'0-1-1', text:'level 3-0-1-1'} +, {id:'0-1-2', text:'level 3-0-1-2'} +, {id:'0-1-3', text:'level 3-0-1-3'} +, {id:'0-1-4', text:'level 3-0-1-4'} +, {id:'0-1-5', text:'level 3-0-1-5'} +, {id:'0-1-6', text:'level 3-0-1-6'} +, {id:'0-1-7', text:'level 3-0-1-7'} +, {id:'0-1-8', text:'level 3-0-1-8'} +, {id:'0-1-9', text:'level 3-0-1-9'} +]} +, {id:'0-2-10', text:'level 2-0-2', item:[ + {id:'0-2-0', text:'level 3-0-2-0'} +, {id:'0-2-1', text:'level 3-0-2-1'} +, {id:'0-2-2', text:'level 3-0-2-2'} +, {id:'0-2-3', text:'level 3-0-2-3'} +, {id:'0-2-4', text:'level 3-0-2-4'} +, {id:'0-2-5', text:'level 3-0-2-5'} +, {id:'0-2-6', text:'level 3-0-2-6'} +, {id:'0-2-7', text:'level 3-0-2-7'} +, {id:'0-2-8', text:'level 3-0-2-8'} +, {id:'0-2-9', text:'level 3-0-2-9'} +]} +, {id:'0-3-10', text:'level 2-0-3', item:[ + {id:'0-3-0', text:'level 3-0-3-0'} +, {id:'0-3-1', text:'level 3-0-3-1'} +, {id:'0-3-2', text:'level 3-0-3-2'} +, {id:'0-3-3', text:'level 3-0-3-3'} +, {id:'0-3-4', text:'level 3-0-3-4'} +, {id:'0-3-5', text:'level 3-0-3-5'} +, {id:'0-3-6', text:'level 3-0-3-6'} +, {id:'0-3-7', text:'level 3-0-3-7'} +, {id:'0-3-8', text:'level 3-0-3-8'} +, {id:'0-3-9', text:'level 3-0-3-9'} +]} +, {id:'0-4-10', text:'level 2-0-4', item:[ + {id:'0-4-0', text:'level 3-0-4-0'} +, {id:'0-4-1', text:'level 3-0-4-1'} +, {id:'0-4-2', text:'level 3-0-4-2'} +, {id:'0-4-3', text:'level 3-0-4-3'} +, {id:'0-4-4', text:'level 3-0-4-4'} +, {id:'0-4-5', text:'level 3-0-4-5'} +, {id:'0-4-6', text:'level 3-0-4-6'} +, {id:'0-4-7', text:'level 3-0-4-7'} +, {id:'0-4-8', text:'level 3-0-4-8'} +, {id:'0-4-9', text:'level 3-0-4-9'} +]} +, {id:'0-5-10', text:'level 2-0-5', item:[ + {id:'0-5-0', text:'level 3-0-5-0'} +, {id:'0-5-1', text:'level 3-0-5-1'} +, {id:'0-5-2', text:'level 3-0-5-2'} +, {id:'0-5-3', text:'level 3-0-5-3'} +, {id:'0-5-4', text:'level 3-0-5-4'} +, {id:'0-5-5', text:'level 3-0-5-5'} +, {id:'0-5-6', text:'level 3-0-5-6'} +, {id:'0-5-7', text:'level 3-0-5-7'} +, {id:'0-5-8', text:'level 3-0-5-8'} +, {id:'0-5-9', text:'level 3-0-5-9'} +]} +, {id:'0-6-10', text:'level 2-0-6', item:[ + {id:'0-6-0', text:'level 3-0-6-0'} +, {id:'0-6-1', text:'level 3-0-6-1'} +, {id:'0-6-2', text:'level 3-0-6-2'} +, {id:'0-6-3', text:'level 3-0-6-3'} +, {id:'0-6-4', text:'level 3-0-6-4'} +, {id:'0-6-5', text:'level 3-0-6-5'} +, {id:'0-6-6', text:'level 3-0-6-6'} +, {id:'0-6-7', text:'level 3-0-6-7'} +, {id:'0-6-8', text:'level 3-0-6-8'} +, {id:'0-6-9', text:'level 3-0-6-9'} +]} +, {id:'0-7-10', text:'level 2-0-7', item:[ + {id:'0-7-0', text:'level 3-0-7-0'} +, {id:'0-7-1', text:'level 3-0-7-1'} +, {id:'0-7-2', text:'level 3-0-7-2'} +, {id:'0-7-3', text:'level 3-0-7-3'} +, {id:'0-7-4', text:'level 3-0-7-4'} +, {id:'0-7-5', text:'level 3-0-7-5'} +, {id:'0-7-6', text:'level 3-0-7-6'} +, {id:'0-7-7', text:'level 3-0-7-7'} +, {id:'0-7-8', text:'level 3-0-7-8'} +, {id:'0-7-9', text:'level 3-0-7-9'} +]} +, {id:'0-8-10', text:'level 2-0-8', item:[ + {id:'0-8-0', text:'level 3-0-8-0'} +, {id:'0-8-1', text:'level 3-0-8-1'} +, {id:'0-8-2', text:'level 3-0-8-2'} +, {id:'0-8-3', text:'level 3-0-8-3'} +, {id:'0-8-4', text:'level 3-0-8-4'} +, {id:'0-8-5', text:'level 3-0-8-5'} +, {id:'0-8-6', text:'level 3-0-8-6'} +, {id:'0-8-7', text:'level 3-0-8-7'} +, {id:'0-8-8', text:'level 3-0-8-8'} +, {id:'0-8-9', text:'level 3-0-8-9'} +]} +, {id:'0-9-10', text:'level 2-0-9', item:[ + {id:'0-9-0', text:'level 3-0-9-0'} +, {id:'0-9-1', text:'level 3-0-9-1'} +, {id:'0-9-2', text:'level 3-0-9-2'} +, {id:'0-9-3', text:'level 3-0-9-3'} +, {id:'0-9-4', text:'level 3-0-9-4'} +, {id:'0-9-5', text:'level 3-0-9-5'} +, {id:'0-9-6', text:'level 3-0-9-6'} +, {id:'0-9-7', text:'level 3-0-9-7'} +, {id:'0-9-8', text:'level 3-0-9-8'} +, {id:'0-9-9', text:'level 3-0-9-9'} +]} +, {id:'0-10-10', text:'level 2-0-10', item:[ + {id:'0-10-0', text:'level 3-0-10-0'} +, {id:'0-10-1', text:'level 3-0-10-1'} +, {id:'0-10-2', text:'level 3-0-10-2'} +, {id:'0-10-3', text:'level 3-0-10-3'} +, {id:'0-10-4', text:'level 3-0-10-4'} +, {id:'0-10-5', text:'level 3-0-10-5'} +, {id:'0-10-6', text:'level 3-0-10-6'} +, {id:'0-10-7', text:'level 3-0-10-7'} +, {id:'0-10-8', text:'level 3-0-10-8'} +, {id:'0-10-9', text:'level 3-0-10-9'} +]} +, {id:'0-11-10', text:'level 2-0-11', item:[ + {id:'0-11-0', text:'level 3-0-11-0'} +, {id:'0-11-1', text:'level 3-0-11-1'} +, {id:'0-11-2', text:'level 3-0-11-2'} +, {id:'0-11-3', text:'level 3-0-11-3'} +, {id:'0-11-4', text:'level 3-0-11-4'} +, {id:'0-11-5', text:'level 3-0-11-5'} +, {id:'0-11-6', text:'level 3-0-11-6'} +, {id:'0-11-7', text:'level 3-0-11-7'} +, {id:'0-11-8', text:'level 3-0-11-8'} +, {id:'0-11-9', text:'level 3-0-11-9'} +]} +, {id:'0-12-10', text:'level 2-0-12', item:[ + {id:'0-12-0', text:'level 3-0-12-0'} +, {id:'0-12-1', text:'level 3-0-12-1'} +, {id:'0-12-2', text:'level 3-0-12-2'} +, {id:'0-12-3', text:'level 3-0-12-3'} +, {id:'0-12-4', text:'level 3-0-12-4'} +, {id:'0-12-5', text:'level 3-0-12-5'} +, {id:'0-12-6', text:'level 3-0-12-6'} +, {id:'0-12-7', text:'level 3-0-12-7'} +, {id:'0-12-8', text:'level 3-0-12-8'} +, {id:'0-12-9', text:'level 3-0-12-9'} +]} +, {id:'0-13-10', text:'level 2-0-13', item:[ + {id:'0-13-0', text:'level 3-0-13-0'} +, {id:'0-13-1', text:'level 3-0-13-1'} +, {id:'0-13-2', text:'level 3-0-13-2'} +, {id:'0-13-3', text:'level 3-0-13-3'} +, {id:'0-13-4', text:'level 3-0-13-4'} +, {id:'0-13-5', text:'level 3-0-13-5'} +, {id:'0-13-6', text:'level 3-0-13-6'} +, {id:'0-13-7', text:'level 3-0-13-7'} +, {id:'0-13-8', text:'level 3-0-13-8'} +, {id:'0-13-9', text:'level 3-0-13-9'} +]} +, {id:'0-14-10', text:'level 2-0-14', item:[ + {id:'0-14-0', text:'level 3-0-14-0'} +, {id:'0-14-1', text:'level 3-0-14-1'} +, {id:'0-14-2', text:'level 3-0-14-2'} +, {id:'0-14-3', text:'level 3-0-14-3'} +, {id:'0-14-4', text:'level 3-0-14-4'} +, {id:'0-14-5', text:'level 3-0-14-5'} +, {id:'0-14-6', text:'level 3-0-14-6'} +, {id:'0-14-7', text:'level 3-0-14-7'} +, {id:'0-14-8', text:'level 3-0-14-8'} +, {id:'0-14-9', text:'level 3-0-14-9'} +]} +, {id:'0-15-10', text:'level 2-0-15', item:[ + {id:'0-15-0', text:'level 3-0-15-0'} +, {id:'0-15-1', text:'level 3-0-15-1'} +, {id:'0-15-2', text:'level 3-0-15-2'} +, {id:'0-15-3', text:'level 3-0-15-3'} +, {id:'0-15-4', text:'level 3-0-15-4'} +, {id:'0-15-5', text:'level 3-0-15-5'} +, {id:'0-15-6', text:'level 3-0-15-6'} +, {id:'0-15-7', text:'level 3-0-15-7'} +, {id:'0-15-8', text:'level 3-0-15-8'} +, {id:'0-15-9', text:'level 3-0-15-9'} +]} +, {id:'0-16-10', text:'level 2-0-16', item:[ + {id:'0-16-0', text:'level 3-0-16-0'} +, {id:'0-16-1', text:'level 3-0-16-1'} +, {id:'0-16-2', text:'level 3-0-16-2'} +, {id:'0-16-3', text:'level 3-0-16-3'} +, {id:'0-16-4', text:'level 3-0-16-4'} +, {id:'0-16-5', text:'level 3-0-16-5'} +, {id:'0-16-6', text:'level 3-0-16-6'} +, {id:'0-16-7', text:'level 3-0-16-7'} +, {id:'0-16-8', text:'level 3-0-16-8'} +, {id:'0-16-9', text:'level 3-0-16-9'} +]} +, {id:'0-17-10', text:'level 2-0-17', item:[ + {id:'0-17-0', text:'level 3-0-17-0'} +, {id:'0-17-1', text:'level 3-0-17-1'} +, {id:'0-17-2', text:'level 3-0-17-2'} +, {id:'0-17-3', text:'level 3-0-17-3'} +, {id:'0-17-4', text:'level 3-0-17-4'} +, {id:'0-17-5', text:'level 3-0-17-5'} +, {id:'0-17-6', text:'level 3-0-17-6'} +, {id:'0-17-7', text:'level 3-0-17-7'} +, {id:'0-17-8', text:'level 3-0-17-8'} +, {id:'0-17-9', text:'level 3-0-17-9'} +]} +, {id:'0-18-10', text:'level 2-0-18', item:[ + {id:'0-18-0', text:'level 3-0-18-0'} +, {id:'0-18-1', text:'level 3-0-18-1'} +, {id:'0-18-2', text:'level 3-0-18-2'} +, {id:'0-18-3', text:'level 3-0-18-3'} +, {id:'0-18-4', text:'level 3-0-18-4'} +, {id:'0-18-5', text:'level 3-0-18-5'} +, {id:'0-18-6', text:'level 3-0-18-6'} +, {id:'0-18-7', text:'level 3-0-18-7'} +, {id:'0-18-8', text:'level 3-0-18-8'} +, {id:'0-18-9', text:'level 3-0-18-9'} +]} +, {id:'0-19-10', text:'level 2-0-19', item:[ + {id:'0-19-0', text:'level 3-0-19-0'} +, {id:'0-19-1', text:'level 3-0-19-1'} +, {id:'0-19-2', text:'level 3-0-19-2'} +, {id:'0-19-3', text:'level 3-0-19-3'} +, {id:'0-19-4', text:'level 3-0-19-4'} +, {id:'0-19-5', text:'level 3-0-19-5'} +, {id:'0-19-6', text:'level 3-0-19-6'} +, {id:'0-19-7', text:'level 3-0-19-7'} +, {id:'0-19-8', text:'level 3-0-19-8'} +, {id:'0-19-9', text:'level 3-0-19-9'} +]} +]} +,{id:'1-20-10', text:'level 1-1', item:[ + {id:'1-0-10', text:'level 2-1-0', item:[ + {id:'1-0-0', text:'level 3-1-0-0'} +, {id:'1-0-1', text:'level 3-1-0-1'} +, {id:'1-0-2', text:'level 3-1-0-2'} +, {id:'1-0-3', text:'level 3-1-0-3'} +, {id:'1-0-4', text:'level 3-1-0-4'} +, {id:'1-0-5', text:'level 3-1-0-5'} +, {id:'1-0-6', text:'level 3-1-0-6'} +, {id:'1-0-7', text:'level 3-1-0-7'} +, {id:'1-0-8', text:'level 3-1-0-8'} +, {id:'1-0-9', text:'level 3-1-0-9'} +]} +, {id:'1-1-10', text:'level 2-1-1', item:[ + {id:'1-1-0', text:'level 3-1-1-0'} +, {id:'1-1-1', text:'level 3-1-1-1'} +, {id:'1-1-2', text:'level 3-1-1-2'} +, {id:'1-1-3', text:'level 3-1-1-3'} +, {id:'1-1-4', text:'level 3-1-1-4'} +, {id:'1-1-5', text:'level 3-1-1-5'} +, {id:'1-1-6', text:'level 3-1-1-6'} +, {id:'1-1-7', text:'level 3-1-1-7'} +, {id:'1-1-8', text:'level 3-1-1-8'} +, {id:'1-1-9', text:'level 3-1-1-9'} +]} +, {id:'1-2-10', text:'level 2-1-2', item:[ + {id:'1-2-0', text:'level 3-1-2-0'} +, {id:'1-2-1', text:'level 3-1-2-1'} +, {id:'1-2-2', text:'level 3-1-2-2'} +, {id:'1-2-3', text:'level 3-1-2-3'} +, {id:'1-2-4', text:'level 3-1-2-4'} +, {id:'1-2-5', text:'level 3-1-2-5'} +, {id:'1-2-6', text:'level 3-1-2-6'} +, {id:'1-2-7', text:'level 3-1-2-7'} +, {id:'1-2-8', text:'level 3-1-2-8'} +, {id:'1-2-9', text:'level 3-1-2-9'} +]} +, {id:'1-3-10', text:'level 2-1-3', item:[ + {id:'1-3-0', text:'level 3-1-3-0'} +, {id:'1-3-1', text:'level 3-1-3-1'} +, {id:'1-3-2', text:'level 3-1-3-2'} +, {id:'1-3-3', text:'level 3-1-3-3'} +, {id:'1-3-4', text:'level 3-1-3-4'} +, {id:'1-3-5', text:'level 3-1-3-5'} +, {id:'1-3-6', text:'level 3-1-3-6'} +, {id:'1-3-7', text:'level 3-1-3-7'} +, {id:'1-3-8', text:'level 3-1-3-8'} +, {id:'1-3-9', text:'level 3-1-3-9'} +]} +, {id:'1-4-10', text:'level 2-1-4', item:[ + {id:'1-4-0', text:'level 3-1-4-0'} +, {id:'1-4-1', text:'level 3-1-4-1'} +, {id:'1-4-2', text:'level 3-1-4-2'} +, {id:'1-4-3', text:'level 3-1-4-3'} +, {id:'1-4-4', text:'level 3-1-4-4'} +, {id:'1-4-5', text:'level 3-1-4-5'} +, {id:'1-4-6', text:'level 3-1-4-6'} +, {id:'1-4-7', text:'level 3-1-4-7'} +, {id:'1-4-8', text:'level 3-1-4-8'} +, {id:'1-4-9', text:'level 3-1-4-9'} +]} +, {id:'1-5-10', text:'level 2-1-5', item:[ + {id:'1-5-0', text:'level 3-1-5-0'} +, {id:'1-5-1', text:'level 3-1-5-1'} +, {id:'1-5-2', text:'level 3-1-5-2'} +, {id:'1-5-3', text:'level 3-1-5-3'} +, {id:'1-5-4', text:'level 3-1-5-4'} +, {id:'1-5-5', text:'level 3-1-5-5'} +, {id:'1-5-6', text:'level 3-1-5-6'} +, {id:'1-5-7', text:'level 3-1-5-7'} +, {id:'1-5-8', text:'level 3-1-5-8'} +, {id:'1-5-9', text:'level 3-1-5-9'} +]} +, {id:'1-6-10', text:'level 2-1-6', item:[ + {id:'1-6-0', text:'level 3-1-6-0'} +, {id:'1-6-1', text:'level 3-1-6-1'} +, {id:'1-6-2', text:'level 3-1-6-2'} +, {id:'1-6-3', text:'level 3-1-6-3'} +, {id:'1-6-4', text:'level 3-1-6-4'} +, {id:'1-6-5', text:'level 3-1-6-5'} +, {id:'1-6-6', text:'level 3-1-6-6'} +, {id:'1-6-7', text:'level 3-1-6-7'} +, {id:'1-6-8', text:'level 3-1-6-8'} +, {id:'1-6-9', text:'level 3-1-6-9'} +]} +, {id:'1-7-10', text:'level 2-1-7', item:[ + {id:'1-7-0', text:'level 3-1-7-0'} +, {id:'1-7-1', text:'level 3-1-7-1'} +, {id:'1-7-2', text:'level 3-1-7-2'} +, {id:'1-7-3', text:'level 3-1-7-3'} +, {id:'1-7-4', text:'level 3-1-7-4'} +, {id:'1-7-5', text:'level 3-1-7-5'} +, {id:'1-7-6', text:'level 3-1-7-6'} +, {id:'1-7-7', text:'level 3-1-7-7'} +, {id:'1-7-8', text:'level 3-1-7-8'} +, {id:'1-7-9', text:'level 3-1-7-9'} +]} +, {id:'1-8-10', text:'level 2-1-8', item:[ + {id:'1-8-0', text:'level 3-1-8-0'} +, {id:'1-8-1', text:'level 3-1-8-1'} +, {id:'1-8-2', text:'level 3-1-8-2'} +, {id:'1-8-3', text:'level 3-1-8-3'} +, {id:'1-8-4', text:'level 3-1-8-4'} +, {id:'1-8-5', text:'level 3-1-8-5'} +, {id:'1-8-6', text:'level 3-1-8-6'} +, {id:'1-8-7', text:'level 3-1-8-7'} +, {id:'1-8-8', text:'level 3-1-8-8'} +, {id:'1-8-9', text:'level 3-1-8-9'} +]} +, {id:'1-9-10', text:'level 2-1-9', item:[ + {id:'1-9-0', text:'level 3-1-9-0'} +, {id:'1-9-1', text:'level 3-1-9-1'} +, {id:'1-9-2', text:'level 3-1-9-2'} +, {id:'1-9-3', text:'level 3-1-9-3'} +, {id:'1-9-4', text:'level 3-1-9-4'} +, {id:'1-9-5', text:'level 3-1-9-5'} +, {id:'1-9-6', text:'level 3-1-9-6'} +, {id:'1-9-7', text:'level 3-1-9-7'} +, {id:'1-9-8', text:'level 3-1-9-8'} +, {id:'1-9-9', text:'level 3-1-9-9'} +]} +, {id:'1-10-10', text:'level 2-1-10', item:[ + {id:'1-10-0', text:'level 3-1-10-0'} +, {id:'1-10-1', text:'level 3-1-10-1'} +, {id:'1-10-2', text:'level 3-1-10-2'} +, {id:'1-10-3', text:'level 3-1-10-3'} +, {id:'1-10-4', text:'level 3-1-10-4'} +, {id:'1-10-5', text:'level 3-1-10-5'} +, {id:'1-10-6', text:'level 3-1-10-6'} +, {id:'1-10-7', text:'level 3-1-10-7'} +, {id:'1-10-8', text:'level 3-1-10-8'} +, {id:'1-10-9', text:'level 3-1-10-9'} +]} +, {id:'1-11-10', text:'level 2-1-11', item:[ + {id:'1-11-0', text:'level 3-1-11-0'} +, {id:'1-11-1', text:'level 3-1-11-1'} +, {id:'1-11-2', text:'level 3-1-11-2'} +, {id:'1-11-3', text:'level 3-1-11-3'} +, {id:'1-11-4', text:'level 3-1-11-4'} +, {id:'1-11-5', text:'level 3-1-11-5'} +, {id:'1-11-6', text:'level 3-1-11-6'} +, {id:'1-11-7', text:'level 3-1-11-7'} +, {id:'1-11-8', text:'level 3-1-11-8'} +, {id:'1-11-9', text:'level 3-1-11-9'} +]} +, {id:'1-12-10', text:'level 2-1-12', item:[ + {id:'1-12-0', text:'level 3-1-12-0'} +, {id:'1-12-1', text:'level 3-1-12-1'} +, {id:'1-12-2', text:'level 3-1-12-2'} +, {id:'1-12-3', text:'level 3-1-12-3'} +, {id:'1-12-4', text:'level 3-1-12-4'} +, {id:'1-12-5', text:'level 3-1-12-5'} +, {id:'1-12-6', text:'level 3-1-12-6'} +, {id:'1-12-7', text:'level 3-1-12-7'} +, {id:'1-12-8', text:'level 3-1-12-8'} +, {id:'1-12-9', text:'level 3-1-12-9'} +]} +, {id:'1-13-10', text:'level 2-1-13', item:[ + {id:'1-13-0', text:'level 3-1-13-0'} +, {id:'1-13-1', text:'level 3-1-13-1'} +, {id:'1-13-2', text:'level 3-1-13-2'} +, {id:'1-13-3', text:'level 3-1-13-3'} +, {id:'1-13-4', text:'level 3-1-13-4'} +, {id:'1-13-5', text:'level 3-1-13-5'} +, {id:'1-13-6', text:'level 3-1-13-6'} +, {id:'1-13-7', text:'level 3-1-13-7'} +, {id:'1-13-8', text:'level 3-1-13-8'} +, {id:'1-13-9', text:'level 3-1-13-9'} +]} +, {id:'1-14-10', text:'level 2-1-14', item:[ + {id:'1-14-0', text:'level 3-1-14-0'} +, {id:'1-14-1', text:'level 3-1-14-1'} +, {id:'1-14-2', text:'level 3-1-14-2'} +, {id:'1-14-3', text:'level 3-1-14-3'} +, {id:'1-14-4', text:'level 3-1-14-4'} +, {id:'1-14-5', text:'level 3-1-14-5'} +, {id:'1-14-6', text:'level 3-1-14-6'} +, {id:'1-14-7', text:'level 3-1-14-7'} +, {id:'1-14-8', text:'level 3-1-14-8'} +, {id:'1-14-9', text:'level 3-1-14-9'} +]} +, {id:'1-15-10', text:'level 2-1-15', item:[ + {id:'1-15-0', text:'level 3-1-15-0'} +, {id:'1-15-1', text:'level 3-1-15-1'} +, {id:'1-15-2', text:'level 3-1-15-2'} +, {id:'1-15-3', text:'level 3-1-15-3'} +, {id:'1-15-4', text:'level 3-1-15-4'} +, {id:'1-15-5', text:'level 3-1-15-5'} +, {id:'1-15-6', text:'level 3-1-15-6'} +, {id:'1-15-7', text:'level 3-1-15-7'} +, {id:'1-15-8', text:'level 3-1-15-8'} +, {id:'1-15-9', text:'level 3-1-15-9'} +]} +, {id:'1-16-10', text:'level 2-1-16', item:[ + {id:'1-16-0', text:'level 3-1-16-0'} +, {id:'1-16-1', text:'level 3-1-16-1'} +, {id:'1-16-2', text:'level 3-1-16-2'} +, {id:'1-16-3', text:'level 3-1-16-3'} +, {id:'1-16-4', text:'level 3-1-16-4'} +, {id:'1-16-5', text:'level 3-1-16-5'} +, {id:'1-16-6', text:'level 3-1-16-6'} +, {id:'1-16-7', text:'level 3-1-16-7'} +, {id:'1-16-8', text:'level 3-1-16-8'} +, {id:'1-16-9', text:'level 3-1-16-9'} +]} +, {id:'1-17-10', text:'level 2-1-17', item:[ + {id:'1-17-0', text:'level 3-1-17-0'} +, {id:'1-17-1', text:'level 3-1-17-1'} +, {id:'1-17-2', text:'level 3-1-17-2'} +, {id:'1-17-3', text:'level 3-1-17-3'} +, {id:'1-17-4', text:'level 3-1-17-4'} +, {id:'1-17-5', text:'level 3-1-17-5'} +, {id:'1-17-6', text:'level 3-1-17-6'} +, {id:'1-17-7', text:'level 3-1-17-7'} +, {id:'1-17-8', text:'level 3-1-17-8'} +, {id:'1-17-9', text:'level 3-1-17-9'} +]} +, {id:'1-18-10', text:'level 2-1-18', item:[ + {id:'1-18-0', text:'level 3-1-18-0'} +, {id:'1-18-1', text:'level 3-1-18-1'} +, {id:'1-18-2', text:'level 3-1-18-2'} +, {id:'1-18-3', text:'level 3-1-18-3'} +, {id:'1-18-4', text:'level 3-1-18-4'} +, {id:'1-18-5', text:'level 3-1-18-5'} +, {id:'1-18-6', text:'level 3-1-18-6'} +, {id:'1-18-7', text:'level 3-1-18-7'} +, {id:'1-18-8', text:'level 3-1-18-8'} +, {id:'1-18-9', text:'level 3-1-18-9'} +]} +, {id:'1-19-10', text:'level 2-1-19', item:[ + {id:'1-19-0', text:'level 3-1-19-0'} +, {id:'1-19-1', text:'level 3-1-19-1'} +, {id:'1-19-2', text:'level 3-1-19-2'} +, {id:'1-19-3', text:'level 3-1-19-3'} +, {id:'1-19-4', text:'level 3-1-19-4'} +, {id:'1-19-5', text:'level 3-1-19-5'} +, {id:'1-19-6', text:'level 3-1-19-6'} +, {id:'1-19-7', text:'level 3-1-19-7'} +, {id:'1-19-8', text:'level 3-1-19-8'} +, {id:'1-19-9', text:'level 3-1-19-9'} +]} +]} +,{id:'2-20-10', text:'level 1-2', item:[ + {id:'2-0-10', text:'level 2-2-0', item:[ + {id:'2-0-0', text:'level 3-2-0-0'} +, {id:'2-0-1', text:'level 3-2-0-1'} +, {id:'2-0-2', text:'level 3-2-0-2'} +, {id:'2-0-3', text:'level 3-2-0-3'} +, {id:'2-0-4', text:'level 3-2-0-4'} +, {id:'2-0-5', text:'level 3-2-0-5'} +, {id:'2-0-6', text:'level 3-2-0-6'} +, {id:'2-0-7', text:'level 3-2-0-7'} +, {id:'2-0-8', text:'level 3-2-0-8'} +, {id:'2-0-9', text:'level 3-2-0-9'} +]} +, {id:'2-1-10', text:'level 2-2-1', item:[ + {id:'2-1-0', text:'level 3-2-1-0'} +, {id:'2-1-1', text:'level 3-2-1-1'} +, {id:'2-1-2', text:'level 3-2-1-2'} +, {id:'2-1-3', text:'level 3-2-1-3'} +, {id:'2-1-4', text:'level 3-2-1-4'} +, {id:'2-1-5', text:'level 3-2-1-5'} +, {id:'2-1-6', text:'level 3-2-1-6'} +, {id:'2-1-7', text:'level 3-2-1-7'} +, {id:'2-1-8', text:'level 3-2-1-8'} +, {id:'2-1-9', text:'level 3-2-1-9'} +]} +, {id:'2-2-10', text:'level 2-2-2', item:[ + {id:'2-2-0', text:'level 3-2-2-0'} +, {id:'2-2-1', text:'level 3-2-2-1'} +, {id:'2-2-2', text:'level 3-2-2-2'} +, {id:'2-2-3', text:'level 3-2-2-3'} +, {id:'2-2-4', text:'level 3-2-2-4'} +, {id:'2-2-5', text:'level 3-2-2-5'} +, {id:'2-2-6', text:'level 3-2-2-6'} +, {id:'2-2-7', text:'level 3-2-2-7'} +, {id:'2-2-8', text:'level 3-2-2-8'} +, {id:'2-2-9', text:'level 3-2-2-9'} +]} +, {id:'2-3-10', text:'level 2-2-3', item:[ + {id:'2-3-0', text:'level 3-2-3-0'} +, {id:'2-3-1', text:'level 3-2-3-1'} +, {id:'2-3-2', text:'level 3-2-3-2'} +, {id:'2-3-3', text:'level 3-2-3-3'} +, {id:'2-3-4', text:'level 3-2-3-4'} +, {id:'2-3-5', text:'level 3-2-3-5'} +, {id:'2-3-6', text:'level 3-2-3-6'} +, {id:'2-3-7', text:'level 3-2-3-7'} +, {id:'2-3-8', text:'level 3-2-3-8'} +, {id:'2-3-9', text:'level 3-2-3-9'} +]} +, {id:'2-4-10', text:'level 2-2-4', item:[ + {id:'2-4-0', text:'level 3-2-4-0'} +, {id:'2-4-1', text:'level 3-2-4-1'} +, {id:'2-4-2', text:'level 3-2-4-2'} +, {id:'2-4-3', text:'level 3-2-4-3'} +, {id:'2-4-4', text:'level 3-2-4-4'} +, {id:'2-4-5', text:'level 3-2-4-5'} +, {id:'2-4-6', text:'level 3-2-4-6'} +, {id:'2-4-7', text:'level 3-2-4-7'} +, {id:'2-4-8', text:'level 3-2-4-8'} +, {id:'2-4-9', text:'level 3-2-4-9'} +]} +, {id:'2-5-10', text:'level 2-2-5', item:[ + {id:'2-5-0', text:'level 3-2-5-0'} +, {id:'2-5-1', text:'level 3-2-5-1'} +, {id:'2-5-2', text:'level 3-2-5-2'} +, {id:'2-5-3', text:'level 3-2-5-3'} +, {id:'2-5-4', text:'level 3-2-5-4'} +, {id:'2-5-5', text:'level 3-2-5-5'} +, {id:'2-5-6', text:'level 3-2-5-6'} +, {id:'2-5-7', text:'level 3-2-5-7'} +, {id:'2-5-8', text:'level 3-2-5-8'} +, {id:'2-5-9', text:'level 3-2-5-9'} +]} +, {id:'2-6-10', text:'level 2-2-6', item:[ + {id:'2-6-0', text:'level 3-2-6-0'} +, {id:'2-6-1', text:'level 3-2-6-1'} +, {id:'2-6-2', text:'level 3-2-6-2'} +, {id:'2-6-3', text:'level 3-2-6-3'} +, {id:'2-6-4', text:'level 3-2-6-4'} +, {id:'2-6-5', text:'level 3-2-6-5'} +, {id:'2-6-6', text:'level 3-2-6-6'} +, {id:'2-6-7', text:'level 3-2-6-7'} +, {id:'2-6-8', text:'level 3-2-6-8'} +, {id:'2-6-9', text:'level 3-2-6-9'} +]} +, {id:'2-7-10', text:'level 2-2-7', item:[ + {id:'2-7-0', text:'level 3-2-7-0'} +, {id:'2-7-1', text:'level 3-2-7-1'} +, {id:'2-7-2', text:'level 3-2-7-2'} +, {id:'2-7-3', text:'level 3-2-7-3'} +, {id:'2-7-4', text:'level 3-2-7-4'} +, {id:'2-7-5', text:'level 3-2-7-5'} +, {id:'2-7-6', text:'level 3-2-7-6'} +, {id:'2-7-7', text:'level 3-2-7-7'} +, {id:'2-7-8', text:'level 3-2-7-8'} +, {id:'2-7-9', text:'level 3-2-7-9'} +]} +, {id:'2-8-10', text:'level 2-2-8', item:[ + {id:'2-8-0', text:'level 3-2-8-0'} +, {id:'2-8-1', text:'level 3-2-8-1'} +, {id:'2-8-2', text:'level 3-2-8-2'} +, {id:'2-8-3', text:'level 3-2-8-3'} +, {id:'2-8-4', text:'level 3-2-8-4'} +, {id:'2-8-5', text:'level 3-2-8-5'} +, {id:'2-8-6', text:'level 3-2-8-6'} +, {id:'2-8-7', text:'level 3-2-8-7'} +, {id:'2-8-8', text:'level 3-2-8-8'} +, {id:'2-8-9', text:'level 3-2-8-9'} +]} +, {id:'2-9-10', text:'level 2-2-9', item:[ + {id:'2-9-0', text:'level 3-2-9-0'} +, {id:'2-9-1', text:'level 3-2-9-1'} +, {id:'2-9-2', text:'level 3-2-9-2'} +, {id:'2-9-3', text:'level 3-2-9-3'} +, {id:'2-9-4', text:'level 3-2-9-4'} +, {id:'2-9-5', text:'level 3-2-9-5'} +, {id:'2-9-6', text:'level 3-2-9-6'} +, {id:'2-9-7', text:'level 3-2-9-7'} +, {id:'2-9-8', text:'level 3-2-9-8'} +, {id:'2-9-9', text:'level 3-2-9-9'} +]} +, {id:'2-10-10', text:'level 2-2-10', item:[ + {id:'2-10-0', text:'level 3-2-10-0'} +, {id:'2-10-1', text:'level 3-2-10-1'} +, {id:'2-10-2', text:'level 3-2-10-2'} +, {id:'2-10-3', text:'level 3-2-10-3'} +, {id:'2-10-4', text:'level 3-2-10-4'} +, {id:'2-10-5', text:'level 3-2-10-5'} +, {id:'2-10-6', text:'level 3-2-10-6'} +, {id:'2-10-7', text:'level 3-2-10-7'} +, {id:'2-10-8', text:'level 3-2-10-8'} +, {id:'2-10-9', text:'level 3-2-10-9'} +]} +, {id:'2-11-10', text:'level 2-2-11', item:[ + {id:'2-11-0', text:'level 3-2-11-0'} +, {id:'2-11-1', text:'level 3-2-11-1'} +, {id:'2-11-2', text:'level 3-2-11-2'} +, {id:'2-11-3', text:'level 3-2-11-3'} +, {id:'2-11-4', text:'level 3-2-11-4'} +, {id:'2-11-5', text:'level 3-2-11-5'} +, {id:'2-11-6', text:'level 3-2-11-6'} +, {id:'2-11-7', text:'level 3-2-11-7'} +, {id:'2-11-8', text:'level 3-2-11-8'} +, {id:'2-11-9', text:'level 3-2-11-9'} +]} +, {id:'2-12-10', text:'level 2-2-12', item:[ + {id:'2-12-0', text:'level 3-2-12-0'} +, {id:'2-12-1', text:'level 3-2-12-1'} +, {id:'2-12-2', text:'level 3-2-12-2'} +, {id:'2-12-3', text:'level 3-2-12-3'} +, {id:'2-12-4', text:'level 3-2-12-4'} +, {id:'2-12-5', text:'level 3-2-12-5'} +, {id:'2-12-6', text:'level 3-2-12-6'} +, {id:'2-12-7', text:'level 3-2-12-7'} +, {id:'2-12-8', text:'level 3-2-12-8'} +, {id:'2-12-9', text:'level 3-2-12-9'} +]} +, {id:'2-13-10', text:'level 2-2-13', item:[ + {id:'2-13-0', text:'level 3-2-13-0'} +, {id:'2-13-1', text:'level 3-2-13-1'} +, {id:'2-13-2', text:'level 3-2-13-2'} +, {id:'2-13-3', text:'level 3-2-13-3'} +, {id:'2-13-4', text:'level 3-2-13-4'} +, {id:'2-13-5', text:'level 3-2-13-5'} +, {id:'2-13-6', text:'level 3-2-13-6'} +, {id:'2-13-7', text:'level 3-2-13-7'} +, {id:'2-13-8', text:'level 3-2-13-8'} +, {id:'2-13-9', text:'level 3-2-13-9'} +]} +, {id:'2-14-10', text:'level 2-2-14', item:[ + {id:'2-14-0', text:'level 3-2-14-0'} +, {id:'2-14-1', text:'level 3-2-14-1'} +, {id:'2-14-2', text:'level 3-2-14-2'} +, {id:'2-14-3', text:'level 3-2-14-3'} +, {id:'2-14-4', text:'level 3-2-14-4'} +, {id:'2-14-5', text:'level 3-2-14-5'} +, {id:'2-14-6', text:'level 3-2-14-6'} +, {id:'2-14-7', text:'level 3-2-14-7'} +, {id:'2-14-8', text:'level 3-2-14-8'} +, {id:'2-14-9', text:'level 3-2-14-9'} +]} +, {id:'2-15-10', text:'level 2-2-15', item:[ + {id:'2-15-0', text:'level 3-2-15-0'} +, {id:'2-15-1', text:'level 3-2-15-1'} +, {id:'2-15-2', text:'level 3-2-15-2'} +, {id:'2-15-3', text:'level 3-2-15-3'} +, {id:'2-15-4', text:'level 3-2-15-4'} +, {id:'2-15-5', text:'level 3-2-15-5'} +, {id:'2-15-6', text:'level 3-2-15-6'} +, {id:'2-15-7', text:'level 3-2-15-7'} +, {id:'2-15-8', text:'level 3-2-15-8'} +, {id:'2-15-9', text:'level 3-2-15-9'} +]} +, {id:'2-16-10', text:'level 2-2-16', item:[ + {id:'2-16-0', text:'level 3-2-16-0'} +, {id:'2-16-1', text:'level 3-2-16-1'} +, {id:'2-16-2', text:'level 3-2-16-2'} +, {id:'2-16-3', text:'level 3-2-16-3'} +, {id:'2-16-4', text:'level 3-2-16-4'} +, {id:'2-16-5', text:'level 3-2-16-5'} +, {id:'2-16-6', text:'level 3-2-16-6'} +, {id:'2-16-7', text:'level 3-2-16-7'} +, {id:'2-16-8', text:'level 3-2-16-8'} +, {id:'2-16-9', text:'level 3-2-16-9'} +]} +, {id:'2-17-10', text:'level 2-2-17', item:[ + {id:'2-17-0', text:'level 3-2-17-0'} +, {id:'2-17-1', text:'level 3-2-17-1'} +, {id:'2-17-2', text:'level 3-2-17-2'} +, {id:'2-17-3', text:'level 3-2-17-3'} +, {id:'2-17-4', text:'level 3-2-17-4'} +, {id:'2-17-5', text:'level 3-2-17-5'} +, {id:'2-17-6', text:'level 3-2-17-6'} +, {id:'2-17-7', text:'level 3-2-17-7'} +, {id:'2-17-8', text:'level 3-2-17-8'} +, {id:'2-17-9', text:'level 3-2-17-9'} +]} +, {id:'2-18-10', text:'level 2-2-18', item:[ + {id:'2-18-0', text:'level 3-2-18-0'} +, {id:'2-18-1', text:'level 3-2-18-1'} +, {id:'2-18-2', text:'level 3-2-18-2'} +, {id:'2-18-3', text:'level 3-2-18-3'} +, {id:'2-18-4', text:'level 3-2-18-4'} +, {id:'2-18-5', text:'level 3-2-18-5'} +, {id:'2-18-6', text:'level 3-2-18-6'} +, {id:'2-18-7', text:'level 3-2-18-7'} +, {id:'2-18-8', text:'level 3-2-18-8'} +, {id:'2-18-9', text:'level 3-2-18-9'} +]} +, {id:'2-19-10', text:'level 2-2-19', item:[ + {id:'2-19-0', text:'level 3-2-19-0'} +, {id:'2-19-1', text:'level 3-2-19-1'} +, {id:'2-19-2', text:'level 3-2-19-2'} +, {id:'2-19-3', text:'level 3-2-19-3'} +, {id:'2-19-4', text:'level 3-2-19-4'} +, {id:'2-19-5', text:'level 3-2-19-5'} +, {id:'2-19-6', text:'level 3-2-19-6'} +, {id:'2-19-7', text:'level 3-2-19-7'} +, {id:'2-19-8', text:'level 3-2-19-8'} +, {id:'2-19-9', text:'level 3-2-19-9'} +]} +]} +,{id:'3-20-10', text:'level 1-3', item:[ + {id:'3-0-10', text:'level 2-3-0', item:[ + {id:'3-0-0', text:'level 3-3-0-0'} +, {id:'3-0-1', text:'level 3-3-0-1'} +, {id:'3-0-2', text:'level 3-3-0-2'} +, {id:'3-0-3', text:'level 3-3-0-3'} +, {id:'3-0-4', text:'level 3-3-0-4'} +, {id:'3-0-5', text:'level 3-3-0-5'} +, {id:'3-0-6', text:'level 3-3-0-6'} +, {id:'3-0-7', text:'level 3-3-0-7'} +, {id:'3-0-8', text:'level 3-3-0-8'} +, {id:'3-0-9', text:'level 3-3-0-9'} +]} +, {id:'3-1-10', text:'level 2-3-1', item:[ + {id:'3-1-0', text:'level 3-3-1-0'} +, {id:'3-1-1', text:'level 3-3-1-1'} +, {id:'3-1-2', text:'level 3-3-1-2'} +, {id:'3-1-3', text:'level 3-3-1-3'} +, {id:'3-1-4', text:'level 3-3-1-4'} +, {id:'3-1-5', text:'level 3-3-1-5'} +, {id:'3-1-6', text:'level 3-3-1-6'} +, {id:'3-1-7', text:'level 3-3-1-7'} +, {id:'3-1-8', text:'level 3-3-1-8'} +, {id:'3-1-9', text:'level 3-3-1-9'} +]} +, {id:'3-2-10', text:'level 2-3-2', item:[ + {id:'3-2-0', text:'level 3-3-2-0'} +, {id:'3-2-1', text:'level 3-3-2-1'} +, {id:'3-2-2', text:'level 3-3-2-2'} +, {id:'3-2-3', text:'level 3-3-2-3'} +, {id:'3-2-4', text:'level 3-3-2-4'} +, {id:'3-2-5', text:'level 3-3-2-5'} +, {id:'3-2-6', text:'level 3-3-2-6'} +, {id:'3-2-7', text:'level 3-3-2-7'} +, {id:'3-2-8', text:'level 3-3-2-8'} +, {id:'3-2-9', text:'level 3-3-2-9'} +]} +, {id:'3-3-10', text:'level 2-3-3', item:[ + {id:'3-3-0', text:'level 3-3-3-0'} +, {id:'3-3-1', text:'level 3-3-3-1'} +, {id:'3-3-2', text:'level 3-3-3-2'} +, {id:'3-3-3', text:'level 3-3-3-3'} +, {id:'3-3-4', text:'level 3-3-3-4'} +, {id:'3-3-5', text:'level 3-3-3-5'} +, {id:'3-3-6', text:'level 3-3-3-6'} +, {id:'3-3-7', text:'level 3-3-3-7'} +, {id:'3-3-8', text:'level 3-3-3-8'} +, {id:'3-3-9', text:'level 3-3-3-9'} +]} +, {id:'3-4-10', text:'level 2-3-4', item:[ + {id:'3-4-0', text:'level 3-3-4-0'} +, {id:'3-4-1', text:'level 3-3-4-1'} +, {id:'3-4-2', text:'level 3-3-4-2'} +, {id:'3-4-3', text:'level 3-3-4-3'} +, {id:'3-4-4', text:'level 3-3-4-4'} +, {id:'3-4-5', text:'level 3-3-4-5'} +, {id:'3-4-6', text:'level 3-3-4-6'} +, {id:'3-4-7', text:'level 3-3-4-7'} +, {id:'3-4-8', text:'level 3-3-4-8'} +, {id:'3-4-9', text:'level 3-3-4-9'} +]} +, {id:'3-5-10', text:'level 2-3-5', item:[ + {id:'3-5-0', text:'level 3-3-5-0'} +, {id:'3-5-1', text:'level 3-3-5-1'} +, {id:'3-5-2', text:'level 3-3-5-2'} +, {id:'3-5-3', text:'level 3-3-5-3'} +, {id:'3-5-4', text:'level 3-3-5-4'} +, {id:'3-5-5', text:'level 3-3-5-5'} +, {id:'3-5-6', text:'level 3-3-5-6'} +, {id:'3-5-7', text:'level 3-3-5-7'} +, {id:'3-5-8', text:'level 3-3-5-8'} +, {id:'3-5-9', text:'level 3-3-5-9'} +]} +, {id:'3-6-10', text:'level 2-3-6', item:[ + {id:'3-6-0', text:'level 3-3-6-0'} +, {id:'3-6-1', text:'level 3-3-6-1'} +, {id:'3-6-2', text:'level 3-3-6-2'} +, {id:'3-6-3', text:'level 3-3-6-3'} +, {id:'3-6-4', text:'level 3-3-6-4'} +, {id:'3-6-5', text:'level 3-3-6-5'} +, {id:'3-6-6', text:'level 3-3-6-6'} +, {id:'3-6-7', text:'level 3-3-6-7'} +, {id:'3-6-8', text:'level 3-3-6-8'} +, {id:'3-6-9', text:'level 3-3-6-9'} +]} +, {id:'3-7-10', text:'level 2-3-7', item:[ + {id:'3-7-0', text:'level 3-3-7-0'} +, {id:'3-7-1', text:'level 3-3-7-1'} +, {id:'3-7-2', text:'level 3-3-7-2'} +, {id:'3-7-3', text:'level 3-3-7-3'} +, {id:'3-7-4', text:'level 3-3-7-4'} +, {id:'3-7-5', text:'level 3-3-7-5'} +, {id:'3-7-6', text:'level 3-3-7-6'} +, {id:'3-7-7', text:'level 3-3-7-7'} +, {id:'3-7-8', text:'level 3-3-7-8'} +, {id:'3-7-9', text:'level 3-3-7-9'} +]} +, {id:'3-8-10', text:'level 2-3-8', item:[ + {id:'3-8-0', text:'level 3-3-8-0'} +, {id:'3-8-1', text:'level 3-3-8-1'} +, {id:'3-8-2', text:'level 3-3-8-2'} +, {id:'3-8-3', text:'level 3-3-8-3'} +, {id:'3-8-4', text:'level 3-3-8-4'} +, {id:'3-8-5', text:'level 3-3-8-5'} +, {id:'3-8-6', text:'level 3-3-8-6'} +, {id:'3-8-7', text:'level 3-3-8-7'} +, {id:'3-8-8', text:'level 3-3-8-8'} +, {id:'3-8-9', text:'level 3-3-8-9'} +]} +, {id:'3-9-10', text:'level 2-3-9', item:[ + {id:'3-9-0', text:'level 3-3-9-0'} +, {id:'3-9-1', text:'level 3-3-9-1'} +, {id:'3-9-2', text:'level 3-3-9-2'} +, {id:'3-9-3', text:'level 3-3-9-3'} +, {id:'3-9-4', text:'level 3-3-9-4'} +, {id:'3-9-5', text:'level 3-3-9-5'} +, {id:'3-9-6', text:'level 3-3-9-6'} +, {id:'3-9-7', text:'level 3-3-9-7'} +, {id:'3-9-8', text:'level 3-3-9-8'} +, {id:'3-9-9', text:'level 3-3-9-9'} +]} +, {id:'3-10-10', text:'level 2-3-10', item:[ + {id:'3-10-0', text:'level 3-3-10-0'} +, {id:'3-10-1', text:'level 3-3-10-1'} +, {id:'3-10-2', text:'level 3-3-10-2'} +, {id:'3-10-3', text:'level 3-3-10-3'} +, {id:'3-10-4', text:'level 3-3-10-4'} +, {id:'3-10-5', text:'level 3-3-10-5'} +, {id:'3-10-6', text:'level 3-3-10-6'} +, {id:'3-10-7', text:'level 3-3-10-7'} +, {id:'3-10-8', text:'level 3-3-10-8'} +, {id:'3-10-9', text:'level 3-3-10-9'} +]} +, {id:'3-11-10', text:'level 2-3-11', item:[ + {id:'3-11-0', text:'level 3-3-11-0'} +, {id:'3-11-1', text:'level 3-3-11-1'} +, {id:'3-11-2', text:'level 3-3-11-2'} +, {id:'3-11-3', text:'level 3-3-11-3'} +, {id:'3-11-4', text:'level 3-3-11-4'} +, {id:'3-11-5', text:'level 3-3-11-5'} +, {id:'3-11-6', text:'level 3-3-11-6'} +, {id:'3-11-7', text:'level 3-3-11-7'} +, {id:'3-11-8', text:'level 3-3-11-8'} +, {id:'3-11-9', text:'level 3-3-11-9'} +]} +, {id:'3-12-10', text:'level 2-3-12', item:[ + {id:'3-12-0', text:'level 3-3-12-0'} +, {id:'3-12-1', text:'level 3-3-12-1'} +, {id:'3-12-2', text:'level 3-3-12-2'} +, {id:'3-12-3', text:'level 3-3-12-3'} +, {id:'3-12-4', text:'level 3-3-12-4'} +, {id:'3-12-5', text:'level 3-3-12-5'} +, {id:'3-12-6', text:'level 3-3-12-6'} +, {id:'3-12-7', text:'level 3-3-12-7'} +, {id:'3-12-8', text:'level 3-3-12-8'} +, {id:'3-12-9', text:'level 3-3-12-9'} +]} +, {id:'3-13-10', text:'level 2-3-13', item:[ + {id:'3-13-0', text:'level 3-3-13-0'} +, {id:'3-13-1', text:'level 3-3-13-1'} +, {id:'3-13-2', text:'level 3-3-13-2'} +, {id:'3-13-3', text:'level 3-3-13-3'} +, {id:'3-13-4', text:'level 3-3-13-4'} +, {id:'3-13-5', text:'level 3-3-13-5'} +, {id:'3-13-6', text:'level 3-3-13-6'} +, {id:'3-13-7', text:'level 3-3-13-7'} +, {id:'3-13-8', text:'level 3-3-13-8'} +, {id:'3-13-9', text:'level 3-3-13-9'} +]} +, {id:'3-14-10', text:'level 2-3-14', item:[ + {id:'3-14-0', text:'level 3-3-14-0'} +, {id:'3-14-1', text:'level 3-3-14-1'} +, {id:'3-14-2', text:'level 3-3-14-2'} +, {id:'3-14-3', text:'level 3-3-14-3'} +, {id:'3-14-4', text:'level 3-3-14-4'} +, {id:'3-14-5', text:'level 3-3-14-5'} +, {id:'3-14-6', text:'level 3-3-14-6'} +, {id:'3-14-7', text:'level 3-3-14-7'} +, {id:'3-14-8', text:'level 3-3-14-8'} +, {id:'3-14-9', text:'level 3-3-14-9'} +]} +, {id:'3-15-10', text:'level 2-3-15', item:[ + {id:'3-15-0', text:'level 3-3-15-0'} +, {id:'3-15-1', text:'level 3-3-15-1'} +, {id:'3-15-2', text:'level 3-3-15-2'} +, {id:'3-15-3', text:'level 3-3-15-3'} +, {id:'3-15-4', text:'level 3-3-15-4'} +, {id:'3-15-5', text:'level 3-3-15-5'} +, {id:'3-15-6', text:'level 3-3-15-6'} +, {id:'3-15-7', text:'level 3-3-15-7'} +, {id:'3-15-8', text:'level 3-3-15-8'} +, {id:'3-15-9', text:'level 3-3-15-9'} +]} +, {id:'3-16-10', text:'level 2-3-16', item:[ + {id:'3-16-0', text:'level 3-3-16-0'} +, {id:'3-16-1', text:'level 3-3-16-1'} +, {id:'3-16-2', text:'level 3-3-16-2'} +, {id:'3-16-3', text:'level 3-3-16-3'} +, {id:'3-16-4', text:'level 3-3-16-4'} +, {id:'3-16-5', text:'level 3-3-16-5'} +, {id:'3-16-6', text:'level 3-3-16-6'} +, {id:'3-16-7', text:'level 3-3-16-7'} +, {id:'3-16-8', text:'level 3-3-16-8'} +, {id:'3-16-9', text:'level 3-3-16-9'} +]} +, {id:'3-17-10', text:'level 2-3-17', item:[ + {id:'3-17-0', text:'level 3-3-17-0'} +, {id:'3-17-1', text:'level 3-3-17-1'} +, {id:'3-17-2', text:'level 3-3-17-2'} +, {id:'3-17-3', text:'level 3-3-17-3'} +, {id:'3-17-4', text:'level 3-3-17-4'} +, {id:'3-17-5', text:'level 3-3-17-5'} +, {id:'3-17-6', text:'level 3-3-17-6'} +, {id:'3-17-7', text:'level 3-3-17-7'} +, {id:'3-17-8', text:'level 3-3-17-8'} +, {id:'3-17-9', text:'level 3-3-17-9'} +]} +, {id:'3-18-10', text:'level 2-3-18', item:[ + {id:'3-18-0', text:'level 3-3-18-0'} +, {id:'3-18-1', text:'level 3-3-18-1'} +, {id:'3-18-2', text:'level 3-3-18-2'} +, {id:'3-18-3', text:'level 3-3-18-3'} +, {id:'3-18-4', text:'level 3-3-18-4'} +, {id:'3-18-5', text:'level 3-3-18-5'} +, {id:'3-18-6', text:'level 3-3-18-6'} +, {id:'3-18-7', text:'level 3-3-18-7'} +, {id:'3-18-8', text:'level 3-3-18-8'} +, {id:'3-18-9', text:'level 3-3-18-9'} +]} +, {id:'3-19-10', text:'level 2-3-19', item:[ + {id:'3-19-0', text:'level 3-3-19-0'} +, {id:'3-19-1', text:'level 3-3-19-1'} +, {id:'3-19-2', text:'level 3-3-19-2'} +, {id:'3-19-3', text:'level 3-3-19-3'} +, {id:'3-19-4', text:'level 3-3-19-4'} +, {id:'3-19-5', text:'level 3-3-19-5'} +, {id:'3-19-6', text:'level 3-3-19-6'} +, {id:'3-19-7', text:'level 3-3-19-7'} +, {id:'3-19-8', text:'level 3-3-19-8'} +, {id:'3-19-9', text:'level 3-3-19-9'} +]} +]} +,{id:'4-20-10', text:'level 1-4', item:[ + {id:'4-0-10', text:'level 2-4-0', item:[ + {id:'4-0-0', text:'level 3-4-0-0'} +, {id:'4-0-1', text:'level 3-4-0-1'} +, {id:'4-0-2', text:'level 3-4-0-2'} +, {id:'4-0-3', text:'level 3-4-0-3'} +, {id:'4-0-4', text:'level 3-4-0-4'} +, {id:'4-0-5', text:'level 3-4-0-5'} +, {id:'4-0-6', text:'level 3-4-0-6'} +, {id:'4-0-7', text:'level 3-4-0-7'} +, {id:'4-0-8', text:'level 3-4-0-8'} +, {id:'4-0-9', text:'level 3-4-0-9'} +]} +, {id:'4-1-10', text:'level 2-4-1', item:[ + {id:'4-1-0', text:'level 3-4-1-0'} +, {id:'4-1-1', text:'level 3-4-1-1'} +, {id:'4-1-2', text:'level 3-4-1-2'} +, {id:'4-1-3', text:'level 3-4-1-3'} +, {id:'4-1-4', text:'level 3-4-1-4'} +, {id:'4-1-5', text:'level 3-4-1-5'} +, {id:'4-1-6', text:'level 3-4-1-6'} +, {id:'4-1-7', text:'level 3-4-1-7'} +, {id:'4-1-8', text:'level 3-4-1-8'} +, {id:'4-1-9', text:'level 3-4-1-9'} +]} +, {id:'4-2-10', text:'level 2-4-2', item:[ + {id:'4-2-0', text:'level 3-4-2-0'} +, {id:'4-2-1', text:'level 3-4-2-1'} +, {id:'4-2-2', text:'level 3-4-2-2'} +, {id:'4-2-3', text:'level 3-4-2-3'} +, {id:'4-2-4', text:'level 3-4-2-4'} +, {id:'4-2-5', text:'level 3-4-2-5'} +, {id:'4-2-6', text:'level 3-4-2-6'} +, {id:'4-2-7', text:'level 3-4-2-7'} +, {id:'4-2-8', text:'level 3-4-2-8'} +, {id:'4-2-9', text:'level 3-4-2-9'} +]} +, {id:'4-3-10', text:'level 2-4-3', item:[ + {id:'4-3-0', text:'level 3-4-3-0'} +, {id:'4-3-1', text:'level 3-4-3-1'} +, {id:'4-3-2', text:'level 3-4-3-2'} +, {id:'4-3-3', text:'level 3-4-3-3'} +, {id:'4-3-4', text:'level 3-4-3-4'} +, {id:'4-3-5', text:'level 3-4-3-5'} +, {id:'4-3-6', text:'level 3-4-3-6'} +, {id:'4-3-7', text:'level 3-4-3-7'} +, {id:'4-3-8', text:'level 3-4-3-8'} +, {id:'4-3-9', text:'level 3-4-3-9'} +]} +, {id:'4-4-10', text:'level 2-4-4', item:[ + {id:'4-4-0', text:'level 3-4-4-0'} +, {id:'4-4-1', text:'level 3-4-4-1'} +, {id:'4-4-2', text:'level 3-4-4-2'} +, {id:'4-4-3', text:'level 3-4-4-3'} +, {id:'4-4-4', text:'level 3-4-4-4'} +, {id:'4-4-5', text:'level 3-4-4-5'} +, {id:'4-4-6', text:'level 3-4-4-6'} +, {id:'4-4-7', text:'level 3-4-4-7'} +, {id:'4-4-8', text:'level 3-4-4-8'} +, {id:'4-4-9', text:'level 3-4-4-9'} +]} +, {id:'4-5-10', text:'level 2-4-5', item:[ + {id:'4-5-0', text:'level 3-4-5-0'} +, {id:'4-5-1', text:'level 3-4-5-1'} +, {id:'4-5-2', text:'level 3-4-5-2'} +, {id:'4-5-3', text:'level 3-4-5-3'} +, {id:'4-5-4', text:'level 3-4-5-4'} +, {id:'4-5-5', text:'level 3-4-5-5'} +, {id:'4-5-6', text:'level 3-4-5-6'} +, {id:'4-5-7', text:'level 3-4-5-7'} +, {id:'4-5-8', text:'level 3-4-5-8'} +, {id:'4-5-9', text:'level 3-4-5-9'} +]} +, {id:'4-6-10', text:'level 2-4-6', item:[ + {id:'4-6-0', text:'level 3-4-6-0'} +, {id:'4-6-1', text:'level 3-4-6-1'} +, {id:'4-6-2', text:'level 3-4-6-2'} +, {id:'4-6-3', text:'level 3-4-6-3'} +, {id:'4-6-4', text:'level 3-4-6-4'} +, {id:'4-6-5', text:'level 3-4-6-5'} +, {id:'4-6-6', text:'level 3-4-6-6'} +, {id:'4-6-7', text:'level 3-4-6-7'} +, {id:'4-6-8', text:'level 3-4-6-8'} +, {id:'4-6-9', text:'level 3-4-6-9'} +]} +, {id:'4-7-10', text:'level 2-4-7', item:[ + {id:'4-7-0', text:'level 3-4-7-0'} +, {id:'4-7-1', text:'level 3-4-7-1'} +, {id:'4-7-2', text:'level 3-4-7-2'} +, {id:'4-7-3', text:'level 3-4-7-3'} +, {id:'4-7-4', text:'level 3-4-7-4'} +, {id:'4-7-5', text:'level 3-4-7-5'} +, {id:'4-7-6', text:'level 3-4-7-6'} +, {id:'4-7-7', text:'level 3-4-7-7'} +, {id:'4-7-8', text:'level 3-4-7-8'} +, {id:'4-7-9', text:'level 3-4-7-9'} +]} +, {id:'4-8-10', text:'level 2-4-8', item:[ + {id:'4-8-0', text:'level 3-4-8-0'} +, {id:'4-8-1', text:'level 3-4-8-1'} +, {id:'4-8-2', text:'level 3-4-8-2'} +, {id:'4-8-3', text:'level 3-4-8-3'} +, {id:'4-8-4', text:'level 3-4-8-4'} +, {id:'4-8-5', text:'level 3-4-8-5'} +, {id:'4-8-6', text:'level 3-4-8-6'} +, {id:'4-8-7', text:'level 3-4-8-7'} +, {id:'4-8-8', text:'level 3-4-8-8'} +, {id:'4-8-9', text:'level 3-4-8-9'} +]} +, {id:'4-9-10', text:'level 2-4-9', item:[ + {id:'4-9-0', text:'level 3-4-9-0'} +, {id:'4-9-1', text:'level 3-4-9-1'} +, {id:'4-9-2', text:'level 3-4-9-2'} +, {id:'4-9-3', text:'level 3-4-9-3'} +, {id:'4-9-4', text:'level 3-4-9-4'} +, {id:'4-9-5', text:'level 3-4-9-5'} +, {id:'4-9-6', text:'level 3-4-9-6'} +, {id:'4-9-7', text:'level 3-4-9-7'} +, {id:'4-9-8', text:'level 3-4-9-8'} +, {id:'4-9-9', text:'level 3-4-9-9'} +]} +, {id:'4-10-10', text:'level 2-4-10', item:[ + {id:'4-10-0', text:'level 3-4-10-0'} +, {id:'4-10-1', text:'level 3-4-10-1'} +, {id:'4-10-2', text:'level 3-4-10-2'} +, {id:'4-10-3', text:'level 3-4-10-3'} +, {id:'4-10-4', text:'level 3-4-10-4'} +, {id:'4-10-5', text:'level 3-4-10-5'} +, {id:'4-10-6', text:'level 3-4-10-6'} +, {id:'4-10-7', text:'level 3-4-10-7'} +, {id:'4-10-8', text:'level 3-4-10-8'} +, {id:'4-10-9', text:'level 3-4-10-9'} +]} +, {id:'4-11-10', text:'level 2-4-11', item:[ + {id:'4-11-0', text:'level 3-4-11-0'} +, {id:'4-11-1', text:'level 3-4-11-1'} +, {id:'4-11-2', text:'level 3-4-11-2'} +, {id:'4-11-3', text:'level 3-4-11-3'} +, {id:'4-11-4', text:'level 3-4-11-4'} +, {id:'4-11-5', text:'level 3-4-11-5'} +, {id:'4-11-6', text:'level 3-4-11-6'} +, {id:'4-11-7', text:'level 3-4-11-7'} +, {id:'4-11-8', text:'level 3-4-11-8'} +, {id:'4-11-9', text:'level 3-4-11-9'} +]} +, {id:'4-12-10', text:'level 2-4-12', item:[ + {id:'4-12-0', text:'level 3-4-12-0'} +, {id:'4-12-1', text:'level 3-4-12-1'} +, {id:'4-12-2', text:'level 3-4-12-2'} +, {id:'4-12-3', text:'level 3-4-12-3'} +, {id:'4-12-4', text:'level 3-4-12-4'} +, {id:'4-12-5', text:'level 3-4-12-5'} +, {id:'4-12-6', text:'level 3-4-12-6'} +, {id:'4-12-7', text:'level 3-4-12-7'} +, {id:'4-12-8', text:'level 3-4-12-8'} +, {id:'4-12-9', text:'level 3-4-12-9'} +]} +, {id:'4-13-10', text:'level 2-4-13', item:[ + {id:'4-13-0', text:'level 3-4-13-0'} +, {id:'4-13-1', text:'level 3-4-13-1'} +, {id:'4-13-2', text:'level 3-4-13-2'} +, {id:'4-13-3', text:'level 3-4-13-3'} +, {id:'4-13-4', text:'level 3-4-13-4'} +, {id:'4-13-5', text:'level 3-4-13-5'} +, {id:'4-13-6', text:'level 3-4-13-6'} +, {id:'4-13-7', text:'level 3-4-13-7'} +, {id:'4-13-8', text:'level 3-4-13-8'} +, {id:'4-13-9', text:'level 3-4-13-9'} +]} +, {id:'4-14-10', text:'level 2-4-14', item:[ + {id:'4-14-0', text:'level 3-4-14-0'} +, {id:'4-14-1', text:'level 3-4-14-1'} +, {id:'4-14-2', text:'level 3-4-14-2'} +, {id:'4-14-3', text:'level 3-4-14-3'} +, {id:'4-14-4', text:'level 3-4-14-4'} +, {id:'4-14-5', text:'level 3-4-14-5'} +, {id:'4-14-6', text:'level 3-4-14-6'} +, {id:'4-14-7', text:'level 3-4-14-7'} +, {id:'4-14-8', text:'level 3-4-14-8'} +, {id:'4-14-9', text:'level 3-4-14-9'} +]} +, {id:'4-15-10', text:'level 2-4-15', item:[ + {id:'4-15-0', text:'level 3-4-15-0'} +, {id:'4-15-1', text:'level 3-4-15-1'} +, {id:'4-15-2', text:'level 3-4-15-2'} +, {id:'4-15-3', text:'level 3-4-15-3'} +, {id:'4-15-4', text:'level 3-4-15-4'} +, {id:'4-15-5', text:'level 3-4-15-5'} +, {id:'4-15-6', text:'level 3-4-15-6'} +, {id:'4-15-7', text:'level 3-4-15-7'} +, {id:'4-15-8', text:'level 3-4-15-8'} +, {id:'4-15-9', text:'level 3-4-15-9'} +]} +, {id:'4-16-10', text:'level 2-4-16', item:[ + {id:'4-16-0', text:'level 3-4-16-0'} +, {id:'4-16-1', text:'level 3-4-16-1'} +, {id:'4-16-2', text:'level 3-4-16-2'} +, {id:'4-16-3', text:'level 3-4-16-3'} +, {id:'4-16-4', text:'level 3-4-16-4'} +, {id:'4-16-5', text:'level 3-4-16-5'} +, {id:'4-16-6', text:'level 3-4-16-6'} +, {id:'4-16-7', text:'level 3-4-16-7'} +, {id:'4-16-8', text:'level 3-4-16-8'} +, {id:'4-16-9', text:'level 3-4-16-9'} +]} +, {id:'4-17-10', text:'level 2-4-17', item:[ + {id:'4-17-0', text:'level 3-4-17-0'} +, {id:'4-17-1', text:'level 3-4-17-1'} +, {id:'4-17-2', text:'level 3-4-17-2'} +, {id:'4-17-3', text:'level 3-4-17-3'} +, {id:'4-17-4', text:'level 3-4-17-4'} +, {id:'4-17-5', text:'level 3-4-17-5'} +, {id:'4-17-6', text:'level 3-4-17-6'} +, {id:'4-17-7', text:'level 3-4-17-7'} +, {id:'4-17-8', text:'level 3-4-17-8'} +, {id:'4-17-9', text:'level 3-4-17-9'} +]} +, {id:'4-18-10', text:'level 2-4-18', item:[ + {id:'4-18-0', text:'level 3-4-18-0'} +, {id:'4-18-1', text:'level 3-4-18-1'} +, {id:'4-18-2', text:'level 3-4-18-2'} +, {id:'4-18-3', text:'level 3-4-18-3'} +, {id:'4-18-4', text:'level 3-4-18-4'} +, {id:'4-18-5', text:'level 3-4-18-5'} +, {id:'4-18-6', text:'level 3-4-18-6'} +, {id:'4-18-7', text:'level 3-4-18-7'} +, {id:'4-18-8', text:'level 3-4-18-8'} +, {id:'4-18-9', text:'level 3-4-18-9'} +]} +, {id:'4-19-10', text:'level 2-4-19', item:[ + {id:'4-19-0', text:'level 3-4-19-0'} +, {id:'4-19-1', text:'level 3-4-19-1'} +, {id:'4-19-2', text:'level 3-4-19-2'} +, {id:'4-19-3', text:'level 3-4-19-3'} +, {id:'4-19-4', text:'level 3-4-19-4'} +, {id:'4-19-5', text:'level 3-4-19-5'} +, {id:'4-19-6', text:'level 3-4-19-6'} +, {id:'4-19-7', text:'level 3-4-19-7'} +, {id:'4-19-8', text:'level 3-4-19-8'} +, {id:'4-19-9', text:'level 3-4-19-9'} +]} +]} +,{id:'5-20-10', text:'level 1-5', item:[ + {id:'5-0-10', text:'level 2-5-0', item:[ + {id:'5-0-0', text:'level 3-5-0-0'} +, {id:'5-0-1', text:'level 3-5-0-1'} +, {id:'5-0-2', text:'level 3-5-0-2'} +, {id:'5-0-3', text:'level 3-5-0-3'} +, {id:'5-0-4', text:'level 3-5-0-4'} +, {id:'5-0-5', text:'level 3-5-0-5'} +, {id:'5-0-6', text:'level 3-5-0-6'} +, {id:'5-0-7', text:'level 3-5-0-7'} +, {id:'5-0-8', text:'level 3-5-0-8'} +, {id:'5-0-9', text:'level 3-5-0-9'} +]} +, {id:'5-1-10', text:'level 2-5-1', item:[ + {id:'5-1-0', text:'level 3-5-1-0'} +, {id:'5-1-1', text:'level 3-5-1-1'} +, {id:'5-1-2', text:'level 3-5-1-2'} +, {id:'5-1-3', text:'level 3-5-1-3'} +, {id:'5-1-4', text:'level 3-5-1-4'} +, {id:'5-1-5', text:'level 3-5-1-5'} +, {id:'5-1-6', text:'level 3-5-1-6'} +, {id:'5-1-7', text:'level 3-5-1-7'} +, {id:'5-1-8', text:'level 3-5-1-8'} +, {id:'5-1-9', text:'level 3-5-1-9'} +]} +, {id:'5-2-10', text:'level 2-5-2', item:[ + {id:'5-2-0', text:'level 3-5-2-0'} +, {id:'5-2-1', text:'level 3-5-2-1'} +, {id:'5-2-2', text:'level 3-5-2-2'} +, {id:'5-2-3', text:'level 3-5-2-3'} +, {id:'5-2-4', text:'level 3-5-2-4'} +, {id:'5-2-5', text:'level 3-5-2-5'} +, {id:'5-2-6', text:'level 3-5-2-6'} +, {id:'5-2-7', text:'level 3-5-2-7'} +, {id:'5-2-8', text:'level 3-5-2-8'} +, {id:'5-2-9', text:'level 3-5-2-9'} +]} +, {id:'5-3-10', text:'level 2-5-3', item:[ + {id:'5-3-0', text:'level 3-5-3-0'} +, {id:'5-3-1', text:'level 3-5-3-1'} +, {id:'5-3-2', text:'level 3-5-3-2'} +, {id:'5-3-3', text:'level 3-5-3-3'} +, {id:'5-3-4', text:'level 3-5-3-4'} +, {id:'5-3-5', text:'level 3-5-3-5'} +, {id:'5-3-6', text:'level 3-5-3-6'} +, {id:'5-3-7', text:'level 3-5-3-7'} +, {id:'5-3-8', text:'level 3-5-3-8'} +, {id:'5-3-9', text:'level 3-5-3-9'} +]} +, {id:'5-4-10', text:'level 2-5-4', item:[ + {id:'5-4-0', text:'level 3-5-4-0'} +, {id:'5-4-1', text:'level 3-5-4-1'} +, {id:'5-4-2', text:'level 3-5-4-2'} +, {id:'5-4-3', text:'level 3-5-4-3'} +, {id:'5-4-4', text:'level 3-5-4-4'} +, {id:'5-4-5', text:'level 3-5-4-5'} +, {id:'5-4-6', text:'level 3-5-4-6'} +, {id:'5-4-7', text:'level 3-5-4-7'} +, {id:'5-4-8', text:'level 3-5-4-8'} +, {id:'5-4-9', text:'level 3-5-4-9'} +]} +, {id:'5-5-10', text:'level 2-5-5', item:[ + {id:'5-5-0', text:'level 3-5-5-0'} +, {id:'5-5-1', text:'level 3-5-5-1'} +, {id:'5-5-2', text:'level 3-5-5-2'} +, {id:'5-5-3', text:'level 3-5-5-3'} +, {id:'5-5-4', text:'level 3-5-5-4'} +, {id:'5-5-5', text:'level 3-5-5-5'} +, {id:'5-5-6', text:'level 3-5-5-6'} +, {id:'5-5-7', text:'level 3-5-5-7'} +, {id:'5-5-8', text:'level 3-5-5-8'} +, {id:'5-5-9', text:'level 3-5-5-9'} +]} +, {id:'5-6-10', text:'level 2-5-6', item:[ + {id:'5-6-0', text:'level 3-5-6-0'} +, {id:'5-6-1', text:'level 3-5-6-1'} +, {id:'5-6-2', text:'level 3-5-6-2'} +, {id:'5-6-3', text:'level 3-5-6-3'} +, {id:'5-6-4', text:'level 3-5-6-4'} +, {id:'5-6-5', text:'level 3-5-6-5'} +, {id:'5-6-6', text:'level 3-5-6-6'} +, {id:'5-6-7', text:'level 3-5-6-7'} +, {id:'5-6-8', text:'level 3-5-6-8'} +, {id:'5-6-9', text:'level 3-5-6-9'} +]} +, {id:'5-7-10', text:'level 2-5-7', item:[ + {id:'5-7-0', text:'level 3-5-7-0'} +, {id:'5-7-1', text:'level 3-5-7-1'} +, {id:'5-7-2', text:'level 3-5-7-2'} +, {id:'5-7-3', text:'level 3-5-7-3'} +, {id:'5-7-4', text:'level 3-5-7-4'} +, {id:'5-7-5', text:'level 3-5-7-5'} +, {id:'5-7-6', text:'level 3-5-7-6'} +, {id:'5-7-7', text:'level 3-5-7-7'} +, {id:'5-7-8', text:'level 3-5-7-8'} +, {id:'5-7-9', text:'level 3-5-7-9'} +]} +, {id:'5-8-10', text:'level 2-5-8', item:[ + {id:'5-8-0', text:'level 3-5-8-0'} +, {id:'5-8-1', text:'level 3-5-8-1'} +, {id:'5-8-2', text:'level 3-5-8-2'} +, {id:'5-8-3', text:'level 3-5-8-3'} +, {id:'5-8-4', text:'level 3-5-8-4'} +, {id:'5-8-5', text:'level 3-5-8-5'} +, {id:'5-8-6', text:'level 3-5-8-6'} +, {id:'5-8-7', text:'level 3-5-8-7'} +, {id:'5-8-8', text:'level 3-5-8-8'} +, {id:'5-8-9', text:'level 3-5-8-9'} +]} +, {id:'5-9-10', text:'level 2-5-9', item:[ + {id:'5-9-0', text:'level 3-5-9-0'} +, {id:'5-9-1', text:'level 3-5-9-1'} +, {id:'5-9-2', text:'level 3-5-9-2'} +, {id:'5-9-3', text:'level 3-5-9-3'} +, {id:'5-9-4', text:'level 3-5-9-4'} +, {id:'5-9-5', text:'level 3-5-9-5'} +, {id:'5-9-6', text:'level 3-5-9-6'} +, {id:'5-9-7', text:'level 3-5-9-7'} +, {id:'5-9-8', text:'level 3-5-9-8'} +, {id:'5-9-9', text:'level 3-5-9-9'} +]} +, {id:'5-10-10', text:'level 2-5-10', item:[ + {id:'5-10-0', text:'level 3-5-10-0'} +, {id:'5-10-1', text:'level 3-5-10-1'} +, {id:'5-10-2', text:'level 3-5-10-2'} +, {id:'5-10-3', text:'level 3-5-10-3'} +, {id:'5-10-4', text:'level 3-5-10-4'} +, {id:'5-10-5', text:'level 3-5-10-5'} +, {id:'5-10-6', text:'level 3-5-10-6'} +, {id:'5-10-7', text:'level 3-5-10-7'} +, {id:'5-10-8', text:'level 3-5-10-8'} +, {id:'5-10-9', text:'level 3-5-10-9'} +]} +, {id:'5-11-10', text:'level 2-5-11', item:[ + {id:'5-11-0', text:'level 3-5-11-0'} +, {id:'5-11-1', text:'level 3-5-11-1'} +, {id:'5-11-2', text:'level 3-5-11-2'} +, {id:'5-11-3', text:'level 3-5-11-3'} +, {id:'5-11-4', text:'level 3-5-11-4'} +, {id:'5-11-5', text:'level 3-5-11-5'} +, {id:'5-11-6', text:'level 3-5-11-6'} +, {id:'5-11-7', text:'level 3-5-11-7'} +, {id:'5-11-8', text:'level 3-5-11-8'} +, {id:'5-11-9', text:'level 3-5-11-9'} +]} +, {id:'5-12-10', text:'level 2-5-12', item:[ + {id:'5-12-0', text:'level 3-5-12-0'} +, {id:'5-12-1', text:'level 3-5-12-1'} +, {id:'5-12-2', text:'level 3-5-12-2'} +, {id:'5-12-3', text:'level 3-5-12-3'} +, {id:'5-12-4', text:'level 3-5-12-4'} +, {id:'5-12-5', text:'level 3-5-12-5'} +, {id:'5-12-6', text:'level 3-5-12-6'} +, {id:'5-12-7', text:'level 3-5-12-7'} +, {id:'5-12-8', text:'level 3-5-12-8'} +, {id:'5-12-9', text:'level 3-5-12-9'} +]} +, {id:'5-13-10', text:'level 2-5-13', item:[ + {id:'5-13-0', text:'level 3-5-13-0'} +, {id:'5-13-1', text:'level 3-5-13-1'} +, {id:'5-13-2', text:'level 3-5-13-2'} +, {id:'5-13-3', text:'level 3-5-13-3'} +, {id:'5-13-4', text:'level 3-5-13-4'} +, {id:'5-13-5', text:'level 3-5-13-5'} +, {id:'5-13-6', text:'level 3-5-13-6'} +, {id:'5-13-7', text:'level 3-5-13-7'} +, {id:'5-13-8', text:'level 3-5-13-8'} +, {id:'5-13-9', text:'level 3-5-13-9'} +]} +, {id:'5-14-10', text:'level 2-5-14', item:[ + {id:'5-14-0', text:'level 3-5-14-0'} +, {id:'5-14-1', text:'level 3-5-14-1'} +, {id:'5-14-2', text:'level 3-5-14-2'} +, {id:'5-14-3', text:'level 3-5-14-3'} +, {id:'5-14-4', text:'level 3-5-14-4'} +, {id:'5-14-5', text:'level 3-5-14-5'} +, {id:'5-14-6', text:'level 3-5-14-6'} +, {id:'5-14-7', text:'level 3-5-14-7'} +, {id:'5-14-8', text:'level 3-5-14-8'} +, {id:'5-14-9', text:'level 3-5-14-9'} +]} +, {id:'5-15-10', text:'level 2-5-15', item:[ + {id:'5-15-0', text:'level 3-5-15-0'} +, {id:'5-15-1', text:'level 3-5-15-1'} +, {id:'5-15-2', text:'level 3-5-15-2'} +, {id:'5-15-3', text:'level 3-5-15-3'} +, {id:'5-15-4', text:'level 3-5-15-4'} +, {id:'5-15-5', text:'level 3-5-15-5'} +, {id:'5-15-6', text:'level 3-5-15-6'} +, {id:'5-15-7', text:'level 3-5-15-7'} +, {id:'5-15-8', text:'level 3-5-15-8'} +, {id:'5-15-9', text:'level 3-5-15-9'} +]} +, {id:'5-16-10', text:'level 2-5-16', item:[ + {id:'5-16-0', text:'level 3-5-16-0'} +, {id:'5-16-1', text:'level 3-5-16-1'} +, {id:'5-16-2', text:'level 3-5-16-2'} +, {id:'5-16-3', text:'level 3-5-16-3'} +, {id:'5-16-4', text:'level 3-5-16-4'} +, {id:'5-16-5', text:'level 3-5-16-5'} +, {id:'5-16-6', text:'level 3-5-16-6'} +, {id:'5-16-7', text:'level 3-5-16-7'} +, {id:'5-16-8', text:'level 3-5-16-8'} +, {id:'5-16-9', text:'level 3-5-16-9'} +]} +, {id:'5-17-10', text:'level 2-5-17', item:[ + {id:'5-17-0', text:'level 3-5-17-0'} +, {id:'5-17-1', text:'level 3-5-17-1'} +, {id:'5-17-2', text:'level 3-5-17-2'} +, {id:'5-17-3', text:'level 3-5-17-3'} +, {id:'5-17-4', text:'level 3-5-17-4'} +, {id:'5-17-5', text:'level 3-5-17-5'} +, {id:'5-17-6', text:'level 3-5-17-6'} +, {id:'5-17-7', text:'level 3-5-17-7'} +, {id:'5-17-8', text:'level 3-5-17-8'} +, {id:'5-17-9', text:'level 3-5-17-9'} +]} +, {id:'5-18-10', text:'level 2-5-18', item:[ + {id:'5-18-0', text:'level 3-5-18-0'} +, {id:'5-18-1', text:'level 3-5-18-1'} +, {id:'5-18-2', text:'level 3-5-18-2'} +, {id:'5-18-3', text:'level 3-5-18-3'} +, {id:'5-18-4', text:'level 3-5-18-4'} +, {id:'5-18-5', text:'level 3-5-18-5'} +, {id:'5-18-6', text:'level 3-5-18-6'} +, {id:'5-18-7', text:'level 3-5-18-7'} +, {id:'5-18-8', text:'level 3-5-18-8'} +, {id:'5-18-9', text:'level 3-5-18-9'} +]} +, {id:'5-19-10', text:'level 2-5-19', item:[ + {id:'5-19-0', text:'level 3-5-19-0'} +, {id:'5-19-1', text:'level 3-5-19-1'} +, {id:'5-19-2', text:'level 3-5-19-2'} +, {id:'5-19-3', text:'level 3-5-19-3'} +, {id:'5-19-4', text:'level 3-5-19-4'} +, {id:'5-19-5', text:'level 3-5-19-5'} +, {id:'5-19-6', text:'level 3-5-19-6'} +, {id:'5-19-7', text:'level 3-5-19-7'} +, {id:'5-19-8', text:'level 3-5-19-8'} +, {id:'5-19-9', text:'level 3-5-19-9'} +]} +]} +,{id:'6-20-10', text:'level 1-6', item:[ + {id:'6-0-10', text:'level 2-6-0', item:[ + {id:'6-0-0', text:'level 3-6-0-0'} +, {id:'6-0-1', text:'level 3-6-0-1'} +, {id:'6-0-2', text:'level 3-6-0-2'} +, {id:'6-0-3', text:'level 3-6-0-3'} +, {id:'6-0-4', text:'level 3-6-0-4'} +, {id:'6-0-5', text:'level 3-6-0-5'} +, {id:'6-0-6', text:'level 3-6-0-6'} +, {id:'6-0-7', text:'level 3-6-0-7'} +, {id:'6-0-8', text:'level 3-6-0-8'} +, {id:'6-0-9', text:'level 3-6-0-9'} +]} +, {id:'6-1-10', text:'level 2-6-1', item:[ + {id:'6-1-0', text:'level 3-6-1-0'} +, {id:'6-1-1', text:'level 3-6-1-1'} +, {id:'6-1-2', text:'level 3-6-1-2'} +, {id:'6-1-3', text:'level 3-6-1-3'} +, {id:'6-1-4', text:'level 3-6-1-4'} +, {id:'6-1-5', text:'level 3-6-1-5'} +, {id:'6-1-6', text:'level 3-6-1-6'} +, {id:'6-1-7', text:'level 3-6-1-7'} +, {id:'6-1-8', text:'level 3-6-1-8'} +, {id:'6-1-9', text:'level 3-6-1-9'} +]} +, {id:'6-2-10', text:'level 2-6-2', item:[ + {id:'6-2-0', text:'level 3-6-2-0'} +, {id:'6-2-1', text:'level 3-6-2-1'} +, {id:'6-2-2', text:'level 3-6-2-2'} +, {id:'6-2-3', text:'level 3-6-2-3'} +, {id:'6-2-4', text:'level 3-6-2-4'} +, {id:'6-2-5', text:'level 3-6-2-5'} +, {id:'6-2-6', text:'level 3-6-2-6'} +, {id:'6-2-7', text:'level 3-6-2-7'} +, {id:'6-2-8', text:'level 3-6-2-8'} +, {id:'6-2-9', text:'level 3-6-2-9'} +]} +, {id:'6-3-10', text:'level 2-6-3', item:[ + {id:'6-3-0', text:'level 3-6-3-0'} +, {id:'6-3-1', text:'level 3-6-3-1'} +, {id:'6-3-2', text:'level 3-6-3-2'} +, {id:'6-3-3', text:'level 3-6-3-3'} +, {id:'6-3-4', text:'level 3-6-3-4'} +, {id:'6-3-5', text:'level 3-6-3-5'} +, {id:'6-3-6', text:'level 3-6-3-6'} +, {id:'6-3-7', text:'level 3-6-3-7'} +, {id:'6-3-8', text:'level 3-6-3-8'} +, {id:'6-3-9', text:'level 3-6-3-9'} +]} +, {id:'6-4-10', text:'level 2-6-4', item:[ + {id:'6-4-0', text:'level 3-6-4-0'} +, {id:'6-4-1', text:'level 3-6-4-1'} +, {id:'6-4-2', text:'level 3-6-4-2'} +, {id:'6-4-3', text:'level 3-6-4-3'} +, {id:'6-4-4', text:'level 3-6-4-4'} +, {id:'6-4-5', text:'level 3-6-4-5'} +, {id:'6-4-6', text:'level 3-6-4-6'} +, {id:'6-4-7', text:'level 3-6-4-7'} +, {id:'6-4-8', text:'level 3-6-4-8'} +, {id:'6-4-9', text:'level 3-6-4-9'} +]} +, {id:'6-5-10', text:'level 2-6-5', item:[ + {id:'6-5-0', text:'level 3-6-5-0'} +, {id:'6-5-1', text:'level 3-6-5-1'} +, {id:'6-5-2', text:'level 3-6-5-2'} +, {id:'6-5-3', text:'level 3-6-5-3'} +, {id:'6-5-4', text:'level 3-6-5-4'} +, {id:'6-5-5', text:'level 3-6-5-5'} +, {id:'6-5-6', text:'level 3-6-5-6'} +, {id:'6-5-7', text:'level 3-6-5-7'} +, {id:'6-5-8', text:'level 3-6-5-8'} +, {id:'6-5-9', text:'level 3-6-5-9'} +]} +, {id:'6-6-10', text:'level 2-6-6', item:[ + {id:'6-6-0', text:'level 3-6-6-0'} +, {id:'6-6-1', text:'level 3-6-6-1'} +, {id:'6-6-2', text:'level 3-6-6-2'} +, {id:'6-6-3', text:'level 3-6-6-3'} +, {id:'6-6-4', text:'level 3-6-6-4'} +, {id:'6-6-5', text:'level 3-6-6-5'} +, {id:'6-6-6', text:'level 3-6-6-6'} +, {id:'6-6-7', text:'level 3-6-6-7'} +, {id:'6-6-8', text:'level 3-6-6-8'} +, {id:'6-6-9', text:'level 3-6-6-9'} +]} +, {id:'6-7-10', text:'level 2-6-7', item:[ + {id:'6-7-0', text:'level 3-6-7-0'} +, {id:'6-7-1', text:'level 3-6-7-1'} +, {id:'6-7-2', text:'level 3-6-7-2'} +, {id:'6-7-3', text:'level 3-6-7-3'} +, {id:'6-7-4', text:'level 3-6-7-4'} +, {id:'6-7-5', text:'level 3-6-7-5'} +, {id:'6-7-6', text:'level 3-6-7-6'} +, {id:'6-7-7', text:'level 3-6-7-7'} +, {id:'6-7-8', text:'level 3-6-7-8'} +, {id:'6-7-9', text:'level 3-6-7-9'} +]} +, {id:'6-8-10', text:'level 2-6-8', item:[ + {id:'6-8-0', text:'level 3-6-8-0'} +, {id:'6-8-1', text:'level 3-6-8-1'} +, {id:'6-8-2', text:'level 3-6-8-2'} +, {id:'6-8-3', text:'level 3-6-8-3'} +, {id:'6-8-4', text:'level 3-6-8-4'} +, {id:'6-8-5', text:'level 3-6-8-5'} +, {id:'6-8-6', text:'level 3-6-8-6'} +, {id:'6-8-7', text:'level 3-6-8-7'} +, {id:'6-8-8', text:'level 3-6-8-8'} +, {id:'6-8-9', text:'level 3-6-8-9'} +]} +, {id:'6-9-10', text:'level 2-6-9', item:[ + {id:'6-9-0', text:'level 3-6-9-0'} +, {id:'6-9-1', text:'level 3-6-9-1'} +, {id:'6-9-2', text:'level 3-6-9-2'} +, {id:'6-9-3', text:'level 3-6-9-3'} +, {id:'6-9-4', text:'level 3-6-9-4'} +, {id:'6-9-5', text:'level 3-6-9-5'} +, {id:'6-9-6', text:'level 3-6-9-6'} +, {id:'6-9-7', text:'level 3-6-9-7'} +, {id:'6-9-8', text:'level 3-6-9-8'} +, {id:'6-9-9', text:'level 3-6-9-9'} +]} +, {id:'6-10-10', text:'level 2-6-10', item:[ + {id:'6-10-0', text:'level 3-6-10-0'} +, {id:'6-10-1', text:'level 3-6-10-1'} +, {id:'6-10-2', text:'level 3-6-10-2'} +, {id:'6-10-3', text:'level 3-6-10-3'} +, {id:'6-10-4', text:'level 3-6-10-4'} +, {id:'6-10-5', text:'level 3-6-10-5'} +, {id:'6-10-6', text:'level 3-6-10-6'} +, {id:'6-10-7', text:'level 3-6-10-7'} +, {id:'6-10-8', text:'level 3-6-10-8'} +, {id:'6-10-9', text:'level 3-6-10-9'} +]} +, {id:'6-11-10', text:'level 2-6-11', item:[ + {id:'6-11-0', text:'level 3-6-11-0'} +, {id:'6-11-1', text:'level 3-6-11-1'} +, {id:'6-11-2', text:'level 3-6-11-2'} +, {id:'6-11-3', text:'level 3-6-11-3'} +, {id:'6-11-4', text:'level 3-6-11-4'} +, {id:'6-11-5', text:'level 3-6-11-5'} +, {id:'6-11-6', text:'level 3-6-11-6'} +, {id:'6-11-7', text:'level 3-6-11-7'} +, {id:'6-11-8', text:'level 3-6-11-8'} +, {id:'6-11-9', text:'level 3-6-11-9'} +]} +, {id:'6-12-10', text:'level 2-6-12', item:[ + {id:'6-12-0', text:'level 3-6-12-0'} +, {id:'6-12-1', text:'level 3-6-12-1'} +, {id:'6-12-2', text:'level 3-6-12-2'} +, {id:'6-12-3', text:'level 3-6-12-3'} +, {id:'6-12-4', text:'level 3-6-12-4'} +, {id:'6-12-5', text:'level 3-6-12-5'} +, {id:'6-12-6', text:'level 3-6-12-6'} +, {id:'6-12-7', text:'level 3-6-12-7'} +, {id:'6-12-8', text:'level 3-6-12-8'} +, {id:'6-12-9', text:'level 3-6-12-9'} +]} +, {id:'6-13-10', text:'level 2-6-13', item:[ + {id:'6-13-0', text:'level 3-6-13-0'} +, {id:'6-13-1', text:'level 3-6-13-1'} +, {id:'6-13-2', text:'level 3-6-13-2'} +, {id:'6-13-3', text:'level 3-6-13-3'} +, {id:'6-13-4', text:'level 3-6-13-4'} +, {id:'6-13-5', text:'level 3-6-13-5'} +, {id:'6-13-6', text:'level 3-6-13-6'} +, {id:'6-13-7', text:'level 3-6-13-7'} +, {id:'6-13-8', text:'level 3-6-13-8'} +, {id:'6-13-9', text:'level 3-6-13-9'} +]} +, {id:'6-14-10', text:'level 2-6-14', item:[ + {id:'6-14-0', text:'level 3-6-14-0'} +, {id:'6-14-1', text:'level 3-6-14-1'} +, {id:'6-14-2', text:'level 3-6-14-2'} +, {id:'6-14-3', text:'level 3-6-14-3'} +, {id:'6-14-4', text:'level 3-6-14-4'} +, {id:'6-14-5', text:'level 3-6-14-5'} +, {id:'6-14-6', text:'level 3-6-14-6'} +, {id:'6-14-7', text:'level 3-6-14-7'} +, {id:'6-14-8', text:'level 3-6-14-8'} +, {id:'6-14-9', text:'level 3-6-14-9'} +]} +, {id:'6-15-10', text:'level 2-6-15', item:[ + {id:'6-15-0', text:'level 3-6-15-0'} +, {id:'6-15-1', text:'level 3-6-15-1'} +, {id:'6-15-2', text:'level 3-6-15-2'} +, {id:'6-15-3', text:'level 3-6-15-3'} +, {id:'6-15-4', text:'level 3-6-15-4'} +, {id:'6-15-5', text:'level 3-6-15-5'} +, {id:'6-15-6', text:'level 3-6-15-6'} +, {id:'6-15-7', text:'level 3-6-15-7'} +, {id:'6-15-8', text:'level 3-6-15-8'} +, {id:'6-15-9', text:'level 3-6-15-9'} +]} +, {id:'6-16-10', text:'level 2-6-16', item:[ + {id:'6-16-0', text:'level 3-6-16-0'} +, {id:'6-16-1', text:'level 3-6-16-1'} +, {id:'6-16-2', text:'level 3-6-16-2'} +, {id:'6-16-3', text:'level 3-6-16-3'} +, {id:'6-16-4', text:'level 3-6-16-4'} +, {id:'6-16-5', text:'level 3-6-16-5'} +, {id:'6-16-6', text:'level 3-6-16-6'} +, {id:'6-16-7', text:'level 3-6-16-7'} +, {id:'6-16-8', text:'level 3-6-16-8'} +, {id:'6-16-9', text:'level 3-6-16-9'} +]} +, {id:'6-17-10', text:'level 2-6-17', item:[ + {id:'6-17-0', text:'level 3-6-17-0'} +, {id:'6-17-1', text:'level 3-6-17-1'} +, {id:'6-17-2', text:'level 3-6-17-2'} +, {id:'6-17-3', text:'level 3-6-17-3'} +, {id:'6-17-4', text:'level 3-6-17-4'} +, {id:'6-17-5', text:'level 3-6-17-5'} +, {id:'6-17-6', text:'level 3-6-17-6'} +, {id:'6-17-7', text:'level 3-6-17-7'} +, {id:'6-17-8', text:'level 3-6-17-8'} +, {id:'6-17-9', text:'level 3-6-17-9'} +]} +, {id:'6-18-10', text:'level 2-6-18', item:[ + {id:'6-18-0', text:'level 3-6-18-0'} +, {id:'6-18-1', text:'level 3-6-18-1'} +, {id:'6-18-2', text:'level 3-6-18-2'} +, {id:'6-18-3', text:'level 3-6-18-3'} +, {id:'6-18-4', text:'level 3-6-18-4'} +, {id:'6-18-5', text:'level 3-6-18-5'} +, {id:'6-18-6', text:'level 3-6-18-6'} +, {id:'6-18-7', text:'level 3-6-18-7'} +, {id:'6-18-8', text:'level 3-6-18-8'} +, {id:'6-18-9', text:'level 3-6-18-9'} +]} +, {id:'6-19-10', text:'level 2-6-19', item:[ + {id:'6-19-0', text:'level 3-6-19-0'} +, {id:'6-19-1', text:'level 3-6-19-1'} +, {id:'6-19-2', text:'level 3-6-19-2'} +, {id:'6-19-3', text:'level 3-6-19-3'} +, {id:'6-19-4', text:'level 3-6-19-4'} +, {id:'6-19-5', text:'level 3-6-19-5'} +, {id:'6-19-6', text:'level 3-6-19-6'} +, {id:'6-19-7', text:'level 3-6-19-7'} +, {id:'6-19-8', text:'level 3-6-19-8'} +, {id:'6-19-9', text:'level 3-6-19-9'} +]} +]} +,{id:'7-20-10', text:'level 1-7', item:[ + {id:'7-0-10', text:'level 2-7-0', item:[ + {id:'7-0-0', text:'level 3-7-0-0'} +, {id:'7-0-1', text:'level 3-7-0-1'} +, {id:'7-0-2', text:'level 3-7-0-2'} +, {id:'7-0-3', text:'level 3-7-0-3'} +, {id:'7-0-4', text:'level 3-7-0-4'} +, {id:'7-0-5', text:'level 3-7-0-5'} +, {id:'7-0-6', text:'level 3-7-0-6'} +, {id:'7-0-7', text:'level 3-7-0-7'} +, {id:'7-0-8', text:'level 3-7-0-8'} +, {id:'7-0-9', text:'level 3-7-0-9'} +]} +, {id:'7-1-10', text:'level 2-7-1', item:[ + {id:'7-1-0', text:'level 3-7-1-0'} +, {id:'7-1-1', text:'level 3-7-1-1'} +, {id:'7-1-2', text:'level 3-7-1-2'} +, {id:'7-1-3', text:'level 3-7-1-3'} +, {id:'7-1-4', text:'level 3-7-1-4'} +, {id:'7-1-5', text:'level 3-7-1-5'} +, {id:'7-1-6', text:'level 3-7-1-6'} +, {id:'7-1-7', text:'level 3-7-1-7'} +, {id:'7-1-8', text:'level 3-7-1-8'} +, {id:'7-1-9', text:'level 3-7-1-9'} +]} +, {id:'7-2-10', text:'level 2-7-2', item:[ + {id:'7-2-0', text:'level 3-7-2-0'} +, {id:'7-2-1', text:'level 3-7-2-1'} +, {id:'7-2-2', text:'level 3-7-2-2'} +, {id:'7-2-3', text:'level 3-7-2-3'} +, {id:'7-2-4', text:'level 3-7-2-4'} +, {id:'7-2-5', text:'level 3-7-2-5'} +, {id:'7-2-6', text:'level 3-7-2-6'} +, {id:'7-2-7', text:'level 3-7-2-7'} +, {id:'7-2-8', text:'level 3-7-2-8'} +, {id:'7-2-9', text:'level 3-7-2-9'} +]} +, {id:'7-3-10', text:'level 2-7-3', item:[ + {id:'7-3-0', text:'level 3-7-3-0'} +, {id:'7-3-1', text:'level 3-7-3-1'} +, {id:'7-3-2', text:'level 3-7-3-2'} +, {id:'7-3-3', text:'level 3-7-3-3'} +, {id:'7-3-4', text:'level 3-7-3-4'} +, {id:'7-3-5', text:'level 3-7-3-5'} +, {id:'7-3-6', text:'level 3-7-3-6'} +, {id:'7-3-7', text:'level 3-7-3-7'} +, {id:'7-3-8', text:'level 3-7-3-8'} +, {id:'7-3-9', text:'level 3-7-3-9'} +]} +, {id:'7-4-10', text:'level 2-7-4', item:[ + {id:'7-4-0', text:'level 3-7-4-0'} +, {id:'7-4-1', text:'level 3-7-4-1'} +, {id:'7-4-2', text:'level 3-7-4-2'} +, {id:'7-4-3', text:'level 3-7-4-3'} +, {id:'7-4-4', text:'level 3-7-4-4'} +, {id:'7-4-5', text:'level 3-7-4-5'} +, {id:'7-4-6', text:'level 3-7-4-6'} +, {id:'7-4-7', text:'level 3-7-4-7'} +, {id:'7-4-8', text:'level 3-7-4-8'} +, {id:'7-4-9', text:'level 3-7-4-9'} +]} +, {id:'7-5-10', text:'level 2-7-5', item:[ + {id:'7-5-0', text:'level 3-7-5-0'} +, {id:'7-5-1', text:'level 3-7-5-1'} +, {id:'7-5-2', text:'level 3-7-5-2'} +, {id:'7-5-3', text:'level 3-7-5-3'} +, {id:'7-5-4', text:'level 3-7-5-4'} +, {id:'7-5-5', text:'level 3-7-5-5'} +, {id:'7-5-6', text:'level 3-7-5-6'} +, {id:'7-5-7', text:'level 3-7-5-7'} +, {id:'7-5-8', text:'level 3-7-5-8'} +, {id:'7-5-9', text:'level 3-7-5-9'} +]} +, {id:'7-6-10', text:'level 2-7-6', item:[ + {id:'7-6-0', text:'level 3-7-6-0'} +, {id:'7-6-1', text:'level 3-7-6-1'} +, {id:'7-6-2', text:'level 3-7-6-2'} +, {id:'7-6-3', text:'level 3-7-6-3'} +, {id:'7-6-4', text:'level 3-7-6-4'} +, {id:'7-6-5', text:'level 3-7-6-5'} +, {id:'7-6-6', text:'level 3-7-6-6'} +, {id:'7-6-7', text:'level 3-7-6-7'} +, {id:'7-6-8', text:'level 3-7-6-8'} +, {id:'7-6-9', text:'level 3-7-6-9'} +]} +, {id:'7-7-10', text:'level 2-7-7', item:[ + {id:'7-7-0', text:'level 3-7-7-0'} +, {id:'7-7-1', text:'level 3-7-7-1'} +, {id:'7-7-2', text:'level 3-7-7-2'} +, {id:'7-7-3', text:'level 3-7-7-3'} +, {id:'7-7-4', text:'level 3-7-7-4'} +, {id:'7-7-5', text:'level 3-7-7-5'} +, {id:'7-7-6', text:'level 3-7-7-6'} +, {id:'7-7-7', text:'level 3-7-7-7'} +, {id:'7-7-8', text:'level 3-7-7-8'} +, {id:'7-7-9', text:'level 3-7-7-9'} +]} +, {id:'7-8-10', text:'level 2-7-8', item:[ + {id:'7-8-0', text:'level 3-7-8-0'} +, {id:'7-8-1', text:'level 3-7-8-1'} +, {id:'7-8-2', text:'level 3-7-8-2'} +, {id:'7-8-3', text:'level 3-7-8-3'} +, {id:'7-8-4', text:'level 3-7-8-4'} +, {id:'7-8-5', text:'level 3-7-8-5'} +, {id:'7-8-6', text:'level 3-7-8-6'} +, {id:'7-8-7', text:'level 3-7-8-7'} +, {id:'7-8-8', text:'level 3-7-8-8'} +, {id:'7-8-9', text:'level 3-7-8-9'} +]} +, {id:'7-9-10', text:'level 2-7-9', item:[ + {id:'7-9-0', text:'level 3-7-9-0'} +, {id:'7-9-1', text:'level 3-7-9-1'} +, {id:'7-9-2', text:'level 3-7-9-2'} +, {id:'7-9-3', text:'level 3-7-9-3'} +, {id:'7-9-4', text:'level 3-7-9-4'} +, {id:'7-9-5', text:'level 3-7-9-5'} +, {id:'7-9-6', text:'level 3-7-9-6'} +, {id:'7-9-7', text:'level 3-7-9-7'} +, {id:'7-9-8', text:'level 3-7-9-8'} +, {id:'7-9-9', text:'level 3-7-9-9'} +]} +, {id:'7-10-10', text:'level 2-7-10', item:[ + {id:'7-10-0', text:'level 3-7-10-0'} +, {id:'7-10-1', text:'level 3-7-10-1'} +, {id:'7-10-2', text:'level 3-7-10-2'} +, {id:'7-10-3', text:'level 3-7-10-3'} +, {id:'7-10-4', text:'level 3-7-10-4'} +, {id:'7-10-5', text:'level 3-7-10-5'} +, {id:'7-10-6', text:'level 3-7-10-6'} +, {id:'7-10-7', text:'level 3-7-10-7'} +, {id:'7-10-8', text:'level 3-7-10-8'} +, {id:'7-10-9', text:'level 3-7-10-9'} +]} +, {id:'7-11-10', text:'level 2-7-11', item:[ + {id:'7-11-0', text:'level 3-7-11-0'} +, {id:'7-11-1', text:'level 3-7-11-1'} +, {id:'7-11-2', text:'level 3-7-11-2'} +, {id:'7-11-3', text:'level 3-7-11-3'} +, {id:'7-11-4', text:'level 3-7-11-4'} +, {id:'7-11-5', text:'level 3-7-11-5'} +, {id:'7-11-6', text:'level 3-7-11-6'} +, {id:'7-11-7', text:'level 3-7-11-7'} +, {id:'7-11-8', text:'level 3-7-11-8'} +, {id:'7-11-9', text:'level 3-7-11-9'} +]} +, {id:'7-12-10', text:'level 2-7-12', item:[ + {id:'7-12-0', text:'level 3-7-12-0'} +, {id:'7-12-1', text:'level 3-7-12-1'} +, {id:'7-12-2', text:'level 3-7-12-2'} +, {id:'7-12-3', text:'level 3-7-12-3'} +, {id:'7-12-4', text:'level 3-7-12-4'} +, {id:'7-12-5', text:'level 3-7-12-5'} +, {id:'7-12-6', text:'level 3-7-12-6'} +, {id:'7-12-7', text:'level 3-7-12-7'} +, {id:'7-12-8', text:'level 3-7-12-8'} +, {id:'7-12-9', text:'level 3-7-12-9'} +]} +, {id:'7-13-10', text:'level 2-7-13', item:[ + {id:'7-13-0', text:'level 3-7-13-0'} +, {id:'7-13-1', text:'level 3-7-13-1'} +, {id:'7-13-2', text:'level 3-7-13-2'} +, {id:'7-13-3', text:'level 3-7-13-3'} +, {id:'7-13-4', text:'level 3-7-13-4'} +, {id:'7-13-5', text:'level 3-7-13-5'} +, {id:'7-13-6', text:'level 3-7-13-6'} +, {id:'7-13-7', text:'level 3-7-13-7'} +, {id:'7-13-8', text:'level 3-7-13-8'} +, {id:'7-13-9', text:'level 3-7-13-9'} +]} +, {id:'7-14-10', text:'level 2-7-14', item:[ + {id:'7-14-0', text:'level 3-7-14-0'} +, {id:'7-14-1', text:'level 3-7-14-1'} +, {id:'7-14-2', text:'level 3-7-14-2'} +, {id:'7-14-3', text:'level 3-7-14-3'} +, {id:'7-14-4', text:'level 3-7-14-4'} +, {id:'7-14-5', text:'level 3-7-14-5'} +, {id:'7-14-6', text:'level 3-7-14-6'} +, {id:'7-14-7', text:'level 3-7-14-7'} +, {id:'7-14-8', text:'level 3-7-14-8'} +, {id:'7-14-9', text:'level 3-7-14-9'} +]} +, {id:'7-15-10', text:'level 2-7-15', item:[ + {id:'7-15-0', text:'level 3-7-15-0'} +, {id:'7-15-1', text:'level 3-7-15-1'} +, {id:'7-15-2', text:'level 3-7-15-2'} +, {id:'7-15-3', text:'level 3-7-15-3'} +, {id:'7-15-4', text:'level 3-7-15-4'} +, {id:'7-15-5', text:'level 3-7-15-5'} +, {id:'7-15-6', text:'level 3-7-15-6'} +, {id:'7-15-7', text:'level 3-7-15-7'} +, {id:'7-15-8', text:'level 3-7-15-8'} +, {id:'7-15-9', text:'level 3-7-15-9'} +]} +, {id:'7-16-10', text:'level 2-7-16', item:[ + {id:'7-16-0', text:'level 3-7-16-0'} +, {id:'7-16-1', text:'level 3-7-16-1'} +, {id:'7-16-2', text:'level 3-7-16-2'} +, {id:'7-16-3', text:'level 3-7-16-3'} +, {id:'7-16-4', text:'level 3-7-16-4'} +, {id:'7-16-5', text:'level 3-7-16-5'} +, {id:'7-16-6', text:'level 3-7-16-6'} +, {id:'7-16-7', text:'level 3-7-16-7'} +, {id:'7-16-8', text:'level 3-7-16-8'} +, {id:'7-16-9', text:'level 3-7-16-9'} +]} +, {id:'7-17-10', text:'level 2-7-17', item:[ + {id:'7-17-0', text:'level 3-7-17-0'} +, {id:'7-17-1', text:'level 3-7-17-1'} +, {id:'7-17-2', text:'level 3-7-17-2'} +, {id:'7-17-3', text:'level 3-7-17-3'} +, {id:'7-17-4', text:'level 3-7-17-4'} +, {id:'7-17-5', text:'level 3-7-17-5'} +, {id:'7-17-6', text:'level 3-7-17-6'} +, {id:'7-17-7', text:'level 3-7-17-7'} +, {id:'7-17-8', text:'level 3-7-17-8'} +, {id:'7-17-9', text:'level 3-7-17-9'} +]} +, {id:'7-18-10', text:'level 2-7-18', item:[ + {id:'7-18-0', text:'level 3-7-18-0'} +, {id:'7-18-1', text:'level 3-7-18-1'} +, {id:'7-18-2', text:'level 3-7-18-2'} +, {id:'7-18-3', text:'level 3-7-18-3'} +, {id:'7-18-4', text:'level 3-7-18-4'} +, {id:'7-18-5', text:'level 3-7-18-5'} +, {id:'7-18-6', text:'level 3-7-18-6'} +, {id:'7-18-7', text:'level 3-7-18-7'} +, {id:'7-18-8', text:'level 3-7-18-8'} +, {id:'7-18-9', text:'level 3-7-18-9'} +]} +, {id:'7-19-10', text:'level 2-7-19', item:[ + {id:'7-19-0', text:'level 3-7-19-0'} +, {id:'7-19-1', text:'level 3-7-19-1'} +, {id:'7-19-2', text:'level 3-7-19-2'} +, {id:'7-19-3', text:'level 3-7-19-3'} +, {id:'7-19-4', text:'level 3-7-19-4'} +, {id:'7-19-5', text:'level 3-7-19-5'} +, {id:'7-19-6', text:'level 3-7-19-6'} +, {id:'7-19-7', text:'level 3-7-19-7'} +, {id:'7-19-8', text:'level 3-7-19-8'} +, {id:'7-19-9', text:'level 3-7-19-9'} +]} +]} +,{id:'8-20-10', text:'level 1-8', item:[ + {id:'8-0-10', text:'level 2-8-0', item:[ + {id:'8-0-0', text:'level 3-8-0-0'} +, {id:'8-0-1', text:'level 3-8-0-1'} +, {id:'8-0-2', text:'level 3-8-0-2'} +, {id:'8-0-3', text:'level 3-8-0-3'} +, {id:'8-0-4', text:'level 3-8-0-4'} +, {id:'8-0-5', text:'level 3-8-0-5'} +, {id:'8-0-6', text:'level 3-8-0-6'} +, {id:'8-0-7', text:'level 3-8-0-7'} +, {id:'8-0-8', text:'level 3-8-0-8'} +, {id:'8-0-9', text:'level 3-8-0-9'} +]} +, {id:'8-1-10', text:'level 2-8-1', item:[ + {id:'8-1-0', text:'level 3-8-1-0'} +, {id:'8-1-1', text:'level 3-8-1-1'} +, {id:'8-1-2', text:'level 3-8-1-2'} +, {id:'8-1-3', text:'level 3-8-1-3'} +, {id:'8-1-4', text:'level 3-8-1-4'} +, {id:'8-1-5', text:'level 3-8-1-5'} +, {id:'8-1-6', text:'level 3-8-1-6'} +, {id:'8-1-7', text:'level 3-8-1-7'} +, {id:'8-1-8', text:'level 3-8-1-8'} +, {id:'8-1-9', text:'level 3-8-1-9'} +]} +, {id:'8-2-10', text:'level 2-8-2', item:[ + {id:'8-2-0', text:'level 3-8-2-0'} +, {id:'8-2-1', text:'level 3-8-2-1'} +, {id:'8-2-2', text:'level 3-8-2-2'} +, {id:'8-2-3', text:'level 3-8-2-3'} +, {id:'8-2-4', text:'level 3-8-2-4'} +, {id:'8-2-5', text:'level 3-8-2-5'} +, {id:'8-2-6', text:'level 3-8-2-6'} +, {id:'8-2-7', text:'level 3-8-2-7'} +, {id:'8-2-8', text:'level 3-8-2-8'} +, {id:'8-2-9', text:'level 3-8-2-9'} +]} +, {id:'8-3-10', text:'level 2-8-3', item:[ + {id:'8-3-0', text:'level 3-8-3-0'} +, {id:'8-3-1', text:'level 3-8-3-1'} +, {id:'8-3-2', text:'level 3-8-3-2'} +, {id:'8-3-3', text:'level 3-8-3-3'} +, {id:'8-3-4', text:'level 3-8-3-4'} +, {id:'8-3-5', text:'level 3-8-3-5'} +, {id:'8-3-6', text:'level 3-8-3-6'} +, {id:'8-3-7', text:'level 3-8-3-7'} +, {id:'8-3-8', text:'level 3-8-3-8'} +, {id:'8-3-9', text:'level 3-8-3-9'} +]} +, {id:'8-4-10', text:'level 2-8-4', item:[ + {id:'8-4-0', text:'level 3-8-4-0'} +, {id:'8-4-1', text:'level 3-8-4-1'} +, {id:'8-4-2', text:'level 3-8-4-2'} +, {id:'8-4-3', text:'level 3-8-4-3'} +, {id:'8-4-4', text:'level 3-8-4-4'} +, {id:'8-4-5', text:'level 3-8-4-5'} +, {id:'8-4-6', text:'level 3-8-4-6'} +, {id:'8-4-7', text:'level 3-8-4-7'} +, {id:'8-4-8', text:'level 3-8-4-8'} +, {id:'8-4-9', text:'level 3-8-4-9'} +]} +, {id:'8-5-10', text:'level 2-8-5', item:[ + {id:'8-5-0', text:'level 3-8-5-0'} +, {id:'8-5-1', text:'level 3-8-5-1'} +, {id:'8-5-2', text:'level 3-8-5-2'} +, {id:'8-5-3', text:'level 3-8-5-3'} +, {id:'8-5-4', text:'level 3-8-5-4'} +, {id:'8-5-5', text:'level 3-8-5-5'} +, {id:'8-5-6', text:'level 3-8-5-6'} +, {id:'8-5-7', text:'level 3-8-5-7'} +, {id:'8-5-8', text:'level 3-8-5-8'} +, {id:'8-5-9', text:'level 3-8-5-9'} +]} +, {id:'8-6-10', text:'level 2-8-6', item:[ + {id:'8-6-0', text:'level 3-8-6-0'} +, {id:'8-6-1', text:'level 3-8-6-1'} +, {id:'8-6-2', text:'level 3-8-6-2'} +, {id:'8-6-3', text:'level 3-8-6-3'} +, {id:'8-6-4', text:'level 3-8-6-4'} +, {id:'8-6-5', text:'level 3-8-6-5'} +, {id:'8-6-6', text:'level 3-8-6-6'} +, {id:'8-6-7', text:'level 3-8-6-7'} +, {id:'8-6-8', text:'level 3-8-6-8'} +, {id:'8-6-9', text:'level 3-8-6-9'} +]} +, {id:'8-7-10', text:'level 2-8-7', item:[ + {id:'8-7-0', text:'level 3-8-7-0'} +, {id:'8-7-1', text:'level 3-8-7-1'} +, {id:'8-7-2', text:'level 3-8-7-2'} +, {id:'8-7-3', text:'level 3-8-7-3'} +, {id:'8-7-4', text:'level 3-8-7-4'} +, {id:'8-7-5', text:'level 3-8-7-5'} +, {id:'8-7-6', text:'level 3-8-7-6'} +, {id:'8-7-7', text:'level 3-8-7-7'} +, {id:'8-7-8', text:'level 3-8-7-8'} +, {id:'8-7-9', text:'level 3-8-7-9'} +]} +, {id:'8-8-10', text:'level 2-8-8', item:[ + {id:'8-8-0', text:'level 3-8-8-0'} +, {id:'8-8-1', text:'level 3-8-8-1'} +, {id:'8-8-2', text:'level 3-8-8-2'} +, {id:'8-8-3', text:'level 3-8-8-3'} +, {id:'8-8-4', text:'level 3-8-8-4'} +, {id:'8-8-5', text:'level 3-8-8-5'} +, {id:'8-8-6', text:'level 3-8-8-6'} +, {id:'8-8-7', text:'level 3-8-8-7'} +, {id:'8-8-8', text:'level 3-8-8-8'} +, {id:'8-8-9', text:'level 3-8-8-9'} +]} +, {id:'8-9-10', text:'level 2-8-9', item:[ + {id:'8-9-0', text:'level 3-8-9-0'} +, {id:'8-9-1', text:'level 3-8-9-1'} +, {id:'8-9-2', text:'level 3-8-9-2'} +, {id:'8-9-3', text:'level 3-8-9-3'} +, {id:'8-9-4', text:'level 3-8-9-4'} +, {id:'8-9-5', text:'level 3-8-9-5'} +, {id:'8-9-6', text:'level 3-8-9-6'} +, {id:'8-9-7', text:'level 3-8-9-7'} +, {id:'8-9-8', text:'level 3-8-9-8'} +, {id:'8-9-9', text:'level 3-8-9-9'} +]} +, {id:'8-10-10', text:'level 2-8-10', item:[ + {id:'8-10-0', text:'level 3-8-10-0'} +, {id:'8-10-1', text:'level 3-8-10-1'} +, {id:'8-10-2', text:'level 3-8-10-2'} +, {id:'8-10-3', text:'level 3-8-10-3'} +, {id:'8-10-4', text:'level 3-8-10-4'} +, {id:'8-10-5', text:'level 3-8-10-5'} +, {id:'8-10-6', text:'level 3-8-10-6'} +, {id:'8-10-7', text:'level 3-8-10-7'} +, {id:'8-10-8', text:'level 3-8-10-8'} +, {id:'8-10-9', text:'level 3-8-10-9'} +]} +, {id:'8-11-10', text:'level 2-8-11', item:[ + {id:'8-11-0', text:'level 3-8-11-0'} +, {id:'8-11-1', text:'level 3-8-11-1'} +, {id:'8-11-2', text:'level 3-8-11-2'} +, {id:'8-11-3', text:'level 3-8-11-3'} +, {id:'8-11-4', text:'level 3-8-11-4'} +, {id:'8-11-5', text:'level 3-8-11-5'} +, {id:'8-11-6', text:'level 3-8-11-6'} +, {id:'8-11-7', text:'level 3-8-11-7'} +, {id:'8-11-8', text:'level 3-8-11-8'} +, {id:'8-11-9', text:'level 3-8-11-9'} +]} +, {id:'8-12-10', text:'level 2-8-12', item:[ + {id:'8-12-0', text:'level 3-8-12-0'} +, {id:'8-12-1', text:'level 3-8-12-1'} +, {id:'8-12-2', text:'level 3-8-12-2'} +, {id:'8-12-3', text:'level 3-8-12-3'} +, {id:'8-12-4', text:'level 3-8-12-4'} +, {id:'8-12-5', text:'level 3-8-12-5'} +, {id:'8-12-6', text:'level 3-8-12-6'} +, {id:'8-12-7', text:'level 3-8-12-7'} +, {id:'8-12-8', text:'level 3-8-12-8'} +, {id:'8-12-9', text:'level 3-8-12-9'} +]} +, {id:'8-13-10', text:'level 2-8-13', item:[ + {id:'8-13-0', text:'level 3-8-13-0'} +, {id:'8-13-1', text:'level 3-8-13-1'} +, {id:'8-13-2', text:'level 3-8-13-2'} +, {id:'8-13-3', text:'level 3-8-13-3'} +, {id:'8-13-4', text:'level 3-8-13-4'} +, {id:'8-13-5', text:'level 3-8-13-5'} +, {id:'8-13-6', text:'level 3-8-13-6'} +, {id:'8-13-7', text:'level 3-8-13-7'} +, {id:'8-13-8', text:'level 3-8-13-8'} +, {id:'8-13-9', text:'level 3-8-13-9'} +]} +, {id:'8-14-10', text:'level 2-8-14', item:[ + {id:'8-14-0', text:'level 3-8-14-0'} +, {id:'8-14-1', text:'level 3-8-14-1'} +, {id:'8-14-2', text:'level 3-8-14-2'} +, {id:'8-14-3', text:'level 3-8-14-3'} +, {id:'8-14-4', text:'level 3-8-14-4'} +, {id:'8-14-5', text:'level 3-8-14-5'} +, {id:'8-14-6', text:'level 3-8-14-6'} +, {id:'8-14-7', text:'level 3-8-14-7'} +, {id:'8-14-8', text:'level 3-8-14-8'} +, {id:'8-14-9', text:'level 3-8-14-9'} +]} +, {id:'8-15-10', text:'level 2-8-15', item:[ + {id:'8-15-0', text:'level 3-8-15-0'} +, {id:'8-15-1', text:'level 3-8-15-1'} +, {id:'8-15-2', text:'level 3-8-15-2'} +, {id:'8-15-3', text:'level 3-8-15-3'} +, {id:'8-15-4', text:'level 3-8-15-4'} +, {id:'8-15-5', text:'level 3-8-15-5'} +, {id:'8-15-6', text:'level 3-8-15-6'} +, {id:'8-15-7', text:'level 3-8-15-7'} +, {id:'8-15-8', text:'level 3-8-15-8'} +, {id:'8-15-9', text:'level 3-8-15-9'} +]} +, {id:'8-16-10', text:'level 2-8-16', item:[ + {id:'8-16-0', text:'level 3-8-16-0'} +, {id:'8-16-1', text:'level 3-8-16-1'} +, {id:'8-16-2', text:'level 3-8-16-2'} +, {id:'8-16-3', text:'level 3-8-16-3'} +, {id:'8-16-4', text:'level 3-8-16-4'} +, {id:'8-16-5', text:'level 3-8-16-5'} +, {id:'8-16-6', text:'level 3-8-16-6'} +, {id:'8-16-7', text:'level 3-8-16-7'} +, {id:'8-16-8', text:'level 3-8-16-8'} +, {id:'8-16-9', text:'level 3-8-16-9'} +]} +, {id:'8-17-10', text:'level 2-8-17', item:[ + {id:'8-17-0', text:'level 3-8-17-0'} +, {id:'8-17-1', text:'level 3-8-17-1'} +, {id:'8-17-2', text:'level 3-8-17-2'} +, {id:'8-17-3', text:'level 3-8-17-3'} +, {id:'8-17-4', text:'level 3-8-17-4'} +, {id:'8-17-5', text:'level 3-8-17-5'} +, {id:'8-17-6', text:'level 3-8-17-6'} +, {id:'8-17-7', text:'level 3-8-17-7'} +, {id:'8-17-8', text:'level 3-8-17-8'} +, {id:'8-17-9', text:'level 3-8-17-9'} +]} +, {id:'8-18-10', text:'level 2-8-18', item:[ + {id:'8-18-0', text:'level 3-8-18-0'} +, {id:'8-18-1', text:'level 3-8-18-1'} +, {id:'8-18-2', text:'level 3-8-18-2'} +, {id:'8-18-3', text:'level 3-8-18-3'} +, {id:'8-18-4', text:'level 3-8-18-4'} +, {id:'8-18-5', text:'level 3-8-18-5'} +, {id:'8-18-6', text:'level 3-8-18-6'} +, {id:'8-18-7', text:'level 3-8-18-7'} +, {id:'8-18-8', text:'level 3-8-18-8'} +, {id:'8-18-9', text:'level 3-8-18-9'} +]} +, {id:'8-19-10', text:'level 2-8-19', item:[ + {id:'8-19-0', text:'level 3-8-19-0'} +, {id:'8-19-1', text:'level 3-8-19-1'} +, {id:'8-19-2', text:'level 3-8-19-2'} +, {id:'8-19-3', text:'level 3-8-19-3'} +, {id:'8-19-4', text:'level 3-8-19-4'} +, {id:'8-19-5', text:'level 3-8-19-5'} +, {id:'8-19-6', text:'level 3-8-19-6'} +, {id:'8-19-7', text:'level 3-8-19-7'} +, {id:'8-19-8', text:'level 3-8-19-8'} +, {id:'8-19-9', text:'level 3-8-19-9'} +]} +]} +,{id:'9-20-10', text:'level 1-9', item:[ + {id:'9-0-10', text:'level 2-9-0', item:[ + {id:'9-0-0', text:'level 3-9-0-0'} +, {id:'9-0-1', text:'level 3-9-0-1'} +, {id:'9-0-2', text:'level 3-9-0-2'} +, {id:'9-0-3', text:'level 3-9-0-3'} +, {id:'9-0-4', text:'level 3-9-0-4'} +, {id:'9-0-5', text:'level 3-9-0-5'} +, {id:'9-0-6', text:'level 3-9-0-6'} +, {id:'9-0-7', text:'level 3-9-0-7'} +, {id:'9-0-8', text:'level 3-9-0-8'} +, {id:'9-0-9', text:'level 3-9-0-9'} +]} +, {id:'9-1-10', text:'level 2-9-1', item:[ + {id:'9-1-0', text:'level 3-9-1-0'} +, {id:'9-1-1', text:'level 3-9-1-1'} +, {id:'9-1-2', text:'level 3-9-1-2'} +, {id:'9-1-3', text:'level 3-9-1-3'} +, {id:'9-1-4', text:'level 3-9-1-4'} +, {id:'9-1-5', text:'level 3-9-1-5'} +, {id:'9-1-6', text:'level 3-9-1-6'} +, {id:'9-1-7', text:'level 3-9-1-7'} +, {id:'9-1-8', text:'level 3-9-1-8'} +, {id:'9-1-9', text:'level 3-9-1-9'} +]} +, {id:'9-2-10', text:'level 2-9-2', item:[ + {id:'9-2-0', text:'level 3-9-2-0'} +, {id:'9-2-1', text:'level 3-9-2-1'} +, {id:'9-2-2', text:'level 3-9-2-2'} +, {id:'9-2-3', text:'level 3-9-2-3'} +, {id:'9-2-4', text:'level 3-9-2-4'} +, {id:'9-2-5', text:'level 3-9-2-5'} +, {id:'9-2-6', text:'level 3-9-2-6'} +, {id:'9-2-7', text:'level 3-9-2-7'} +, {id:'9-2-8', text:'level 3-9-2-8'} +, {id:'9-2-9', text:'level 3-9-2-9'} +]} +, {id:'9-3-10', text:'level 2-9-3', item:[ + {id:'9-3-0', text:'level 3-9-3-0'} +, {id:'9-3-1', text:'level 3-9-3-1'} +, {id:'9-3-2', text:'level 3-9-3-2'} +, {id:'9-3-3', text:'level 3-9-3-3'} +, {id:'9-3-4', text:'level 3-9-3-4'} +, {id:'9-3-5', text:'level 3-9-3-5'} +, {id:'9-3-6', text:'level 3-9-3-6'} +, {id:'9-3-7', text:'level 3-9-3-7'} +, {id:'9-3-8', text:'level 3-9-3-8'} +, {id:'9-3-9', text:'level 3-9-3-9'} +]} +, {id:'9-4-10', text:'level 2-9-4', item:[ + {id:'9-4-0', text:'level 3-9-4-0'} +, {id:'9-4-1', text:'level 3-9-4-1'} +, {id:'9-4-2', text:'level 3-9-4-2'} +, {id:'9-4-3', text:'level 3-9-4-3'} +, {id:'9-4-4', text:'level 3-9-4-4'} +, {id:'9-4-5', text:'level 3-9-4-5'} +, {id:'9-4-6', text:'level 3-9-4-6'} +, {id:'9-4-7', text:'level 3-9-4-7'} +, {id:'9-4-8', text:'level 3-9-4-8'} +, {id:'9-4-9', text:'level 3-9-4-9'} +]} +, {id:'9-5-10', text:'level 2-9-5', item:[ + {id:'9-5-0', text:'level 3-9-5-0'} +, {id:'9-5-1', text:'level 3-9-5-1'} +, {id:'9-5-2', text:'level 3-9-5-2'} +, {id:'9-5-3', text:'level 3-9-5-3'} +, {id:'9-5-4', text:'level 3-9-5-4'} +, {id:'9-5-5', text:'level 3-9-5-5'} +, {id:'9-5-6', text:'level 3-9-5-6'} +, {id:'9-5-7', text:'level 3-9-5-7'} +, {id:'9-5-8', text:'level 3-9-5-8'} +, {id:'9-5-9', text:'level 3-9-5-9'} +]} +, {id:'9-6-10', text:'level 2-9-6', item:[ + {id:'9-6-0', text:'level 3-9-6-0'} +, {id:'9-6-1', text:'level 3-9-6-1'} +, {id:'9-6-2', text:'level 3-9-6-2'} +, {id:'9-6-3', text:'level 3-9-6-3'} +, {id:'9-6-4', text:'level 3-9-6-4'} +, {id:'9-6-5', text:'level 3-9-6-5'} +, {id:'9-6-6', text:'level 3-9-6-6'} +, {id:'9-6-7', text:'level 3-9-6-7'} +, {id:'9-6-8', text:'level 3-9-6-8'} +, {id:'9-6-9', text:'level 3-9-6-9'} +]} +, {id:'9-7-10', text:'level 2-9-7', item:[ + {id:'9-7-0', text:'level 3-9-7-0'} +, {id:'9-7-1', text:'level 3-9-7-1'} +, {id:'9-7-2', text:'level 3-9-7-2'} +, {id:'9-7-3', text:'level 3-9-7-3'} +, {id:'9-7-4', text:'level 3-9-7-4'} +, {id:'9-7-5', text:'level 3-9-7-5'} +, {id:'9-7-6', text:'level 3-9-7-6'} +, {id:'9-7-7', text:'level 3-9-7-7'} +, {id:'9-7-8', text:'level 3-9-7-8'} +, {id:'9-7-9', text:'level 3-9-7-9'} +]} +, {id:'9-8-10', text:'level 2-9-8', item:[ + {id:'9-8-0', text:'level 3-9-8-0'} +, {id:'9-8-1', text:'level 3-9-8-1'} +, {id:'9-8-2', text:'level 3-9-8-2'} +, {id:'9-8-3', text:'level 3-9-8-3'} +, {id:'9-8-4', text:'level 3-9-8-4'} +, {id:'9-8-5', text:'level 3-9-8-5'} +, {id:'9-8-6', text:'level 3-9-8-6'} +, {id:'9-8-7', text:'level 3-9-8-7'} +, {id:'9-8-8', text:'level 3-9-8-8'} +, {id:'9-8-9', text:'level 3-9-8-9'} +]} +, {id:'9-9-10', text:'level 2-9-9', item:[ + {id:'9-9-0', text:'level 3-9-9-0'} +, {id:'9-9-1', text:'level 3-9-9-1'} +, {id:'9-9-2', text:'level 3-9-9-2'} +, {id:'9-9-3', text:'level 3-9-9-3'} +, {id:'9-9-4', text:'level 3-9-9-4'} +, {id:'9-9-5', text:'level 3-9-9-5'} +, {id:'9-9-6', text:'level 3-9-9-6'} +, {id:'9-9-7', text:'level 3-9-9-7'} +, {id:'9-9-8', text:'level 3-9-9-8'} +, {id:'9-9-9', text:'level 3-9-9-9'} +]} +, {id:'9-10-10', text:'level 2-9-10', item:[ + {id:'9-10-0', text:'level 3-9-10-0'} +, {id:'9-10-1', text:'level 3-9-10-1'} +, {id:'9-10-2', text:'level 3-9-10-2'} +, {id:'9-10-3', text:'level 3-9-10-3'} +, {id:'9-10-4', text:'level 3-9-10-4'} +, {id:'9-10-5', text:'level 3-9-10-5'} +, {id:'9-10-6', text:'level 3-9-10-6'} +, {id:'9-10-7', text:'level 3-9-10-7'} +, {id:'9-10-8', text:'level 3-9-10-8'} +, {id:'9-10-9', text:'level 3-9-10-9'} +]} +, {id:'9-11-10', text:'level 2-9-11', item:[ + {id:'9-11-0', text:'level 3-9-11-0'} +, {id:'9-11-1', text:'level 3-9-11-1'} +, {id:'9-11-2', text:'level 3-9-11-2'} +, {id:'9-11-3', text:'level 3-9-11-3'} +, {id:'9-11-4', text:'level 3-9-11-4'} +, {id:'9-11-5', text:'level 3-9-11-5'} +, {id:'9-11-6', text:'level 3-9-11-6'} +, {id:'9-11-7', text:'level 3-9-11-7'} +, {id:'9-11-8', text:'level 3-9-11-8'} +, {id:'9-11-9', text:'level 3-9-11-9'} +]} +, {id:'9-12-10', text:'level 2-9-12', item:[ + {id:'9-12-0', text:'level 3-9-12-0'} +, {id:'9-12-1', text:'level 3-9-12-1'} +, {id:'9-12-2', text:'level 3-9-12-2'} +, {id:'9-12-3', text:'level 3-9-12-3'} +, {id:'9-12-4', text:'level 3-9-12-4'} +, {id:'9-12-5', text:'level 3-9-12-5'} +, {id:'9-12-6', text:'level 3-9-12-6'} +, {id:'9-12-7', text:'level 3-9-12-7'} +, {id:'9-12-8', text:'level 3-9-12-8'} +, {id:'9-12-9', text:'level 3-9-12-9'} +]} +, {id:'9-13-10', text:'level 2-9-13', item:[ + {id:'9-13-0', text:'level 3-9-13-0'} +, {id:'9-13-1', text:'level 3-9-13-1'} +, {id:'9-13-2', text:'level 3-9-13-2'} +, {id:'9-13-3', text:'level 3-9-13-3'} +, {id:'9-13-4', text:'level 3-9-13-4'} +, {id:'9-13-5', text:'level 3-9-13-5'} +, {id:'9-13-6', text:'level 3-9-13-6'} +, {id:'9-13-7', text:'level 3-9-13-7'} +, {id:'9-13-8', text:'level 3-9-13-8'} +, {id:'9-13-9', text:'level 3-9-13-9'} +]} +, {id:'9-14-10', text:'level 2-9-14', item:[ + {id:'9-14-0', text:'level 3-9-14-0'} +, {id:'9-14-1', text:'level 3-9-14-1'} +, {id:'9-14-2', text:'level 3-9-14-2'} +, {id:'9-14-3', text:'level 3-9-14-3'} +, {id:'9-14-4', text:'level 3-9-14-4'} +, {id:'9-14-5', text:'level 3-9-14-5'} +, {id:'9-14-6', text:'level 3-9-14-6'} +, {id:'9-14-7', text:'level 3-9-14-7'} +, {id:'9-14-8', text:'level 3-9-14-8'} +, {id:'9-14-9', text:'level 3-9-14-9'} +]} +, {id:'9-15-10', text:'level 2-9-15', item:[ + {id:'9-15-0', text:'level 3-9-15-0'} +, {id:'9-15-1', text:'level 3-9-15-1'} +, {id:'9-15-2', text:'level 3-9-15-2'} +, {id:'9-15-3', text:'level 3-9-15-3'} +, {id:'9-15-4', text:'level 3-9-15-4'} +, {id:'9-15-5', text:'level 3-9-15-5'} +, {id:'9-15-6', text:'level 3-9-15-6'} +, {id:'9-15-7', text:'level 3-9-15-7'} +, {id:'9-15-8', text:'level 3-9-15-8'} +, {id:'9-15-9', text:'level 3-9-15-9'} +]} +, {id:'9-16-10', text:'level 2-9-16', item:[ + {id:'9-16-0', text:'level 3-9-16-0'} +, {id:'9-16-1', text:'level 3-9-16-1'} +, {id:'9-16-2', text:'level 3-9-16-2'} +, {id:'9-16-3', text:'level 3-9-16-3'} +, {id:'9-16-4', text:'level 3-9-16-4'} +, {id:'9-16-5', text:'level 3-9-16-5'} +, {id:'9-16-6', text:'level 3-9-16-6'} +, {id:'9-16-7', text:'level 3-9-16-7'} +, {id:'9-16-8', text:'level 3-9-16-8'} +, {id:'9-16-9', text:'level 3-9-16-9'} +]} +, {id:'9-17-10', text:'level 2-9-17', item:[ + {id:'9-17-0', text:'level 3-9-17-0'} +, {id:'9-17-1', text:'level 3-9-17-1'} +, {id:'9-17-2', text:'level 3-9-17-2'} +, {id:'9-17-3', text:'level 3-9-17-3'} +, {id:'9-17-4', text:'level 3-9-17-4'} +, {id:'9-17-5', text:'level 3-9-17-5'} +, {id:'9-17-6', text:'level 3-9-17-6'} +, {id:'9-17-7', text:'level 3-9-17-7'} +, {id:'9-17-8', text:'level 3-9-17-8'} +, {id:'9-17-9', text:'level 3-9-17-9'} +]} +, {id:'9-18-10', text:'level 2-9-18', item:[ + {id:'9-18-0', text:'level 3-9-18-0'} +, {id:'9-18-1', text:'level 3-9-18-1'} +, {id:'9-18-2', text:'level 3-9-18-2'} +, {id:'9-18-3', text:'level 3-9-18-3'} +, {id:'9-18-4', text:'level 3-9-18-4'} +, {id:'9-18-5', text:'level 3-9-18-5'} +, {id:'9-18-6', text:'level 3-9-18-6'} +, {id:'9-18-7', text:'level 3-9-18-7'} +, {id:'9-18-8', text:'level 3-9-18-8'} +, {id:'9-18-9', text:'level 3-9-18-9'} +]} +, {id:'9-19-10', text:'level 2-9-19', item:[ + {id:'9-19-0', text:'level 3-9-19-0'} +, {id:'9-19-1', text:'level 3-9-19-1'} +, {id:'9-19-2', text:'level 3-9-19-2'} +, {id:'9-19-3', text:'level 3-9-19-3'} +, {id:'9-19-4', text:'level 3-9-19-4'} +, {id:'9-19-5', text:'level 3-9-19-5'} +, {id:'9-19-6', text:'level 3-9-19-6'} +, {id:'9-19-7', text:'level 3-9-19-7'} +, {id:'9-19-8', text:'level 3-9-19-8'} +, {id:'9-19-9', text:'level 3-9-19-9'} +]} +]} +,{id:'10-20-10', text:'level 1-10', item:[ + {id:'10-0-10', text:'level 2-10-0', item:[ + {id:'10-0-0', text:'level 3-10-0-0'} +, {id:'10-0-1', text:'level 3-10-0-1'} +, {id:'10-0-2', text:'level 3-10-0-2'} +, {id:'10-0-3', text:'level 3-10-0-3'} +, {id:'10-0-4', text:'level 3-10-0-4'} +, {id:'10-0-5', text:'level 3-10-0-5'} +, {id:'10-0-6', text:'level 3-10-0-6'} +, {id:'10-0-7', text:'level 3-10-0-7'} +, {id:'10-0-8', text:'level 3-10-0-8'} +, {id:'10-0-9', text:'level 3-10-0-9'} +]} +, {id:'10-1-10', text:'level 2-10-1', item:[ + {id:'10-1-0', text:'level 3-10-1-0'} +, {id:'10-1-1', text:'level 3-10-1-1'} +, {id:'10-1-2', text:'level 3-10-1-2'} +, {id:'10-1-3', text:'level 3-10-1-3'} +, {id:'10-1-4', text:'level 3-10-1-4'} +, {id:'10-1-5', text:'level 3-10-1-5'} +, {id:'10-1-6', text:'level 3-10-1-6'} +, {id:'10-1-7', text:'level 3-10-1-7'} +, {id:'10-1-8', text:'level 3-10-1-8'} +, {id:'10-1-9', text:'level 3-10-1-9'} +]} +, {id:'10-2-10', text:'level 2-10-2', item:[ + {id:'10-2-0', text:'level 3-10-2-0'} +, {id:'10-2-1', text:'level 3-10-2-1'} +, {id:'10-2-2', text:'level 3-10-2-2'} +, {id:'10-2-3', text:'level 3-10-2-3'} +, {id:'10-2-4', text:'level 3-10-2-4'} +, {id:'10-2-5', text:'level 3-10-2-5'} +, {id:'10-2-6', text:'level 3-10-2-6'} +, {id:'10-2-7', text:'level 3-10-2-7'} +, {id:'10-2-8', text:'level 3-10-2-8'} +, {id:'10-2-9', text:'level 3-10-2-9'} +]} +, {id:'10-3-10', text:'level 2-10-3', item:[ + {id:'10-3-0', text:'level 3-10-3-0'} +, {id:'10-3-1', text:'level 3-10-3-1'} +, {id:'10-3-2', text:'level 3-10-3-2'} +, {id:'10-3-3', text:'level 3-10-3-3'} +, {id:'10-3-4', text:'level 3-10-3-4'} +, {id:'10-3-5', text:'level 3-10-3-5'} +, {id:'10-3-6', text:'level 3-10-3-6'} +, {id:'10-3-7', text:'level 3-10-3-7'} +, {id:'10-3-8', text:'level 3-10-3-8'} +, {id:'10-3-9', text:'level 3-10-3-9'} +]} +, {id:'10-4-10', text:'level 2-10-4', item:[ + {id:'10-4-0', text:'level 3-10-4-0'} +, {id:'10-4-1', text:'level 3-10-4-1'} +, {id:'10-4-2', text:'level 3-10-4-2'} +, {id:'10-4-3', text:'level 3-10-4-3'} +, {id:'10-4-4', text:'level 3-10-4-4'} +, {id:'10-4-5', text:'level 3-10-4-5'} +, {id:'10-4-6', text:'level 3-10-4-6'} +, {id:'10-4-7', text:'level 3-10-4-7'} +, {id:'10-4-8', text:'level 3-10-4-8'} +, {id:'10-4-9', text:'level 3-10-4-9'} +]} +, {id:'10-5-10', text:'level 2-10-5', item:[ + {id:'10-5-0', text:'level 3-10-5-0'} +, {id:'10-5-1', text:'level 3-10-5-1'} +, {id:'10-5-2', text:'level 3-10-5-2'} +, {id:'10-5-3', text:'level 3-10-5-3'} +, {id:'10-5-4', text:'level 3-10-5-4'} +, {id:'10-5-5', text:'level 3-10-5-5'} +, {id:'10-5-6', text:'level 3-10-5-6'} +, {id:'10-5-7', text:'level 3-10-5-7'} +, {id:'10-5-8', text:'level 3-10-5-8'} +, {id:'10-5-9', text:'level 3-10-5-9'} +]} +, {id:'10-6-10', text:'level 2-10-6', item:[ + {id:'10-6-0', text:'level 3-10-6-0'} +, {id:'10-6-1', text:'level 3-10-6-1'} +, {id:'10-6-2', text:'level 3-10-6-2'} +, {id:'10-6-3', text:'level 3-10-6-3'} +, {id:'10-6-4', text:'level 3-10-6-4'} +, {id:'10-6-5', text:'level 3-10-6-5'} +, {id:'10-6-6', text:'level 3-10-6-6'} +, {id:'10-6-7', text:'level 3-10-6-7'} +, {id:'10-6-8', text:'level 3-10-6-8'} +, {id:'10-6-9', text:'level 3-10-6-9'} +]} +, {id:'10-7-10', text:'level 2-10-7', item:[ + {id:'10-7-0', text:'level 3-10-7-0'} +, {id:'10-7-1', text:'level 3-10-7-1'} +, {id:'10-7-2', text:'level 3-10-7-2'} +, {id:'10-7-3', text:'level 3-10-7-3'} +, {id:'10-7-4', text:'level 3-10-7-4'} +, {id:'10-7-5', text:'level 3-10-7-5'} +, {id:'10-7-6', text:'level 3-10-7-6'} +, {id:'10-7-7', text:'level 3-10-7-7'} +, {id:'10-7-8', text:'level 3-10-7-8'} +, {id:'10-7-9', text:'level 3-10-7-9'} +]} +, {id:'10-8-10', text:'level 2-10-8', item:[ + {id:'10-8-0', text:'level 3-10-8-0'} +, {id:'10-8-1', text:'level 3-10-8-1'} +, {id:'10-8-2', text:'level 3-10-8-2'} +, {id:'10-8-3', text:'level 3-10-8-3'} +, {id:'10-8-4', text:'level 3-10-8-4'} +, {id:'10-8-5', text:'level 3-10-8-5'} +, {id:'10-8-6', text:'level 3-10-8-6'} +, {id:'10-8-7', text:'level 3-10-8-7'} +, {id:'10-8-8', text:'level 3-10-8-8'} +, {id:'10-8-9', text:'level 3-10-8-9'} +]} +, {id:'10-9-10', text:'level 2-10-9', item:[ + {id:'10-9-0', text:'level 3-10-9-0'} +, {id:'10-9-1', text:'level 3-10-9-1'} +, {id:'10-9-2', text:'level 3-10-9-2'} +, {id:'10-9-3', text:'level 3-10-9-3'} +, {id:'10-9-4', text:'level 3-10-9-4'} +, {id:'10-9-5', text:'level 3-10-9-5'} +, {id:'10-9-6', text:'level 3-10-9-6'} +, {id:'10-9-7', text:'level 3-10-9-7'} +, {id:'10-9-8', text:'level 3-10-9-8'} +, {id:'10-9-9', text:'level 3-10-9-9'} +]} +, {id:'10-10-10', text:'level 2-10-10', item:[ + {id:'10-10-0', text:'level 3-10-10-0'} +, {id:'10-10-1', text:'level 3-10-10-1'} +, {id:'10-10-2', text:'level 3-10-10-2'} +, {id:'10-10-3', text:'level 3-10-10-3'} +, {id:'10-10-4', text:'level 3-10-10-4'} +, {id:'10-10-5', text:'level 3-10-10-5'} +, {id:'10-10-6', text:'level 3-10-10-6'} +, {id:'10-10-7', text:'level 3-10-10-7'} +, {id:'10-10-8', text:'level 3-10-10-8'} +, {id:'10-10-9', text:'level 3-10-10-9'} +]} +, {id:'10-11-10', text:'level 2-10-11', item:[ + {id:'10-11-0', text:'level 3-10-11-0'} +, {id:'10-11-1', text:'level 3-10-11-1'} +, {id:'10-11-2', text:'level 3-10-11-2'} +, {id:'10-11-3', text:'level 3-10-11-3'} +, {id:'10-11-4', text:'level 3-10-11-4'} +, {id:'10-11-5', text:'level 3-10-11-5'} +, {id:'10-11-6', text:'level 3-10-11-6'} +, {id:'10-11-7', text:'level 3-10-11-7'} +, {id:'10-11-8', text:'level 3-10-11-8'} +, {id:'10-11-9', text:'level 3-10-11-9'} +]} +, {id:'10-12-10', text:'level 2-10-12', item:[ + {id:'10-12-0', text:'level 3-10-12-0'} +, {id:'10-12-1', text:'level 3-10-12-1'} +, {id:'10-12-2', text:'level 3-10-12-2'} +, {id:'10-12-3', text:'level 3-10-12-3'} +, {id:'10-12-4', text:'level 3-10-12-4'} +, {id:'10-12-5', text:'level 3-10-12-5'} +, {id:'10-12-6', text:'level 3-10-12-6'} +, {id:'10-12-7', text:'level 3-10-12-7'} +, {id:'10-12-8', text:'level 3-10-12-8'} +, {id:'10-12-9', text:'level 3-10-12-9'} +]} +, {id:'10-13-10', text:'level 2-10-13', item:[ + {id:'10-13-0', text:'level 3-10-13-0'} +, {id:'10-13-1', text:'level 3-10-13-1'} +, {id:'10-13-2', text:'level 3-10-13-2'} +, {id:'10-13-3', text:'level 3-10-13-3'} +, {id:'10-13-4', text:'level 3-10-13-4'} +, {id:'10-13-5', text:'level 3-10-13-5'} +, {id:'10-13-6', text:'level 3-10-13-6'} +, {id:'10-13-7', text:'level 3-10-13-7'} +, {id:'10-13-8', text:'level 3-10-13-8'} +, {id:'10-13-9', text:'level 3-10-13-9'} +]} +, {id:'10-14-10', text:'level 2-10-14', item:[ + {id:'10-14-0', text:'level 3-10-14-0'} +, {id:'10-14-1', text:'level 3-10-14-1'} +, {id:'10-14-2', text:'level 3-10-14-2'} +, {id:'10-14-3', text:'level 3-10-14-3'} +, {id:'10-14-4', text:'level 3-10-14-4'} +, {id:'10-14-5', text:'level 3-10-14-5'} +, {id:'10-14-6', text:'level 3-10-14-6'} +, {id:'10-14-7', text:'level 3-10-14-7'} +, {id:'10-14-8', text:'level 3-10-14-8'} +, {id:'10-14-9', text:'level 3-10-14-9'} +]} +, {id:'10-15-10', text:'level 2-10-15', item:[ + {id:'10-15-0', text:'level 3-10-15-0'} +, {id:'10-15-1', text:'level 3-10-15-1'} +, {id:'10-15-2', text:'level 3-10-15-2'} +, {id:'10-15-3', text:'level 3-10-15-3'} +, {id:'10-15-4', text:'level 3-10-15-4'} +, {id:'10-15-5', text:'level 3-10-15-5'} +, {id:'10-15-6', text:'level 3-10-15-6'} +, {id:'10-15-7', text:'level 3-10-15-7'} +, {id:'10-15-8', text:'level 3-10-15-8'} +, {id:'10-15-9', text:'level 3-10-15-9'} +]} +, {id:'10-16-10', text:'level 2-10-16', item:[ + {id:'10-16-0', text:'level 3-10-16-0'} +, {id:'10-16-1', text:'level 3-10-16-1'} +, {id:'10-16-2', text:'level 3-10-16-2'} +, {id:'10-16-3', text:'level 3-10-16-3'} +, {id:'10-16-4', text:'level 3-10-16-4'} +, {id:'10-16-5', text:'level 3-10-16-5'} +, {id:'10-16-6', text:'level 3-10-16-6'} +, {id:'10-16-7', text:'level 3-10-16-7'} +, {id:'10-16-8', text:'level 3-10-16-8'} +, {id:'10-16-9', text:'level 3-10-16-9'} +]} +, {id:'10-17-10', text:'level 2-10-17', item:[ + {id:'10-17-0', text:'level 3-10-17-0'} +, {id:'10-17-1', text:'level 3-10-17-1'} +, {id:'10-17-2', text:'level 3-10-17-2'} +, {id:'10-17-3', text:'level 3-10-17-3'} +, {id:'10-17-4', text:'level 3-10-17-4'} +, {id:'10-17-5', text:'level 3-10-17-5'} +, {id:'10-17-6', text:'level 3-10-17-6'} +, {id:'10-17-7', text:'level 3-10-17-7'} +, {id:'10-17-8', text:'level 3-10-17-8'} +, {id:'10-17-9', text:'level 3-10-17-9'} +]} +, {id:'10-18-10', text:'level 2-10-18', item:[ + {id:'10-18-0', text:'level 3-10-18-0'} +, {id:'10-18-1', text:'level 3-10-18-1'} +, {id:'10-18-2', text:'level 3-10-18-2'} +, {id:'10-18-3', text:'level 3-10-18-3'} +, {id:'10-18-4', text:'level 3-10-18-4'} +, {id:'10-18-5', text:'level 3-10-18-5'} +, {id:'10-18-6', text:'level 3-10-18-6'} +, {id:'10-18-7', text:'level 3-10-18-7'} +, {id:'10-18-8', text:'level 3-10-18-8'} +, {id:'10-18-9', text:'level 3-10-18-9'} +]} +, {id:'10-19-10', text:'level 2-10-19', item:[ + {id:'10-19-0', text:'level 3-10-19-0'} +, {id:'10-19-1', text:'level 3-10-19-1'} +, {id:'10-19-2', text:'level 3-10-19-2'} +, {id:'10-19-3', text:'level 3-10-19-3'} +, {id:'10-19-4', text:'level 3-10-19-4'} +, {id:'10-19-5', text:'level 3-10-19-5'} +, {id:'10-19-6', text:'level 3-10-19-6'} +, {id:'10-19-7', text:'level 3-10-19-7'} +, {id:'10-19-8', text:'level 3-10-19-8'} +, {id:'10-19-9', text:'level 3-10-19-9'} +]} +]} +,{id:'11-20-10', text:'level 1-11', item:[ + {id:'11-0-10', text:'level 2-11-0', item:[ + {id:'11-0-0', text:'level 3-11-0-0'} +, {id:'11-0-1', text:'level 3-11-0-1'} +, {id:'11-0-2', text:'level 3-11-0-2'} +, {id:'11-0-3', text:'level 3-11-0-3'} +, {id:'11-0-4', text:'level 3-11-0-4'} +, {id:'11-0-5', text:'level 3-11-0-5'} +, {id:'11-0-6', text:'level 3-11-0-6'} +, {id:'11-0-7', text:'level 3-11-0-7'} +, {id:'11-0-8', text:'level 3-11-0-8'} +, {id:'11-0-9', text:'level 3-11-0-9'} +]} +, {id:'11-1-10', text:'level 2-11-1', item:[ + {id:'11-1-0', text:'level 3-11-1-0'} +, {id:'11-1-1', text:'level 3-11-1-1'} +, {id:'11-1-2', text:'level 3-11-1-2'} +, {id:'11-1-3', text:'level 3-11-1-3'} +, {id:'11-1-4', text:'level 3-11-1-4'} +, {id:'11-1-5', text:'level 3-11-1-5'} +, {id:'11-1-6', text:'level 3-11-1-6'} +, {id:'11-1-7', text:'level 3-11-1-7'} +, {id:'11-1-8', text:'level 3-11-1-8'} +, {id:'11-1-9', text:'level 3-11-1-9'} +]} +, {id:'11-2-10', text:'level 2-11-2', item:[ + {id:'11-2-0', text:'level 3-11-2-0'} +, {id:'11-2-1', text:'level 3-11-2-1'} +, {id:'11-2-2', text:'level 3-11-2-2'} +, {id:'11-2-3', text:'level 3-11-2-3'} +, {id:'11-2-4', text:'level 3-11-2-4'} +, {id:'11-2-5', text:'level 3-11-2-5'} +, {id:'11-2-6', text:'level 3-11-2-6'} +, {id:'11-2-7', text:'level 3-11-2-7'} +, {id:'11-2-8', text:'level 3-11-2-8'} +, {id:'11-2-9', text:'level 3-11-2-9'} +]} +, {id:'11-3-10', text:'level 2-11-3', item:[ + {id:'11-3-0', text:'level 3-11-3-0'} +, {id:'11-3-1', text:'level 3-11-3-1'} +, {id:'11-3-2', text:'level 3-11-3-2'} +, {id:'11-3-3', text:'level 3-11-3-3'} +, {id:'11-3-4', text:'level 3-11-3-4'} +, {id:'11-3-5', text:'level 3-11-3-5'} +, {id:'11-3-6', text:'level 3-11-3-6'} +, {id:'11-3-7', text:'level 3-11-3-7'} +, {id:'11-3-8', text:'level 3-11-3-8'} +, {id:'11-3-9', text:'level 3-11-3-9'} +]} +, {id:'11-4-10', text:'level 2-11-4', item:[ + {id:'11-4-0', text:'level 3-11-4-0'} +, {id:'11-4-1', text:'level 3-11-4-1'} +, {id:'11-4-2', text:'level 3-11-4-2'} +, {id:'11-4-3', text:'level 3-11-4-3'} +, {id:'11-4-4', text:'level 3-11-4-4'} +, {id:'11-4-5', text:'level 3-11-4-5'} +, {id:'11-4-6', text:'level 3-11-4-6'} +, {id:'11-4-7', text:'level 3-11-4-7'} +, {id:'11-4-8', text:'level 3-11-4-8'} +, {id:'11-4-9', text:'level 3-11-4-9'} +]} +, {id:'11-5-10', text:'level 2-11-5', item:[ + {id:'11-5-0', text:'level 3-11-5-0'} +, {id:'11-5-1', text:'level 3-11-5-1'} +, {id:'11-5-2', text:'level 3-11-5-2'} +, {id:'11-5-3', text:'level 3-11-5-3'} +, {id:'11-5-4', text:'level 3-11-5-4'} +, {id:'11-5-5', text:'level 3-11-5-5'} +, {id:'11-5-6', text:'level 3-11-5-6'} +, {id:'11-5-7', text:'level 3-11-5-7'} +, {id:'11-5-8', text:'level 3-11-5-8'} +, {id:'11-5-9', text:'level 3-11-5-9'} +]} +, {id:'11-6-10', text:'level 2-11-6', item:[ + {id:'11-6-0', text:'level 3-11-6-0'} +, {id:'11-6-1', text:'level 3-11-6-1'} +, {id:'11-6-2', text:'level 3-11-6-2'} +, {id:'11-6-3', text:'level 3-11-6-3'} +, {id:'11-6-4', text:'level 3-11-6-4'} +, {id:'11-6-5', text:'level 3-11-6-5'} +, {id:'11-6-6', text:'level 3-11-6-6'} +, {id:'11-6-7', text:'level 3-11-6-7'} +, {id:'11-6-8', text:'level 3-11-6-8'} +, {id:'11-6-9', text:'level 3-11-6-9'} +]} +, {id:'11-7-10', text:'level 2-11-7', item:[ + {id:'11-7-0', text:'level 3-11-7-0'} +, {id:'11-7-1', text:'level 3-11-7-1'} +, {id:'11-7-2', text:'level 3-11-7-2'} +, {id:'11-7-3', text:'level 3-11-7-3'} +, {id:'11-7-4', text:'level 3-11-7-4'} +, {id:'11-7-5', text:'level 3-11-7-5'} +, {id:'11-7-6', text:'level 3-11-7-6'} +, {id:'11-7-7', text:'level 3-11-7-7'} +, {id:'11-7-8', text:'level 3-11-7-8'} +, {id:'11-7-9', text:'level 3-11-7-9'} +]} +, {id:'11-8-10', text:'level 2-11-8', item:[ + {id:'11-8-0', text:'level 3-11-8-0'} +, {id:'11-8-1', text:'level 3-11-8-1'} +, {id:'11-8-2', text:'level 3-11-8-2'} +, {id:'11-8-3', text:'level 3-11-8-3'} +, {id:'11-8-4', text:'level 3-11-8-4'} +, {id:'11-8-5', text:'level 3-11-8-5'} +, {id:'11-8-6', text:'level 3-11-8-6'} +, {id:'11-8-7', text:'level 3-11-8-7'} +, {id:'11-8-8', text:'level 3-11-8-8'} +, {id:'11-8-9', text:'level 3-11-8-9'} +]} +, {id:'11-9-10', text:'level 2-11-9', item:[ + {id:'11-9-0', text:'level 3-11-9-0'} +, {id:'11-9-1', text:'level 3-11-9-1'} +, {id:'11-9-2', text:'level 3-11-9-2'} +, {id:'11-9-3', text:'level 3-11-9-3'} +, {id:'11-9-4', text:'level 3-11-9-4'} +, {id:'11-9-5', text:'level 3-11-9-5'} +, {id:'11-9-6', text:'level 3-11-9-6'} +, {id:'11-9-7', text:'level 3-11-9-7'} +, {id:'11-9-8', text:'level 3-11-9-8'} +, {id:'11-9-9', text:'level 3-11-9-9'} +]} +, {id:'11-10-10', text:'level 2-11-10', item:[ + {id:'11-10-0', text:'level 3-11-10-0'} +, {id:'11-10-1', text:'level 3-11-10-1'} +, {id:'11-10-2', text:'level 3-11-10-2'} +, {id:'11-10-3', text:'level 3-11-10-3'} +, {id:'11-10-4', text:'level 3-11-10-4'} +, {id:'11-10-5', text:'level 3-11-10-5'} +, {id:'11-10-6', text:'level 3-11-10-6'} +, {id:'11-10-7', text:'level 3-11-10-7'} +, {id:'11-10-8', text:'level 3-11-10-8'} +, {id:'11-10-9', text:'level 3-11-10-9'} +]} +, {id:'11-11-10', text:'level 2-11-11', item:[ + {id:'11-11-0', text:'level 3-11-11-0'} +, {id:'11-11-1', text:'level 3-11-11-1'} +, {id:'11-11-2', text:'level 3-11-11-2'} +, {id:'11-11-3', text:'level 3-11-11-3'} +, {id:'11-11-4', text:'level 3-11-11-4'} +, {id:'11-11-5', text:'level 3-11-11-5'} +, {id:'11-11-6', text:'level 3-11-11-6'} +, {id:'11-11-7', text:'level 3-11-11-7'} +, {id:'11-11-8', text:'level 3-11-11-8'} +, {id:'11-11-9', text:'level 3-11-11-9'} +]} +, {id:'11-12-10', text:'level 2-11-12', item:[ + {id:'11-12-0', text:'level 3-11-12-0'} +, {id:'11-12-1', text:'level 3-11-12-1'} +, {id:'11-12-2', text:'level 3-11-12-2'} +, {id:'11-12-3', text:'level 3-11-12-3'} +, {id:'11-12-4', text:'level 3-11-12-4'} +, {id:'11-12-5', text:'level 3-11-12-5'} +, {id:'11-12-6', text:'level 3-11-12-6'} +, {id:'11-12-7', text:'level 3-11-12-7'} +, {id:'11-12-8', text:'level 3-11-12-8'} +, {id:'11-12-9', text:'level 3-11-12-9'} +]} +, {id:'11-13-10', text:'level 2-11-13', item:[ + {id:'11-13-0', text:'level 3-11-13-0'} +, {id:'11-13-1', text:'level 3-11-13-1'} +, {id:'11-13-2', text:'level 3-11-13-2'} +, {id:'11-13-3', text:'level 3-11-13-3'} +, {id:'11-13-4', text:'level 3-11-13-4'} +, {id:'11-13-5', text:'level 3-11-13-5'} +, {id:'11-13-6', text:'level 3-11-13-6'} +, {id:'11-13-7', text:'level 3-11-13-7'} +, {id:'11-13-8', text:'level 3-11-13-8'} +, {id:'11-13-9', text:'level 3-11-13-9'} +]} +, {id:'11-14-10', text:'level 2-11-14', item:[ + {id:'11-14-0', text:'level 3-11-14-0'} +, {id:'11-14-1', text:'level 3-11-14-1'} +, {id:'11-14-2', text:'level 3-11-14-2'} +, {id:'11-14-3', text:'level 3-11-14-3'} +, {id:'11-14-4', text:'level 3-11-14-4'} +, {id:'11-14-5', text:'level 3-11-14-5'} +, {id:'11-14-6', text:'level 3-11-14-6'} +, {id:'11-14-7', text:'level 3-11-14-7'} +, {id:'11-14-8', text:'level 3-11-14-8'} +, {id:'11-14-9', text:'level 3-11-14-9'} +]} +, {id:'11-15-10', text:'level 2-11-15', item:[ + {id:'11-15-0', text:'level 3-11-15-0'} +, {id:'11-15-1', text:'level 3-11-15-1'} +, {id:'11-15-2', text:'level 3-11-15-2'} +, {id:'11-15-3', text:'level 3-11-15-3'} +, {id:'11-15-4', text:'level 3-11-15-4'} +, {id:'11-15-5', text:'level 3-11-15-5'} +, {id:'11-15-6', text:'level 3-11-15-6'} +, {id:'11-15-7', text:'level 3-11-15-7'} +, {id:'11-15-8', text:'level 3-11-15-8'} +, {id:'11-15-9', text:'level 3-11-15-9'} +]} +, {id:'11-16-10', text:'level 2-11-16', item:[ + {id:'11-16-0', text:'level 3-11-16-0'} +, {id:'11-16-1', text:'level 3-11-16-1'} +, {id:'11-16-2', text:'level 3-11-16-2'} +, {id:'11-16-3', text:'level 3-11-16-3'} +, {id:'11-16-4', text:'level 3-11-16-4'} +, {id:'11-16-5', text:'level 3-11-16-5'} +, {id:'11-16-6', text:'level 3-11-16-6'} +, {id:'11-16-7', text:'level 3-11-16-7'} +, {id:'11-16-8', text:'level 3-11-16-8'} +, {id:'11-16-9', text:'level 3-11-16-9'} +]} +, {id:'11-17-10', text:'level 2-11-17', item:[ + {id:'11-17-0', text:'level 3-11-17-0'} +, {id:'11-17-1', text:'level 3-11-17-1'} +, {id:'11-17-2', text:'level 3-11-17-2'} +, {id:'11-17-3', text:'level 3-11-17-3'} +, {id:'11-17-4', text:'level 3-11-17-4'} +, {id:'11-17-5', text:'level 3-11-17-5'} +, {id:'11-17-6', text:'level 3-11-17-6'} +, {id:'11-17-7', text:'level 3-11-17-7'} +, {id:'11-17-8', text:'level 3-11-17-8'} +, {id:'11-17-9', text:'level 3-11-17-9'} +]} +, {id:'11-18-10', text:'level 2-11-18', item:[ + {id:'11-18-0', text:'level 3-11-18-0'} +, {id:'11-18-1', text:'level 3-11-18-1'} +, {id:'11-18-2', text:'level 3-11-18-2'} +, {id:'11-18-3', text:'level 3-11-18-3'} +, {id:'11-18-4', text:'level 3-11-18-4'} +, {id:'11-18-5', text:'level 3-11-18-5'} +, {id:'11-18-6', text:'level 3-11-18-6'} +, {id:'11-18-7', text:'level 3-11-18-7'} +, {id:'11-18-8', text:'level 3-11-18-8'} +, {id:'11-18-9', text:'level 3-11-18-9'} +]} +, {id:'11-19-10', text:'level 2-11-19', item:[ + {id:'11-19-0', text:'level 3-11-19-0'} +, {id:'11-19-1', text:'level 3-11-19-1'} +, {id:'11-19-2', text:'level 3-11-19-2'} +, {id:'11-19-3', text:'level 3-11-19-3'} +, {id:'11-19-4', text:'level 3-11-19-4'} +, {id:'11-19-5', text:'level 3-11-19-5'} +, {id:'11-19-6', text:'level 3-11-19-6'} +, {id:'11-19-7', text:'level 3-11-19-7'} +, {id:'11-19-8', text:'level 3-11-19-8'} +, {id:'11-19-9', text:'level 3-11-19-9'} +]} +]} +,{id:'12-20-10', text:'level 1-12', item:[ + {id:'12-0-10', text:'level 2-12-0', item:[ + {id:'12-0-0', text:'level 3-12-0-0'} +, {id:'12-0-1', text:'level 3-12-0-1'} +, {id:'12-0-2', text:'level 3-12-0-2'} +, {id:'12-0-3', text:'level 3-12-0-3'} +, {id:'12-0-4', text:'level 3-12-0-4'} +, {id:'12-0-5', text:'level 3-12-0-5'} +, {id:'12-0-6', text:'level 3-12-0-6'} +, {id:'12-0-7', text:'level 3-12-0-7'} +, {id:'12-0-8', text:'level 3-12-0-8'} +, {id:'12-0-9', text:'level 3-12-0-9'} +]} +, {id:'12-1-10', text:'level 2-12-1', item:[ + {id:'12-1-0', text:'level 3-12-1-0'} +, {id:'12-1-1', text:'level 3-12-1-1'} +, {id:'12-1-2', text:'level 3-12-1-2'} +, {id:'12-1-3', text:'level 3-12-1-3'} +, {id:'12-1-4', text:'level 3-12-1-4'} +, {id:'12-1-5', text:'level 3-12-1-5'} +, {id:'12-1-6', text:'level 3-12-1-6'} +, {id:'12-1-7', text:'level 3-12-1-7'} +, {id:'12-1-8', text:'level 3-12-1-8'} +, {id:'12-1-9', text:'level 3-12-1-9'} +]} +, {id:'12-2-10', text:'level 2-12-2', item:[ + {id:'12-2-0', text:'level 3-12-2-0'} +, {id:'12-2-1', text:'level 3-12-2-1'} +, {id:'12-2-2', text:'level 3-12-2-2'} +, {id:'12-2-3', text:'level 3-12-2-3'} +, {id:'12-2-4', text:'level 3-12-2-4'} +, {id:'12-2-5', text:'level 3-12-2-5'} +, {id:'12-2-6', text:'level 3-12-2-6'} +, {id:'12-2-7', text:'level 3-12-2-7'} +, {id:'12-2-8', text:'level 3-12-2-8'} +, {id:'12-2-9', text:'level 3-12-2-9'} +]} +, {id:'12-3-10', text:'level 2-12-3', item:[ + {id:'12-3-0', text:'level 3-12-3-0'} +, {id:'12-3-1', text:'level 3-12-3-1'} +, {id:'12-3-2', text:'level 3-12-3-2'} +, {id:'12-3-3', text:'level 3-12-3-3'} +, {id:'12-3-4', text:'level 3-12-3-4'} +, {id:'12-3-5', text:'level 3-12-3-5'} +, {id:'12-3-6', text:'level 3-12-3-6'} +, {id:'12-3-7', text:'level 3-12-3-7'} +, {id:'12-3-8', text:'level 3-12-3-8'} +, {id:'12-3-9', text:'level 3-12-3-9'} +]} +, {id:'12-4-10', text:'level 2-12-4', item:[ + {id:'12-4-0', text:'level 3-12-4-0'} +, {id:'12-4-1', text:'level 3-12-4-1'} +, {id:'12-4-2', text:'level 3-12-4-2'} +, {id:'12-4-3', text:'level 3-12-4-3'} +, {id:'12-4-4', text:'level 3-12-4-4'} +, {id:'12-4-5', text:'level 3-12-4-5'} +, {id:'12-4-6', text:'level 3-12-4-6'} +, {id:'12-4-7', text:'level 3-12-4-7'} +, {id:'12-4-8', text:'level 3-12-4-8'} +, {id:'12-4-9', text:'level 3-12-4-9'} +]} +, {id:'12-5-10', text:'level 2-12-5', item:[ + {id:'12-5-0', text:'level 3-12-5-0'} +, {id:'12-5-1', text:'level 3-12-5-1'} +, {id:'12-5-2', text:'level 3-12-5-2'} +, {id:'12-5-3', text:'level 3-12-5-3'} +, {id:'12-5-4', text:'level 3-12-5-4'} +, {id:'12-5-5', text:'level 3-12-5-5'} +, {id:'12-5-6', text:'level 3-12-5-6'} +, {id:'12-5-7', text:'level 3-12-5-7'} +, {id:'12-5-8', text:'level 3-12-5-8'} +, {id:'12-5-9', text:'level 3-12-5-9'} +]} +, {id:'12-6-10', text:'level 2-12-6', item:[ + {id:'12-6-0', text:'level 3-12-6-0'} +, {id:'12-6-1', text:'level 3-12-6-1'} +, {id:'12-6-2', text:'level 3-12-6-2'} +, {id:'12-6-3', text:'level 3-12-6-3'} +, {id:'12-6-4', text:'level 3-12-6-4'} +, {id:'12-6-5', text:'level 3-12-6-5'} +, {id:'12-6-6', text:'level 3-12-6-6'} +, {id:'12-6-7', text:'level 3-12-6-7'} +, {id:'12-6-8', text:'level 3-12-6-8'} +, {id:'12-6-9', text:'level 3-12-6-9'} +]} +, {id:'12-7-10', text:'level 2-12-7', item:[ + {id:'12-7-0', text:'level 3-12-7-0'} +, {id:'12-7-1', text:'level 3-12-7-1'} +, {id:'12-7-2', text:'level 3-12-7-2'} +, {id:'12-7-3', text:'level 3-12-7-3'} +, {id:'12-7-4', text:'level 3-12-7-4'} +, {id:'12-7-5', text:'level 3-12-7-5'} +, {id:'12-7-6', text:'level 3-12-7-6'} +, {id:'12-7-7', text:'level 3-12-7-7'} +, {id:'12-7-8', text:'level 3-12-7-8'} +, {id:'12-7-9', text:'level 3-12-7-9'} +]} +, {id:'12-8-10', text:'level 2-12-8', item:[ + {id:'12-8-0', text:'level 3-12-8-0'} +, {id:'12-8-1', text:'level 3-12-8-1'} +, {id:'12-8-2', text:'level 3-12-8-2'} +, {id:'12-8-3', text:'level 3-12-8-3'} +, {id:'12-8-4', text:'level 3-12-8-4'} +, {id:'12-8-5', text:'level 3-12-8-5'} +, {id:'12-8-6', text:'level 3-12-8-6'} +, {id:'12-8-7', text:'level 3-12-8-7'} +, {id:'12-8-8', text:'level 3-12-8-8'} +, {id:'12-8-9', text:'level 3-12-8-9'} +]} +, {id:'12-9-10', text:'level 2-12-9', item:[ + {id:'12-9-0', text:'level 3-12-9-0'} +, {id:'12-9-1', text:'level 3-12-9-1'} +, {id:'12-9-2', text:'level 3-12-9-2'} +, {id:'12-9-3', text:'level 3-12-9-3'} +, {id:'12-9-4', text:'level 3-12-9-4'} +, {id:'12-9-5', text:'level 3-12-9-5'} +, {id:'12-9-6', text:'level 3-12-9-6'} +, {id:'12-9-7', text:'level 3-12-9-7'} +, {id:'12-9-8', text:'level 3-12-9-8'} +, {id:'12-9-9', text:'level 3-12-9-9'} +]} +, {id:'12-10-10', text:'level 2-12-10', item:[ + {id:'12-10-0', text:'level 3-12-10-0'} +, {id:'12-10-1', text:'level 3-12-10-1'} +, {id:'12-10-2', text:'level 3-12-10-2'} +, {id:'12-10-3', text:'level 3-12-10-3'} +, {id:'12-10-4', text:'level 3-12-10-4'} +, {id:'12-10-5', text:'level 3-12-10-5'} +, {id:'12-10-6', text:'level 3-12-10-6'} +, {id:'12-10-7', text:'level 3-12-10-7'} +, {id:'12-10-8', text:'level 3-12-10-8'} +, {id:'12-10-9', text:'level 3-12-10-9'} +]} +, {id:'12-11-10', text:'level 2-12-11', item:[ + {id:'12-11-0', text:'level 3-12-11-0'} +, {id:'12-11-1', text:'level 3-12-11-1'} +, {id:'12-11-2', text:'level 3-12-11-2'} +, {id:'12-11-3', text:'level 3-12-11-3'} +, {id:'12-11-4', text:'level 3-12-11-4'} +, {id:'12-11-5', text:'level 3-12-11-5'} +, {id:'12-11-6', text:'level 3-12-11-6'} +, {id:'12-11-7', text:'level 3-12-11-7'} +, {id:'12-11-8', text:'level 3-12-11-8'} +, {id:'12-11-9', text:'level 3-12-11-9'} +]} +, {id:'12-12-10', text:'level 2-12-12', item:[ + {id:'12-12-0', text:'level 3-12-12-0'} +, {id:'12-12-1', text:'level 3-12-12-1'} +, {id:'12-12-2', text:'level 3-12-12-2'} +, {id:'12-12-3', text:'level 3-12-12-3'} +, {id:'12-12-4', text:'level 3-12-12-4'} +, {id:'12-12-5', text:'level 3-12-12-5'} +, {id:'12-12-6', text:'level 3-12-12-6'} +, {id:'12-12-7', text:'level 3-12-12-7'} +, {id:'12-12-8', text:'level 3-12-12-8'} +, {id:'12-12-9', text:'level 3-12-12-9'} +]} +, {id:'12-13-10', text:'level 2-12-13', item:[ + {id:'12-13-0', text:'level 3-12-13-0'} +, {id:'12-13-1', text:'level 3-12-13-1'} +, {id:'12-13-2', text:'level 3-12-13-2'} +, {id:'12-13-3', text:'level 3-12-13-3'} +, {id:'12-13-4', text:'level 3-12-13-4'} +, {id:'12-13-5', text:'level 3-12-13-5'} +, {id:'12-13-6', text:'level 3-12-13-6'} +, {id:'12-13-7', text:'level 3-12-13-7'} +, {id:'12-13-8', text:'level 3-12-13-8'} +, {id:'12-13-9', text:'level 3-12-13-9'} +]} +, {id:'12-14-10', text:'level 2-12-14', item:[ + {id:'12-14-0', text:'level 3-12-14-0'} +, {id:'12-14-1', text:'level 3-12-14-1'} +, {id:'12-14-2', text:'level 3-12-14-2'} +, {id:'12-14-3', text:'level 3-12-14-3'} +, {id:'12-14-4', text:'level 3-12-14-4'} +, {id:'12-14-5', text:'level 3-12-14-5'} +, {id:'12-14-6', text:'level 3-12-14-6'} +, {id:'12-14-7', text:'level 3-12-14-7'} +, {id:'12-14-8', text:'level 3-12-14-8'} +, {id:'12-14-9', text:'level 3-12-14-9'} +]} +, {id:'12-15-10', text:'level 2-12-15', item:[ + {id:'12-15-0', text:'level 3-12-15-0'} +, {id:'12-15-1', text:'level 3-12-15-1'} +, {id:'12-15-2', text:'level 3-12-15-2'} +, {id:'12-15-3', text:'level 3-12-15-3'} +, {id:'12-15-4', text:'level 3-12-15-4'} +, {id:'12-15-5', text:'level 3-12-15-5'} +, {id:'12-15-6', text:'level 3-12-15-6'} +, {id:'12-15-7', text:'level 3-12-15-7'} +, {id:'12-15-8', text:'level 3-12-15-8'} +, {id:'12-15-9', text:'level 3-12-15-9'} +]} +, {id:'12-16-10', text:'level 2-12-16', item:[ + {id:'12-16-0', text:'level 3-12-16-0'} +, {id:'12-16-1', text:'level 3-12-16-1'} +, {id:'12-16-2', text:'level 3-12-16-2'} +, {id:'12-16-3', text:'level 3-12-16-3'} +, {id:'12-16-4', text:'level 3-12-16-4'} +, {id:'12-16-5', text:'level 3-12-16-5'} +, {id:'12-16-6', text:'level 3-12-16-6'} +, {id:'12-16-7', text:'level 3-12-16-7'} +, {id:'12-16-8', text:'level 3-12-16-8'} +, {id:'12-16-9', text:'level 3-12-16-9'} +]} +, {id:'12-17-10', text:'level 2-12-17', item:[ + {id:'12-17-0', text:'level 3-12-17-0'} +, {id:'12-17-1', text:'level 3-12-17-1'} +, {id:'12-17-2', text:'level 3-12-17-2'} +, {id:'12-17-3', text:'level 3-12-17-3'} +, {id:'12-17-4', text:'level 3-12-17-4'} +, {id:'12-17-5', text:'level 3-12-17-5'} +, {id:'12-17-6', text:'level 3-12-17-6'} +, {id:'12-17-7', text:'level 3-12-17-7'} +, {id:'12-17-8', text:'level 3-12-17-8'} +, {id:'12-17-9', text:'level 3-12-17-9'} +]} +, {id:'12-18-10', text:'level 2-12-18', item:[ + {id:'12-18-0', text:'level 3-12-18-0'} +, {id:'12-18-1', text:'level 3-12-18-1'} +, {id:'12-18-2', text:'level 3-12-18-2'} +, {id:'12-18-3', text:'level 3-12-18-3'} +, {id:'12-18-4', text:'level 3-12-18-4'} +, {id:'12-18-5', text:'level 3-12-18-5'} +, {id:'12-18-6', text:'level 3-12-18-6'} +, {id:'12-18-7', text:'level 3-12-18-7'} +, {id:'12-18-8', text:'level 3-12-18-8'} +, {id:'12-18-9', text:'level 3-12-18-9'} +]} +, {id:'12-19-10', text:'level 2-12-19', item:[ + {id:'12-19-0', text:'level 3-12-19-0'} +, {id:'12-19-1', text:'level 3-12-19-1'} +, {id:'12-19-2', text:'level 3-12-19-2'} +, {id:'12-19-3', text:'level 3-12-19-3'} +, {id:'12-19-4', text:'level 3-12-19-4'} +, {id:'12-19-5', text:'level 3-12-19-5'} +, {id:'12-19-6', text:'level 3-12-19-6'} +, {id:'12-19-7', text:'level 3-12-19-7'} +, {id:'12-19-8', text:'level 3-12-19-8'} +, {id:'12-19-9', text:'level 3-12-19-9'} +]} +]} +,{id:'13-20-10', text:'level 1-13', item:[ + {id:'13-0-10', text:'level 2-13-0', item:[ + {id:'13-0-0', text:'level 3-13-0-0'} +, {id:'13-0-1', text:'level 3-13-0-1'} +, {id:'13-0-2', text:'level 3-13-0-2'} +, {id:'13-0-3', text:'level 3-13-0-3'} +, {id:'13-0-4', text:'level 3-13-0-4'} +, {id:'13-0-5', text:'level 3-13-0-5'} +, {id:'13-0-6', text:'level 3-13-0-6'} +, {id:'13-0-7', text:'level 3-13-0-7'} +, {id:'13-0-8', text:'level 3-13-0-8'} +, {id:'13-0-9', text:'level 3-13-0-9'} +]} +, {id:'13-1-10', text:'level 2-13-1', item:[ + {id:'13-1-0', text:'level 3-13-1-0'} +, {id:'13-1-1', text:'level 3-13-1-1'} +, {id:'13-1-2', text:'level 3-13-1-2'} +, {id:'13-1-3', text:'level 3-13-1-3'} +, {id:'13-1-4', text:'level 3-13-1-4'} +, {id:'13-1-5', text:'level 3-13-1-5'} +, {id:'13-1-6', text:'level 3-13-1-6'} +, {id:'13-1-7', text:'level 3-13-1-7'} +, {id:'13-1-8', text:'level 3-13-1-8'} +, {id:'13-1-9', text:'level 3-13-1-9'} +]} +, {id:'13-2-10', text:'level 2-13-2', item:[ + {id:'13-2-0', text:'level 3-13-2-0'} +, {id:'13-2-1', text:'level 3-13-2-1'} +, {id:'13-2-2', text:'level 3-13-2-2'} +, {id:'13-2-3', text:'level 3-13-2-3'} +, {id:'13-2-4', text:'level 3-13-2-4'} +, {id:'13-2-5', text:'level 3-13-2-5'} +, {id:'13-2-6', text:'level 3-13-2-6'} +, {id:'13-2-7', text:'level 3-13-2-7'} +, {id:'13-2-8', text:'level 3-13-2-8'} +, {id:'13-2-9', text:'level 3-13-2-9'} +]} +, {id:'13-3-10', text:'level 2-13-3', item:[ + {id:'13-3-0', text:'level 3-13-3-0'} +, {id:'13-3-1', text:'level 3-13-3-1'} +, {id:'13-3-2', text:'level 3-13-3-2'} +, {id:'13-3-3', text:'level 3-13-3-3'} +, {id:'13-3-4', text:'level 3-13-3-4'} +, {id:'13-3-5', text:'level 3-13-3-5'} +, {id:'13-3-6', text:'level 3-13-3-6'} +, {id:'13-3-7', text:'level 3-13-3-7'} +, {id:'13-3-8', text:'level 3-13-3-8'} +, {id:'13-3-9', text:'level 3-13-3-9'} +]} +, {id:'13-4-10', text:'level 2-13-4', item:[ + {id:'13-4-0', text:'level 3-13-4-0'} +, {id:'13-4-1', text:'level 3-13-4-1'} +, {id:'13-4-2', text:'level 3-13-4-2'} +, {id:'13-4-3', text:'level 3-13-4-3'} +, {id:'13-4-4', text:'level 3-13-4-4'} +, {id:'13-4-5', text:'level 3-13-4-5'} +, {id:'13-4-6', text:'level 3-13-4-6'} +, {id:'13-4-7', text:'level 3-13-4-7'} +, {id:'13-4-8', text:'level 3-13-4-8'} +, {id:'13-4-9', text:'level 3-13-4-9'} +]} +, {id:'13-5-10', text:'level 2-13-5', item:[ + {id:'13-5-0', text:'level 3-13-5-0'} +, {id:'13-5-1', text:'level 3-13-5-1'} +, {id:'13-5-2', text:'level 3-13-5-2'} +, {id:'13-5-3', text:'level 3-13-5-3'} +, {id:'13-5-4', text:'level 3-13-5-4'} +, {id:'13-5-5', text:'level 3-13-5-5'} +, {id:'13-5-6', text:'level 3-13-5-6'} +, {id:'13-5-7', text:'level 3-13-5-7'} +, {id:'13-5-8', text:'level 3-13-5-8'} +, {id:'13-5-9', text:'level 3-13-5-9'} +]} +, {id:'13-6-10', text:'level 2-13-6', item:[ + {id:'13-6-0', text:'level 3-13-6-0'} +, {id:'13-6-1', text:'level 3-13-6-1'} +, {id:'13-6-2', text:'level 3-13-6-2'} +, {id:'13-6-3', text:'level 3-13-6-3'} +, {id:'13-6-4', text:'level 3-13-6-4'} +, {id:'13-6-5', text:'level 3-13-6-5'} +, {id:'13-6-6', text:'level 3-13-6-6'} +, {id:'13-6-7', text:'level 3-13-6-7'} +, {id:'13-6-8', text:'level 3-13-6-8'} +, {id:'13-6-9', text:'level 3-13-6-9'} +]} +, {id:'13-7-10', text:'level 2-13-7', item:[ + {id:'13-7-0', text:'level 3-13-7-0'} +, {id:'13-7-1', text:'level 3-13-7-1'} +, {id:'13-7-2', text:'level 3-13-7-2'} +, {id:'13-7-3', text:'level 3-13-7-3'} +, {id:'13-7-4', text:'level 3-13-7-4'} +, {id:'13-7-5', text:'level 3-13-7-5'} +, {id:'13-7-6', text:'level 3-13-7-6'} +, {id:'13-7-7', text:'level 3-13-7-7'} +, {id:'13-7-8', text:'level 3-13-7-8'} +, {id:'13-7-9', text:'level 3-13-7-9'} +]} +, {id:'13-8-10', text:'level 2-13-8', item:[ + {id:'13-8-0', text:'level 3-13-8-0'} +, {id:'13-8-1', text:'level 3-13-8-1'} +, {id:'13-8-2', text:'level 3-13-8-2'} +, {id:'13-8-3', text:'level 3-13-8-3'} +, {id:'13-8-4', text:'level 3-13-8-4'} +, {id:'13-8-5', text:'level 3-13-8-5'} +, {id:'13-8-6', text:'level 3-13-8-6'} +, {id:'13-8-7', text:'level 3-13-8-7'} +, {id:'13-8-8', text:'level 3-13-8-8'} +, {id:'13-8-9', text:'level 3-13-8-9'} +]} +, {id:'13-9-10', text:'level 2-13-9', item:[ + {id:'13-9-0', text:'level 3-13-9-0'} +, {id:'13-9-1', text:'level 3-13-9-1'} +, {id:'13-9-2', text:'level 3-13-9-2'} +, {id:'13-9-3', text:'level 3-13-9-3'} +, {id:'13-9-4', text:'level 3-13-9-4'} +, {id:'13-9-5', text:'level 3-13-9-5'} +, {id:'13-9-6', text:'level 3-13-9-6'} +, {id:'13-9-7', text:'level 3-13-9-7'} +, {id:'13-9-8', text:'level 3-13-9-8'} +, {id:'13-9-9', text:'level 3-13-9-9'} +]} +, {id:'13-10-10', text:'level 2-13-10', item:[ + {id:'13-10-0', text:'level 3-13-10-0'} +, {id:'13-10-1', text:'level 3-13-10-1'} +, {id:'13-10-2', text:'level 3-13-10-2'} +, {id:'13-10-3', text:'level 3-13-10-3'} +, {id:'13-10-4', text:'level 3-13-10-4'} +, {id:'13-10-5', text:'level 3-13-10-5'} +, {id:'13-10-6', text:'level 3-13-10-6'} +, {id:'13-10-7', text:'level 3-13-10-7'} +, {id:'13-10-8', text:'level 3-13-10-8'} +, {id:'13-10-9', text:'level 3-13-10-9'} +]} +, {id:'13-11-10', text:'level 2-13-11', item:[ + {id:'13-11-0', text:'level 3-13-11-0'} +, {id:'13-11-1', text:'level 3-13-11-1'} +, {id:'13-11-2', text:'level 3-13-11-2'} +, {id:'13-11-3', text:'level 3-13-11-3'} +, {id:'13-11-4', text:'level 3-13-11-4'} +, {id:'13-11-5', text:'level 3-13-11-5'} +, {id:'13-11-6', text:'level 3-13-11-6'} +, {id:'13-11-7', text:'level 3-13-11-7'} +, {id:'13-11-8', text:'level 3-13-11-8'} +, {id:'13-11-9', text:'level 3-13-11-9'} +]} +, {id:'13-12-10', text:'level 2-13-12', item:[ + {id:'13-12-0', text:'level 3-13-12-0'} +, {id:'13-12-1', text:'level 3-13-12-1'} +, {id:'13-12-2', text:'level 3-13-12-2'} +, {id:'13-12-3', text:'level 3-13-12-3'} +, {id:'13-12-4', text:'level 3-13-12-4'} +, {id:'13-12-5', text:'level 3-13-12-5'} +, {id:'13-12-6', text:'level 3-13-12-6'} +, {id:'13-12-7', text:'level 3-13-12-7'} +, {id:'13-12-8', text:'level 3-13-12-8'} +, {id:'13-12-9', text:'level 3-13-12-9'} +]} +, {id:'13-13-10', text:'level 2-13-13', item:[ + {id:'13-13-0', text:'level 3-13-13-0'} +, {id:'13-13-1', text:'level 3-13-13-1'} +, {id:'13-13-2', text:'level 3-13-13-2'} +, {id:'13-13-3', text:'level 3-13-13-3'} +, {id:'13-13-4', text:'level 3-13-13-4'} +, {id:'13-13-5', text:'level 3-13-13-5'} +, {id:'13-13-6', text:'level 3-13-13-6'} +, {id:'13-13-7', text:'level 3-13-13-7'} +, {id:'13-13-8', text:'level 3-13-13-8'} +, {id:'13-13-9', text:'level 3-13-13-9'} +]} +, {id:'13-14-10', text:'level 2-13-14', item:[ + {id:'13-14-0', text:'level 3-13-14-0'} +, {id:'13-14-1', text:'level 3-13-14-1'} +, {id:'13-14-2', text:'level 3-13-14-2'} +, {id:'13-14-3', text:'level 3-13-14-3'} +, {id:'13-14-4', text:'level 3-13-14-4'} +, {id:'13-14-5', text:'level 3-13-14-5'} +, {id:'13-14-6', text:'level 3-13-14-6'} +, {id:'13-14-7', text:'level 3-13-14-7'} +, {id:'13-14-8', text:'level 3-13-14-8'} +, {id:'13-14-9', text:'level 3-13-14-9'} +]} +, {id:'13-15-10', text:'level 2-13-15', item:[ + {id:'13-15-0', text:'level 3-13-15-0'} +, {id:'13-15-1', text:'level 3-13-15-1'} +, {id:'13-15-2', text:'level 3-13-15-2'} +, {id:'13-15-3', text:'level 3-13-15-3'} +, {id:'13-15-4', text:'level 3-13-15-4'} +, {id:'13-15-5', text:'level 3-13-15-5'} +, {id:'13-15-6', text:'level 3-13-15-6'} +, {id:'13-15-7', text:'level 3-13-15-7'} +, {id:'13-15-8', text:'level 3-13-15-8'} +, {id:'13-15-9', text:'level 3-13-15-9'} +]} +, {id:'13-16-10', text:'level 2-13-16', item:[ + {id:'13-16-0', text:'level 3-13-16-0'} +, {id:'13-16-1', text:'level 3-13-16-1'} +, {id:'13-16-2', text:'level 3-13-16-2'} +, {id:'13-16-3', text:'level 3-13-16-3'} +, {id:'13-16-4', text:'level 3-13-16-4'} +, {id:'13-16-5', text:'level 3-13-16-5'} +, {id:'13-16-6', text:'level 3-13-16-6'} +, {id:'13-16-7', text:'level 3-13-16-7'} +, {id:'13-16-8', text:'level 3-13-16-8'} +, {id:'13-16-9', text:'level 3-13-16-9'} +]} +, {id:'13-17-10', text:'level 2-13-17', item:[ + {id:'13-17-0', text:'level 3-13-17-0'} +, {id:'13-17-1', text:'level 3-13-17-1'} +, {id:'13-17-2', text:'level 3-13-17-2'} +, {id:'13-17-3', text:'level 3-13-17-3'} +, {id:'13-17-4', text:'level 3-13-17-4'} +, {id:'13-17-5', text:'level 3-13-17-5'} +, {id:'13-17-6', text:'level 3-13-17-6'} +, {id:'13-17-7', text:'level 3-13-17-7'} +, {id:'13-17-8', text:'level 3-13-17-8'} +, {id:'13-17-9', text:'level 3-13-17-9'} +]} +, {id:'13-18-10', text:'level 2-13-18', item:[ + {id:'13-18-0', text:'level 3-13-18-0'} +, {id:'13-18-1', text:'level 3-13-18-1'} +, {id:'13-18-2', text:'level 3-13-18-2'} +, {id:'13-18-3', text:'level 3-13-18-3'} +, {id:'13-18-4', text:'level 3-13-18-4'} +, {id:'13-18-5', text:'level 3-13-18-5'} +, {id:'13-18-6', text:'level 3-13-18-6'} +, {id:'13-18-7', text:'level 3-13-18-7'} +, {id:'13-18-8', text:'level 3-13-18-8'} +, {id:'13-18-9', text:'level 3-13-18-9'} +]} +, {id:'13-19-10', text:'level 2-13-19', item:[ + {id:'13-19-0', text:'level 3-13-19-0'} +, {id:'13-19-1', text:'level 3-13-19-1'} +, {id:'13-19-2', text:'level 3-13-19-2'} +, {id:'13-19-3', text:'level 3-13-19-3'} +, {id:'13-19-4', text:'level 3-13-19-4'} +, {id:'13-19-5', text:'level 3-13-19-5'} +, {id:'13-19-6', text:'level 3-13-19-6'} +, {id:'13-19-7', text:'level 3-13-19-7'} +, {id:'13-19-8', text:'level 3-13-19-8'} +, {id:'13-19-9', text:'level 3-13-19-9'} +]} +]} +,{id:'14-20-10', text:'level 1-14', item:[ + {id:'14-0-10', text:'level 2-14-0', item:[ + {id:'14-0-0', text:'level 3-14-0-0'} +, {id:'14-0-1', text:'level 3-14-0-1'} +, {id:'14-0-2', text:'level 3-14-0-2'} +, {id:'14-0-3', text:'level 3-14-0-3'} +, {id:'14-0-4', text:'level 3-14-0-4'} +, {id:'14-0-5', text:'level 3-14-0-5'} +, {id:'14-0-6', text:'level 3-14-0-6'} +, {id:'14-0-7', text:'level 3-14-0-7'} +, {id:'14-0-8', text:'level 3-14-0-8'} +, {id:'14-0-9', text:'level 3-14-0-9'} +]} +, {id:'14-1-10', text:'level 2-14-1', item:[ + {id:'14-1-0', text:'level 3-14-1-0'} +, {id:'14-1-1', text:'level 3-14-1-1'} +, {id:'14-1-2', text:'level 3-14-1-2'} +, {id:'14-1-3', text:'level 3-14-1-3'} +, {id:'14-1-4', text:'level 3-14-1-4'} +, {id:'14-1-5', text:'level 3-14-1-5'} +, {id:'14-1-6', text:'level 3-14-1-6'} +, {id:'14-1-7', text:'level 3-14-1-7'} +, {id:'14-1-8', text:'level 3-14-1-8'} +, {id:'14-1-9', text:'level 3-14-1-9'} +]} +, {id:'14-2-10', text:'level 2-14-2', item:[ + {id:'14-2-0', text:'level 3-14-2-0'} +, {id:'14-2-1', text:'level 3-14-2-1'} +, {id:'14-2-2', text:'level 3-14-2-2'} +, {id:'14-2-3', text:'level 3-14-2-3'} +, {id:'14-2-4', text:'level 3-14-2-4'} +, {id:'14-2-5', text:'level 3-14-2-5'} +, {id:'14-2-6', text:'level 3-14-2-6'} +, {id:'14-2-7', text:'level 3-14-2-7'} +, {id:'14-2-8', text:'level 3-14-2-8'} +, {id:'14-2-9', text:'level 3-14-2-9'} +]} +, {id:'14-3-10', text:'level 2-14-3', item:[ + {id:'14-3-0', text:'level 3-14-3-0'} +, {id:'14-3-1', text:'level 3-14-3-1'} +, {id:'14-3-2', text:'level 3-14-3-2'} +, {id:'14-3-3', text:'level 3-14-3-3'} +, {id:'14-3-4', text:'level 3-14-3-4'} +, {id:'14-3-5', text:'level 3-14-3-5'} +, {id:'14-3-6', text:'level 3-14-3-6'} +, {id:'14-3-7', text:'level 3-14-3-7'} +, {id:'14-3-8', text:'level 3-14-3-8'} +, {id:'14-3-9', text:'level 3-14-3-9'} +]} +, {id:'14-4-10', text:'level 2-14-4', item:[ + {id:'14-4-0', text:'level 3-14-4-0'} +, {id:'14-4-1', text:'level 3-14-4-1'} +, {id:'14-4-2', text:'level 3-14-4-2'} +, {id:'14-4-3', text:'level 3-14-4-3'} +, {id:'14-4-4', text:'level 3-14-4-4'} +, {id:'14-4-5', text:'level 3-14-4-5'} +, {id:'14-4-6', text:'level 3-14-4-6'} +, {id:'14-4-7', text:'level 3-14-4-7'} +, {id:'14-4-8', text:'level 3-14-4-8'} +, {id:'14-4-9', text:'level 3-14-4-9'} +]} +, {id:'14-5-10', text:'level 2-14-5', item:[ + {id:'14-5-0', text:'level 3-14-5-0'} +, {id:'14-5-1', text:'level 3-14-5-1'} +, {id:'14-5-2', text:'level 3-14-5-2'} +, {id:'14-5-3', text:'level 3-14-5-3'} +, {id:'14-5-4', text:'level 3-14-5-4'} +, {id:'14-5-5', text:'level 3-14-5-5'} +, {id:'14-5-6', text:'level 3-14-5-6'} +, {id:'14-5-7', text:'level 3-14-5-7'} +, {id:'14-5-8', text:'level 3-14-5-8'} +, {id:'14-5-9', text:'level 3-14-5-9'} +]} +, {id:'14-6-10', text:'level 2-14-6', item:[ + {id:'14-6-0', text:'level 3-14-6-0'} +, {id:'14-6-1', text:'level 3-14-6-1'} +, {id:'14-6-2', text:'level 3-14-6-2'} +, {id:'14-6-3', text:'level 3-14-6-3'} +, {id:'14-6-4', text:'level 3-14-6-4'} +, {id:'14-6-5', text:'level 3-14-6-5'} +, {id:'14-6-6', text:'level 3-14-6-6'} +, {id:'14-6-7', text:'level 3-14-6-7'} +, {id:'14-6-8', text:'level 3-14-6-8'} +, {id:'14-6-9', text:'level 3-14-6-9'} +]} +, {id:'14-7-10', text:'level 2-14-7', item:[ + {id:'14-7-0', text:'level 3-14-7-0'} +, {id:'14-7-1', text:'level 3-14-7-1'} +, {id:'14-7-2', text:'level 3-14-7-2'} +, {id:'14-7-3', text:'level 3-14-7-3'} +, {id:'14-7-4', text:'level 3-14-7-4'} +, {id:'14-7-5', text:'level 3-14-7-5'} +, {id:'14-7-6', text:'level 3-14-7-6'} +, {id:'14-7-7', text:'level 3-14-7-7'} +, {id:'14-7-8', text:'level 3-14-7-8'} +, {id:'14-7-9', text:'level 3-14-7-9'} +]} +, {id:'14-8-10', text:'level 2-14-8', item:[ + {id:'14-8-0', text:'level 3-14-8-0'} +, {id:'14-8-1', text:'level 3-14-8-1'} +, {id:'14-8-2', text:'level 3-14-8-2'} +, {id:'14-8-3', text:'level 3-14-8-3'} +, {id:'14-8-4', text:'level 3-14-8-4'} +, {id:'14-8-5', text:'level 3-14-8-5'} +, {id:'14-8-6', text:'level 3-14-8-6'} +, {id:'14-8-7', text:'level 3-14-8-7'} +, {id:'14-8-8', text:'level 3-14-8-8'} +, {id:'14-8-9', text:'level 3-14-8-9'} +]} +, {id:'14-9-10', text:'level 2-14-9', item:[ + {id:'14-9-0', text:'level 3-14-9-0'} +, {id:'14-9-1', text:'level 3-14-9-1'} +, {id:'14-9-2', text:'level 3-14-9-2'} +, {id:'14-9-3', text:'level 3-14-9-3'} +, {id:'14-9-4', text:'level 3-14-9-4'} +, {id:'14-9-5', text:'level 3-14-9-5'} +, {id:'14-9-6', text:'level 3-14-9-6'} +, {id:'14-9-7', text:'level 3-14-9-7'} +, {id:'14-9-8', text:'level 3-14-9-8'} +, {id:'14-9-9', text:'level 3-14-9-9'} +]} +, {id:'14-10-10', text:'level 2-14-10', item:[ + {id:'14-10-0', text:'level 3-14-10-0'} +, {id:'14-10-1', text:'level 3-14-10-1'} +, {id:'14-10-2', text:'level 3-14-10-2'} +, {id:'14-10-3', text:'level 3-14-10-3'} +, {id:'14-10-4', text:'level 3-14-10-4'} +, {id:'14-10-5', text:'level 3-14-10-5'} +, {id:'14-10-6', text:'level 3-14-10-6'} +, {id:'14-10-7', text:'level 3-14-10-7'} +, {id:'14-10-8', text:'level 3-14-10-8'} +, {id:'14-10-9', text:'level 3-14-10-9'} +]} +, {id:'14-11-10', text:'level 2-14-11', item:[ + {id:'14-11-0', text:'level 3-14-11-0'} +, {id:'14-11-1', text:'level 3-14-11-1'} +, {id:'14-11-2', text:'level 3-14-11-2'} +, {id:'14-11-3', text:'level 3-14-11-3'} +, {id:'14-11-4', text:'level 3-14-11-4'} +, {id:'14-11-5', text:'level 3-14-11-5'} +, {id:'14-11-6', text:'level 3-14-11-6'} +, {id:'14-11-7', text:'level 3-14-11-7'} +, {id:'14-11-8', text:'level 3-14-11-8'} +, {id:'14-11-9', text:'level 3-14-11-9'} +]} +, {id:'14-12-10', text:'level 2-14-12', item:[ + {id:'14-12-0', text:'level 3-14-12-0'} +, {id:'14-12-1', text:'level 3-14-12-1'} +, {id:'14-12-2', text:'level 3-14-12-2'} +, {id:'14-12-3', text:'level 3-14-12-3'} +, {id:'14-12-4', text:'level 3-14-12-4'} +, {id:'14-12-5', text:'level 3-14-12-5'} +, {id:'14-12-6', text:'level 3-14-12-6'} +, {id:'14-12-7', text:'level 3-14-12-7'} +, {id:'14-12-8', text:'level 3-14-12-8'} +, {id:'14-12-9', text:'level 3-14-12-9'} +]} +, {id:'14-13-10', text:'level 2-14-13', item:[ + {id:'14-13-0', text:'level 3-14-13-0'} +, {id:'14-13-1', text:'level 3-14-13-1'} +, {id:'14-13-2', text:'level 3-14-13-2'} +, {id:'14-13-3', text:'level 3-14-13-3'} +, {id:'14-13-4', text:'level 3-14-13-4'} +, {id:'14-13-5', text:'level 3-14-13-5'} +, {id:'14-13-6', text:'level 3-14-13-6'} +, {id:'14-13-7', text:'level 3-14-13-7'} +, {id:'14-13-8', text:'level 3-14-13-8'} +, {id:'14-13-9', text:'level 3-14-13-9'} +]} +, {id:'14-14-10', text:'level 2-14-14', item:[ + {id:'14-14-0', text:'level 3-14-14-0'} +, {id:'14-14-1', text:'level 3-14-14-1'} +, {id:'14-14-2', text:'level 3-14-14-2'} +, {id:'14-14-3', text:'level 3-14-14-3'} +, {id:'14-14-4', text:'level 3-14-14-4'} +, {id:'14-14-5', text:'level 3-14-14-5'} +, {id:'14-14-6', text:'level 3-14-14-6'} +, {id:'14-14-7', text:'level 3-14-14-7'} +, {id:'14-14-8', text:'level 3-14-14-8'} +, {id:'14-14-9', text:'level 3-14-14-9'} +]} +, {id:'14-15-10', text:'level 2-14-15', item:[ + {id:'14-15-0', text:'level 3-14-15-0'} +, {id:'14-15-1', text:'level 3-14-15-1'} +, {id:'14-15-2', text:'level 3-14-15-2'} +, {id:'14-15-3', text:'level 3-14-15-3'} +, {id:'14-15-4', text:'level 3-14-15-4'} +, {id:'14-15-5', text:'level 3-14-15-5'} +, {id:'14-15-6', text:'level 3-14-15-6'} +, {id:'14-15-7', text:'level 3-14-15-7'} +, {id:'14-15-8', text:'level 3-14-15-8'} +, {id:'14-15-9', text:'level 3-14-15-9'} +]} +, {id:'14-16-10', text:'level 2-14-16', item:[ + {id:'14-16-0', text:'level 3-14-16-0'} +, {id:'14-16-1', text:'level 3-14-16-1'} +, {id:'14-16-2', text:'level 3-14-16-2'} +, {id:'14-16-3', text:'level 3-14-16-3'} +, {id:'14-16-4', text:'level 3-14-16-4'} +, {id:'14-16-5', text:'level 3-14-16-5'} +, {id:'14-16-6', text:'level 3-14-16-6'} +, {id:'14-16-7', text:'level 3-14-16-7'} +, {id:'14-16-8', text:'level 3-14-16-8'} +, {id:'14-16-9', text:'level 3-14-16-9'} +]} +, {id:'14-17-10', text:'level 2-14-17', item:[ + {id:'14-17-0', text:'level 3-14-17-0'} +, {id:'14-17-1', text:'level 3-14-17-1'} +, {id:'14-17-2', text:'level 3-14-17-2'} +, {id:'14-17-3', text:'level 3-14-17-3'} +, {id:'14-17-4', text:'level 3-14-17-4'} +, {id:'14-17-5', text:'level 3-14-17-5'} +, {id:'14-17-6', text:'level 3-14-17-6'} +, {id:'14-17-7', text:'level 3-14-17-7'} +, {id:'14-17-8', text:'level 3-14-17-8'} +, {id:'14-17-9', text:'level 3-14-17-9'} +]} +, {id:'14-18-10', text:'level 2-14-18', item:[ + {id:'14-18-0', text:'level 3-14-18-0'} +, {id:'14-18-1', text:'level 3-14-18-1'} +, {id:'14-18-2', text:'level 3-14-18-2'} +, {id:'14-18-3', text:'level 3-14-18-3'} +, {id:'14-18-4', text:'level 3-14-18-4'} +, {id:'14-18-5', text:'level 3-14-18-5'} +, {id:'14-18-6', text:'level 3-14-18-6'} +, {id:'14-18-7', text:'level 3-14-18-7'} +, {id:'14-18-8', text:'level 3-14-18-8'} +, {id:'14-18-9', text:'level 3-14-18-9'} +]} +, {id:'14-19-10', text:'level 2-14-19', item:[ + {id:'14-19-0', text:'level 3-14-19-0'} +, {id:'14-19-1', text:'level 3-14-19-1'} +, {id:'14-19-2', text:'level 3-14-19-2'} +, {id:'14-19-3', text:'level 3-14-19-3'} +, {id:'14-19-4', text:'level 3-14-19-4'} +, {id:'14-19-5', text:'level 3-14-19-5'} +, {id:'14-19-6', text:'level 3-14-19-6'} +, {id:'14-19-7', text:'level 3-14-19-7'} +, {id:'14-19-8', text:'level 3-14-19-8'} +, {id:'14-19-9', text:'level 3-14-19-9'} +]} +]} +,{id:'15-20-10', text:'level 1-15', item:[ + {id:'15-0-10', text:'level 2-15-0', item:[ + {id:'15-0-0', text:'level 3-15-0-0'} +, {id:'15-0-1', text:'level 3-15-0-1'} +, {id:'15-0-2', text:'level 3-15-0-2'} +, {id:'15-0-3', text:'level 3-15-0-3'} +, {id:'15-0-4', text:'level 3-15-0-4'} +, {id:'15-0-5', text:'level 3-15-0-5'} +, {id:'15-0-6', text:'level 3-15-0-6'} +, {id:'15-0-7', text:'level 3-15-0-7'} +, {id:'15-0-8', text:'level 3-15-0-8'} +, {id:'15-0-9', text:'level 3-15-0-9'} +]} +, {id:'15-1-10', text:'level 2-15-1', item:[ + {id:'15-1-0', text:'level 3-15-1-0'} +, {id:'15-1-1', text:'level 3-15-1-1'} +, {id:'15-1-2', text:'level 3-15-1-2'} +, {id:'15-1-3', text:'level 3-15-1-3'} +, {id:'15-1-4', text:'level 3-15-1-4'} +, {id:'15-1-5', text:'level 3-15-1-5'} +, {id:'15-1-6', text:'level 3-15-1-6'} +, {id:'15-1-7', text:'level 3-15-1-7'} +, {id:'15-1-8', text:'level 3-15-1-8'} +, {id:'15-1-9', text:'level 3-15-1-9'} +]} +, {id:'15-2-10', text:'level 2-15-2', item:[ + {id:'15-2-0', text:'level 3-15-2-0'} +, {id:'15-2-1', text:'level 3-15-2-1'} +, {id:'15-2-2', text:'level 3-15-2-2'} +, {id:'15-2-3', text:'level 3-15-2-3'} +, {id:'15-2-4', text:'level 3-15-2-4'} +, {id:'15-2-5', text:'level 3-15-2-5'} +, {id:'15-2-6', text:'level 3-15-2-6'} +, {id:'15-2-7', text:'level 3-15-2-7'} +, {id:'15-2-8', text:'level 3-15-2-8'} +, {id:'15-2-9', text:'level 3-15-2-9'} +]} +, {id:'15-3-10', text:'level 2-15-3', item:[ + {id:'15-3-0', text:'level 3-15-3-0'} +, {id:'15-3-1', text:'level 3-15-3-1'} +, {id:'15-3-2', text:'level 3-15-3-2'} +, {id:'15-3-3', text:'level 3-15-3-3'} +, {id:'15-3-4', text:'level 3-15-3-4'} +, {id:'15-3-5', text:'level 3-15-3-5'} +, {id:'15-3-6', text:'level 3-15-3-6'} +, {id:'15-3-7', text:'level 3-15-3-7'} +, {id:'15-3-8', text:'level 3-15-3-8'} +, {id:'15-3-9', text:'level 3-15-3-9'} +]} +, {id:'15-4-10', text:'level 2-15-4', item:[ + {id:'15-4-0', text:'level 3-15-4-0'} +, {id:'15-4-1', text:'level 3-15-4-1'} +, {id:'15-4-2', text:'level 3-15-4-2'} +, {id:'15-4-3', text:'level 3-15-4-3'} +, {id:'15-4-4', text:'level 3-15-4-4'} +, {id:'15-4-5', text:'level 3-15-4-5'} +, {id:'15-4-6', text:'level 3-15-4-6'} +, {id:'15-4-7', text:'level 3-15-4-7'} +, {id:'15-4-8', text:'level 3-15-4-8'} +, {id:'15-4-9', text:'level 3-15-4-9'} +]} +, {id:'15-5-10', text:'level 2-15-5', item:[ + {id:'15-5-0', text:'level 3-15-5-0'} +, {id:'15-5-1', text:'level 3-15-5-1'} +, {id:'15-5-2', text:'level 3-15-5-2'} +, {id:'15-5-3', text:'level 3-15-5-3'} +, {id:'15-5-4', text:'level 3-15-5-4'} +, {id:'15-5-5', text:'level 3-15-5-5'} +, {id:'15-5-6', text:'level 3-15-5-6'} +, {id:'15-5-7', text:'level 3-15-5-7'} +, {id:'15-5-8', text:'level 3-15-5-8'} +, {id:'15-5-9', text:'level 3-15-5-9'} +]} +, {id:'15-6-10', text:'level 2-15-6', item:[ + {id:'15-6-0', text:'level 3-15-6-0'} +, {id:'15-6-1', text:'level 3-15-6-1'} +, {id:'15-6-2', text:'level 3-15-6-2'} +, {id:'15-6-3', text:'level 3-15-6-3'} +, {id:'15-6-4', text:'level 3-15-6-4'} +, {id:'15-6-5', text:'level 3-15-6-5'} +, {id:'15-6-6', text:'level 3-15-6-6'} +, {id:'15-6-7', text:'level 3-15-6-7'} +, {id:'15-6-8', text:'level 3-15-6-8'} +, {id:'15-6-9', text:'level 3-15-6-9'} +]} +, {id:'15-7-10', text:'level 2-15-7', item:[ + {id:'15-7-0', text:'level 3-15-7-0'} +, {id:'15-7-1', text:'level 3-15-7-1'} +, {id:'15-7-2', text:'level 3-15-7-2'} +, {id:'15-7-3', text:'level 3-15-7-3'} +, {id:'15-7-4', text:'level 3-15-7-4'} +, {id:'15-7-5', text:'level 3-15-7-5'} +, {id:'15-7-6', text:'level 3-15-7-6'} +, {id:'15-7-7', text:'level 3-15-7-7'} +, {id:'15-7-8', text:'level 3-15-7-8'} +, {id:'15-7-9', text:'level 3-15-7-9'} +]} +, {id:'15-8-10', text:'level 2-15-8', item:[ + {id:'15-8-0', text:'level 3-15-8-0'} +, {id:'15-8-1', text:'level 3-15-8-1'} +, {id:'15-8-2', text:'level 3-15-8-2'} +, {id:'15-8-3', text:'level 3-15-8-3'} +, {id:'15-8-4', text:'level 3-15-8-4'} +, {id:'15-8-5', text:'level 3-15-8-5'} +, {id:'15-8-6', text:'level 3-15-8-6'} +, {id:'15-8-7', text:'level 3-15-8-7'} +, {id:'15-8-8', text:'level 3-15-8-8'} +, {id:'15-8-9', text:'level 3-15-8-9'} +]} +, {id:'15-9-10', text:'level 2-15-9', item:[ + {id:'15-9-0', text:'level 3-15-9-0'} +, {id:'15-9-1', text:'level 3-15-9-1'} +, {id:'15-9-2', text:'level 3-15-9-2'} +, {id:'15-9-3', text:'level 3-15-9-3'} +, {id:'15-9-4', text:'level 3-15-9-4'} +, {id:'15-9-5', text:'level 3-15-9-5'} +, {id:'15-9-6', text:'level 3-15-9-6'} +, {id:'15-9-7', text:'level 3-15-9-7'} +, {id:'15-9-8', text:'level 3-15-9-8'} +, {id:'15-9-9', text:'level 3-15-9-9'} +]} +, {id:'15-10-10', text:'level 2-15-10', item:[ + {id:'15-10-0', text:'level 3-15-10-0'} +, {id:'15-10-1', text:'level 3-15-10-1'} +, {id:'15-10-2', text:'level 3-15-10-2'} +, {id:'15-10-3', text:'level 3-15-10-3'} +, {id:'15-10-4', text:'level 3-15-10-4'} +, {id:'15-10-5', text:'level 3-15-10-5'} +, {id:'15-10-6', text:'level 3-15-10-6'} +, {id:'15-10-7', text:'level 3-15-10-7'} +, {id:'15-10-8', text:'level 3-15-10-8'} +, {id:'15-10-9', text:'level 3-15-10-9'} +]} +, {id:'15-11-10', text:'level 2-15-11', item:[ + {id:'15-11-0', text:'level 3-15-11-0'} +, {id:'15-11-1', text:'level 3-15-11-1'} +, {id:'15-11-2', text:'level 3-15-11-2'} +, {id:'15-11-3', text:'level 3-15-11-3'} +, {id:'15-11-4', text:'level 3-15-11-4'} +, {id:'15-11-5', text:'level 3-15-11-5'} +, {id:'15-11-6', text:'level 3-15-11-6'} +, {id:'15-11-7', text:'level 3-15-11-7'} +, {id:'15-11-8', text:'level 3-15-11-8'} +, {id:'15-11-9', text:'level 3-15-11-9'} +]} +, {id:'15-12-10', text:'level 2-15-12', item:[ + {id:'15-12-0', text:'level 3-15-12-0'} +, {id:'15-12-1', text:'level 3-15-12-1'} +, {id:'15-12-2', text:'level 3-15-12-2'} +, {id:'15-12-3', text:'level 3-15-12-3'} +, {id:'15-12-4', text:'level 3-15-12-4'} +, {id:'15-12-5', text:'level 3-15-12-5'} +, {id:'15-12-6', text:'level 3-15-12-6'} +, {id:'15-12-7', text:'level 3-15-12-7'} +, {id:'15-12-8', text:'level 3-15-12-8'} +, {id:'15-12-9', text:'level 3-15-12-9'} +]} +, {id:'15-13-10', text:'level 2-15-13', item:[ + {id:'15-13-0', text:'level 3-15-13-0'} +, {id:'15-13-1', text:'level 3-15-13-1'} +, {id:'15-13-2', text:'level 3-15-13-2'} +, {id:'15-13-3', text:'level 3-15-13-3'} +, {id:'15-13-4', text:'level 3-15-13-4'} +, {id:'15-13-5', text:'level 3-15-13-5'} +, {id:'15-13-6', text:'level 3-15-13-6'} +, {id:'15-13-7', text:'level 3-15-13-7'} +, {id:'15-13-8', text:'level 3-15-13-8'} +, {id:'15-13-9', text:'level 3-15-13-9'} +]} +, {id:'15-14-10', text:'level 2-15-14', item:[ + {id:'15-14-0', text:'level 3-15-14-0'} +, {id:'15-14-1', text:'level 3-15-14-1'} +, {id:'15-14-2', text:'level 3-15-14-2'} +, {id:'15-14-3', text:'level 3-15-14-3'} +, {id:'15-14-4', text:'level 3-15-14-4'} +, {id:'15-14-5', text:'level 3-15-14-5'} +, {id:'15-14-6', text:'level 3-15-14-6'} +, {id:'15-14-7', text:'level 3-15-14-7'} +, {id:'15-14-8', text:'level 3-15-14-8'} +, {id:'15-14-9', text:'level 3-15-14-9'} +]} +, {id:'15-15-10', text:'level 2-15-15', item:[ + {id:'15-15-0', text:'level 3-15-15-0'} +, {id:'15-15-1', text:'level 3-15-15-1'} +, {id:'15-15-2', text:'level 3-15-15-2'} +, {id:'15-15-3', text:'level 3-15-15-3'} +, {id:'15-15-4', text:'level 3-15-15-4'} +, {id:'15-15-5', text:'level 3-15-15-5'} +, {id:'15-15-6', text:'level 3-15-15-6'} +, {id:'15-15-7', text:'level 3-15-15-7'} +, {id:'15-15-8', text:'level 3-15-15-8'} +, {id:'15-15-9', text:'level 3-15-15-9'} +]} +, {id:'15-16-10', text:'level 2-15-16', item:[ + {id:'15-16-0', text:'level 3-15-16-0'} +, {id:'15-16-1', text:'level 3-15-16-1'} +, {id:'15-16-2', text:'level 3-15-16-2'} +, {id:'15-16-3', text:'level 3-15-16-3'} +, {id:'15-16-4', text:'level 3-15-16-4'} +, {id:'15-16-5', text:'level 3-15-16-5'} +, {id:'15-16-6', text:'level 3-15-16-6'} +, {id:'15-16-7', text:'level 3-15-16-7'} +, {id:'15-16-8', text:'level 3-15-16-8'} +, {id:'15-16-9', text:'level 3-15-16-9'} +]} +, {id:'15-17-10', text:'level 2-15-17', item:[ + {id:'15-17-0', text:'level 3-15-17-0'} +, {id:'15-17-1', text:'level 3-15-17-1'} +, {id:'15-17-2', text:'level 3-15-17-2'} +, {id:'15-17-3', text:'level 3-15-17-3'} +, {id:'15-17-4', text:'level 3-15-17-4'} +, {id:'15-17-5', text:'level 3-15-17-5'} +, {id:'15-17-6', text:'level 3-15-17-6'} +, {id:'15-17-7', text:'level 3-15-17-7'} +, {id:'15-17-8', text:'level 3-15-17-8'} +, {id:'15-17-9', text:'level 3-15-17-9'} +]} +, {id:'15-18-10', text:'level 2-15-18', item:[ + {id:'15-18-0', text:'level 3-15-18-0'} +, {id:'15-18-1', text:'level 3-15-18-1'} +, {id:'15-18-2', text:'level 3-15-18-2'} +, {id:'15-18-3', text:'level 3-15-18-3'} +, {id:'15-18-4', text:'level 3-15-18-4'} +, {id:'15-18-5', text:'level 3-15-18-5'} +, {id:'15-18-6', text:'level 3-15-18-6'} +, {id:'15-18-7', text:'level 3-15-18-7'} +, {id:'15-18-8', text:'level 3-15-18-8'} +, {id:'15-18-9', text:'level 3-15-18-9'} +]} +, {id:'15-19-10', text:'level 2-15-19', item:[ + {id:'15-19-0', text:'level 3-15-19-0'} +, {id:'15-19-1', text:'level 3-15-19-1'} +, {id:'15-19-2', text:'level 3-15-19-2'} +, {id:'15-19-3', text:'level 3-15-19-3'} +, {id:'15-19-4', text:'level 3-15-19-4'} +, {id:'15-19-5', text:'level 3-15-19-5'} +, {id:'15-19-6', text:'level 3-15-19-6'} +, {id:'15-19-7', text:'level 3-15-19-7'} +, {id:'15-19-8', text:'level 3-15-19-8'} +, {id:'15-19-9', text:'level 3-15-19-9'} +]} +]} +,{id:'16-20-10', text:'level 1-16', item:[ + {id:'16-0-10', text:'level 2-16-0', item:[ + {id:'16-0-0', text:'level 3-16-0-0'} +, {id:'16-0-1', text:'level 3-16-0-1'} +, {id:'16-0-2', text:'level 3-16-0-2'} +, {id:'16-0-3', text:'level 3-16-0-3'} +, {id:'16-0-4', text:'level 3-16-0-4'} +, {id:'16-0-5', text:'level 3-16-0-5'} +, {id:'16-0-6', text:'level 3-16-0-6'} +, {id:'16-0-7', text:'level 3-16-0-7'} +, {id:'16-0-8', text:'level 3-16-0-8'} +, {id:'16-0-9', text:'level 3-16-0-9'} +]} +, {id:'16-1-10', text:'level 2-16-1', item:[ + {id:'16-1-0', text:'level 3-16-1-0'} +, {id:'16-1-1', text:'level 3-16-1-1'} +, {id:'16-1-2', text:'level 3-16-1-2'} +, {id:'16-1-3', text:'level 3-16-1-3'} +, {id:'16-1-4', text:'level 3-16-1-4'} +, {id:'16-1-5', text:'level 3-16-1-5'} +, {id:'16-1-6', text:'level 3-16-1-6'} +, {id:'16-1-7', text:'level 3-16-1-7'} +, {id:'16-1-8', text:'level 3-16-1-8'} +, {id:'16-1-9', text:'level 3-16-1-9'} +]} +, {id:'16-2-10', text:'level 2-16-2', item:[ + {id:'16-2-0', text:'level 3-16-2-0'} +, {id:'16-2-1', text:'level 3-16-2-1'} +, {id:'16-2-2', text:'level 3-16-2-2'} +, {id:'16-2-3', text:'level 3-16-2-3'} +, {id:'16-2-4', text:'level 3-16-2-4'} +, {id:'16-2-5', text:'level 3-16-2-5'} +, {id:'16-2-6', text:'level 3-16-2-6'} +, {id:'16-2-7', text:'level 3-16-2-7'} +, {id:'16-2-8', text:'level 3-16-2-8'} +, {id:'16-2-9', text:'level 3-16-2-9'} +]} +, {id:'16-3-10', text:'level 2-16-3', item:[ + {id:'16-3-0', text:'level 3-16-3-0'} +, {id:'16-3-1', text:'level 3-16-3-1'} +, {id:'16-3-2', text:'level 3-16-3-2'} +, {id:'16-3-3', text:'level 3-16-3-3'} +, {id:'16-3-4', text:'level 3-16-3-4'} +, {id:'16-3-5', text:'level 3-16-3-5'} +, {id:'16-3-6', text:'level 3-16-3-6'} +, {id:'16-3-7', text:'level 3-16-3-7'} +, {id:'16-3-8', text:'level 3-16-3-8'} +, {id:'16-3-9', text:'level 3-16-3-9'} +]} +, {id:'16-4-10', text:'level 2-16-4', item:[ + {id:'16-4-0', text:'level 3-16-4-0'} +, {id:'16-4-1', text:'level 3-16-4-1'} +, {id:'16-4-2', text:'level 3-16-4-2'} +, {id:'16-4-3', text:'level 3-16-4-3'} +, {id:'16-4-4', text:'level 3-16-4-4'} +, {id:'16-4-5', text:'level 3-16-4-5'} +, {id:'16-4-6', text:'level 3-16-4-6'} +, {id:'16-4-7', text:'level 3-16-4-7'} +, {id:'16-4-8', text:'level 3-16-4-8'} +, {id:'16-4-9', text:'level 3-16-4-9'} +]} +, {id:'16-5-10', text:'level 2-16-5', item:[ + {id:'16-5-0', text:'level 3-16-5-0'} +, {id:'16-5-1', text:'level 3-16-5-1'} +, {id:'16-5-2', text:'level 3-16-5-2'} +, {id:'16-5-3', text:'level 3-16-5-3'} +, {id:'16-5-4', text:'level 3-16-5-4'} +, {id:'16-5-5', text:'level 3-16-5-5'} +, {id:'16-5-6', text:'level 3-16-5-6'} +, {id:'16-5-7', text:'level 3-16-5-7'} +, {id:'16-5-8', text:'level 3-16-5-8'} +, {id:'16-5-9', text:'level 3-16-5-9'} +]} +, {id:'16-6-10', text:'level 2-16-6', item:[ + {id:'16-6-0', text:'level 3-16-6-0'} +, {id:'16-6-1', text:'level 3-16-6-1'} +, {id:'16-6-2', text:'level 3-16-6-2'} +, {id:'16-6-3', text:'level 3-16-6-3'} +, {id:'16-6-4', text:'level 3-16-6-4'} +, {id:'16-6-5', text:'level 3-16-6-5'} +, {id:'16-6-6', text:'level 3-16-6-6'} +, {id:'16-6-7', text:'level 3-16-6-7'} +, {id:'16-6-8', text:'level 3-16-6-8'} +, {id:'16-6-9', text:'level 3-16-6-9'} +]} +, {id:'16-7-10', text:'level 2-16-7', item:[ + {id:'16-7-0', text:'level 3-16-7-0'} +, {id:'16-7-1', text:'level 3-16-7-1'} +, {id:'16-7-2', text:'level 3-16-7-2'} +, {id:'16-7-3', text:'level 3-16-7-3'} +, {id:'16-7-4', text:'level 3-16-7-4'} +, {id:'16-7-5', text:'level 3-16-7-5'} +, {id:'16-7-6', text:'level 3-16-7-6'} +, {id:'16-7-7', text:'level 3-16-7-7'} +, {id:'16-7-8', text:'level 3-16-7-8'} +, {id:'16-7-9', text:'level 3-16-7-9'} +]} +, {id:'16-8-10', text:'level 2-16-8', item:[ + {id:'16-8-0', text:'level 3-16-8-0'} +, {id:'16-8-1', text:'level 3-16-8-1'} +, {id:'16-8-2', text:'level 3-16-8-2'} +, {id:'16-8-3', text:'level 3-16-8-3'} +, {id:'16-8-4', text:'level 3-16-8-4'} +, {id:'16-8-5', text:'level 3-16-8-5'} +, {id:'16-8-6', text:'level 3-16-8-6'} +, {id:'16-8-7', text:'level 3-16-8-7'} +, {id:'16-8-8', text:'level 3-16-8-8'} +, {id:'16-8-9', text:'level 3-16-8-9'} +]} +, {id:'16-9-10', text:'level 2-16-9', item:[ + {id:'16-9-0', text:'level 3-16-9-0'} +, {id:'16-9-1', text:'level 3-16-9-1'} +, {id:'16-9-2', text:'level 3-16-9-2'} +, {id:'16-9-3', text:'level 3-16-9-3'} +, {id:'16-9-4', text:'level 3-16-9-4'} +, {id:'16-9-5', text:'level 3-16-9-5'} +, {id:'16-9-6', text:'level 3-16-9-6'} +, {id:'16-9-7', text:'level 3-16-9-7'} +, {id:'16-9-8', text:'level 3-16-9-8'} +, {id:'16-9-9', text:'level 3-16-9-9'} +]} +, {id:'16-10-10', text:'level 2-16-10', item:[ + {id:'16-10-0', text:'level 3-16-10-0'} +, {id:'16-10-1', text:'level 3-16-10-1'} +, {id:'16-10-2', text:'level 3-16-10-2'} +, {id:'16-10-3', text:'level 3-16-10-3'} +, {id:'16-10-4', text:'level 3-16-10-4'} +, {id:'16-10-5', text:'level 3-16-10-5'} +, {id:'16-10-6', text:'level 3-16-10-6'} +, {id:'16-10-7', text:'level 3-16-10-7'} +, {id:'16-10-8', text:'level 3-16-10-8'} +, {id:'16-10-9', text:'level 3-16-10-9'} +]} +, {id:'16-11-10', text:'level 2-16-11', item:[ + {id:'16-11-0', text:'level 3-16-11-0'} +, {id:'16-11-1', text:'level 3-16-11-1'} +, {id:'16-11-2', text:'level 3-16-11-2'} +, {id:'16-11-3', text:'level 3-16-11-3'} +, {id:'16-11-4', text:'level 3-16-11-4'} +, {id:'16-11-5', text:'level 3-16-11-5'} +, {id:'16-11-6', text:'level 3-16-11-6'} +, {id:'16-11-7', text:'level 3-16-11-7'} +, {id:'16-11-8', text:'level 3-16-11-8'} +, {id:'16-11-9', text:'level 3-16-11-9'} +]} +, {id:'16-12-10', text:'level 2-16-12', item:[ + {id:'16-12-0', text:'level 3-16-12-0'} +, {id:'16-12-1', text:'level 3-16-12-1'} +, {id:'16-12-2', text:'level 3-16-12-2'} +, {id:'16-12-3', text:'level 3-16-12-3'} +, {id:'16-12-4', text:'level 3-16-12-4'} +, {id:'16-12-5', text:'level 3-16-12-5'} +, {id:'16-12-6', text:'level 3-16-12-6'} +, {id:'16-12-7', text:'level 3-16-12-7'} +, {id:'16-12-8', text:'level 3-16-12-8'} +, {id:'16-12-9', text:'level 3-16-12-9'} +]} +, {id:'16-13-10', text:'level 2-16-13', item:[ + {id:'16-13-0', text:'level 3-16-13-0'} +, {id:'16-13-1', text:'level 3-16-13-1'} +, {id:'16-13-2', text:'level 3-16-13-2'} +, {id:'16-13-3', text:'level 3-16-13-3'} +, {id:'16-13-4', text:'level 3-16-13-4'} +, {id:'16-13-5', text:'level 3-16-13-5'} +, {id:'16-13-6', text:'level 3-16-13-6'} +, {id:'16-13-7', text:'level 3-16-13-7'} +, {id:'16-13-8', text:'level 3-16-13-8'} +, {id:'16-13-9', text:'level 3-16-13-9'} +]} +, {id:'16-14-10', text:'level 2-16-14', item:[ + {id:'16-14-0', text:'level 3-16-14-0'} +, {id:'16-14-1', text:'level 3-16-14-1'} +, {id:'16-14-2', text:'level 3-16-14-2'} +, {id:'16-14-3', text:'level 3-16-14-3'} +, {id:'16-14-4', text:'level 3-16-14-4'} +, {id:'16-14-5', text:'level 3-16-14-5'} +, {id:'16-14-6', text:'level 3-16-14-6'} +, {id:'16-14-7', text:'level 3-16-14-7'} +, {id:'16-14-8', text:'level 3-16-14-8'} +, {id:'16-14-9', text:'level 3-16-14-9'} +]} +, {id:'16-15-10', text:'level 2-16-15', item:[ + {id:'16-15-0', text:'level 3-16-15-0'} +, {id:'16-15-1', text:'level 3-16-15-1'} +, {id:'16-15-2', text:'level 3-16-15-2'} +, {id:'16-15-3', text:'level 3-16-15-3'} +, {id:'16-15-4', text:'level 3-16-15-4'} +, {id:'16-15-5', text:'level 3-16-15-5'} +, {id:'16-15-6', text:'level 3-16-15-6'} +, {id:'16-15-7', text:'level 3-16-15-7'} +, {id:'16-15-8', text:'level 3-16-15-8'} +, {id:'16-15-9', text:'level 3-16-15-9'} +]} +, {id:'16-16-10', text:'level 2-16-16', item:[ + {id:'16-16-0', text:'level 3-16-16-0'} +, {id:'16-16-1', text:'level 3-16-16-1'} +, {id:'16-16-2', text:'level 3-16-16-2'} +, {id:'16-16-3', text:'level 3-16-16-3'} +, {id:'16-16-4', text:'level 3-16-16-4'} +, {id:'16-16-5', text:'level 3-16-16-5'} +, {id:'16-16-6', text:'level 3-16-16-6'} +, {id:'16-16-7', text:'level 3-16-16-7'} +, {id:'16-16-8', text:'level 3-16-16-8'} +, {id:'16-16-9', text:'level 3-16-16-9'} +]} +, {id:'16-17-10', text:'level 2-16-17', item:[ + {id:'16-17-0', text:'level 3-16-17-0'} +, {id:'16-17-1', text:'level 3-16-17-1'} +, {id:'16-17-2', text:'level 3-16-17-2'} +, {id:'16-17-3', text:'level 3-16-17-3'} +, {id:'16-17-4', text:'level 3-16-17-4'} +, {id:'16-17-5', text:'level 3-16-17-5'} +, {id:'16-17-6', text:'level 3-16-17-6'} +, {id:'16-17-7', text:'level 3-16-17-7'} +, {id:'16-17-8', text:'level 3-16-17-8'} +, {id:'16-17-9', text:'level 3-16-17-9'} +]} +, {id:'16-18-10', text:'level 2-16-18', item:[ + {id:'16-18-0', text:'level 3-16-18-0'} +, {id:'16-18-1', text:'level 3-16-18-1'} +, {id:'16-18-2', text:'level 3-16-18-2'} +, {id:'16-18-3', text:'level 3-16-18-3'} +, {id:'16-18-4', text:'level 3-16-18-4'} +, {id:'16-18-5', text:'level 3-16-18-5'} +, {id:'16-18-6', text:'level 3-16-18-6'} +, {id:'16-18-7', text:'level 3-16-18-7'} +, {id:'16-18-8', text:'level 3-16-18-8'} +, {id:'16-18-9', text:'level 3-16-18-9'} +]} +, {id:'16-19-10', text:'level 2-16-19', item:[ + {id:'16-19-0', text:'level 3-16-19-0'} +, {id:'16-19-1', text:'level 3-16-19-1'} +, {id:'16-19-2', text:'level 3-16-19-2'} +, {id:'16-19-3', text:'level 3-16-19-3'} +, {id:'16-19-4', text:'level 3-16-19-4'} +, {id:'16-19-5', text:'level 3-16-19-5'} +, {id:'16-19-6', text:'level 3-16-19-6'} +, {id:'16-19-7', text:'level 3-16-19-7'} +, {id:'16-19-8', text:'level 3-16-19-8'} +, {id:'16-19-9', text:'level 3-16-19-9'} +]} +]} +,{id:'17-20-10', text:'level 1-17', item:[ + {id:'17-0-10', text:'level 2-17-0', item:[ + {id:'17-0-0', text:'level 3-17-0-0'} +, {id:'17-0-1', text:'level 3-17-0-1'} +, {id:'17-0-2', text:'level 3-17-0-2'} +, {id:'17-0-3', text:'level 3-17-0-3'} +, {id:'17-0-4', text:'level 3-17-0-4'} +, {id:'17-0-5', text:'level 3-17-0-5'} +, {id:'17-0-6', text:'level 3-17-0-6'} +, {id:'17-0-7', text:'level 3-17-0-7'} +, {id:'17-0-8', text:'level 3-17-0-8'} +, {id:'17-0-9', text:'level 3-17-0-9'} +]} +, {id:'17-1-10', text:'level 2-17-1', item:[ + {id:'17-1-0', text:'level 3-17-1-0'} +, {id:'17-1-1', text:'level 3-17-1-1'} +, {id:'17-1-2', text:'level 3-17-1-2'} +, {id:'17-1-3', text:'level 3-17-1-3'} +, {id:'17-1-4', text:'level 3-17-1-4'} +, {id:'17-1-5', text:'level 3-17-1-5'} +, {id:'17-1-6', text:'level 3-17-1-6'} +, {id:'17-1-7', text:'level 3-17-1-7'} +, {id:'17-1-8', text:'level 3-17-1-8'} +, {id:'17-1-9', text:'level 3-17-1-9'} +]} +, {id:'17-2-10', text:'level 2-17-2', item:[ + {id:'17-2-0', text:'level 3-17-2-0'} +, {id:'17-2-1', text:'level 3-17-2-1'} +, {id:'17-2-2', text:'level 3-17-2-2'} +, {id:'17-2-3', text:'level 3-17-2-3'} +, {id:'17-2-4', text:'level 3-17-2-4'} +, {id:'17-2-5', text:'level 3-17-2-5'} +, {id:'17-2-6', text:'level 3-17-2-6'} +, {id:'17-2-7', text:'level 3-17-2-7'} +, {id:'17-2-8', text:'level 3-17-2-8'} +, {id:'17-2-9', text:'level 3-17-2-9'} +]} +, {id:'17-3-10', text:'level 2-17-3', item:[ + {id:'17-3-0', text:'level 3-17-3-0'} +, {id:'17-3-1', text:'level 3-17-3-1'} +, {id:'17-3-2', text:'level 3-17-3-2'} +, {id:'17-3-3', text:'level 3-17-3-3'} +, {id:'17-3-4', text:'level 3-17-3-4'} +, {id:'17-3-5', text:'level 3-17-3-5'} +, {id:'17-3-6', text:'level 3-17-3-6'} +, {id:'17-3-7', text:'level 3-17-3-7'} +, {id:'17-3-8', text:'level 3-17-3-8'} +, {id:'17-3-9', text:'level 3-17-3-9'} +]} +, {id:'17-4-10', text:'level 2-17-4', item:[ + {id:'17-4-0', text:'level 3-17-4-0'} +, {id:'17-4-1', text:'level 3-17-4-1'} +, {id:'17-4-2', text:'level 3-17-4-2'} +, {id:'17-4-3', text:'level 3-17-4-3'} +, {id:'17-4-4', text:'level 3-17-4-4'} +, {id:'17-4-5', text:'level 3-17-4-5'} +, {id:'17-4-6', text:'level 3-17-4-6'} +, {id:'17-4-7', text:'level 3-17-4-7'} +, {id:'17-4-8', text:'level 3-17-4-8'} +, {id:'17-4-9', text:'level 3-17-4-9'} +]} +, {id:'17-5-10', text:'level 2-17-5', item:[ + {id:'17-5-0', text:'level 3-17-5-0'} +, {id:'17-5-1', text:'level 3-17-5-1'} +, {id:'17-5-2', text:'level 3-17-5-2'} +, {id:'17-5-3', text:'level 3-17-5-3'} +, {id:'17-5-4', text:'level 3-17-5-4'} +, {id:'17-5-5', text:'level 3-17-5-5'} +, {id:'17-5-6', text:'level 3-17-5-6'} +, {id:'17-5-7', text:'level 3-17-5-7'} +, {id:'17-5-8', text:'level 3-17-5-8'} +, {id:'17-5-9', text:'level 3-17-5-9'} +]} +, {id:'17-6-10', text:'level 2-17-6', item:[ + {id:'17-6-0', text:'level 3-17-6-0'} +, {id:'17-6-1', text:'level 3-17-6-1'} +, {id:'17-6-2', text:'level 3-17-6-2'} +, {id:'17-6-3', text:'level 3-17-6-3'} +, {id:'17-6-4', text:'level 3-17-6-4'} +, {id:'17-6-5', text:'level 3-17-6-5'} +, {id:'17-6-6', text:'level 3-17-6-6'} +, {id:'17-6-7', text:'level 3-17-6-7'} +, {id:'17-6-8', text:'level 3-17-6-8'} +, {id:'17-6-9', text:'level 3-17-6-9'} +]} +, {id:'17-7-10', text:'level 2-17-7', item:[ + {id:'17-7-0', text:'level 3-17-7-0'} +, {id:'17-7-1', text:'level 3-17-7-1'} +, {id:'17-7-2', text:'level 3-17-7-2'} +, {id:'17-7-3', text:'level 3-17-7-3'} +, {id:'17-7-4', text:'level 3-17-7-4'} +, {id:'17-7-5', text:'level 3-17-7-5'} +, {id:'17-7-6', text:'level 3-17-7-6'} +, {id:'17-7-7', text:'level 3-17-7-7'} +, {id:'17-7-8', text:'level 3-17-7-8'} +, {id:'17-7-9', text:'level 3-17-7-9'} +]} +, {id:'17-8-10', text:'level 2-17-8', item:[ + {id:'17-8-0', text:'level 3-17-8-0'} +, {id:'17-8-1', text:'level 3-17-8-1'} +, {id:'17-8-2', text:'level 3-17-8-2'} +, {id:'17-8-3', text:'level 3-17-8-3'} +, {id:'17-8-4', text:'level 3-17-8-4'} +, {id:'17-8-5', text:'level 3-17-8-5'} +, {id:'17-8-6', text:'level 3-17-8-6'} +, {id:'17-8-7', text:'level 3-17-8-7'} +, {id:'17-8-8', text:'level 3-17-8-8'} +, {id:'17-8-9', text:'level 3-17-8-9'} +]} +, {id:'17-9-10', text:'level 2-17-9', item:[ + {id:'17-9-0', text:'level 3-17-9-0'} +, {id:'17-9-1', text:'level 3-17-9-1'} +, {id:'17-9-2', text:'level 3-17-9-2'} +, {id:'17-9-3', text:'level 3-17-9-3'} +, {id:'17-9-4', text:'level 3-17-9-4'} +, {id:'17-9-5', text:'level 3-17-9-5'} +, {id:'17-9-6', text:'level 3-17-9-6'} +, {id:'17-9-7', text:'level 3-17-9-7'} +, {id:'17-9-8', text:'level 3-17-9-8'} +, {id:'17-9-9', text:'level 3-17-9-9'} +]} +, {id:'17-10-10', text:'level 2-17-10', item:[ + {id:'17-10-0', text:'level 3-17-10-0'} +, {id:'17-10-1', text:'level 3-17-10-1'} +, {id:'17-10-2', text:'level 3-17-10-2'} +, {id:'17-10-3', text:'level 3-17-10-3'} +, {id:'17-10-4', text:'level 3-17-10-4'} +, {id:'17-10-5', text:'level 3-17-10-5'} +, {id:'17-10-6', text:'level 3-17-10-6'} +, {id:'17-10-7', text:'level 3-17-10-7'} +, {id:'17-10-8', text:'level 3-17-10-8'} +, {id:'17-10-9', text:'level 3-17-10-9'} +]} +, {id:'17-11-10', text:'level 2-17-11', item:[ + {id:'17-11-0', text:'level 3-17-11-0'} +, {id:'17-11-1', text:'level 3-17-11-1'} +, {id:'17-11-2', text:'level 3-17-11-2'} +, {id:'17-11-3', text:'level 3-17-11-3'} +, {id:'17-11-4', text:'level 3-17-11-4'} +, {id:'17-11-5', text:'level 3-17-11-5'} +, {id:'17-11-6', text:'level 3-17-11-6'} +, {id:'17-11-7', text:'level 3-17-11-7'} +, {id:'17-11-8', text:'level 3-17-11-8'} +, {id:'17-11-9', text:'level 3-17-11-9'} +]} +, {id:'17-12-10', text:'level 2-17-12', item:[ + {id:'17-12-0', text:'level 3-17-12-0'} +, {id:'17-12-1', text:'level 3-17-12-1'} +, {id:'17-12-2', text:'level 3-17-12-2'} +, {id:'17-12-3', text:'level 3-17-12-3'} +, {id:'17-12-4', text:'level 3-17-12-4'} +, {id:'17-12-5', text:'level 3-17-12-5'} +, {id:'17-12-6', text:'level 3-17-12-6'} +, {id:'17-12-7', text:'level 3-17-12-7'} +, {id:'17-12-8', text:'level 3-17-12-8'} +, {id:'17-12-9', text:'level 3-17-12-9'} +]} +, {id:'17-13-10', text:'level 2-17-13', item:[ + {id:'17-13-0', text:'level 3-17-13-0'} +, {id:'17-13-1', text:'level 3-17-13-1'} +, {id:'17-13-2', text:'level 3-17-13-2'} +, {id:'17-13-3', text:'level 3-17-13-3'} +, {id:'17-13-4', text:'level 3-17-13-4'} +, {id:'17-13-5', text:'level 3-17-13-5'} +, {id:'17-13-6', text:'level 3-17-13-6'} +, {id:'17-13-7', text:'level 3-17-13-7'} +, {id:'17-13-8', text:'level 3-17-13-8'} +, {id:'17-13-9', text:'level 3-17-13-9'} +]} +, {id:'17-14-10', text:'level 2-17-14', item:[ + {id:'17-14-0', text:'level 3-17-14-0'} +, {id:'17-14-1', text:'level 3-17-14-1'} +, {id:'17-14-2', text:'level 3-17-14-2'} +, {id:'17-14-3', text:'level 3-17-14-3'} +, {id:'17-14-4', text:'level 3-17-14-4'} +, {id:'17-14-5', text:'level 3-17-14-5'} +, {id:'17-14-6', text:'level 3-17-14-6'} +, {id:'17-14-7', text:'level 3-17-14-7'} +, {id:'17-14-8', text:'level 3-17-14-8'} +, {id:'17-14-9', text:'level 3-17-14-9'} +]} +, {id:'17-15-10', text:'level 2-17-15', item:[ + {id:'17-15-0', text:'level 3-17-15-0'} +, {id:'17-15-1', text:'level 3-17-15-1'} +, {id:'17-15-2', text:'level 3-17-15-2'} +, {id:'17-15-3', text:'level 3-17-15-3'} +, {id:'17-15-4', text:'level 3-17-15-4'} +, {id:'17-15-5', text:'level 3-17-15-5'} +, {id:'17-15-6', text:'level 3-17-15-6'} +, {id:'17-15-7', text:'level 3-17-15-7'} +, {id:'17-15-8', text:'level 3-17-15-8'} +, {id:'17-15-9', text:'level 3-17-15-9'} +]} +, {id:'17-16-10', text:'level 2-17-16', item:[ + {id:'17-16-0', text:'level 3-17-16-0'} +, {id:'17-16-1', text:'level 3-17-16-1'} +, {id:'17-16-2', text:'level 3-17-16-2'} +, {id:'17-16-3', text:'level 3-17-16-3'} +, {id:'17-16-4', text:'level 3-17-16-4'} +, {id:'17-16-5', text:'level 3-17-16-5'} +, {id:'17-16-6', text:'level 3-17-16-6'} +, {id:'17-16-7', text:'level 3-17-16-7'} +, {id:'17-16-8', text:'level 3-17-16-8'} +, {id:'17-16-9', text:'level 3-17-16-9'} +]} +, {id:'17-17-10', text:'level 2-17-17', item:[ + {id:'17-17-0', text:'level 3-17-17-0'} +, {id:'17-17-1', text:'level 3-17-17-1'} +, {id:'17-17-2', text:'level 3-17-17-2'} +, {id:'17-17-3', text:'level 3-17-17-3'} +, {id:'17-17-4', text:'level 3-17-17-4'} +, {id:'17-17-5', text:'level 3-17-17-5'} +, {id:'17-17-6', text:'level 3-17-17-6'} +, {id:'17-17-7', text:'level 3-17-17-7'} +, {id:'17-17-8', text:'level 3-17-17-8'} +, {id:'17-17-9', text:'level 3-17-17-9'} +]} +, {id:'17-18-10', text:'level 2-17-18', item:[ + {id:'17-18-0', text:'level 3-17-18-0'} +, {id:'17-18-1', text:'level 3-17-18-1'} +, {id:'17-18-2', text:'level 3-17-18-2'} +, {id:'17-18-3', text:'level 3-17-18-3'} +, {id:'17-18-4', text:'level 3-17-18-4'} +, {id:'17-18-5', text:'level 3-17-18-5'} +, {id:'17-18-6', text:'level 3-17-18-6'} +, {id:'17-18-7', text:'level 3-17-18-7'} +, {id:'17-18-8', text:'level 3-17-18-8'} +, {id:'17-18-9', text:'level 3-17-18-9'} +]} +, {id:'17-19-10', text:'level 2-17-19', item:[ + {id:'17-19-0', text:'level 3-17-19-0'} +, {id:'17-19-1', text:'level 3-17-19-1'} +, {id:'17-19-2', text:'level 3-17-19-2'} +, {id:'17-19-3', text:'level 3-17-19-3'} +, {id:'17-19-4', text:'level 3-17-19-4'} +, {id:'17-19-5', text:'level 3-17-19-5'} +, {id:'17-19-6', text:'level 3-17-19-6'} +, {id:'17-19-7', text:'level 3-17-19-7'} +, {id:'17-19-8', text:'level 3-17-19-8'} +, {id:'17-19-9', text:'level 3-17-19-9'} +]} +]} +,{id:'18-20-10', text:'level 1-18', item:[ + {id:'18-0-10', text:'level 2-18-0', item:[ + {id:'18-0-0', text:'level 3-18-0-0'} +, {id:'18-0-1', text:'level 3-18-0-1'} +, {id:'18-0-2', text:'level 3-18-0-2'} +, {id:'18-0-3', text:'level 3-18-0-3'} +, {id:'18-0-4', text:'level 3-18-0-4'} +, {id:'18-0-5', text:'level 3-18-0-5'} +, {id:'18-0-6', text:'level 3-18-0-6'} +, {id:'18-0-7', text:'level 3-18-0-7'} +, {id:'18-0-8', text:'level 3-18-0-8'} +, {id:'18-0-9', text:'level 3-18-0-9'} +]} +, {id:'18-1-10', text:'level 2-18-1', item:[ + {id:'18-1-0', text:'level 3-18-1-0'} +, {id:'18-1-1', text:'level 3-18-1-1'} +, {id:'18-1-2', text:'level 3-18-1-2'} +, {id:'18-1-3', text:'level 3-18-1-3'} +, {id:'18-1-4', text:'level 3-18-1-4'} +, {id:'18-1-5', text:'level 3-18-1-5'} +, {id:'18-1-6', text:'level 3-18-1-6'} +, {id:'18-1-7', text:'level 3-18-1-7'} +, {id:'18-1-8', text:'level 3-18-1-8'} +, {id:'18-1-9', text:'level 3-18-1-9'} +]} +, {id:'18-2-10', text:'level 2-18-2', item:[ + {id:'18-2-0', text:'level 3-18-2-0'} +, {id:'18-2-1', text:'level 3-18-2-1'} +, {id:'18-2-2', text:'level 3-18-2-2'} +, {id:'18-2-3', text:'level 3-18-2-3'} +, {id:'18-2-4', text:'level 3-18-2-4'} +, {id:'18-2-5', text:'level 3-18-2-5'} +, {id:'18-2-6', text:'level 3-18-2-6'} +, {id:'18-2-7', text:'level 3-18-2-7'} +, {id:'18-2-8', text:'level 3-18-2-8'} +, {id:'18-2-9', text:'level 3-18-2-9'} +]} +, {id:'18-3-10', text:'level 2-18-3', item:[ + {id:'18-3-0', text:'level 3-18-3-0'} +, {id:'18-3-1', text:'level 3-18-3-1'} +, {id:'18-3-2', text:'level 3-18-3-2'} +, {id:'18-3-3', text:'level 3-18-3-3'} +, {id:'18-3-4', text:'level 3-18-3-4'} +, {id:'18-3-5', text:'level 3-18-3-5'} +, {id:'18-3-6', text:'level 3-18-3-6'} +, {id:'18-3-7', text:'level 3-18-3-7'} +, {id:'18-3-8', text:'level 3-18-3-8'} +, {id:'18-3-9', text:'level 3-18-3-9'} +]} +, {id:'18-4-10', text:'level 2-18-4', item:[ + {id:'18-4-0', text:'level 3-18-4-0'} +, {id:'18-4-1', text:'level 3-18-4-1'} +, {id:'18-4-2', text:'level 3-18-4-2'} +, {id:'18-4-3', text:'level 3-18-4-3'} +, {id:'18-4-4', text:'level 3-18-4-4'} +, {id:'18-4-5', text:'level 3-18-4-5'} +, {id:'18-4-6', text:'level 3-18-4-6'} +, {id:'18-4-7', text:'level 3-18-4-7'} +, {id:'18-4-8', text:'level 3-18-4-8'} +, {id:'18-4-9', text:'level 3-18-4-9'} +]} +, {id:'18-5-10', text:'level 2-18-5', item:[ + {id:'18-5-0', text:'level 3-18-5-0'} +, {id:'18-5-1', text:'level 3-18-5-1'} +, {id:'18-5-2', text:'level 3-18-5-2'} +, {id:'18-5-3', text:'level 3-18-5-3'} +, {id:'18-5-4', text:'level 3-18-5-4'} +, {id:'18-5-5', text:'level 3-18-5-5'} +, {id:'18-5-6', text:'level 3-18-5-6'} +, {id:'18-5-7', text:'level 3-18-5-7'} +, {id:'18-5-8', text:'level 3-18-5-8'} +, {id:'18-5-9', text:'level 3-18-5-9'} +]} +, {id:'18-6-10', text:'level 2-18-6', item:[ + {id:'18-6-0', text:'level 3-18-6-0'} +, {id:'18-6-1', text:'level 3-18-6-1'} +, {id:'18-6-2', text:'level 3-18-6-2'} +, {id:'18-6-3', text:'level 3-18-6-3'} +, {id:'18-6-4', text:'level 3-18-6-4'} +, {id:'18-6-5', text:'level 3-18-6-5'} +, {id:'18-6-6', text:'level 3-18-6-6'} +, {id:'18-6-7', text:'level 3-18-6-7'} +, {id:'18-6-8', text:'level 3-18-6-8'} +, {id:'18-6-9', text:'level 3-18-6-9'} +]} +, {id:'18-7-10', text:'level 2-18-7', item:[ + {id:'18-7-0', text:'level 3-18-7-0'} +, {id:'18-7-1', text:'level 3-18-7-1'} +, {id:'18-7-2', text:'level 3-18-7-2'} +, {id:'18-7-3', text:'level 3-18-7-3'} +, {id:'18-7-4', text:'level 3-18-7-4'} +, {id:'18-7-5', text:'level 3-18-7-5'} +, {id:'18-7-6', text:'level 3-18-7-6'} +, {id:'18-7-7', text:'level 3-18-7-7'} +, {id:'18-7-8', text:'level 3-18-7-8'} +, {id:'18-7-9', text:'level 3-18-7-9'} +]} +, {id:'18-8-10', text:'level 2-18-8', item:[ + {id:'18-8-0', text:'level 3-18-8-0'} +, {id:'18-8-1', text:'level 3-18-8-1'} +, {id:'18-8-2', text:'level 3-18-8-2'} +, {id:'18-8-3', text:'level 3-18-8-3'} +, {id:'18-8-4', text:'level 3-18-8-4'} +, {id:'18-8-5', text:'level 3-18-8-5'} +, {id:'18-8-6', text:'level 3-18-8-6'} +, {id:'18-8-7', text:'level 3-18-8-7'} +, {id:'18-8-8', text:'level 3-18-8-8'} +, {id:'18-8-9', text:'level 3-18-8-9'} +]} +, {id:'18-9-10', text:'level 2-18-9', item:[ + {id:'18-9-0', text:'level 3-18-9-0'} +, {id:'18-9-1', text:'level 3-18-9-1'} +, {id:'18-9-2', text:'level 3-18-9-2'} +, {id:'18-9-3', text:'level 3-18-9-3'} +, {id:'18-9-4', text:'level 3-18-9-4'} +, {id:'18-9-5', text:'level 3-18-9-5'} +, {id:'18-9-6', text:'level 3-18-9-6'} +, {id:'18-9-7', text:'level 3-18-9-7'} +, {id:'18-9-8', text:'level 3-18-9-8'} +, {id:'18-9-9', text:'level 3-18-9-9'} +]} +, {id:'18-10-10', text:'level 2-18-10', item:[ + {id:'18-10-0', text:'level 3-18-10-0'} +, {id:'18-10-1', text:'level 3-18-10-1'} +, {id:'18-10-2', text:'level 3-18-10-2'} +, {id:'18-10-3', text:'level 3-18-10-3'} +, {id:'18-10-4', text:'level 3-18-10-4'} +, {id:'18-10-5', text:'level 3-18-10-5'} +, {id:'18-10-6', text:'level 3-18-10-6'} +, {id:'18-10-7', text:'level 3-18-10-7'} +, {id:'18-10-8', text:'level 3-18-10-8'} +, {id:'18-10-9', text:'level 3-18-10-9'} +]} +, {id:'18-11-10', text:'level 2-18-11', item:[ + {id:'18-11-0', text:'level 3-18-11-0'} +, {id:'18-11-1', text:'level 3-18-11-1'} +, {id:'18-11-2', text:'level 3-18-11-2'} +, {id:'18-11-3', text:'level 3-18-11-3'} +, {id:'18-11-4', text:'level 3-18-11-4'} +, {id:'18-11-5', text:'level 3-18-11-5'} +, {id:'18-11-6', text:'level 3-18-11-6'} +, {id:'18-11-7', text:'level 3-18-11-7'} +, {id:'18-11-8', text:'level 3-18-11-8'} +, {id:'18-11-9', text:'level 3-18-11-9'} +]} +, {id:'18-12-10', text:'level 2-18-12', item:[ + {id:'18-12-0', text:'level 3-18-12-0'} +, {id:'18-12-1', text:'level 3-18-12-1'} +, {id:'18-12-2', text:'level 3-18-12-2'} +, {id:'18-12-3', text:'level 3-18-12-3'} +, {id:'18-12-4', text:'level 3-18-12-4'} +, {id:'18-12-5', text:'level 3-18-12-5'} +, {id:'18-12-6', text:'level 3-18-12-6'} +, {id:'18-12-7', text:'level 3-18-12-7'} +, {id:'18-12-8', text:'level 3-18-12-8'} +, {id:'18-12-9', text:'level 3-18-12-9'} +]} +, {id:'18-13-10', text:'level 2-18-13', item:[ + {id:'18-13-0', text:'level 3-18-13-0'} +, {id:'18-13-1', text:'level 3-18-13-1'} +, {id:'18-13-2', text:'level 3-18-13-2'} +, {id:'18-13-3', text:'level 3-18-13-3'} +, {id:'18-13-4', text:'level 3-18-13-4'} +, {id:'18-13-5', text:'level 3-18-13-5'} +, {id:'18-13-6', text:'level 3-18-13-6'} +, {id:'18-13-7', text:'level 3-18-13-7'} +, {id:'18-13-8', text:'level 3-18-13-8'} +, {id:'18-13-9', text:'level 3-18-13-9'} +]} +, {id:'18-14-10', text:'level 2-18-14', item:[ + {id:'18-14-0', text:'level 3-18-14-0'} +, {id:'18-14-1', text:'level 3-18-14-1'} +, {id:'18-14-2', text:'level 3-18-14-2'} +, {id:'18-14-3', text:'level 3-18-14-3'} +, {id:'18-14-4', text:'level 3-18-14-4'} +, {id:'18-14-5', text:'level 3-18-14-5'} +, {id:'18-14-6', text:'level 3-18-14-6'} +, {id:'18-14-7', text:'level 3-18-14-7'} +, {id:'18-14-8', text:'level 3-18-14-8'} +, {id:'18-14-9', text:'level 3-18-14-9'} +]} +, {id:'18-15-10', text:'level 2-18-15', item:[ + {id:'18-15-0', text:'level 3-18-15-0'} +, {id:'18-15-1', text:'level 3-18-15-1'} +, {id:'18-15-2', text:'level 3-18-15-2'} +, {id:'18-15-3', text:'level 3-18-15-3'} +, {id:'18-15-4', text:'level 3-18-15-4'} +, {id:'18-15-5', text:'level 3-18-15-5'} +, {id:'18-15-6', text:'level 3-18-15-6'} +, {id:'18-15-7', text:'level 3-18-15-7'} +, {id:'18-15-8', text:'level 3-18-15-8'} +, {id:'18-15-9', text:'level 3-18-15-9'} +]} +, {id:'18-16-10', text:'level 2-18-16', item:[ + {id:'18-16-0', text:'level 3-18-16-0'} +, {id:'18-16-1', text:'level 3-18-16-1'} +, {id:'18-16-2', text:'level 3-18-16-2'} +, {id:'18-16-3', text:'level 3-18-16-3'} +, {id:'18-16-4', text:'level 3-18-16-4'} +, {id:'18-16-5', text:'level 3-18-16-5'} +, {id:'18-16-6', text:'level 3-18-16-6'} +, {id:'18-16-7', text:'level 3-18-16-7'} +, {id:'18-16-8', text:'level 3-18-16-8'} +, {id:'18-16-9', text:'level 3-18-16-9'} +]} +, {id:'18-17-10', text:'level 2-18-17', item:[ + {id:'18-17-0', text:'level 3-18-17-0'} +, {id:'18-17-1', text:'level 3-18-17-1'} +, {id:'18-17-2', text:'level 3-18-17-2'} +, {id:'18-17-3', text:'level 3-18-17-3'} +, {id:'18-17-4', text:'level 3-18-17-4'} +, {id:'18-17-5', text:'level 3-18-17-5'} +, {id:'18-17-6', text:'level 3-18-17-6'} +, {id:'18-17-7', text:'level 3-18-17-7'} +, {id:'18-17-8', text:'level 3-18-17-8'} +, {id:'18-17-9', text:'level 3-18-17-9'} +]} +, {id:'18-18-10', text:'level 2-18-18', item:[ + {id:'18-18-0', text:'level 3-18-18-0'} +, {id:'18-18-1', text:'level 3-18-18-1'} +, {id:'18-18-2', text:'level 3-18-18-2'} +, {id:'18-18-3', text:'level 3-18-18-3'} +, {id:'18-18-4', text:'level 3-18-18-4'} +, {id:'18-18-5', text:'level 3-18-18-5'} +, {id:'18-18-6', text:'level 3-18-18-6'} +, {id:'18-18-7', text:'level 3-18-18-7'} +, {id:'18-18-8', text:'level 3-18-18-8'} +, {id:'18-18-9', text:'level 3-18-18-9'} +]} +, {id:'18-19-10', text:'level 2-18-19', item:[ + {id:'18-19-0', text:'level 3-18-19-0'} +, {id:'18-19-1', text:'level 3-18-19-1'} +, {id:'18-19-2', text:'level 3-18-19-2'} +, {id:'18-19-3', text:'level 3-18-19-3'} +, {id:'18-19-4', text:'level 3-18-19-4'} +, {id:'18-19-5', text:'level 3-18-19-5'} +, {id:'18-19-6', text:'level 3-18-19-6'} +, {id:'18-19-7', text:'level 3-18-19-7'} +, {id:'18-19-8', text:'level 3-18-19-8'} +, {id:'18-19-9', text:'level 3-18-19-9'} +]} +]} +,{id:'19-20-10', text:'level 1-19', item:[ + {id:'19-0-10', text:'level 2-19-0', item:[ + {id:'19-0-0', text:'level 3-19-0-0'} +, {id:'19-0-1', text:'level 3-19-0-1'} +, {id:'19-0-2', text:'level 3-19-0-2'} +, {id:'19-0-3', text:'level 3-19-0-3'} +, {id:'19-0-4', text:'level 3-19-0-4'} +, {id:'19-0-5', text:'level 3-19-0-5'} +, {id:'19-0-6', text:'level 3-19-0-6'} +, {id:'19-0-7', text:'level 3-19-0-7'} +, {id:'19-0-8', text:'level 3-19-0-8'} +, {id:'19-0-9', text:'level 3-19-0-9'} +]} +, {id:'19-1-10', text:'level 2-19-1', item:[ + {id:'19-1-0', text:'level 3-19-1-0'} +, {id:'19-1-1', text:'level 3-19-1-1'} +, {id:'19-1-2', text:'level 3-19-1-2'} +, {id:'19-1-3', text:'level 3-19-1-3'} +, {id:'19-1-4', text:'level 3-19-1-4'} +, {id:'19-1-5', text:'level 3-19-1-5'} +, {id:'19-1-6', text:'level 3-19-1-6'} +, {id:'19-1-7', text:'level 3-19-1-7'} +, {id:'19-1-8', text:'level 3-19-1-8'} +, {id:'19-1-9', text:'level 3-19-1-9'} +]} +, {id:'19-2-10', text:'level 2-19-2', item:[ + {id:'19-2-0', text:'level 3-19-2-0'} +, {id:'19-2-1', text:'level 3-19-2-1'} +, {id:'19-2-2', text:'level 3-19-2-2'} +, {id:'19-2-3', text:'level 3-19-2-3'} +, {id:'19-2-4', text:'level 3-19-2-4'} +, {id:'19-2-5', text:'level 3-19-2-5'} +, {id:'19-2-6', text:'level 3-19-2-6'} +, {id:'19-2-7', text:'level 3-19-2-7'} +, {id:'19-2-8', text:'level 3-19-2-8'} +, {id:'19-2-9', text:'level 3-19-2-9'} +]} +, {id:'19-3-10', text:'level 2-19-3', item:[ + {id:'19-3-0', text:'level 3-19-3-0'} +, {id:'19-3-1', text:'level 3-19-3-1'} +, {id:'19-3-2', text:'level 3-19-3-2'} +, {id:'19-3-3', text:'level 3-19-3-3'} +, {id:'19-3-4', text:'level 3-19-3-4'} +, {id:'19-3-5', text:'level 3-19-3-5'} +, {id:'19-3-6', text:'level 3-19-3-6'} +, {id:'19-3-7', text:'level 3-19-3-7'} +, {id:'19-3-8', text:'level 3-19-3-8'} +, {id:'19-3-9', text:'level 3-19-3-9'} +]} +, {id:'19-4-10', text:'level 2-19-4', item:[ + {id:'19-4-0', text:'level 3-19-4-0'} +, {id:'19-4-1', text:'level 3-19-4-1'} +, {id:'19-4-2', text:'level 3-19-4-2'} +, {id:'19-4-3', text:'level 3-19-4-3'} +, {id:'19-4-4', text:'level 3-19-4-4'} +, {id:'19-4-5', text:'level 3-19-4-5'} +, {id:'19-4-6', text:'level 3-19-4-6'} +, {id:'19-4-7', text:'level 3-19-4-7'} +, {id:'19-4-8', text:'level 3-19-4-8'} +, {id:'19-4-9', text:'level 3-19-4-9'} +]} +, {id:'19-5-10', text:'level 2-19-5', item:[ + {id:'19-5-0', text:'level 3-19-5-0'} +, {id:'19-5-1', text:'level 3-19-5-1'} +, {id:'19-5-2', text:'level 3-19-5-2'} +, {id:'19-5-3', text:'level 3-19-5-3'} +, {id:'19-5-4', text:'level 3-19-5-4'} +, {id:'19-5-5', text:'level 3-19-5-5'} +, {id:'19-5-6', text:'level 3-19-5-6'} +, {id:'19-5-7', text:'level 3-19-5-7'} +, {id:'19-5-8', text:'level 3-19-5-8'} +, {id:'19-5-9', text:'level 3-19-5-9'} +]} +, {id:'19-6-10', text:'level 2-19-6', item:[ + {id:'19-6-0', text:'level 3-19-6-0'} +, {id:'19-6-1', text:'level 3-19-6-1'} +, {id:'19-6-2', text:'level 3-19-6-2'} +, {id:'19-6-3', text:'level 3-19-6-3'} +, {id:'19-6-4', text:'level 3-19-6-4'} +, {id:'19-6-5', text:'level 3-19-6-5'} +, {id:'19-6-6', text:'level 3-19-6-6'} +, {id:'19-6-7', text:'level 3-19-6-7'} +, {id:'19-6-8', text:'level 3-19-6-8'} +, {id:'19-6-9', text:'level 3-19-6-9'} +]} +, {id:'19-7-10', text:'level 2-19-7', item:[ + {id:'19-7-0', text:'level 3-19-7-0'} +, {id:'19-7-1', text:'level 3-19-7-1'} +, {id:'19-7-2', text:'level 3-19-7-2'} +, {id:'19-7-3', text:'level 3-19-7-3'} +, {id:'19-7-4', text:'level 3-19-7-4'} +, {id:'19-7-5', text:'level 3-19-7-5'} +, {id:'19-7-6', text:'level 3-19-7-6'} +, {id:'19-7-7', text:'level 3-19-7-7'} +, {id:'19-7-8', text:'level 3-19-7-8'} +, {id:'19-7-9', text:'level 3-19-7-9'} +]} +, {id:'19-8-10', text:'level 2-19-8', item:[ + {id:'19-8-0', text:'level 3-19-8-0'} +, {id:'19-8-1', text:'level 3-19-8-1'} +, {id:'19-8-2', text:'level 3-19-8-2'} +, {id:'19-8-3', text:'level 3-19-8-3'} +, {id:'19-8-4', text:'level 3-19-8-4'} +, {id:'19-8-5', text:'level 3-19-8-5'} +, {id:'19-8-6', text:'level 3-19-8-6'} +, {id:'19-8-7', text:'level 3-19-8-7'} +, {id:'19-8-8', text:'level 3-19-8-8'} +, {id:'19-8-9', text:'level 3-19-8-9'} +]} +, {id:'19-9-10', text:'level 2-19-9', item:[ + {id:'19-9-0', text:'level 3-19-9-0'} +, {id:'19-9-1', text:'level 3-19-9-1'} +, {id:'19-9-2', text:'level 3-19-9-2'} +, {id:'19-9-3', text:'level 3-19-9-3'} +, {id:'19-9-4', text:'level 3-19-9-4'} +, {id:'19-9-5', text:'level 3-19-9-5'} +, {id:'19-9-6', text:'level 3-19-9-6'} +, {id:'19-9-7', text:'level 3-19-9-7'} +, {id:'19-9-8', text:'level 3-19-9-8'} +, {id:'19-9-9', text:'level 3-19-9-9'} +]} +, {id:'19-10-10', text:'level 2-19-10', item:[ + {id:'19-10-0', text:'level 3-19-10-0'} +, {id:'19-10-1', text:'level 3-19-10-1'} +, {id:'19-10-2', text:'level 3-19-10-2'} +, {id:'19-10-3', text:'level 3-19-10-3'} +, {id:'19-10-4', text:'level 3-19-10-4'} +, {id:'19-10-5', text:'level 3-19-10-5'} +, {id:'19-10-6', text:'level 3-19-10-6'} +, {id:'19-10-7', text:'level 3-19-10-7'} +, {id:'19-10-8', text:'level 3-19-10-8'} +, {id:'19-10-9', text:'level 3-19-10-9'} +]} +, {id:'19-11-10', text:'level 2-19-11', item:[ + {id:'19-11-0', text:'level 3-19-11-0'} +, {id:'19-11-1', text:'level 3-19-11-1'} +, {id:'19-11-2', text:'level 3-19-11-2'} +, {id:'19-11-3', text:'level 3-19-11-3'} +, {id:'19-11-4', text:'level 3-19-11-4'} +, {id:'19-11-5', text:'level 3-19-11-5'} +, {id:'19-11-6', text:'level 3-19-11-6'} +, {id:'19-11-7', text:'level 3-19-11-7'} +, {id:'19-11-8', text:'level 3-19-11-8'} +, {id:'19-11-9', text:'level 3-19-11-9'} +]} +, {id:'19-12-10', text:'level 2-19-12', item:[ + {id:'19-12-0', text:'level 3-19-12-0'} +, {id:'19-12-1', text:'level 3-19-12-1'} +, {id:'19-12-2', text:'level 3-19-12-2'} +, {id:'19-12-3', text:'level 3-19-12-3'} +, {id:'19-12-4', text:'level 3-19-12-4'} +, {id:'19-12-5', text:'level 3-19-12-5'} +, {id:'19-12-6', text:'level 3-19-12-6'} +, {id:'19-12-7', text:'level 3-19-12-7'} +, {id:'19-12-8', text:'level 3-19-12-8'} +, {id:'19-12-9', text:'level 3-19-12-9'} +]} +, {id:'19-13-10', text:'level 2-19-13', item:[ + {id:'19-13-0', text:'level 3-19-13-0'} +, {id:'19-13-1', text:'level 3-19-13-1'} +, {id:'19-13-2', text:'level 3-19-13-2'} +, {id:'19-13-3', text:'level 3-19-13-3'} +, {id:'19-13-4', text:'level 3-19-13-4'} +, {id:'19-13-5', text:'level 3-19-13-5'} +, {id:'19-13-6', text:'level 3-19-13-6'} +, {id:'19-13-7', text:'level 3-19-13-7'} +, {id:'19-13-8', text:'level 3-19-13-8'} +, {id:'19-13-9', text:'level 3-19-13-9'} +]} +, {id:'19-14-10', text:'level 2-19-14', item:[ + {id:'19-14-0', text:'level 3-19-14-0'} +, {id:'19-14-1', text:'level 3-19-14-1'} +, {id:'19-14-2', text:'level 3-19-14-2'} +, {id:'19-14-3', text:'level 3-19-14-3'} +, {id:'19-14-4', text:'level 3-19-14-4'} +, {id:'19-14-5', text:'level 3-19-14-5'} +, {id:'19-14-6', text:'level 3-19-14-6'} +, {id:'19-14-7', text:'level 3-19-14-7'} +, {id:'19-14-8', text:'level 3-19-14-8'} +, {id:'19-14-9', text:'level 3-19-14-9'} +]} +, {id:'19-15-10', text:'level 2-19-15', item:[ + {id:'19-15-0', text:'level 3-19-15-0'} +, {id:'19-15-1', text:'level 3-19-15-1'} +, {id:'19-15-2', text:'level 3-19-15-2'} +, {id:'19-15-3', text:'level 3-19-15-3'} +, {id:'19-15-4', text:'level 3-19-15-4'} +, {id:'19-15-5', text:'level 3-19-15-5'} +, {id:'19-15-6', text:'level 3-19-15-6'} +, {id:'19-15-7', text:'level 3-19-15-7'} +, {id:'19-15-8', text:'level 3-19-15-8'} +, {id:'19-15-9', text:'level 3-19-15-9'} +]} +, {id:'19-16-10', text:'level 2-19-16', item:[ + {id:'19-16-0', text:'level 3-19-16-0'} +, {id:'19-16-1', text:'level 3-19-16-1'} +, {id:'19-16-2', text:'level 3-19-16-2'} +, {id:'19-16-3', text:'level 3-19-16-3'} +, {id:'19-16-4', text:'level 3-19-16-4'} +, {id:'19-16-5', text:'level 3-19-16-5'} +, {id:'19-16-6', text:'level 3-19-16-6'} +, {id:'19-16-7', text:'level 3-19-16-7'} +, {id:'19-16-8', text:'level 3-19-16-8'} +, {id:'19-16-9', text:'level 3-19-16-9'} +]} +, {id:'19-17-10', text:'level 2-19-17', item:[ + {id:'19-17-0', text:'level 3-19-17-0'} +, {id:'19-17-1', text:'level 3-19-17-1'} +, {id:'19-17-2', text:'level 3-19-17-2'} +, {id:'19-17-3', text:'level 3-19-17-3'} +, {id:'19-17-4', text:'level 3-19-17-4'} +, {id:'19-17-5', text:'level 3-19-17-5'} +, {id:'19-17-6', text:'level 3-19-17-6'} +, {id:'19-17-7', text:'level 3-19-17-7'} +, {id:'19-17-8', text:'level 3-19-17-8'} +, {id:'19-17-9', text:'level 3-19-17-9'} +]} +, {id:'19-18-10', text:'level 2-19-18', item:[ + {id:'19-18-0', text:'level 3-19-18-0'} +, {id:'19-18-1', text:'level 3-19-18-1'} +, {id:'19-18-2', text:'level 3-19-18-2'} +, {id:'19-18-3', text:'level 3-19-18-3'} +, {id:'19-18-4', text:'level 3-19-18-4'} +, {id:'19-18-5', text:'level 3-19-18-5'} +, {id:'19-18-6', text:'level 3-19-18-6'} +, {id:'19-18-7', text:'level 3-19-18-7'} +, {id:'19-18-8', text:'level 3-19-18-8'} +, {id:'19-18-9', text:'level 3-19-18-9'} +]} +, {id:'19-19-10', text:'level 2-19-19', item:[ + {id:'19-19-0', text:'level 3-19-19-0'} +, {id:'19-19-1', text:'level 3-19-19-1'} +, {id:'19-19-2', text:'level 3-19-19-2'} +, {id:'19-19-3', text:'level 3-19-19-3'} +, {id:'19-19-4', text:'level 3-19-19-4'} +, {id:'19-19-5', text:'level 3-19-19-5'} +, {id:'19-19-6', text:'level 3-19-19-6'} +, {id:'19-19-7', text:'level 3-19-19-7'} +, {id:'19-19-8', text:'level 3-19-19-8'} +, {id:'19-19-9', text:'level 3-19-19-9'} +]} +]} +,{id:'20-20-10', text:'level 1-20', item:[ + {id:'20-0-10', text:'level 2-20-0', item:[ + {id:'20-0-0', text:'level 3-20-0-0'} +, {id:'20-0-1', text:'level 3-20-0-1'} +, {id:'20-0-2', text:'level 3-20-0-2'} +, {id:'20-0-3', text:'level 3-20-0-3'} +, {id:'20-0-4', text:'level 3-20-0-4'} +, {id:'20-0-5', text:'level 3-20-0-5'} +, {id:'20-0-6', text:'level 3-20-0-6'} +, {id:'20-0-7', text:'level 3-20-0-7'} +, {id:'20-0-8', text:'level 3-20-0-8'} +, {id:'20-0-9', text:'level 3-20-0-9'} +]} +, {id:'20-1-10', text:'level 2-20-1', item:[ + {id:'20-1-0', text:'level 3-20-1-0'} +, {id:'20-1-1', text:'level 3-20-1-1'} +, {id:'20-1-2', text:'level 3-20-1-2'} +, {id:'20-1-3', text:'level 3-20-1-3'} +, {id:'20-1-4', text:'level 3-20-1-4'} +, {id:'20-1-5', text:'level 3-20-1-5'} +, {id:'20-1-6', text:'level 3-20-1-6'} +, {id:'20-1-7', text:'level 3-20-1-7'} +, {id:'20-1-8', text:'level 3-20-1-8'} +, {id:'20-1-9', text:'level 3-20-1-9'} +]} +, {id:'20-2-10', text:'level 2-20-2', item:[ + {id:'20-2-0', text:'level 3-20-2-0'} +, {id:'20-2-1', text:'level 3-20-2-1'} +, {id:'20-2-2', text:'level 3-20-2-2'} +, {id:'20-2-3', text:'level 3-20-2-3'} +, {id:'20-2-4', text:'level 3-20-2-4'} +, {id:'20-2-5', text:'level 3-20-2-5'} +, {id:'20-2-6', text:'level 3-20-2-6'} +, {id:'20-2-7', text:'level 3-20-2-7'} +, {id:'20-2-8', text:'level 3-20-2-8'} +, {id:'20-2-9', text:'level 3-20-2-9'} +]} +, {id:'20-3-10', text:'level 2-20-3', item:[ + {id:'20-3-0', text:'level 3-20-3-0'} +, {id:'20-3-1', text:'level 3-20-3-1'} +, {id:'20-3-2', text:'level 3-20-3-2'} +, {id:'20-3-3', text:'level 3-20-3-3'} +, {id:'20-3-4', text:'level 3-20-3-4'} +, {id:'20-3-5', text:'level 3-20-3-5'} +, {id:'20-3-6', text:'level 3-20-3-6'} +, {id:'20-3-7', text:'level 3-20-3-7'} +, {id:'20-3-8', text:'level 3-20-3-8'} +, {id:'20-3-9', text:'level 3-20-3-9'} +]} +, {id:'20-4-10', text:'level 2-20-4', item:[ + {id:'20-4-0', text:'level 3-20-4-0'} +, {id:'20-4-1', text:'level 3-20-4-1'} +, {id:'20-4-2', text:'level 3-20-4-2'} +, {id:'20-4-3', text:'level 3-20-4-3'} +, {id:'20-4-4', text:'level 3-20-4-4'} +, {id:'20-4-5', text:'level 3-20-4-5'} +, {id:'20-4-6', text:'level 3-20-4-6'} +, {id:'20-4-7', text:'level 3-20-4-7'} +, {id:'20-4-8', text:'level 3-20-4-8'} +, {id:'20-4-9', text:'level 3-20-4-9'} +]} +, {id:'20-5-10', text:'level 2-20-5', item:[ + {id:'20-5-0', text:'level 3-20-5-0'} +, {id:'20-5-1', text:'level 3-20-5-1'} +, {id:'20-5-2', text:'level 3-20-5-2'} +, {id:'20-5-3', text:'level 3-20-5-3'} +, {id:'20-5-4', text:'level 3-20-5-4'} +, {id:'20-5-5', text:'level 3-20-5-5'} +, {id:'20-5-6', text:'level 3-20-5-6'} +, {id:'20-5-7', text:'level 3-20-5-7'} +, {id:'20-5-8', text:'level 3-20-5-8'} +, {id:'20-5-9', text:'level 3-20-5-9'} +]} +, {id:'20-6-10', text:'level 2-20-6', item:[ + {id:'20-6-0', text:'level 3-20-6-0'} +, {id:'20-6-1', text:'level 3-20-6-1'} +, {id:'20-6-2', text:'level 3-20-6-2'} +, {id:'20-6-3', text:'level 3-20-6-3'} +, {id:'20-6-4', text:'level 3-20-6-4'} +, {id:'20-6-5', text:'level 3-20-6-5'} +, {id:'20-6-6', text:'level 3-20-6-6'} +, {id:'20-6-7', text:'level 3-20-6-7'} +, {id:'20-6-8', text:'level 3-20-6-8'} +, {id:'20-6-9', text:'level 3-20-6-9'} +]} +, {id:'20-7-10', text:'level 2-20-7', item:[ + {id:'20-7-0', text:'level 3-20-7-0'} +, {id:'20-7-1', text:'level 3-20-7-1'} +, {id:'20-7-2', text:'level 3-20-7-2'} +, {id:'20-7-3', text:'level 3-20-7-3'} +, {id:'20-7-4', text:'level 3-20-7-4'} +, {id:'20-7-5', text:'level 3-20-7-5'} +, {id:'20-7-6', text:'level 3-20-7-6'} +, {id:'20-7-7', text:'level 3-20-7-7'} +, {id:'20-7-8', text:'level 3-20-7-8'} +, {id:'20-7-9', text:'level 3-20-7-9'} +]} +, {id:'20-8-10', text:'level 2-20-8', item:[ + {id:'20-8-0', text:'level 3-20-8-0'} +, {id:'20-8-1', text:'level 3-20-8-1'} +, {id:'20-8-2', text:'level 3-20-8-2'} +, {id:'20-8-3', text:'level 3-20-8-3'} +, {id:'20-8-4', text:'level 3-20-8-4'} +, {id:'20-8-5', text:'level 3-20-8-5'} +, {id:'20-8-6', text:'level 3-20-8-6'} +, {id:'20-8-7', text:'level 3-20-8-7'} +, {id:'20-8-8', text:'level 3-20-8-8'} +, {id:'20-8-9', text:'level 3-20-8-9'} +]} +, {id:'20-9-10', text:'level 2-20-9', item:[ + {id:'20-9-0', text:'level 3-20-9-0'} +, {id:'20-9-1', text:'level 3-20-9-1'} +, {id:'20-9-2', text:'level 3-20-9-2'} +, {id:'20-9-3', text:'level 3-20-9-3'} +, {id:'20-9-4', text:'level 3-20-9-4'} +, {id:'20-9-5', text:'level 3-20-9-5'} +, {id:'20-9-6', text:'level 3-20-9-6'} +, {id:'20-9-7', text:'level 3-20-9-7'} +, {id:'20-9-8', text:'level 3-20-9-8'} +, {id:'20-9-9', text:'level 3-20-9-9'} +]} +, {id:'20-10-10', text:'level 2-20-10', item:[ + {id:'20-10-0', text:'level 3-20-10-0'} +, {id:'20-10-1', text:'level 3-20-10-1'} +, {id:'20-10-2', text:'level 3-20-10-2'} +, {id:'20-10-3', text:'level 3-20-10-3'} +, {id:'20-10-4', text:'level 3-20-10-4'} +, {id:'20-10-5', text:'level 3-20-10-5'} +, {id:'20-10-6', text:'level 3-20-10-6'} +, {id:'20-10-7', text:'level 3-20-10-7'} +, {id:'20-10-8', text:'level 3-20-10-8'} +, {id:'20-10-9', text:'level 3-20-10-9'} +]} +, {id:'20-11-10', text:'level 2-20-11', item:[ + {id:'20-11-0', text:'level 3-20-11-0'} +, {id:'20-11-1', text:'level 3-20-11-1'} +, {id:'20-11-2', text:'level 3-20-11-2'} +, {id:'20-11-3', text:'level 3-20-11-3'} +, {id:'20-11-4', text:'level 3-20-11-4'} +, {id:'20-11-5', text:'level 3-20-11-5'} +, {id:'20-11-6', text:'level 3-20-11-6'} +, {id:'20-11-7', text:'level 3-20-11-7'} +, {id:'20-11-8', text:'level 3-20-11-8'} +, {id:'20-11-9', text:'level 3-20-11-9'} +]} +, {id:'20-12-10', text:'level 2-20-12', item:[ + {id:'20-12-0', text:'level 3-20-12-0'} +, {id:'20-12-1', text:'level 3-20-12-1'} +, {id:'20-12-2', text:'level 3-20-12-2'} +, {id:'20-12-3', text:'level 3-20-12-3'} +, {id:'20-12-4', text:'level 3-20-12-4'} +, {id:'20-12-5', text:'level 3-20-12-5'} +, {id:'20-12-6', text:'level 3-20-12-6'} +, {id:'20-12-7', text:'level 3-20-12-7'} +, {id:'20-12-8', text:'level 3-20-12-8'} +, {id:'20-12-9', text:'level 3-20-12-9'} +]} +, {id:'20-13-10', text:'level 2-20-13', item:[ + {id:'20-13-0', text:'level 3-20-13-0'} +, {id:'20-13-1', text:'level 3-20-13-1'} +, {id:'20-13-2', text:'level 3-20-13-2'} +, {id:'20-13-3', text:'level 3-20-13-3'} +, {id:'20-13-4', text:'level 3-20-13-4'} +, {id:'20-13-5', text:'level 3-20-13-5'} +, {id:'20-13-6', text:'level 3-20-13-6'} +, {id:'20-13-7', text:'level 3-20-13-7'} +, {id:'20-13-8', text:'level 3-20-13-8'} +, {id:'20-13-9', text:'level 3-20-13-9'} +]} +, {id:'20-14-10', text:'level 2-20-14', item:[ + {id:'20-14-0', text:'level 3-20-14-0'} +, {id:'20-14-1', text:'level 3-20-14-1'} +, {id:'20-14-2', text:'level 3-20-14-2'} +, {id:'20-14-3', text:'level 3-20-14-3'} +, {id:'20-14-4', text:'level 3-20-14-4'} +, {id:'20-14-5', text:'level 3-20-14-5'} +, {id:'20-14-6', text:'level 3-20-14-6'} +, {id:'20-14-7', text:'level 3-20-14-7'} +, {id:'20-14-8', text:'level 3-20-14-8'} +, {id:'20-14-9', text:'level 3-20-14-9'} +]} +, {id:'20-15-10', text:'level 2-20-15', item:[ + {id:'20-15-0', text:'level 3-20-15-0'} +, {id:'20-15-1', text:'level 3-20-15-1'} +, {id:'20-15-2', text:'level 3-20-15-2'} +, {id:'20-15-3', text:'level 3-20-15-3'} +, {id:'20-15-4', text:'level 3-20-15-4'} +, {id:'20-15-5', text:'level 3-20-15-5'} +, {id:'20-15-6', text:'level 3-20-15-6'} +, {id:'20-15-7', text:'level 3-20-15-7'} +, {id:'20-15-8', text:'level 3-20-15-8'} +, {id:'20-15-9', text:'level 3-20-15-9'} +]} +, {id:'20-16-10', text:'level 2-20-16', item:[ + {id:'20-16-0', text:'level 3-20-16-0'} +, {id:'20-16-1', text:'level 3-20-16-1'} +, {id:'20-16-2', text:'level 3-20-16-2'} +, {id:'20-16-3', text:'level 3-20-16-3'} +, {id:'20-16-4', text:'level 3-20-16-4'} +, {id:'20-16-5', text:'level 3-20-16-5'} +, {id:'20-16-6', text:'level 3-20-16-6'} +, {id:'20-16-7', text:'level 3-20-16-7'} +, {id:'20-16-8', text:'level 3-20-16-8'} +, {id:'20-16-9', text:'level 3-20-16-9'} +]} +, {id:'20-17-10', text:'level 2-20-17', item:[ + {id:'20-17-0', text:'level 3-20-17-0'} +, {id:'20-17-1', text:'level 3-20-17-1'} +, {id:'20-17-2', text:'level 3-20-17-2'} +, {id:'20-17-3', text:'level 3-20-17-3'} +, {id:'20-17-4', text:'level 3-20-17-4'} +, {id:'20-17-5', text:'level 3-20-17-5'} +, {id:'20-17-6', text:'level 3-20-17-6'} +, {id:'20-17-7', text:'level 3-20-17-7'} +, {id:'20-17-8', text:'level 3-20-17-8'} +, {id:'20-17-9', text:'level 3-20-17-9'} +]} +, {id:'20-18-10', text:'level 2-20-18', item:[ + {id:'20-18-0', text:'level 3-20-18-0'} +, {id:'20-18-1', text:'level 3-20-18-1'} +, {id:'20-18-2', text:'level 3-20-18-2'} +, {id:'20-18-3', text:'level 3-20-18-3'} +, {id:'20-18-4', text:'level 3-20-18-4'} +, {id:'20-18-5', text:'level 3-20-18-5'} +, {id:'20-18-6', text:'level 3-20-18-6'} +, {id:'20-18-7', text:'level 3-20-18-7'} +, {id:'20-18-8', text:'level 3-20-18-8'} +, {id:'20-18-9', text:'level 3-20-18-9'} +]} +, {id:'20-19-10', text:'level 2-20-19', item:[ + {id:'20-19-0', text:'level 3-20-19-0'} +, {id:'20-19-1', text:'level 3-20-19-1'} +, {id:'20-19-2', text:'level 3-20-19-2'} +, {id:'20-19-3', text:'level 3-20-19-3'} +, {id:'20-19-4', text:'level 3-20-19-4'} +, {id:'20-19-5', text:'level 3-20-19-5'} +, {id:'20-19-6', text:'level 3-20-19-6'} +, {id:'20-19-7', text:'level 3-20-19-7'} +, {id:'20-19-8', text:'level 3-20-19-8'} +, {id:'20-19-9', text:'level 3-20-19-9'} +]} +]} +,{id:'21-20-10', text:'level 1-21', item:[ + {id:'21-0-10', text:'level 2-21-0', item:[ + {id:'21-0-0', text:'level 3-21-0-0'} +, {id:'21-0-1', text:'level 3-21-0-1'} +, {id:'21-0-2', text:'level 3-21-0-2'} +, {id:'21-0-3', text:'level 3-21-0-3'} +, {id:'21-0-4', text:'level 3-21-0-4'} +, {id:'21-0-5', text:'level 3-21-0-5'} +, {id:'21-0-6', text:'level 3-21-0-6'} +, {id:'21-0-7', text:'level 3-21-0-7'} +, {id:'21-0-8', text:'level 3-21-0-8'} +, {id:'21-0-9', text:'level 3-21-0-9'} +]} +, {id:'21-1-10', text:'level 2-21-1', item:[ + {id:'21-1-0', text:'level 3-21-1-0'} +, {id:'21-1-1', text:'level 3-21-1-1'} +, {id:'21-1-2', text:'level 3-21-1-2'} +, {id:'21-1-3', text:'level 3-21-1-3'} +, {id:'21-1-4', text:'level 3-21-1-4'} +, {id:'21-1-5', text:'level 3-21-1-5'} +, {id:'21-1-6', text:'level 3-21-1-6'} +, {id:'21-1-7', text:'level 3-21-1-7'} +, {id:'21-1-8', text:'level 3-21-1-8'} +, {id:'21-1-9', text:'level 3-21-1-9'} +]} +, {id:'21-2-10', text:'level 2-21-2', item:[ + {id:'21-2-0', text:'level 3-21-2-0'} +, {id:'21-2-1', text:'level 3-21-2-1'} +, {id:'21-2-2', text:'level 3-21-2-2'} +, {id:'21-2-3', text:'level 3-21-2-3'} +, {id:'21-2-4', text:'level 3-21-2-4'} +, {id:'21-2-5', text:'level 3-21-2-5'} +, {id:'21-2-6', text:'level 3-21-2-6'} +, {id:'21-2-7', text:'level 3-21-2-7'} +, {id:'21-2-8', text:'level 3-21-2-8'} +, {id:'21-2-9', text:'level 3-21-2-9'} +]} +, {id:'21-3-10', text:'level 2-21-3', item:[ + {id:'21-3-0', text:'level 3-21-3-0'} +, {id:'21-3-1', text:'level 3-21-3-1'} +, {id:'21-3-2', text:'level 3-21-3-2'} +, {id:'21-3-3', text:'level 3-21-3-3'} +, {id:'21-3-4', text:'level 3-21-3-4'} +, {id:'21-3-5', text:'level 3-21-3-5'} +, {id:'21-3-6', text:'level 3-21-3-6'} +, {id:'21-3-7', text:'level 3-21-3-7'} +, {id:'21-3-8', text:'level 3-21-3-8'} +, {id:'21-3-9', text:'level 3-21-3-9'} +]} +, {id:'21-4-10', text:'level 2-21-4', item:[ + {id:'21-4-0', text:'level 3-21-4-0'} +, {id:'21-4-1', text:'level 3-21-4-1'} +, {id:'21-4-2', text:'level 3-21-4-2'} +, {id:'21-4-3', text:'level 3-21-4-3'} +, {id:'21-4-4', text:'level 3-21-4-4'} +, {id:'21-4-5', text:'level 3-21-4-5'} +, {id:'21-4-6', text:'level 3-21-4-6'} +, {id:'21-4-7', text:'level 3-21-4-7'} +, {id:'21-4-8', text:'level 3-21-4-8'} +, {id:'21-4-9', text:'level 3-21-4-9'} +]} +, {id:'21-5-10', text:'level 2-21-5', item:[ + {id:'21-5-0', text:'level 3-21-5-0'} +, {id:'21-5-1', text:'level 3-21-5-1'} +, {id:'21-5-2', text:'level 3-21-5-2'} +, {id:'21-5-3', text:'level 3-21-5-3'} +, {id:'21-5-4', text:'level 3-21-5-4'} +, {id:'21-5-5', text:'level 3-21-5-5'} +, {id:'21-5-6', text:'level 3-21-5-6'} +, {id:'21-5-7', text:'level 3-21-5-7'} +, {id:'21-5-8', text:'level 3-21-5-8'} +, {id:'21-5-9', text:'level 3-21-5-9'} +]} +, {id:'21-6-10', text:'level 2-21-6', item:[ + {id:'21-6-0', text:'level 3-21-6-0'} +, {id:'21-6-1', text:'level 3-21-6-1'} +, {id:'21-6-2', text:'level 3-21-6-2'} +, {id:'21-6-3', text:'level 3-21-6-3'} +, {id:'21-6-4', text:'level 3-21-6-4'} +, {id:'21-6-5', text:'level 3-21-6-5'} +, {id:'21-6-6', text:'level 3-21-6-6'} +, {id:'21-6-7', text:'level 3-21-6-7'} +, {id:'21-6-8', text:'level 3-21-6-8'} +, {id:'21-6-9', text:'level 3-21-6-9'} +]} +, {id:'21-7-10', text:'level 2-21-7', item:[ + {id:'21-7-0', text:'level 3-21-7-0'} +, {id:'21-7-1', text:'level 3-21-7-1'} +, {id:'21-7-2', text:'level 3-21-7-2'} +, {id:'21-7-3', text:'level 3-21-7-3'} +, {id:'21-7-4', text:'level 3-21-7-4'} +, {id:'21-7-5', text:'level 3-21-7-5'} +, {id:'21-7-6', text:'level 3-21-7-6'} +, {id:'21-7-7', text:'level 3-21-7-7'} +, {id:'21-7-8', text:'level 3-21-7-8'} +, {id:'21-7-9', text:'level 3-21-7-9'} +]} +, {id:'21-8-10', text:'level 2-21-8', item:[ + {id:'21-8-0', text:'level 3-21-8-0'} +, {id:'21-8-1', text:'level 3-21-8-1'} +, {id:'21-8-2', text:'level 3-21-8-2'} +, {id:'21-8-3', text:'level 3-21-8-3'} +, {id:'21-8-4', text:'level 3-21-8-4'} +, {id:'21-8-5', text:'level 3-21-8-5'} +, {id:'21-8-6', text:'level 3-21-8-6'} +, {id:'21-8-7', text:'level 3-21-8-7'} +, {id:'21-8-8', text:'level 3-21-8-8'} +, {id:'21-8-9', text:'level 3-21-8-9'} +]} +, {id:'21-9-10', text:'level 2-21-9', item:[ + {id:'21-9-0', text:'level 3-21-9-0'} +, {id:'21-9-1', text:'level 3-21-9-1'} +, {id:'21-9-2', text:'level 3-21-9-2'} +, {id:'21-9-3', text:'level 3-21-9-3'} +, {id:'21-9-4', text:'level 3-21-9-4'} +, {id:'21-9-5', text:'level 3-21-9-5'} +, {id:'21-9-6', text:'level 3-21-9-6'} +, {id:'21-9-7', text:'level 3-21-9-7'} +, {id:'21-9-8', text:'level 3-21-9-8'} +, {id:'21-9-9', text:'level 3-21-9-9'} +]} +, {id:'21-10-10', text:'level 2-21-10', item:[ + {id:'21-10-0', text:'level 3-21-10-0'} +, {id:'21-10-1', text:'level 3-21-10-1'} +, {id:'21-10-2', text:'level 3-21-10-2'} +, {id:'21-10-3', text:'level 3-21-10-3'} +, {id:'21-10-4', text:'level 3-21-10-4'} +, {id:'21-10-5', text:'level 3-21-10-5'} +, {id:'21-10-6', text:'level 3-21-10-6'} +, {id:'21-10-7', text:'level 3-21-10-7'} +, {id:'21-10-8', text:'level 3-21-10-8'} +, {id:'21-10-9', text:'level 3-21-10-9'} +]} +, {id:'21-11-10', text:'level 2-21-11', item:[ + {id:'21-11-0', text:'level 3-21-11-0'} +, {id:'21-11-1', text:'level 3-21-11-1'} +, {id:'21-11-2', text:'level 3-21-11-2'} +, {id:'21-11-3', text:'level 3-21-11-3'} +, {id:'21-11-4', text:'level 3-21-11-4'} +, {id:'21-11-5', text:'level 3-21-11-5'} +, {id:'21-11-6', text:'level 3-21-11-6'} +, {id:'21-11-7', text:'level 3-21-11-7'} +, {id:'21-11-8', text:'level 3-21-11-8'} +, {id:'21-11-9', text:'level 3-21-11-9'} +]} +, {id:'21-12-10', text:'level 2-21-12', item:[ + {id:'21-12-0', text:'level 3-21-12-0'} +, {id:'21-12-1', text:'level 3-21-12-1'} +, {id:'21-12-2', text:'level 3-21-12-2'} +, {id:'21-12-3', text:'level 3-21-12-3'} +, {id:'21-12-4', text:'level 3-21-12-4'} +, {id:'21-12-5', text:'level 3-21-12-5'} +, {id:'21-12-6', text:'level 3-21-12-6'} +, {id:'21-12-7', text:'level 3-21-12-7'} +, {id:'21-12-8', text:'level 3-21-12-8'} +, {id:'21-12-9', text:'level 3-21-12-9'} +]} +, {id:'21-13-10', text:'level 2-21-13', item:[ + {id:'21-13-0', text:'level 3-21-13-0'} +, {id:'21-13-1', text:'level 3-21-13-1'} +, {id:'21-13-2', text:'level 3-21-13-2'} +, {id:'21-13-3', text:'level 3-21-13-3'} +, {id:'21-13-4', text:'level 3-21-13-4'} +, {id:'21-13-5', text:'level 3-21-13-5'} +, {id:'21-13-6', text:'level 3-21-13-6'} +, {id:'21-13-7', text:'level 3-21-13-7'} +, {id:'21-13-8', text:'level 3-21-13-8'} +, {id:'21-13-9', text:'level 3-21-13-9'} +]} +, {id:'21-14-10', text:'level 2-21-14', item:[ + {id:'21-14-0', text:'level 3-21-14-0'} +, {id:'21-14-1', text:'level 3-21-14-1'} +, {id:'21-14-2', text:'level 3-21-14-2'} +, {id:'21-14-3', text:'level 3-21-14-3'} +, {id:'21-14-4', text:'level 3-21-14-4'} +, {id:'21-14-5', text:'level 3-21-14-5'} +, {id:'21-14-6', text:'level 3-21-14-6'} +, {id:'21-14-7', text:'level 3-21-14-7'} +, {id:'21-14-8', text:'level 3-21-14-8'} +, {id:'21-14-9', text:'level 3-21-14-9'} +]} +, {id:'21-15-10', text:'level 2-21-15', item:[ + {id:'21-15-0', text:'level 3-21-15-0'} +, {id:'21-15-1', text:'level 3-21-15-1'} +, {id:'21-15-2', text:'level 3-21-15-2'} +, {id:'21-15-3', text:'level 3-21-15-3'} +, {id:'21-15-4', text:'level 3-21-15-4'} +, {id:'21-15-5', text:'level 3-21-15-5'} +, {id:'21-15-6', text:'level 3-21-15-6'} +, {id:'21-15-7', text:'level 3-21-15-7'} +, {id:'21-15-8', text:'level 3-21-15-8'} +, {id:'21-15-9', text:'level 3-21-15-9'} +]} +, {id:'21-16-10', text:'level 2-21-16', item:[ + {id:'21-16-0', text:'level 3-21-16-0'} +, {id:'21-16-1', text:'level 3-21-16-1'} +, {id:'21-16-2', text:'level 3-21-16-2'} +, {id:'21-16-3', text:'level 3-21-16-3'} +, {id:'21-16-4', text:'level 3-21-16-4'} +, {id:'21-16-5', text:'level 3-21-16-5'} +, {id:'21-16-6', text:'level 3-21-16-6'} +, {id:'21-16-7', text:'level 3-21-16-7'} +, {id:'21-16-8', text:'level 3-21-16-8'} +, {id:'21-16-9', text:'level 3-21-16-9'} +]} +, {id:'21-17-10', text:'level 2-21-17', item:[ + {id:'21-17-0', text:'level 3-21-17-0'} +, {id:'21-17-1', text:'level 3-21-17-1'} +, {id:'21-17-2', text:'level 3-21-17-2'} +, {id:'21-17-3', text:'level 3-21-17-3'} +, {id:'21-17-4', text:'level 3-21-17-4'} +, {id:'21-17-5', text:'level 3-21-17-5'} +, {id:'21-17-6', text:'level 3-21-17-6'} +, {id:'21-17-7', text:'level 3-21-17-7'} +, {id:'21-17-8', text:'level 3-21-17-8'} +, {id:'21-17-9', text:'level 3-21-17-9'} +]} +, {id:'21-18-10', text:'level 2-21-18', item:[ + {id:'21-18-0', text:'level 3-21-18-0'} +, {id:'21-18-1', text:'level 3-21-18-1'} +, {id:'21-18-2', text:'level 3-21-18-2'} +, {id:'21-18-3', text:'level 3-21-18-3'} +, {id:'21-18-4', text:'level 3-21-18-4'} +, {id:'21-18-5', text:'level 3-21-18-5'} +, {id:'21-18-6', text:'level 3-21-18-6'} +, {id:'21-18-7', text:'level 3-21-18-7'} +, {id:'21-18-8', text:'level 3-21-18-8'} +, {id:'21-18-9', text:'level 3-21-18-9'} +]} +, {id:'21-19-10', text:'level 2-21-19', item:[ + {id:'21-19-0', text:'level 3-21-19-0'} +, {id:'21-19-1', text:'level 3-21-19-1'} +, {id:'21-19-2', text:'level 3-21-19-2'} +, {id:'21-19-3', text:'level 3-21-19-3'} +, {id:'21-19-4', text:'level 3-21-19-4'} +, {id:'21-19-5', text:'level 3-21-19-5'} +, {id:'21-19-6', text:'level 3-21-19-6'} +, {id:'21-19-7', text:'level 3-21-19-7'} +, {id:'21-19-8', text:'level 3-21-19-8'} +, {id:'21-19-9', text:'level 3-21-19-9'} +]} +]} +,{id:'22-20-10', text:'level 1-22', item:[ + {id:'22-0-10', text:'level 2-22-0', item:[ + {id:'22-0-0', text:'level 3-22-0-0'} +, {id:'22-0-1', text:'level 3-22-0-1'} +, {id:'22-0-2', text:'level 3-22-0-2'} +, {id:'22-0-3', text:'level 3-22-0-3'} +, {id:'22-0-4', text:'level 3-22-0-4'} +, {id:'22-0-5', text:'level 3-22-0-5'} +, {id:'22-0-6', text:'level 3-22-0-6'} +, {id:'22-0-7', text:'level 3-22-0-7'} +, {id:'22-0-8', text:'level 3-22-0-8'} +, {id:'22-0-9', text:'level 3-22-0-9'} +]} +, {id:'22-1-10', text:'level 2-22-1', item:[ + {id:'22-1-0', text:'level 3-22-1-0'} +, {id:'22-1-1', text:'level 3-22-1-1'} +, {id:'22-1-2', text:'level 3-22-1-2'} +, {id:'22-1-3', text:'level 3-22-1-3'} +, {id:'22-1-4', text:'level 3-22-1-4'} +, {id:'22-1-5', text:'level 3-22-1-5'} +, {id:'22-1-6', text:'level 3-22-1-6'} +, {id:'22-1-7', text:'level 3-22-1-7'} +, {id:'22-1-8', text:'level 3-22-1-8'} +, {id:'22-1-9', text:'level 3-22-1-9'} +]} +, {id:'22-2-10', text:'level 2-22-2', item:[ + {id:'22-2-0', text:'level 3-22-2-0'} +, {id:'22-2-1', text:'level 3-22-2-1'} +, {id:'22-2-2', text:'level 3-22-2-2'} +, {id:'22-2-3', text:'level 3-22-2-3'} +, {id:'22-2-4', text:'level 3-22-2-4'} +, {id:'22-2-5', text:'level 3-22-2-5'} +, {id:'22-2-6', text:'level 3-22-2-6'} +, {id:'22-2-7', text:'level 3-22-2-7'} +, {id:'22-2-8', text:'level 3-22-2-8'} +, {id:'22-2-9', text:'level 3-22-2-9'} +]} +, {id:'22-3-10', text:'level 2-22-3', item:[ + {id:'22-3-0', text:'level 3-22-3-0'} +, {id:'22-3-1', text:'level 3-22-3-1'} +, {id:'22-3-2', text:'level 3-22-3-2'} +, {id:'22-3-3', text:'level 3-22-3-3'} +, {id:'22-3-4', text:'level 3-22-3-4'} +, {id:'22-3-5', text:'level 3-22-3-5'} +, {id:'22-3-6', text:'level 3-22-3-6'} +, {id:'22-3-7', text:'level 3-22-3-7'} +, {id:'22-3-8', text:'level 3-22-3-8'} +, {id:'22-3-9', text:'level 3-22-3-9'} +]} +, {id:'22-4-10', text:'level 2-22-4', item:[ + {id:'22-4-0', text:'level 3-22-4-0'} +, {id:'22-4-1', text:'level 3-22-4-1'} +, {id:'22-4-2', text:'level 3-22-4-2'} +, {id:'22-4-3', text:'level 3-22-4-3'} +, {id:'22-4-4', text:'level 3-22-4-4'} +, {id:'22-4-5', text:'level 3-22-4-5'} +, {id:'22-4-6', text:'level 3-22-4-6'} +, {id:'22-4-7', text:'level 3-22-4-7'} +, {id:'22-4-8', text:'level 3-22-4-8'} +, {id:'22-4-9', text:'level 3-22-4-9'} +]} +, {id:'22-5-10', text:'level 2-22-5', item:[ + {id:'22-5-0', text:'level 3-22-5-0'} +, {id:'22-5-1', text:'level 3-22-5-1'} +, {id:'22-5-2', text:'level 3-22-5-2'} +, {id:'22-5-3', text:'level 3-22-5-3'} +, {id:'22-5-4', text:'level 3-22-5-4'} +, {id:'22-5-5', text:'level 3-22-5-5'} +, {id:'22-5-6', text:'level 3-22-5-6'} +, {id:'22-5-7', text:'level 3-22-5-7'} +, {id:'22-5-8', text:'level 3-22-5-8'} +, {id:'22-5-9', text:'level 3-22-5-9'} +]} +, {id:'22-6-10', text:'level 2-22-6', item:[ + {id:'22-6-0', text:'level 3-22-6-0'} +, {id:'22-6-1', text:'level 3-22-6-1'} +, {id:'22-6-2', text:'level 3-22-6-2'} +, {id:'22-6-3', text:'level 3-22-6-3'} +, {id:'22-6-4', text:'level 3-22-6-4'} +, {id:'22-6-5', text:'level 3-22-6-5'} +, {id:'22-6-6', text:'level 3-22-6-6'} +, {id:'22-6-7', text:'level 3-22-6-7'} +, {id:'22-6-8', text:'level 3-22-6-8'} +, {id:'22-6-9', text:'level 3-22-6-9'} +]} +, {id:'22-7-10', text:'level 2-22-7', item:[ + {id:'22-7-0', text:'level 3-22-7-0'} +, {id:'22-7-1', text:'level 3-22-7-1'} +, {id:'22-7-2', text:'level 3-22-7-2'} +, {id:'22-7-3', text:'level 3-22-7-3'} +, {id:'22-7-4', text:'level 3-22-7-4'} +, {id:'22-7-5', text:'level 3-22-7-5'} +, {id:'22-7-6', text:'level 3-22-7-6'} +, {id:'22-7-7', text:'level 3-22-7-7'} +, {id:'22-7-8', text:'level 3-22-7-8'} +, {id:'22-7-9', text:'level 3-22-7-9'} +]} +, {id:'22-8-10', text:'level 2-22-8', item:[ + {id:'22-8-0', text:'level 3-22-8-0'} +, {id:'22-8-1', text:'level 3-22-8-1'} +, {id:'22-8-2', text:'level 3-22-8-2'} +, {id:'22-8-3', text:'level 3-22-8-3'} +, {id:'22-8-4', text:'level 3-22-8-4'} +, {id:'22-8-5', text:'level 3-22-8-5'} +, {id:'22-8-6', text:'level 3-22-8-6'} +, {id:'22-8-7', text:'level 3-22-8-7'} +, {id:'22-8-8', text:'level 3-22-8-8'} +, {id:'22-8-9', text:'level 3-22-8-9'} +]} +, {id:'22-9-10', text:'level 2-22-9', item:[ + {id:'22-9-0', text:'level 3-22-9-0'} +, {id:'22-9-1', text:'level 3-22-9-1'} +, {id:'22-9-2', text:'level 3-22-9-2'} +, {id:'22-9-3', text:'level 3-22-9-3'} +, {id:'22-9-4', text:'level 3-22-9-4'} +, {id:'22-9-5', text:'level 3-22-9-5'} +, {id:'22-9-6', text:'level 3-22-9-6'} +, {id:'22-9-7', text:'level 3-22-9-7'} +, {id:'22-9-8', text:'level 3-22-9-8'} +, {id:'22-9-9', text:'level 3-22-9-9'} +]} +, {id:'22-10-10', text:'level 2-22-10', item:[ + {id:'22-10-0', text:'level 3-22-10-0'} +, {id:'22-10-1', text:'level 3-22-10-1'} +, {id:'22-10-2', text:'level 3-22-10-2'} +, {id:'22-10-3', text:'level 3-22-10-3'} +, {id:'22-10-4', text:'level 3-22-10-4'} +, {id:'22-10-5', text:'level 3-22-10-5'} +, {id:'22-10-6', text:'level 3-22-10-6'} +, {id:'22-10-7', text:'level 3-22-10-7'} +, {id:'22-10-8', text:'level 3-22-10-8'} +, {id:'22-10-9', text:'level 3-22-10-9'} +]} +, {id:'22-11-10', text:'level 2-22-11', item:[ + {id:'22-11-0', text:'level 3-22-11-0'} +, {id:'22-11-1', text:'level 3-22-11-1'} +, {id:'22-11-2', text:'level 3-22-11-2'} +, {id:'22-11-3', text:'level 3-22-11-3'} +, {id:'22-11-4', text:'level 3-22-11-4'} +, {id:'22-11-5', text:'level 3-22-11-5'} +, {id:'22-11-6', text:'level 3-22-11-6'} +, {id:'22-11-7', text:'level 3-22-11-7'} +, {id:'22-11-8', text:'level 3-22-11-8'} +, {id:'22-11-9', text:'level 3-22-11-9'} +]} +, {id:'22-12-10', text:'level 2-22-12', item:[ + {id:'22-12-0', text:'level 3-22-12-0'} +, {id:'22-12-1', text:'level 3-22-12-1'} +, {id:'22-12-2', text:'level 3-22-12-2'} +, {id:'22-12-3', text:'level 3-22-12-3'} +, {id:'22-12-4', text:'level 3-22-12-4'} +, {id:'22-12-5', text:'level 3-22-12-5'} +, {id:'22-12-6', text:'level 3-22-12-6'} +, {id:'22-12-7', text:'level 3-22-12-7'} +, {id:'22-12-8', text:'level 3-22-12-8'} +, {id:'22-12-9', text:'level 3-22-12-9'} +]} +, {id:'22-13-10', text:'level 2-22-13', item:[ + {id:'22-13-0', text:'level 3-22-13-0'} +, {id:'22-13-1', text:'level 3-22-13-1'} +, {id:'22-13-2', text:'level 3-22-13-2'} +, {id:'22-13-3', text:'level 3-22-13-3'} +, {id:'22-13-4', text:'level 3-22-13-4'} +, {id:'22-13-5', text:'level 3-22-13-5'} +, {id:'22-13-6', text:'level 3-22-13-6'} +, {id:'22-13-7', text:'level 3-22-13-7'} +, {id:'22-13-8', text:'level 3-22-13-8'} +, {id:'22-13-9', text:'level 3-22-13-9'} +]} +, {id:'22-14-10', text:'level 2-22-14', item:[ + {id:'22-14-0', text:'level 3-22-14-0'} +, {id:'22-14-1', text:'level 3-22-14-1'} +, {id:'22-14-2', text:'level 3-22-14-2'} +, {id:'22-14-3', text:'level 3-22-14-3'} +, {id:'22-14-4', text:'level 3-22-14-4'} +, {id:'22-14-5', text:'level 3-22-14-5'} +, {id:'22-14-6', text:'level 3-22-14-6'} +, {id:'22-14-7', text:'level 3-22-14-7'} +, {id:'22-14-8', text:'level 3-22-14-8'} +, {id:'22-14-9', text:'level 3-22-14-9'} +]} +, {id:'22-15-10', text:'level 2-22-15', item:[ + {id:'22-15-0', text:'level 3-22-15-0'} +, {id:'22-15-1', text:'level 3-22-15-1'} +, {id:'22-15-2', text:'level 3-22-15-2'} +, {id:'22-15-3', text:'level 3-22-15-3'} +, {id:'22-15-4', text:'level 3-22-15-4'} +, {id:'22-15-5', text:'level 3-22-15-5'} +, {id:'22-15-6', text:'level 3-22-15-6'} +, {id:'22-15-7', text:'level 3-22-15-7'} +, {id:'22-15-8', text:'level 3-22-15-8'} +, {id:'22-15-9', text:'level 3-22-15-9'} +]} +, {id:'22-16-10', text:'level 2-22-16', item:[ + {id:'22-16-0', text:'level 3-22-16-0'} +, {id:'22-16-1', text:'level 3-22-16-1'} +, {id:'22-16-2', text:'level 3-22-16-2'} +, {id:'22-16-3', text:'level 3-22-16-3'} +, {id:'22-16-4', text:'level 3-22-16-4'} +, {id:'22-16-5', text:'level 3-22-16-5'} +, {id:'22-16-6', text:'level 3-22-16-6'} +, {id:'22-16-7', text:'level 3-22-16-7'} +, {id:'22-16-8', text:'level 3-22-16-8'} +, {id:'22-16-9', text:'level 3-22-16-9'} +]} +, {id:'22-17-10', text:'level 2-22-17', item:[ + {id:'22-17-0', text:'level 3-22-17-0'} +, {id:'22-17-1', text:'level 3-22-17-1'} +, {id:'22-17-2', text:'level 3-22-17-2'} +, {id:'22-17-3', text:'level 3-22-17-3'} +, {id:'22-17-4', text:'level 3-22-17-4'} +, {id:'22-17-5', text:'level 3-22-17-5'} +, {id:'22-17-6', text:'level 3-22-17-6'} +, {id:'22-17-7', text:'level 3-22-17-7'} +, {id:'22-17-8', text:'level 3-22-17-8'} +, {id:'22-17-9', text:'level 3-22-17-9'} +]} +, {id:'22-18-10', text:'level 2-22-18', item:[ + {id:'22-18-0', text:'level 3-22-18-0'} +, {id:'22-18-1', text:'level 3-22-18-1'} +, {id:'22-18-2', text:'level 3-22-18-2'} +, {id:'22-18-3', text:'level 3-22-18-3'} +, {id:'22-18-4', text:'level 3-22-18-4'} +, {id:'22-18-5', text:'level 3-22-18-5'} +, {id:'22-18-6', text:'level 3-22-18-6'} +, {id:'22-18-7', text:'level 3-22-18-7'} +, {id:'22-18-8', text:'level 3-22-18-8'} +, {id:'22-18-9', text:'level 3-22-18-9'} +]} +, {id:'22-19-10', text:'level 2-22-19', item:[ + {id:'22-19-0', text:'level 3-22-19-0'} +, {id:'22-19-1', text:'level 3-22-19-1'} +, {id:'22-19-2', text:'level 3-22-19-2'} +, {id:'22-19-3', text:'level 3-22-19-3'} +, {id:'22-19-4', text:'level 3-22-19-4'} +, {id:'22-19-5', text:'level 3-22-19-5'} +, {id:'22-19-6', text:'level 3-22-19-6'} +, {id:'22-19-7', text:'level 3-22-19-7'} +, {id:'22-19-8', text:'level 3-22-19-8'} +, {id:'22-19-9', text:'level 3-22-19-9'} +]} +]} +,{id:'23-20-10', text:'level 1-23', item:[ + {id:'23-0-10', text:'level 2-23-0', item:[ + {id:'23-0-0', text:'level 3-23-0-0'} +, {id:'23-0-1', text:'level 3-23-0-1'} +, {id:'23-0-2', text:'level 3-23-0-2'} +, {id:'23-0-3', text:'level 3-23-0-3'} +, {id:'23-0-4', text:'level 3-23-0-4'} +, {id:'23-0-5', text:'level 3-23-0-5'} +, {id:'23-0-6', text:'level 3-23-0-6'} +, {id:'23-0-7', text:'level 3-23-0-7'} +, {id:'23-0-8', text:'level 3-23-0-8'} +, {id:'23-0-9', text:'level 3-23-0-9'} +]} +, {id:'23-1-10', text:'level 2-23-1', item:[ + {id:'23-1-0', text:'level 3-23-1-0'} +, {id:'23-1-1', text:'level 3-23-1-1'} +, {id:'23-1-2', text:'level 3-23-1-2'} +, {id:'23-1-3', text:'level 3-23-1-3'} +, {id:'23-1-4', text:'level 3-23-1-4'} +, {id:'23-1-5', text:'level 3-23-1-5'} +, {id:'23-1-6', text:'level 3-23-1-6'} +, {id:'23-1-7', text:'level 3-23-1-7'} +, {id:'23-1-8', text:'level 3-23-1-8'} +, {id:'23-1-9', text:'level 3-23-1-9'} +]} +, {id:'23-2-10', text:'level 2-23-2', item:[ + {id:'23-2-0', text:'level 3-23-2-0'} +, {id:'23-2-1', text:'level 3-23-2-1'} +, {id:'23-2-2', text:'level 3-23-2-2'} +, {id:'23-2-3', text:'level 3-23-2-3'} +, {id:'23-2-4', text:'level 3-23-2-4'} +, {id:'23-2-5', text:'level 3-23-2-5'} +, {id:'23-2-6', text:'level 3-23-2-6'} +, {id:'23-2-7', text:'level 3-23-2-7'} +, {id:'23-2-8', text:'level 3-23-2-8'} +, {id:'23-2-9', text:'level 3-23-2-9'} +]} +, {id:'23-3-10', text:'level 2-23-3', item:[ + {id:'23-3-0', text:'level 3-23-3-0'} +, {id:'23-3-1', text:'level 3-23-3-1'} +, {id:'23-3-2', text:'level 3-23-3-2'} +, {id:'23-3-3', text:'level 3-23-3-3'} +, {id:'23-3-4', text:'level 3-23-3-4'} +, {id:'23-3-5', text:'level 3-23-3-5'} +, {id:'23-3-6', text:'level 3-23-3-6'} +, {id:'23-3-7', text:'level 3-23-3-7'} +, {id:'23-3-8', text:'level 3-23-3-8'} +, {id:'23-3-9', text:'level 3-23-3-9'} +]} +, {id:'23-4-10', text:'level 2-23-4', item:[ + {id:'23-4-0', text:'level 3-23-4-0'} +, {id:'23-4-1', text:'level 3-23-4-1'} +, {id:'23-4-2', text:'level 3-23-4-2'} +, {id:'23-4-3', text:'level 3-23-4-3'} +, {id:'23-4-4', text:'level 3-23-4-4'} +, {id:'23-4-5', text:'level 3-23-4-5'} +, {id:'23-4-6', text:'level 3-23-4-6'} +, {id:'23-4-7', text:'level 3-23-4-7'} +, {id:'23-4-8', text:'level 3-23-4-8'} +, {id:'23-4-9', text:'level 3-23-4-9'} +]} +, {id:'23-5-10', text:'level 2-23-5', item:[ + {id:'23-5-0', text:'level 3-23-5-0'} +, {id:'23-5-1', text:'level 3-23-5-1'} +, {id:'23-5-2', text:'level 3-23-5-2'} +, {id:'23-5-3', text:'level 3-23-5-3'} +, {id:'23-5-4', text:'level 3-23-5-4'} +, {id:'23-5-5', text:'level 3-23-5-5'} +, {id:'23-5-6', text:'level 3-23-5-6'} +, {id:'23-5-7', text:'level 3-23-5-7'} +, {id:'23-5-8', text:'level 3-23-5-8'} +, {id:'23-5-9', text:'level 3-23-5-9'} +]} +, {id:'23-6-10', text:'level 2-23-6', item:[ + {id:'23-6-0', text:'level 3-23-6-0'} +, {id:'23-6-1', text:'level 3-23-6-1'} +, {id:'23-6-2', text:'level 3-23-6-2'} +, {id:'23-6-3', text:'level 3-23-6-3'} +, {id:'23-6-4', text:'level 3-23-6-4'} +, {id:'23-6-5', text:'level 3-23-6-5'} +, {id:'23-6-6', text:'level 3-23-6-6'} +, {id:'23-6-7', text:'level 3-23-6-7'} +, {id:'23-6-8', text:'level 3-23-6-8'} +, {id:'23-6-9', text:'level 3-23-6-9'} +]} +, {id:'23-7-10', text:'level 2-23-7', item:[ + {id:'23-7-0', text:'level 3-23-7-0'} +, {id:'23-7-1', text:'level 3-23-7-1'} +, {id:'23-7-2', text:'level 3-23-7-2'} +, {id:'23-7-3', text:'level 3-23-7-3'} +, {id:'23-7-4', text:'level 3-23-7-4'} +, {id:'23-7-5', text:'level 3-23-7-5'} +, {id:'23-7-6', text:'level 3-23-7-6'} +, {id:'23-7-7', text:'level 3-23-7-7'} +, {id:'23-7-8', text:'level 3-23-7-8'} +, {id:'23-7-9', text:'level 3-23-7-9'} +]} +, {id:'23-8-10', text:'level 2-23-8', item:[ + {id:'23-8-0', text:'level 3-23-8-0'} +, {id:'23-8-1', text:'level 3-23-8-1'} +, {id:'23-8-2', text:'level 3-23-8-2'} +, {id:'23-8-3', text:'level 3-23-8-3'} +, {id:'23-8-4', text:'level 3-23-8-4'} +, {id:'23-8-5', text:'level 3-23-8-5'} +, {id:'23-8-6', text:'level 3-23-8-6'} +, {id:'23-8-7', text:'level 3-23-8-7'} +, {id:'23-8-8', text:'level 3-23-8-8'} +, {id:'23-8-9', text:'level 3-23-8-9'} +]} +, {id:'23-9-10', text:'level 2-23-9', item:[ + {id:'23-9-0', text:'level 3-23-9-0'} +, {id:'23-9-1', text:'level 3-23-9-1'} +, {id:'23-9-2', text:'level 3-23-9-2'} +, {id:'23-9-3', text:'level 3-23-9-3'} +, {id:'23-9-4', text:'level 3-23-9-4'} +, {id:'23-9-5', text:'level 3-23-9-5'} +, {id:'23-9-6', text:'level 3-23-9-6'} +, {id:'23-9-7', text:'level 3-23-9-7'} +, {id:'23-9-8', text:'level 3-23-9-8'} +, {id:'23-9-9', text:'level 3-23-9-9'} +]} +, {id:'23-10-10', text:'level 2-23-10', item:[ + {id:'23-10-0', text:'level 3-23-10-0'} +, {id:'23-10-1', text:'level 3-23-10-1'} +, {id:'23-10-2', text:'level 3-23-10-2'} +, {id:'23-10-3', text:'level 3-23-10-3'} +, {id:'23-10-4', text:'level 3-23-10-4'} +, {id:'23-10-5', text:'level 3-23-10-5'} +, {id:'23-10-6', text:'level 3-23-10-6'} +, {id:'23-10-7', text:'level 3-23-10-7'} +, {id:'23-10-8', text:'level 3-23-10-8'} +, {id:'23-10-9', text:'level 3-23-10-9'} +]} +, {id:'23-11-10', text:'level 2-23-11', item:[ + {id:'23-11-0', text:'level 3-23-11-0'} +, {id:'23-11-1', text:'level 3-23-11-1'} +, {id:'23-11-2', text:'level 3-23-11-2'} +, {id:'23-11-3', text:'level 3-23-11-3'} +, {id:'23-11-4', text:'level 3-23-11-4'} +, {id:'23-11-5', text:'level 3-23-11-5'} +, {id:'23-11-6', text:'level 3-23-11-6'} +, {id:'23-11-7', text:'level 3-23-11-7'} +, {id:'23-11-8', text:'level 3-23-11-8'} +, {id:'23-11-9', text:'level 3-23-11-9'} +]} +, {id:'23-12-10', text:'level 2-23-12', item:[ + {id:'23-12-0', text:'level 3-23-12-0'} +, {id:'23-12-1', text:'level 3-23-12-1'} +, {id:'23-12-2', text:'level 3-23-12-2'} +, {id:'23-12-3', text:'level 3-23-12-3'} +, {id:'23-12-4', text:'level 3-23-12-4'} +, {id:'23-12-5', text:'level 3-23-12-5'} +, {id:'23-12-6', text:'level 3-23-12-6'} +, {id:'23-12-7', text:'level 3-23-12-7'} +, {id:'23-12-8', text:'level 3-23-12-8'} +, {id:'23-12-9', text:'level 3-23-12-9'} +]} +, {id:'23-13-10', text:'level 2-23-13', item:[ + {id:'23-13-0', text:'level 3-23-13-0'} +, {id:'23-13-1', text:'level 3-23-13-1'} +, {id:'23-13-2', text:'level 3-23-13-2'} +, {id:'23-13-3', text:'level 3-23-13-3'} +, {id:'23-13-4', text:'level 3-23-13-4'} +, {id:'23-13-5', text:'level 3-23-13-5'} +, {id:'23-13-6', text:'level 3-23-13-6'} +, {id:'23-13-7', text:'level 3-23-13-7'} +, {id:'23-13-8', text:'level 3-23-13-8'} +, {id:'23-13-9', text:'level 3-23-13-9'} +]} +, {id:'23-14-10', text:'level 2-23-14', item:[ + {id:'23-14-0', text:'level 3-23-14-0'} +, {id:'23-14-1', text:'level 3-23-14-1'} +, {id:'23-14-2', text:'level 3-23-14-2'} +, {id:'23-14-3', text:'level 3-23-14-3'} +, {id:'23-14-4', text:'level 3-23-14-4'} +, {id:'23-14-5', text:'level 3-23-14-5'} +, {id:'23-14-6', text:'level 3-23-14-6'} +, {id:'23-14-7', text:'level 3-23-14-7'} +, {id:'23-14-8', text:'level 3-23-14-8'} +, {id:'23-14-9', text:'level 3-23-14-9'} +]} +, {id:'23-15-10', text:'level 2-23-15', item:[ + {id:'23-15-0', text:'level 3-23-15-0'} +, {id:'23-15-1', text:'level 3-23-15-1'} +, {id:'23-15-2', text:'level 3-23-15-2'} +, {id:'23-15-3', text:'level 3-23-15-3'} +, {id:'23-15-4', text:'level 3-23-15-4'} +, {id:'23-15-5', text:'level 3-23-15-5'} +, {id:'23-15-6', text:'level 3-23-15-6'} +, {id:'23-15-7', text:'level 3-23-15-7'} +, {id:'23-15-8', text:'level 3-23-15-8'} +, {id:'23-15-9', text:'level 3-23-15-9'} +]} +, {id:'23-16-10', text:'level 2-23-16', item:[ + {id:'23-16-0', text:'level 3-23-16-0'} +, {id:'23-16-1', text:'level 3-23-16-1'} +, {id:'23-16-2', text:'level 3-23-16-2'} +, {id:'23-16-3', text:'level 3-23-16-3'} +, {id:'23-16-4', text:'level 3-23-16-4'} +, {id:'23-16-5', text:'level 3-23-16-5'} +, {id:'23-16-6', text:'level 3-23-16-6'} +, {id:'23-16-7', text:'level 3-23-16-7'} +, {id:'23-16-8', text:'level 3-23-16-8'} +, {id:'23-16-9', text:'level 3-23-16-9'} +]} +, {id:'23-17-10', text:'level 2-23-17', item:[ + {id:'23-17-0', text:'level 3-23-17-0'} +, {id:'23-17-1', text:'level 3-23-17-1'} +, {id:'23-17-2', text:'level 3-23-17-2'} +, {id:'23-17-3', text:'level 3-23-17-3'} +, {id:'23-17-4', text:'level 3-23-17-4'} +, {id:'23-17-5', text:'level 3-23-17-5'} +, {id:'23-17-6', text:'level 3-23-17-6'} +, {id:'23-17-7', text:'level 3-23-17-7'} +, {id:'23-17-8', text:'level 3-23-17-8'} +, {id:'23-17-9', text:'level 3-23-17-9'} +]} +, {id:'23-18-10', text:'level 2-23-18', item:[ + {id:'23-18-0', text:'level 3-23-18-0'} +, {id:'23-18-1', text:'level 3-23-18-1'} +, {id:'23-18-2', text:'level 3-23-18-2'} +, {id:'23-18-3', text:'level 3-23-18-3'} +, {id:'23-18-4', text:'level 3-23-18-4'} +, {id:'23-18-5', text:'level 3-23-18-5'} +, {id:'23-18-6', text:'level 3-23-18-6'} +, {id:'23-18-7', text:'level 3-23-18-7'} +, {id:'23-18-8', text:'level 3-23-18-8'} +, {id:'23-18-9', text:'level 3-23-18-9'} +]} +, {id:'23-19-10', text:'level 2-23-19', item:[ + {id:'23-19-0', text:'level 3-23-19-0'} +, {id:'23-19-1', text:'level 3-23-19-1'} +, {id:'23-19-2', text:'level 3-23-19-2'} +, {id:'23-19-3', text:'level 3-23-19-3'} +, {id:'23-19-4', text:'level 3-23-19-4'} +, {id:'23-19-5', text:'level 3-23-19-5'} +, {id:'23-19-6', text:'level 3-23-19-6'} +, {id:'23-19-7', text:'level 3-23-19-7'} +, {id:'23-19-8', text:'level 3-23-19-8'} +, {id:'23-19-9', text:'level 3-23-19-9'} +]} +]} +,{id:'24-20-10', text:'level 1-24', item:[ + {id:'24-0-10', text:'level 2-24-0', item:[ + {id:'24-0-0', text:'level 3-24-0-0'} +, {id:'24-0-1', text:'level 3-24-0-1'} +, {id:'24-0-2', text:'level 3-24-0-2'} +, {id:'24-0-3', text:'level 3-24-0-3'} +, {id:'24-0-4', text:'level 3-24-0-4'} +, {id:'24-0-5', text:'level 3-24-0-5'} +, {id:'24-0-6', text:'level 3-24-0-6'} +, {id:'24-0-7', text:'level 3-24-0-7'} +, {id:'24-0-8', text:'level 3-24-0-8'} +, {id:'24-0-9', text:'level 3-24-0-9'} +]} +, {id:'24-1-10', text:'level 2-24-1', item:[ + {id:'24-1-0', text:'level 3-24-1-0'} +, {id:'24-1-1', text:'level 3-24-1-1'} +, {id:'24-1-2', text:'level 3-24-1-2'} +, {id:'24-1-3', text:'level 3-24-1-3'} +, {id:'24-1-4', text:'level 3-24-1-4'} +, {id:'24-1-5', text:'level 3-24-1-5'} +, {id:'24-1-6', text:'level 3-24-1-6'} +, {id:'24-1-7', text:'level 3-24-1-7'} +, {id:'24-1-8', text:'level 3-24-1-8'} +, {id:'24-1-9', text:'level 3-24-1-9'} +]} +, {id:'24-2-10', text:'level 2-24-2', item:[ + {id:'24-2-0', text:'level 3-24-2-0'} +, {id:'24-2-1', text:'level 3-24-2-1'} +, {id:'24-2-2', text:'level 3-24-2-2'} +, {id:'24-2-3', text:'level 3-24-2-3'} +, {id:'24-2-4', text:'level 3-24-2-4'} +, {id:'24-2-5', text:'level 3-24-2-5'} +, {id:'24-2-6', text:'level 3-24-2-6'} +, {id:'24-2-7', text:'level 3-24-2-7'} +, {id:'24-2-8', text:'level 3-24-2-8'} +, {id:'24-2-9', text:'level 3-24-2-9'} +]} +, {id:'24-3-10', text:'level 2-24-3', item:[ + {id:'24-3-0', text:'level 3-24-3-0'} +, {id:'24-3-1', text:'level 3-24-3-1'} +, {id:'24-3-2', text:'level 3-24-3-2'} +, {id:'24-3-3', text:'level 3-24-3-3'} +, {id:'24-3-4', text:'level 3-24-3-4'} +, {id:'24-3-5', text:'level 3-24-3-5'} +, {id:'24-3-6', text:'level 3-24-3-6'} +, {id:'24-3-7', text:'level 3-24-3-7'} +, {id:'24-3-8', text:'level 3-24-3-8'} +, {id:'24-3-9', text:'level 3-24-3-9'} +]} +, {id:'24-4-10', text:'level 2-24-4', item:[ + {id:'24-4-0', text:'level 3-24-4-0'} +, {id:'24-4-1', text:'level 3-24-4-1'} +, {id:'24-4-2', text:'level 3-24-4-2'} +, {id:'24-4-3', text:'level 3-24-4-3'} +, {id:'24-4-4', text:'level 3-24-4-4'} +, {id:'24-4-5', text:'level 3-24-4-5'} +, {id:'24-4-6', text:'level 3-24-4-6'} +, {id:'24-4-7', text:'level 3-24-4-7'} +, {id:'24-4-8', text:'level 3-24-4-8'} +, {id:'24-4-9', text:'level 3-24-4-9'} +]} +, {id:'24-5-10', text:'level 2-24-5', item:[ + {id:'24-5-0', text:'level 3-24-5-0'} +, {id:'24-5-1', text:'level 3-24-5-1'} +, {id:'24-5-2', text:'level 3-24-5-2'} +, {id:'24-5-3', text:'level 3-24-5-3'} +, {id:'24-5-4', text:'level 3-24-5-4'} +, {id:'24-5-5', text:'level 3-24-5-5'} +, {id:'24-5-6', text:'level 3-24-5-6'} +, {id:'24-5-7', text:'level 3-24-5-7'} +, {id:'24-5-8', text:'level 3-24-5-8'} +, {id:'24-5-9', text:'level 3-24-5-9'} +]} +, {id:'24-6-10', text:'level 2-24-6', item:[ + {id:'24-6-0', text:'level 3-24-6-0'} +, {id:'24-6-1', text:'level 3-24-6-1'} +, {id:'24-6-2', text:'level 3-24-6-2'} +, {id:'24-6-3', text:'level 3-24-6-3'} +, {id:'24-6-4', text:'level 3-24-6-4'} +, {id:'24-6-5', text:'level 3-24-6-5'} +, {id:'24-6-6', text:'level 3-24-6-6'} +, {id:'24-6-7', text:'level 3-24-6-7'} +, {id:'24-6-8', text:'level 3-24-6-8'} +, {id:'24-6-9', text:'level 3-24-6-9'} +]} +, {id:'24-7-10', text:'level 2-24-7', item:[ + {id:'24-7-0', text:'level 3-24-7-0'} +, {id:'24-7-1', text:'level 3-24-7-1'} +, {id:'24-7-2', text:'level 3-24-7-2'} +, {id:'24-7-3', text:'level 3-24-7-3'} +, {id:'24-7-4', text:'level 3-24-7-4'} +, {id:'24-7-5', text:'level 3-24-7-5'} +, {id:'24-7-6', text:'level 3-24-7-6'} +, {id:'24-7-7', text:'level 3-24-7-7'} +, {id:'24-7-8', text:'level 3-24-7-8'} +, {id:'24-7-9', text:'level 3-24-7-9'} +]} +, {id:'24-8-10', text:'level 2-24-8', item:[ + {id:'24-8-0', text:'level 3-24-8-0'} +, {id:'24-8-1', text:'level 3-24-8-1'} +, {id:'24-8-2', text:'level 3-24-8-2'} +, {id:'24-8-3', text:'level 3-24-8-3'} +, {id:'24-8-4', text:'level 3-24-8-4'} +, {id:'24-8-5', text:'level 3-24-8-5'} +, {id:'24-8-6', text:'level 3-24-8-6'} +, {id:'24-8-7', text:'level 3-24-8-7'} +, {id:'24-8-8', text:'level 3-24-8-8'} +, {id:'24-8-9', text:'level 3-24-8-9'} +]} +, {id:'24-9-10', text:'level 2-24-9', item:[ + {id:'24-9-0', text:'level 3-24-9-0'} +, {id:'24-9-1', text:'level 3-24-9-1'} +, {id:'24-9-2', text:'level 3-24-9-2'} +, {id:'24-9-3', text:'level 3-24-9-3'} +, {id:'24-9-4', text:'level 3-24-9-4'} +, {id:'24-9-5', text:'level 3-24-9-5'} +, {id:'24-9-6', text:'level 3-24-9-6'} +, {id:'24-9-7', text:'level 3-24-9-7'} +, {id:'24-9-8', text:'level 3-24-9-8'} +, {id:'24-9-9', text:'level 3-24-9-9'} +]} +, {id:'24-10-10', text:'level 2-24-10', item:[ + {id:'24-10-0', text:'level 3-24-10-0'} +, {id:'24-10-1', text:'level 3-24-10-1'} +, {id:'24-10-2', text:'level 3-24-10-2'} +, {id:'24-10-3', text:'level 3-24-10-3'} +, {id:'24-10-4', text:'level 3-24-10-4'} +, {id:'24-10-5', text:'level 3-24-10-5'} +, {id:'24-10-6', text:'level 3-24-10-6'} +, {id:'24-10-7', text:'level 3-24-10-7'} +, {id:'24-10-8', text:'level 3-24-10-8'} +, {id:'24-10-9', text:'level 3-24-10-9'} +]} +, {id:'24-11-10', text:'level 2-24-11', item:[ + {id:'24-11-0', text:'level 3-24-11-0'} +, {id:'24-11-1', text:'level 3-24-11-1'} +, {id:'24-11-2', text:'level 3-24-11-2'} +, {id:'24-11-3', text:'level 3-24-11-3'} +, {id:'24-11-4', text:'level 3-24-11-4'} +, {id:'24-11-5', text:'level 3-24-11-5'} +, {id:'24-11-6', text:'level 3-24-11-6'} +, {id:'24-11-7', text:'level 3-24-11-7'} +, {id:'24-11-8', text:'level 3-24-11-8'} +, {id:'24-11-9', text:'level 3-24-11-9'} +]} +, {id:'24-12-10', text:'level 2-24-12', item:[ + {id:'24-12-0', text:'level 3-24-12-0'} +, {id:'24-12-1', text:'level 3-24-12-1'} +, {id:'24-12-2', text:'level 3-24-12-2'} +, {id:'24-12-3', text:'level 3-24-12-3'} +, {id:'24-12-4', text:'level 3-24-12-4'} +, {id:'24-12-5', text:'level 3-24-12-5'} +, {id:'24-12-6', text:'level 3-24-12-6'} +, {id:'24-12-7', text:'level 3-24-12-7'} +, {id:'24-12-8', text:'level 3-24-12-8'} +, {id:'24-12-9', text:'level 3-24-12-9'} +]} +, {id:'24-13-10', text:'level 2-24-13', item:[ + {id:'24-13-0', text:'level 3-24-13-0'} +, {id:'24-13-1', text:'level 3-24-13-1'} +, {id:'24-13-2', text:'level 3-24-13-2'} +, {id:'24-13-3', text:'level 3-24-13-3'} +, {id:'24-13-4', text:'level 3-24-13-4'} +, {id:'24-13-5', text:'level 3-24-13-5'} +, {id:'24-13-6', text:'level 3-24-13-6'} +, {id:'24-13-7', text:'level 3-24-13-7'} +, {id:'24-13-8', text:'level 3-24-13-8'} +, {id:'24-13-9', text:'level 3-24-13-9'} +]} +, {id:'24-14-10', text:'level 2-24-14', item:[ + {id:'24-14-0', text:'level 3-24-14-0'} +, {id:'24-14-1', text:'level 3-24-14-1'} +, {id:'24-14-2', text:'level 3-24-14-2'} +, {id:'24-14-3', text:'level 3-24-14-3'} +, {id:'24-14-4', text:'level 3-24-14-4'} +, {id:'24-14-5', text:'level 3-24-14-5'} +, {id:'24-14-6', text:'level 3-24-14-6'} +, {id:'24-14-7', text:'level 3-24-14-7'} +, {id:'24-14-8', text:'level 3-24-14-8'} +, {id:'24-14-9', text:'level 3-24-14-9'} +]} +, {id:'24-15-10', text:'level 2-24-15', item:[ + {id:'24-15-0', text:'level 3-24-15-0'} +, {id:'24-15-1', text:'level 3-24-15-1'} +, {id:'24-15-2', text:'level 3-24-15-2'} +, {id:'24-15-3', text:'level 3-24-15-3'} +, {id:'24-15-4', text:'level 3-24-15-4'} +, {id:'24-15-5', text:'level 3-24-15-5'} +, {id:'24-15-6', text:'level 3-24-15-6'} +, {id:'24-15-7', text:'level 3-24-15-7'} +, {id:'24-15-8', text:'level 3-24-15-8'} +, {id:'24-15-9', text:'level 3-24-15-9'} +]} +, {id:'24-16-10', text:'level 2-24-16', item:[ + {id:'24-16-0', text:'level 3-24-16-0'} +, {id:'24-16-1', text:'level 3-24-16-1'} +, {id:'24-16-2', text:'level 3-24-16-2'} +, {id:'24-16-3', text:'level 3-24-16-3'} +, {id:'24-16-4', text:'level 3-24-16-4'} +, {id:'24-16-5', text:'level 3-24-16-5'} +, {id:'24-16-6', text:'level 3-24-16-6'} +, {id:'24-16-7', text:'level 3-24-16-7'} +, {id:'24-16-8', text:'level 3-24-16-8'} +, {id:'24-16-9', text:'level 3-24-16-9'} +]} +, {id:'24-17-10', text:'level 2-24-17', item:[ + {id:'24-17-0', text:'level 3-24-17-0'} +, {id:'24-17-1', text:'level 3-24-17-1'} +, {id:'24-17-2', text:'level 3-24-17-2'} +, {id:'24-17-3', text:'level 3-24-17-3'} +, {id:'24-17-4', text:'level 3-24-17-4'} +, {id:'24-17-5', text:'level 3-24-17-5'} +, {id:'24-17-6', text:'level 3-24-17-6'} +, {id:'24-17-7', text:'level 3-24-17-7'} +, {id:'24-17-8', text:'level 3-24-17-8'} +, {id:'24-17-9', text:'level 3-24-17-9'} +]} +, {id:'24-18-10', text:'level 2-24-18', item:[ + {id:'24-18-0', text:'level 3-24-18-0'} +, {id:'24-18-1', text:'level 3-24-18-1'} +, {id:'24-18-2', text:'level 3-24-18-2'} +, {id:'24-18-3', text:'level 3-24-18-3'} +, {id:'24-18-4', text:'level 3-24-18-4'} +, {id:'24-18-5', text:'level 3-24-18-5'} +, {id:'24-18-6', text:'level 3-24-18-6'} +, {id:'24-18-7', text:'level 3-24-18-7'} +, {id:'24-18-8', text:'level 3-24-18-8'} +, {id:'24-18-9', text:'level 3-24-18-9'} +]} +, {id:'24-19-10', text:'level 2-24-19', item:[ + {id:'24-19-0', text:'level 3-24-19-0'} +, {id:'24-19-1', text:'level 3-24-19-1'} +, {id:'24-19-2', text:'level 3-24-19-2'} +, {id:'24-19-3', text:'level 3-24-19-3'} +, {id:'24-19-4', text:'level 3-24-19-4'} +, {id:'24-19-5', text:'level 3-24-19-5'} +, {id:'24-19-6', text:'level 3-24-19-6'} +, {id:'24-19-7', text:'level 3-24-19-7'} +, {id:'24-19-8', text:'level 3-24-19-8'} +, {id:'24-19-9', text:'level 3-24-19-9'} +]} +]} +,{id:'25-20-10', text:'level 1-25', item:[ + {id:'25-0-10', text:'level 2-25-0', item:[ + {id:'25-0-0', text:'level 3-25-0-0'} +, {id:'25-0-1', text:'level 3-25-0-1'} +, {id:'25-0-2', text:'level 3-25-0-2'} +, {id:'25-0-3', text:'level 3-25-0-3'} +, {id:'25-0-4', text:'level 3-25-0-4'} +, {id:'25-0-5', text:'level 3-25-0-5'} +, {id:'25-0-6', text:'level 3-25-0-6'} +, {id:'25-0-7', text:'level 3-25-0-7'} +, {id:'25-0-8', text:'level 3-25-0-8'} +, {id:'25-0-9', text:'level 3-25-0-9'} +]} +, {id:'25-1-10', text:'level 2-25-1', item:[ + {id:'25-1-0', text:'level 3-25-1-0'} +, {id:'25-1-1', text:'level 3-25-1-1'} +, {id:'25-1-2', text:'level 3-25-1-2'} +, {id:'25-1-3', text:'level 3-25-1-3'} +, {id:'25-1-4', text:'level 3-25-1-4'} +, {id:'25-1-5', text:'level 3-25-1-5'} +, {id:'25-1-6', text:'level 3-25-1-6'} +, {id:'25-1-7', text:'level 3-25-1-7'} +, {id:'25-1-8', text:'level 3-25-1-8'} +, {id:'25-1-9', text:'level 3-25-1-9'} +]} +, {id:'25-2-10', text:'level 2-25-2', item:[ + {id:'25-2-0', text:'level 3-25-2-0'} +, {id:'25-2-1', text:'level 3-25-2-1'} +, {id:'25-2-2', text:'level 3-25-2-2'} +, {id:'25-2-3', text:'level 3-25-2-3'} +, {id:'25-2-4', text:'level 3-25-2-4'} +, {id:'25-2-5', text:'level 3-25-2-5'} +, {id:'25-2-6', text:'level 3-25-2-6'} +, {id:'25-2-7', text:'level 3-25-2-7'} +, {id:'25-2-8', text:'level 3-25-2-8'} +, {id:'25-2-9', text:'level 3-25-2-9'} +]} +, {id:'25-3-10', text:'level 2-25-3', item:[ + {id:'25-3-0', text:'level 3-25-3-0'} +, {id:'25-3-1', text:'level 3-25-3-1'} +, {id:'25-3-2', text:'level 3-25-3-2'} +, {id:'25-3-3', text:'level 3-25-3-3'} +, {id:'25-3-4', text:'level 3-25-3-4'} +, {id:'25-3-5', text:'level 3-25-3-5'} +, {id:'25-3-6', text:'level 3-25-3-6'} +, {id:'25-3-7', text:'level 3-25-3-7'} +, {id:'25-3-8', text:'level 3-25-3-8'} +, {id:'25-3-9', text:'level 3-25-3-9'} +]} +, {id:'25-4-10', text:'level 2-25-4', item:[ + {id:'25-4-0', text:'level 3-25-4-0'} +, {id:'25-4-1', text:'level 3-25-4-1'} +, {id:'25-4-2', text:'level 3-25-4-2'} +, {id:'25-4-3', text:'level 3-25-4-3'} +, {id:'25-4-4', text:'level 3-25-4-4'} +, {id:'25-4-5', text:'level 3-25-4-5'} +, {id:'25-4-6', text:'level 3-25-4-6'} +, {id:'25-4-7', text:'level 3-25-4-7'} +, {id:'25-4-8', text:'level 3-25-4-8'} +, {id:'25-4-9', text:'level 3-25-4-9'} +]} +, {id:'25-5-10', text:'level 2-25-5', item:[ + {id:'25-5-0', text:'level 3-25-5-0'} +, {id:'25-5-1', text:'level 3-25-5-1'} +, {id:'25-5-2', text:'level 3-25-5-2'} +, {id:'25-5-3', text:'level 3-25-5-3'} +, {id:'25-5-4', text:'level 3-25-5-4'} +, {id:'25-5-5', text:'level 3-25-5-5'} +, {id:'25-5-6', text:'level 3-25-5-6'} +, {id:'25-5-7', text:'level 3-25-5-7'} +, {id:'25-5-8', text:'level 3-25-5-8'} +, {id:'25-5-9', text:'level 3-25-5-9'} +]} +, {id:'25-6-10', text:'level 2-25-6', item:[ + {id:'25-6-0', text:'level 3-25-6-0'} +, {id:'25-6-1', text:'level 3-25-6-1'} +, {id:'25-6-2', text:'level 3-25-6-2'} +, {id:'25-6-3', text:'level 3-25-6-3'} +, {id:'25-6-4', text:'level 3-25-6-4'} +, {id:'25-6-5', text:'level 3-25-6-5'} +, {id:'25-6-6', text:'level 3-25-6-6'} +, {id:'25-6-7', text:'level 3-25-6-7'} +, {id:'25-6-8', text:'level 3-25-6-8'} +, {id:'25-6-9', text:'level 3-25-6-9'} +]} +, {id:'25-7-10', text:'level 2-25-7', item:[ + {id:'25-7-0', text:'level 3-25-7-0'} +, {id:'25-7-1', text:'level 3-25-7-1'} +, {id:'25-7-2', text:'level 3-25-7-2'} +, {id:'25-7-3', text:'level 3-25-7-3'} +, {id:'25-7-4', text:'level 3-25-7-4'} +, {id:'25-7-5', text:'level 3-25-7-5'} +, {id:'25-7-6', text:'level 3-25-7-6'} +, {id:'25-7-7', text:'level 3-25-7-7'} +, {id:'25-7-8', text:'level 3-25-7-8'} +, {id:'25-7-9', text:'level 3-25-7-9'} +]} +, {id:'25-8-10', text:'level 2-25-8', item:[ + {id:'25-8-0', text:'level 3-25-8-0'} +, {id:'25-8-1', text:'level 3-25-8-1'} +, {id:'25-8-2', text:'level 3-25-8-2'} +, {id:'25-8-3', text:'level 3-25-8-3'} +, {id:'25-8-4', text:'level 3-25-8-4'} +, {id:'25-8-5', text:'level 3-25-8-5'} +, {id:'25-8-6', text:'level 3-25-8-6'} +, {id:'25-8-7', text:'level 3-25-8-7'} +, {id:'25-8-8', text:'level 3-25-8-8'} +, {id:'25-8-9', text:'level 3-25-8-9'} +]} +, {id:'25-9-10', text:'level 2-25-9', item:[ + {id:'25-9-0', text:'level 3-25-9-0'} +, {id:'25-9-1', text:'level 3-25-9-1'} +, {id:'25-9-2', text:'level 3-25-9-2'} +, {id:'25-9-3', text:'level 3-25-9-3'} +, {id:'25-9-4', text:'level 3-25-9-4'} +, {id:'25-9-5', text:'level 3-25-9-5'} +, {id:'25-9-6', text:'level 3-25-9-6'} +, {id:'25-9-7', text:'level 3-25-9-7'} +, {id:'25-9-8', text:'level 3-25-9-8'} +, {id:'25-9-9', text:'level 3-25-9-9'} +]} +, {id:'25-10-10', text:'level 2-25-10', item:[ + {id:'25-10-0', text:'level 3-25-10-0'} +, {id:'25-10-1', text:'level 3-25-10-1'} +, {id:'25-10-2', text:'level 3-25-10-2'} +, {id:'25-10-3', text:'level 3-25-10-3'} +, {id:'25-10-4', text:'level 3-25-10-4'} +, {id:'25-10-5', text:'level 3-25-10-5'} +, {id:'25-10-6', text:'level 3-25-10-6'} +, {id:'25-10-7', text:'level 3-25-10-7'} +, {id:'25-10-8', text:'level 3-25-10-8'} +, {id:'25-10-9', text:'level 3-25-10-9'} +]} +, {id:'25-11-10', text:'level 2-25-11', item:[ + {id:'25-11-0', text:'level 3-25-11-0'} +, {id:'25-11-1', text:'level 3-25-11-1'} +, {id:'25-11-2', text:'level 3-25-11-2'} +, {id:'25-11-3', text:'level 3-25-11-3'} +, {id:'25-11-4', text:'level 3-25-11-4'} +, {id:'25-11-5', text:'level 3-25-11-5'} +, {id:'25-11-6', text:'level 3-25-11-6'} +, {id:'25-11-7', text:'level 3-25-11-7'} +, {id:'25-11-8', text:'level 3-25-11-8'} +, {id:'25-11-9', text:'level 3-25-11-9'} +]} +, {id:'25-12-10', text:'level 2-25-12', item:[ + {id:'25-12-0', text:'level 3-25-12-0'} +, {id:'25-12-1', text:'level 3-25-12-1'} +, {id:'25-12-2', text:'level 3-25-12-2'} +, {id:'25-12-3', text:'level 3-25-12-3'} +, {id:'25-12-4', text:'level 3-25-12-4'} +, {id:'25-12-5', text:'level 3-25-12-5'} +, {id:'25-12-6', text:'level 3-25-12-6'} +, {id:'25-12-7', text:'level 3-25-12-7'} +, {id:'25-12-8', text:'level 3-25-12-8'} +, {id:'25-12-9', text:'level 3-25-12-9'} +]} +, {id:'25-13-10', text:'level 2-25-13', item:[ + {id:'25-13-0', text:'level 3-25-13-0'} +, {id:'25-13-1', text:'level 3-25-13-1'} +, {id:'25-13-2', text:'level 3-25-13-2'} +, {id:'25-13-3', text:'level 3-25-13-3'} +, {id:'25-13-4', text:'level 3-25-13-4'} +, {id:'25-13-5', text:'level 3-25-13-5'} +, {id:'25-13-6', text:'level 3-25-13-6'} +, {id:'25-13-7', text:'level 3-25-13-7'} +, {id:'25-13-8', text:'level 3-25-13-8'} +, {id:'25-13-9', text:'level 3-25-13-9'} +]} +, {id:'25-14-10', text:'level 2-25-14', item:[ + {id:'25-14-0', text:'level 3-25-14-0'} +, {id:'25-14-1', text:'level 3-25-14-1'} +, {id:'25-14-2', text:'level 3-25-14-2'} +, {id:'25-14-3', text:'level 3-25-14-3'} +, {id:'25-14-4', text:'level 3-25-14-4'} +, {id:'25-14-5', text:'level 3-25-14-5'} +, {id:'25-14-6', text:'level 3-25-14-6'} +, {id:'25-14-7', text:'level 3-25-14-7'} +, {id:'25-14-8', text:'level 3-25-14-8'} +, {id:'25-14-9', text:'level 3-25-14-9'} +]} +, {id:'25-15-10', text:'level 2-25-15', item:[ + {id:'25-15-0', text:'level 3-25-15-0'} +, {id:'25-15-1', text:'level 3-25-15-1'} +, {id:'25-15-2', text:'level 3-25-15-2'} +, {id:'25-15-3', text:'level 3-25-15-3'} +, {id:'25-15-4', text:'level 3-25-15-4'} +, {id:'25-15-5', text:'level 3-25-15-5'} +, {id:'25-15-6', text:'level 3-25-15-6'} +, {id:'25-15-7', text:'level 3-25-15-7'} +, {id:'25-15-8', text:'level 3-25-15-8'} +, {id:'25-15-9', text:'level 3-25-15-9'} +]} +, {id:'25-16-10', text:'level 2-25-16', item:[ + {id:'25-16-0', text:'level 3-25-16-0'} +, {id:'25-16-1', text:'level 3-25-16-1'} +, {id:'25-16-2', text:'level 3-25-16-2'} +, {id:'25-16-3', text:'level 3-25-16-3'} +, {id:'25-16-4', text:'level 3-25-16-4'} +, {id:'25-16-5', text:'level 3-25-16-5'} +, {id:'25-16-6', text:'level 3-25-16-6'} +, {id:'25-16-7', text:'level 3-25-16-7'} +, {id:'25-16-8', text:'level 3-25-16-8'} +, {id:'25-16-9', text:'level 3-25-16-9'} +]} +, {id:'25-17-10', text:'level 2-25-17', item:[ + {id:'25-17-0', text:'level 3-25-17-0'} +, {id:'25-17-1', text:'level 3-25-17-1'} +, {id:'25-17-2', text:'level 3-25-17-2'} +, {id:'25-17-3', text:'level 3-25-17-3'} +, {id:'25-17-4', text:'level 3-25-17-4'} +, {id:'25-17-5', text:'level 3-25-17-5'} +, {id:'25-17-6', text:'level 3-25-17-6'} +, {id:'25-17-7', text:'level 3-25-17-7'} +, {id:'25-17-8', text:'level 3-25-17-8'} +, {id:'25-17-9', text:'level 3-25-17-9'} +]} +, {id:'25-18-10', text:'level 2-25-18', item:[ + {id:'25-18-0', text:'level 3-25-18-0'} +, {id:'25-18-1', text:'level 3-25-18-1'} +, {id:'25-18-2', text:'level 3-25-18-2'} +, {id:'25-18-3', text:'level 3-25-18-3'} +, {id:'25-18-4', text:'level 3-25-18-4'} +, {id:'25-18-5', text:'level 3-25-18-5'} +, {id:'25-18-6', text:'level 3-25-18-6'} +, {id:'25-18-7', text:'level 3-25-18-7'} +, {id:'25-18-8', text:'level 3-25-18-8'} +, {id:'25-18-9', text:'level 3-25-18-9'} +]} +, {id:'25-19-10', text:'level 2-25-19', item:[ + {id:'25-19-0', text:'level 3-25-19-0'} +, {id:'25-19-1', text:'level 3-25-19-1'} +, {id:'25-19-2', text:'level 3-25-19-2'} +, {id:'25-19-3', text:'level 3-25-19-3'} +, {id:'25-19-4', text:'level 3-25-19-4'} +, {id:'25-19-5', text:'level 3-25-19-5'} +, {id:'25-19-6', text:'level 3-25-19-6'} +, {id:'25-19-7', text:'level 3-25-19-7'} +, {id:'25-19-8', text:'level 3-25-19-8'} +, {id:'25-19-9', text:'level 3-25-19-9'} +]} +]} +,{id:'26-20-10', text:'level 1-26', item:[ + {id:'26-0-10', text:'level 2-26-0', item:[ + {id:'26-0-0', text:'level 3-26-0-0'} +, {id:'26-0-1', text:'level 3-26-0-1'} +, {id:'26-0-2', text:'level 3-26-0-2'} +, {id:'26-0-3', text:'level 3-26-0-3'} +, {id:'26-0-4', text:'level 3-26-0-4'} +, {id:'26-0-5', text:'level 3-26-0-5'} +, {id:'26-0-6', text:'level 3-26-0-6'} +, {id:'26-0-7', text:'level 3-26-0-7'} +, {id:'26-0-8', text:'level 3-26-0-8'} +, {id:'26-0-9', text:'level 3-26-0-9'} +]} +, {id:'26-1-10', text:'level 2-26-1', item:[ + {id:'26-1-0', text:'level 3-26-1-0'} +, {id:'26-1-1', text:'level 3-26-1-1'} +, {id:'26-1-2', text:'level 3-26-1-2'} +, {id:'26-1-3', text:'level 3-26-1-3'} +, {id:'26-1-4', text:'level 3-26-1-4'} +, {id:'26-1-5', text:'level 3-26-1-5'} +, {id:'26-1-6', text:'level 3-26-1-6'} +, {id:'26-1-7', text:'level 3-26-1-7'} +, {id:'26-1-8', text:'level 3-26-1-8'} +, {id:'26-1-9', text:'level 3-26-1-9'} +]} +, {id:'26-2-10', text:'level 2-26-2', item:[ + {id:'26-2-0', text:'level 3-26-2-0'} +, {id:'26-2-1', text:'level 3-26-2-1'} +, {id:'26-2-2', text:'level 3-26-2-2'} +, {id:'26-2-3', text:'level 3-26-2-3'} +, {id:'26-2-4', text:'level 3-26-2-4'} +, {id:'26-2-5', text:'level 3-26-2-5'} +, {id:'26-2-6', text:'level 3-26-2-6'} +, {id:'26-2-7', text:'level 3-26-2-7'} +, {id:'26-2-8', text:'level 3-26-2-8'} +, {id:'26-2-9', text:'level 3-26-2-9'} +]} +, {id:'26-3-10', text:'level 2-26-3', item:[ + {id:'26-3-0', text:'level 3-26-3-0'} +, {id:'26-3-1', text:'level 3-26-3-1'} +, {id:'26-3-2', text:'level 3-26-3-2'} +, {id:'26-3-3', text:'level 3-26-3-3'} +, {id:'26-3-4', text:'level 3-26-3-4'} +, {id:'26-3-5', text:'level 3-26-3-5'} +, {id:'26-3-6', text:'level 3-26-3-6'} +, {id:'26-3-7', text:'level 3-26-3-7'} +, {id:'26-3-8', text:'level 3-26-3-8'} +, {id:'26-3-9', text:'level 3-26-3-9'} +]} +, {id:'26-4-10', text:'level 2-26-4', item:[ + {id:'26-4-0', text:'level 3-26-4-0'} +, {id:'26-4-1', text:'level 3-26-4-1'} +, {id:'26-4-2', text:'level 3-26-4-2'} +, {id:'26-4-3', text:'level 3-26-4-3'} +, {id:'26-4-4', text:'level 3-26-4-4'} +, {id:'26-4-5', text:'level 3-26-4-5'} +, {id:'26-4-6', text:'level 3-26-4-6'} +, {id:'26-4-7', text:'level 3-26-4-7'} +, {id:'26-4-8', text:'level 3-26-4-8'} +, {id:'26-4-9', text:'level 3-26-4-9'} +]} +, {id:'26-5-10', text:'level 2-26-5', item:[ + {id:'26-5-0', text:'level 3-26-5-0'} +, {id:'26-5-1', text:'level 3-26-5-1'} +, {id:'26-5-2', text:'level 3-26-5-2'} +, {id:'26-5-3', text:'level 3-26-5-3'} +, {id:'26-5-4', text:'level 3-26-5-4'} +, {id:'26-5-5', text:'level 3-26-5-5'} +, {id:'26-5-6', text:'level 3-26-5-6'} +, {id:'26-5-7', text:'level 3-26-5-7'} +, {id:'26-5-8', text:'level 3-26-5-8'} +, {id:'26-5-9', text:'level 3-26-5-9'} +]} +, {id:'26-6-10', text:'level 2-26-6', item:[ + {id:'26-6-0', text:'level 3-26-6-0'} +, {id:'26-6-1', text:'level 3-26-6-1'} +, {id:'26-6-2', text:'level 3-26-6-2'} +, {id:'26-6-3', text:'level 3-26-6-3'} +, {id:'26-6-4', text:'level 3-26-6-4'} +, {id:'26-6-5', text:'level 3-26-6-5'} +, {id:'26-6-6', text:'level 3-26-6-6'} +, {id:'26-6-7', text:'level 3-26-6-7'} +, {id:'26-6-8', text:'level 3-26-6-8'} +, {id:'26-6-9', text:'level 3-26-6-9'} +]} +, {id:'26-7-10', text:'level 2-26-7', item:[ + {id:'26-7-0', text:'level 3-26-7-0'} +, {id:'26-7-1', text:'level 3-26-7-1'} +, {id:'26-7-2', text:'level 3-26-7-2'} +, {id:'26-7-3', text:'level 3-26-7-3'} +, {id:'26-7-4', text:'level 3-26-7-4'} +, {id:'26-7-5', text:'level 3-26-7-5'} +, {id:'26-7-6', text:'level 3-26-7-6'} +, {id:'26-7-7', text:'level 3-26-7-7'} +, {id:'26-7-8', text:'level 3-26-7-8'} +, {id:'26-7-9', text:'level 3-26-7-9'} +]} +, {id:'26-8-10', text:'level 2-26-8', item:[ + {id:'26-8-0', text:'level 3-26-8-0'} +, {id:'26-8-1', text:'level 3-26-8-1'} +, {id:'26-8-2', text:'level 3-26-8-2'} +, {id:'26-8-3', text:'level 3-26-8-3'} +, {id:'26-8-4', text:'level 3-26-8-4'} +, {id:'26-8-5', text:'level 3-26-8-5'} +, {id:'26-8-6', text:'level 3-26-8-6'} +, {id:'26-8-7', text:'level 3-26-8-7'} +, {id:'26-8-8', text:'level 3-26-8-8'} +, {id:'26-8-9', text:'level 3-26-8-9'} +]} +, {id:'26-9-10', text:'level 2-26-9', item:[ + {id:'26-9-0', text:'level 3-26-9-0'} +, {id:'26-9-1', text:'level 3-26-9-1'} +, {id:'26-9-2', text:'level 3-26-9-2'} +, {id:'26-9-3', text:'level 3-26-9-3'} +, {id:'26-9-4', text:'level 3-26-9-4'} +, {id:'26-9-5', text:'level 3-26-9-5'} +, {id:'26-9-6', text:'level 3-26-9-6'} +, {id:'26-9-7', text:'level 3-26-9-7'} +, {id:'26-9-8', text:'level 3-26-9-8'} +, {id:'26-9-9', text:'level 3-26-9-9'} +]} +, {id:'26-10-10', text:'level 2-26-10', item:[ + {id:'26-10-0', text:'level 3-26-10-0'} +, {id:'26-10-1', text:'level 3-26-10-1'} +, {id:'26-10-2', text:'level 3-26-10-2'} +, {id:'26-10-3', text:'level 3-26-10-3'} +, {id:'26-10-4', text:'level 3-26-10-4'} +, {id:'26-10-5', text:'level 3-26-10-5'} +, {id:'26-10-6', text:'level 3-26-10-6'} +, {id:'26-10-7', text:'level 3-26-10-7'} +, {id:'26-10-8', text:'level 3-26-10-8'} +, {id:'26-10-9', text:'level 3-26-10-9'} +]} +, {id:'26-11-10', text:'level 2-26-11', item:[ + {id:'26-11-0', text:'level 3-26-11-0'} +, {id:'26-11-1', text:'level 3-26-11-1'} +, {id:'26-11-2', text:'level 3-26-11-2'} +, {id:'26-11-3', text:'level 3-26-11-3'} +, {id:'26-11-4', text:'level 3-26-11-4'} +, {id:'26-11-5', text:'level 3-26-11-5'} +, {id:'26-11-6', text:'level 3-26-11-6'} +, {id:'26-11-7', text:'level 3-26-11-7'} +, {id:'26-11-8', text:'level 3-26-11-8'} +, {id:'26-11-9', text:'level 3-26-11-9'} +]} +, {id:'26-12-10', text:'level 2-26-12', item:[ + {id:'26-12-0', text:'level 3-26-12-0'} +, {id:'26-12-1', text:'level 3-26-12-1'} +, {id:'26-12-2', text:'level 3-26-12-2'} +, {id:'26-12-3', text:'level 3-26-12-3'} +, {id:'26-12-4', text:'level 3-26-12-4'} +, {id:'26-12-5', text:'level 3-26-12-5'} +, {id:'26-12-6', text:'level 3-26-12-6'} +, {id:'26-12-7', text:'level 3-26-12-7'} +, {id:'26-12-8', text:'level 3-26-12-8'} +, {id:'26-12-9', text:'level 3-26-12-9'} +]} +, {id:'26-13-10', text:'level 2-26-13', item:[ + {id:'26-13-0', text:'level 3-26-13-0'} +, {id:'26-13-1', text:'level 3-26-13-1'} +, {id:'26-13-2', text:'level 3-26-13-2'} +, {id:'26-13-3', text:'level 3-26-13-3'} +, {id:'26-13-4', text:'level 3-26-13-4'} +, {id:'26-13-5', text:'level 3-26-13-5'} +, {id:'26-13-6', text:'level 3-26-13-6'} +, {id:'26-13-7', text:'level 3-26-13-7'} +, {id:'26-13-8', text:'level 3-26-13-8'} +, {id:'26-13-9', text:'level 3-26-13-9'} +]} +, {id:'26-14-10', text:'level 2-26-14', item:[ + {id:'26-14-0', text:'level 3-26-14-0'} +, {id:'26-14-1', text:'level 3-26-14-1'} +, {id:'26-14-2', text:'level 3-26-14-2'} +, {id:'26-14-3', text:'level 3-26-14-3'} +, {id:'26-14-4', text:'level 3-26-14-4'} +, {id:'26-14-5', text:'level 3-26-14-5'} +, {id:'26-14-6', text:'level 3-26-14-6'} +, {id:'26-14-7', text:'level 3-26-14-7'} +, {id:'26-14-8', text:'level 3-26-14-8'} +, {id:'26-14-9', text:'level 3-26-14-9'} +]} +, {id:'26-15-10', text:'level 2-26-15', item:[ + {id:'26-15-0', text:'level 3-26-15-0'} +, {id:'26-15-1', text:'level 3-26-15-1'} +, {id:'26-15-2', text:'level 3-26-15-2'} +, {id:'26-15-3', text:'level 3-26-15-3'} +, {id:'26-15-4', text:'level 3-26-15-4'} +, {id:'26-15-5', text:'level 3-26-15-5'} +, {id:'26-15-6', text:'level 3-26-15-6'} +, {id:'26-15-7', text:'level 3-26-15-7'} +, {id:'26-15-8', text:'level 3-26-15-8'} +, {id:'26-15-9', text:'level 3-26-15-9'} +]} +, {id:'26-16-10', text:'level 2-26-16', item:[ + {id:'26-16-0', text:'level 3-26-16-0'} +, {id:'26-16-1', text:'level 3-26-16-1'} +, {id:'26-16-2', text:'level 3-26-16-2'} +, {id:'26-16-3', text:'level 3-26-16-3'} +, {id:'26-16-4', text:'level 3-26-16-4'} +, {id:'26-16-5', text:'level 3-26-16-5'} +, {id:'26-16-6', text:'level 3-26-16-6'} +, {id:'26-16-7', text:'level 3-26-16-7'} +, {id:'26-16-8', text:'level 3-26-16-8'} +, {id:'26-16-9', text:'level 3-26-16-9'} +]} +, {id:'26-17-10', text:'level 2-26-17', item:[ + {id:'26-17-0', text:'level 3-26-17-0'} +, {id:'26-17-1', text:'level 3-26-17-1'} +, {id:'26-17-2', text:'level 3-26-17-2'} +, {id:'26-17-3', text:'level 3-26-17-3'} +, {id:'26-17-4', text:'level 3-26-17-4'} +, {id:'26-17-5', text:'level 3-26-17-5'} +, {id:'26-17-6', text:'level 3-26-17-6'} +, {id:'26-17-7', text:'level 3-26-17-7'} +, {id:'26-17-8', text:'level 3-26-17-8'} +, {id:'26-17-9', text:'level 3-26-17-9'} +]} +, {id:'26-18-10', text:'level 2-26-18', item:[ + {id:'26-18-0', text:'level 3-26-18-0'} +, {id:'26-18-1', text:'level 3-26-18-1'} +, {id:'26-18-2', text:'level 3-26-18-2'} +, {id:'26-18-3', text:'level 3-26-18-3'} +, {id:'26-18-4', text:'level 3-26-18-4'} +, {id:'26-18-5', text:'level 3-26-18-5'} +, {id:'26-18-6', text:'level 3-26-18-6'} +, {id:'26-18-7', text:'level 3-26-18-7'} +, {id:'26-18-8', text:'level 3-26-18-8'} +, {id:'26-18-9', text:'level 3-26-18-9'} +]} +, {id:'26-19-10', text:'level 2-26-19', item:[ + {id:'26-19-0', text:'level 3-26-19-0'} +, {id:'26-19-1', text:'level 3-26-19-1'} +, {id:'26-19-2', text:'level 3-26-19-2'} +, {id:'26-19-3', text:'level 3-26-19-3'} +, {id:'26-19-4', text:'level 3-26-19-4'} +, {id:'26-19-5', text:'level 3-26-19-5'} +, {id:'26-19-6', text:'level 3-26-19-6'} +, {id:'26-19-7', text:'level 3-26-19-7'} +, {id:'26-19-8', text:'level 3-26-19-8'} +, {id:'26-19-9', text:'level 3-26-19-9'} +]} +]} +,{id:'27-20-10', text:'level 1-27', item:[ + {id:'27-0-10', text:'level 2-27-0', item:[ + {id:'27-0-0', text:'level 3-27-0-0'} +, {id:'27-0-1', text:'level 3-27-0-1'} +, {id:'27-0-2', text:'level 3-27-0-2'} +, {id:'27-0-3', text:'level 3-27-0-3'} +, {id:'27-0-4', text:'level 3-27-0-4'} +, {id:'27-0-5', text:'level 3-27-0-5'} +, {id:'27-0-6', text:'level 3-27-0-6'} +, {id:'27-0-7', text:'level 3-27-0-7'} +, {id:'27-0-8', text:'level 3-27-0-8'} +, {id:'27-0-9', text:'level 3-27-0-9'} +]} +, {id:'27-1-10', text:'level 2-27-1', item:[ + {id:'27-1-0', text:'level 3-27-1-0'} +, {id:'27-1-1', text:'level 3-27-1-1'} +, {id:'27-1-2', text:'level 3-27-1-2'} +, {id:'27-1-3', text:'level 3-27-1-3'} +, {id:'27-1-4', text:'level 3-27-1-4'} +, {id:'27-1-5', text:'level 3-27-1-5'} +, {id:'27-1-6', text:'level 3-27-1-6'} +, {id:'27-1-7', text:'level 3-27-1-7'} +, {id:'27-1-8', text:'level 3-27-1-8'} +, {id:'27-1-9', text:'level 3-27-1-9'} +]} +, {id:'27-2-10', text:'level 2-27-2', item:[ + {id:'27-2-0', text:'level 3-27-2-0'} +, {id:'27-2-1', text:'level 3-27-2-1'} +, {id:'27-2-2', text:'level 3-27-2-2'} +, {id:'27-2-3', text:'level 3-27-2-3'} +, {id:'27-2-4', text:'level 3-27-2-4'} +, {id:'27-2-5', text:'level 3-27-2-5'} +, {id:'27-2-6', text:'level 3-27-2-6'} +, {id:'27-2-7', text:'level 3-27-2-7'} +, {id:'27-2-8', text:'level 3-27-2-8'} +, {id:'27-2-9', text:'level 3-27-2-9'} +]} +, {id:'27-3-10', text:'level 2-27-3', item:[ + {id:'27-3-0', text:'level 3-27-3-0'} +, {id:'27-3-1', text:'level 3-27-3-1'} +, {id:'27-3-2', text:'level 3-27-3-2'} +, {id:'27-3-3', text:'level 3-27-3-3'} +, {id:'27-3-4', text:'level 3-27-3-4'} +, {id:'27-3-5', text:'level 3-27-3-5'} +, {id:'27-3-6', text:'level 3-27-3-6'} +, {id:'27-3-7', text:'level 3-27-3-7'} +, {id:'27-3-8', text:'level 3-27-3-8'} +, {id:'27-3-9', text:'level 3-27-3-9'} +]} +, {id:'27-4-10', text:'level 2-27-4', item:[ + {id:'27-4-0', text:'level 3-27-4-0'} +, {id:'27-4-1', text:'level 3-27-4-1'} +, {id:'27-4-2', text:'level 3-27-4-2'} +, {id:'27-4-3', text:'level 3-27-4-3'} +, {id:'27-4-4', text:'level 3-27-4-4'} +, {id:'27-4-5', text:'level 3-27-4-5'} +, {id:'27-4-6', text:'level 3-27-4-6'} +, {id:'27-4-7', text:'level 3-27-4-7'} +, {id:'27-4-8', text:'level 3-27-4-8'} +, {id:'27-4-9', text:'level 3-27-4-9'} +]} +, {id:'27-5-10', text:'level 2-27-5', item:[ + {id:'27-5-0', text:'level 3-27-5-0'} +, {id:'27-5-1', text:'level 3-27-5-1'} +, {id:'27-5-2', text:'level 3-27-5-2'} +, {id:'27-5-3', text:'level 3-27-5-3'} +, {id:'27-5-4', text:'level 3-27-5-4'} +, {id:'27-5-5', text:'level 3-27-5-5'} +, {id:'27-5-6', text:'level 3-27-5-6'} +, {id:'27-5-7', text:'level 3-27-5-7'} +, {id:'27-5-8', text:'level 3-27-5-8'} +, {id:'27-5-9', text:'level 3-27-5-9'} +]} +, {id:'27-6-10', text:'level 2-27-6', item:[ + {id:'27-6-0', text:'level 3-27-6-0'} +, {id:'27-6-1', text:'level 3-27-6-1'} +, {id:'27-6-2', text:'level 3-27-6-2'} +, {id:'27-6-3', text:'level 3-27-6-3'} +, {id:'27-6-4', text:'level 3-27-6-4'} +, {id:'27-6-5', text:'level 3-27-6-5'} +, {id:'27-6-6', text:'level 3-27-6-6'} +, {id:'27-6-7', text:'level 3-27-6-7'} +, {id:'27-6-8', text:'level 3-27-6-8'} +, {id:'27-6-9', text:'level 3-27-6-9'} +]} +, {id:'27-7-10', text:'level 2-27-7', item:[ + {id:'27-7-0', text:'level 3-27-7-0'} +, {id:'27-7-1', text:'level 3-27-7-1'} +, {id:'27-7-2', text:'level 3-27-7-2'} +, {id:'27-7-3', text:'level 3-27-7-3'} +, {id:'27-7-4', text:'level 3-27-7-4'} +, {id:'27-7-5', text:'level 3-27-7-5'} +, {id:'27-7-6', text:'level 3-27-7-6'} +, {id:'27-7-7', text:'level 3-27-7-7'} +, {id:'27-7-8', text:'level 3-27-7-8'} +, {id:'27-7-9', text:'level 3-27-7-9'} +]} +, {id:'27-8-10', text:'level 2-27-8', item:[ + {id:'27-8-0', text:'level 3-27-8-0'} +, {id:'27-8-1', text:'level 3-27-8-1'} +, {id:'27-8-2', text:'level 3-27-8-2'} +, {id:'27-8-3', text:'level 3-27-8-3'} +, {id:'27-8-4', text:'level 3-27-8-4'} +, {id:'27-8-5', text:'level 3-27-8-5'} +, {id:'27-8-6', text:'level 3-27-8-6'} +, {id:'27-8-7', text:'level 3-27-8-7'} +, {id:'27-8-8', text:'level 3-27-8-8'} +, {id:'27-8-9', text:'level 3-27-8-9'} +]} +, {id:'27-9-10', text:'level 2-27-9', item:[ + {id:'27-9-0', text:'level 3-27-9-0'} +, {id:'27-9-1', text:'level 3-27-9-1'} +, {id:'27-9-2', text:'level 3-27-9-2'} +, {id:'27-9-3', text:'level 3-27-9-3'} +, {id:'27-9-4', text:'level 3-27-9-4'} +, {id:'27-9-5', text:'level 3-27-9-5'} +, {id:'27-9-6', text:'level 3-27-9-6'} +, {id:'27-9-7', text:'level 3-27-9-7'} +, {id:'27-9-8', text:'level 3-27-9-8'} +, {id:'27-9-9', text:'level 3-27-9-9'} +]} +, {id:'27-10-10', text:'level 2-27-10', item:[ + {id:'27-10-0', text:'level 3-27-10-0'} +, {id:'27-10-1', text:'level 3-27-10-1'} +, {id:'27-10-2', text:'level 3-27-10-2'} +, {id:'27-10-3', text:'level 3-27-10-3'} +, {id:'27-10-4', text:'level 3-27-10-4'} +, {id:'27-10-5', text:'level 3-27-10-5'} +, {id:'27-10-6', text:'level 3-27-10-6'} +, {id:'27-10-7', text:'level 3-27-10-7'} +, {id:'27-10-8', text:'level 3-27-10-8'} +, {id:'27-10-9', text:'level 3-27-10-9'} +]} +, {id:'27-11-10', text:'level 2-27-11', item:[ + {id:'27-11-0', text:'level 3-27-11-0'} +, {id:'27-11-1', text:'level 3-27-11-1'} +, {id:'27-11-2', text:'level 3-27-11-2'} +, {id:'27-11-3', text:'level 3-27-11-3'} +, {id:'27-11-4', text:'level 3-27-11-4'} +, {id:'27-11-5', text:'level 3-27-11-5'} +, {id:'27-11-6', text:'level 3-27-11-6'} +, {id:'27-11-7', text:'level 3-27-11-7'} +, {id:'27-11-8', text:'level 3-27-11-8'} +, {id:'27-11-9', text:'level 3-27-11-9'} +]} +, {id:'27-12-10', text:'level 2-27-12', item:[ + {id:'27-12-0', text:'level 3-27-12-0'} +, {id:'27-12-1', text:'level 3-27-12-1'} +, {id:'27-12-2', text:'level 3-27-12-2'} +, {id:'27-12-3', text:'level 3-27-12-3'} +, {id:'27-12-4', text:'level 3-27-12-4'} +, {id:'27-12-5', text:'level 3-27-12-5'} +, {id:'27-12-6', text:'level 3-27-12-6'} +, {id:'27-12-7', text:'level 3-27-12-7'} +, {id:'27-12-8', text:'level 3-27-12-8'} +, {id:'27-12-9', text:'level 3-27-12-9'} +]} +, {id:'27-13-10', text:'level 2-27-13', item:[ + {id:'27-13-0', text:'level 3-27-13-0'} +, {id:'27-13-1', text:'level 3-27-13-1'} +, {id:'27-13-2', text:'level 3-27-13-2'} +, {id:'27-13-3', text:'level 3-27-13-3'} +, {id:'27-13-4', text:'level 3-27-13-4'} +, {id:'27-13-5', text:'level 3-27-13-5'} +, {id:'27-13-6', text:'level 3-27-13-6'} +, {id:'27-13-7', text:'level 3-27-13-7'} +, {id:'27-13-8', text:'level 3-27-13-8'} +, {id:'27-13-9', text:'level 3-27-13-9'} +]} +, {id:'27-14-10', text:'level 2-27-14', item:[ + {id:'27-14-0', text:'level 3-27-14-0'} +, {id:'27-14-1', text:'level 3-27-14-1'} +, {id:'27-14-2', text:'level 3-27-14-2'} +, {id:'27-14-3', text:'level 3-27-14-3'} +, {id:'27-14-4', text:'level 3-27-14-4'} +, {id:'27-14-5', text:'level 3-27-14-5'} +, {id:'27-14-6', text:'level 3-27-14-6'} +, {id:'27-14-7', text:'level 3-27-14-7'} +, {id:'27-14-8', text:'level 3-27-14-8'} +, {id:'27-14-9', text:'level 3-27-14-9'} +]} +, {id:'27-15-10', text:'level 2-27-15', item:[ + {id:'27-15-0', text:'level 3-27-15-0'} +, {id:'27-15-1', text:'level 3-27-15-1'} +, {id:'27-15-2', text:'level 3-27-15-2'} +, {id:'27-15-3', text:'level 3-27-15-3'} +, {id:'27-15-4', text:'level 3-27-15-4'} +, {id:'27-15-5', text:'level 3-27-15-5'} +, {id:'27-15-6', text:'level 3-27-15-6'} +, {id:'27-15-7', text:'level 3-27-15-7'} +, {id:'27-15-8', text:'level 3-27-15-8'} +, {id:'27-15-9', text:'level 3-27-15-9'} +]} +, {id:'27-16-10', text:'level 2-27-16', item:[ + {id:'27-16-0', text:'level 3-27-16-0'} +, {id:'27-16-1', text:'level 3-27-16-1'} +, {id:'27-16-2', text:'level 3-27-16-2'} +, {id:'27-16-3', text:'level 3-27-16-3'} +, {id:'27-16-4', text:'level 3-27-16-4'} +, {id:'27-16-5', text:'level 3-27-16-5'} +, {id:'27-16-6', text:'level 3-27-16-6'} +, {id:'27-16-7', text:'level 3-27-16-7'} +, {id:'27-16-8', text:'level 3-27-16-8'} +, {id:'27-16-9', text:'level 3-27-16-9'} +]} +, {id:'27-17-10', text:'level 2-27-17', item:[ + {id:'27-17-0', text:'level 3-27-17-0'} +, {id:'27-17-1', text:'level 3-27-17-1'} +, {id:'27-17-2', text:'level 3-27-17-2'} +, {id:'27-17-3', text:'level 3-27-17-3'} +, {id:'27-17-4', text:'level 3-27-17-4'} +, {id:'27-17-5', text:'level 3-27-17-5'} +, {id:'27-17-6', text:'level 3-27-17-6'} +, {id:'27-17-7', text:'level 3-27-17-7'} +, {id:'27-17-8', text:'level 3-27-17-8'} +, {id:'27-17-9', text:'level 3-27-17-9'} +]} +, {id:'27-18-10', text:'level 2-27-18', item:[ + {id:'27-18-0', text:'level 3-27-18-0'} +, {id:'27-18-1', text:'level 3-27-18-1'} +, {id:'27-18-2', text:'level 3-27-18-2'} +, {id:'27-18-3', text:'level 3-27-18-3'} +, {id:'27-18-4', text:'level 3-27-18-4'} +, {id:'27-18-5', text:'level 3-27-18-5'} +, {id:'27-18-6', text:'level 3-27-18-6'} +, {id:'27-18-7', text:'level 3-27-18-7'} +, {id:'27-18-8', text:'level 3-27-18-8'} +, {id:'27-18-9', text:'level 3-27-18-9'} +]} +, {id:'27-19-10', text:'level 2-27-19', item:[ + {id:'27-19-0', text:'level 3-27-19-0'} +, {id:'27-19-1', text:'level 3-27-19-1'} +, {id:'27-19-2', text:'level 3-27-19-2'} +, {id:'27-19-3', text:'level 3-27-19-3'} +, {id:'27-19-4', text:'level 3-27-19-4'} +, {id:'27-19-5', text:'level 3-27-19-5'} +, {id:'27-19-6', text:'level 3-27-19-6'} +, {id:'27-19-7', text:'level 3-27-19-7'} +, {id:'27-19-8', text:'level 3-27-19-8'} +, {id:'27-19-9', text:'level 3-27-19-9'} +]} +]} +,{id:'28-20-10', text:'level 1-28', item:[ + {id:'28-0-10', text:'level 2-28-0', item:[ + {id:'28-0-0', text:'level 3-28-0-0'} +, {id:'28-0-1', text:'level 3-28-0-1'} +, {id:'28-0-2', text:'level 3-28-0-2'} +, {id:'28-0-3', text:'level 3-28-0-3'} +, {id:'28-0-4', text:'level 3-28-0-4'} +, {id:'28-0-5', text:'level 3-28-0-5'} +, {id:'28-0-6', text:'level 3-28-0-6'} +, {id:'28-0-7', text:'level 3-28-0-7'} +, {id:'28-0-8', text:'level 3-28-0-8'} +, {id:'28-0-9', text:'level 3-28-0-9'} +]} +, {id:'28-1-10', text:'level 2-28-1', item:[ + {id:'28-1-0', text:'level 3-28-1-0'} +, {id:'28-1-1', text:'level 3-28-1-1'} +, {id:'28-1-2', text:'level 3-28-1-2'} +, {id:'28-1-3', text:'level 3-28-1-3'} +, {id:'28-1-4', text:'level 3-28-1-4'} +, {id:'28-1-5', text:'level 3-28-1-5'} +, {id:'28-1-6', text:'level 3-28-1-6'} +, {id:'28-1-7', text:'level 3-28-1-7'} +, {id:'28-1-8', text:'level 3-28-1-8'} +, {id:'28-1-9', text:'level 3-28-1-9'} +]} +, {id:'28-2-10', text:'level 2-28-2', item:[ + {id:'28-2-0', text:'level 3-28-2-0'} +, {id:'28-2-1', text:'level 3-28-2-1'} +, {id:'28-2-2', text:'level 3-28-2-2'} +, {id:'28-2-3', text:'level 3-28-2-3'} +, {id:'28-2-4', text:'level 3-28-2-4'} +, {id:'28-2-5', text:'level 3-28-2-5'} +, {id:'28-2-6', text:'level 3-28-2-6'} +, {id:'28-2-7', text:'level 3-28-2-7'} +, {id:'28-2-8', text:'level 3-28-2-8'} +, {id:'28-2-9', text:'level 3-28-2-9'} +]} +, {id:'28-3-10', text:'level 2-28-3', item:[ + {id:'28-3-0', text:'level 3-28-3-0'} +, {id:'28-3-1', text:'level 3-28-3-1'} +, {id:'28-3-2', text:'level 3-28-3-2'} +, {id:'28-3-3', text:'level 3-28-3-3'} +, {id:'28-3-4', text:'level 3-28-3-4'} +, {id:'28-3-5', text:'level 3-28-3-5'} +, {id:'28-3-6', text:'level 3-28-3-6'} +, {id:'28-3-7', text:'level 3-28-3-7'} +, {id:'28-3-8', text:'level 3-28-3-8'} +, {id:'28-3-9', text:'level 3-28-3-9'} +]} +, {id:'28-4-10', text:'level 2-28-4', item:[ + {id:'28-4-0', text:'level 3-28-4-0'} +, {id:'28-4-1', text:'level 3-28-4-1'} +, {id:'28-4-2', text:'level 3-28-4-2'} +, {id:'28-4-3', text:'level 3-28-4-3'} +, {id:'28-4-4', text:'level 3-28-4-4'} +, {id:'28-4-5', text:'level 3-28-4-5'} +, {id:'28-4-6', text:'level 3-28-4-6'} +, {id:'28-4-7', text:'level 3-28-4-7'} +, {id:'28-4-8', text:'level 3-28-4-8'} +, {id:'28-4-9', text:'level 3-28-4-9'} +]} +, {id:'28-5-10', text:'level 2-28-5', item:[ + {id:'28-5-0', text:'level 3-28-5-0'} +, {id:'28-5-1', text:'level 3-28-5-1'} +, {id:'28-5-2', text:'level 3-28-5-2'} +, {id:'28-5-3', text:'level 3-28-5-3'} +, {id:'28-5-4', text:'level 3-28-5-4'} +, {id:'28-5-5', text:'level 3-28-5-5'} +, {id:'28-5-6', text:'level 3-28-5-6'} +, {id:'28-5-7', text:'level 3-28-5-7'} +, {id:'28-5-8', text:'level 3-28-5-8'} +, {id:'28-5-9', text:'level 3-28-5-9'} +]} +, {id:'28-6-10', text:'level 2-28-6', item:[ + {id:'28-6-0', text:'level 3-28-6-0'} +, {id:'28-6-1', text:'level 3-28-6-1'} +, {id:'28-6-2', text:'level 3-28-6-2'} +, {id:'28-6-3', text:'level 3-28-6-3'} +, {id:'28-6-4', text:'level 3-28-6-4'} +, {id:'28-6-5', text:'level 3-28-6-5'} +, {id:'28-6-6', text:'level 3-28-6-6'} +, {id:'28-6-7', text:'level 3-28-6-7'} +, {id:'28-6-8', text:'level 3-28-6-8'} +, {id:'28-6-9', text:'level 3-28-6-9'} +]} +, {id:'28-7-10', text:'level 2-28-7', item:[ + {id:'28-7-0', text:'level 3-28-7-0'} +, {id:'28-7-1', text:'level 3-28-7-1'} +, {id:'28-7-2', text:'level 3-28-7-2'} +, {id:'28-7-3', text:'level 3-28-7-3'} +, {id:'28-7-4', text:'level 3-28-7-4'} +, {id:'28-7-5', text:'level 3-28-7-5'} +, {id:'28-7-6', text:'level 3-28-7-6'} +, {id:'28-7-7', text:'level 3-28-7-7'} +, {id:'28-7-8', text:'level 3-28-7-8'} +, {id:'28-7-9', text:'level 3-28-7-9'} +]} +, {id:'28-8-10', text:'level 2-28-8', item:[ + {id:'28-8-0', text:'level 3-28-8-0'} +, {id:'28-8-1', text:'level 3-28-8-1'} +, {id:'28-8-2', text:'level 3-28-8-2'} +, {id:'28-8-3', text:'level 3-28-8-3'} +, {id:'28-8-4', text:'level 3-28-8-4'} +, {id:'28-8-5', text:'level 3-28-8-5'} +, {id:'28-8-6', text:'level 3-28-8-6'} +, {id:'28-8-7', text:'level 3-28-8-7'} +, {id:'28-8-8', text:'level 3-28-8-8'} +, {id:'28-8-9', text:'level 3-28-8-9'} +]} +, {id:'28-9-10', text:'level 2-28-9', item:[ + {id:'28-9-0', text:'level 3-28-9-0'} +, {id:'28-9-1', text:'level 3-28-9-1'} +, {id:'28-9-2', text:'level 3-28-9-2'} +, {id:'28-9-3', text:'level 3-28-9-3'} +, {id:'28-9-4', text:'level 3-28-9-4'} +, {id:'28-9-5', text:'level 3-28-9-5'} +, {id:'28-9-6', text:'level 3-28-9-6'} +, {id:'28-9-7', text:'level 3-28-9-7'} +, {id:'28-9-8', text:'level 3-28-9-8'} +, {id:'28-9-9', text:'level 3-28-9-9'} +]} +, {id:'28-10-10', text:'level 2-28-10', item:[ + {id:'28-10-0', text:'level 3-28-10-0'} +, {id:'28-10-1', text:'level 3-28-10-1'} +, {id:'28-10-2', text:'level 3-28-10-2'} +, {id:'28-10-3', text:'level 3-28-10-3'} +, {id:'28-10-4', text:'level 3-28-10-4'} +, {id:'28-10-5', text:'level 3-28-10-5'} +, {id:'28-10-6', text:'level 3-28-10-6'} +, {id:'28-10-7', text:'level 3-28-10-7'} +, {id:'28-10-8', text:'level 3-28-10-8'} +, {id:'28-10-9', text:'level 3-28-10-9'} +]} +, {id:'28-11-10', text:'level 2-28-11', item:[ + {id:'28-11-0', text:'level 3-28-11-0'} +, {id:'28-11-1', text:'level 3-28-11-1'} +, {id:'28-11-2', text:'level 3-28-11-2'} +, {id:'28-11-3', text:'level 3-28-11-3'} +, {id:'28-11-4', text:'level 3-28-11-4'} +, {id:'28-11-5', text:'level 3-28-11-5'} +, {id:'28-11-6', text:'level 3-28-11-6'} +, {id:'28-11-7', text:'level 3-28-11-7'} +, {id:'28-11-8', text:'level 3-28-11-8'} +, {id:'28-11-9', text:'level 3-28-11-9'} +]} +, {id:'28-12-10', text:'level 2-28-12', item:[ + {id:'28-12-0', text:'level 3-28-12-0'} +, {id:'28-12-1', text:'level 3-28-12-1'} +, {id:'28-12-2', text:'level 3-28-12-2'} +, {id:'28-12-3', text:'level 3-28-12-3'} +, {id:'28-12-4', text:'level 3-28-12-4'} +, {id:'28-12-5', text:'level 3-28-12-5'} +, {id:'28-12-6', text:'level 3-28-12-6'} +, {id:'28-12-7', text:'level 3-28-12-7'} +, {id:'28-12-8', text:'level 3-28-12-8'} +, {id:'28-12-9', text:'level 3-28-12-9'} +]} +, {id:'28-13-10', text:'level 2-28-13', item:[ + {id:'28-13-0', text:'level 3-28-13-0'} +, {id:'28-13-1', text:'level 3-28-13-1'} +, {id:'28-13-2', text:'level 3-28-13-2'} +, {id:'28-13-3', text:'level 3-28-13-3'} +, {id:'28-13-4', text:'level 3-28-13-4'} +, {id:'28-13-5', text:'level 3-28-13-5'} +, {id:'28-13-6', text:'level 3-28-13-6'} +, {id:'28-13-7', text:'level 3-28-13-7'} +, {id:'28-13-8', text:'level 3-28-13-8'} +, {id:'28-13-9', text:'level 3-28-13-9'} +]} +, {id:'28-14-10', text:'level 2-28-14', item:[ + {id:'28-14-0', text:'level 3-28-14-0'} +, {id:'28-14-1', text:'level 3-28-14-1'} +, {id:'28-14-2', text:'level 3-28-14-2'} +, {id:'28-14-3', text:'level 3-28-14-3'} +, {id:'28-14-4', text:'level 3-28-14-4'} +, {id:'28-14-5', text:'level 3-28-14-5'} +, {id:'28-14-6', text:'level 3-28-14-6'} +, {id:'28-14-7', text:'level 3-28-14-7'} +, {id:'28-14-8', text:'level 3-28-14-8'} +, {id:'28-14-9', text:'level 3-28-14-9'} +]} +, {id:'28-15-10', text:'level 2-28-15', item:[ + {id:'28-15-0', text:'level 3-28-15-0'} +, {id:'28-15-1', text:'level 3-28-15-1'} +, {id:'28-15-2', text:'level 3-28-15-2'} +, {id:'28-15-3', text:'level 3-28-15-3'} +, {id:'28-15-4', text:'level 3-28-15-4'} +, {id:'28-15-5', text:'level 3-28-15-5'} +, {id:'28-15-6', text:'level 3-28-15-6'} +, {id:'28-15-7', text:'level 3-28-15-7'} +, {id:'28-15-8', text:'level 3-28-15-8'} +, {id:'28-15-9', text:'level 3-28-15-9'} +]} +, {id:'28-16-10', text:'level 2-28-16', item:[ + {id:'28-16-0', text:'level 3-28-16-0'} +, {id:'28-16-1', text:'level 3-28-16-1'} +, {id:'28-16-2', text:'level 3-28-16-2'} +, {id:'28-16-3', text:'level 3-28-16-3'} +, {id:'28-16-4', text:'level 3-28-16-4'} +, {id:'28-16-5', text:'level 3-28-16-5'} +, {id:'28-16-6', text:'level 3-28-16-6'} +, {id:'28-16-7', text:'level 3-28-16-7'} +, {id:'28-16-8', text:'level 3-28-16-8'} +, {id:'28-16-9', text:'level 3-28-16-9'} +]} +, {id:'28-17-10', text:'level 2-28-17', item:[ + {id:'28-17-0', text:'level 3-28-17-0'} +, {id:'28-17-1', text:'level 3-28-17-1'} +, {id:'28-17-2', text:'level 3-28-17-2'} +, {id:'28-17-3', text:'level 3-28-17-3'} +, {id:'28-17-4', text:'level 3-28-17-4'} +, {id:'28-17-5', text:'level 3-28-17-5'} +, {id:'28-17-6', text:'level 3-28-17-6'} +, {id:'28-17-7', text:'level 3-28-17-7'} +, {id:'28-17-8', text:'level 3-28-17-8'} +, {id:'28-17-9', text:'level 3-28-17-9'} +]} +, {id:'28-18-10', text:'level 2-28-18', item:[ + {id:'28-18-0', text:'level 3-28-18-0'} +, {id:'28-18-1', text:'level 3-28-18-1'} +, {id:'28-18-2', text:'level 3-28-18-2'} +, {id:'28-18-3', text:'level 3-28-18-3'} +, {id:'28-18-4', text:'level 3-28-18-4'} +, {id:'28-18-5', text:'level 3-28-18-5'} +, {id:'28-18-6', text:'level 3-28-18-6'} +, {id:'28-18-7', text:'level 3-28-18-7'} +, {id:'28-18-8', text:'level 3-28-18-8'} +, {id:'28-18-9', text:'level 3-28-18-9'} +]} +, {id:'28-19-10', text:'level 2-28-19', item:[ + {id:'28-19-0', text:'level 3-28-19-0'} +, {id:'28-19-1', text:'level 3-28-19-1'} +, {id:'28-19-2', text:'level 3-28-19-2'} +, {id:'28-19-3', text:'level 3-28-19-3'} +, {id:'28-19-4', text:'level 3-28-19-4'} +, {id:'28-19-5', text:'level 3-28-19-5'} +, {id:'28-19-6', text:'level 3-28-19-6'} +, {id:'28-19-7', text:'level 3-28-19-7'} +, {id:'28-19-8', text:'level 3-28-19-8'} +, {id:'28-19-9', text:'level 3-28-19-9'} +]} +]} +,{id:'29-20-10', text:'level 1-29', item:[ + {id:'29-0-10', text:'level 2-29-0', item:[ + {id:'29-0-0', text:'level 3-29-0-0'} +, {id:'29-0-1', text:'level 3-29-0-1'} +, {id:'29-0-2', text:'level 3-29-0-2'} +, {id:'29-0-3', text:'level 3-29-0-3'} +, {id:'29-0-4', text:'level 3-29-0-4'} +, {id:'29-0-5', text:'level 3-29-0-5'} +, {id:'29-0-6', text:'level 3-29-0-6'} +, {id:'29-0-7', text:'level 3-29-0-7'} +, {id:'29-0-8', text:'level 3-29-0-8'} +, {id:'29-0-9', text:'level 3-29-0-9'} +]} +, {id:'29-1-10', text:'level 2-29-1', item:[ + {id:'29-1-0', text:'level 3-29-1-0'} +, {id:'29-1-1', text:'level 3-29-1-1'} +, {id:'29-1-2', text:'level 3-29-1-2'} +, {id:'29-1-3', text:'level 3-29-1-3'} +, {id:'29-1-4', text:'level 3-29-1-4'} +, {id:'29-1-5', text:'level 3-29-1-5'} +, {id:'29-1-6', text:'level 3-29-1-6'} +, {id:'29-1-7', text:'level 3-29-1-7'} +, {id:'29-1-8', text:'level 3-29-1-8'} +, {id:'29-1-9', text:'level 3-29-1-9'} +]} +, {id:'29-2-10', text:'level 2-29-2', item:[ + {id:'29-2-0', text:'level 3-29-2-0'} +, {id:'29-2-1', text:'level 3-29-2-1'} +, {id:'29-2-2', text:'level 3-29-2-2'} +, {id:'29-2-3', text:'level 3-29-2-3'} +, {id:'29-2-4', text:'level 3-29-2-4'} +, {id:'29-2-5', text:'level 3-29-2-5'} +, {id:'29-2-6', text:'level 3-29-2-6'} +, {id:'29-2-7', text:'level 3-29-2-7'} +, {id:'29-2-8', text:'level 3-29-2-8'} +, {id:'29-2-9', text:'level 3-29-2-9'} +]} +, {id:'29-3-10', text:'level 2-29-3', item:[ + {id:'29-3-0', text:'level 3-29-3-0'} +, {id:'29-3-1', text:'level 3-29-3-1'} +, {id:'29-3-2', text:'level 3-29-3-2'} +, {id:'29-3-3', text:'level 3-29-3-3'} +, {id:'29-3-4', text:'level 3-29-3-4'} +, {id:'29-3-5', text:'level 3-29-3-5'} +, {id:'29-3-6', text:'level 3-29-3-6'} +, {id:'29-3-7', text:'level 3-29-3-7'} +, {id:'29-3-8', text:'level 3-29-3-8'} +, {id:'29-3-9', text:'level 3-29-3-9'} +]} +, {id:'29-4-10', text:'level 2-29-4', item:[ + {id:'29-4-0', text:'level 3-29-4-0'} +, {id:'29-4-1', text:'level 3-29-4-1'} +, {id:'29-4-2', text:'level 3-29-4-2'} +, {id:'29-4-3', text:'level 3-29-4-3'} +, {id:'29-4-4', text:'level 3-29-4-4'} +, {id:'29-4-5', text:'level 3-29-4-5'} +, {id:'29-4-6', text:'level 3-29-4-6'} +, {id:'29-4-7', text:'level 3-29-4-7'} +, {id:'29-4-8', text:'level 3-29-4-8'} +, {id:'29-4-9', text:'level 3-29-4-9'} +]} +, {id:'29-5-10', text:'level 2-29-5', item:[ + {id:'29-5-0', text:'level 3-29-5-0'} +, {id:'29-5-1', text:'level 3-29-5-1'} +, {id:'29-5-2', text:'level 3-29-5-2'} +, {id:'29-5-3', text:'level 3-29-5-3'} +, {id:'29-5-4', text:'level 3-29-5-4'} +, {id:'29-5-5', text:'level 3-29-5-5'} +, {id:'29-5-6', text:'level 3-29-5-6'} +, {id:'29-5-7', text:'level 3-29-5-7'} +, {id:'29-5-8', text:'level 3-29-5-8'} +, {id:'29-5-9', text:'level 3-29-5-9'} +]} +, {id:'29-6-10', text:'level 2-29-6', item:[ + {id:'29-6-0', text:'level 3-29-6-0'} +, {id:'29-6-1', text:'level 3-29-6-1'} +, {id:'29-6-2', text:'level 3-29-6-2'} +, {id:'29-6-3', text:'level 3-29-6-3'} +, {id:'29-6-4', text:'level 3-29-6-4'} +, {id:'29-6-5', text:'level 3-29-6-5'} +, {id:'29-6-6', text:'level 3-29-6-6'} +, {id:'29-6-7', text:'level 3-29-6-7'} +, {id:'29-6-8', text:'level 3-29-6-8'} +, {id:'29-6-9', text:'level 3-29-6-9'} +]} +, {id:'29-7-10', text:'level 2-29-7', item:[ + {id:'29-7-0', text:'level 3-29-7-0'} +, {id:'29-7-1', text:'level 3-29-7-1'} +, {id:'29-7-2', text:'level 3-29-7-2'} +, {id:'29-7-3', text:'level 3-29-7-3'} +, {id:'29-7-4', text:'level 3-29-7-4'} +, {id:'29-7-5', text:'level 3-29-7-5'} +, {id:'29-7-6', text:'level 3-29-7-6'} +, {id:'29-7-7', text:'level 3-29-7-7'} +, {id:'29-7-8', text:'level 3-29-7-8'} +, {id:'29-7-9', text:'level 3-29-7-9'} +]} +, {id:'29-8-10', text:'level 2-29-8', item:[ + {id:'29-8-0', text:'level 3-29-8-0'} +, {id:'29-8-1', text:'level 3-29-8-1'} +, {id:'29-8-2', text:'level 3-29-8-2'} +, {id:'29-8-3', text:'level 3-29-8-3'} +, {id:'29-8-4', text:'level 3-29-8-4'} +, {id:'29-8-5', text:'level 3-29-8-5'} +, {id:'29-8-6', text:'level 3-29-8-6'} +, {id:'29-8-7', text:'level 3-29-8-7'} +, {id:'29-8-8', text:'level 3-29-8-8'} +, {id:'29-8-9', text:'level 3-29-8-9'} +]} +, {id:'29-9-10', text:'level 2-29-9', item:[ + {id:'29-9-0', text:'level 3-29-9-0'} +, {id:'29-9-1', text:'level 3-29-9-1'} +, {id:'29-9-2', text:'level 3-29-9-2'} +, {id:'29-9-3', text:'level 3-29-9-3'} +, {id:'29-9-4', text:'level 3-29-9-4'} +, {id:'29-9-5', text:'level 3-29-9-5'} +, {id:'29-9-6', text:'level 3-29-9-6'} +, {id:'29-9-7', text:'level 3-29-9-7'} +, {id:'29-9-8', text:'level 3-29-9-8'} +, {id:'29-9-9', text:'level 3-29-9-9'} +]} +, {id:'29-10-10', text:'level 2-29-10', item:[ + {id:'29-10-0', text:'level 3-29-10-0'} +, {id:'29-10-1', text:'level 3-29-10-1'} +, {id:'29-10-2', text:'level 3-29-10-2'} +, {id:'29-10-3', text:'level 3-29-10-3'} +, {id:'29-10-4', text:'level 3-29-10-4'} +, {id:'29-10-5', text:'level 3-29-10-5'} +, {id:'29-10-6', text:'level 3-29-10-6'} +, {id:'29-10-7', text:'level 3-29-10-7'} +, {id:'29-10-8', text:'level 3-29-10-8'} +, {id:'29-10-9', text:'level 3-29-10-9'} +]} +, {id:'29-11-10', text:'level 2-29-11', item:[ + {id:'29-11-0', text:'level 3-29-11-0'} +, {id:'29-11-1', text:'level 3-29-11-1'} +, {id:'29-11-2', text:'level 3-29-11-2'} +, {id:'29-11-3', text:'level 3-29-11-3'} +, {id:'29-11-4', text:'level 3-29-11-4'} +, {id:'29-11-5', text:'level 3-29-11-5'} +, {id:'29-11-6', text:'level 3-29-11-6'} +, {id:'29-11-7', text:'level 3-29-11-7'} +, {id:'29-11-8', text:'level 3-29-11-8'} +, {id:'29-11-9', text:'level 3-29-11-9'} +]} +, {id:'29-12-10', text:'level 2-29-12', item:[ + {id:'29-12-0', text:'level 3-29-12-0'} +, {id:'29-12-1', text:'level 3-29-12-1'} +, {id:'29-12-2', text:'level 3-29-12-2'} +, {id:'29-12-3', text:'level 3-29-12-3'} +, {id:'29-12-4', text:'level 3-29-12-4'} +, {id:'29-12-5', text:'level 3-29-12-5'} +, {id:'29-12-6', text:'level 3-29-12-6'} +, {id:'29-12-7', text:'level 3-29-12-7'} +, {id:'29-12-8', text:'level 3-29-12-8'} +, {id:'29-12-9', text:'level 3-29-12-9'} +]} +, {id:'29-13-10', text:'level 2-29-13', item:[ + {id:'29-13-0', text:'level 3-29-13-0'} +, {id:'29-13-1', text:'level 3-29-13-1'} +, {id:'29-13-2', text:'level 3-29-13-2'} +, {id:'29-13-3', text:'level 3-29-13-3'} +, {id:'29-13-4', text:'level 3-29-13-4'} +, {id:'29-13-5', text:'level 3-29-13-5'} +, {id:'29-13-6', text:'level 3-29-13-6'} +, {id:'29-13-7', text:'level 3-29-13-7'} +, {id:'29-13-8', text:'level 3-29-13-8'} +, {id:'29-13-9', text:'level 3-29-13-9'} +]} +, {id:'29-14-10', text:'level 2-29-14', item:[ + {id:'29-14-0', text:'level 3-29-14-0'} +, {id:'29-14-1', text:'level 3-29-14-1'} +, {id:'29-14-2', text:'level 3-29-14-2'} +, {id:'29-14-3', text:'level 3-29-14-3'} +, {id:'29-14-4', text:'level 3-29-14-4'} +, {id:'29-14-5', text:'level 3-29-14-5'} +, {id:'29-14-6', text:'level 3-29-14-6'} +, {id:'29-14-7', text:'level 3-29-14-7'} +, {id:'29-14-8', text:'level 3-29-14-8'} +, {id:'29-14-9', text:'level 3-29-14-9'} +]} +, {id:'29-15-10', text:'level 2-29-15', item:[ + {id:'29-15-0', text:'level 3-29-15-0'} +, {id:'29-15-1', text:'level 3-29-15-1'} +, {id:'29-15-2', text:'level 3-29-15-2'} +, {id:'29-15-3', text:'level 3-29-15-3'} +, {id:'29-15-4', text:'level 3-29-15-4'} +, {id:'29-15-5', text:'level 3-29-15-5'} +, {id:'29-15-6', text:'level 3-29-15-6'} +, {id:'29-15-7', text:'level 3-29-15-7'} +, {id:'29-15-8', text:'level 3-29-15-8'} +, {id:'29-15-9', text:'level 3-29-15-9'} +]} +, {id:'29-16-10', text:'level 2-29-16', item:[ + {id:'29-16-0', text:'level 3-29-16-0'} +, {id:'29-16-1', text:'level 3-29-16-1'} +, {id:'29-16-2', text:'level 3-29-16-2'} +, {id:'29-16-3', text:'level 3-29-16-3'} +, {id:'29-16-4', text:'level 3-29-16-4'} +, {id:'29-16-5', text:'level 3-29-16-5'} +, {id:'29-16-6', text:'level 3-29-16-6'} +, {id:'29-16-7', text:'level 3-29-16-7'} +, {id:'29-16-8', text:'level 3-29-16-8'} +, {id:'29-16-9', text:'level 3-29-16-9'} +]} +, {id:'29-17-10', text:'level 2-29-17', item:[ + {id:'29-17-0', text:'level 3-29-17-0'} +, {id:'29-17-1', text:'level 3-29-17-1'} +, {id:'29-17-2', text:'level 3-29-17-2'} +, {id:'29-17-3', text:'level 3-29-17-3'} +, {id:'29-17-4', text:'level 3-29-17-4'} +, {id:'29-17-5', text:'level 3-29-17-5'} +, {id:'29-17-6', text:'level 3-29-17-6'} +, {id:'29-17-7', text:'level 3-29-17-7'} +, {id:'29-17-8', text:'level 3-29-17-8'} +, {id:'29-17-9', text:'level 3-29-17-9'} +]} +, {id:'29-18-10', text:'level 2-29-18', item:[ + {id:'29-18-0', text:'level 3-29-18-0'} +, {id:'29-18-1', text:'level 3-29-18-1'} +, {id:'29-18-2', text:'level 3-29-18-2'} +, {id:'29-18-3', text:'level 3-29-18-3'} +, {id:'29-18-4', text:'level 3-29-18-4'} +, {id:'29-18-5', text:'level 3-29-18-5'} +, {id:'29-18-6', text:'level 3-29-18-6'} +, {id:'29-18-7', text:'level 3-29-18-7'} +, {id:'29-18-8', text:'level 3-29-18-8'} +, {id:'29-18-9', text:'level 3-29-18-9'} +]} +, {id:'29-19-10', text:'level 2-29-19', item:[ + {id:'29-19-0', text:'level 3-29-19-0'} +, {id:'29-19-1', text:'level 3-29-19-1'} +, {id:'29-19-2', text:'level 3-29-19-2'} +, {id:'29-19-3', text:'level 3-29-19-3'} +, {id:'29-19-4', text:'level 3-29-19-4'} +, {id:'29-19-5', text:'level 3-29-19-5'} +, {id:'29-19-6', text:'level 3-29-19-6'} +, {id:'29-19-7', text:'level 3-29-19-7'} +, {id:'29-19-8', text:'level 3-29-19-8'} +, {id:'29-19-9', text:'level 3-29-19-9'} +]} +]} +,{id:'30-20-10', text:'level 1-30', item:[ + {id:'30-0-10', text:'level 2-30-0', item:[ + {id:'30-0-0', text:'level 3-30-0-0'} +, {id:'30-0-1', text:'level 3-30-0-1'} +, {id:'30-0-2', text:'level 3-30-0-2'} +, {id:'30-0-3', text:'level 3-30-0-3'} +, {id:'30-0-4', text:'level 3-30-0-4'} +, {id:'30-0-5', text:'level 3-30-0-5'} +, {id:'30-0-6', text:'level 3-30-0-6'} +, {id:'30-0-7', text:'level 3-30-0-7'} +, {id:'30-0-8', text:'level 3-30-0-8'} +, {id:'30-0-9', text:'level 3-30-0-9'} +]} +, {id:'30-1-10', text:'level 2-30-1', item:[ + {id:'30-1-0', text:'level 3-30-1-0'} +, {id:'30-1-1', text:'level 3-30-1-1'} +, {id:'30-1-2', text:'level 3-30-1-2'} +, {id:'30-1-3', text:'level 3-30-1-3'} +, {id:'30-1-4', text:'level 3-30-1-4'} +, {id:'30-1-5', text:'level 3-30-1-5'} +, {id:'30-1-6', text:'level 3-30-1-6'} +, {id:'30-1-7', text:'level 3-30-1-7'} +, {id:'30-1-8', text:'level 3-30-1-8'} +, {id:'30-1-9', text:'level 3-30-1-9'} +]} +, {id:'30-2-10', text:'level 2-30-2', item:[ + {id:'30-2-0', text:'level 3-30-2-0'} +, {id:'30-2-1', text:'level 3-30-2-1'} +, {id:'30-2-2', text:'level 3-30-2-2'} +, {id:'30-2-3', text:'level 3-30-2-3'} +, {id:'30-2-4', text:'level 3-30-2-4'} +, {id:'30-2-5', text:'level 3-30-2-5'} +, {id:'30-2-6', text:'level 3-30-2-6'} +, {id:'30-2-7', text:'level 3-30-2-7'} +, {id:'30-2-8', text:'level 3-30-2-8'} +, {id:'30-2-9', text:'level 3-30-2-9'} +]} +, {id:'30-3-10', text:'level 2-30-3', item:[ + {id:'30-3-0', text:'level 3-30-3-0'} +, {id:'30-3-1', text:'level 3-30-3-1'} +, {id:'30-3-2', text:'level 3-30-3-2'} +, {id:'30-3-3', text:'level 3-30-3-3'} +, {id:'30-3-4', text:'level 3-30-3-4'} +, {id:'30-3-5', text:'level 3-30-3-5'} +, {id:'30-3-6', text:'level 3-30-3-6'} +, {id:'30-3-7', text:'level 3-30-3-7'} +, {id:'30-3-8', text:'level 3-30-3-8'} +, {id:'30-3-9', text:'level 3-30-3-9'} +]} +, {id:'30-4-10', text:'level 2-30-4', item:[ + {id:'30-4-0', text:'level 3-30-4-0'} +, {id:'30-4-1', text:'level 3-30-4-1'} +, {id:'30-4-2', text:'level 3-30-4-2'} +, {id:'30-4-3', text:'level 3-30-4-3'} +, {id:'30-4-4', text:'level 3-30-4-4'} +, {id:'30-4-5', text:'level 3-30-4-5'} +, {id:'30-4-6', text:'level 3-30-4-6'} +, {id:'30-4-7', text:'level 3-30-4-7'} +, {id:'30-4-8', text:'level 3-30-4-8'} +, {id:'30-4-9', text:'level 3-30-4-9'} +]} +, {id:'30-5-10', text:'level 2-30-5', item:[ + {id:'30-5-0', text:'level 3-30-5-0'} +, {id:'30-5-1', text:'level 3-30-5-1'} +, {id:'30-5-2', text:'level 3-30-5-2'} +, {id:'30-5-3', text:'level 3-30-5-3'} +, {id:'30-5-4', text:'level 3-30-5-4'} +, {id:'30-5-5', text:'level 3-30-5-5'} +, {id:'30-5-6', text:'level 3-30-5-6'} +, {id:'30-5-7', text:'level 3-30-5-7'} +, {id:'30-5-8', text:'level 3-30-5-8'} +, {id:'30-5-9', text:'level 3-30-5-9'} +]} +, {id:'30-6-10', text:'level 2-30-6', item:[ + {id:'30-6-0', text:'level 3-30-6-0'} +, {id:'30-6-1', text:'level 3-30-6-1'} +, {id:'30-6-2', text:'level 3-30-6-2'} +, {id:'30-6-3', text:'level 3-30-6-3'} +, {id:'30-6-4', text:'level 3-30-6-4'} +, {id:'30-6-5', text:'level 3-30-6-5'} +, {id:'30-6-6', text:'level 3-30-6-6'} +, {id:'30-6-7', text:'level 3-30-6-7'} +, {id:'30-6-8', text:'level 3-30-6-8'} +, {id:'30-6-9', text:'level 3-30-6-9'} +]} +, {id:'30-7-10', text:'level 2-30-7', item:[ + {id:'30-7-0', text:'level 3-30-7-0'} +, {id:'30-7-1', text:'level 3-30-7-1'} +, {id:'30-7-2', text:'level 3-30-7-2'} +, {id:'30-7-3', text:'level 3-30-7-3'} +, {id:'30-7-4', text:'level 3-30-7-4'} +, {id:'30-7-5', text:'level 3-30-7-5'} +, {id:'30-7-6', text:'level 3-30-7-6'} +, {id:'30-7-7', text:'level 3-30-7-7'} +, {id:'30-7-8', text:'level 3-30-7-8'} +, {id:'30-7-9', text:'level 3-30-7-9'} +]} +, {id:'30-8-10', text:'level 2-30-8', item:[ + {id:'30-8-0', text:'level 3-30-8-0'} +, {id:'30-8-1', text:'level 3-30-8-1'} +, {id:'30-8-2', text:'level 3-30-8-2'} +, {id:'30-8-3', text:'level 3-30-8-3'} +, {id:'30-8-4', text:'level 3-30-8-4'} +, {id:'30-8-5', text:'level 3-30-8-5'} +, {id:'30-8-6', text:'level 3-30-8-6'} +, {id:'30-8-7', text:'level 3-30-8-7'} +, {id:'30-8-8', text:'level 3-30-8-8'} +, {id:'30-8-9', text:'level 3-30-8-9'} +]} +, {id:'30-9-10', text:'level 2-30-9', item:[ + {id:'30-9-0', text:'level 3-30-9-0'} +, {id:'30-9-1', text:'level 3-30-9-1'} +, {id:'30-9-2', text:'level 3-30-9-2'} +, {id:'30-9-3', text:'level 3-30-9-3'} +, {id:'30-9-4', text:'level 3-30-9-4'} +, {id:'30-9-5', text:'level 3-30-9-5'} +, {id:'30-9-6', text:'level 3-30-9-6'} +, {id:'30-9-7', text:'level 3-30-9-7'} +, {id:'30-9-8', text:'level 3-30-9-8'} +, {id:'30-9-9', text:'level 3-30-9-9'} +]} +, {id:'30-10-10', text:'level 2-30-10', item:[ + {id:'30-10-0', text:'level 3-30-10-0'} +, {id:'30-10-1', text:'level 3-30-10-1'} +, {id:'30-10-2', text:'level 3-30-10-2'} +, {id:'30-10-3', text:'level 3-30-10-3'} +, {id:'30-10-4', text:'level 3-30-10-4'} +, {id:'30-10-5', text:'level 3-30-10-5'} +, {id:'30-10-6', text:'level 3-30-10-6'} +, {id:'30-10-7', text:'level 3-30-10-7'} +, {id:'30-10-8', text:'level 3-30-10-8'} +, {id:'30-10-9', text:'level 3-30-10-9'} +]} +, {id:'30-11-10', text:'level 2-30-11', item:[ + {id:'30-11-0', text:'level 3-30-11-0'} +, {id:'30-11-1', text:'level 3-30-11-1'} +, {id:'30-11-2', text:'level 3-30-11-2'} +, {id:'30-11-3', text:'level 3-30-11-3'} +, {id:'30-11-4', text:'level 3-30-11-4'} +, {id:'30-11-5', text:'level 3-30-11-5'} +, {id:'30-11-6', text:'level 3-30-11-6'} +, {id:'30-11-7', text:'level 3-30-11-7'} +, {id:'30-11-8', text:'level 3-30-11-8'} +, {id:'30-11-9', text:'level 3-30-11-9'} +]} +, {id:'30-12-10', text:'level 2-30-12', item:[ + {id:'30-12-0', text:'level 3-30-12-0'} +, {id:'30-12-1', text:'level 3-30-12-1'} +, {id:'30-12-2', text:'level 3-30-12-2'} +, {id:'30-12-3', text:'level 3-30-12-3'} +, {id:'30-12-4', text:'level 3-30-12-4'} +, {id:'30-12-5', text:'level 3-30-12-5'} +, {id:'30-12-6', text:'level 3-30-12-6'} +, {id:'30-12-7', text:'level 3-30-12-7'} +, {id:'30-12-8', text:'level 3-30-12-8'} +, {id:'30-12-9', text:'level 3-30-12-9'} +]} +, {id:'30-13-10', text:'level 2-30-13', item:[ + {id:'30-13-0', text:'level 3-30-13-0'} +, {id:'30-13-1', text:'level 3-30-13-1'} +, {id:'30-13-2', text:'level 3-30-13-2'} +, {id:'30-13-3', text:'level 3-30-13-3'} +, {id:'30-13-4', text:'level 3-30-13-4'} +, {id:'30-13-5', text:'level 3-30-13-5'} +, {id:'30-13-6', text:'level 3-30-13-6'} +, {id:'30-13-7', text:'level 3-30-13-7'} +, {id:'30-13-8', text:'level 3-30-13-8'} +, {id:'30-13-9', text:'level 3-30-13-9'} +]} +, {id:'30-14-10', text:'level 2-30-14', item:[ + {id:'30-14-0', text:'level 3-30-14-0'} +, {id:'30-14-1', text:'level 3-30-14-1'} +, {id:'30-14-2', text:'level 3-30-14-2'} +, {id:'30-14-3', text:'level 3-30-14-3'} +, {id:'30-14-4', text:'level 3-30-14-4'} +, {id:'30-14-5', text:'level 3-30-14-5'} +, {id:'30-14-6', text:'level 3-30-14-6'} +, {id:'30-14-7', text:'level 3-30-14-7'} +, {id:'30-14-8', text:'level 3-30-14-8'} +, {id:'30-14-9', text:'level 3-30-14-9'} +]} +, {id:'30-15-10', text:'level 2-30-15', item:[ + {id:'30-15-0', text:'level 3-30-15-0'} +, {id:'30-15-1', text:'level 3-30-15-1'} +, {id:'30-15-2', text:'level 3-30-15-2'} +, {id:'30-15-3', text:'level 3-30-15-3'} +, {id:'30-15-4', text:'level 3-30-15-4'} +, {id:'30-15-5', text:'level 3-30-15-5'} +, {id:'30-15-6', text:'level 3-30-15-6'} +, {id:'30-15-7', text:'level 3-30-15-7'} +, {id:'30-15-8', text:'level 3-30-15-8'} +, {id:'30-15-9', text:'level 3-30-15-9'} +]} +, {id:'30-16-10', text:'level 2-30-16', item:[ + {id:'30-16-0', text:'level 3-30-16-0'} +, {id:'30-16-1', text:'level 3-30-16-1'} +, {id:'30-16-2', text:'level 3-30-16-2'} +, {id:'30-16-3', text:'level 3-30-16-3'} +, {id:'30-16-4', text:'level 3-30-16-4'} +, {id:'30-16-5', text:'level 3-30-16-5'} +, {id:'30-16-6', text:'level 3-30-16-6'} +, {id:'30-16-7', text:'level 3-30-16-7'} +, {id:'30-16-8', text:'level 3-30-16-8'} +, {id:'30-16-9', text:'level 3-30-16-9'} +]} +, {id:'30-17-10', text:'level 2-30-17', item:[ + {id:'30-17-0', text:'level 3-30-17-0'} +, {id:'30-17-1', text:'level 3-30-17-1'} +, {id:'30-17-2', text:'level 3-30-17-2'} +, {id:'30-17-3', text:'level 3-30-17-3'} +, {id:'30-17-4', text:'level 3-30-17-4'} +, {id:'30-17-5', text:'level 3-30-17-5'} +, {id:'30-17-6', text:'level 3-30-17-6'} +, {id:'30-17-7', text:'level 3-30-17-7'} +, {id:'30-17-8', text:'level 3-30-17-8'} +, {id:'30-17-9', text:'level 3-30-17-9'} +]} +, {id:'30-18-10', text:'level 2-30-18', item:[ + {id:'30-18-0', text:'level 3-30-18-0'} +, {id:'30-18-1', text:'level 3-30-18-1'} +, {id:'30-18-2', text:'level 3-30-18-2'} +, {id:'30-18-3', text:'level 3-30-18-3'} +, {id:'30-18-4', text:'level 3-30-18-4'} +, {id:'30-18-5', text:'level 3-30-18-5'} +, {id:'30-18-6', text:'level 3-30-18-6'} +, {id:'30-18-7', text:'level 3-30-18-7'} +, {id:'30-18-8', text:'level 3-30-18-8'} +, {id:'30-18-9', text:'level 3-30-18-9'} +]} +, {id:'30-19-10', text:'level 2-30-19', item:[ + {id:'30-19-0', text:'level 3-30-19-0'} +, {id:'30-19-1', text:'level 3-30-19-1'} +, {id:'30-19-2', text:'level 3-30-19-2'} +, {id:'30-19-3', text:'level 3-30-19-3'} +, {id:'30-19-4', text:'level 3-30-19-4'} +, {id:'30-19-5', text:'level 3-30-19-5'} +, {id:'30-19-6', text:'level 3-30-19-6'} +, {id:'30-19-7', text:'level 3-30-19-7'} +, {id:'30-19-8', text:'level 3-30-19-8'} +, {id:'30-19-9', text:'level 3-30-19-9'} +]} +]} +,{id:'31-20-10', text:'level 1-31', item:[ + {id:'31-0-10', text:'level 2-31-0', item:[ + {id:'31-0-0', text:'level 3-31-0-0'} +, {id:'31-0-1', text:'level 3-31-0-1'} +, {id:'31-0-2', text:'level 3-31-0-2'} +, {id:'31-0-3', text:'level 3-31-0-3'} +, {id:'31-0-4', text:'level 3-31-0-4'} +, {id:'31-0-5', text:'level 3-31-0-5'} +, {id:'31-0-6', text:'level 3-31-0-6'} +, {id:'31-0-7', text:'level 3-31-0-7'} +, {id:'31-0-8', text:'level 3-31-0-8'} +, {id:'31-0-9', text:'level 3-31-0-9'} +]} +, {id:'31-1-10', text:'level 2-31-1', item:[ + {id:'31-1-0', text:'level 3-31-1-0'} +, {id:'31-1-1', text:'level 3-31-1-1'} +, {id:'31-1-2', text:'level 3-31-1-2'} +, {id:'31-1-3', text:'level 3-31-1-3'} +, {id:'31-1-4', text:'level 3-31-1-4'} +, {id:'31-1-5', text:'level 3-31-1-5'} +, {id:'31-1-6', text:'level 3-31-1-6'} +, {id:'31-1-7', text:'level 3-31-1-7'} +, {id:'31-1-8', text:'level 3-31-1-8'} +, {id:'31-1-9', text:'level 3-31-1-9'} +]} +, {id:'31-2-10', text:'level 2-31-2', item:[ + {id:'31-2-0', text:'level 3-31-2-0'} +, {id:'31-2-1', text:'level 3-31-2-1'} +, {id:'31-2-2', text:'level 3-31-2-2'} +, {id:'31-2-3', text:'level 3-31-2-3'} +, {id:'31-2-4', text:'level 3-31-2-4'} +, {id:'31-2-5', text:'level 3-31-2-5'} +, {id:'31-2-6', text:'level 3-31-2-6'} +, {id:'31-2-7', text:'level 3-31-2-7'} +, {id:'31-2-8', text:'level 3-31-2-8'} +, {id:'31-2-9', text:'level 3-31-2-9'} +]} +, {id:'31-3-10', text:'level 2-31-3', item:[ + {id:'31-3-0', text:'level 3-31-3-0'} +, {id:'31-3-1', text:'level 3-31-3-1'} +, {id:'31-3-2', text:'level 3-31-3-2'} +, {id:'31-3-3', text:'level 3-31-3-3'} +, {id:'31-3-4', text:'level 3-31-3-4'} +, {id:'31-3-5', text:'level 3-31-3-5'} +, {id:'31-3-6', text:'level 3-31-3-6'} +, {id:'31-3-7', text:'level 3-31-3-7'} +, {id:'31-3-8', text:'level 3-31-3-8'} +, {id:'31-3-9', text:'level 3-31-3-9'} +]} +, {id:'31-4-10', text:'level 2-31-4', item:[ + {id:'31-4-0', text:'level 3-31-4-0'} +, {id:'31-4-1', text:'level 3-31-4-1'} +, {id:'31-4-2', text:'level 3-31-4-2'} +, {id:'31-4-3', text:'level 3-31-4-3'} +, {id:'31-4-4', text:'level 3-31-4-4'} +, {id:'31-4-5', text:'level 3-31-4-5'} +, {id:'31-4-6', text:'level 3-31-4-6'} +, {id:'31-4-7', text:'level 3-31-4-7'} +, {id:'31-4-8', text:'level 3-31-4-8'} +, {id:'31-4-9', text:'level 3-31-4-9'} +]} +, {id:'31-5-10', text:'level 2-31-5', item:[ + {id:'31-5-0', text:'level 3-31-5-0'} +, {id:'31-5-1', text:'level 3-31-5-1'} +, {id:'31-5-2', text:'level 3-31-5-2'} +, {id:'31-5-3', text:'level 3-31-5-3'} +, {id:'31-5-4', text:'level 3-31-5-4'} +, {id:'31-5-5', text:'level 3-31-5-5'} +, {id:'31-5-6', text:'level 3-31-5-6'} +, {id:'31-5-7', text:'level 3-31-5-7'} +, {id:'31-5-8', text:'level 3-31-5-8'} +, {id:'31-5-9', text:'level 3-31-5-9'} +]} +, {id:'31-6-10', text:'level 2-31-6', item:[ + {id:'31-6-0', text:'level 3-31-6-0'} +, {id:'31-6-1', text:'level 3-31-6-1'} +, {id:'31-6-2', text:'level 3-31-6-2'} +, {id:'31-6-3', text:'level 3-31-6-3'} +, {id:'31-6-4', text:'level 3-31-6-4'} +, {id:'31-6-5', text:'level 3-31-6-5'} +, {id:'31-6-6', text:'level 3-31-6-6'} +, {id:'31-6-7', text:'level 3-31-6-7'} +, {id:'31-6-8', text:'level 3-31-6-8'} +, {id:'31-6-9', text:'level 3-31-6-9'} +]} +, {id:'31-7-10', text:'level 2-31-7', item:[ + {id:'31-7-0', text:'level 3-31-7-0'} +, {id:'31-7-1', text:'level 3-31-7-1'} +, {id:'31-7-2', text:'level 3-31-7-2'} +, {id:'31-7-3', text:'level 3-31-7-3'} +, {id:'31-7-4', text:'level 3-31-7-4'} +, {id:'31-7-5', text:'level 3-31-7-5'} +, {id:'31-7-6', text:'level 3-31-7-6'} +, {id:'31-7-7', text:'level 3-31-7-7'} +, {id:'31-7-8', text:'level 3-31-7-8'} +, {id:'31-7-9', text:'level 3-31-7-9'} +]} +, {id:'31-8-10', text:'level 2-31-8', item:[ + {id:'31-8-0', text:'level 3-31-8-0'} +, {id:'31-8-1', text:'level 3-31-8-1'} +, {id:'31-8-2', text:'level 3-31-8-2'} +, {id:'31-8-3', text:'level 3-31-8-3'} +, {id:'31-8-4', text:'level 3-31-8-4'} +, {id:'31-8-5', text:'level 3-31-8-5'} +, {id:'31-8-6', text:'level 3-31-8-6'} +, {id:'31-8-7', text:'level 3-31-8-7'} +, {id:'31-8-8', text:'level 3-31-8-8'} +, {id:'31-8-9', text:'level 3-31-8-9'} +]} +, {id:'31-9-10', text:'level 2-31-9', item:[ + {id:'31-9-0', text:'level 3-31-9-0'} +, {id:'31-9-1', text:'level 3-31-9-1'} +, {id:'31-9-2', text:'level 3-31-9-2'} +, {id:'31-9-3', text:'level 3-31-9-3'} +, {id:'31-9-4', text:'level 3-31-9-4'} +, {id:'31-9-5', text:'level 3-31-9-5'} +, {id:'31-9-6', text:'level 3-31-9-6'} +, {id:'31-9-7', text:'level 3-31-9-7'} +, {id:'31-9-8', text:'level 3-31-9-8'} +, {id:'31-9-9', text:'level 3-31-9-9'} +]} +, {id:'31-10-10', text:'level 2-31-10', item:[ + {id:'31-10-0', text:'level 3-31-10-0'} +, {id:'31-10-1', text:'level 3-31-10-1'} +, {id:'31-10-2', text:'level 3-31-10-2'} +, {id:'31-10-3', text:'level 3-31-10-3'} +, {id:'31-10-4', text:'level 3-31-10-4'} +, {id:'31-10-5', text:'level 3-31-10-5'} +, {id:'31-10-6', text:'level 3-31-10-6'} +, {id:'31-10-7', text:'level 3-31-10-7'} +, {id:'31-10-8', text:'level 3-31-10-8'} +, {id:'31-10-9', text:'level 3-31-10-9'} +]} +, {id:'31-11-10', text:'level 2-31-11', item:[ + {id:'31-11-0', text:'level 3-31-11-0'} +, {id:'31-11-1', text:'level 3-31-11-1'} +, {id:'31-11-2', text:'level 3-31-11-2'} +, {id:'31-11-3', text:'level 3-31-11-3'} +, {id:'31-11-4', text:'level 3-31-11-4'} +, {id:'31-11-5', text:'level 3-31-11-5'} +, {id:'31-11-6', text:'level 3-31-11-6'} +, {id:'31-11-7', text:'level 3-31-11-7'} +, {id:'31-11-8', text:'level 3-31-11-8'} +, {id:'31-11-9', text:'level 3-31-11-9'} +]} +, {id:'31-12-10', text:'level 2-31-12', item:[ + {id:'31-12-0', text:'level 3-31-12-0'} +, {id:'31-12-1', text:'level 3-31-12-1'} +, {id:'31-12-2', text:'level 3-31-12-2'} +, {id:'31-12-3', text:'level 3-31-12-3'} +, {id:'31-12-4', text:'level 3-31-12-4'} +, {id:'31-12-5', text:'level 3-31-12-5'} +, {id:'31-12-6', text:'level 3-31-12-6'} +, {id:'31-12-7', text:'level 3-31-12-7'} +, {id:'31-12-8', text:'level 3-31-12-8'} +, {id:'31-12-9', text:'level 3-31-12-9'} +]} +, {id:'31-13-10', text:'level 2-31-13', item:[ + {id:'31-13-0', text:'level 3-31-13-0'} +, {id:'31-13-1', text:'level 3-31-13-1'} +, {id:'31-13-2', text:'level 3-31-13-2'} +, {id:'31-13-3', text:'level 3-31-13-3'} +, {id:'31-13-4', text:'level 3-31-13-4'} +, {id:'31-13-5', text:'level 3-31-13-5'} +, {id:'31-13-6', text:'level 3-31-13-6'} +, {id:'31-13-7', text:'level 3-31-13-7'} +, {id:'31-13-8', text:'level 3-31-13-8'} +, {id:'31-13-9', text:'level 3-31-13-9'} +]} +, {id:'31-14-10', text:'level 2-31-14', item:[ + {id:'31-14-0', text:'level 3-31-14-0'} +, {id:'31-14-1', text:'level 3-31-14-1'} +, {id:'31-14-2', text:'level 3-31-14-2'} +, {id:'31-14-3', text:'level 3-31-14-3'} +, {id:'31-14-4', text:'level 3-31-14-4'} +, {id:'31-14-5', text:'level 3-31-14-5'} +, {id:'31-14-6', text:'level 3-31-14-6'} +, {id:'31-14-7', text:'level 3-31-14-7'} +, {id:'31-14-8', text:'level 3-31-14-8'} +, {id:'31-14-9', text:'level 3-31-14-9'} +]} +, {id:'31-15-10', text:'level 2-31-15', item:[ + {id:'31-15-0', text:'level 3-31-15-0'} +, {id:'31-15-1', text:'level 3-31-15-1'} +, {id:'31-15-2', text:'level 3-31-15-2'} +, {id:'31-15-3', text:'level 3-31-15-3'} +, {id:'31-15-4', text:'level 3-31-15-4'} +, {id:'31-15-5', text:'level 3-31-15-5'} +, {id:'31-15-6', text:'level 3-31-15-6'} +, {id:'31-15-7', text:'level 3-31-15-7'} +, {id:'31-15-8', text:'level 3-31-15-8'} +, {id:'31-15-9', text:'level 3-31-15-9'} +]} +, {id:'31-16-10', text:'level 2-31-16', item:[ + {id:'31-16-0', text:'level 3-31-16-0'} +, {id:'31-16-1', text:'level 3-31-16-1'} +, {id:'31-16-2', text:'level 3-31-16-2'} +, {id:'31-16-3', text:'level 3-31-16-3'} +, {id:'31-16-4', text:'level 3-31-16-4'} +, {id:'31-16-5', text:'level 3-31-16-5'} +, {id:'31-16-6', text:'level 3-31-16-6'} +, {id:'31-16-7', text:'level 3-31-16-7'} +, {id:'31-16-8', text:'level 3-31-16-8'} +, {id:'31-16-9', text:'level 3-31-16-9'} +]} +, {id:'31-17-10', text:'level 2-31-17', item:[ + {id:'31-17-0', text:'level 3-31-17-0'} +, {id:'31-17-1', text:'level 3-31-17-1'} +, {id:'31-17-2', text:'level 3-31-17-2'} +, {id:'31-17-3', text:'level 3-31-17-3'} +, {id:'31-17-4', text:'level 3-31-17-4'} +, {id:'31-17-5', text:'level 3-31-17-5'} +, {id:'31-17-6', text:'level 3-31-17-6'} +, {id:'31-17-7', text:'level 3-31-17-7'} +, {id:'31-17-8', text:'level 3-31-17-8'} +, {id:'31-17-9', text:'level 3-31-17-9'} +]} +, {id:'31-18-10', text:'level 2-31-18', item:[ + {id:'31-18-0', text:'level 3-31-18-0'} +, {id:'31-18-1', text:'level 3-31-18-1'} +, {id:'31-18-2', text:'level 3-31-18-2'} +, {id:'31-18-3', text:'level 3-31-18-3'} +, {id:'31-18-4', text:'level 3-31-18-4'} +, {id:'31-18-5', text:'level 3-31-18-5'} +, {id:'31-18-6', text:'level 3-31-18-6'} +, {id:'31-18-7', text:'level 3-31-18-7'} +, {id:'31-18-8', text:'level 3-31-18-8'} +, {id:'31-18-9', text:'level 3-31-18-9'} +]} +, {id:'31-19-10', text:'level 2-31-19', item:[ + {id:'31-19-0', text:'level 3-31-19-0'} +, {id:'31-19-1', text:'level 3-31-19-1'} +, {id:'31-19-2', text:'level 3-31-19-2'} +, {id:'31-19-3', text:'level 3-31-19-3'} +, {id:'31-19-4', text:'level 3-31-19-4'} +, {id:'31-19-5', text:'level 3-31-19-5'} +, {id:'31-19-6', text:'level 3-31-19-6'} +, {id:'31-19-7', text:'level 3-31-19-7'} +, {id:'31-19-8', text:'level 3-31-19-8'} +, {id:'31-19-9', text:'level 3-31-19-9'} +]} +]} +,{id:'32-20-10', text:'level 1-32', item:[ + {id:'32-0-10', text:'level 2-32-0', item:[ + {id:'32-0-0', text:'level 3-32-0-0'} +, {id:'32-0-1', text:'level 3-32-0-1'} +, {id:'32-0-2', text:'level 3-32-0-2'} +, {id:'32-0-3', text:'level 3-32-0-3'} +, {id:'32-0-4', text:'level 3-32-0-4'} +, {id:'32-0-5', text:'level 3-32-0-5'} +, {id:'32-0-6', text:'level 3-32-0-6'} +, {id:'32-0-7', text:'level 3-32-0-7'} +, {id:'32-0-8', text:'level 3-32-0-8'} +, {id:'32-0-9', text:'level 3-32-0-9'} +]} +, {id:'32-1-10', text:'level 2-32-1', item:[ + {id:'32-1-0', text:'level 3-32-1-0'} +, {id:'32-1-1', text:'level 3-32-1-1'} +, {id:'32-1-2', text:'level 3-32-1-2'} +, {id:'32-1-3', text:'level 3-32-1-3'} +, {id:'32-1-4', text:'level 3-32-1-4'} +, {id:'32-1-5', text:'level 3-32-1-5'} +, {id:'32-1-6', text:'level 3-32-1-6'} +, {id:'32-1-7', text:'level 3-32-1-7'} +, {id:'32-1-8', text:'level 3-32-1-8'} +, {id:'32-1-9', text:'level 3-32-1-9'} +]} +, {id:'32-2-10', text:'level 2-32-2', item:[ + {id:'32-2-0', text:'level 3-32-2-0'} +, {id:'32-2-1', text:'level 3-32-2-1'} +, {id:'32-2-2', text:'level 3-32-2-2'} +, {id:'32-2-3', text:'level 3-32-2-3'} +, {id:'32-2-4', text:'level 3-32-2-4'} +, {id:'32-2-5', text:'level 3-32-2-5'} +, {id:'32-2-6', text:'level 3-32-2-6'} +, {id:'32-2-7', text:'level 3-32-2-7'} +, {id:'32-2-8', text:'level 3-32-2-8'} +, {id:'32-2-9', text:'level 3-32-2-9'} +]} +, {id:'32-3-10', text:'level 2-32-3', item:[ + {id:'32-3-0', text:'level 3-32-3-0'} +, {id:'32-3-1', text:'level 3-32-3-1'} +, {id:'32-3-2', text:'level 3-32-3-2'} +, {id:'32-3-3', text:'level 3-32-3-3'} +, {id:'32-3-4', text:'level 3-32-3-4'} +, {id:'32-3-5', text:'level 3-32-3-5'} +, {id:'32-3-6', text:'level 3-32-3-6'} +, {id:'32-3-7', text:'level 3-32-3-7'} +, {id:'32-3-8', text:'level 3-32-3-8'} +, {id:'32-3-9', text:'level 3-32-3-9'} +]} +, {id:'32-4-10', text:'level 2-32-4', item:[ + {id:'32-4-0', text:'level 3-32-4-0'} +, {id:'32-4-1', text:'level 3-32-4-1'} +, {id:'32-4-2', text:'level 3-32-4-2'} +, {id:'32-4-3', text:'level 3-32-4-3'} +, {id:'32-4-4', text:'level 3-32-4-4'} +, {id:'32-4-5', text:'level 3-32-4-5'} +, {id:'32-4-6', text:'level 3-32-4-6'} +, {id:'32-4-7', text:'level 3-32-4-7'} +, {id:'32-4-8', text:'level 3-32-4-8'} +, {id:'32-4-9', text:'level 3-32-4-9'} +]} +, {id:'32-5-10', text:'level 2-32-5', item:[ + {id:'32-5-0', text:'level 3-32-5-0'} +, {id:'32-5-1', text:'level 3-32-5-1'} +, {id:'32-5-2', text:'level 3-32-5-2'} +, {id:'32-5-3', text:'level 3-32-5-3'} +, {id:'32-5-4', text:'level 3-32-5-4'} +, {id:'32-5-5', text:'level 3-32-5-5'} +, {id:'32-5-6', text:'level 3-32-5-6'} +, {id:'32-5-7', text:'level 3-32-5-7'} +, {id:'32-5-8', text:'level 3-32-5-8'} +, {id:'32-5-9', text:'level 3-32-5-9'} +]} +, {id:'32-6-10', text:'level 2-32-6', item:[ + {id:'32-6-0', text:'level 3-32-6-0'} +, {id:'32-6-1', text:'level 3-32-6-1'} +, {id:'32-6-2', text:'level 3-32-6-2'} +, {id:'32-6-3', text:'level 3-32-6-3'} +, {id:'32-6-4', text:'level 3-32-6-4'} +, {id:'32-6-5', text:'level 3-32-6-5'} +, {id:'32-6-6', text:'level 3-32-6-6'} +, {id:'32-6-7', text:'level 3-32-6-7'} +, {id:'32-6-8', text:'level 3-32-6-8'} +, {id:'32-6-9', text:'level 3-32-6-9'} +]} +, {id:'32-7-10', text:'level 2-32-7', item:[ + {id:'32-7-0', text:'level 3-32-7-0'} +, {id:'32-7-1', text:'level 3-32-7-1'} +, {id:'32-7-2', text:'level 3-32-7-2'} +, {id:'32-7-3', text:'level 3-32-7-3'} +, {id:'32-7-4', text:'level 3-32-7-4'} +, {id:'32-7-5', text:'level 3-32-7-5'} +, {id:'32-7-6', text:'level 3-32-7-6'} +, {id:'32-7-7', text:'level 3-32-7-7'} +, {id:'32-7-8', text:'level 3-32-7-8'} +, {id:'32-7-9', text:'level 3-32-7-9'} +]} +, {id:'32-8-10', text:'level 2-32-8', item:[ + {id:'32-8-0', text:'level 3-32-8-0'} +, {id:'32-8-1', text:'level 3-32-8-1'} +, {id:'32-8-2', text:'level 3-32-8-2'} +, {id:'32-8-3', text:'level 3-32-8-3'} +, {id:'32-8-4', text:'level 3-32-8-4'} +, {id:'32-8-5', text:'level 3-32-8-5'} +, {id:'32-8-6', text:'level 3-32-8-6'} +, {id:'32-8-7', text:'level 3-32-8-7'} +, {id:'32-8-8', text:'level 3-32-8-8'} +, {id:'32-8-9', text:'level 3-32-8-9'} +]} +, {id:'32-9-10', text:'level 2-32-9', item:[ + {id:'32-9-0', text:'level 3-32-9-0'} +, {id:'32-9-1', text:'level 3-32-9-1'} +, {id:'32-9-2', text:'level 3-32-9-2'} +, {id:'32-9-3', text:'level 3-32-9-3'} +, {id:'32-9-4', text:'level 3-32-9-4'} +, {id:'32-9-5', text:'level 3-32-9-5'} +, {id:'32-9-6', text:'level 3-32-9-6'} +, {id:'32-9-7', text:'level 3-32-9-7'} +, {id:'32-9-8', text:'level 3-32-9-8'} +, {id:'32-9-9', text:'level 3-32-9-9'} +]} +, {id:'32-10-10', text:'level 2-32-10', item:[ + {id:'32-10-0', text:'level 3-32-10-0'} +, {id:'32-10-1', text:'level 3-32-10-1'} +, {id:'32-10-2', text:'level 3-32-10-2'} +, {id:'32-10-3', text:'level 3-32-10-3'} +, {id:'32-10-4', text:'level 3-32-10-4'} +, {id:'32-10-5', text:'level 3-32-10-5'} +, {id:'32-10-6', text:'level 3-32-10-6'} +, {id:'32-10-7', text:'level 3-32-10-7'} +, {id:'32-10-8', text:'level 3-32-10-8'} +, {id:'32-10-9', text:'level 3-32-10-9'} +]} +, {id:'32-11-10', text:'level 2-32-11', item:[ + {id:'32-11-0', text:'level 3-32-11-0'} +, {id:'32-11-1', text:'level 3-32-11-1'} +, {id:'32-11-2', text:'level 3-32-11-2'} +, {id:'32-11-3', text:'level 3-32-11-3'} +, {id:'32-11-4', text:'level 3-32-11-4'} +, {id:'32-11-5', text:'level 3-32-11-5'} +, {id:'32-11-6', text:'level 3-32-11-6'} +, {id:'32-11-7', text:'level 3-32-11-7'} +, {id:'32-11-8', text:'level 3-32-11-8'} +, {id:'32-11-9', text:'level 3-32-11-9'} +]} +, {id:'32-12-10', text:'level 2-32-12', item:[ + {id:'32-12-0', text:'level 3-32-12-0'} +, {id:'32-12-1', text:'level 3-32-12-1'} +, {id:'32-12-2', text:'level 3-32-12-2'} +, {id:'32-12-3', text:'level 3-32-12-3'} +, {id:'32-12-4', text:'level 3-32-12-4'} +, {id:'32-12-5', text:'level 3-32-12-5'} +, {id:'32-12-6', text:'level 3-32-12-6'} +, {id:'32-12-7', text:'level 3-32-12-7'} +, {id:'32-12-8', text:'level 3-32-12-8'} +, {id:'32-12-9', text:'level 3-32-12-9'} +]} +, {id:'32-13-10', text:'level 2-32-13', item:[ + {id:'32-13-0', text:'level 3-32-13-0'} +, {id:'32-13-1', text:'level 3-32-13-1'} +, {id:'32-13-2', text:'level 3-32-13-2'} +, {id:'32-13-3', text:'level 3-32-13-3'} +, {id:'32-13-4', text:'level 3-32-13-4'} +, {id:'32-13-5', text:'level 3-32-13-5'} +, {id:'32-13-6', text:'level 3-32-13-6'} +, {id:'32-13-7', text:'level 3-32-13-7'} +, {id:'32-13-8', text:'level 3-32-13-8'} +, {id:'32-13-9', text:'level 3-32-13-9'} +]} +, {id:'32-14-10', text:'level 2-32-14', item:[ + {id:'32-14-0', text:'level 3-32-14-0'} +, {id:'32-14-1', text:'level 3-32-14-1'} +, {id:'32-14-2', text:'level 3-32-14-2'} +, {id:'32-14-3', text:'level 3-32-14-3'} +, {id:'32-14-4', text:'level 3-32-14-4'} +, {id:'32-14-5', text:'level 3-32-14-5'} +, {id:'32-14-6', text:'level 3-32-14-6'} +, {id:'32-14-7', text:'level 3-32-14-7'} +, {id:'32-14-8', text:'level 3-32-14-8'} +, {id:'32-14-9', text:'level 3-32-14-9'} +]} +, {id:'32-15-10', text:'level 2-32-15', item:[ + {id:'32-15-0', text:'level 3-32-15-0'} +, {id:'32-15-1', text:'level 3-32-15-1'} +, {id:'32-15-2', text:'level 3-32-15-2'} +, {id:'32-15-3', text:'level 3-32-15-3'} +, {id:'32-15-4', text:'level 3-32-15-4'} +, {id:'32-15-5', text:'level 3-32-15-5'} +, {id:'32-15-6', text:'level 3-32-15-6'} +, {id:'32-15-7', text:'level 3-32-15-7'} +, {id:'32-15-8', text:'level 3-32-15-8'} +, {id:'32-15-9', text:'level 3-32-15-9'} +]} +, {id:'32-16-10', text:'level 2-32-16', item:[ + {id:'32-16-0', text:'level 3-32-16-0'} +, {id:'32-16-1', text:'level 3-32-16-1'} +, {id:'32-16-2', text:'level 3-32-16-2'} +, {id:'32-16-3', text:'level 3-32-16-3'} +, {id:'32-16-4', text:'level 3-32-16-4'} +, {id:'32-16-5', text:'level 3-32-16-5'} +, {id:'32-16-6', text:'level 3-32-16-6'} +, {id:'32-16-7', text:'level 3-32-16-7'} +, {id:'32-16-8', text:'level 3-32-16-8'} +, {id:'32-16-9', text:'level 3-32-16-9'} +]} +, {id:'32-17-10', text:'level 2-32-17', item:[ + {id:'32-17-0', text:'level 3-32-17-0'} +, {id:'32-17-1', text:'level 3-32-17-1'} +, {id:'32-17-2', text:'level 3-32-17-2'} +, {id:'32-17-3', text:'level 3-32-17-3'} +, {id:'32-17-4', text:'level 3-32-17-4'} +, {id:'32-17-5', text:'level 3-32-17-5'} +, {id:'32-17-6', text:'level 3-32-17-6'} +, {id:'32-17-7', text:'level 3-32-17-7'} +, {id:'32-17-8', text:'level 3-32-17-8'} +, {id:'32-17-9', text:'level 3-32-17-9'} +]} +, {id:'32-18-10', text:'level 2-32-18', item:[ + {id:'32-18-0', text:'level 3-32-18-0'} +, {id:'32-18-1', text:'level 3-32-18-1'} +, {id:'32-18-2', text:'level 3-32-18-2'} +, {id:'32-18-3', text:'level 3-32-18-3'} +, {id:'32-18-4', text:'level 3-32-18-4'} +, {id:'32-18-5', text:'level 3-32-18-5'} +, {id:'32-18-6', text:'level 3-32-18-6'} +, {id:'32-18-7', text:'level 3-32-18-7'} +, {id:'32-18-8', text:'level 3-32-18-8'} +, {id:'32-18-9', text:'level 3-32-18-9'} +]} +, {id:'32-19-10', text:'level 2-32-19', item:[ + {id:'32-19-0', text:'level 3-32-19-0'} +, {id:'32-19-1', text:'level 3-32-19-1'} +, {id:'32-19-2', text:'level 3-32-19-2'} +, {id:'32-19-3', text:'level 3-32-19-3'} +, {id:'32-19-4', text:'level 3-32-19-4'} +, {id:'32-19-5', text:'level 3-32-19-5'} +, {id:'32-19-6', text:'level 3-32-19-6'} +, {id:'32-19-7', text:'level 3-32-19-7'} +, {id:'32-19-8', text:'level 3-32-19-8'} +, {id:'32-19-9', text:'level 3-32-19-9'} +]} +]} +,{id:'33-20-10', text:'level 1-33', item:[ + {id:'33-0-10', text:'level 2-33-0', item:[ + {id:'33-0-0', text:'level 3-33-0-0'} +, {id:'33-0-1', text:'level 3-33-0-1'} +, {id:'33-0-2', text:'level 3-33-0-2'} +, {id:'33-0-3', text:'level 3-33-0-3'} +, {id:'33-0-4', text:'level 3-33-0-4'} +, {id:'33-0-5', text:'level 3-33-0-5'} +, {id:'33-0-6', text:'level 3-33-0-6'} +, {id:'33-0-7', text:'level 3-33-0-7'} +, {id:'33-0-8', text:'level 3-33-0-8'} +, {id:'33-0-9', text:'level 3-33-0-9'} +]} +, {id:'33-1-10', text:'level 2-33-1', item:[ + {id:'33-1-0', text:'level 3-33-1-0'} +, {id:'33-1-1', text:'level 3-33-1-1'} +, {id:'33-1-2', text:'level 3-33-1-2'} +, {id:'33-1-3', text:'level 3-33-1-3'} +, {id:'33-1-4', text:'level 3-33-1-4'} +, {id:'33-1-5', text:'level 3-33-1-5'} +, {id:'33-1-6', text:'level 3-33-1-6'} +, {id:'33-1-7', text:'level 3-33-1-7'} +, {id:'33-1-8', text:'level 3-33-1-8'} +, {id:'33-1-9', text:'level 3-33-1-9'} +]} +, {id:'33-2-10', text:'level 2-33-2', item:[ + {id:'33-2-0', text:'level 3-33-2-0'} +, {id:'33-2-1', text:'level 3-33-2-1'} +, {id:'33-2-2', text:'level 3-33-2-2'} +, {id:'33-2-3', text:'level 3-33-2-3'} +, {id:'33-2-4', text:'level 3-33-2-4'} +, {id:'33-2-5', text:'level 3-33-2-5'} +, {id:'33-2-6', text:'level 3-33-2-6'} +, {id:'33-2-7', text:'level 3-33-2-7'} +, {id:'33-2-8', text:'level 3-33-2-8'} +, {id:'33-2-9', text:'level 3-33-2-9'} +]} +, {id:'33-3-10', text:'level 2-33-3', item:[ + {id:'33-3-0', text:'level 3-33-3-0'} +, {id:'33-3-1', text:'level 3-33-3-1'} +, {id:'33-3-2', text:'level 3-33-3-2'} +, {id:'33-3-3', text:'level 3-33-3-3'} +, {id:'33-3-4', text:'level 3-33-3-4'} +, {id:'33-3-5', text:'level 3-33-3-5'} +, {id:'33-3-6', text:'level 3-33-3-6'} +, {id:'33-3-7', text:'level 3-33-3-7'} +, {id:'33-3-8', text:'level 3-33-3-8'} +, {id:'33-3-9', text:'level 3-33-3-9'} +]} +, {id:'33-4-10', text:'level 2-33-4', item:[ + {id:'33-4-0', text:'level 3-33-4-0'} +, {id:'33-4-1', text:'level 3-33-4-1'} +, {id:'33-4-2', text:'level 3-33-4-2'} +, {id:'33-4-3', text:'level 3-33-4-3'} +, {id:'33-4-4', text:'level 3-33-4-4'} +, {id:'33-4-5', text:'level 3-33-4-5'} +, {id:'33-4-6', text:'level 3-33-4-6'} +, {id:'33-4-7', text:'level 3-33-4-7'} +, {id:'33-4-8', text:'level 3-33-4-8'} +, {id:'33-4-9', text:'level 3-33-4-9'} +]} +, {id:'33-5-10', text:'level 2-33-5', item:[ + {id:'33-5-0', text:'level 3-33-5-0'} +, {id:'33-5-1', text:'level 3-33-5-1'} +, {id:'33-5-2', text:'level 3-33-5-2'} +, {id:'33-5-3', text:'level 3-33-5-3'} +, {id:'33-5-4', text:'level 3-33-5-4'} +, {id:'33-5-5', text:'level 3-33-5-5'} +, {id:'33-5-6', text:'level 3-33-5-6'} +, {id:'33-5-7', text:'level 3-33-5-7'} +, {id:'33-5-8', text:'level 3-33-5-8'} +, {id:'33-5-9', text:'level 3-33-5-9'} +]} +, {id:'33-6-10', text:'level 2-33-6', item:[ + {id:'33-6-0', text:'level 3-33-6-0'} +, {id:'33-6-1', text:'level 3-33-6-1'} +, {id:'33-6-2', text:'level 3-33-6-2'} +, {id:'33-6-3', text:'level 3-33-6-3'} +, {id:'33-6-4', text:'level 3-33-6-4'} +, {id:'33-6-5', text:'level 3-33-6-5'} +, {id:'33-6-6', text:'level 3-33-6-6'} +, {id:'33-6-7', text:'level 3-33-6-7'} +, {id:'33-6-8', text:'level 3-33-6-8'} +, {id:'33-6-9', text:'level 3-33-6-9'} +]} +, {id:'33-7-10', text:'level 2-33-7', item:[ + {id:'33-7-0', text:'level 3-33-7-0'} +, {id:'33-7-1', text:'level 3-33-7-1'} +, {id:'33-7-2', text:'level 3-33-7-2'} +, {id:'33-7-3', text:'level 3-33-7-3'} +, {id:'33-7-4', text:'level 3-33-7-4'} +, {id:'33-7-5', text:'level 3-33-7-5'} +, {id:'33-7-6', text:'level 3-33-7-6'} +, {id:'33-7-7', text:'level 3-33-7-7'} +, {id:'33-7-8', text:'level 3-33-7-8'} +, {id:'33-7-9', text:'level 3-33-7-9'} +]} +, {id:'33-8-10', text:'level 2-33-8', item:[ + {id:'33-8-0', text:'level 3-33-8-0'} +, {id:'33-8-1', text:'level 3-33-8-1'} +, {id:'33-8-2', text:'level 3-33-8-2'} +, {id:'33-8-3', text:'level 3-33-8-3'} +, {id:'33-8-4', text:'level 3-33-8-4'} +, {id:'33-8-5', text:'level 3-33-8-5'} +, {id:'33-8-6', text:'level 3-33-8-6'} +, {id:'33-8-7', text:'level 3-33-8-7'} +, {id:'33-8-8', text:'level 3-33-8-8'} +, {id:'33-8-9', text:'level 3-33-8-9'} +]} +, {id:'33-9-10', text:'level 2-33-9', item:[ + {id:'33-9-0', text:'level 3-33-9-0'} +, {id:'33-9-1', text:'level 3-33-9-1'} +, {id:'33-9-2', text:'level 3-33-9-2'} +, {id:'33-9-3', text:'level 3-33-9-3'} +, {id:'33-9-4', text:'level 3-33-9-4'} +, {id:'33-9-5', text:'level 3-33-9-5'} +, {id:'33-9-6', text:'level 3-33-9-6'} +, {id:'33-9-7', text:'level 3-33-9-7'} +, {id:'33-9-8', text:'level 3-33-9-8'} +, {id:'33-9-9', text:'level 3-33-9-9'} +]} +, {id:'33-10-10', text:'level 2-33-10', item:[ + {id:'33-10-0', text:'level 3-33-10-0'} +, {id:'33-10-1', text:'level 3-33-10-1'} +, {id:'33-10-2', text:'level 3-33-10-2'} +, {id:'33-10-3', text:'level 3-33-10-3'} +, {id:'33-10-4', text:'level 3-33-10-4'} +, {id:'33-10-5', text:'level 3-33-10-5'} +, {id:'33-10-6', text:'level 3-33-10-6'} +, {id:'33-10-7', text:'level 3-33-10-7'} +, {id:'33-10-8', text:'level 3-33-10-8'} +, {id:'33-10-9', text:'level 3-33-10-9'} +]} +, {id:'33-11-10', text:'level 2-33-11', item:[ + {id:'33-11-0', text:'level 3-33-11-0'} +, {id:'33-11-1', text:'level 3-33-11-1'} +, {id:'33-11-2', text:'level 3-33-11-2'} +, {id:'33-11-3', text:'level 3-33-11-3'} +, {id:'33-11-4', text:'level 3-33-11-4'} +, {id:'33-11-5', text:'level 3-33-11-5'} +, {id:'33-11-6', text:'level 3-33-11-6'} +, {id:'33-11-7', text:'level 3-33-11-7'} +, {id:'33-11-8', text:'level 3-33-11-8'} +, {id:'33-11-9', text:'level 3-33-11-9'} +]} +, {id:'33-12-10', text:'level 2-33-12', item:[ + {id:'33-12-0', text:'level 3-33-12-0'} +, {id:'33-12-1', text:'level 3-33-12-1'} +, {id:'33-12-2', text:'level 3-33-12-2'} +, {id:'33-12-3', text:'level 3-33-12-3'} +, {id:'33-12-4', text:'level 3-33-12-4'} +, {id:'33-12-5', text:'level 3-33-12-5'} +, {id:'33-12-6', text:'level 3-33-12-6'} +, {id:'33-12-7', text:'level 3-33-12-7'} +, {id:'33-12-8', text:'level 3-33-12-8'} +, {id:'33-12-9', text:'level 3-33-12-9'} +]} +, {id:'33-13-10', text:'level 2-33-13', item:[ + {id:'33-13-0', text:'level 3-33-13-0'} +, {id:'33-13-1', text:'level 3-33-13-1'} +, {id:'33-13-2', text:'level 3-33-13-2'} +, {id:'33-13-3', text:'level 3-33-13-3'} +, {id:'33-13-4', text:'level 3-33-13-4'} +, {id:'33-13-5', text:'level 3-33-13-5'} +, {id:'33-13-6', text:'level 3-33-13-6'} +, {id:'33-13-7', text:'level 3-33-13-7'} +, {id:'33-13-8', text:'level 3-33-13-8'} +, {id:'33-13-9', text:'level 3-33-13-9'} +]} +, {id:'33-14-10', text:'level 2-33-14', item:[ + {id:'33-14-0', text:'level 3-33-14-0'} +, {id:'33-14-1', text:'level 3-33-14-1'} +, {id:'33-14-2', text:'level 3-33-14-2'} +, {id:'33-14-3', text:'level 3-33-14-3'} +, {id:'33-14-4', text:'level 3-33-14-4'} +, {id:'33-14-5', text:'level 3-33-14-5'} +, {id:'33-14-6', text:'level 3-33-14-6'} +, {id:'33-14-7', text:'level 3-33-14-7'} +, {id:'33-14-8', text:'level 3-33-14-8'} +, {id:'33-14-9', text:'level 3-33-14-9'} +]} +, {id:'33-15-10', text:'level 2-33-15', item:[ + {id:'33-15-0', text:'level 3-33-15-0'} +, {id:'33-15-1', text:'level 3-33-15-1'} +, {id:'33-15-2', text:'level 3-33-15-2'} +, {id:'33-15-3', text:'level 3-33-15-3'} +, {id:'33-15-4', text:'level 3-33-15-4'} +, {id:'33-15-5', text:'level 3-33-15-5'} +, {id:'33-15-6', text:'level 3-33-15-6'} +, {id:'33-15-7', text:'level 3-33-15-7'} +, {id:'33-15-8', text:'level 3-33-15-8'} +, {id:'33-15-9', text:'level 3-33-15-9'} +]} +, {id:'33-16-10', text:'level 2-33-16', item:[ + {id:'33-16-0', text:'level 3-33-16-0'} +, {id:'33-16-1', text:'level 3-33-16-1'} +, {id:'33-16-2', text:'level 3-33-16-2'} +, {id:'33-16-3', text:'level 3-33-16-3'} +, {id:'33-16-4', text:'level 3-33-16-4'} +, {id:'33-16-5', text:'level 3-33-16-5'} +, {id:'33-16-6', text:'level 3-33-16-6'} +, {id:'33-16-7', text:'level 3-33-16-7'} +, {id:'33-16-8', text:'level 3-33-16-8'} +, {id:'33-16-9', text:'level 3-33-16-9'} +]} +, {id:'33-17-10', text:'level 2-33-17', item:[ + {id:'33-17-0', text:'level 3-33-17-0'} +, {id:'33-17-1', text:'level 3-33-17-1'} +, {id:'33-17-2', text:'level 3-33-17-2'} +, {id:'33-17-3', text:'level 3-33-17-3'} +, {id:'33-17-4', text:'level 3-33-17-4'} +, {id:'33-17-5', text:'level 3-33-17-5'} +, {id:'33-17-6', text:'level 3-33-17-6'} +, {id:'33-17-7', text:'level 3-33-17-7'} +, {id:'33-17-8', text:'level 3-33-17-8'} +, {id:'33-17-9', text:'level 3-33-17-9'} +]} +, {id:'33-18-10', text:'level 2-33-18', item:[ + {id:'33-18-0', text:'level 3-33-18-0'} +, {id:'33-18-1', text:'level 3-33-18-1'} +, {id:'33-18-2', text:'level 3-33-18-2'} +, {id:'33-18-3', text:'level 3-33-18-3'} +, {id:'33-18-4', text:'level 3-33-18-4'} +, {id:'33-18-5', text:'level 3-33-18-5'} +, {id:'33-18-6', text:'level 3-33-18-6'} +, {id:'33-18-7', text:'level 3-33-18-7'} +, {id:'33-18-8', text:'level 3-33-18-8'} +, {id:'33-18-9', text:'level 3-33-18-9'} +]} +, {id:'33-19-10', text:'level 2-33-19', item:[ + {id:'33-19-0', text:'level 3-33-19-0'} +, {id:'33-19-1', text:'level 3-33-19-1'} +, {id:'33-19-2', text:'level 3-33-19-2'} +, {id:'33-19-3', text:'level 3-33-19-3'} +, {id:'33-19-4', text:'level 3-33-19-4'} +, {id:'33-19-5', text:'level 3-33-19-5'} +, {id:'33-19-6', text:'level 3-33-19-6'} +, {id:'33-19-7', text:'level 3-33-19-7'} +, {id:'33-19-8', text:'level 3-33-19-8'} +, {id:'33-19-9', text:'level 3-33-19-9'} +]} +]} +,{id:'34-20-10', text:'level 1-34', item:[ + {id:'34-0-10', text:'level 2-34-0', item:[ + {id:'34-0-0', text:'level 3-34-0-0'} +, {id:'34-0-1', text:'level 3-34-0-1'} +, {id:'34-0-2', text:'level 3-34-0-2'} +, {id:'34-0-3', text:'level 3-34-0-3'} +, {id:'34-0-4', text:'level 3-34-0-4'} +, {id:'34-0-5', text:'level 3-34-0-5'} +, {id:'34-0-6', text:'level 3-34-0-6'} +, {id:'34-0-7', text:'level 3-34-0-7'} +, {id:'34-0-8', text:'level 3-34-0-8'} +, {id:'34-0-9', text:'level 3-34-0-9'} +]} +, {id:'34-1-10', text:'level 2-34-1', item:[ + {id:'34-1-0', text:'level 3-34-1-0'} +, {id:'34-1-1', text:'level 3-34-1-1'} +, {id:'34-1-2', text:'level 3-34-1-2'} +, {id:'34-1-3', text:'level 3-34-1-3'} +, {id:'34-1-4', text:'level 3-34-1-4'} +, {id:'34-1-5', text:'level 3-34-1-5'} +, {id:'34-1-6', text:'level 3-34-1-6'} +, {id:'34-1-7', text:'level 3-34-1-7'} +, {id:'34-1-8', text:'level 3-34-1-8'} +, {id:'34-1-9', text:'level 3-34-1-9'} +]} +, {id:'34-2-10', text:'level 2-34-2', item:[ + {id:'34-2-0', text:'level 3-34-2-0'} +, {id:'34-2-1', text:'level 3-34-2-1'} +, {id:'34-2-2', text:'level 3-34-2-2'} +, {id:'34-2-3', text:'level 3-34-2-3'} +, {id:'34-2-4', text:'level 3-34-2-4'} +, {id:'34-2-5', text:'level 3-34-2-5'} +, {id:'34-2-6', text:'level 3-34-2-6'} +, {id:'34-2-7', text:'level 3-34-2-7'} +, {id:'34-2-8', text:'level 3-34-2-8'} +, {id:'34-2-9', text:'level 3-34-2-9'} +]} +, {id:'34-3-10', text:'level 2-34-3', item:[ + {id:'34-3-0', text:'level 3-34-3-0'} +, {id:'34-3-1', text:'level 3-34-3-1'} +, {id:'34-3-2', text:'level 3-34-3-2'} +, {id:'34-3-3', text:'level 3-34-3-3'} +, {id:'34-3-4', text:'level 3-34-3-4'} +, {id:'34-3-5', text:'level 3-34-3-5'} +, {id:'34-3-6', text:'level 3-34-3-6'} +, {id:'34-3-7', text:'level 3-34-3-7'} +, {id:'34-3-8', text:'level 3-34-3-8'} +, {id:'34-3-9', text:'level 3-34-3-9'} +]} +, {id:'34-4-10', text:'level 2-34-4', item:[ + {id:'34-4-0', text:'level 3-34-4-0'} +, {id:'34-4-1', text:'level 3-34-4-1'} +, {id:'34-4-2', text:'level 3-34-4-2'} +, {id:'34-4-3', text:'level 3-34-4-3'} +, {id:'34-4-4', text:'level 3-34-4-4'} +, {id:'34-4-5', text:'level 3-34-4-5'} +, {id:'34-4-6', text:'level 3-34-4-6'} +, {id:'34-4-7', text:'level 3-34-4-7'} +, {id:'34-4-8', text:'level 3-34-4-8'} +, {id:'34-4-9', text:'level 3-34-4-9'} +]} +, {id:'34-5-10', text:'level 2-34-5', item:[ + {id:'34-5-0', text:'level 3-34-5-0'} +, {id:'34-5-1', text:'level 3-34-5-1'} +, {id:'34-5-2', text:'level 3-34-5-2'} +, {id:'34-5-3', text:'level 3-34-5-3'} +, {id:'34-5-4', text:'level 3-34-5-4'} +, {id:'34-5-5', text:'level 3-34-5-5'} +, {id:'34-5-6', text:'level 3-34-5-6'} +, {id:'34-5-7', text:'level 3-34-5-7'} +, {id:'34-5-8', text:'level 3-34-5-8'} +, {id:'34-5-9', text:'level 3-34-5-9'} +]} +, {id:'34-6-10', text:'level 2-34-6', item:[ + {id:'34-6-0', text:'level 3-34-6-0'} +, {id:'34-6-1', text:'level 3-34-6-1'} +, {id:'34-6-2', text:'level 3-34-6-2'} +, {id:'34-6-3', text:'level 3-34-6-3'} +, {id:'34-6-4', text:'level 3-34-6-4'} +, {id:'34-6-5', text:'level 3-34-6-5'} +, {id:'34-6-6', text:'level 3-34-6-6'} +, {id:'34-6-7', text:'level 3-34-6-7'} +, {id:'34-6-8', text:'level 3-34-6-8'} +, {id:'34-6-9', text:'level 3-34-6-9'} +]} +, {id:'34-7-10', text:'level 2-34-7', item:[ + {id:'34-7-0', text:'level 3-34-7-0'} +, {id:'34-7-1', text:'level 3-34-7-1'} +, {id:'34-7-2', text:'level 3-34-7-2'} +, {id:'34-7-3', text:'level 3-34-7-3'} +, {id:'34-7-4', text:'level 3-34-7-4'} +, {id:'34-7-5', text:'level 3-34-7-5'} +, {id:'34-7-6', text:'level 3-34-7-6'} +, {id:'34-7-7', text:'level 3-34-7-7'} +, {id:'34-7-8', text:'level 3-34-7-8'} +, {id:'34-7-9', text:'level 3-34-7-9'} +]} +, {id:'34-8-10', text:'level 2-34-8', item:[ + {id:'34-8-0', text:'level 3-34-8-0'} +, {id:'34-8-1', text:'level 3-34-8-1'} +, {id:'34-8-2', text:'level 3-34-8-2'} +, {id:'34-8-3', text:'level 3-34-8-3'} +, {id:'34-8-4', text:'level 3-34-8-4'} +, {id:'34-8-5', text:'level 3-34-8-5'} +, {id:'34-8-6', text:'level 3-34-8-6'} +, {id:'34-8-7', text:'level 3-34-8-7'} +, {id:'34-8-8', text:'level 3-34-8-8'} +, {id:'34-8-9', text:'level 3-34-8-9'} +]} +, {id:'34-9-10', text:'level 2-34-9', item:[ + {id:'34-9-0', text:'level 3-34-9-0'} +, {id:'34-9-1', text:'level 3-34-9-1'} +, {id:'34-9-2', text:'level 3-34-9-2'} +, {id:'34-9-3', text:'level 3-34-9-3'} +, {id:'34-9-4', text:'level 3-34-9-4'} +, {id:'34-9-5', text:'level 3-34-9-5'} +, {id:'34-9-6', text:'level 3-34-9-6'} +, {id:'34-9-7', text:'level 3-34-9-7'} +, {id:'34-9-8', text:'level 3-34-9-8'} +, {id:'34-9-9', text:'level 3-34-9-9'} +]} +, {id:'34-10-10', text:'level 2-34-10', item:[ + {id:'34-10-0', text:'level 3-34-10-0'} +, {id:'34-10-1', text:'level 3-34-10-1'} +, {id:'34-10-2', text:'level 3-34-10-2'} +, {id:'34-10-3', text:'level 3-34-10-3'} +, {id:'34-10-4', text:'level 3-34-10-4'} +, {id:'34-10-5', text:'level 3-34-10-5'} +, {id:'34-10-6', text:'level 3-34-10-6'} +, {id:'34-10-7', text:'level 3-34-10-7'} +, {id:'34-10-8', text:'level 3-34-10-8'} +, {id:'34-10-9', text:'level 3-34-10-9'} +]} +, {id:'34-11-10', text:'level 2-34-11', item:[ + {id:'34-11-0', text:'level 3-34-11-0'} +, {id:'34-11-1', text:'level 3-34-11-1'} +, {id:'34-11-2', text:'level 3-34-11-2'} +, {id:'34-11-3', text:'level 3-34-11-3'} +, {id:'34-11-4', text:'level 3-34-11-4'} +, {id:'34-11-5', text:'level 3-34-11-5'} +, {id:'34-11-6', text:'level 3-34-11-6'} +, {id:'34-11-7', text:'level 3-34-11-7'} +, {id:'34-11-8', text:'level 3-34-11-8'} +, {id:'34-11-9', text:'level 3-34-11-9'} +]} +, {id:'34-12-10', text:'level 2-34-12', item:[ + {id:'34-12-0', text:'level 3-34-12-0'} +, {id:'34-12-1', text:'level 3-34-12-1'} +, {id:'34-12-2', text:'level 3-34-12-2'} +, {id:'34-12-3', text:'level 3-34-12-3'} +, {id:'34-12-4', text:'level 3-34-12-4'} +, {id:'34-12-5', text:'level 3-34-12-5'} +, {id:'34-12-6', text:'level 3-34-12-6'} +, {id:'34-12-7', text:'level 3-34-12-7'} +, {id:'34-12-8', text:'level 3-34-12-8'} +, {id:'34-12-9', text:'level 3-34-12-9'} +]} +, {id:'34-13-10', text:'level 2-34-13', item:[ + {id:'34-13-0', text:'level 3-34-13-0'} +, {id:'34-13-1', text:'level 3-34-13-1'} +, {id:'34-13-2', text:'level 3-34-13-2'} +, {id:'34-13-3', text:'level 3-34-13-3'} +, {id:'34-13-4', text:'level 3-34-13-4'} +, {id:'34-13-5', text:'level 3-34-13-5'} +, {id:'34-13-6', text:'level 3-34-13-6'} +, {id:'34-13-7', text:'level 3-34-13-7'} +, {id:'34-13-8', text:'level 3-34-13-8'} +, {id:'34-13-9', text:'level 3-34-13-9'} +]} +, {id:'34-14-10', text:'level 2-34-14', item:[ + {id:'34-14-0', text:'level 3-34-14-0'} +, {id:'34-14-1', text:'level 3-34-14-1'} +, {id:'34-14-2', text:'level 3-34-14-2'} +, {id:'34-14-3', text:'level 3-34-14-3'} +, {id:'34-14-4', text:'level 3-34-14-4'} +, {id:'34-14-5', text:'level 3-34-14-5'} +, {id:'34-14-6', text:'level 3-34-14-6'} +, {id:'34-14-7', text:'level 3-34-14-7'} +, {id:'34-14-8', text:'level 3-34-14-8'} +, {id:'34-14-9', text:'level 3-34-14-9'} +]} +, {id:'34-15-10', text:'level 2-34-15', item:[ + {id:'34-15-0', text:'level 3-34-15-0'} +, {id:'34-15-1', text:'level 3-34-15-1'} +, {id:'34-15-2', text:'level 3-34-15-2'} +, {id:'34-15-3', text:'level 3-34-15-3'} +, {id:'34-15-4', text:'level 3-34-15-4'} +, {id:'34-15-5', text:'level 3-34-15-5'} +, {id:'34-15-6', text:'level 3-34-15-6'} +, {id:'34-15-7', text:'level 3-34-15-7'} +, {id:'34-15-8', text:'level 3-34-15-8'} +, {id:'34-15-9', text:'level 3-34-15-9'} +]} +, {id:'34-16-10', text:'level 2-34-16', item:[ + {id:'34-16-0', text:'level 3-34-16-0'} +, {id:'34-16-1', text:'level 3-34-16-1'} +, {id:'34-16-2', text:'level 3-34-16-2'} +, {id:'34-16-3', text:'level 3-34-16-3'} +, {id:'34-16-4', text:'level 3-34-16-4'} +, {id:'34-16-5', text:'level 3-34-16-5'} +, {id:'34-16-6', text:'level 3-34-16-6'} +, {id:'34-16-7', text:'level 3-34-16-7'} +, {id:'34-16-8', text:'level 3-34-16-8'} +, {id:'34-16-9', text:'level 3-34-16-9'} +]} +, {id:'34-17-10', text:'level 2-34-17', item:[ + {id:'34-17-0', text:'level 3-34-17-0'} +, {id:'34-17-1', text:'level 3-34-17-1'} +, {id:'34-17-2', text:'level 3-34-17-2'} +, {id:'34-17-3', text:'level 3-34-17-3'} +, {id:'34-17-4', text:'level 3-34-17-4'} +, {id:'34-17-5', text:'level 3-34-17-5'} +, {id:'34-17-6', text:'level 3-34-17-6'} +, {id:'34-17-7', text:'level 3-34-17-7'} +, {id:'34-17-8', text:'level 3-34-17-8'} +, {id:'34-17-9', text:'level 3-34-17-9'} +]} +, {id:'34-18-10', text:'level 2-34-18', item:[ + {id:'34-18-0', text:'level 3-34-18-0'} +, {id:'34-18-1', text:'level 3-34-18-1'} +, {id:'34-18-2', text:'level 3-34-18-2'} +, {id:'34-18-3', text:'level 3-34-18-3'} +, {id:'34-18-4', text:'level 3-34-18-4'} +, {id:'34-18-5', text:'level 3-34-18-5'} +, {id:'34-18-6', text:'level 3-34-18-6'} +, {id:'34-18-7', text:'level 3-34-18-7'} +, {id:'34-18-8', text:'level 3-34-18-8'} +, {id:'34-18-9', text:'level 3-34-18-9'} +]} +, {id:'34-19-10', text:'level 2-34-19', item:[ + {id:'34-19-0', text:'level 3-34-19-0'} +, {id:'34-19-1', text:'level 3-34-19-1'} +, {id:'34-19-2', text:'level 3-34-19-2'} +, {id:'34-19-3', text:'level 3-34-19-3'} +, {id:'34-19-4', text:'level 3-34-19-4'} +, {id:'34-19-5', text:'level 3-34-19-5'} +, {id:'34-19-6', text:'level 3-34-19-6'} +, {id:'34-19-7', text:'level 3-34-19-7'} +, {id:'34-19-8', text:'level 3-34-19-8'} +, {id:'34-19-9', text:'level 3-34-19-9'} +]} +]} +,{id:'35-20-10', text:'level 1-35', item:[ + {id:'35-0-10', text:'level 2-35-0', item:[ + {id:'35-0-0', text:'level 3-35-0-0'} +, {id:'35-0-1', text:'level 3-35-0-1'} +, {id:'35-0-2', text:'level 3-35-0-2'} +, {id:'35-0-3', text:'level 3-35-0-3'} +, {id:'35-0-4', text:'level 3-35-0-4'} +, {id:'35-0-5', text:'level 3-35-0-5'} +, {id:'35-0-6', text:'level 3-35-0-6'} +, {id:'35-0-7', text:'level 3-35-0-7'} +, {id:'35-0-8', text:'level 3-35-0-8'} +, {id:'35-0-9', text:'level 3-35-0-9'} +]} +, {id:'35-1-10', text:'level 2-35-1', item:[ + {id:'35-1-0', text:'level 3-35-1-0'} +, {id:'35-1-1', text:'level 3-35-1-1'} +, {id:'35-1-2', text:'level 3-35-1-2'} +, {id:'35-1-3', text:'level 3-35-1-3'} +, {id:'35-1-4', text:'level 3-35-1-4'} +, {id:'35-1-5', text:'level 3-35-1-5'} +, {id:'35-1-6', text:'level 3-35-1-6'} +, {id:'35-1-7', text:'level 3-35-1-7'} +, {id:'35-1-8', text:'level 3-35-1-8'} +, {id:'35-1-9', text:'level 3-35-1-9'} +]} +, {id:'35-2-10', text:'level 2-35-2', item:[ + {id:'35-2-0', text:'level 3-35-2-0'} +, {id:'35-2-1', text:'level 3-35-2-1'} +, {id:'35-2-2', text:'level 3-35-2-2'} +, {id:'35-2-3', text:'level 3-35-2-3'} +, {id:'35-2-4', text:'level 3-35-2-4'} +, {id:'35-2-5', text:'level 3-35-2-5'} +, {id:'35-2-6', text:'level 3-35-2-6'} +, {id:'35-2-7', text:'level 3-35-2-7'} +, {id:'35-2-8', text:'level 3-35-2-8'} +, {id:'35-2-9', text:'level 3-35-2-9'} +]} +, {id:'35-3-10', text:'level 2-35-3', item:[ + {id:'35-3-0', text:'level 3-35-3-0'} +, {id:'35-3-1', text:'level 3-35-3-1'} +, {id:'35-3-2', text:'level 3-35-3-2'} +, {id:'35-3-3', text:'level 3-35-3-3'} +, {id:'35-3-4', text:'level 3-35-3-4'} +, {id:'35-3-5', text:'level 3-35-3-5'} +, {id:'35-3-6', text:'level 3-35-3-6'} +, {id:'35-3-7', text:'level 3-35-3-7'} +, {id:'35-3-8', text:'level 3-35-3-8'} +, {id:'35-3-9', text:'level 3-35-3-9'} +]} +, {id:'35-4-10', text:'level 2-35-4', item:[ + {id:'35-4-0', text:'level 3-35-4-0'} +, {id:'35-4-1', text:'level 3-35-4-1'} +, {id:'35-4-2', text:'level 3-35-4-2'} +, {id:'35-4-3', text:'level 3-35-4-3'} +, {id:'35-4-4', text:'level 3-35-4-4'} +, {id:'35-4-5', text:'level 3-35-4-5'} +, {id:'35-4-6', text:'level 3-35-4-6'} +, {id:'35-4-7', text:'level 3-35-4-7'} +, {id:'35-4-8', text:'level 3-35-4-8'} +, {id:'35-4-9', text:'level 3-35-4-9'} +]} +, {id:'35-5-10', text:'level 2-35-5', item:[ + {id:'35-5-0', text:'level 3-35-5-0'} +, {id:'35-5-1', text:'level 3-35-5-1'} +, {id:'35-5-2', text:'level 3-35-5-2'} +, {id:'35-5-3', text:'level 3-35-5-3'} +, {id:'35-5-4', text:'level 3-35-5-4'} +, {id:'35-5-5', text:'level 3-35-5-5'} +, {id:'35-5-6', text:'level 3-35-5-6'} +, {id:'35-5-7', text:'level 3-35-5-7'} +, {id:'35-5-8', text:'level 3-35-5-8'} +, {id:'35-5-9', text:'level 3-35-5-9'} +]} +, {id:'35-6-10', text:'level 2-35-6', item:[ + {id:'35-6-0', text:'level 3-35-6-0'} +, {id:'35-6-1', text:'level 3-35-6-1'} +, {id:'35-6-2', text:'level 3-35-6-2'} +, {id:'35-6-3', text:'level 3-35-6-3'} +, {id:'35-6-4', text:'level 3-35-6-4'} +, {id:'35-6-5', text:'level 3-35-6-5'} +, {id:'35-6-6', text:'level 3-35-6-6'} +, {id:'35-6-7', text:'level 3-35-6-7'} +, {id:'35-6-8', text:'level 3-35-6-8'} +, {id:'35-6-9', text:'level 3-35-6-9'} +]} +, {id:'35-7-10', text:'level 2-35-7', item:[ + {id:'35-7-0', text:'level 3-35-7-0'} +, {id:'35-7-1', text:'level 3-35-7-1'} +, {id:'35-7-2', text:'level 3-35-7-2'} +, {id:'35-7-3', text:'level 3-35-7-3'} +, {id:'35-7-4', text:'level 3-35-7-4'} +, {id:'35-7-5', text:'level 3-35-7-5'} +, {id:'35-7-6', text:'level 3-35-7-6'} +, {id:'35-7-7', text:'level 3-35-7-7'} +, {id:'35-7-8', text:'level 3-35-7-8'} +, {id:'35-7-9', text:'level 3-35-7-9'} +]} +, {id:'35-8-10', text:'level 2-35-8', item:[ + {id:'35-8-0', text:'level 3-35-8-0'} +, {id:'35-8-1', text:'level 3-35-8-1'} +, {id:'35-8-2', text:'level 3-35-8-2'} +, {id:'35-8-3', text:'level 3-35-8-3'} +, {id:'35-8-4', text:'level 3-35-8-4'} +, {id:'35-8-5', text:'level 3-35-8-5'} +, {id:'35-8-6', text:'level 3-35-8-6'} +, {id:'35-8-7', text:'level 3-35-8-7'} +, {id:'35-8-8', text:'level 3-35-8-8'} +, {id:'35-8-9', text:'level 3-35-8-9'} +]} +, {id:'35-9-10', text:'level 2-35-9', item:[ + {id:'35-9-0', text:'level 3-35-9-0'} +, {id:'35-9-1', text:'level 3-35-9-1'} +, {id:'35-9-2', text:'level 3-35-9-2'} +, {id:'35-9-3', text:'level 3-35-9-3'} +, {id:'35-9-4', text:'level 3-35-9-4'} +, {id:'35-9-5', text:'level 3-35-9-5'} +, {id:'35-9-6', text:'level 3-35-9-6'} +, {id:'35-9-7', text:'level 3-35-9-7'} +, {id:'35-9-8', text:'level 3-35-9-8'} +, {id:'35-9-9', text:'level 3-35-9-9'} +]} +, {id:'35-10-10', text:'level 2-35-10', item:[ + {id:'35-10-0', text:'level 3-35-10-0'} +, {id:'35-10-1', text:'level 3-35-10-1'} +, {id:'35-10-2', text:'level 3-35-10-2'} +, {id:'35-10-3', text:'level 3-35-10-3'} +, {id:'35-10-4', text:'level 3-35-10-4'} +, {id:'35-10-5', text:'level 3-35-10-5'} +, {id:'35-10-6', text:'level 3-35-10-6'} +, {id:'35-10-7', text:'level 3-35-10-7'} +, {id:'35-10-8', text:'level 3-35-10-8'} +, {id:'35-10-9', text:'level 3-35-10-9'} +]} +, {id:'35-11-10', text:'level 2-35-11', item:[ + {id:'35-11-0', text:'level 3-35-11-0'} +, {id:'35-11-1', text:'level 3-35-11-1'} +, {id:'35-11-2', text:'level 3-35-11-2'} +, {id:'35-11-3', text:'level 3-35-11-3'} +, {id:'35-11-4', text:'level 3-35-11-4'} +, {id:'35-11-5', text:'level 3-35-11-5'} +, {id:'35-11-6', text:'level 3-35-11-6'} +, {id:'35-11-7', text:'level 3-35-11-7'} +, {id:'35-11-8', text:'level 3-35-11-8'} +, {id:'35-11-9', text:'level 3-35-11-9'} +]} +, {id:'35-12-10', text:'level 2-35-12', item:[ + {id:'35-12-0', text:'level 3-35-12-0'} +, {id:'35-12-1', text:'level 3-35-12-1'} +, {id:'35-12-2', text:'level 3-35-12-2'} +, {id:'35-12-3', text:'level 3-35-12-3'} +, {id:'35-12-4', text:'level 3-35-12-4'} +, {id:'35-12-5', text:'level 3-35-12-5'} +, {id:'35-12-6', text:'level 3-35-12-6'} +, {id:'35-12-7', text:'level 3-35-12-7'} +, {id:'35-12-8', text:'level 3-35-12-8'} +, {id:'35-12-9', text:'level 3-35-12-9'} +]} +, {id:'35-13-10', text:'level 2-35-13', item:[ + {id:'35-13-0', text:'level 3-35-13-0'} +, {id:'35-13-1', text:'level 3-35-13-1'} +, {id:'35-13-2', text:'level 3-35-13-2'} +, {id:'35-13-3', text:'level 3-35-13-3'} +, {id:'35-13-4', text:'level 3-35-13-4'} +, {id:'35-13-5', text:'level 3-35-13-5'} +, {id:'35-13-6', text:'level 3-35-13-6'} +, {id:'35-13-7', text:'level 3-35-13-7'} +, {id:'35-13-8', text:'level 3-35-13-8'} +, {id:'35-13-9', text:'level 3-35-13-9'} +]} +, {id:'35-14-10', text:'level 2-35-14', item:[ + {id:'35-14-0', text:'level 3-35-14-0'} +, {id:'35-14-1', text:'level 3-35-14-1'} +, {id:'35-14-2', text:'level 3-35-14-2'} +, {id:'35-14-3', text:'level 3-35-14-3'} +, {id:'35-14-4', text:'level 3-35-14-4'} +, {id:'35-14-5', text:'level 3-35-14-5'} +, {id:'35-14-6', text:'level 3-35-14-6'} +, {id:'35-14-7', text:'level 3-35-14-7'} +, {id:'35-14-8', text:'level 3-35-14-8'} +, {id:'35-14-9', text:'level 3-35-14-9'} +]} +, {id:'35-15-10', text:'level 2-35-15', item:[ + {id:'35-15-0', text:'level 3-35-15-0'} +, {id:'35-15-1', text:'level 3-35-15-1'} +, {id:'35-15-2', text:'level 3-35-15-2'} +, {id:'35-15-3', text:'level 3-35-15-3'} +, {id:'35-15-4', text:'level 3-35-15-4'} +, {id:'35-15-5', text:'level 3-35-15-5'} +, {id:'35-15-6', text:'level 3-35-15-6'} +, {id:'35-15-7', text:'level 3-35-15-7'} +, {id:'35-15-8', text:'level 3-35-15-8'} +, {id:'35-15-9', text:'level 3-35-15-9'} +]} +, {id:'35-16-10', text:'level 2-35-16', item:[ + {id:'35-16-0', text:'level 3-35-16-0'} +, {id:'35-16-1', text:'level 3-35-16-1'} +, {id:'35-16-2', text:'level 3-35-16-2'} +, {id:'35-16-3', text:'level 3-35-16-3'} +, {id:'35-16-4', text:'level 3-35-16-4'} +, {id:'35-16-5', text:'level 3-35-16-5'} +, {id:'35-16-6', text:'level 3-35-16-6'} +, {id:'35-16-7', text:'level 3-35-16-7'} +, {id:'35-16-8', text:'level 3-35-16-8'} +, {id:'35-16-9', text:'level 3-35-16-9'} +]} +, {id:'35-17-10', text:'level 2-35-17', item:[ + {id:'35-17-0', text:'level 3-35-17-0'} +, {id:'35-17-1', text:'level 3-35-17-1'} +, {id:'35-17-2', text:'level 3-35-17-2'} +, {id:'35-17-3', text:'level 3-35-17-3'} +, {id:'35-17-4', text:'level 3-35-17-4'} +, {id:'35-17-5', text:'level 3-35-17-5'} +, {id:'35-17-6', text:'level 3-35-17-6'} +, {id:'35-17-7', text:'level 3-35-17-7'} +, {id:'35-17-8', text:'level 3-35-17-8'} +, {id:'35-17-9', text:'level 3-35-17-9'} +]} +, {id:'35-18-10', text:'level 2-35-18', item:[ + {id:'35-18-0', text:'level 3-35-18-0'} +, {id:'35-18-1', text:'level 3-35-18-1'} +, {id:'35-18-2', text:'level 3-35-18-2'} +, {id:'35-18-3', text:'level 3-35-18-3'} +, {id:'35-18-4', text:'level 3-35-18-4'} +, {id:'35-18-5', text:'level 3-35-18-5'} +, {id:'35-18-6', text:'level 3-35-18-6'} +, {id:'35-18-7', text:'level 3-35-18-7'} +, {id:'35-18-8', text:'level 3-35-18-8'} +, {id:'35-18-9', text:'level 3-35-18-9'} +]} +, {id:'35-19-10', text:'level 2-35-19', item:[ + {id:'35-19-0', text:'level 3-35-19-0'} +, {id:'35-19-1', text:'level 3-35-19-1'} +, {id:'35-19-2', text:'level 3-35-19-2'} +, {id:'35-19-3', text:'level 3-35-19-3'} +, {id:'35-19-4', text:'level 3-35-19-4'} +, {id:'35-19-5', text:'level 3-35-19-5'} +, {id:'35-19-6', text:'level 3-35-19-6'} +, {id:'35-19-7', text:'level 3-35-19-7'} +, {id:'35-19-8', text:'level 3-35-19-8'} +, {id:'35-19-9', text:'level 3-35-19-9'} +]} +]} +,{id:'36-20-10', text:'level 1-36', item:[ + {id:'36-0-10', text:'level 2-36-0', item:[ + {id:'36-0-0', text:'level 3-36-0-0'} +, {id:'36-0-1', text:'level 3-36-0-1'} +, {id:'36-0-2', text:'level 3-36-0-2'} +, {id:'36-0-3', text:'level 3-36-0-3'} +, {id:'36-0-4', text:'level 3-36-0-4'} +, {id:'36-0-5', text:'level 3-36-0-5'} +, {id:'36-0-6', text:'level 3-36-0-6'} +, {id:'36-0-7', text:'level 3-36-0-7'} +, {id:'36-0-8', text:'level 3-36-0-8'} +, {id:'36-0-9', text:'level 3-36-0-9'} +]} +, {id:'36-1-10', text:'level 2-36-1', item:[ + {id:'36-1-0', text:'level 3-36-1-0'} +, {id:'36-1-1', text:'level 3-36-1-1'} +, {id:'36-1-2', text:'level 3-36-1-2'} +, {id:'36-1-3', text:'level 3-36-1-3'} +, {id:'36-1-4', text:'level 3-36-1-4'} +, {id:'36-1-5', text:'level 3-36-1-5'} +, {id:'36-1-6', text:'level 3-36-1-6'} +, {id:'36-1-7', text:'level 3-36-1-7'} +, {id:'36-1-8', text:'level 3-36-1-8'} +, {id:'36-1-9', text:'level 3-36-1-9'} +]} +, {id:'36-2-10', text:'level 2-36-2', item:[ + {id:'36-2-0', text:'level 3-36-2-0'} +, {id:'36-2-1', text:'level 3-36-2-1'} +, {id:'36-2-2', text:'level 3-36-2-2'} +, {id:'36-2-3', text:'level 3-36-2-3'} +, {id:'36-2-4', text:'level 3-36-2-4'} +, {id:'36-2-5', text:'level 3-36-2-5'} +, {id:'36-2-6', text:'level 3-36-2-6'} +, {id:'36-2-7', text:'level 3-36-2-7'} +, {id:'36-2-8', text:'level 3-36-2-8'} +, {id:'36-2-9', text:'level 3-36-2-9'} +]} +, {id:'36-3-10', text:'level 2-36-3', item:[ + {id:'36-3-0', text:'level 3-36-3-0'} +, {id:'36-3-1', text:'level 3-36-3-1'} +, {id:'36-3-2', text:'level 3-36-3-2'} +, {id:'36-3-3', text:'level 3-36-3-3'} +, {id:'36-3-4', text:'level 3-36-3-4'} +, {id:'36-3-5', text:'level 3-36-3-5'} +, {id:'36-3-6', text:'level 3-36-3-6'} +, {id:'36-3-7', text:'level 3-36-3-7'} +, {id:'36-3-8', text:'level 3-36-3-8'} +, {id:'36-3-9', text:'level 3-36-3-9'} +]} +, {id:'36-4-10', text:'level 2-36-4', item:[ + {id:'36-4-0', text:'level 3-36-4-0'} +, {id:'36-4-1', text:'level 3-36-4-1'} +, {id:'36-4-2', text:'level 3-36-4-2'} +, {id:'36-4-3', text:'level 3-36-4-3'} +, {id:'36-4-4', text:'level 3-36-4-4'} +, {id:'36-4-5', text:'level 3-36-4-5'} +, {id:'36-4-6', text:'level 3-36-4-6'} +, {id:'36-4-7', text:'level 3-36-4-7'} +, {id:'36-4-8', text:'level 3-36-4-8'} +, {id:'36-4-9', text:'level 3-36-4-9'} +]} +, {id:'36-5-10', text:'level 2-36-5', item:[ + {id:'36-5-0', text:'level 3-36-5-0'} +, {id:'36-5-1', text:'level 3-36-5-1'} +, {id:'36-5-2', text:'level 3-36-5-2'} +, {id:'36-5-3', text:'level 3-36-5-3'} +, {id:'36-5-4', text:'level 3-36-5-4'} +, {id:'36-5-5', text:'level 3-36-5-5'} +, {id:'36-5-6', text:'level 3-36-5-6'} +, {id:'36-5-7', text:'level 3-36-5-7'} +, {id:'36-5-8', text:'level 3-36-5-8'} +, {id:'36-5-9', text:'level 3-36-5-9'} +]} +, {id:'36-6-10', text:'level 2-36-6', item:[ + {id:'36-6-0', text:'level 3-36-6-0'} +, {id:'36-6-1', text:'level 3-36-6-1'} +, {id:'36-6-2', text:'level 3-36-6-2'} +, {id:'36-6-3', text:'level 3-36-6-3'} +, {id:'36-6-4', text:'level 3-36-6-4'} +, {id:'36-6-5', text:'level 3-36-6-5'} +, {id:'36-6-6', text:'level 3-36-6-6'} +, {id:'36-6-7', text:'level 3-36-6-7'} +, {id:'36-6-8', text:'level 3-36-6-8'} +, {id:'36-6-9', text:'level 3-36-6-9'} +]} +, {id:'36-7-10', text:'level 2-36-7', item:[ + {id:'36-7-0', text:'level 3-36-7-0'} +, {id:'36-7-1', text:'level 3-36-7-1'} +, {id:'36-7-2', text:'level 3-36-7-2'} +, {id:'36-7-3', text:'level 3-36-7-3'} +, {id:'36-7-4', text:'level 3-36-7-4'} +, {id:'36-7-5', text:'level 3-36-7-5'} +, {id:'36-7-6', text:'level 3-36-7-6'} +, {id:'36-7-7', text:'level 3-36-7-7'} +, {id:'36-7-8', text:'level 3-36-7-8'} +, {id:'36-7-9', text:'level 3-36-7-9'} +]} +, {id:'36-8-10', text:'level 2-36-8', item:[ + {id:'36-8-0', text:'level 3-36-8-0'} +, {id:'36-8-1', text:'level 3-36-8-1'} +, {id:'36-8-2', text:'level 3-36-8-2'} +, {id:'36-8-3', text:'level 3-36-8-3'} +, {id:'36-8-4', text:'level 3-36-8-4'} +, {id:'36-8-5', text:'level 3-36-8-5'} +, {id:'36-8-6', text:'level 3-36-8-6'} +, {id:'36-8-7', text:'level 3-36-8-7'} +, {id:'36-8-8', text:'level 3-36-8-8'} +, {id:'36-8-9', text:'level 3-36-8-9'} +]} +, {id:'36-9-10', text:'level 2-36-9', item:[ + {id:'36-9-0', text:'level 3-36-9-0'} +, {id:'36-9-1', text:'level 3-36-9-1'} +, {id:'36-9-2', text:'level 3-36-9-2'} +, {id:'36-9-3', text:'level 3-36-9-3'} +, {id:'36-9-4', text:'level 3-36-9-4'} +, {id:'36-9-5', text:'level 3-36-9-5'} +, {id:'36-9-6', text:'level 3-36-9-6'} +, {id:'36-9-7', text:'level 3-36-9-7'} +, {id:'36-9-8', text:'level 3-36-9-8'} +, {id:'36-9-9', text:'level 3-36-9-9'} +]} +, {id:'36-10-10', text:'level 2-36-10', item:[ + {id:'36-10-0', text:'level 3-36-10-0'} +, {id:'36-10-1', text:'level 3-36-10-1'} +, {id:'36-10-2', text:'level 3-36-10-2'} +, {id:'36-10-3', text:'level 3-36-10-3'} +, {id:'36-10-4', text:'level 3-36-10-4'} +, {id:'36-10-5', text:'level 3-36-10-5'} +, {id:'36-10-6', text:'level 3-36-10-6'} +, {id:'36-10-7', text:'level 3-36-10-7'} +, {id:'36-10-8', text:'level 3-36-10-8'} +, {id:'36-10-9', text:'level 3-36-10-9'} +]} +, {id:'36-11-10', text:'level 2-36-11', item:[ + {id:'36-11-0', text:'level 3-36-11-0'} +, {id:'36-11-1', text:'level 3-36-11-1'} +, {id:'36-11-2', text:'level 3-36-11-2'} +, {id:'36-11-3', text:'level 3-36-11-3'} +, {id:'36-11-4', text:'level 3-36-11-4'} +, {id:'36-11-5', text:'level 3-36-11-5'} +, {id:'36-11-6', text:'level 3-36-11-6'} +, {id:'36-11-7', text:'level 3-36-11-7'} +, {id:'36-11-8', text:'level 3-36-11-8'} +, {id:'36-11-9', text:'level 3-36-11-9'} +]} +, {id:'36-12-10', text:'level 2-36-12', item:[ + {id:'36-12-0', text:'level 3-36-12-0'} +, {id:'36-12-1', text:'level 3-36-12-1'} +, {id:'36-12-2', text:'level 3-36-12-2'} +, {id:'36-12-3', text:'level 3-36-12-3'} +, {id:'36-12-4', text:'level 3-36-12-4'} +, {id:'36-12-5', text:'level 3-36-12-5'} +, {id:'36-12-6', text:'level 3-36-12-6'} +, {id:'36-12-7', text:'level 3-36-12-7'} +, {id:'36-12-8', text:'level 3-36-12-8'} +, {id:'36-12-9', text:'level 3-36-12-9'} +]} +, {id:'36-13-10', text:'level 2-36-13', item:[ + {id:'36-13-0', text:'level 3-36-13-0'} +, {id:'36-13-1', text:'level 3-36-13-1'} +, {id:'36-13-2', text:'level 3-36-13-2'} +, {id:'36-13-3', text:'level 3-36-13-3'} +, {id:'36-13-4', text:'level 3-36-13-4'} +, {id:'36-13-5', text:'level 3-36-13-5'} +, {id:'36-13-6', text:'level 3-36-13-6'} +, {id:'36-13-7', text:'level 3-36-13-7'} +, {id:'36-13-8', text:'level 3-36-13-8'} +, {id:'36-13-9', text:'level 3-36-13-9'} +]} +, {id:'36-14-10', text:'level 2-36-14', item:[ + {id:'36-14-0', text:'level 3-36-14-0'} +, {id:'36-14-1', text:'level 3-36-14-1'} +, {id:'36-14-2', text:'level 3-36-14-2'} +, {id:'36-14-3', text:'level 3-36-14-3'} +, {id:'36-14-4', text:'level 3-36-14-4'} +, {id:'36-14-5', text:'level 3-36-14-5'} +, {id:'36-14-6', text:'level 3-36-14-6'} +, {id:'36-14-7', text:'level 3-36-14-7'} +, {id:'36-14-8', text:'level 3-36-14-8'} +, {id:'36-14-9', text:'level 3-36-14-9'} +]} +, {id:'36-15-10', text:'level 2-36-15', item:[ + {id:'36-15-0', text:'level 3-36-15-0'} +, {id:'36-15-1', text:'level 3-36-15-1'} +, {id:'36-15-2', text:'level 3-36-15-2'} +, {id:'36-15-3', text:'level 3-36-15-3'} +, {id:'36-15-4', text:'level 3-36-15-4'} +, {id:'36-15-5', text:'level 3-36-15-5'} +, {id:'36-15-6', text:'level 3-36-15-6'} +, {id:'36-15-7', text:'level 3-36-15-7'} +, {id:'36-15-8', text:'level 3-36-15-8'} +, {id:'36-15-9', text:'level 3-36-15-9'} +]} +, {id:'36-16-10', text:'level 2-36-16', item:[ + {id:'36-16-0', text:'level 3-36-16-0'} +, {id:'36-16-1', text:'level 3-36-16-1'} +, {id:'36-16-2', text:'level 3-36-16-2'} +, {id:'36-16-3', text:'level 3-36-16-3'} +, {id:'36-16-4', text:'level 3-36-16-4'} +, {id:'36-16-5', text:'level 3-36-16-5'} +, {id:'36-16-6', text:'level 3-36-16-6'} +, {id:'36-16-7', text:'level 3-36-16-7'} +, {id:'36-16-8', text:'level 3-36-16-8'} +, {id:'36-16-9', text:'level 3-36-16-9'} +]} +, {id:'36-17-10', text:'level 2-36-17', item:[ + {id:'36-17-0', text:'level 3-36-17-0'} +, {id:'36-17-1', text:'level 3-36-17-1'} +, {id:'36-17-2', text:'level 3-36-17-2'} +, {id:'36-17-3', text:'level 3-36-17-3'} +, {id:'36-17-4', text:'level 3-36-17-4'} +, {id:'36-17-5', text:'level 3-36-17-5'} +, {id:'36-17-6', text:'level 3-36-17-6'} +, {id:'36-17-7', text:'level 3-36-17-7'} +, {id:'36-17-8', text:'level 3-36-17-8'} +, {id:'36-17-9', text:'level 3-36-17-9'} +]} +, {id:'36-18-10', text:'level 2-36-18', item:[ + {id:'36-18-0', text:'level 3-36-18-0'} +, {id:'36-18-1', text:'level 3-36-18-1'} +, {id:'36-18-2', text:'level 3-36-18-2'} +, {id:'36-18-3', text:'level 3-36-18-3'} +, {id:'36-18-4', text:'level 3-36-18-4'} +, {id:'36-18-5', text:'level 3-36-18-5'} +, {id:'36-18-6', text:'level 3-36-18-6'} +, {id:'36-18-7', text:'level 3-36-18-7'} +, {id:'36-18-8', text:'level 3-36-18-8'} +, {id:'36-18-9', text:'level 3-36-18-9'} +]} +, {id:'36-19-10', text:'level 2-36-19', item:[ + {id:'36-19-0', text:'level 3-36-19-0'} +, {id:'36-19-1', text:'level 3-36-19-1'} +, {id:'36-19-2', text:'level 3-36-19-2'} +, {id:'36-19-3', text:'level 3-36-19-3'} +, {id:'36-19-4', text:'level 3-36-19-4'} +, {id:'36-19-5', text:'level 3-36-19-5'} +, {id:'36-19-6', text:'level 3-36-19-6'} +, {id:'36-19-7', text:'level 3-36-19-7'} +, {id:'36-19-8', text:'level 3-36-19-8'} +, {id:'36-19-9', text:'level 3-36-19-9'} +]} +]} +,{id:'37-20-10', text:'level 1-37', item:[ + {id:'37-0-10', text:'level 2-37-0', item:[ + {id:'37-0-0', text:'level 3-37-0-0'} +, {id:'37-0-1', text:'level 3-37-0-1'} +, {id:'37-0-2', text:'level 3-37-0-2'} +, {id:'37-0-3', text:'level 3-37-0-3'} +, {id:'37-0-4', text:'level 3-37-0-4'} +, {id:'37-0-5', text:'level 3-37-0-5'} +, {id:'37-0-6', text:'level 3-37-0-6'} +, {id:'37-0-7', text:'level 3-37-0-7'} +, {id:'37-0-8', text:'level 3-37-0-8'} +, {id:'37-0-9', text:'level 3-37-0-9'} +]} +, {id:'37-1-10', text:'level 2-37-1', item:[ + {id:'37-1-0', text:'level 3-37-1-0'} +, {id:'37-1-1', text:'level 3-37-1-1'} +, {id:'37-1-2', text:'level 3-37-1-2'} +, {id:'37-1-3', text:'level 3-37-1-3'} +, {id:'37-1-4', text:'level 3-37-1-4'} +, {id:'37-1-5', text:'level 3-37-1-5'} +, {id:'37-1-6', text:'level 3-37-1-6'} +, {id:'37-1-7', text:'level 3-37-1-7'} +, {id:'37-1-8', text:'level 3-37-1-8'} +, {id:'37-1-9', text:'level 3-37-1-9'} +]} +, {id:'37-2-10', text:'level 2-37-2', item:[ + {id:'37-2-0', text:'level 3-37-2-0'} +, {id:'37-2-1', text:'level 3-37-2-1'} +, {id:'37-2-2', text:'level 3-37-2-2'} +, {id:'37-2-3', text:'level 3-37-2-3'} +, {id:'37-2-4', text:'level 3-37-2-4'} +, {id:'37-2-5', text:'level 3-37-2-5'} +, {id:'37-2-6', text:'level 3-37-2-6'} +, {id:'37-2-7', text:'level 3-37-2-7'} +, {id:'37-2-8', text:'level 3-37-2-8'} +, {id:'37-2-9', text:'level 3-37-2-9'} +]} +, {id:'37-3-10', text:'level 2-37-3', item:[ + {id:'37-3-0', text:'level 3-37-3-0'} +, {id:'37-3-1', text:'level 3-37-3-1'} +, {id:'37-3-2', text:'level 3-37-3-2'} +, {id:'37-3-3', text:'level 3-37-3-3'} +, {id:'37-3-4', text:'level 3-37-3-4'} +, {id:'37-3-5', text:'level 3-37-3-5'} +, {id:'37-3-6', text:'level 3-37-3-6'} +, {id:'37-3-7', text:'level 3-37-3-7'} +, {id:'37-3-8', text:'level 3-37-3-8'} +, {id:'37-3-9', text:'level 3-37-3-9'} +]} +, {id:'37-4-10', text:'level 2-37-4', item:[ + {id:'37-4-0', text:'level 3-37-4-0'} +, {id:'37-4-1', text:'level 3-37-4-1'} +, {id:'37-4-2', text:'level 3-37-4-2'} +, {id:'37-4-3', text:'level 3-37-4-3'} +, {id:'37-4-4', text:'level 3-37-4-4'} +, {id:'37-4-5', text:'level 3-37-4-5'} +, {id:'37-4-6', text:'level 3-37-4-6'} +, {id:'37-4-7', text:'level 3-37-4-7'} +, {id:'37-4-8', text:'level 3-37-4-8'} +, {id:'37-4-9', text:'level 3-37-4-9'} +]} +, {id:'37-5-10', text:'level 2-37-5', item:[ + {id:'37-5-0', text:'level 3-37-5-0'} +, {id:'37-5-1', text:'level 3-37-5-1'} +, {id:'37-5-2', text:'level 3-37-5-2'} +, {id:'37-5-3', text:'level 3-37-5-3'} +, {id:'37-5-4', text:'level 3-37-5-4'} +, {id:'37-5-5', text:'level 3-37-5-5'} +, {id:'37-5-6', text:'level 3-37-5-6'} +, {id:'37-5-7', text:'level 3-37-5-7'} +, {id:'37-5-8', text:'level 3-37-5-8'} +, {id:'37-5-9', text:'level 3-37-5-9'} +]} +, {id:'37-6-10', text:'level 2-37-6', item:[ + {id:'37-6-0', text:'level 3-37-6-0'} +, {id:'37-6-1', text:'level 3-37-6-1'} +, {id:'37-6-2', text:'level 3-37-6-2'} +, {id:'37-6-3', text:'level 3-37-6-3'} +, {id:'37-6-4', text:'level 3-37-6-4'} +, {id:'37-6-5', text:'level 3-37-6-5'} +, {id:'37-6-6', text:'level 3-37-6-6'} +, {id:'37-6-7', text:'level 3-37-6-7'} +, {id:'37-6-8', text:'level 3-37-6-8'} +, {id:'37-6-9', text:'level 3-37-6-9'} +]} +, {id:'37-7-10', text:'level 2-37-7', item:[ + {id:'37-7-0', text:'level 3-37-7-0'} +, {id:'37-7-1', text:'level 3-37-7-1'} +, {id:'37-7-2', text:'level 3-37-7-2'} +, {id:'37-7-3', text:'level 3-37-7-3'} +, {id:'37-7-4', text:'level 3-37-7-4'} +, {id:'37-7-5', text:'level 3-37-7-5'} +, {id:'37-7-6', text:'level 3-37-7-6'} +, {id:'37-7-7', text:'level 3-37-7-7'} +, {id:'37-7-8', text:'level 3-37-7-8'} +, {id:'37-7-9', text:'level 3-37-7-9'} +]} +, {id:'37-8-10', text:'level 2-37-8', item:[ + {id:'37-8-0', text:'level 3-37-8-0'} +, {id:'37-8-1', text:'level 3-37-8-1'} +, {id:'37-8-2', text:'level 3-37-8-2'} +, {id:'37-8-3', text:'level 3-37-8-3'} +, {id:'37-8-4', text:'level 3-37-8-4'} +, {id:'37-8-5', text:'level 3-37-8-5'} +, {id:'37-8-6', text:'level 3-37-8-6'} +, {id:'37-8-7', text:'level 3-37-8-7'} +, {id:'37-8-8', text:'level 3-37-8-8'} +, {id:'37-8-9', text:'level 3-37-8-9'} +]} +, {id:'37-9-10', text:'level 2-37-9', item:[ + {id:'37-9-0', text:'level 3-37-9-0'} +, {id:'37-9-1', text:'level 3-37-9-1'} +, {id:'37-9-2', text:'level 3-37-9-2'} +, {id:'37-9-3', text:'level 3-37-9-3'} +, {id:'37-9-4', text:'level 3-37-9-4'} +, {id:'37-9-5', text:'level 3-37-9-5'} +, {id:'37-9-6', text:'level 3-37-9-6'} +, {id:'37-9-7', text:'level 3-37-9-7'} +, {id:'37-9-8', text:'level 3-37-9-8'} +, {id:'37-9-9', text:'level 3-37-9-9'} +]} +, {id:'37-10-10', text:'level 2-37-10', item:[ + {id:'37-10-0', text:'level 3-37-10-0'} +, {id:'37-10-1', text:'level 3-37-10-1'} +, {id:'37-10-2', text:'level 3-37-10-2'} +, {id:'37-10-3', text:'level 3-37-10-3'} +, {id:'37-10-4', text:'level 3-37-10-4'} +, {id:'37-10-5', text:'level 3-37-10-5'} +, {id:'37-10-6', text:'level 3-37-10-6'} +, {id:'37-10-7', text:'level 3-37-10-7'} +, {id:'37-10-8', text:'level 3-37-10-8'} +, {id:'37-10-9', text:'level 3-37-10-9'} +]} +, {id:'37-11-10', text:'level 2-37-11', item:[ + {id:'37-11-0', text:'level 3-37-11-0'} +, {id:'37-11-1', text:'level 3-37-11-1'} +, {id:'37-11-2', text:'level 3-37-11-2'} +, {id:'37-11-3', text:'level 3-37-11-3'} +, {id:'37-11-4', text:'level 3-37-11-4'} +, {id:'37-11-5', text:'level 3-37-11-5'} +, {id:'37-11-6', text:'level 3-37-11-6'} +, {id:'37-11-7', text:'level 3-37-11-7'} +, {id:'37-11-8', text:'level 3-37-11-8'} +, {id:'37-11-9', text:'level 3-37-11-9'} +]} +, {id:'37-12-10', text:'level 2-37-12', item:[ + {id:'37-12-0', text:'level 3-37-12-0'} +, {id:'37-12-1', text:'level 3-37-12-1'} +, {id:'37-12-2', text:'level 3-37-12-2'} +, {id:'37-12-3', text:'level 3-37-12-3'} +, {id:'37-12-4', text:'level 3-37-12-4'} +, {id:'37-12-5', text:'level 3-37-12-5'} +, {id:'37-12-6', text:'level 3-37-12-6'} +, {id:'37-12-7', text:'level 3-37-12-7'} +, {id:'37-12-8', text:'level 3-37-12-8'} +, {id:'37-12-9', text:'level 3-37-12-9'} +]} +, {id:'37-13-10', text:'level 2-37-13', item:[ + {id:'37-13-0', text:'level 3-37-13-0'} +, {id:'37-13-1', text:'level 3-37-13-1'} +, {id:'37-13-2', text:'level 3-37-13-2'} +, {id:'37-13-3', text:'level 3-37-13-3'} +, {id:'37-13-4', text:'level 3-37-13-4'} +, {id:'37-13-5', text:'level 3-37-13-5'} +, {id:'37-13-6', text:'level 3-37-13-6'} +, {id:'37-13-7', text:'level 3-37-13-7'} +, {id:'37-13-8', text:'level 3-37-13-8'} +, {id:'37-13-9', text:'level 3-37-13-9'} +]} +, {id:'37-14-10', text:'level 2-37-14', item:[ + {id:'37-14-0', text:'level 3-37-14-0'} +, {id:'37-14-1', text:'level 3-37-14-1'} +, {id:'37-14-2', text:'level 3-37-14-2'} +, {id:'37-14-3', text:'level 3-37-14-3'} +, {id:'37-14-4', text:'level 3-37-14-4'} +, {id:'37-14-5', text:'level 3-37-14-5'} +, {id:'37-14-6', text:'level 3-37-14-6'} +, {id:'37-14-7', text:'level 3-37-14-7'} +, {id:'37-14-8', text:'level 3-37-14-8'} +, {id:'37-14-9', text:'level 3-37-14-9'} +]} +, {id:'37-15-10', text:'level 2-37-15', item:[ + {id:'37-15-0', text:'level 3-37-15-0'} +, {id:'37-15-1', text:'level 3-37-15-1'} +, {id:'37-15-2', text:'level 3-37-15-2'} +, {id:'37-15-3', text:'level 3-37-15-3'} +, {id:'37-15-4', text:'level 3-37-15-4'} +, {id:'37-15-5', text:'level 3-37-15-5'} +, {id:'37-15-6', text:'level 3-37-15-6'} +, {id:'37-15-7', text:'level 3-37-15-7'} +, {id:'37-15-8', text:'level 3-37-15-8'} +, {id:'37-15-9', text:'level 3-37-15-9'} +]} +, {id:'37-16-10', text:'level 2-37-16', item:[ + {id:'37-16-0', text:'level 3-37-16-0'} +, {id:'37-16-1', text:'level 3-37-16-1'} +, {id:'37-16-2', text:'level 3-37-16-2'} +, {id:'37-16-3', text:'level 3-37-16-3'} +, {id:'37-16-4', text:'level 3-37-16-4'} +, {id:'37-16-5', text:'level 3-37-16-5'} +, {id:'37-16-6', text:'level 3-37-16-6'} +, {id:'37-16-7', text:'level 3-37-16-7'} +, {id:'37-16-8', text:'level 3-37-16-8'} +, {id:'37-16-9', text:'level 3-37-16-9'} +]} +, {id:'37-17-10', text:'level 2-37-17', item:[ + {id:'37-17-0', text:'level 3-37-17-0'} +, {id:'37-17-1', text:'level 3-37-17-1'} +, {id:'37-17-2', text:'level 3-37-17-2'} +, {id:'37-17-3', text:'level 3-37-17-3'} +, {id:'37-17-4', text:'level 3-37-17-4'} +, {id:'37-17-5', text:'level 3-37-17-5'} +, {id:'37-17-6', text:'level 3-37-17-6'} +, {id:'37-17-7', text:'level 3-37-17-7'} +, {id:'37-17-8', text:'level 3-37-17-8'} +, {id:'37-17-9', text:'level 3-37-17-9'} +]} +, {id:'37-18-10', text:'level 2-37-18', item:[ + {id:'37-18-0', text:'level 3-37-18-0'} +, {id:'37-18-1', text:'level 3-37-18-1'} +, {id:'37-18-2', text:'level 3-37-18-2'} +, {id:'37-18-3', text:'level 3-37-18-3'} +, {id:'37-18-4', text:'level 3-37-18-4'} +, {id:'37-18-5', text:'level 3-37-18-5'} +, {id:'37-18-6', text:'level 3-37-18-6'} +, {id:'37-18-7', text:'level 3-37-18-7'} +, {id:'37-18-8', text:'level 3-37-18-8'} +, {id:'37-18-9', text:'level 3-37-18-9'} +]} +, {id:'37-19-10', text:'level 2-37-19', item:[ + {id:'37-19-0', text:'level 3-37-19-0'} +, {id:'37-19-1', text:'level 3-37-19-1'} +, {id:'37-19-2', text:'level 3-37-19-2'} +, {id:'37-19-3', text:'level 3-37-19-3'} +, {id:'37-19-4', text:'level 3-37-19-4'} +, {id:'37-19-5', text:'level 3-37-19-5'} +, {id:'37-19-6', text:'level 3-37-19-6'} +, {id:'37-19-7', text:'level 3-37-19-7'} +, {id:'37-19-8', text:'level 3-37-19-8'} +, {id:'37-19-9', text:'level 3-37-19-9'} +]} +]} +,{id:'38-20-10', text:'level 1-38', item:[ + {id:'38-0-10', text:'level 2-38-0', item:[ + {id:'38-0-0', text:'level 3-38-0-0'} +, {id:'38-0-1', text:'level 3-38-0-1'} +, {id:'38-0-2', text:'level 3-38-0-2'} +, {id:'38-0-3', text:'level 3-38-0-3'} +, {id:'38-0-4', text:'level 3-38-0-4'} +, {id:'38-0-5', text:'level 3-38-0-5'} +, {id:'38-0-6', text:'level 3-38-0-6'} +, {id:'38-0-7', text:'level 3-38-0-7'} +, {id:'38-0-8', text:'level 3-38-0-8'} +, {id:'38-0-9', text:'level 3-38-0-9'} +]} +, {id:'38-1-10', text:'level 2-38-1', item:[ + {id:'38-1-0', text:'level 3-38-1-0'} +, {id:'38-1-1', text:'level 3-38-1-1'} +, {id:'38-1-2', text:'level 3-38-1-2'} +, {id:'38-1-3', text:'level 3-38-1-3'} +, {id:'38-1-4', text:'level 3-38-1-4'} +, {id:'38-1-5', text:'level 3-38-1-5'} +, {id:'38-1-6', text:'level 3-38-1-6'} +, {id:'38-1-7', text:'level 3-38-1-7'} +, {id:'38-1-8', text:'level 3-38-1-8'} +, {id:'38-1-9', text:'level 3-38-1-9'} +]} +, {id:'38-2-10', text:'level 2-38-2', item:[ + {id:'38-2-0', text:'level 3-38-2-0'} +, {id:'38-2-1', text:'level 3-38-2-1'} +, {id:'38-2-2', text:'level 3-38-2-2'} +, {id:'38-2-3', text:'level 3-38-2-3'} +, {id:'38-2-4', text:'level 3-38-2-4'} +, {id:'38-2-5', text:'level 3-38-2-5'} +, {id:'38-2-6', text:'level 3-38-2-6'} +, {id:'38-2-7', text:'level 3-38-2-7'} +, {id:'38-2-8', text:'level 3-38-2-8'} +, {id:'38-2-9', text:'level 3-38-2-9'} +]} +, {id:'38-3-10', text:'level 2-38-3', item:[ + {id:'38-3-0', text:'level 3-38-3-0'} +, {id:'38-3-1', text:'level 3-38-3-1'} +, {id:'38-3-2', text:'level 3-38-3-2'} +, {id:'38-3-3', text:'level 3-38-3-3'} +, {id:'38-3-4', text:'level 3-38-3-4'} +, {id:'38-3-5', text:'level 3-38-3-5'} +, {id:'38-3-6', text:'level 3-38-3-6'} +, {id:'38-3-7', text:'level 3-38-3-7'} +, {id:'38-3-8', text:'level 3-38-3-8'} +, {id:'38-3-9', text:'level 3-38-3-9'} +]} +, {id:'38-4-10', text:'level 2-38-4', item:[ + {id:'38-4-0', text:'level 3-38-4-0'} +, {id:'38-4-1', text:'level 3-38-4-1'} +, {id:'38-4-2', text:'level 3-38-4-2'} +, {id:'38-4-3', text:'level 3-38-4-3'} +, {id:'38-4-4', text:'level 3-38-4-4'} +, {id:'38-4-5', text:'level 3-38-4-5'} +, {id:'38-4-6', text:'level 3-38-4-6'} +, {id:'38-4-7', text:'level 3-38-4-7'} +, {id:'38-4-8', text:'level 3-38-4-8'} +, {id:'38-4-9', text:'level 3-38-4-9'} +]} +, {id:'38-5-10', text:'level 2-38-5', item:[ + {id:'38-5-0', text:'level 3-38-5-0'} +, {id:'38-5-1', text:'level 3-38-5-1'} +, {id:'38-5-2', text:'level 3-38-5-2'} +, {id:'38-5-3', text:'level 3-38-5-3'} +, {id:'38-5-4', text:'level 3-38-5-4'} +, {id:'38-5-5', text:'level 3-38-5-5'} +, {id:'38-5-6', text:'level 3-38-5-6'} +, {id:'38-5-7', text:'level 3-38-5-7'} +, {id:'38-5-8', text:'level 3-38-5-8'} +, {id:'38-5-9', text:'level 3-38-5-9'} +]} +, {id:'38-6-10', text:'level 2-38-6', item:[ + {id:'38-6-0', text:'level 3-38-6-0'} +, {id:'38-6-1', text:'level 3-38-6-1'} +, {id:'38-6-2', text:'level 3-38-6-2'} +, {id:'38-6-3', text:'level 3-38-6-3'} +, {id:'38-6-4', text:'level 3-38-6-4'} +, {id:'38-6-5', text:'level 3-38-6-5'} +, {id:'38-6-6', text:'level 3-38-6-6'} +, {id:'38-6-7', text:'level 3-38-6-7'} +, {id:'38-6-8', text:'level 3-38-6-8'} +, {id:'38-6-9', text:'level 3-38-6-9'} +]} +, {id:'38-7-10', text:'level 2-38-7', item:[ + {id:'38-7-0', text:'level 3-38-7-0'} +, {id:'38-7-1', text:'level 3-38-7-1'} +, {id:'38-7-2', text:'level 3-38-7-2'} +, {id:'38-7-3', text:'level 3-38-7-3'} +, {id:'38-7-4', text:'level 3-38-7-4'} +, {id:'38-7-5', text:'level 3-38-7-5'} +, {id:'38-7-6', text:'level 3-38-7-6'} +, {id:'38-7-7', text:'level 3-38-7-7'} +, {id:'38-7-8', text:'level 3-38-7-8'} +, {id:'38-7-9', text:'level 3-38-7-9'} +]} +, {id:'38-8-10', text:'level 2-38-8', item:[ + {id:'38-8-0', text:'level 3-38-8-0'} +, {id:'38-8-1', text:'level 3-38-8-1'} +, {id:'38-8-2', text:'level 3-38-8-2'} +, {id:'38-8-3', text:'level 3-38-8-3'} +, {id:'38-8-4', text:'level 3-38-8-4'} +, {id:'38-8-5', text:'level 3-38-8-5'} +, {id:'38-8-6', text:'level 3-38-8-6'} +, {id:'38-8-7', text:'level 3-38-8-7'} +, {id:'38-8-8', text:'level 3-38-8-8'} +, {id:'38-8-9', text:'level 3-38-8-9'} +]} +, {id:'38-9-10', text:'level 2-38-9', item:[ + {id:'38-9-0', text:'level 3-38-9-0'} +, {id:'38-9-1', text:'level 3-38-9-1'} +, {id:'38-9-2', text:'level 3-38-9-2'} +, {id:'38-9-3', text:'level 3-38-9-3'} +, {id:'38-9-4', text:'level 3-38-9-4'} +, {id:'38-9-5', text:'level 3-38-9-5'} +, {id:'38-9-6', text:'level 3-38-9-6'} +, {id:'38-9-7', text:'level 3-38-9-7'} +, {id:'38-9-8', text:'level 3-38-9-8'} +, {id:'38-9-9', text:'level 3-38-9-9'} +]} +, {id:'38-10-10', text:'level 2-38-10', item:[ + {id:'38-10-0', text:'level 3-38-10-0'} +, {id:'38-10-1', text:'level 3-38-10-1'} +, {id:'38-10-2', text:'level 3-38-10-2'} +, {id:'38-10-3', text:'level 3-38-10-3'} +, {id:'38-10-4', text:'level 3-38-10-4'} +, {id:'38-10-5', text:'level 3-38-10-5'} +, {id:'38-10-6', text:'level 3-38-10-6'} +, {id:'38-10-7', text:'level 3-38-10-7'} +, {id:'38-10-8', text:'level 3-38-10-8'} +, {id:'38-10-9', text:'level 3-38-10-9'} +]} +, {id:'38-11-10', text:'level 2-38-11', item:[ + {id:'38-11-0', text:'level 3-38-11-0'} +, {id:'38-11-1', text:'level 3-38-11-1'} +, {id:'38-11-2', text:'level 3-38-11-2'} +, {id:'38-11-3', text:'level 3-38-11-3'} +, {id:'38-11-4', text:'level 3-38-11-4'} +, {id:'38-11-5', text:'level 3-38-11-5'} +, {id:'38-11-6', text:'level 3-38-11-6'} +, {id:'38-11-7', text:'level 3-38-11-7'} +, {id:'38-11-8', text:'level 3-38-11-8'} +, {id:'38-11-9', text:'level 3-38-11-9'} +]} +, {id:'38-12-10', text:'level 2-38-12', item:[ + {id:'38-12-0', text:'level 3-38-12-0'} +, {id:'38-12-1', text:'level 3-38-12-1'} +, {id:'38-12-2', text:'level 3-38-12-2'} +, {id:'38-12-3', text:'level 3-38-12-3'} +, {id:'38-12-4', text:'level 3-38-12-4'} +, {id:'38-12-5', text:'level 3-38-12-5'} +, {id:'38-12-6', text:'level 3-38-12-6'} +, {id:'38-12-7', text:'level 3-38-12-7'} +, {id:'38-12-8', text:'level 3-38-12-8'} +, {id:'38-12-9', text:'level 3-38-12-9'} +]} +, {id:'38-13-10', text:'level 2-38-13', item:[ + {id:'38-13-0', text:'level 3-38-13-0'} +, {id:'38-13-1', text:'level 3-38-13-1'} +, {id:'38-13-2', text:'level 3-38-13-2'} +, {id:'38-13-3', text:'level 3-38-13-3'} +, {id:'38-13-4', text:'level 3-38-13-4'} +, {id:'38-13-5', text:'level 3-38-13-5'} +, {id:'38-13-6', text:'level 3-38-13-6'} +, {id:'38-13-7', text:'level 3-38-13-7'} +, {id:'38-13-8', text:'level 3-38-13-8'} +, {id:'38-13-9', text:'level 3-38-13-9'} +]} +, {id:'38-14-10', text:'level 2-38-14', item:[ + {id:'38-14-0', text:'level 3-38-14-0'} +, {id:'38-14-1', text:'level 3-38-14-1'} +, {id:'38-14-2', text:'level 3-38-14-2'} +, {id:'38-14-3', text:'level 3-38-14-3'} +, {id:'38-14-4', text:'level 3-38-14-4'} +, {id:'38-14-5', text:'level 3-38-14-5'} +, {id:'38-14-6', text:'level 3-38-14-6'} +, {id:'38-14-7', text:'level 3-38-14-7'} +, {id:'38-14-8', text:'level 3-38-14-8'} +, {id:'38-14-9', text:'level 3-38-14-9'} +]} +, {id:'38-15-10', text:'level 2-38-15', item:[ + {id:'38-15-0', text:'level 3-38-15-0'} +, {id:'38-15-1', text:'level 3-38-15-1'} +, {id:'38-15-2', text:'level 3-38-15-2'} +, {id:'38-15-3', text:'level 3-38-15-3'} +, {id:'38-15-4', text:'level 3-38-15-4'} +, {id:'38-15-5', text:'level 3-38-15-5'} +, {id:'38-15-6', text:'level 3-38-15-6'} +, {id:'38-15-7', text:'level 3-38-15-7'} +, {id:'38-15-8', text:'level 3-38-15-8'} +, {id:'38-15-9', text:'level 3-38-15-9'} +]} +, {id:'38-16-10', text:'level 2-38-16', item:[ + {id:'38-16-0', text:'level 3-38-16-0'} +, {id:'38-16-1', text:'level 3-38-16-1'} +, {id:'38-16-2', text:'level 3-38-16-2'} +, {id:'38-16-3', text:'level 3-38-16-3'} +, {id:'38-16-4', text:'level 3-38-16-4'} +, {id:'38-16-5', text:'level 3-38-16-5'} +, {id:'38-16-6', text:'level 3-38-16-6'} +, {id:'38-16-7', text:'level 3-38-16-7'} +, {id:'38-16-8', text:'level 3-38-16-8'} +, {id:'38-16-9', text:'level 3-38-16-9'} +]} +, {id:'38-17-10', text:'level 2-38-17', item:[ + {id:'38-17-0', text:'level 3-38-17-0'} +, {id:'38-17-1', text:'level 3-38-17-1'} +, {id:'38-17-2', text:'level 3-38-17-2'} +, {id:'38-17-3', text:'level 3-38-17-3'} +, {id:'38-17-4', text:'level 3-38-17-4'} +, {id:'38-17-5', text:'level 3-38-17-5'} +, {id:'38-17-6', text:'level 3-38-17-6'} +, {id:'38-17-7', text:'level 3-38-17-7'} +, {id:'38-17-8', text:'level 3-38-17-8'} +, {id:'38-17-9', text:'level 3-38-17-9'} +]} +, {id:'38-18-10', text:'level 2-38-18', item:[ + {id:'38-18-0', text:'level 3-38-18-0'} +, {id:'38-18-1', text:'level 3-38-18-1'} +, {id:'38-18-2', text:'level 3-38-18-2'} +, {id:'38-18-3', text:'level 3-38-18-3'} +, {id:'38-18-4', text:'level 3-38-18-4'} +, {id:'38-18-5', text:'level 3-38-18-5'} +, {id:'38-18-6', text:'level 3-38-18-6'} +, {id:'38-18-7', text:'level 3-38-18-7'} +, {id:'38-18-8', text:'level 3-38-18-8'} +, {id:'38-18-9', text:'level 3-38-18-9'} +]} +, {id:'38-19-10', text:'level 2-38-19', item:[ + {id:'38-19-0', text:'level 3-38-19-0'} +, {id:'38-19-1', text:'level 3-38-19-1'} +, {id:'38-19-2', text:'level 3-38-19-2'} +, {id:'38-19-3', text:'level 3-38-19-3'} +, {id:'38-19-4', text:'level 3-38-19-4'} +, {id:'38-19-5', text:'level 3-38-19-5'} +, {id:'38-19-6', text:'level 3-38-19-6'} +, {id:'38-19-7', text:'level 3-38-19-7'} +, {id:'38-19-8', text:'level 3-38-19-8'} +, {id:'38-19-9', text:'level 3-38-19-9'} +]} +]} +,{id:'39-20-10', text:'level 1-39', item:[ + {id:'39-0-10', text:'level 2-39-0', item:[ + {id:'39-0-0', text:'level 3-39-0-0'} +, {id:'39-0-1', text:'level 3-39-0-1'} +, {id:'39-0-2', text:'level 3-39-0-2'} +, {id:'39-0-3', text:'level 3-39-0-3'} +, {id:'39-0-4', text:'level 3-39-0-4'} +, {id:'39-0-5', text:'level 3-39-0-5'} +, {id:'39-0-6', text:'level 3-39-0-6'} +, {id:'39-0-7', text:'level 3-39-0-7'} +, {id:'39-0-8', text:'level 3-39-0-8'} +, {id:'39-0-9', text:'level 3-39-0-9'} +]} +, {id:'39-1-10', text:'level 2-39-1', item:[ + {id:'39-1-0', text:'level 3-39-1-0'} +, {id:'39-1-1', text:'level 3-39-1-1'} +, {id:'39-1-2', text:'level 3-39-1-2'} +, {id:'39-1-3', text:'level 3-39-1-3'} +, {id:'39-1-4', text:'level 3-39-1-4'} +, {id:'39-1-5', text:'level 3-39-1-5'} +, {id:'39-1-6', text:'level 3-39-1-6'} +, {id:'39-1-7', text:'level 3-39-1-7'} +, {id:'39-1-8', text:'level 3-39-1-8'} +, {id:'39-1-9', text:'level 3-39-1-9'} +]} +, {id:'39-2-10', text:'level 2-39-2', item:[ + {id:'39-2-0', text:'level 3-39-2-0'} +, {id:'39-2-1', text:'level 3-39-2-1'} +, {id:'39-2-2', text:'level 3-39-2-2'} +, {id:'39-2-3', text:'level 3-39-2-3'} +, {id:'39-2-4', text:'level 3-39-2-4'} +, {id:'39-2-5', text:'level 3-39-2-5'} +, {id:'39-2-6', text:'level 3-39-2-6'} +, {id:'39-2-7', text:'level 3-39-2-7'} +, {id:'39-2-8', text:'level 3-39-2-8'} +, {id:'39-2-9', text:'level 3-39-2-9'} +]} +, {id:'39-3-10', text:'level 2-39-3', item:[ + {id:'39-3-0', text:'level 3-39-3-0'} +, {id:'39-3-1', text:'level 3-39-3-1'} +, {id:'39-3-2', text:'level 3-39-3-2'} +, {id:'39-3-3', text:'level 3-39-3-3'} +, {id:'39-3-4', text:'level 3-39-3-4'} +, {id:'39-3-5', text:'level 3-39-3-5'} +, {id:'39-3-6', text:'level 3-39-3-6'} +, {id:'39-3-7', text:'level 3-39-3-7'} +, {id:'39-3-8', text:'level 3-39-3-8'} +, {id:'39-3-9', text:'level 3-39-3-9'} +]} +, {id:'39-4-10', text:'level 2-39-4', item:[ + {id:'39-4-0', text:'level 3-39-4-0'} +, {id:'39-4-1', text:'level 3-39-4-1'} +, {id:'39-4-2', text:'level 3-39-4-2'} +, {id:'39-4-3', text:'level 3-39-4-3'} +, {id:'39-4-4', text:'level 3-39-4-4'} +, {id:'39-4-5', text:'level 3-39-4-5'} +, {id:'39-4-6', text:'level 3-39-4-6'} +, {id:'39-4-7', text:'level 3-39-4-7'} +, {id:'39-4-8', text:'level 3-39-4-8'} +, {id:'39-4-9', text:'level 3-39-4-9'} +]} +, {id:'39-5-10', text:'level 2-39-5', item:[ + {id:'39-5-0', text:'level 3-39-5-0'} +, {id:'39-5-1', text:'level 3-39-5-1'} +, {id:'39-5-2', text:'level 3-39-5-2'} +, {id:'39-5-3', text:'level 3-39-5-3'} +, {id:'39-5-4', text:'level 3-39-5-4'} +, {id:'39-5-5', text:'level 3-39-5-5'} +, {id:'39-5-6', text:'level 3-39-5-6'} +, {id:'39-5-7', text:'level 3-39-5-7'} +, {id:'39-5-8', text:'level 3-39-5-8'} +, {id:'39-5-9', text:'level 3-39-5-9'} +]} +, {id:'39-6-10', text:'level 2-39-6', item:[ + {id:'39-6-0', text:'level 3-39-6-0'} +, {id:'39-6-1', text:'level 3-39-6-1'} +, {id:'39-6-2', text:'level 3-39-6-2'} +, {id:'39-6-3', text:'level 3-39-6-3'} +, {id:'39-6-4', text:'level 3-39-6-4'} +, {id:'39-6-5', text:'level 3-39-6-5'} +, {id:'39-6-6', text:'level 3-39-6-6'} +, {id:'39-6-7', text:'level 3-39-6-7'} +, {id:'39-6-8', text:'level 3-39-6-8'} +, {id:'39-6-9', text:'level 3-39-6-9'} +]} +, {id:'39-7-10', text:'level 2-39-7', item:[ + {id:'39-7-0', text:'level 3-39-7-0'} +, {id:'39-7-1', text:'level 3-39-7-1'} +, {id:'39-7-2', text:'level 3-39-7-2'} +, {id:'39-7-3', text:'level 3-39-7-3'} +, {id:'39-7-4', text:'level 3-39-7-4'} +, {id:'39-7-5', text:'level 3-39-7-5'} +, {id:'39-7-6', text:'level 3-39-7-6'} +, {id:'39-7-7', text:'level 3-39-7-7'} +, {id:'39-7-8', text:'level 3-39-7-8'} +, {id:'39-7-9', text:'level 3-39-7-9'} +]} +, {id:'39-8-10', text:'level 2-39-8', item:[ + {id:'39-8-0', text:'level 3-39-8-0'} +, {id:'39-8-1', text:'level 3-39-8-1'} +, {id:'39-8-2', text:'level 3-39-8-2'} +, {id:'39-8-3', text:'level 3-39-8-3'} +, {id:'39-8-4', text:'level 3-39-8-4'} +, {id:'39-8-5', text:'level 3-39-8-5'} +, {id:'39-8-6', text:'level 3-39-8-6'} +, {id:'39-8-7', text:'level 3-39-8-7'} +, {id:'39-8-8', text:'level 3-39-8-8'} +, {id:'39-8-9', text:'level 3-39-8-9'} +]} +, {id:'39-9-10', text:'level 2-39-9', item:[ + {id:'39-9-0', text:'level 3-39-9-0'} +, {id:'39-9-1', text:'level 3-39-9-1'} +, {id:'39-9-2', text:'level 3-39-9-2'} +, {id:'39-9-3', text:'level 3-39-9-3'} +, {id:'39-9-4', text:'level 3-39-9-4'} +, {id:'39-9-5', text:'level 3-39-9-5'} +, {id:'39-9-6', text:'level 3-39-9-6'} +, {id:'39-9-7', text:'level 3-39-9-7'} +, {id:'39-9-8', text:'level 3-39-9-8'} +, {id:'39-9-9', text:'level 3-39-9-9'} +]} +, {id:'39-10-10', text:'level 2-39-10', item:[ + {id:'39-10-0', text:'level 3-39-10-0'} +, {id:'39-10-1', text:'level 3-39-10-1'} +, {id:'39-10-2', text:'level 3-39-10-2'} +, {id:'39-10-3', text:'level 3-39-10-3'} +, {id:'39-10-4', text:'level 3-39-10-4'} +, {id:'39-10-5', text:'level 3-39-10-5'} +, {id:'39-10-6', text:'level 3-39-10-6'} +, {id:'39-10-7', text:'level 3-39-10-7'} +, {id:'39-10-8', text:'level 3-39-10-8'} +, {id:'39-10-9', text:'level 3-39-10-9'} +]} +, {id:'39-11-10', text:'level 2-39-11', item:[ + {id:'39-11-0', text:'level 3-39-11-0'} +, {id:'39-11-1', text:'level 3-39-11-1'} +, {id:'39-11-2', text:'level 3-39-11-2'} +, {id:'39-11-3', text:'level 3-39-11-3'} +, {id:'39-11-4', text:'level 3-39-11-4'} +, {id:'39-11-5', text:'level 3-39-11-5'} +, {id:'39-11-6', text:'level 3-39-11-6'} +, {id:'39-11-7', text:'level 3-39-11-7'} +, {id:'39-11-8', text:'level 3-39-11-8'} +, {id:'39-11-9', text:'level 3-39-11-9'} +]} +, {id:'39-12-10', text:'level 2-39-12', item:[ + {id:'39-12-0', text:'level 3-39-12-0'} +, {id:'39-12-1', text:'level 3-39-12-1'} +, {id:'39-12-2', text:'level 3-39-12-2'} +, {id:'39-12-3', text:'level 3-39-12-3'} +, {id:'39-12-4', text:'level 3-39-12-4'} +, {id:'39-12-5', text:'level 3-39-12-5'} +, {id:'39-12-6', text:'level 3-39-12-6'} +, {id:'39-12-7', text:'level 3-39-12-7'} +, {id:'39-12-8', text:'level 3-39-12-8'} +, {id:'39-12-9', text:'level 3-39-12-9'} +]} +, {id:'39-13-10', text:'level 2-39-13', item:[ + {id:'39-13-0', text:'level 3-39-13-0'} +, {id:'39-13-1', text:'level 3-39-13-1'} +, {id:'39-13-2', text:'level 3-39-13-2'} +, {id:'39-13-3', text:'level 3-39-13-3'} +, {id:'39-13-4', text:'level 3-39-13-4'} +, {id:'39-13-5', text:'level 3-39-13-5'} +, {id:'39-13-6', text:'level 3-39-13-6'} +, {id:'39-13-7', text:'level 3-39-13-7'} +, {id:'39-13-8', text:'level 3-39-13-8'} +, {id:'39-13-9', text:'level 3-39-13-9'} +]} +, {id:'39-14-10', text:'level 2-39-14', item:[ + {id:'39-14-0', text:'level 3-39-14-0'} +, {id:'39-14-1', text:'level 3-39-14-1'} +, {id:'39-14-2', text:'level 3-39-14-2'} +, {id:'39-14-3', text:'level 3-39-14-3'} +, {id:'39-14-4', text:'level 3-39-14-4'} +, {id:'39-14-5', text:'level 3-39-14-5'} +, {id:'39-14-6', text:'level 3-39-14-6'} +, {id:'39-14-7', text:'level 3-39-14-7'} +, {id:'39-14-8', text:'level 3-39-14-8'} +, {id:'39-14-9', text:'level 3-39-14-9'} +]} +, {id:'39-15-10', text:'level 2-39-15', item:[ + {id:'39-15-0', text:'level 3-39-15-0'} +, {id:'39-15-1', text:'level 3-39-15-1'} +, {id:'39-15-2', text:'level 3-39-15-2'} +, {id:'39-15-3', text:'level 3-39-15-3'} +, {id:'39-15-4', text:'level 3-39-15-4'} +, {id:'39-15-5', text:'level 3-39-15-5'} +, {id:'39-15-6', text:'level 3-39-15-6'} +, {id:'39-15-7', text:'level 3-39-15-7'} +, {id:'39-15-8', text:'level 3-39-15-8'} +, {id:'39-15-9', text:'level 3-39-15-9'} +]} +, {id:'39-16-10', text:'level 2-39-16', item:[ + {id:'39-16-0', text:'level 3-39-16-0'} +, {id:'39-16-1', text:'level 3-39-16-1'} +, {id:'39-16-2', text:'level 3-39-16-2'} +, {id:'39-16-3', text:'level 3-39-16-3'} +, {id:'39-16-4', text:'level 3-39-16-4'} +, {id:'39-16-5', text:'level 3-39-16-5'} +, {id:'39-16-6', text:'level 3-39-16-6'} +, {id:'39-16-7', text:'level 3-39-16-7'} +, {id:'39-16-8', text:'level 3-39-16-8'} +, {id:'39-16-9', text:'level 3-39-16-9'} +]} +, {id:'39-17-10', text:'level 2-39-17', item:[ + {id:'39-17-0', text:'level 3-39-17-0'} +, {id:'39-17-1', text:'level 3-39-17-1'} +, {id:'39-17-2', text:'level 3-39-17-2'} +, {id:'39-17-3', text:'level 3-39-17-3'} +, {id:'39-17-4', text:'level 3-39-17-4'} +, {id:'39-17-5', text:'level 3-39-17-5'} +, {id:'39-17-6', text:'level 3-39-17-6'} +, {id:'39-17-7', text:'level 3-39-17-7'} +, {id:'39-17-8', text:'level 3-39-17-8'} +, {id:'39-17-9', text:'level 3-39-17-9'} +]} +, {id:'39-18-10', text:'level 2-39-18', item:[ + {id:'39-18-0', text:'level 3-39-18-0'} +, {id:'39-18-1', text:'level 3-39-18-1'} +, {id:'39-18-2', text:'level 3-39-18-2'} +, {id:'39-18-3', text:'level 3-39-18-3'} +, {id:'39-18-4', text:'level 3-39-18-4'} +, {id:'39-18-5', text:'level 3-39-18-5'} +, {id:'39-18-6', text:'level 3-39-18-6'} +, {id:'39-18-7', text:'level 3-39-18-7'} +, {id:'39-18-8', text:'level 3-39-18-8'} +, {id:'39-18-9', text:'level 3-39-18-9'} +]} +, {id:'39-19-10', text:'level 2-39-19', item:[ + {id:'39-19-0', text:'level 3-39-19-0'} +, {id:'39-19-1', text:'level 3-39-19-1'} +, {id:'39-19-2', text:'level 3-39-19-2'} +, {id:'39-19-3', text:'level 3-39-19-3'} +, {id:'39-19-4', text:'level 3-39-19-4'} +, {id:'39-19-5', text:'level 3-39-19-5'} +, {id:'39-19-6', text:'level 3-39-19-6'} +, {id:'39-19-7', text:'level 3-39-19-7'} +, {id:'39-19-8', text:'level 3-39-19-8'} +, {id:'39-19-9', text:'level 3-39-19-9'} +]} +]} +,{id:'40-20-10', text:'level 1-40', item:[ + {id:'40-0-10', text:'level 2-40-0', item:[ + {id:'40-0-0', text:'level 3-40-0-0'} +, {id:'40-0-1', text:'level 3-40-0-1'} +, {id:'40-0-2', text:'level 3-40-0-2'} +, {id:'40-0-3', text:'level 3-40-0-3'} +, {id:'40-0-4', text:'level 3-40-0-4'} +, {id:'40-0-5', text:'level 3-40-0-5'} +, {id:'40-0-6', text:'level 3-40-0-6'} +, {id:'40-0-7', text:'level 3-40-0-7'} +, {id:'40-0-8', text:'level 3-40-0-8'} +, {id:'40-0-9', text:'level 3-40-0-9'} +]} +, {id:'40-1-10', text:'level 2-40-1', item:[ + {id:'40-1-0', text:'level 3-40-1-0'} +, {id:'40-1-1', text:'level 3-40-1-1'} +, {id:'40-1-2', text:'level 3-40-1-2'} +, {id:'40-1-3', text:'level 3-40-1-3'} +, {id:'40-1-4', text:'level 3-40-1-4'} +, {id:'40-1-5', text:'level 3-40-1-5'} +, {id:'40-1-6', text:'level 3-40-1-6'} +, {id:'40-1-7', text:'level 3-40-1-7'} +, {id:'40-1-8', text:'level 3-40-1-8'} +, {id:'40-1-9', text:'level 3-40-1-9'} +]} +, {id:'40-2-10', text:'level 2-40-2', item:[ + {id:'40-2-0', text:'level 3-40-2-0'} +, {id:'40-2-1', text:'level 3-40-2-1'} +, {id:'40-2-2', text:'level 3-40-2-2'} +, {id:'40-2-3', text:'level 3-40-2-3'} +, {id:'40-2-4', text:'level 3-40-2-4'} +, {id:'40-2-5', text:'level 3-40-2-5'} +, {id:'40-2-6', text:'level 3-40-2-6'} +, {id:'40-2-7', text:'level 3-40-2-7'} +, {id:'40-2-8', text:'level 3-40-2-8'} +, {id:'40-2-9', text:'level 3-40-2-9'} +]} +, {id:'40-3-10', text:'level 2-40-3', item:[ + {id:'40-3-0', text:'level 3-40-3-0'} +, {id:'40-3-1', text:'level 3-40-3-1'} +, {id:'40-3-2', text:'level 3-40-3-2'} +, {id:'40-3-3', text:'level 3-40-3-3'} +, {id:'40-3-4', text:'level 3-40-3-4'} +, {id:'40-3-5', text:'level 3-40-3-5'} +, {id:'40-3-6', text:'level 3-40-3-6'} +, {id:'40-3-7', text:'level 3-40-3-7'} +, {id:'40-3-8', text:'level 3-40-3-8'} +, {id:'40-3-9', text:'level 3-40-3-9'} +]} +, {id:'40-4-10', text:'level 2-40-4', item:[ + {id:'40-4-0', text:'level 3-40-4-0'} +, {id:'40-4-1', text:'level 3-40-4-1'} +, {id:'40-4-2', text:'level 3-40-4-2'} +, {id:'40-4-3', text:'level 3-40-4-3'} +, {id:'40-4-4', text:'level 3-40-4-4'} +, {id:'40-4-5', text:'level 3-40-4-5'} +, {id:'40-4-6', text:'level 3-40-4-6'} +, {id:'40-4-7', text:'level 3-40-4-7'} +, {id:'40-4-8', text:'level 3-40-4-8'} +, {id:'40-4-9', text:'level 3-40-4-9'} +]} +, {id:'40-5-10', text:'level 2-40-5', item:[ + {id:'40-5-0', text:'level 3-40-5-0'} +, {id:'40-5-1', text:'level 3-40-5-1'} +, {id:'40-5-2', text:'level 3-40-5-2'} +, {id:'40-5-3', text:'level 3-40-5-3'} +, {id:'40-5-4', text:'level 3-40-5-4'} +, {id:'40-5-5', text:'level 3-40-5-5'} +, {id:'40-5-6', text:'level 3-40-5-6'} +, {id:'40-5-7', text:'level 3-40-5-7'} +, {id:'40-5-8', text:'level 3-40-5-8'} +, {id:'40-5-9', text:'level 3-40-5-9'} +]} +, {id:'40-6-10', text:'level 2-40-6', item:[ + {id:'40-6-0', text:'level 3-40-6-0'} +, {id:'40-6-1', text:'level 3-40-6-1'} +, {id:'40-6-2', text:'level 3-40-6-2'} +, {id:'40-6-3', text:'level 3-40-6-3'} +, {id:'40-6-4', text:'level 3-40-6-4'} +, {id:'40-6-5', text:'level 3-40-6-5'} +, {id:'40-6-6', text:'level 3-40-6-6'} +, {id:'40-6-7', text:'level 3-40-6-7'} +, {id:'40-6-8', text:'level 3-40-6-8'} +, {id:'40-6-9', text:'level 3-40-6-9'} +]} +, {id:'40-7-10', text:'level 2-40-7', item:[ + {id:'40-7-0', text:'level 3-40-7-0'} +, {id:'40-7-1', text:'level 3-40-7-1'} +, {id:'40-7-2', text:'level 3-40-7-2'} +, {id:'40-7-3', text:'level 3-40-7-3'} +, {id:'40-7-4', text:'level 3-40-7-4'} +, {id:'40-7-5', text:'level 3-40-7-5'} +, {id:'40-7-6', text:'level 3-40-7-6'} +, {id:'40-7-7', text:'level 3-40-7-7'} +, {id:'40-7-8', text:'level 3-40-7-8'} +, {id:'40-7-9', text:'level 3-40-7-9'} +]} +, {id:'40-8-10', text:'level 2-40-8', item:[ + {id:'40-8-0', text:'level 3-40-8-0'} +, {id:'40-8-1', text:'level 3-40-8-1'} +, {id:'40-8-2', text:'level 3-40-8-2'} +, {id:'40-8-3', text:'level 3-40-8-3'} +, {id:'40-8-4', text:'level 3-40-8-4'} +, {id:'40-8-5', text:'level 3-40-8-5'} +, {id:'40-8-6', text:'level 3-40-8-6'} +, {id:'40-8-7', text:'level 3-40-8-7'} +, {id:'40-8-8', text:'level 3-40-8-8'} +, {id:'40-8-9', text:'level 3-40-8-9'} +]} +, {id:'40-9-10', text:'level 2-40-9', item:[ + {id:'40-9-0', text:'level 3-40-9-0'} +, {id:'40-9-1', text:'level 3-40-9-1'} +, {id:'40-9-2', text:'level 3-40-9-2'} +, {id:'40-9-3', text:'level 3-40-9-3'} +, {id:'40-9-4', text:'level 3-40-9-4'} +, {id:'40-9-5', text:'level 3-40-9-5'} +, {id:'40-9-6', text:'level 3-40-9-6'} +, {id:'40-9-7', text:'level 3-40-9-7'} +, {id:'40-9-8', text:'level 3-40-9-8'} +, {id:'40-9-9', text:'level 3-40-9-9'} +]} +, {id:'40-10-10', text:'level 2-40-10', item:[ + {id:'40-10-0', text:'level 3-40-10-0'} +, {id:'40-10-1', text:'level 3-40-10-1'} +, {id:'40-10-2', text:'level 3-40-10-2'} +, {id:'40-10-3', text:'level 3-40-10-3'} +, {id:'40-10-4', text:'level 3-40-10-4'} +, {id:'40-10-5', text:'level 3-40-10-5'} +, {id:'40-10-6', text:'level 3-40-10-6'} +, {id:'40-10-7', text:'level 3-40-10-7'} +, {id:'40-10-8', text:'level 3-40-10-8'} +, {id:'40-10-9', text:'level 3-40-10-9'} +]} +, {id:'40-11-10', text:'level 2-40-11', item:[ + {id:'40-11-0', text:'level 3-40-11-0'} +, {id:'40-11-1', text:'level 3-40-11-1'} +, {id:'40-11-2', text:'level 3-40-11-2'} +, {id:'40-11-3', text:'level 3-40-11-3'} +, {id:'40-11-4', text:'level 3-40-11-4'} +, {id:'40-11-5', text:'level 3-40-11-5'} +, {id:'40-11-6', text:'level 3-40-11-6'} +, {id:'40-11-7', text:'level 3-40-11-7'} +, {id:'40-11-8', text:'level 3-40-11-8'} +, {id:'40-11-9', text:'level 3-40-11-9'} +]} +, {id:'40-12-10', text:'level 2-40-12', item:[ + {id:'40-12-0', text:'level 3-40-12-0'} +, {id:'40-12-1', text:'level 3-40-12-1'} +, {id:'40-12-2', text:'level 3-40-12-2'} +, {id:'40-12-3', text:'level 3-40-12-3'} +, {id:'40-12-4', text:'level 3-40-12-4'} +, {id:'40-12-5', text:'level 3-40-12-5'} +, {id:'40-12-6', text:'level 3-40-12-6'} +, {id:'40-12-7', text:'level 3-40-12-7'} +, {id:'40-12-8', text:'level 3-40-12-8'} +, {id:'40-12-9', text:'level 3-40-12-9'} +]} +, {id:'40-13-10', text:'level 2-40-13', item:[ + {id:'40-13-0', text:'level 3-40-13-0'} +, {id:'40-13-1', text:'level 3-40-13-1'} +, {id:'40-13-2', text:'level 3-40-13-2'} +, {id:'40-13-3', text:'level 3-40-13-3'} +, {id:'40-13-4', text:'level 3-40-13-4'} +, {id:'40-13-5', text:'level 3-40-13-5'} +, {id:'40-13-6', text:'level 3-40-13-6'} +, {id:'40-13-7', text:'level 3-40-13-7'} +, {id:'40-13-8', text:'level 3-40-13-8'} +, {id:'40-13-9', text:'level 3-40-13-9'} +]} +, {id:'40-14-10', text:'level 2-40-14', item:[ + {id:'40-14-0', text:'level 3-40-14-0'} +, {id:'40-14-1', text:'level 3-40-14-1'} +, {id:'40-14-2', text:'level 3-40-14-2'} +, {id:'40-14-3', text:'level 3-40-14-3'} +, {id:'40-14-4', text:'level 3-40-14-4'} +, {id:'40-14-5', text:'level 3-40-14-5'} +, {id:'40-14-6', text:'level 3-40-14-6'} +, {id:'40-14-7', text:'level 3-40-14-7'} +, {id:'40-14-8', text:'level 3-40-14-8'} +, {id:'40-14-9', text:'level 3-40-14-9'} +]} +, {id:'40-15-10', text:'level 2-40-15', item:[ + {id:'40-15-0', text:'level 3-40-15-0'} +, {id:'40-15-1', text:'level 3-40-15-1'} +, {id:'40-15-2', text:'level 3-40-15-2'} +, {id:'40-15-3', text:'level 3-40-15-3'} +, {id:'40-15-4', text:'level 3-40-15-4'} +, {id:'40-15-5', text:'level 3-40-15-5'} +, {id:'40-15-6', text:'level 3-40-15-6'} +, {id:'40-15-7', text:'level 3-40-15-7'} +, {id:'40-15-8', text:'level 3-40-15-8'} +, {id:'40-15-9', text:'level 3-40-15-9'} +]} +, {id:'40-16-10', text:'level 2-40-16', item:[ + {id:'40-16-0', text:'level 3-40-16-0'} +, {id:'40-16-1', text:'level 3-40-16-1'} +, {id:'40-16-2', text:'level 3-40-16-2'} +, {id:'40-16-3', text:'level 3-40-16-3'} +, {id:'40-16-4', text:'level 3-40-16-4'} +, {id:'40-16-5', text:'level 3-40-16-5'} +, {id:'40-16-6', text:'level 3-40-16-6'} +, {id:'40-16-7', text:'level 3-40-16-7'} +, {id:'40-16-8', text:'level 3-40-16-8'} +, {id:'40-16-9', text:'level 3-40-16-9'} +]} +, {id:'40-17-10', text:'level 2-40-17', item:[ + {id:'40-17-0', text:'level 3-40-17-0'} +, {id:'40-17-1', text:'level 3-40-17-1'} +, {id:'40-17-2', text:'level 3-40-17-2'} +, {id:'40-17-3', text:'level 3-40-17-3'} +, {id:'40-17-4', text:'level 3-40-17-4'} +, {id:'40-17-5', text:'level 3-40-17-5'} +, {id:'40-17-6', text:'level 3-40-17-6'} +, {id:'40-17-7', text:'level 3-40-17-7'} +, {id:'40-17-8', text:'level 3-40-17-8'} +, {id:'40-17-9', text:'level 3-40-17-9'} +]} +, {id:'40-18-10', text:'level 2-40-18', item:[ + {id:'40-18-0', text:'level 3-40-18-0'} +, {id:'40-18-1', text:'level 3-40-18-1'} +, {id:'40-18-2', text:'level 3-40-18-2'} +, {id:'40-18-3', text:'level 3-40-18-3'} +, {id:'40-18-4', text:'level 3-40-18-4'} +, {id:'40-18-5', text:'level 3-40-18-5'} +, {id:'40-18-6', text:'level 3-40-18-6'} +, {id:'40-18-7', text:'level 3-40-18-7'} +, {id:'40-18-8', text:'level 3-40-18-8'} +, {id:'40-18-9', text:'level 3-40-18-9'} +]} +, {id:'40-19-10', text:'level 2-40-19', item:[ + {id:'40-19-0', text:'level 3-40-19-0'} +, {id:'40-19-1', text:'level 3-40-19-1'} +, {id:'40-19-2', text:'level 3-40-19-2'} +, {id:'40-19-3', text:'level 3-40-19-3'} +, {id:'40-19-4', text:'level 3-40-19-4'} +, {id:'40-19-5', text:'level 3-40-19-5'} +, {id:'40-19-6', text:'level 3-40-19-6'} +, {id:'40-19-7', text:'level 3-40-19-7'} +, {id:'40-19-8', text:'level 3-40-19-8'} +, {id:'40-19-9', text:'level 3-40-19-9'} +]} +]} +,{id:'41-20-10', text:'level 1-41', item:[ + {id:'41-0-10', text:'level 2-41-0', item:[ + {id:'41-0-0', text:'level 3-41-0-0'} +, {id:'41-0-1', text:'level 3-41-0-1'} +, {id:'41-0-2', text:'level 3-41-0-2'} +, {id:'41-0-3', text:'level 3-41-0-3'} +, {id:'41-0-4', text:'level 3-41-0-4'} +, {id:'41-0-5', text:'level 3-41-0-5'} +, {id:'41-0-6', text:'level 3-41-0-6'} +, {id:'41-0-7', text:'level 3-41-0-7'} +, {id:'41-0-8', text:'level 3-41-0-8'} +, {id:'41-0-9', text:'level 3-41-0-9'} +]} +, {id:'41-1-10', text:'level 2-41-1', item:[ + {id:'41-1-0', text:'level 3-41-1-0'} +, {id:'41-1-1', text:'level 3-41-1-1'} +, {id:'41-1-2', text:'level 3-41-1-2'} +, {id:'41-1-3', text:'level 3-41-1-3'} +, {id:'41-1-4', text:'level 3-41-1-4'} +, {id:'41-1-5', text:'level 3-41-1-5'} +, {id:'41-1-6', text:'level 3-41-1-6'} +, {id:'41-1-7', text:'level 3-41-1-7'} +, {id:'41-1-8', text:'level 3-41-1-8'} +, {id:'41-1-9', text:'level 3-41-1-9'} +]} +, {id:'41-2-10', text:'level 2-41-2', item:[ + {id:'41-2-0', text:'level 3-41-2-0'} +, {id:'41-2-1', text:'level 3-41-2-1'} +, {id:'41-2-2', text:'level 3-41-2-2'} +, {id:'41-2-3', text:'level 3-41-2-3'} +, {id:'41-2-4', text:'level 3-41-2-4'} +, {id:'41-2-5', text:'level 3-41-2-5'} +, {id:'41-2-6', text:'level 3-41-2-6'} +, {id:'41-2-7', text:'level 3-41-2-7'} +, {id:'41-2-8', text:'level 3-41-2-8'} +, {id:'41-2-9', text:'level 3-41-2-9'} +]} +, {id:'41-3-10', text:'level 2-41-3', item:[ + {id:'41-3-0', text:'level 3-41-3-0'} +, {id:'41-3-1', text:'level 3-41-3-1'} +, {id:'41-3-2', text:'level 3-41-3-2'} +, {id:'41-3-3', text:'level 3-41-3-3'} +, {id:'41-3-4', text:'level 3-41-3-4'} +, {id:'41-3-5', text:'level 3-41-3-5'} +, {id:'41-3-6', text:'level 3-41-3-6'} +, {id:'41-3-7', text:'level 3-41-3-7'} +, {id:'41-3-8', text:'level 3-41-3-8'} +, {id:'41-3-9', text:'level 3-41-3-9'} +]} +, {id:'41-4-10', text:'level 2-41-4', item:[ + {id:'41-4-0', text:'level 3-41-4-0'} +, {id:'41-4-1', text:'level 3-41-4-1'} +, {id:'41-4-2', text:'level 3-41-4-2'} +, {id:'41-4-3', text:'level 3-41-4-3'} +, {id:'41-4-4', text:'level 3-41-4-4'} +, {id:'41-4-5', text:'level 3-41-4-5'} +, {id:'41-4-6', text:'level 3-41-4-6'} +, {id:'41-4-7', text:'level 3-41-4-7'} +, {id:'41-4-8', text:'level 3-41-4-8'} +, {id:'41-4-9', text:'level 3-41-4-9'} +]} +, {id:'41-5-10', text:'level 2-41-5', item:[ + {id:'41-5-0', text:'level 3-41-5-0'} +, {id:'41-5-1', text:'level 3-41-5-1'} +, {id:'41-5-2', text:'level 3-41-5-2'} +, {id:'41-5-3', text:'level 3-41-5-3'} +, {id:'41-5-4', text:'level 3-41-5-4'} +, {id:'41-5-5', text:'level 3-41-5-5'} +, {id:'41-5-6', text:'level 3-41-5-6'} +, {id:'41-5-7', text:'level 3-41-5-7'} +, {id:'41-5-8', text:'level 3-41-5-8'} +, {id:'41-5-9', text:'level 3-41-5-9'} +]} +, {id:'41-6-10', text:'level 2-41-6', item:[ + {id:'41-6-0', text:'level 3-41-6-0'} +, {id:'41-6-1', text:'level 3-41-6-1'} +, {id:'41-6-2', text:'level 3-41-6-2'} +, {id:'41-6-3', text:'level 3-41-6-3'} +, {id:'41-6-4', text:'level 3-41-6-4'} +, {id:'41-6-5', text:'level 3-41-6-5'} +, {id:'41-6-6', text:'level 3-41-6-6'} +, {id:'41-6-7', text:'level 3-41-6-7'} +, {id:'41-6-8', text:'level 3-41-6-8'} +, {id:'41-6-9', text:'level 3-41-6-9'} +]} +, {id:'41-7-10', text:'level 2-41-7', item:[ + {id:'41-7-0', text:'level 3-41-7-0'} +, {id:'41-7-1', text:'level 3-41-7-1'} +, {id:'41-7-2', text:'level 3-41-7-2'} +, {id:'41-7-3', text:'level 3-41-7-3'} +, {id:'41-7-4', text:'level 3-41-7-4'} +, {id:'41-7-5', text:'level 3-41-7-5'} +, {id:'41-7-6', text:'level 3-41-7-6'} +, {id:'41-7-7', text:'level 3-41-7-7'} +, {id:'41-7-8', text:'level 3-41-7-8'} +, {id:'41-7-9', text:'level 3-41-7-9'} +]} +, {id:'41-8-10', text:'level 2-41-8', item:[ + {id:'41-8-0', text:'level 3-41-8-0'} +, {id:'41-8-1', text:'level 3-41-8-1'} +, {id:'41-8-2', text:'level 3-41-8-2'} +, {id:'41-8-3', text:'level 3-41-8-3'} +, {id:'41-8-4', text:'level 3-41-8-4'} +, {id:'41-8-5', text:'level 3-41-8-5'} +, {id:'41-8-6', text:'level 3-41-8-6'} +, {id:'41-8-7', text:'level 3-41-8-7'} +, {id:'41-8-8', text:'level 3-41-8-8'} +, {id:'41-8-9', text:'level 3-41-8-9'} +]} +, {id:'41-9-10', text:'level 2-41-9', item:[ + {id:'41-9-0', text:'level 3-41-9-0'} +, {id:'41-9-1', text:'level 3-41-9-1'} +, {id:'41-9-2', text:'level 3-41-9-2'} +, {id:'41-9-3', text:'level 3-41-9-3'} +, {id:'41-9-4', text:'level 3-41-9-4'} +, {id:'41-9-5', text:'level 3-41-9-5'} +, {id:'41-9-6', text:'level 3-41-9-6'} +, {id:'41-9-7', text:'level 3-41-9-7'} +, {id:'41-9-8', text:'level 3-41-9-8'} +, {id:'41-9-9', text:'level 3-41-9-9'} +]} +, {id:'41-10-10', text:'level 2-41-10', item:[ + {id:'41-10-0', text:'level 3-41-10-0'} +, {id:'41-10-1', text:'level 3-41-10-1'} +, {id:'41-10-2', text:'level 3-41-10-2'} +, {id:'41-10-3', text:'level 3-41-10-3'} +, {id:'41-10-4', text:'level 3-41-10-4'} +, {id:'41-10-5', text:'level 3-41-10-5'} +, {id:'41-10-6', text:'level 3-41-10-6'} +, {id:'41-10-7', text:'level 3-41-10-7'} +, {id:'41-10-8', text:'level 3-41-10-8'} +, {id:'41-10-9', text:'level 3-41-10-9'} +]} +, {id:'41-11-10', text:'level 2-41-11', item:[ + {id:'41-11-0', text:'level 3-41-11-0'} +, {id:'41-11-1', text:'level 3-41-11-1'} +, {id:'41-11-2', text:'level 3-41-11-2'} +, {id:'41-11-3', text:'level 3-41-11-3'} +, {id:'41-11-4', text:'level 3-41-11-4'} +, {id:'41-11-5', text:'level 3-41-11-5'} +, {id:'41-11-6', text:'level 3-41-11-6'} +, {id:'41-11-7', text:'level 3-41-11-7'} +, {id:'41-11-8', text:'level 3-41-11-8'} +, {id:'41-11-9', text:'level 3-41-11-9'} +]} +, {id:'41-12-10', text:'level 2-41-12', item:[ + {id:'41-12-0', text:'level 3-41-12-0'} +, {id:'41-12-1', text:'level 3-41-12-1'} +, {id:'41-12-2', text:'level 3-41-12-2'} +, {id:'41-12-3', text:'level 3-41-12-3'} +, {id:'41-12-4', text:'level 3-41-12-4'} +, {id:'41-12-5', text:'level 3-41-12-5'} +, {id:'41-12-6', text:'level 3-41-12-6'} +, {id:'41-12-7', text:'level 3-41-12-7'} +, {id:'41-12-8', text:'level 3-41-12-8'} +, {id:'41-12-9', text:'level 3-41-12-9'} +]} +, {id:'41-13-10', text:'level 2-41-13', item:[ + {id:'41-13-0', text:'level 3-41-13-0'} +, {id:'41-13-1', text:'level 3-41-13-1'} +, {id:'41-13-2', text:'level 3-41-13-2'} +, {id:'41-13-3', text:'level 3-41-13-3'} +, {id:'41-13-4', text:'level 3-41-13-4'} +, {id:'41-13-5', text:'level 3-41-13-5'} +, {id:'41-13-6', text:'level 3-41-13-6'} +, {id:'41-13-7', text:'level 3-41-13-7'} +, {id:'41-13-8', text:'level 3-41-13-8'} +, {id:'41-13-9', text:'level 3-41-13-9'} +]} +, {id:'41-14-10', text:'level 2-41-14', item:[ + {id:'41-14-0', text:'level 3-41-14-0'} +, {id:'41-14-1', text:'level 3-41-14-1'} +, {id:'41-14-2', text:'level 3-41-14-2'} +, {id:'41-14-3', text:'level 3-41-14-3'} +, {id:'41-14-4', text:'level 3-41-14-4'} +, {id:'41-14-5', text:'level 3-41-14-5'} +, {id:'41-14-6', text:'level 3-41-14-6'} +, {id:'41-14-7', text:'level 3-41-14-7'} +, {id:'41-14-8', text:'level 3-41-14-8'} +, {id:'41-14-9', text:'level 3-41-14-9'} +]} +, {id:'41-15-10', text:'level 2-41-15', item:[ + {id:'41-15-0', text:'level 3-41-15-0'} +, {id:'41-15-1', text:'level 3-41-15-1'} +, {id:'41-15-2', text:'level 3-41-15-2'} +, {id:'41-15-3', text:'level 3-41-15-3'} +, {id:'41-15-4', text:'level 3-41-15-4'} +, {id:'41-15-5', text:'level 3-41-15-5'} +, {id:'41-15-6', text:'level 3-41-15-6'} +, {id:'41-15-7', text:'level 3-41-15-7'} +, {id:'41-15-8', text:'level 3-41-15-8'} +, {id:'41-15-9', text:'level 3-41-15-9'} +]} +, {id:'41-16-10', text:'level 2-41-16', item:[ + {id:'41-16-0', text:'level 3-41-16-0'} +, {id:'41-16-1', text:'level 3-41-16-1'} +, {id:'41-16-2', text:'level 3-41-16-2'} +, {id:'41-16-3', text:'level 3-41-16-3'} +, {id:'41-16-4', text:'level 3-41-16-4'} +, {id:'41-16-5', text:'level 3-41-16-5'} +, {id:'41-16-6', text:'level 3-41-16-6'} +, {id:'41-16-7', text:'level 3-41-16-7'} +, {id:'41-16-8', text:'level 3-41-16-8'} +, {id:'41-16-9', text:'level 3-41-16-9'} +]} +, {id:'41-17-10', text:'level 2-41-17', item:[ + {id:'41-17-0', text:'level 3-41-17-0'} +, {id:'41-17-1', text:'level 3-41-17-1'} +, {id:'41-17-2', text:'level 3-41-17-2'} +, {id:'41-17-3', text:'level 3-41-17-3'} +, {id:'41-17-4', text:'level 3-41-17-4'} +, {id:'41-17-5', text:'level 3-41-17-5'} +, {id:'41-17-6', text:'level 3-41-17-6'} +, {id:'41-17-7', text:'level 3-41-17-7'} +, {id:'41-17-8', text:'level 3-41-17-8'} +, {id:'41-17-9', text:'level 3-41-17-9'} +]} +, {id:'41-18-10', text:'level 2-41-18', item:[ + {id:'41-18-0', text:'level 3-41-18-0'} +, {id:'41-18-1', text:'level 3-41-18-1'} +, {id:'41-18-2', text:'level 3-41-18-2'} +, {id:'41-18-3', text:'level 3-41-18-3'} +, {id:'41-18-4', text:'level 3-41-18-4'} +, {id:'41-18-5', text:'level 3-41-18-5'} +, {id:'41-18-6', text:'level 3-41-18-6'} +, {id:'41-18-7', text:'level 3-41-18-7'} +, {id:'41-18-8', text:'level 3-41-18-8'} +, {id:'41-18-9', text:'level 3-41-18-9'} +]} +, {id:'41-19-10', text:'level 2-41-19', item:[ + {id:'41-19-0', text:'level 3-41-19-0'} +, {id:'41-19-1', text:'level 3-41-19-1'} +, {id:'41-19-2', text:'level 3-41-19-2'} +, {id:'41-19-3', text:'level 3-41-19-3'} +, {id:'41-19-4', text:'level 3-41-19-4'} +, {id:'41-19-5', text:'level 3-41-19-5'} +, {id:'41-19-6', text:'level 3-41-19-6'} +, {id:'41-19-7', text:'level 3-41-19-7'} +, {id:'41-19-8', text:'level 3-41-19-8'} +, {id:'41-19-9', text:'level 3-41-19-9'} +]} +]} +,{id:'42-20-10', text:'level 1-42', item:[ + {id:'42-0-10', text:'level 2-42-0', item:[ + {id:'42-0-0', text:'level 3-42-0-0'} +, {id:'42-0-1', text:'level 3-42-0-1'} +, {id:'42-0-2', text:'level 3-42-0-2'} +, {id:'42-0-3', text:'level 3-42-0-3'} +, {id:'42-0-4', text:'level 3-42-0-4'} +, {id:'42-0-5', text:'level 3-42-0-5'} +, {id:'42-0-6', text:'level 3-42-0-6'} +, {id:'42-0-7', text:'level 3-42-0-7'} +, {id:'42-0-8', text:'level 3-42-0-8'} +, {id:'42-0-9', text:'level 3-42-0-9'} +]} +, {id:'42-1-10', text:'level 2-42-1', item:[ + {id:'42-1-0', text:'level 3-42-1-0'} +, {id:'42-1-1', text:'level 3-42-1-1'} +, {id:'42-1-2', text:'level 3-42-1-2'} +, {id:'42-1-3', text:'level 3-42-1-3'} +, {id:'42-1-4', text:'level 3-42-1-4'} +, {id:'42-1-5', text:'level 3-42-1-5'} +, {id:'42-1-6', text:'level 3-42-1-6'} +, {id:'42-1-7', text:'level 3-42-1-7'} +, {id:'42-1-8', text:'level 3-42-1-8'} +, {id:'42-1-9', text:'level 3-42-1-9'} +]} +, {id:'42-2-10', text:'level 2-42-2', item:[ + {id:'42-2-0', text:'level 3-42-2-0'} +, {id:'42-2-1', text:'level 3-42-2-1'} +, {id:'42-2-2', text:'level 3-42-2-2'} +, {id:'42-2-3', text:'level 3-42-2-3'} +, {id:'42-2-4', text:'level 3-42-2-4'} +, {id:'42-2-5', text:'level 3-42-2-5'} +, {id:'42-2-6', text:'level 3-42-2-6'} +, {id:'42-2-7', text:'level 3-42-2-7'} +, {id:'42-2-8', text:'level 3-42-2-8'} +, {id:'42-2-9', text:'level 3-42-2-9'} +]} +, {id:'42-3-10', text:'level 2-42-3', item:[ + {id:'42-3-0', text:'level 3-42-3-0'} +, {id:'42-3-1', text:'level 3-42-3-1'} +, {id:'42-3-2', text:'level 3-42-3-2'} +, {id:'42-3-3', text:'level 3-42-3-3'} +, {id:'42-3-4', text:'level 3-42-3-4'} +, {id:'42-3-5', text:'level 3-42-3-5'} +, {id:'42-3-6', text:'level 3-42-3-6'} +, {id:'42-3-7', text:'level 3-42-3-7'} +, {id:'42-3-8', text:'level 3-42-3-8'} +, {id:'42-3-9', text:'level 3-42-3-9'} +]} +, {id:'42-4-10', text:'level 2-42-4', item:[ + {id:'42-4-0', text:'level 3-42-4-0'} +, {id:'42-4-1', text:'level 3-42-4-1'} +, {id:'42-4-2', text:'level 3-42-4-2'} +, {id:'42-4-3', text:'level 3-42-4-3'} +, {id:'42-4-4', text:'level 3-42-4-4'} +, {id:'42-4-5', text:'level 3-42-4-5'} +, {id:'42-4-6', text:'level 3-42-4-6'} +, {id:'42-4-7', text:'level 3-42-4-7'} +, {id:'42-4-8', text:'level 3-42-4-8'} +, {id:'42-4-9', text:'level 3-42-4-9'} +]} +, {id:'42-5-10', text:'level 2-42-5', item:[ + {id:'42-5-0', text:'level 3-42-5-0'} +, {id:'42-5-1', text:'level 3-42-5-1'} +, {id:'42-5-2', text:'level 3-42-5-2'} +, {id:'42-5-3', text:'level 3-42-5-3'} +, {id:'42-5-4', text:'level 3-42-5-4'} +, {id:'42-5-5', text:'level 3-42-5-5'} +, {id:'42-5-6', text:'level 3-42-5-6'} +, {id:'42-5-7', text:'level 3-42-5-7'} +, {id:'42-5-8', text:'level 3-42-5-8'} +, {id:'42-5-9', text:'level 3-42-5-9'} +]} +, {id:'42-6-10', text:'level 2-42-6', item:[ + {id:'42-6-0', text:'level 3-42-6-0'} +, {id:'42-6-1', text:'level 3-42-6-1'} +, {id:'42-6-2', text:'level 3-42-6-2'} +, {id:'42-6-3', text:'level 3-42-6-3'} +, {id:'42-6-4', text:'level 3-42-6-4'} +, {id:'42-6-5', text:'level 3-42-6-5'} +, {id:'42-6-6', text:'level 3-42-6-6'} +, {id:'42-6-7', text:'level 3-42-6-7'} +, {id:'42-6-8', text:'level 3-42-6-8'} +, {id:'42-6-9', text:'level 3-42-6-9'} +]} +, {id:'42-7-10', text:'level 2-42-7', item:[ + {id:'42-7-0', text:'level 3-42-7-0'} +, {id:'42-7-1', text:'level 3-42-7-1'} +, {id:'42-7-2', text:'level 3-42-7-2'} +, {id:'42-7-3', text:'level 3-42-7-3'} +, {id:'42-7-4', text:'level 3-42-7-4'} +, {id:'42-7-5', text:'level 3-42-7-5'} +, {id:'42-7-6', text:'level 3-42-7-6'} +, {id:'42-7-7', text:'level 3-42-7-7'} +, {id:'42-7-8', text:'level 3-42-7-8'} +, {id:'42-7-9', text:'level 3-42-7-9'} +]} +, {id:'42-8-10', text:'level 2-42-8', item:[ + {id:'42-8-0', text:'level 3-42-8-0'} +, {id:'42-8-1', text:'level 3-42-8-1'} +, {id:'42-8-2', text:'level 3-42-8-2'} +, {id:'42-8-3', text:'level 3-42-8-3'} +, {id:'42-8-4', text:'level 3-42-8-4'} +, {id:'42-8-5', text:'level 3-42-8-5'} +, {id:'42-8-6', text:'level 3-42-8-6'} +, {id:'42-8-7', text:'level 3-42-8-7'} +, {id:'42-8-8', text:'level 3-42-8-8'} +, {id:'42-8-9', text:'level 3-42-8-9'} +]} +, {id:'42-9-10', text:'level 2-42-9', item:[ + {id:'42-9-0', text:'level 3-42-9-0'} +, {id:'42-9-1', text:'level 3-42-9-1'} +, {id:'42-9-2', text:'level 3-42-9-2'} +, {id:'42-9-3', text:'level 3-42-9-3'} +, {id:'42-9-4', text:'level 3-42-9-4'} +, {id:'42-9-5', text:'level 3-42-9-5'} +, {id:'42-9-6', text:'level 3-42-9-6'} +, {id:'42-9-7', text:'level 3-42-9-7'} +, {id:'42-9-8', text:'level 3-42-9-8'} +, {id:'42-9-9', text:'level 3-42-9-9'} +]} +, {id:'42-10-10', text:'level 2-42-10', item:[ + {id:'42-10-0', text:'level 3-42-10-0'} +, {id:'42-10-1', text:'level 3-42-10-1'} +, {id:'42-10-2', text:'level 3-42-10-2'} +, {id:'42-10-3', text:'level 3-42-10-3'} +, {id:'42-10-4', text:'level 3-42-10-4'} +, {id:'42-10-5', text:'level 3-42-10-5'} +, {id:'42-10-6', text:'level 3-42-10-6'} +, {id:'42-10-7', text:'level 3-42-10-7'} +, {id:'42-10-8', text:'level 3-42-10-8'} +, {id:'42-10-9', text:'level 3-42-10-9'} +]} +, {id:'42-11-10', text:'level 2-42-11', item:[ + {id:'42-11-0', text:'level 3-42-11-0'} +, {id:'42-11-1', text:'level 3-42-11-1'} +, {id:'42-11-2', text:'level 3-42-11-2'} +, {id:'42-11-3', text:'level 3-42-11-3'} +, {id:'42-11-4', text:'level 3-42-11-4'} +, {id:'42-11-5', text:'level 3-42-11-5'} +, {id:'42-11-6', text:'level 3-42-11-6'} +, {id:'42-11-7', text:'level 3-42-11-7'} +, {id:'42-11-8', text:'level 3-42-11-8'} +, {id:'42-11-9', text:'level 3-42-11-9'} +]} +, {id:'42-12-10', text:'level 2-42-12', item:[ + {id:'42-12-0', text:'level 3-42-12-0'} +, {id:'42-12-1', text:'level 3-42-12-1'} +, {id:'42-12-2', text:'level 3-42-12-2'} +, {id:'42-12-3', text:'level 3-42-12-3'} +, {id:'42-12-4', text:'level 3-42-12-4'} +, {id:'42-12-5', text:'level 3-42-12-5'} +, {id:'42-12-6', text:'level 3-42-12-6'} +, {id:'42-12-7', text:'level 3-42-12-7'} +, {id:'42-12-8', text:'level 3-42-12-8'} +, {id:'42-12-9', text:'level 3-42-12-9'} +]} +, {id:'42-13-10', text:'level 2-42-13', item:[ + {id:'42-13-0', text:'level 3-42-13-0'} +, {id:'42-13-1', text:'level 3-42-13-1'} +, {id:'42-13-2', text:'level 3-42-13-2'} +, {id:'42-13-3', text:'level 3-42-13-3'} +, {id:'42-13-4', text:'level 3-42-13-4'} +, {id:'42-13-5', text:'level 3-42-13-5'} +, {id:'42-13-6', text:'level 3-42-13-6'} +, {id:'42-13-7', text:'level 3-42-13-7'} +, {id:'42-13-8', text:'level 3-42-13-8'} +, {id:'42-13-9', text:'level 3-42-13-9'} +]} +, {id:'42-14-10', text:'level 2-42-14', item:[ + {id:'42-14-0', text:'level 3-42-14-0'} +, {id:'42-14-1', text:'level 3-42-14-1'} +, {id:'42-14-2', text:'level 3-42-14-2'} +, {id:'42-14-3', text:'level 3-42-14-3'} +, {id:'42-14-4', text:'level 3-42-14-4'} +, {id:'42-14-5', text:'level 3-42-14-5'} +, {id:'42-14-6', text:'level 3-42-14-6'} +, {id:'42-14-7', text:'level 3-42-14-7'} +, {id:'42-14-8', text:'level 3-42-14-8'} +, {id:'42-14-9', text:'level 3-42-14-9'} +]} +, {id:'42-15-10', text:'level 2-42-15', item:[ + {id:'42-15-0', text:'level 3-42-15-0'} +, {id:'42-15-1', text:'level 3-42-15-1'} +, {id:'42-15-2', text:'level 3-42-15-2'} +, {id:'42-15-3', text:'level 3-42-15-3'} +, {id:'42-15-4', text:'level 3-42-15-4'} +, {id:'42-15-5', text:'level 3-42-15-5'} +, {id:'42-15-6', text:'level 3-42-15-6'} +, {id:'42-15-7', text:'level 3-42-15-7'} +, {id:'42-15-8', text:'level 3-42-15-8'} +, {id:'42-15-9', text:'level 3-42-15-9'} +]} +, {id:'42-16-10', text:'level 2-42-16', item:[ + {id:'42-16-0', text:'level 3-42-16-0'} +, {id:'42-16-1', text:'level 3-42-16-1'} +, {id:'42-16-2', text:'level 3-42-16-2'} +, {id:'42-16-3', text:'level 3-42-16-3'} +, {id:'42-16-4', text:'level 3-42-16-4'} +, {id:'42-16-5', text:'level 3-42-16-5'} +, {id:'42-16-6', text:'level 3-42-16-6'} +, {id:'42-16-7', text:'level 3-42-16-7'} +, {id:'42-16-8', text:'level 3-42-16-8'} +, {id:'42-16-9', text:'level 3-42-16-9'} +]} +, {id:'42-17-10', text:'level 2-42-17', item:[ + {id:'42-17-0', text:'level 3-42-17-0'} +, {id:'42-17-1', text:'level 3-42-17-1'} +, {id:'42-17-2', text:'level 3-42-17-2'} +, {id:'42-17-3', text:'level 3-42-17-3'} +, {id:'42-17-4', text:'level 3-42-17-4'} +, {id:'42-17-5', text:'level 3-42-17-5'} +, {id:'42-17-6', text:'level 3-42-17-6'} +, {id:'42-17-7', text:'level 3-42-17-7'} +, {id:'42-17-8', text:'level 3-42-17-8'} +, {id:'42-17-9', text:'level 3-42-17-9'} +]} +, {id:'42-18-10', text:'level 2-42-18', item:[ + {id:'42-18-0', text:'level 3-42-18-0'} +, {id:'42-18-1', text:'level 3-42-18-1'} +, {id:'42-18-2', text:'level 3-42-18-2'} +, {id:'42-18-3', text:'level 3-42-18-3'} +, {id:'42-18-4', text:'level 3-42-18-4'} +, {id:'42-18-5', text:'level 3-42-18-5'} +, {id:'42-18-6', text:'level 3-42-18-6'} +, {id:'42-18-7', text:'level 3-42-18-7'} +, {id:'42-18-8', text:'level 3-42-18-8'} +, {id:'42-18-9', text:'level 3-42-18-9'} +]} +, {id:'42-19-10', text:'level 2-42-19', item:[ + {id:'42-19-0', text:'level 3-42-19-0'} +, {id:'42-19-1', text:'level 3-42-19-1'} +, {id:'42-19-2', text:'level 3-42-19-2'} +, {id:'42-19-3', text:'level 3-42-19-3'} +, {id:'42-19-4', text:'level 3-42-19-4'} +, {id:'42-19-5', text:'level 3-42-19-5'} +, {id:'42-19-6', text:'level 3-42-19-6'} +, {id:'42-19-7', text:'level 3-42-19-7'} +, {id:'42-19-8', text:'level 3-42-19-8'} +, {id:'42-19-9', text:'level 3-42-19-9'} +]} +]} +,{id:'43-20-10', text:'level 1-43', item:[ + {id:'43-0-10', text:'level 2-43-0', item:[ + {id:'43-0-0', text:'level 3-43-0-0'} +, {id:'43-0-1', text:'level 3-43-0-1'} +, {id:'43-0-2', text:'level 3-43-0-2'} +, {id:'43-0-3', text:'level 3-43-0-3'} +, {id:'43-0-4', text:'level 3-43-0-4'} +, {id:'43-0-5', text:'level 3-43-0-5'} +, {id:'43-0-6', text:'level 3-43-0-6'} +, {id:'43-0-7', text:'level 3-43-0-7'} +, {id:'43-0-8', text:'level 3-43-0-8'} +, {id:'43-0-9', text:'level 3-43-0-9'} +]} +, {id:'43-1-10', text:'level 2-43-1', item:[ + {id:'43-1-0', text:'level 3-43-1-0'} +, {id:'43-1-1', text:'level 3-43-1-1'} +, {id:'43-1-2', text:'level 3-43-1-2'} +, {id:'43-1-3', text:'level 3-43-1-3'} +, {id:'43-1-4', text:'level 3-43-1-4'} +, {id:'43-1-5', text:'level 3-43-1-5'} +, {id:'43-1-6', text:'level 3-43-1-6'} +, {id:'43-1-7', text:'level 3-43-1-7'} +, {id:'43-1-8', text:'level 3-43-1-8'} +, {id:'43-1-9', text:'level 3-43-1-9'} +]} +, {id:'43-2-10', text:'level 2-43-2', item:[ + {id:'43-2-0', text:'level 3-43-2-0'} +, {id:'43-2-1', text:'level 3-43-2-1'} +, {id:'43-2-2', text:'level 3-43-2-2'} +, {id:'43-2-3', text:'level 3-43-2-3'} +, {id:'43-2-4', text:'level 3-43-2-4'} +, {id:'43-2-5', text:'level 3-43-2-5'} +, {id:'43-2-6', text:'level 3-43-2-6'} +, {id:'43-2-7', text:'level 3-43-2-7'} +, {id:'43-2-8', text:'level 3-43-2-8'} +, {id:'43-2-9', text:'level 3-43-2-9'} +]} +, {id:'43-3-10', text:'level 2-43-3', item:[ + {id:'43-3-0', text:'level 3-43-3-0'} +, {id:'43-3-1', text:'level 3-43-3-1'} +, {id:'43-3-2', text:'level 3-43-3-2'} +, {id:'43-3-3', text:'level 3-43-3-3'} +, {id:'43-3-4', text:'level 3-43-3-4'} +, {id:'43-3-5', text:'level 3-43-3-5'} +, {id:'43-3-6', text:'level 3-43-3-6'} +, {id:'43-3-7', text:'level 3-43-3-7'} +, {id:'43-3-8', text:'level 3-43-3-8'} +, {id:'43-3-9', text:'level 3-43-3-9'} +]} +, {id:'43-4-10', text:'level 2-43-4', item:[ + {id:'43-4-0', text:'level 3-43-4-0'} +, {id:'43-4-1', text:'level 3-43-4-1'} +, {id:'43-4-2', text:'level 3-43-4-2'} +, {id:'43-4-3', text:'level 3-43-4-3'} +, {id:'43-4-4', text:'level 3-43-4-4'} +, {id:'43-4-5', text:'level 3-43-4-5'} +, {id:'43-4-6', text:'level 3-43-4-6'} +, {id:'43-4-7', text:'level 3-43-4-7'} +, {id:'43-4-8', text:'level 3-43-4-8'} +, {id:'43-4-9', text:'level 3-43-4-9'} +]} +, {id:'43-5-10', text:'level 2-43-5', item:[ + {id:'43-5-0', text:'level 3-43-5-0'} +, {id:'43-5-1', text:'level 3-43-5-1'} +, {id:'43-5-2', text:'level 3-43-5-2'} +, {id:'43-5-3', text:'level 3-43-5-3'} +, {id:'43-5-4', text:'level 3-43-5-4'} +, {id:'43-5-5', text:'level 3-43-5-5'} +, {id:'43-5-6', text:'level 3-43-5-6'} +, {id:'43-5-7', text:'level 3-43-5-7'} +, {id:'43-5-8', text:'level 3-43-5-8'} +, {id:'43-5-9', text:'level 3-43-5-9'} +]} +, {id:'43-6-10', text:'level 2-43-6', item:[ + {id:'43-6-0', text:'level 3-43-6-0'} +, {id:'43-6-1', text:'level 3-43-6-1'} +, {id:'43-6-2', text:'level 3-43-6-2'} +, {id:'43-6-3', text:'level 3-43-6-3'} +, {id:'43-6-4', text:'level 3-43-6-4'} +, {id:'43-6-5', text:'level 3-43-6-5'} +, {id:'43-6-6', text:'level 3-43-6-6'} +, {id:'43-6-7', text:'level 3-43-6-7'} +, {id:'43-6-8', text:'level 3-43-6-8'} +, {id:'43-6-9', text:'level 3-43-6-9'} +]} +, {id:'43-7-10', text:'level 2-43-7', item:[ + {id:'43-7-0', text:'level 3-43-7-0'} +, {id:'43-7-1', text:'level 3-43-7-1'} +, {id:'43-7-2', text:'level 3-43-7-2'} +, {id:'43-7-3', text:'level 3-43-7-3'} +, {id:'43-7-4', text:'level 3-43-7-4'} +, {id:'43-7-5', text:'level 3-43-7-5'} +, {id:'43-7-6', text:'level 3-43-7-6'} +, {id:'43-7-7', text:'level 3-43-7-7'} +, {id:'43-7-8', text:'level 3-43-7-8'} +, {id:'43-7-9', text:'level 3-43-7-9'} +]} +, {id:'43-8-10', text:'level 2-43-8', item:[ + {id:'43-8-0', text:'level 3-43-8-0'} +, {id:'43-8-1', text:'level 3-43-8-1'} +, {id:'43-8-2', text:'level 3-43-8-2'} +, {id:'43-8-3', text:'level 3-43-8-3'} +, {id:'43-8-4', text:'level 3-43-8-4'} +, {id:'43-8-5', text:'level 3-43-8-5'} +, {id:'43-8-6', text:'level 3-43-8-6'} +, {id:'43-8-7', text:'level 3-43-8-7'} +, {id:'43-8-8', text:'level 3-43-8-8'} +, {id:'43-8-9', text:'level 3-43-8-9'} +]} +, {id:'43-9-10', text:'level 2-43-9', item:[ + {id:'43-9-0', text:'level 3-43-9-0'} +, {id:'43-9-1', text:'level 3-43-9-1'} +, {id:'43-9-2', text:'level 3-43-9-2'} +, {id:'43-9-3', text:'level 3-43-9-3'} +, {id:'43-9-4', text:'level 3-43-9-4'} +, {id:'43-9-5', text:'level 3-43-9-5'} +, {id:'43-9-6', text:'level 3-43-9-6'} +, {id:'43-9-7', text:'level 3-43-9-7'} +, {id:'43-9-8', text:'level 3-43-9-8'} +, {id:'43-9-9', text:'level 3-43-9-9'} +]} +, {id:'43-10-10', text:'level 2-43-10', item:[ + {id:'43-10-0', text:'level 3-43-10-0'} +, {id:'43-10-1', text:'level 3-43-10-1'} +, {id:'43-10-2', text:'level 3-43-10-2'} +, {id:'43-10-3', text:'level 3-43-10-3'} +, {id:'43-10-4', text:'level 3-43-10-4'} +, {id:'43-10-5', text:'level 3-43-10-5'} +, {id:'43-10-6', text:'level 3-43-10-6'} +, {id:'43-10-7', text:'level 3-43-10-7'} +, {id:'43-10-8', text:'level 3-43-10-8'} +, {id:'43-10-9', text:'level 3-43-10-9'} +]} +, {id:'43-11-10', text:'level 2-43-11', item:[ + {id:'43-11-0', text:'level 3-43-11-0'} +, {id:'43-11-1', text:'level 3-43-11-1'} +, {id:'43-11-2', text:'level 3-43-11-2'} +, {id:'43-11-3', text:'level 3-43-11-3'} +, {id:'43-11-4', text:'level 3-43-11-4'} +, {id:'43-11-5', text:'level 3-43-11-5'} +, {id:'43-11-6', text:'level 3-43-11-6'} +, {id:'43-11-7', text:'level 3-43-11-7'} +, {id:'43-11-8', text:'level 3-43-11-8'} +, {id:'43-11-9', text:'level 3-43-11-9'} +]} +, {id:'43-12-10', text:'level 2-43-12', item:[ + {id:'43-12-0', text:'level 3-43-12-0'} +, {id:'43-12-1', text:'level 3-43-12-1'} +, {id:'43-12-2', text:'level 3-43-12-2'} +, {id:'43-12-3', text:'level 3-43-12-3'} +, {id:'43-12-4', text:'level 3-43-12-4'} +, {id:'43-12-5', text:'level 3-43-12-5'} +, {id:'43-12-6', text:'level 3-43-12-6'} +, {id:'43-12-7', text:'level 3-43-12-7'} +, {id:'43-12-8', text:'level 3-43-12-8'} +, {id:'43-12-9', text:'level 3-43-12-9'} +]} +, {id:'43-13-10', text:'level 2-43-13', item:[ + {id:'43-13-0', text:'level 3-43-13-0'} +, {id:'43-13-1', text:'level 3-43-13-1'} +, {id:'43-13-2', text:'level 3-43-13-2'} +, {id:'43-13-3', text:'level 3-43-13-3'} +, {id:'43-13-4', text:'level 3-43-13-4'} +, {id:'43-13-5', text:'level 3-43-13-5'} +, {id:'43-13-6', text:'level 3-43-13-6'} +, {id:'43-13-7', text:'level 3-43-13-7'} +, {id:'43-13-8', text:'level 3-43-13-8'} +, {id:'43-13-9', text:'level 3-43-13-9'} +]} +, {id:'43-14-10', text:'level 2-43-14', item:[ + {id:'43-14-0', text:'level 3-43-14-0'} +, {id:'43-14-1', text:'level 3-43-14-1'} +, {id:'43-14-2', text:'level 3-43-14-2'} +, {id:'43-14-3', text:'level 3-43-14-3'} +, {id:'43-14-4', text:'level 3-43-14-4'} +, {id:'43-14-5', text:'level 3-43-14-5'} +, {id:'43-14-6', text:'level 3-43-14-6'} +, {id:'43-14-7', text:'level 3-43-14-7'} +, {id:'43-14-8', text:'level 3-43-14-8'} +, {id:'43-14-9', text:'level 3-43-14-9'} +]} +, {id:'43-15-10', text:'level 2-43-15', item:[ + {id:'43-15-0', text:'level 3-43-15-0'} +, {id:'43-15-1', text:'level 3-43-15-1'} +, {id:'43-15-2', text:'level 3-43-15-2'} +, {id:'43-15-3', text:'level 3-43-15-3'} +, {id:'43-15-4', text:'level 3-43-15-4'} +, {id:'43-15-5', text:'level 3-43-15-5'} +, {id:'43-15-6', text:'level 3-43-15-6'} +, {id:'43-15-7', text:'level 3-43-15-7'} +, {id:'43-15-8', text:'level 3-43-15-8'} +, {id:'43-15-9', text:'level 3-43-15-9'} +]} +, {id:'43-16-10', text:'level 2-43-16', item:[ + {id:'43-16-0', text:'level 3-43-16-0'} +, {id:'43-16-1', text:'level 3-43-16-1'} +, {id:'43-16-2', text:'level 3-43-16-2'} +, {id:'43-16-3', text:'level 3-43-16-3'} +, {id:'43-16-4', text:'level 3-43-16-4'} +, {id:'43-16-5', text:'level 3-43-16-5'} +, {id:'43-16-6', text:'level 3-43-16-6'} +, {id:'43-16-7', text:'level 3-43-16-7'} +, {id:'43-16-8', text:'level 3-43-16-8'} +, {id:'43-16-9', text:'level 3-43-16-9'} +]} +, {id:'43-17-10', text:'level 2-43-17', item:[ + {id:'43-17-0', text:'level 3-43-17-0'} +, {id:'43-17-1', text:'level 3-43-17-1'} +, {id:'43-17-2', text:'level 3-43-17-2'} +, {id:'43-17-3', text:'level 3-43-17-3'} +, {id:'43-17-4', text:'level 3-43-17-4'} +, {id:'43-17-5', text:'level 3-43-17-5'} +, {id:'43-17-6', text:'level 3-43-17-6'} +, {id:'43-17-7', text:'level 3-43-17-7'} +, {id:'43-17-8', text:'level 3-43-17-8'} +, {id:'43-17-9', text:'level 3-43-17-9'} +]} +, {id:'43-18-10', text:'level 2-43-18', item:[ + {id:'43-18-0', text:'level 3-43-18-0'} +, {id:'43-18-1', text:'level 3-43-18-1'} +, {id:'43-18-2', text:'level 3-43-18-2'} +, {id:'43-18-3', text:'level 3-43-18-3'} +, {id:'43-18-4', text:'level 3-43-18-4'} +, {id:'43-18-5', text:'level 3-43-18-5'} +, {id:'43-18-6', text:'level 3-43-18-6'} +, {id:'43-18-7', text:'level 3-43-18-7'} +, {id:'43-18-8', text:'level 3-43-18-8'} +, {id:'43-18-9', text:'level 3-43-18-9'} +]} +, {id:'43-19-10', text:'level 2-43-19', item:[ + {id:'43-19-0', text:'level 3-43-19-0'} +, {id:'43-19-1', text:'level 3-43-19-1'} +, {id:'43-19-2', text:'level 3-43-19-2'} +, {id:'43-19-3', text:'level 3-43-19-3'} +, {id:'43-19-4', text:'level 3-43-19-4'} +, {id:'43-19-5', text:'level 3-43-19-5'} +, {id:'43-19-6', text:'level 3-43-19-6'} +, {id:'43-19-7', text:'level 3-43-19-7'} +, {id:'43-19-8', text:'level 3-43-19-8'} +, {id:'43-19-9', text:'level 3-43-19-9'} +]} +]} +,{id:'44-20-10', text:'level 1-44', item:[ + {id:'44-0-10', text:'level 2-44-0', item:[ + {id:'44-0-0', text:'level 3-44-0-0'} +, {id:'44-0-1', text:'level 3-44-0-1'} +, {id:'44-0-2', text:'level 3-44-0-2'} +, {id:'44-0-3', text:'level 3-44-0-3'} +, {id:'44-0-4', text:'level 3-44-0-4'} +, {id:'44-0-5', text:'level 3-44-0-5'} +, {id:'44-0-6', text:'level 3-44-0-6'} +, {id:'44-0-7', text:'level 3-44-0-7'} +, {id:'44-0-8', text:'level 3-44-0-8'} +, {id:'44-0-9', text:'level 3-44-0-9'} +]} +, {id:'44-1-10', text:'level 2-44-1', item:[ + {id:'44-1-0', text:'level 3-44-1-0'} +, {id:'44-1-1', text:'level 3-44-1-1'} +, {id:'44-1-2', text:'level 3-44-1-2'} +, {id:'44-1-3', text:'level 3-44-1-3'} +, {id:'44-1-4', text:'level 3-44-1-4'} +, {id:'44-1-5', text:'level 3-44-1-5'} +, {id:'44-1-6', text:'level 3-44-1-6'} +, {id:'44-1-7', text:'level 3-44-1-7'} +, {id:'44-1-8', text:'level 3-44-1-8'} +, {id:'44-1-9', text:'level 3-44-1-9'} +]} +, {id:'44-2-10', text:'level 2-44-2', item:[ + {id:'44-2-0', text:'level 3-44-2-0'} +, {id:'44-2-1', text:'level 3-44-2-1'} +, {id:'44-2-2', text:'level 3-44-2-2'} +, {id:'44-2-3', text:'level 3-44-2-3'} +, {id:'44-2-4', text:'level 3-44-2-4'} +, {id:'44-2-5', text:'level 3-44-2-5'} +, {id:'44-2-6', text:'level 3-44-2-6'} +, {id:'44-2-7', text:'level 3-44-2-7'} +, {id:'44-2-8', text:'level 3-44-2-8'} +, {id:'44-2-9', text:'level 3-44-2-9'} +]} +, {id:'44-3-10', text:'level 2-44-3', item:[ + {id:'44-3-0', text:'level 3-44-3-0'} +, {id:'44-3-1', text:'level 3-44-3-1'} +, {id:'44-3-2', text:'level 3-44-3-2'} +, {id:'44-3-3', text:'level 3-44-3-3'} +, {id:'44-3-4', text:'level 3-44-3-4'} +, {id:'44-3-5', text:'level 3-44-3-5'} +, {id:'44-3-6', text:'level 3-44-3-6'} +, {id:'44-3-7', text:'level 3-44-3-7'} +, {id:'44-3-8', text:'level 3-44-3-8'} +, {id:'44-3-9', text:'level 3-44-3-9'} +]} +, {id:'44-4-10', text:'level 2-44-4', item:[ + {id:'44-4-0', text:'level 3-44-4-0'} +, {id:'44-4-1', text:'level 3-44-4-1'} +, {id:'44-4-2', text:'level 3-44-4-2'} +, {id:'44-4-3', text:'level 3-44-4-3'} +, {id:'44-4-4', text:'level 3-44-4-4'} +, {id:'44-4-5', text:'level 3-44-4-5'} +, {id:'44-4-6', text:'level 3-44-4-6'} +, {id:'44-4-7', text:'level 3-44-4-7'} +, {id:'44-4-8', text:'level 3-44-4-8'} +, {id:'44-4-9', text:'level 3-44-4-9'} +]} +, {id:'44-5-10', text:'level 2-44-5', item:[ + {id:'44-5-0', text:'level 3-44-5-0'} +, {id:'44-5-1', text:'level 3-44-5-1'} +, {id:'44-5-2', text:'level 3-44-5-2'} +, {id:'44-5-3', text:'level 3-44-5-3'} +, {id:'44-5-4', text:'level 3-44-5-4'} +, {id:'44-5-5', text:'level 3-44-5-5'} +, {id:'44-5-6', text:'level 3-44-5-6'} +, {id:'44-5-7', text:'level 3-44-5-7'} +, {id:'44-5-8', text:'level 3-44-5-8'} +, {id:'44-5-9', text:'level 3-44-5-9'} +]} +, {id:'44-6-10', text:'level 2-44-6', item:[ + {id:'44-6-0', text:'level 3-44-6-0'} +, {id:'44-6-1', text:'level 3-44-6-1'} +, {id:'44-6-2', text:'level 3-44-6-2'} +, {id:'44-6-3', text:'level 3-44-6-3'} +, {id:'44-6-4', text:'level 3-44-6-4'} +, {id:'44-6-5', text:'level 3-44-6-5'} +, {id:'44-6-6', text:'level 3-44-6-6'} +, {id:'44-6-7', text:'level 3-44-6-7'} +, {id:'44-6-8', text:'level 3-44-6-8'} +, {id:'44-6-9', text:'level 3-44-6-9'} +]} +, {id:'44-7-10', text:'level 2-44-7', item:[ + {id:'44-7-0', text:'level 3-44-7-0'} +, {id:'44-7-1', text:'level 3-44-7-1'} +, {id:'44-7-2', text:'level 3-44-7-2'} +, {id:'44-7-3', text:'level 3-44-7-3'} +, {id:'44-7-4', text:'level 3-44-7-4'} +, {id:'44-7-5', text:'level 3-44-7-5'} +, {id:'44-7-6', text:'level 3-44-7-6'} +, {id:'44-7-7', text:'level 3-44-7-7'} +, {id:'44-7-8', text:'level 3-44-7-8'} +, {id:'44-7-9', text:'level 3-44-7-9'} +]} +, {id:'44-8-10', text:'level 2-44-8', item:[ + {id:'44-8-0', text:'level 3-44-8-0'} +, {id:'44-8-1', text:'level 3-44-8-1'} +, {id:'44-8-2', text:'level 3-44-8-2'} +, {id:'44-8-3', text:'level 3-44-8-3'} +, {id:'44-8-4', text:'level 3-44-8-4'} +, {id:'44-8-5', text:'level 3-44-8-5'} +, {id:'44-8-6', text:'level 3-44-8-6'} +, {id:'44-8-7', text:'level 3-44-8-7'} +, {id:'44-8-8', text:'level 3-44-8-8'} +, {id:'44-8-9', text:'level 3-44-8-9'} +]} +, {id:'44-9-10', text:'level 2-44-9', item:[ + {id:'44-9-0', text:'level 3-44-9-0'} +, {id:'44-9-1', text:'level 3-44-9-1'} +, {id:'44-9-2', text:'level 3-44-9-2'} +, {id:'44-9-3', text:'level 3-44-9-3'} +, {id:'44-9-4', text:'level 3-44-9-4'} +, {id:'44-9-5', text:'level 3-44-9-5'} +, {id:'44-9-6', text:'level 3-44-9-6'} +, {id:'44-9-7', text:'level 3-44-9-7'} +, {id:'44-9-8', text:'level 3-44-9-8'} +, {id:'44-9-9', text:'level 3-44-9-9'} +]} +, {id:'44-10-10', text:'level 2-44-10', item:[ + {id:'44-10-0', text:'level 3-44-10-0'} +, {id:'44-10-1', text:'level 3-44-10-1'} +, {id:'44-10-2', text:'level 3-44-10-2'} +, {id:'44-10-3', text:'level 3-44-10-3'} +, {id:'44-10-4', text:'level 3-44-10-4'} +, {id:'44-10-5', text:'level 3-44-10-5'} +, {id:'44-10-6', text:'level 3-44-10-6'} +, {id:'44-10-7', text:'level 3-44-10-7'} +, {id:'44-10-8', text:'level 3-44-10-8'} +, {id:'44-10-9', text:'level 3-44-10-9'} +]} +, {id:'44-11-10', text:'level 2-44-11', item:[ + {id:'44-11-0', text:'level 3-44-11-0'} +, {id:'44-11-1', text:'level 3-44-11-1'} +, {id:'44-11-2', text:'level 3-44-11-2'} +, {id:'44-11-3', text:'level 3-44-11-3'} +, {id:'44-11-4', text:'level 3-44-11-4'} +, {id:'44-11-5', text:'level 3-44-11-5'} +, {id:'44-11-6', text:'level 3-44-11-6'} +, {id:'44-11-7', text:'level 3-44-11-7'} +, {id:'44-11-8', text:'level 3-44-11-8'} +, {id:'44-11-9', text:'level 3-44-11-9'} +]} +, {id:'44-12-10', text:'level 2-44-12', item:[ + {id:'44-12-0', text:'level 3-44-12-0'} +, {id:'44-12-1', text:'level 3-44-12-1'} +, {id:'44-12-2', text:'level 3-44-12-2'} +, {id:'44-12-3', text:'level 3-44-12-3'} +, {id:'44-12-4', text:'level 3-44-12-4'} +, {id:'44-12-5', text:'level 3-44-12-5'} +, {id:'44-12-6', text:'level 3-44-12-6'} +, {id:'44-12-7', text:'level 3-44-12-7'} +, {id:'44-12-8', text:'level 3-44-12-8'} +, {id:'44-12-9', text:'level 3-44-12-9'} +]} +, {id:'44-13-10', text:'level 2-44-13', item:[ + {id:'44-13-0', text:'level 3-44-13-0'} +, {id:'44-13-1', text:'level 3-44-13-1'} +, {id:'44-13-2', text:'level 3-44-13-2'} +, {id:'44-13-3', text:'level 3-44-13-3'} +, {id:'44-13-4', text:'level 3-44-13-4'} +, {id:'44-13-5', text:'level 3-44-13-5'} +, {id:'44-13-6', text:'level 3-44-13-6'} +, {id:'44-13-7', text:'level 3-44-13-7'} +, {id:'44-13-8', text:'level 3-44-13-8'} +, {id:'44-13-9', text:'level 3-44-13-9'} +]} +, {id:'44-14-10', text:'level 2-44-14', item:[ + {id:'44-14-0', text:'level 3-44-14-0'} +, {id:'44-14-1', text:'level 3-44-14-1'} +, {id:'44-14-2', text:'level 3-44-14-2'} +, {id:'44-14-3', text:'level 3-44-14-3'} +, {id:'44-14-4', text:'level 3-44-14-4'} +, {id:'44-14-5', text:'level 3-44-14-5'} +, {id:'44-14-6', text:'level 3-44-14-6'} +, {id:'44-14-7', text:'level 3-44-14-7'} +, {id:'44-14-8', text:'level 3-44-14-8'} +, {id:'44-14-9', text:'level 3-44-14-9'} +]} +, {id:'44-15-10', text:'level 2-44-15', item:[ + {id:'44-15-0', text:'level 3-44-15-0'} +, {id:'44-15-1', text:'level 3-44-15-1'} +, {id:'44-15-2', text:'level 3-44-15-2'} +, {id:'44-15-3', text:'level 3-44-15-3'} +, {id:'44-15-4', text:'level 3-44-15-4'} +, {id:'44-15-5', text:'level 3-44-15-5'} +, {id:'44-15-6', text:'level 3-44-15-6'} +, {id:'44-15-7', text:'level 3-44-15-7'} +, {id:'44-15-8', text:'level 3-44-15-8'} +, {id:'44-15-9', text:'level 3-44-15-9'} +]} +, {id:'44-16-10', text:'level 2-44-16', item:[ + {id:'44-16-0', text:'level 3-44-16-0'} +, {id:'44-16-1', text:'level 3-44-16-1'} +, {id:'44-16-2', text:'level 3-44-16-2'} +, {id:'44-16-3', text:'level 3-44-16-3'} +, {id:'44-16-4', text:'level 3-44-16-4'} +, {id:'44-16-5', text:'level 3-44-16-5'} +, {id:'44-16-6', text:'level 3-44-16-6'} +, {id:'44-16-7', text:'level 3-44-16-7'} +, {id:'44-16-8', text:'level 3-44-16-8'} +, {id:'44-16-9', text:'level 3-44-16-9'} +]} +, {id:'44-17-10', text:'level 2-44-17', item:[ + {id:'44-17-0', text:'level 3-44-17-0'} +, {id:'44-17-1', text:'level 3-44-17-1'} +, {id:'44-17-2', text:'level 3-44-17-2'} +, {id:'44-17-3', text:'level 3-44-17-3'} +, {id:'44-17-4', text:'level 3-44-17-4'} +, {id:'44-17-5', text:'level 3-44-17-5'} +, {id:'44-17-6', text:'level 3-44-17-6'} +, {id:'44-17-7', text:'level 3-44-17-7'} +, {id:'44-17-8', text:'level 3-44-17-8'} +, {id:'44-17-9', text:'level 3-44-17-9'} +]} +, {id:'44-18-10', text:'level 2-44-18', item:[ + {id:'44-18-0', text:'level 3-44-18-0'} +, {id:'44-18-1', text:'level 3-44-18-1'} +, {id:'44-18-2', text:'level 3-44-18-2'} +, {id:'44-18-3', text:'level 3-44-18-3'} +, {id:'44-18-4', text:'level 3-44-18-4'} +, {id:'44-18-5', text:'level 3-44-18-5'} +, {id:'44-18-6', text:'level 3-44-18-6'} +, {id:'44-18-7', text:'level 3-44-18-7'} +, {id:'44-18-8', text:'level 3-44-18-8'} +, {id:'44-18-9', text:'level 3-44-18-9'} +]} +, {id:'44-19-10', text:'level 2-44-19', item:[ + {id:'44-19-0', text:'level 3-44-19-0'} +, {id:'44-19-1', text:'level 3-44-19-1'} +, {id:'44-19-2', text:'level 3-44-19-2'} +, {id:'44-19-3', text:'level 3-44-19-3'} +, {id:'44-19-4', text:'level 3-44-19-4'} +, {id:'44-19-5', text:'level 3-44-19-5'} +, {id:'44-19-6', text:'level 3-44-19-6'} +, {id:'44-19-7', text:'level 3-44-19-7'} +, {id:'44-19-8', text:'level 3-44-19-8'} +, {id:'44-19-9', text:'level 3-44-19-9'} +]} +]} +,{id:'45-20-10', text:'level 1-45', item:[ + {id:'45-0-10', text:'level 2-45-0', item:[ + {id:'45-0-0', text:'level 3-45-0-0'} +, {id:'45-0-1', text:'level 3-45-0-1'} +, {id:'45-0-2', text:'level 3-45-0-2'} +, {id:'45-0-3', text:'level 3-45-0-3'} +, {id:'45-0-4', text:'level 3-45-0-4'} +, {id:'45-0-5', text:'level 3-45-0-5'} +, {id:'45-0-6', text:'level 3-45-0-6'} +, {id:'45-0-7', text:'level 3-45-0-7'} +, {id:'45-0-8', text:'level 3-45-0-8'} +, {id:'45-0-9', text:'level 3-45-0-9'} +]} +, {id:'45-1-10', text:'level 2-45-1', item:[ + {id:'45-1-0', text:'level 3-45-1-0'} +, {id:'45-1-1', text:'level 3-45-1-1'} +, {id:'45-1-2', text:'level 3-45-1-2'} +, {id:'45-1-3', text:'level 3-45-1-3'} +, {id:'45-1-4', text:'level 3-45-1-4'} +, {id:'45-1-5', text:'level 3-45-1-5'} +, {id:'45-1-6', text:'level 3-45-1-6'} +, {id:'45-1-7', text:'level 3-45-1-7'} +, {id:'45-1-8', text:'level 3-45-1-8'} +, {id:'45-1-9', text:'level 3-45-1-9'} +]} +, {id:'45-2-10', text:'level 2-45-2', item:[ + {id:'45-2-0', text:'level 3-45-2-0'} +, {id:'45-2-1', text:'level 3-45-2-1'} +, {id:'45-2-2', text:'level 3-45-2-2'} +, {id:'45-2-3', text:'level 3-45-2-3'} +, {id:'45-2-4', text:'level 3-45-2-4'} +, {id:'45-2-5', text:'level 3-45-2-5'} +, {id:'45-2-6', text:'level 3-45-2-6'} +, {id:'45-2-7', text:'level 3-45-2-7'} +, {id:'45-2-8', text:'level 3-45-2-8'} +, {id:'45-2-9', text:'level 3-45-2-9'} +]} +, {id:'45-3-10', text:'level 2-45-3', item:[ + {id:'45-3-0', text:'level 3-45-3-0'} +, {id:'45-3-1', text:'level 3-45-3-1'} +, {id:'45-3-2', text:'level 3-45-3-2'} +, {id:'45-3-3', text:'level 3-45-3-3'} +, {id:'45-3-4', text:'level 3-45-3-4'} +, {id:'45-3-5', text:'level 3-45-3-5'} +, {id:'45-3-6', text:'level 3-45-3-6'} +, {id:'45-3-7', text:'level 3-45-3-7'} +, {id:'45-3-8', text:'level 3-45-3-8'} +, {id:'45-3-9', text:'level 3-45-3-9'} +]} +, {id:'45-4-10', text:'level 2-45-4', item:[ + {id:'45-4-0', text:'level 3-45-4-0'} +, {id:'45-4-1', text:'level 3-45-4-1'} +, {id:'45-4-2', text:'level 3-45-4-2'} +, {id:'45-4-3', text:'level 3-45-4-3'} +, {id:'45-4-4', text:'level 3-45-4-4'} +, {id:'45-4-5', text:'level 3-45-4-5'} +, {id:'45-4-6', text:'level 3-45-4-6'} +, {id:'45-4-7', text:'level 3-45-4-7'} +, {id:'45-4-8', text:'level 3-45-4-8'} +, {id:'45-4-9', text:'level 3-45-4-9'} +]} +, {id:'45-5-10', text:'level 2-45-5', item:[ + {id:'45-5-0', text:'level 3-45-5-0'} +, {id:'45-5-1', text:'level 3-45-5-1'} +, {id:'45-5-2', text:'level 3-45-5-2'} +, {id:'45-5-3', text:'level 3-45-5-3'} +, {id:'45-5-4', text:'level 3-45-5-4'} +, {id:'45-5-5', text:'level 3-45-5-5'} +, {id:'45-5-6', text:'level 3-45-5-6'} +, {id:'45-5-7', text:'level 3-45-5-7'} +, {id:'45-5-8', text:'level 3-45-5-8'} +, {id:'45-5-9', text:'level 3-45-5-9'} +]} +, {id:'45-6-10', text:'level 2-45-6', item:[ + {id:'45-6-0', text:'level 3-45-6-0'} +, {id:'45-6-1', text:'level 3-45-6-1'} +, {id:'45-6-2', text:'level 3-45-6-2'} +, {id:'45-6-3', text:'level 3-45-6-3'} +, {id:'45-6-4', text:'level 3-45-6-4'} +, {id:'45-6-5', text:'level 3-45-6-5'} +, {id:'45-6-6', text:'level 3-45-6-6'} +, {id:'45-6-7', text:'level 3-45-6-7'} +, {id:'45-6-8', text:'level 3-45-6-8'} +, {id:'45-6-9', text:'level 3-45-6-9'} +]} +, {id:'45-7-10', text:'level 2-45-7', item:[ + {id:'45-7-0', text:'level 3-45-7-0'} +, {id:'45-7-1', text:'level 3-45-7-1'} +, {id:'45-7-2', text:'level 3-45-7-2'} +, {id:'45-7-3', text:'level 3-45-7-3'} +, {id:'45-7-4', text:'level 3-45-7-4'} +, {id:'45-7-5', text:'level 3-45-7-5'} +, {id:'45-7-6', text:'level 3-45-7-6'} +, {id:'45-7-7', text:'level 3-45-7-7'} +, {id:'45-7-8', text:'level 3-45-7-8'} +, {id:'45-7-9', text:'level 3-45-7-9'} +]} +, {id:'45-8-10', text:'level 2-45-8', item:[ + {id:'45-8-0', text:'level 3-45-8-0'} +, {id:'45-8-1', text:'level 3-45-8-1'} +, {id:'45-8-2', text:'level 3-45-8-2'} +, {id:'45-8-3', text:'level 3-45-8-3'} +, {id:'45-8-4', text:'level 3-45-8-4'} +, {id:'45-8-5', text:'level 3-45-8-5'} +, {id:'45-8-6', text:'level 3-45-8-6'} +, {id:'45-8-7', text:'level 3-45-8-7'} +, {id:'45-8-8', text:'level 3-45-8-8'} +, {id:'45-8-9', text:'level 3-45-8-9'} +]} +, {id:'45-9-10', text:'level 2-45-9', item:[ + {id:'45-9-0', text:'level 3-45-9-0'} +, {id:'45-9-1', text:'level 3-45-9-1'} +, {id:'45-9-2', text:'level 3-45-9-2'} +, {id:'45-9-3', text:'level 3-45-9-3'} +, {id:'45-9-4', text:'level 3-45-9-4'} +, {id:'45-9-5', text:'level 3-45-9-5'} +, {id:'45-9-6', text:'level 3-45-9-6'} +, {id:'45-9-7', text:'level 3-45-9-7'} +, {id:'45-9-8', text:'level 3-45-9-8'} +, {id:'45-9-9', text:'level 3-45-9-9'} +]} +, {id:'45-10-10', text:'level 2-45-10', item:[ + {id:'45-10-0', text:'level 3-45-10-0'} +, {id:'45-10-1', text:'level 3-45-10-1'} +, {id:'45-10-2', text:'level 3-45-10-2'} +, {id:'45-10-3', text:'level 3-45-10-3'} +, {id:'45-10-4', text:'level 3-45-10-4'} +, {id:'45-10-5', text:'level 3-45-10-5'} +, {id:'45-10-6', text:'level 3-45-10-6'} +, {id:'45-10-7', text:'level 3-45-10-7'} +, {id:'45-10-8', text:'level 3-45-10-8'} +, {id:'45-10-9', text:'level 3-45-10-9'} +]} +, {id:'45-11-10', text:'level 2-45-11', item:[ + {id:'45-11-0', text:'level 3-45-11-0'} +, {id:'45-11-1', text:'level 3-45-11-1'} +, {id:'45-11-2', text:'level 3-45-11-2'} +, {id:'45-11-3', text:'level 3-45-11-3'} +, {id:'45-11-4', text:'level 3-45-11-4'} +, {id:'45-11-5', text:'level 3-45-11-5'} +, {id:'45-11-6', text:'level 3-45-11-6'} +, {id:'45-11-7', text:'level 3-45-11-7'} +, {id:'45-11-8', text:'level 3-45-11-8'} +, {id:'45-11-9', text:'level 3-45-11-9'} +]} +, {id:'45-12-10', text:'level 2-45-12', item:[ + {id:'45-12-0', text:'level 3-45-12-0'} +, {id:'45-12-1', text:'level 3-45-12-1'} +, {id:'45-12-2', text:'level 3-45-12-2'} +, {id:'45-12-3', text:'level 3-45-12-3'} +, {id:'45-12-4', text:'level 3-45-12-4'} +, {id:'45-12-5', text:'level 3-45-12-5'} +, {id:'45-12-6', text:'level 3-45-12-6'} +, {id:'45-12-7', text:'level 3-45-12-7'} +, {id:'45-12-8', text:'level 3-45-12-8'} +, {id:'45-12-9', text:'level 3-45-12-9'} +]} +, {id:'45-13-10', text:'level 2-45-13', item:[ + {id:'45-13-0', text:'level 3-45-13-0'} +, {id:'45-13-1', text:'level 3-45-13-1'} +, {id:'45-13-2', text:'level 3-45-13-2'} +, {id:'45-13-3', text:'level 3-45-13-3'} +, {id:'45-13-4', text:'level 3-45-13-4'} +, {id:'45-13-5', text:'level 3-45-13-5'} +, {id:'45-13-6', text:'level 3-45-13-6'} +, {id:'45-13-7', text:'level 3-45-13-7'} +, {id:'45-13-8', text:'level 3-45-13-8'} +, {id:'45-13-9', text:'level 3-45-13-9'} +]} +, {id:'45-14-10', text:'level 2-45-14', item:[ + {id:'45-14-0', text:'level 3-45-14-0'} +, {id:'45-14-1', text:'level 3-45-14-1'} +, {id:'45-14-2', text:'level 3-45-14-2'} +, {id:'45-14-3', text:'level 3-45-14-3'} +, {id:'45-14-4', text:'level 3-45-14-4'} +, {id:'45-14-5', text:'level 3-45-14-5'} +, {id:'45-14-6', text:'level 3-45-14-6'} +, {id:'45-14-7', text:'level 3-45-14-7'} +, {id:'45-14-8', text:'level 3-45-14-8'} +, {id:'45-14-9', text:'level 3-45-14-9'} +]} +, {id:'45-15-10', text:'level 2-45-15', item:[ + {id:'45-15-0', text:'level 3-45-15-0'} +, {id:'45-15-1', text:'level 3-45-15-1'} +, {id:'45-15-2', text:'level 3-45-15-2'} +, {id:'45-15-3', text:'level 3-45-15-3'} +, {id:'45-15-4', text:'level 3-45-15-4'} +, {id:'45-15-5', text:'level 3-45-15-5'} +, {id:'45-15-6', text:'level 3-45-15-6'} +, {id:'45-15-7', text:'level 3-45-15-7'} +, {id:'45-15-8', text:'level 3-45-15-8'} +, {id:'45-15-9', text:'level 3-45-15-9'} +]} +, {id:'45-16-10', text:'level 2-45-16', item:[ + {id:'45-16-0', text:'level 3-45-16-0'} +, {id:'45-16-1', text:'level 3-45-16-1'} +, {id:'45-16-2', text:'level 3-45-16-2'} +, {id:'45-16-3', text:'level 3-45-16-3'} +, {id:'45-16-4', text:'level 3-45-16-4'} +, {id:'45-16-5', text:'level 3-45-16-5'} +, {id:'45-16-6', text:'level 3-45-16-6'} +, {id:'45-16-7', text:'level 3-45-16-7'} +, {id:'45-16-8', text:'level 3-45-16-8'} +, {id:'45-16-9', text:'level 3-45-16-9'} +]} +, {id:'45-17-10', text:'level 2-45-17', item:[ + {id:'45-17-0', text:'level 3-45-17-0'} +, {id:'45-17-1', text:'level 3-45-17-1'} +, {id:'45-17-2', text:'level 3-45-17-2'} +, {id:'45-17-3', text:'level 3-45-17-3'} +, {id:'45-17-4', text:'level 3-45-17-4'} +, {id:'45-17-5', text:'level 3-45-17-5'} +, {id:'45-17-6', text:'level 3-45-17-6'} +, {id:'45-17-7', text:'level 3-45-17-7'} +, {id:'45-17-8', text:'level 3-45-17-8'} +, {id:'45-17-9', text:'level 3-45-17-9'} +]} +, {id:'45-18-10', text:'level 2-45-18', item:[ + {id:'45-18-0', text:'level 3-45-18-0'} +, {id:'45-18-1', text:'level 3-45-18-1'} +, {id:'45-18-2', text:'level 3-45-18-2'} +, {id:'45-18-3', text:'level 3-45-18-3'} +, {id:'45-18-4', text:'level 3-45-18-4'} +, {id:'45-18-5', text:'level 3-45-18-5'} +, {id:'45-18-6', text:'level 3-45-18-6'} +, {id:'45-18-7', text:'level 3-45-18-7'} +, {id:'45-18-8', text:'level 3-45-18-8'} +, {id:'45-18-9', text:'level 3-45-18-9'} +]} +, {id:'45-19-10', text:'level 2-45-19', item:[ + {id:'45-19-0', text:'level 3-45-19-0'} +, {id:'45-19-1', text:'level 3-45-19-1'} +, {id:'45-19-2', text:'level 3-45-19-2'} +, {id:'45-19-3', text:'level 3-45-19-3'} +, {id:'45-19-4', text:'level 3-45-19-4'} +, {id:'45-19-5', text:'level 3-45-19-5'} +, {id:'45-19-6', text:'level 3-45-19-6'} +, {id:'45-19-7', text:'level 3-45-19-7'} +, {id:'45-19-8', text:'level 3-45-19-8'} +, {id:'45-19-9', text:'level 3-45-19-9'} +]} +]} +,{id:'46-20-10', text:'level 1-46', item:[ + {id:'46-0-10', text:'level 2-46-0', item:[ + {id:'46-0-0', text:'level 3-46-0-0'} +, {id:'46-0-1', text:'level 3-46-0-1'} +, {id:'46-0-2', text:'level 3-46-0-2'} +, {id:'46-0-3', text:'level 3-46-0-3'} +, {id:'46-0-4', text:'level 3-46-0-4'} +, {id:'46-0-5', text:'level 3-46-0-5'} +, {id:'46-0-6', text:'level 3-46-0-6'} +, {id:'46-0-7', text:'level 3-46-0-7'} +, {id:'46-0-8', text:'level 3-46-0-8'} +, {id:'46-0-9', text:'level 3-46-0-9'} +]} +, {id:'46-1-10', text:'level 2-46-1', item:[ + {id:'46-1-0', text:'level 3-46-1-0'} +, {id:'46-1-1', text:'level 3-46-1-1'} +, {id:'46-1-2', text:'level 3-46-1-2'} +, {id:'46-1-3', text:'level 3-46-1-3'} +, {id:'46-1-4', text:'level 3-46-1-4'} +, {id:'46-1-5', text:'level 3-46-1-5'} +, {id:'46-1-6', text:'level 3-46-1-6'} +, {id:'46-1-7', text:'level 3-46-1-7'} +, {id:'46-1-8', text:'level 3-46-1-8'} +, {id:'46-1-9', text:'level 3-46-1-9'} +]} +, {id:'46-2-10', text:'level 2-46-2', item:[ + {id:'46-2-0', text:'level 3-46-2-0'} +, {id:'46-2-1', text:'level 3-46-2-1'} +, {id:'46-2-2', text:'level 3-46-2-2'} +, {id:'46-2-3', text:'level 3-46-2-3'} +, {id:'46-2-4', text:'level 3-46-2-4'} +, {id:'46-2-5', text:'level 3-46-2-5'} +, {id:'46-2-6', text:'level 3-46-2-6'} +, {id:'46-2-7', text:'level 3-46-2-7'} +, {id:'46-2-8', text:'level 3-46-2-8'} +, {id:'46-2-9', text:'level 3-46-2-9'} +]} +, {id:'46-3-10', text:'level 2-46-3', item:[ + {id:'46-3-0', text:'level 3-46-3-0'} +, {id:'46-3-1', text:'level 3-46-3-1'} +, {id:'46-3-2', text:'level 3-46-3-2'} +, {id:'46-3-3', text:'level 3-46-3-3'} +, {id:'46-3-4', text:'level 3-46-3-4'} +, {id:'46-3-5', text:'level 3-46-3-5'} +, {id:'46-3-6', text:'level 3-46-3-6'} +, {id:'46-3-7', text:'level 3-46-3-7'} +, {id:'46-3-8', text:'level 3-46-3-8'} +, {id:'46-3-9', text:'level 3-46-3-9'} +]} +, {id:'46-4-10', text:'level 2-46-4', item:[ + {id:'46-4-0', text:'level 3-46-4-0'} +, {id:'46-4-1', text:'level 3-46-4-1'} +, {id:'46-4-2', text:'level 3-46-4-2'} +, {id:'46-4-3', text:'level 3-46-4-3'} +, {id:'46-4-4', text:'level 3-46-4-4'} +, {id:'46-4-5', text:'level 3-46-4-5'} +, {id:'46-4-6', text:'level 3-46-4-6'} +, {id:'46-4-7', text:'level 3-46-4-7'} +, {id:'46-4-8', text:'level 3-46-4-8'} +, {id:'46-4-9', text:'level 3-46-4-9'} +]} +, {id:'46-5-10', text:'level 2-46-5', item:[ + {id:'46-5-0', text:'level 3-46-5-0'} +, {id:'46-5-1', text:'level 3-46-5-1'} +, {id:'46-5-2', text:'level 3-46-5-2'} +, {id:'46-5-3', text:'level 3-46-5-3'} +, {id:'46-5-4', text:'level 3-46-5-4'} +, {id:'46-5-5', text:'level 3-46-5-5'} +, {id:'46-5-6', text:'level 3-46-5-6'} +, {id:'46-5-7', text:'level 3-46-5-7'} +, {id:'46-5-8', text:'level 3-46-5-8'} +, {id:'46-5-9', text:'level 3-46-5-9'} +]} +, {id:'46-6-10', text:'level 2-46-6', item:[ + {id:'46-6-0', text:'level 3-46-6-0'} +, {id:'46-6-1', text:'level 3-46-6-1'} +, {id:'46-6-2', text:'level 3-46-6-2'} +, {id:'46-6-3', text:'level 3-46-6-3'} +, {id:'46-6-4', text:'level 3-46-6-4'} +, {id:'46-6-5', text:'level 3-46-6-5'} +, {id:'46-6-6', text:'level 3-46-6-6'} +, {id:'46-6-7', text:'level 3-46-6-7'} +, {id:'46-6-8', text:'level 3-46-6-8'} +, {id:'46-6-9', text:'level 3-46-6-9'} +]} +, {id:'46-7-10', text:'level 2-46-7', item:[ + {id:'46-7-0', text:'level 3-46-7-0'} +, {id:'46-7-1', text:'level 3-46-7-1'} +, {id:'46-7-2', text:'level 3-46-7-2'} +, {id:'46-7-3', text:'level 3-46-7-3'} +, {id:'46-7-4', text:'level 3-46-7-4'} +, {id:'46-7-5', text:'level 3-46-7-5'} +, {id:'46-7-6', text:'level 3-46-7-6'} +, {id:'46-7-7', text:'level 3-46-7-7'} +, {id:'46-7-8', text:'level 3-46-7-8'} +, {id:'46-7-9', text:'level 3-46-7-9'} +]} +, {id:'46-8-10', text:'level 2-46-8', item:[ + {id:'46-8-0', text:'level 3-46-8-0'} +, {id:'46-8-1', text:'level 3-46-8-1'} +, {id:'46-8-2', text:'level 3-46-8-2'} +, {id:'46-8-3', text:'level 3-46-8-3'} +, {id:'46-8-4', text:'level 3-46-8-4'} +, {id:'46-8-5', text:'level 3-46-8-5'} +, {id:'46-8-6', text:'level 3-46-8-6'} +, {id:'46-8-7', text:'level 3-46-8-7'} +, {id:'46-8-8', text:'level 3-46-8-8'} +, {id:'46-8-9', text:'level 3-46-8-9'} +]} +, {id:'46-9-10', text:'level 2-46-9', item:[ + {id:'46-9-0', text:'level 3-46-9-0'} +, {id:'46-9-1', text:'level 3-46-9-1'} +, {id:'46-9-2', text:'level 3-46-9-2'} +, {id:'46-9-3', text:'level 3-46-9-3'} +, {id:'46-9-4', text:'level 3-46-9-4'} +, {id:'46-9-5', text:'level 3-46-9-5'} +, {id:'46-9-6', text:'level 3-46-9-6'} +, {id:'46-9-7', text:'level 3-46-9-7'} +, {id:'46-9-8', text:'level 3-46-9-8'} +, {id:'46-9-9', text:'level 3-46-9-9'} +]} +, {id:'46-10-10', text:'level 2-46-10', item:[ + {id:'46-10-0', text:'level 3-46-10-0'} +, {id:'46-10-1', text:'level 3-46-10-1'} +, {id:'46-10-2', text:'level 3-46-10-2'} +, {id:'46-10-3', text:'level 3-46-10-3'} +, {id:'46-10-4', text:'level 3-46-10-4'} +, {id:'46-10-5', text:'level 3-46-10-5'} +, {id:'46-10-6', text:'level 3-46-10-6'} +, {id:'46-10-7', text:'level 3-46-10-7'} +, {id:'46-10-8', text:'level 3-46-10-8'} +, {id:'46-10-9', text:'level 3-46-10-9'} +]} +, {id:'46-11-10', text:'level 2-46-11', item:[ + {id:'46-11-0', text:'level 3-46-11-0'} +, {id:'46-11-1', text:'level 3-46-11-1'} +, {id:'46-11-2', text:'level 3-46-11-2'} +, {id:'46-11-3', text:'level 3-46-11-3'} +, {id:'46-11-4', text:'level 3-46-11-4'} +, {id:'46-11-5', text:'level 3-46-11-5'} +, {id:'46-11-6', text:'level 3-46-11-6'} +, {id:'46-11-7', text:'level 3-46-11-7'} +, {id:'46-11-8', text:'level 3-46-11-8'} +, {id:'46-11-9', text:'level 3-46-11-9'} +]} +, {id:'46-12-10', text:'level 2-46-12', item:[ + {id:'46-12-0', text:'level 3-46-12-0'} +, {id:'46-12-1', text:'level 3-46-12-1'} +, {id:'46-12-2', text:'level 3-46-12-2'} +, {id:'46-12-3', text:'level 3-46-12-3'} +, {id:'46-12-4', text:'level 3-46-12-4'} +, {id:'46-12-5', text:'level 3-46-12-5'} +, {id:'46-12-6', text:'level 3-46-12-6'} +, {id:'46-12-7', text:'level 3-46-12-7'} +, {id:'46-12-8', text:'level 3-46-12-8'} +, {id:'46-12-9', text:'level 3-46-12-9'} +]} +, {id:'46-13-10', text:'level 2-46-13', item:[ + {id:'46-13-0', text:'level 3-46-13-0'} +, {id:'46-13-1', text:'level 3-46-13-1'} +, {id:'46-13-2', text:'level 3-46-13-2'} +, {id:'46-13-3', text:'level 3-46-13-3'} +, {id:'46-13-4', text:'level 3-46-13-4'} +, {id:'46-13-5', text:'level 3-46-13-5'} +, {id:'46-13-6', text:'level 3-46-13-6'} +, {id:'46-13-7', text:'level 3-46-13-7'} +, {id:'46-13-8', text:'level 3-46-13-8'} +, {id:'46-13-9', text:'level 3-46-13-9'} +]} +, {id:'46-14-10', text:'level 2-46-14', item:[ + {id:'46-14-0', text:'level 3-46-14-0'} +, {id:'46-14-1', text:'level 3-46-14-1'} +, {id:'46-14-2', text:'level 3-46-14-2'} +, {id:'46-14-3', text:'level 3-46-14-3'} +, {id:'46-14-4', text:'level 3-46-14-4'} +, {id:'46-14-5', text:'level 3-46-14-5'} +, {id:'46-14-6', text:'level 3-46-14-6'} +, {id:'46-14-7', text:'level 3-46-14-7'} +, {id:'46-14-8', text:'level 3-46-14-8'} +, {id:'46-14-9', text:'level 3-46-14-9'} +]} +, {id:'46-15-10', text:'level 2-46-15', item:[ + {id:'46-15-0', text:'level 3-46-15-0'} +, {id:'46-15-1', text:'level 3-46-15-1'} +, {id:'46-15-2', text:'level 3-46-15-2'} +, {id:'46-15-3', text:'level 3-46-15-3'} +, {id:'46-15-4', text:'level 3-46-15-4'} +, {id:'46-15-5', text:'level 3-46-15-5'} +, {id:'46-15-6', text:'level 3-46-15-6'} +, {id:'46-15-7', text:'level 3-46-15-7'} +, {id:'46-15-8', text:'level 3-46-15-8'} +, {id:'46-15-9', text:'level 3-46-15-9'} +]} +, {id:'46-16-10', text:'level 2-46-16', item:[ + {id:'46-16-0', text:'level 3-46-16-0'} +, {id:'46-16-1', text:'level 3-46-16-1'} +, {id:'46-16-2', text:'level 3-46-16-2'} +, {id:'46-16-3', text:'level 3-46-16-3'} +, {id:'46-16-4', text:'level 3-46-16-4'} +, {id:'46-16-5', text:'level 3-46-16-5'} +, {id:'46-16-6', text:'level 3-46-16-6'} +, {id:'46-16-7', text:'level 3-46-16-7'} +, {id:'46-16-8', text:'level 3-46-16-8'} +, {id:'46-16-9', text:'level 3-46-16-9'} +]} +, {id:'46-17-10', text:'level 2-46-17', item:[ + {id:'46-17-0', text:'level 3-46-17-0'} +, {id:'46-17-1', text:'level 3-46-17-1'} +, {id:'46-17-2', text:'level 3-46-17-2'} +, {id:'46-17-3', text:'level 3-46-17-3'} +, {id:'46-17-4', text:'level 3-46-17-4'} +, {id:'46-17-5', text:'level 3-46-17-5'} +, {id:'46-17-6', text:'level 3-46-17-6'} +, {id:'46-17-7', text:'level 3-46-17-7'} +, {id:'46-17-8', text:'level 3-46-17-8'} +, {id:'46-17-9', text:'level 3-46-17-9'} +]} +, {id:'46-18-10', text:'level 2-46-18', item:[ + {id:'46-18-0', text:'level 3-46-18-0'} +, {id:'46-18-1', text:'level 3-46-18-1'} +, {id:'46-18-2', text:'level 3-46-18-2'} +, {id:'46-18-3', text:'level 3-46-18-3'} +, {id:'46-18-4', text:'level 3-46-18-4'} +, {id:'46-18-5', text:'level 3-46-18-5'} +, {id:'46-18-6', text:'level 3-46-18-6'} +, {id:'46-18-7', text:'level 3-46-18-7'} +, {id:'46-18-8', text:'level 3-46-18-8'} +, {id:'46-18-9', text:'level 3-46-18-9'} +]} +, {id:'46-19-10', text:'level 2-46-19', item:[ + {id:'46-19-0', text:'level 3-46-19-0'} +, {id:'46-19-1', text:'level 3-46-19-1'} +, {id:'46-19-2', text:'level 3-46-19-2'} +, {id:'46-19-3', text:'level 3-46-19-3'} +, {id:'46-19-4', text:'level 3-46-19-4'} +, {id:'46-19-5', text:'level 3-46-19-5'} +, {id:'46-19-6', text:'level 3-46-19-6'} +, {id:'46-19-7', text:'level 3-46-19-7'} +, {id:'46-19-8', text:'level 3-46-19-8'} +, {id:'46-19-9', text:'level 3-46-19-9'} +]} +]} +,{id:'47-20-10', text:'level 1-47', item:[ + {id:'47-0-10', text:'level 2-47-0', item:[ + {id:'47-0-0', text:'level 3-47-0-0'} +, {id:'47-0-1', text:'level 3-47-0-1'} +, {id:'47-0-2', text:'level 3-47-0-2'} +, {id:'47-0-3', text:'level 3-47-0-3'} +, {id:'47-0-4', text:'level 3-47-0-4'} +, {id:'47-0-5', text:'level 3-47-0-5'} +, {id:'47-0-6', text:'level 3-47-0-6'} +, {id:'47-0-7', text:'level 3-47-0-7'} +, {id:'47-0-8', text:'level 3-47-0-8'} +, {id:'47-0-9', text:'level 3-47-0-9'} +]} +, {id:'47-1-10', text:'level 2-47-1', item:[ + {id:'47-1-0', text:'level 3-47-1-0'} +, {id:'47-1-1', text:'level 3-47-1-1'} +, {id:'47-1-2', text:'level 3-47-1-2'} +, {id:'47-1-3', text:'level 3-47-1-3'} +, {id:'47-1-4', text:'level 3-47-1-4'} +, {id:'47-1-5', text:'level 3-47-1-5'} +, {id:'47-1-6', text:'level 3-47-1-6'} +, {id:'47-1-7', text:'level 3-47-1-7'} +, {id:'47-1-8', text:'level 3-47-1-8'} +, {id:'47-1-9', text:'level 3-47-1-9'} +]} +, {id:'47-2-10', text:'level 2-47-2', item:[ + {id:'47-2-0', text:'level 3-47-2-0'} +, {id:'47-2-1', text:'level 3-47-2-1'} +, {id:'47-2-2', text:'level 3-47-2-2'} +, {id:'47-2-3', text:'level 3-47-2-3'} +, {id:'47-2-4', text:'level 3-47-2-4'} +, {id:'47-2-5', text:'level 3-47-2-5'} +, {id:'47-2-6', text:'level 3-47-2-6'} +, {id:'47-2-7', text:'level 3-47-2-7'} +, {id:'47-2-8', text:'level 3-47-2-8'} +, {id:'47-2-9', text:'level 3-47-2-9'} +]} +, {id:'47-3-10', text:'level 2-47-3', item:[ + {id:'47-3-0', text:'level 3-47-3-0'} +, {id:'47-3-1', text:'level 3-47-3-1'} +, {id:'47-3-2', text:'level 3-47-3-2'} +, {id:'47-3-3', text:'level 3-47-3-3'} +, {id:'47-3-4', text:'level 3-47-3-4'} +, {id:'47-3-5', text:'level 3-47-3-5'} +, {id:'47-3-6', text:'level 3-47-3-6'} +, {id:'47-3-7', text:'level 3-47-3-7'} +, {id:'47-3-8', text:'level 3-47-3-8'} +, {id:'47-3-9', text:'level 3-47-3-9'} +]} +, {id:'47-4-10', text:'level 2-47-4', item:[ + {id:'47-4-0', text:'level 3-47-4-0'} +, {id:'47-4-1', text:'level 3-47-4-1'} +, {id:'47-4-2', text:'level 3-47-4-2'} +, {id:'47-4-3', text:'level 3-47-4-3'} +, {id:'47-4-4', text:'level 3-47-4-4'} +, {id:'47-4-5', text:'level 3-47-4-5'} +, {id:'47-4-6', text:'level 3-47-4-6'} +, {id:'47-4-7', text:'level 3-47-4-7'} +, {id:'47-4-8', text:'level 3-47-4-8'} +, {id:'47-4-9', text:'level 3-47-4-9'} +]} +, {id:'47-5-10', text:'level 2-47-5', item:[ + {id:'47-5-0', text:'level 3-47-5-0'} +, {id:'47-5-1', text:'level 3-47-5-1'} +, {id:'47-5-2', text:'level 3-47-5-2'} +, {id:'47-5-3', text:'level 3-47-5-3'} +, {id:'47-5-4', text:'level 3-47-5-4'} +, {id:'47-5-5', text:'level 3-47-5-5'} +, {id:'47-5-6', text:'level 3-47-5-6'} +, {id:'47-5-7', text:'level 3-47-5-7'} +, {id:'47-5-8', text:'level 3-47-5-8'} +, {id:'47-5-9', text:'level 3-47-5-9'} +]} +, {id:'47-6-10', text:'level 2-47-6', item:[ + {id:'47-6-0', text:'level 3-47-6-0'} +, {id:'47-6-1', text:'level 3-47-6-1'} +, {id:'47-6-2', text:'level 3-47-6-2'} +, {id:'47-6-3', text:'level 3-47-6-3'} +, {id:'47-6-4', text:'level 3-47-6-4'} +, {id:'47-6-5', text:'level 3-47-6-5'} +, {id:'47-6-6', text:'level 3-47-6-6'} +, {id:'47-6-7', text:'level 3-47-6-7'} +, {id:'47-6-8', text:'level 3-47-6-8'} +, {id:'47-6-9', text:'level 3-47-6-9'} +]} +, {id:'47-7-10', text:'level 2-47-7', item:[ + {id:'47-7-0', text:'level 3-47-7-0'} +, {id:'47-7-1', text:'level 3-47-7-1'} +, {id:'47-7-2', text:'level 3-47-7-2'} +, {id:'47-7-3', text:'level 3-47-7-3'} +, {id:'47-7-4', text:'level 3-47-7-4'} +, {id:'47-7-5', text:'level 3-47-7-5'} +, {id:'47-7-6', text:'level 3-47-7-6'} +, {id:'47-7-7', text:'level 3-47-7-7'} +, {id:'47-7-8', text:'level 3-47-7-8'} +, {id:'47-7-9', text:'level 3-47-7-9'} +]} +, {id:'47-8-10', text:'level 2-47-8', item:[ + {id:'47-8-0', text:'level 3-47-8-0'} +, {id:'47-8-1', text:'level 3-47-8-1'} +, {id:'47-8-2', text:'level 3-47-8-2'} +, {id:'47-8-3', text:'level 3-47-8-3'} +, {id:'47-8-4', text:'level 3-47-8-4'} +, {id:'47-8-5', text:'level 3-47-8-5'} +, {id:'47-8-6', text:'level 3-47-8-6'} +, {id:'47-8-7', text:'level 3-47-8-7'} +, {id:'47-8-8', text:'level 3-47-8-8'} +, {id:'47-8-9', text:'level 3-47-8-9'} +]} +, {id:'47-9-10', text:'level 2-47-9', item:[ + {id:'47-9-0', text:'level 3-47-9-0'} +, {id:'47-9-1', text:'level 3-47-9-1'} +, {id:'47-9-2', text:'level 3-47-9-2'} +, {id:'47-9-3', text:'level 3-47-9-3'} +, {id:'47-9-4', text:'level 3-47-9-4'} +, {id:'47-9-5', text:'level 3-47-9-5'} +, {id:'47-9-6', text:'level 3-47-9-6'} +, {id:'47-9-7', text:'level 3-47-9-7'} +, {id:'47-9-8', text:'level 3-47-9-8'} +, {id:'47-9-9', text:'level 3-47-9-9'} +]} +, {id:'47-10-10', text:'level 2-47-10', item:[ + {id:'47-10-0', text:'level 3-47-10-0'} +, {id:'47-10-1', text:'level 3-47-10-1'} +, {id:'47-10-2', text:'level 3-47-10-2'} +, {id:'47-10-3', text:'level 3-47-10-3'} +, {id:'47-10-4', text:'level 3-47-10-4'} +, {id:'47-10-5', text:'level 3-47-10-5'} +, {id:'47-10-6', text:'level 3-47-10-6'} +, {id:'47-10-7', text:'level 3-47-10-7'} +, {id:'47-10-8', text:'level 3-47-10-8'} +, {id:'47-10-9', text:'level 3-47-10-9'} +]} +, {id:'47-11-10', text:'level 2-47-11', item:[ + {id:'47-11-0', text:'level 3-47-11-0'} +, {id:'47-11-1', text:'level 3-47-11-1'} +, {id:'47-11-2', text:'level 3-47-11-2'} +, {id:'47-11-3', text:'level 3-47-11-3'} +, {id:'47-11-4', text:'level 3-47-11-4'} +, {id:'47-11-5', text:'level 3-47-11-5'} +, {id:'47-11-6', text:'level 3-47-11-6'} +, {id:'47-11-7', text:'level 3-47-11-7'} +, {id:'47-11-8', text:'level 3-47-11-8'} +, {id:'47-11-9', text:'level 3-47-11-9'} +]} +, {id:'47-12-10', text:'level 2-47-12', item:[ + {id:'47-12-0', text:'level 3-47-12-0'} +, {id:'47-12-1', text:'level 3-47-12-1'} +, {id:'47-12-2', text:'level 3-47-12-2'} +, {id:'47-12-3', text:'level 3-47-12-3'} +, {id:'47-12-4', text:'level 3-47-12-4'} +, {id:'47-12-5', text:'level 3-47-12-5'} +, {id:'47-12-6', text:'level 3-47-12-6'} +, {id:'47-12-7', text:'level 3-47-12-7'} +, {id:'47-12-8', text:'level 3-47-12-8'} +, {id:'47-12-9', text:'level 3-47-12-9'} +]} +, {id:'47-13-10', text:'level 2-47-13', item:[ + {id:'47-13-0', text:'level 3-47-13-0'} +, {id:'47-13-1', text:'level 3-47-13-1'} +, {id:'47-13-2', text:'level 3-47-13-2'} +, {id:'47-13-3', text:'level 3-47-13-3'} +, {id:'47-13-4', text:'level 3-47-13-4'} +, {id:'47-13-5', text:'level 3-47-13-5'} +, {id:'47-13-6', text:'level 3-47-13-6'} +, {id:'47-13-7', text:'level 3-47-13-7'} +, {id:'47-13-8', text:'level 3-47-13-8'} +, {id:'47-13-9', text:'level 3-47-13-9'} +]} +, {id:'47-14-10', text:'level 2-47-14', item:[ + {id:'47-14-0', text:'level 3-47-14-0'} +, {id:'47-14-1', text:'level 3-47-14-1'} +, {id:'47-14-2', text:'level 3-47-14-2'} +, {id:'47-14-3', text:'level 3-47-14-3'} +, {id:'47-14-4', text:'level 3-47-14-4'} +, {id:'47-14-5', text:'level 3-47-14-5'} +, {id:'47-14-6', text:'level 3-47-14-6'} +, {id:'47-14-7', text:'level 3-47-14-7'} +, {id:'47-14-8', text:'level 3-47-14-8'} +, {id:'47-14-9', text:'level 3-47-14-9'} +]} +, {id:'47-15-10', text:'level 2-47-15', item:[ + {id:'47-15-0', text:'level 3-47-15-0'} +, {id:'47-15-1', text:'level 3-47-15-1'} +, {id:'47-15-2', text:'level 3-47-15-2'} +, {id:'47-15-3', text:'level 3-47-15-3'} +, {id:'47-15-4', text:'level 3-47-15-4'} +, {id:'47-15-5', text:'level 3-47-15-5'} +, {id:'47-15-6', text:'level 3-47-15-6'} +, {id:'47-15-7', text:'level 3-47-15-7'} +, {id:'47-15-8', text:'level 3-47-15-8'} +, {id:'47-15-9', text:'level 3-47-15-9'} +]} +, {id:'47-16-10', text:'level 2-47-16', item:[ + {id:'47-16-0', text:'level 3-47-16-0'} +, {id:'47-16-1', text:'level 3-47-16-1'} +, {id:'47-16-2', text:'level 3-47-16-2'} +, {id:'47-16-3', text:'level 3-47-16-3'} +, {id:'47-16-4', text:'level 3-47-16-4'} +, {id:'47-16-5', text:'level 3-47-16-5'} +, {id:'47-16-6', text:'level 3-47-16-6'} +, {id:'47-16-7', text:'level 3-47-16-7'} +, {id:'47-16-8', text:'level 3-47-16-8'} +, {id:'47-16-9', text:'level 3-47-16-9'} +]} +, {id:'47-17-10', text:'level 2-47-17', item:[ + {id:'47-17-0', text:'level 3-47-17-0'} +, {id:'47-17-1', text:'level 3-47-17-1'} +, {id:'47-17-2', text:'level 3-47-17-2'} +, {id:'47-17-3', text:'level 3-47-17-3'} +, {id:'47-17-4', text:'level 3-47-17-4'} +, {id:'47-17-5', text:'level 3-47-17-5'} +, {id:'47-17-6', text:'level 3-47-17-6'} +, {id:'47-17-7', text:'level 3-47-17-7'} +, {id:'47-17-8', text:'level 3-47-17-8'} +, {id:'47-17-9', text:'level 3-47-17-9'} +]} +, {id:'47-18-10', text:'level 2-47-18', item:[ + {id:'47-18-0', text:'level 3-47-18-0'} +, {id:'47-18-1', text:'level 3-47-18-1'} +, {id:'47-18-2', text:'level 3-47-18-2'} +, {id:'47-18-3', text:'level 3-47-18-3'} +, {id:'47-18-4', text:'level 3-47-18-4'} +, {id:'47-18-5', text:'level 3-47-18-5'} +, {id:'47-18-6', text:'level 3-47-18-6'} +, {id:'47-18-7', text:'level 3-47-18-7'} +, {id:'47-18-8', text:'level 3-47-18-8'} +, {id:'47-18-9', text:'level 3-47-18-9'} +]} +, {id:'47-19-10', text:'level 2-47-19', item:[ + {id:'47-19-0', text:'level 3-47-19-0'} +, {id:'47-19-1', text:'level 3-47-19-1'} +, {id:'47-19-2', text:'level 3-47-19-2'} +, {id:'47-19-3', text:'level 3-47-19-3'} +, {id:'47-19-4', text:'level 3-47-19-4'} +, {id:'47-19-5', text:'level 3-47-19-5'} +, {id:'47-19-6', text:'level 3-47-19-6'} +, {id:'47-19-7', text:'level 3-47-19-7'} +, {id:'47-19-8', text:'level 3-47-19-8'} +, {id:'47-19-9', text:'level 3-47-19-9'} +]} +]} +,{id:'48-20-10', text:'level 1-48', item:[ + {id:'48-0-10', text:'level 2-48-0', item:[ + {id:'48-0-0', text:'level 3-48-0-0'} +, {id:'48-0-1', text:'level 3-48-0-1'} +, {id:'48-0-2', text:'level 3-48-0-2'} +, {id:'48-0-3', text:'level 3-48-0-3'} +, {id:'48-0-4', text:'level 3-48-0-4'} +, {id:'48-0-5', text:'level 3-48-0-5'} +, {id:'48-0-6', text:'level 3-48-0-6'} +, {id:'48-0-7', text:'level 3-48-0-7'} +, {id:'48-0-8', text:'level 3-48-0-8'} +, {id:'48-0-9', text:'level 3-48-0-9'} +]} +, {id:'48-1-10', text:'level 2-48-1', item:[ + {id:'48-1-0', text:'level 3-48-1-0'} +, {id:'48-1-1', text:'level 3-48-1-1'} +, {id:'48-1-2', text:'level 3-48-1-2'} +, {id:'48-1-3', text:'level 3-48-1-3'} +, {id:'48-1-4', text:'level 3-48-1-4'} +, {id:'48-1-5', text:'level 3-48-1-5'} +, {id:'48-1-6', text:'level 3-48-1-6'} +, {id:'48-1-7', text:'level 3-48-1-7'} +, {id:'48-1-8', text:'level 3-48-1-8'} +, {id:'48-1-9', text:'level 3-48-1-9'} +]} +, {id:'48-2-10', text:'level 2-48-2', item:[ + {id:'48-2-0', text:'level 3-48-2-0'} +, {id:'48-2-1', text:'level 3-48-2-1'} +, {id:'48-2-2', text:'level 3-48-2-2'} +, {id:'48-2-3', text:'level 3-48-2-3'} +, {id:'48-2-4', text:'level 3-48-2-4'} +, {id:'48-2-5', text:'level 3-48-2-5'} +, {id:'48-2-6', text:'level 3-48-2-6'} +, {id:'48-2-7', text:'level 3-48-2-7'} +, {id:'48-2-8', text:'level 3-48-2-8'} +, {id:'48-2-9', text:'level 3-48-2-9'} +]} +, {id:'48-3-10', text:'level 2-48-3', item:[ + {id:'48-3-0', text:'level 3-48-3-0'} +, {id:'48-3-1', text:'level 3-48-3-1'} +, {id:'48-3-2', text:'level 3-48-3-2'} +, {id:'48-3-3', text:'level 3-48-3-3'} +, {id:'48-3-4', text:'level 3-48-3-4'} +, {id:'48-3-5', text:'level 3-48-3-5'} +, {id:'48-3-6', text:'level 3-48-3-6'} +, {id:'48-3-7', text:'level 3-48-3-7'} +, {id:'48-3-8', text:'level 3-48-3-8'} +, {id:'48-3-9', text:'level 3-48-3-9'} +]} +, {id:'48-4-10', text:'level 2-48-4', item:[ + {id:'48-4-0', text:'level 3-48-4-0'} +, {id:'48-4-1', text:'level 3-48-4-1'} +, {id:'48-4-2', text:'level 3-48-4-2'} +, {id:'48-4-3', text:'level 3-48-4-3'} +, {id:'48-4-4', text:'level 3-48-4-4'} +, {id:'48-4-5', text:'level 3-48-4-5'} +, {id:'48-4-6', text:'level 3-48-4-6'} +, {id:'48-4-7', text:'level 3-48-4-7'} +, {id:'48-4-8', text:'level 3-48-4-8'} +, {id:'48-4-9', text:'level 3-48-4-9'} +]} +, {id:'48-5-10', text:'level 2-48-5', item:[ + {id:'48-5-0', text:'level 3-48-5-0'} +, {id:'48-5-1', text:'level 3-48-5-1'} +, {id:'48-5-2', text:'level 3-48-5-2'} +, {id:'48-5-3', text:'level 3-48-5-3'} +, {id:'48-5-4', text:'level 3-48-5-4'} +, {id:'48-5-5', text:'level 3-48-5-5'} +, {id:'48-5-6', text:'level 3-48-5-6'} +, {id:'48-5-7', text:'level 3-48-5-7'} +, {id:'48-5-8', text:'level 3-48-5-8'} +, {id:'48-5-9', text:'level 3-48-5-9'} +]} +, {id:'48-6-10', text:'level 2-48-6', item:[ + {id:'48-6-0', text:'level 3-48-6-0'} +, {id:'48-6-1', text:'level 3-48-6-1'} +, {id:'48-6-2', text:'level 3-48-6-2'} +, {id:'48-6-3', text:'level 3-48-6-3'} +, {id:'48-6-4', text:'level 3-48-6-4'} +, {id:'48-6-5', text:'level 3-48-6-5'} +, {id:'48-6-6', text:'level 3-48-6-6'} +, {id:'48-6-7', text:'level 3-48-6-7'} +, {id:'48-6-8', text:'level 3-48-6-8'} +, {id:'48-6-9', text:'level 3-48-6-9'} +]} +, {id:'48-7-10', text:'level 2-48-7', item:[ + {id:'48-7-0', text:'level 3-48-7-0'} +, {id:'48-7-1', text:'level 3-48-7-1'} +, {id:'48-7-2', text:'level 3-48-7-2'} +, {id:'48-7-3', text:'level 3-48-7-3'} +, {id:'48-7-4', text:'level 3-48-7-4'} +, {id:'48-7-5', text:'level 3-48-7-5'} +, {id:'48-7-6', text:'level 3-48-7-6'} +, {id:'48-7-7', text:'level 3-48-7-7'} +, {id:'48-7-8', text:'level 3-48-7-8'} +, {id:'48-7-9', text:'level 3-48-7-9'} +]} +, {id:'48-8-10', text:'level 2-48-8', item:[ + {id:'48-8-0', text:'level 3-48-8-0'} +, {id:'48-8-1', text:'level 3-48-8-1'} +, {id:'48-8-2', text:'level 3-48-8-2'} +, {id:'48-8-3', text:'level 3-48-8-3'} +, {id:'48-8-4', text:'level 3-48-8-4'} +, {id:'48-8-5', text:'level 3-48-8-5'} +, {id:'48-8-6', text:'level 3-48-8-6'} +, {id:'48-8-7', text:'level 3-48-8-7'} +, {id:'48-8-8', text:'level 3-48-8-8'} +, {id:'48-8-9', text:'level 3-48-8-9'} +]} +, {id:'48-9-10', text:'level 2-48-9', item:[ + {id:'48-9-0', text:'level 3-48-9-0'} +, {id:'48-9-1', text:'level 3-48-9-1'} +, {id:'48-9-2', text:'level 3-48-9-2'} +, {id:'48-9-3', text:'level 3-48-9-3'} +, {id:'48-9-4', text:'level 3-48-9-4'} +, {id:'48-9-5', text:'level 3-48-9-5'} +, {id:'48-9-6', text:'level 3-48-9-6'} +, {id:'48-9-7', text:'level 3-48-9-7'} +, {id:'48-9-8', text:'level 3-48-9-8'} +, {id:'48-9-9', text:'level 3-48-9-9'} +]} +, {id:'48-10-10', text:'level 2-48-10', item:[ + {id:'48-10-0', text:'level 3-48-10-0'} +, {id:'48-10-1', text:'level 3-48-10-1'} +, {id:'48-10-2', text:'level 3-48-10-2'} +, {id:'48-10-3', text:'level 3-48-10-3'} +, {id:'48-10-4', text:'level 3-48-10-4'} +, {id:'48-10-5', text:'level 3-48-10-5'} +, {id:'48-10-6', text:'level 3-48-10-6'} +, {id:'48-10-7', text:'level 3-48-10-7'} +, {id:'48-10-8', text:'level 3-48-10-8'} +, {id:'48-10-9', text:'level 3-48-10-9'} +]} +, {id:'48-11-10', text:'level 2-48-11', item:[ + {id:'48-11-0', text:'level 3-48-11-0'} +, {id:'48-11-1', text:'level 3-48-11-1'} +, {id:'48-11-2', text:'level 3-48-11-2'} +, {id:'48-11-3', text:'level 3-48-11-3'} +, {id:'48-11-4', text:'level 3-48-11-4'} +, {id:'48-11-5', text:'level 3-48-11-5'} +, {id:'48-11-6', text:'level 3-48-11-6'} +, {id:'48-11-7', text:'level 3-48-11-7'} +, {id:'48-11-8', text:'level 3-48-11-8'} +, {id:'48-11-9', text:'level 3-48-11-9'} +]} +, {id:'48-12-10', text:'level 2-48-12', item:[ + {id:'48-12-0', text:'level 3-48-12-0'} +, {id:'48-12-1', text:'level 3-48-12-1'} +, {id:'48-12-2', text:'level 3-48-12-2'} +, {id:'48-12-3', text:'level 3-48-12-3'} +, {id:'48-12-4', text:'level 3-48-12-4'} +, {id:'48-12-5', text:'level 3-48-12-5'} +, {id:'48-12-6', text:'level 3-48-12-6'} +, {id:'48-12-7', text:'level 3-48-12-7'} +, {id:'48-12-8', text:'level 3-48-12-8'} +, {id:'48-12-9', text:'level 3-48-12-9'} +]} +, {id:'48-13-10', text:'level 2-48-13', item:[ + {id:'48-13-0', text:'level 3-48-13-0'} +, {id:'48-13-1', text:'level 3-48-13-1'} +, {id:'48-13-2', text:'level 3-48-13-2'} +, {id:'48-13-3', text:'level 3-48-13-3'} +, {id:'48-13-4', text:'level 3-48-13-4'} +, {id:'48-13-5', text:'level 3-48-13-5'} +, {id:'48-13-6', text:'level 3-48-13-6'} +, {id:'48-13-7', text:'level 3-48-13-7'} +, {id:'48-13-8', text:'level 3-48-13-8'} +, {id:'48-13-9', text:'level 3-48-13-9'} +]} +, {id:'48-14-10', text:'level 2-48-14', item:[ + {id:'48-14-0', text:'level 3-48-14-0'} +, {id:'48-14-1', text:'level 3-48-14-1'} +, {id:'48-14-2', text:'level 3-48-14-2'} +, {id:'48-14-3', text:'level 3-48-14-3'} +, {id:'48-14-4', text:'level 3-48-14-4'} +, {id:'48-14-5', text:'level 3-48-14-5'} +, {id:'48-14-6', text:'level 3-48-14-6'} +, {id:'48-14-7', text:'level 3-48-14-7'} +, {id:'48-14-8', text:'level 3-48-14-8'} +, {id:'48-14-9', text:'level 3-48-14-9'} +]} +, {id:'48-15-10', text:'level 2-48-15', item:[ + {id:'48-15-0', text:'level 3-48-15-0'} +, {id:'48-15-1', text:'level 3-48-15-1'} +, {id:'48-15-2', text:'level 3-48-15-2'} +, {id:'48-15-3', text:'level 3-48-15-3'} +, {id:'48-15-4', text:'level 3-48-15-4'} +, {id:'48-15-5', text:'level 3-48-15-5'} +, {id:'48-15-6', text:'level 3-48-15-6'} +, {id:'48-15-7', text:'level 3-48-15-7'} +, {id:'48-15-8', text:'level 3-48-15-8'} +, {id:'48-15-9', text:'level 3-48-15-9'} +]} +, {id:'48-16-10', text:'level 2-48-16', item:[ + {id:'48-16-0', text:'level 3-48-16-0'} +, {id:'48-16-1', text:'level 3-48-16-1'} +, {id:'48-16-2', text:'level 3-48-16-2'} +, {id:'48-16-3', text:'level 3-48-16-3'} +, {id:'48-16-4', text:'level 3-48-16-4'} +, {id:'48-16-5', text:'level 3-48-16-5'} +, {id:'48-16-6', text:'level 3-48-16-6'} +, {id:'48-16-7', text:'level 3-48-16-7'} +, {id:'48-16-8', text:'level 3-48-16-8'} +, {id:'48-16-9', text:'level 3-48-16-9'} +]} +, {id:'48-17-10', text:'level 2-48-17', item:[ + {id:'48-17-0', text:'level 3-48-17-0'} +, {id:'48-17-1', text:'level 3-48-17-1'} +, {id:'48-17-2', text:'level 3-48-17-2'} +, {id:'48-17-3', text:'level 3-48-17-3'} +, {id:'48-17-4', text:'level 3-48-17-4'} +, {id:'48-17-5', text:'level 3-48-17-5'} +, {id:'48-17-6', text:'level 3-48-17-6'} +, {id:'48-17-7', text:'level 3-48-17-7'} +, {id:'48-17-8', text:'level 3-48-17-8'} +, {id:'48-17-9', text:'level 3-48-17-9'} +]} +, {id:'48-18-10', text:'level 2-48-18', item:[ + {id:'48-18-0', text:'level 3-48-18-0'} +, {id:'48-18-1', text:'level 3-48-18-1'} +, {id:'48-18-2', text:'level 3-48-18-2'} +, {id:'48-18-3', text:'level 3-48-18-3'} +, {id:'48-18-4', text:'level 3-48-18-4'} +, {id:'48-18-5', text:'level 3-48-18-5'} +, {id:'48-18-6', text:'level 3-48-18-6'} +, {id:'48-18-7', text:'level 3-48-18-7'} +, {id:'48-18-8', text:'level 3-48-18-8'} +, {id:'48-18-9', text:'level 3-48-18-9'} +]} +, {id:'48-19-10', text:'level 2-48-19', item:[ + {id:'48-19-0', text:'level 3-48-19-0'} +, {id:'48-19-1', text:'level 3-48-19-1'} +, {id:'48-19-2', text:'level 3-48-19-2'} +, {id:'48-19-3', text:'level 3-48-19-3'} +, {id:'48-19-4', text:'level 3-48-19-4'} +, {id:'48-19-5', text:'level 3-48-19-5'} +, {id:'48-19-6', text:'level 3-48-19-6'} +, {id:'48-19-7', text:'level 3-48-19-7'} +, {id:'48-19-8', text:'level 3-48-19-8'} +, {id:'48-19-9', text:'level 3-48-19-9'} +]} +]} +,{id:'49-20-10', text:'level 1-49', item:[ + {id:'49-0-10', text:'level 2-49-0', item:[ + {id:'49-0-0', text:'level 3-49-0-0'} +, {id:'49-0-1', text:'level 3-49-0-1'} +, {id:'49-0-2', text:'level 3-49-0-2'} +, {id:'49-0-3', text:'level 3-49-0-3'} +, {id:'49-0-4', text:'level 3-49-0-4'} +, {id:'49-0-5', text:'level 3-49-0-5'} +, {id:'49-0-6', text:'level 3-49-0-6'} +, {id:'49-0-7', text:'level 3-49-0-7'} +, {id:'49-0-8', text:'level 3-49-0-8'} +, {id:'49-0-9', text:'level 3-49-0-9'} +]} +, {id:'49-1-10', text:'level 2-49-1', item:[ + {id:'49-1-0', text:'level 3-49-1-0'} +, {id:'49-1-1', text:'level 3-49-1-1'} +, {id:'49-1-2', text:'level 3-49-1-2'} +, {id:'49-1-3', text:'level 3-49-1-3'} +, {id:'49-1-4', text:'level 3-49-1-4'} +, {id:'49-1-5', text:'level 3-49-1-5'} +, {id:'49-1-6', text:'level 3-49-1-6'} +, {id:'49-1-7', text:'level 3-49-1-7'} +, {id:'49-1-8', text:'level 3-49-1-8'} +, {id:'49-1-9', text:'level 3-49-1-9'} +]} +, {id:'49-2-10', text:'level 2-49-2', item:[ + {id:'49-2-0', text:'level 3-49-2-0'} +, {id:'49-2-1', text:'level 3-49-2-1'} +, {id:'49-2-2', text:'level 3-49-2-2'} +, {id:'49-2-3', text:'level 3-49-2-3'} +, {id:'49-2-4', text:'level 3-49-2-4'} +, {id:'49-2-5', text:'level 3-49-2-5'} +, {id:'49-2-6', text:'level 3-49-2-6'} +, {id:'49-2-7', text:'level 3-49-2-7'} +, {id:'49-2-8', text:'level 3-49-2-8'} +, {id:'49-2-9', text:'level 3-49-2-9'} +]} +, {id:'49-3-10', text:'level 2-49-3', item:[ + {id:'49-3-0', text:'level 3-49-3-0'} +, {id:'49-3-1', text:'level 3-49-3-1'} +, {id:'49-3-2', text:'level 3-49-3-2'} +, {id:'49-3-3', text:'level 3-49-3-3'} +, {id:'49-3-4', text:'level 3-49-3-4'} +, {id:'49-3-5', text:'level 3-49-3-5'} +, {id:'49-3-6', text:'level 3-49-3-6'} +, {id:'49-3-7', text:'level 3-49-3-7'} +, {id:'49-3-8', text:'level 3-49-3-8'} +, {id:'49-3-9', text:'level 3-49-3-9'} +]} +, {id:'49-4-10', text:'level 2-49-4', item:[ + {id:'49-4-0', text:'level 3-49-4-0'} +, {id:'49-4-1', text:'level 3-49-4-1'} +, {id:'49-4-2', text:'level 3-49-4-2'} +, {id:'49-4-3', text:'level 3-49-4-3'} +, {id:'49-4-4', text:'level 3-49-4-4'} +, {id:'49-4-5', text:'level 3-49-4-5'} +, {id:'49-4-6', text:'level 3-49-4-6'} +, {id:'49-4-7', text:'level 3-49-4-7'} +, {id:'49-4-8', text:'level 3-49-4-8'} +, {id:'49-4-9', text:'level 3-49-4-9'} +]} +, {id:'49-5-10', text:'level 2-49-5', item:[ + {id:'49-5-0', text:'level 3-49-5-0'} +, {id:'49-5-1', text:'level 3-49-5-1'} +, {id:'49-5-2', text:'level 3-49-5-2'} +, {id:'49-5-3', text:'level 3-49-5-3'} +, {id:'49-5-4', text:'level 3-49-5-4'} +, {id:'49-5-5', text:'level 3-49-5-5'} +, {id:'49-5-6', text:'level 3-49-5-6'} +, {id:'49-5-7', text:'level 3-49-5-7'} +, {id:'49-5-8', text:'level 3-49-5-8'} +, {id:'49-5-9', text:'level 3-49-5-9'} +]} +, {id:'49-6-10', text:'level 2-49-6', item:[ + {id:'49-6-0', text:'level 3-49-6-0'} +, {id:'49-6-1', text:'level 3-49-6-1'} +, {id:'49-6-2', text:'level 3-49-6-2'} +, {id:'49-6-3', text:'level 3-49-6-3'} +, {id:'49-6-4', text:'level 3-49-6-4'} +, {id:'49-6-5', text:'level 3-49-6-5'} +, {id:'49-6-6', text:'level 3-49-6-6'} +, {id:'49-6-7', text:'level 3-49-6-7'} +, {id:'49-6-8', text:'level 3-49-6-8'} +, {id:'49-6-9', text:'level 3-49-6-9'} +]} +, {id:'49-7-10', text:'level 2-49-7', item:[ + {id:'49-7-0', text:'level 3-49-7-0'} +, {id:'49-7-1', text:'level 3-49-7-1'} +, {id:'49-7-2', text:'level 3-49-7-2'} +, {id:'49-7-3', text:'level 3-49-7-3'} +, {id:'49-7-4', text:'level 3-49-7-4'} +, {id:'49-7-5', text:'level 3-49-7-5'} +, {id:'49-7-6', text:'level 3-49-7-6'} +, {id:'49-7-7', text:'level 3-49-7-7'} +, {id:'49-7-8', text:'level 3-49-7-8'} +, {id:'49-7-9', text:'level 3-49-7-9'} +]} +, {id:'49-8-10', text:'level 2-49-8', item:[ + {id:'49-8-0', text:'level 3-49-8-0'} +, {id:'49-8-1', text:'level 3-49-8-1'} +, {id:'49-8-2', text:'level 3-49-8-2'} +, {id:'49-8-3', text:'level 3-49-8-3'} +, {id:'49-8-4', text:'level 3-49-8-4'} +, {id:'49-8-5', text:'level 3-49-8-5'} +, {id:'49-8-6', text:'level 3-49-8-6'} +, {id:'49-8-7', text:'level 3-49-8-7'} +, {id:'49-8-8', text:'level 3-49-8-8'} +, {id:'49-8-9', text:'level 3-49-8-9'} +]} +, {id:'49-9-10', text:'level 2-49-9', item:[ + {id:'49-9-0', text:'level 3-49-9-0'} +, {id:'49-9-1', text:'level 3-49-9-1'} +, {id:'49-9-2', text:'level 3-49-9-2'} +, {id:'49-9-3', text:'level 3-49-9-3'} +, {id:'49-9-4', text:'level 3-49-9-4'} +, {id:'49-9-5', text:'level 3-49-9-5'} +, {id:'49-9-6', text:'level 3-49-9-6'} +, {id:'49-9-7', text:'level 3-49-9-7'} +, {id:'49-9-8', text:'level 3-49-9-8'} +, {id:'49-9-9', text:'level 3-49-9-9'} +]} +, {id:'49-10-10', text:'level 2-49-10', item:[ + {id:'49-10-0', text:'level 3-49-10-0'} +, {id:'49-10-1', text:'level 3-49-10-1'} +, {id:'49-10-2', text:'level 3-49-10-2'} +, {id:'49-10-3', text:'level 3-49-10-3'} +, {id:'49-10-4', text:'level 3-49-10-4'} +, {id:'49-10-5', text:'level 3-49-10-5'} +, {id:'49-10-6', text:'level 3-49-10-6'} +, {id:'49-10-7', text:'level 3-49-10-7'} +, {id:'49-10-8', text:'level 3-49-10-8'} +, {id:'49-10-9', text:'level 3-49-10-9'} +]} +, {id:'49-11-10', text:'level 2-49-11', item:[ + {id:'49-11-0', text:'level 3-49-11-0'} +, {id:'49-11-1', text:'level 3-49-11-1'} +, {id:'49-11-2', text:'level 3-49-11-2'} +, {id:'49-11-3', text:'level 3-49-11-3'} +, {id:'49-11-4', text:'level 3-49-11-4'} +, {id:'49-11-5', text:'level 3-49-11-5'} +, {id:'49-11-6', text:'level 3-49-11-6'} +, {id:'49-11-7', text:'level 3-49-11-7'} +, {id:'49-11-8', text:'level 3-49-11-8'} +, {id:'49-11-9', text:'level 3-49-11-9'} +]} +, {id:'49-12-10', text:'level 2-49-12', item:[ + {id:'49-12-0', text:'level 3-49-12-0'} +, {id:'49-12-1', text:'level 3-49-12-1'} +, {id:'49-12-2', text:'level 3-49-12-2'} +, {id:'49-12-3', text:'level 3-49-12-3'} +, {id:'49-12-4', text:'level 3-49-12-4'} +, {id:'49-12-5', text:'level 3-49-12-5'} +, {id:'49-12-6', text:'level 3-49-12-6'} +, {id:'49-12-7', text:'level 3-49-12-7'} +, {id:'49-12-8', text:'level 3-49-12-8'} +, {id:'49-12-9', text:'level 3-49-12-9'} +]} +, {id:'49-13-10', text:'level 2-49-13', item:[ + {id:'49-13-0', text:'level 3-49-13-0'} +, {id:'49-13-1', text:'level 3-49-13-1'} +, {id:'49-13-2', text:'level 3-49-13-2'} +, {id:'49-13-3', text:'level 3-49-13-3'} +, {id:'49-13-4', text:'level 3-49-13-4'} +, {id:'49-13-5', text:'level 3-49-13-5'} +, {id:'49-13-6', text:'level 3-49-13-6'} +, {id:'49-13-7', text:'level 3-49-13-7'} +, {id:'49-13-8', text:'level 3-49-13-8'} +, {id:'49-13-9', text:'level 3-49-13-9'} +]} +, {id:'49-14-10', text:'level 2-49-14', item:[ + {id:'49-14-0', text:'level 3-49-14-0'} +, {id:'49-14-1', text:'level 3-49-14-1'} +, {id:'49-14-2', text:'level 3-49-14-2'} +, {id:'49-14-3', text:'level 3-49-14-3'} +, {id:'49-14-4', text:'level 3-49-14-4'} +, {id:'49-14-5', text:'level 3-49-14-5'} +, {id:'49-14-6', text:'level 3-49-14-6'} +, {id:'49-14-7', text:'level 3-49-14-7'} +, {id:'49-14-8', text:'level 3-49-14-8'} +, {id:'49-14-9', text:'level 3-49-14-9'} +]} +, {id:'49-15-10', text:'level 2-49-15', item:[ + {id:'49-15-0', text:'level 3-49-15-0'} +, {id:'49-15-1', text:'level 3-49-15-1'} +, {id:'49-15-2', text:'level 3-49-15-2'} +, {id:'49-15-3', text:'level 3-49-15-3'} +, {id:'49-15-4', text:'level 3-49-15-4'} +, {id:'49-15-5', text:'level 3-49-15-5'} +, {id:'49-15-6', text:'level 3-49-15-6'} +, {id:'49-15-7', text:'level 3-49-15-7'} +, {id:'49-15-8', text:'level 3-49-15-8'} +, {id:'49-15-9', text:'level 3-49-15-9'} +]} +, {id:'49-16-10', text:'level 2-49-16', item:[ + {id:'49-16-0', text:'level 3-49-16-0'} +, {id:'49-16-1', text:'level 3-49-16-1'} +, {id:'49-16-2', text:'level 3-49-16-2'} +, {id:'49-16-3', text:'level 3-49-16-3'} +, {id:'49-16-4', text:'level 3-49-16-4'} +, {id:'49-16-5', text:'level 3-49-16-5'} +, {id:'49-16-6', text:'level 3-49-16-6'} +, {id:'49-16-7', text:'level 3-49-16-7'} +, {id:'49-16-8', text:'level 3-49-16-8'} +, {id:'49-16-9', text:'level 3-49-16-9'} +]} +, {id:'49-17-10', text:'level 2-49-17', item:[ + {id:'49-17-0', text:'level 3-49-17-0'} +, {id:'49-17-1', text:'level 3-49-17-1'} +, {id:'49-17-2', text:'level 3-49-17-2'} +, {id:'49-17-3', text:'level 3-49-17-3'} +, {id:'49-17-4', text:'level 3-49-17-4'} +, {id:'49-17-5', text:'level 3-49-17-5'} +, {id:'49-17-6', text:'level 3-49-17-6'} +, {id:'49-17-7', text:'level 3-49-17-7'} +, {id:'49-17-8', text:'level 3-49-17-8'} +, {id:'49-17-9', text:'level 3-49-17-9'} +]} +, {id:'49-18-10', text:'level 2-49-18', item:[ + {id:'49-18-0', text:'level 3-49-18-0'} +, {id:'49-18-1', text:'level 3-49-18-1'} +, {id:'49-18-2', text:'level 3-49-18-2'} +, {id:'49-18-3', text:'level 3-49-18-3'} +, {id:'49-18-4', text:'level 3-49-18-4'} +, {id:'49-18-5', text:'level 3-49-18-5'} +, {id:'49-18-6', text:'level 3-49-18-6'} +, {id:'49-18-7', text:'level 3-49-18-7'} +, {id:'49-18-8', text:'level 3-49-18-8'} +, {id:'49-18-9', text:'level 3-49-18-9'} +]} +, {id:'49-19-10', text:'level 2-49-19', item:[ + {id:'49-19-0', text:'level 3-49-19-0'} +, {id:'49-19-1', text:'level 3-49-19-1'} +, {id:'49-19-2', text:'level 3-49-19-2'} +, {id:'49-19-3', text:'level 3-49-19-3'} +, {id:'49-19-4', text:'level 3-49-19-4'} +, {id:'49-19-5', text:'level 3-49-19-5'} +, {id:'49-19-6', text:'level 3-49-19-6'} +, {id:'49-19-7', text:'level 3-49-19-7'} +, {id:'49-19-8', text:'level 3-49-19-8'} +, {id:'49-19-9', text:'level 3-49-19-9'} +]} +]} +]} diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/big_xml.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/big_xml.xml new file mode 100755 index 0000000000..cb8846422e --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/big_xml.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/config.php b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/config.php new file mode 100755 index 0000000000..408316bbf1 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/config.php @@ -0,0 +1,13 @@ + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/css/style.css b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/css/style.css new file mode 100755 index 0000000000..28b4f6cc1c --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/css/style.css @@ -0,0 +1,484 @@ +/* MAIN STYLES */ + +html { + overflow-x:hidden; + border: none; +} + +body { + margin:1px; + color:#666; + font-family: Tahoma, Arial, Helvetica, Tahoma, serif; + font-size:12px; + overflow-x:hidden; +} + +h5 { + margin:0; + padding:0; +} + +a { + font-family: Tahoma, Arial, Helvetica, serif; + font-size:12px; + color: #058cb6; + text-decoration:none; +} + +a:hover { + text-decoration:underline; +} + +a.navigation img { + margin-bottom:-5px; + padding-right:5px; + border:none; +} + +p { + margin: 20px 0; +} + +ul { + padding-bottom:30px; +} + +h3 { + color:#000; + font-family: Tahoma, Arial, Helvetica, serif; + font-size:21px; + font-weight:normal; + padding-bottom:37px; + margin-top:35px; +} + +h4 { + display:inline-block; + width:100%; + color:#B5B5B5; + font-family: Arial, Helvetica, Tahoma, serif; + font-size:20px; + font-weight:normal; + padding-bottom:20px; +} + +h5 { + color:#666; + font-family: Tahoma, Arial, Helvetica, Tahoma, serif; + font-size:13px; + padding:4px 0 10px 0; + font-weight:bold; +} + +.column { + float:left; + width:24%; +} + + + +/* HEADER */ + +.header { + width:100%; + height: 100px; + background:url("../img/head_bg.png"); +} + +a.logo { + display:block; + margin-left:48px; + height:100px; + width:100px; + background-image:url("../img/logo.png"); + float:left; + outline:none; +} + +.tittle-dhtmlx { + padding: 29px 0 0 121px; + font-family:arial, serif; + font-size:16px; + color:white; + float:left; + cursor:default; +} + +/* Search */ + +.search-field { + position:absolute; + float:right; + right:67px; + top:30px; + min-width: 430px; +} + +.search-field input { + float:left; + width:351px; + height:20px; + background: white url("../img/search-field.png"); + border: none; +} + +.search-field input:hover { + background-position:0 -20px; +} + +input.button { + cursor:pointer; + margin-left:7px; + float:left; + width:70px; + height:20px; + background: white url("../img/search-button.png"); + border: 0; +} + +input.button:hover { + background-position:0 -20px; +} + + + +/* BUTTONS */ + +.buttons { + position:absolute; + width: 154px; + height: 24px; + left: 55px; + top:80px; +} + +.buttons a.doc { + display:block; + height:24px; + width:93px; + background-image:url("../img/doc-button.png"); + float:left; + outline:none; +} + +.buttons a.doc_inact { + display:block; + height:24px; + width:92px; + background-image:url("../img/doc-button_inact.png"); + float:left; + outline:none; +} + +.buttons a.doc_inact:hover { + background-position:0 -24px; +} + +.buttons a.sample { + display:block; + height:24px; + width:62px; + background-image:url("../img/samples-but.png"); + float:left; + outline:none; +} + +.buttons a.sample_inact { + display:block; + height:24px; + width:55px; + background-image:url("../img/samples-but_inact.png"); + float:left; + outline:none; +} + +.buttons a.sample_inact:hover { + background-position:0 -24px; +} + + +/* CONTENT */ + +.content { + margin: 30px 63px 0 63px; +} + +.content li { + list-style:none; + height:22px; +} + +li img { + margin-bottom:-5px; + padding-right: 7px; +} + +.line { + margin: 0; + padding: 1px; + background: url("../img/border-dotted.gif") repeat-x top; +} + + +/* NAVIGATION */ + +.navigation-div { + display:block; + height:35px; + width:100%; + margin-bottom:20px; +} + +a.navigation { + outline:none; + float:left; + display:block; + height:25px; + padding: 2px 10px 0 5px; + border: solid 1px #cccccc; +} + +a.navigation:hover { + background-color: #eaeff4; + border-color: #6699CC; + text-decoration:none; + outline:none; +} + +a.navigation img { + margin-bottom:-5px; + padding-right:5px; + border:none; +} + +.arrow { + float:left; + height:23px; + background:url("../img/arrow.gif"); + margin: 3px 3px; + width:8px; +} + +a.view-source { + border: dashed 1px #cccccc; +} + + +/* LOGOS */ + +.big_logo { + display:block; + width:200px; + height:54px; + overflow:hidden; + line-height:1000px; + margin: 40px 0 20px 0; +} + +.logo_grid{ + background:transparent url("../img/logo_grid.gif") no-repeat; +} +.logo_treegrid{ + background:transparent url("../img/logo_treegrid.gif") no-repeat; +} +.logo_tree{ + background:transparent url("../img/logo_tree.gif") no-repeat; +} +.logo_layout{ + background:transparent url("../img/logo_layout.gif") no-repeat; +} +.logo_menu{ + background:transparent url("../img/logo_menu.gif") no-repeat; +} +.logo_toolbar{ + background:transparent url("../img/logo_toolbar.gif") no-repeat; +} +.logo_windows{ + background:transparent url("../img/logo_windows.gif") no-repeat; +} +.logo_calendar{ + background:transparent url("../img/logo_calendar.gif") no-repeat; +} +.logo_slider{ + background:transparent url("../img/logo_slider.gif") no-repeat; +} +.logo_scheduler{ + background:transparent url("../img/logo_scheduler.gif") no-repeat; +} +.logo_colorpicker{ + background:transparent url("../img/logo_colorpicker.gif") no-repeat; +} +.logo_combo{ + background:transparent url("../img/logo_combo.gif") no-repeat; +} +.logo_tabbar{ + background:transparent url("../img/logo_tabbar.gif") no-repeat; +} +.logo_accordion{ + background:transparent url("../img/logo_accordion.gif") no-repeat; +} +.logo_folders{ + background:transparent url("../img/logo_folders.gif") no-repeat; +} +.logo_editor{ + background:transparent url("../img/logo_editor.gif") no-repeat; +} +.logo_ajax{ + background:transparent url("../img/logo_ajax.gif") no-repeat; +} +.logo_gantt{ + background:transparent url("../img/logo_gantt.gif") no-repeat; +} +.logo_chart{ + background:transparent url("../img/logo_chart.gif") no-repeat; +} +.logo_dataview{ + background:transparent url("../img/logo_dataview.gif") no-repeat; +} +.logo_form{ + background:transparent url("../img/logo_form.gif") no-repeat; +} + +/* Topics */ + +.topics li { + background:url("../icons/old.gif") no-repeat; + padding-left: 25px; + line-height:22px; +} + +.samples li { + background:url("../icons/file.gif") no-repeat; +} + +ul.list { + margin-left:40px; +} + +.list li { + list-style-image:url("../icons/bullet.gif"); +} + +.component-demo-placeholder { + width:602px; + height:252px; + background:url("../img/grid-placeholder.gif"); +} + + +/* FOOTER */ + +.footer { + display:block; + float:left; + width:100%; + height:64px; + background: white url("../img/border-dotted-ccc.gif") repeat-x; +} + +.footer-logo { + float:left; + width:55px; + height:24px; + background:url("../img/footer-logo.gif"); + margin: 20px 20px 20px 63px; +} + +.copyright { + float:left; + margin-top:18px; + font-size:11px; +} + +/* CODE */ + +.source { + width:100%; + background:url("../img/source-bg.gif"); + border-top: dashed 3px #ccc; + border-bottom: dotted 1px #ccc; + margin-top:20px; +} + +.code { + margin:20px 63px; +} + +.teg { + height:40px; + color:#ccc; + font-size:30px; + font-family: Tahoma, Arial, Helvetica, Tahoma, serif; + background:url("../img/source.gif") no-repeat 0 22px; + padding: 10px 0 0 63px; +} + +/*colorizer*/ + + +.hl-default { + color: Black; +} +.hl-code { + color: Gray; +} +.hl-brackets { + color: Olive; +} +.hl-comment { + color: Orange; +} +.hl-quotes { + color: Darkred; +} +.hl-string { + color: Red; +} + +.hl-identifier { + color: Blue; +} + +.hl-identifier a{ + font-family: "Courier New"; + font-size: 11px; + color: Blue; + text-decoration: underline; +} + +.hl-builtin { + color: Teal; +} +.hl-reserved { + color: Green; +} +.hl-inlinedoc { + color: Blue; +} +.hl-var { + color: Darkblue; +} +.hl-url { + color: Blue; +} +.hl-special { + color: Navy; +} +.hl-number { + color: Maroon; +} +.hl-inlinetags { + color: Blue; +} +.hl-main { + background: transparent; +} +.hl-gutter { + background-color: #999999; + color: White +} +.hl-table { + font-family: "Courier New"; + font-size: 12px; + border: solid 1px lightgray; +} \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/data.csv b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/data.csv new file mode 100755 index 0000000000..b3b5ac6b9d --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/data.csv @@ -0,0 +1,5 @@ +1,0,start +555,0,middle +1111,0,finish +2,1,child 1 +3,2,child 2 \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/data.js b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/data.js new file mode 100755 index 0000000000..68a70a00c2 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/data.js @@ -0,0 +1,4 @@ +[[1,0,"first"], + [2,0,"middle"], + [3,0,"last"], + [4,2,"child"]] \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/data.json b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/data.json new file mode 100755 index 0000000000..a771c701a9 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/data.json @@ -0,0 +1 @@ +{id:0, item:[{id:1,text:"first"},{id:2, text:"middle", item:[{id:"21", text:"child"}]},{id:3,text:"last"}]} \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/grid.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/grid.xml new file mode 100755 index 0000000000..62fd7d3287 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/grid.xml @@ -0,0 +1,113 @@ + + + + -1500 + A Time to Kill + John Grisham + 12.99 + 1 + 24 + 0 + 05/01/1998 + + + 1000 + Blood and Smoke + Stephen King + 0 + 1 + 24 + 0 + 01/01/2000 + + + -200 + The Rainmaker + John Grisham + 7.99 + 0 + 48 + 0 + 12/01/2001 + + + 350 + The Green Mile + Stephen King + 11.10 + 1 + 24 + 0 + 01/01/1992 + + + 700 + Misery + Stephen King + 7.70 + 0 + na + 0 + 01/01/2003 + + + -1200 + The Dark Half + Stephen King + 0 + 0 + 48 + 0 + 10/30/1999 + + + 1500 + The Partner + John Grisham + 12.99 + 1 + 48 + 1 + 01/01/2005 + + + 500 + It + Stephen King + 9.70 + 0 + na + 0 + 10/15/2001 + + + 400 + Cousin Bette + Honore de Balzac + 0 + 1 + 1 + 0 + 12/01/1991 + + + -100 + Boris Godunov + Alexandr Pushkin + 7.15 + 1 + 1 + 0 + 01/01/1999 + + + -150 + Alice in Wonderland + Lewis Carroll + 4.15 + 1 + 1 + 0 + 01/01/1999 + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/accordion.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/accordion.gif new file mode 100755 index 0000000000..e456fffb44 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/accordion.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/ajax.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/ajax.gif new file mode 100755 index 0000000000..ce5533de09 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/ajax.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/arrow.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/arrow.gif new file mode 100755 index 0000000000..00f1144951 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/arrow.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/bullet.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/bullet.gif new file mode 100755 index 0000000000..cf1706e036 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/bullet.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/calendar.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/calendar.gif new file mode 100755 index 0000000000..2a8bc0e63c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/calendar.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/chart.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/chart.gif new file mode 100755 index 0000000000..359a325f92 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/chart.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/chm.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/chm.gif new file mode 100755 index 0000000000..6516b100ab Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/chm.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/colorpicker.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/colorpicker.gif new file mode 100755 index 0000000000..1992defbed Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/colorpicker.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/combo.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/combo.gif new file mode 100755 index 0000000000..8dba9afe5b Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/combo.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/connector.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/connector.gif new file mode 100755 index 0000000000..62804cbf5e Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/connector.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/dataprocessor.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/dataprocessor.gif new file mode 100755 index 0000000000..35e6c60f9f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/dataprocessor.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/dataview.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/dataview.gif new file mode 100755 index 0000000000..43e2284ca4 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/dataview.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/editor.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/editor.gif new file mode 100755 index 0000000000..ea3c121195 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/editor.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/file.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/file.gif new file mode 100755 index 0000000000..31d23fd447 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/file.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/file_link.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/file_link.gif new file mode 100755 index 0000000000..47f7e84988 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/file_link.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/folders.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/folders.gif new file mode 100755 index 0000000000..f8e02bbde6 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/folders.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/form.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/form.gif new file mode 100755 index 0000000000..d96f5c28da Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/form.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/gantt.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/gantt.gif new file mode 100755 index 0000000000..343f4d5b1f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/gantt.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/grid.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/grid.gif new file mode 100755 index 0000000000..db0832caf1 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/grid.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/layout.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/layout.gif new file mode 100755 index 0000000000..f37427e768 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/layout.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/menu.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/menu.gif new file mode 100755 index 0000000000..2fbd60671c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/menu.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/none.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/none.gif new file mode 100755 index 0000000000..f8a866519c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/none.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/old.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/old.gif new file mode 100755 index 0000000000..680e116e2b Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/old.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/pdf.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/pdf.gif new file mode 100755 index 0000000000..e315235a26 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/pdf.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/scheduler.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/scheduler.gif new file mode 100755 index 0000000000..ea6c9aadd1 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/scheduler.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/slider.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/slider.gif new file mode 100755 index 0000000000..3fab6d659c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/slider.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/source.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/source.gif new file mode 100755 index 0000000000..b226184220 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/source.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/tabbar.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/tabbar.gif new file mode 100755 index 0000000000..8a35665af4 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/tabbar.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/toolbar.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/toolbar.gif new file mode 100755 index 0000000000..92ef2cdbf3 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/toolbar.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/tree.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/tree.gif new file mode 100755 index 0000000000..c290270fba Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/tree.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/treegrid.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/treegrid.gif new file mode 100755 index 0000000000..bb752c8d0a Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/treegrid.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/vault.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/vault.gif new file mode 100755 index 0000000000..c3be39783a Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/vault.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/windows.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/windows.gif new file mode 100755 index 0000000000..a5d59fe593 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/icons/windows.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/blank.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/blank.gif new file mode 100755 index 0000000000..d7ae406713 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/blank.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/blue.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/blue.gif new file mode 100755 index 0000000000..e11f4ebab8 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/blue.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/book.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/book.gif new file mode 100755 index 0000000000..b0ce63a9d1 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/book.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/books_close.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/books_close.gif new file mode 100755 index 0000000000..e4bd9d6fe2 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/books_close.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/books_open.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/books_open.gif new file mode 100755 index 0000000000..020ce728c0 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/books_open.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/close2.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/close2.gif new file mode 100755 index 0000000000..1b9fcaa330 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/close2.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/folderClosed.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/folderClosed.gif new file mode 100755 index 0000000000..1ebe3c977b Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/folderClosed.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/folderOpen.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/folderOpen.gif new file mode 100755 index 0000000000..c193e869f1 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/folderOpen.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/green.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/green.gif new file mode 100755 index 0000000000..315bbbeb7a Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/green.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/iconCheckAll.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/iconCheckAll.gif new file mode 100755 index 0000000000..d90899259b Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/iconCheckAll.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/iconCheckDis.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/iconCheckDis.gif new file mode 100755 index 0000000000..6f0b1c7cf0 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/iconCheckDis.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/iconCheckGray.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/iconCheckGray.gif new file mode 100755 index 0000000000..cb54c0a8f3 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/iconCheckGray.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/iconUncheckAll.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/iconUncheckAll.gif new file mode 100755 index 0000000000..5e54ec5995 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/iconUncheckAll.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/iconUncheckDis.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/iconUncheckDis.gif new file mode 100755 index 0000000000..eec88a7e1b Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/iconUncheckDis.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/item2c.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/item2c.gif new file mode 100755 index 0000000000..920010b03f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/item2c.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/item2o.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/item2o.gif new file mode 100755 index 0000000000..58163b069d Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/item2o.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/leaf.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/leaf.gif new file mode 100755 index 0000000000..1cf40f1e0c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/leaf.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line1.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line1.gif new file mode 100755 index 0000000000..60f2ccb26e Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line1.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line1_rtl.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line1_rtl.gif new file mode 100755 index 0000000000..96db473332 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line1_rtl.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line2.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line2.gif new file mode 100755 index 0000000000..f2d7bdd506 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line2.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line2_rtl.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line2_rtl.gif new file mode 100755 index 0000000000..5e6c6fcf79 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line2_rtl.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line3.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line3.gif new file mode 100755 index 0000000000..d718be218f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line3.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line3_rtl.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line3_rtl.gif new file mode 100755 index 0000000000..df7f5d805b Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line3_rtl.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line4.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line4.gif new file mode 100755 index 0000000000..29285e5986 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line4.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line4_rtl.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line4_rtl.gif new file mode 100755 index 0000000000..6c9745208f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/line4_rtl.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus.gif new file mode 100755 index 0000000000..ef04a54696 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus2.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus2.gif new file mode 100755 index 0000000000..0372294cb9 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus2.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus2_rtl.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus2_rtl.gif new file mode 100755 index 0000000000..521c2bf92e Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus2_rtl.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus3.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus3.gif new file mode 100755 index 0000000000..d928af6394 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus3.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus3_rtl.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus3_rtl.gif new file mode 100755 index 0000000000..837f7c3294 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus3_rtl.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus4.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus4.gif new file mode 100755 index 0000000000..30bc7deecb Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus4.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus4_rtl.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus4_rtl.gif new file mode 100755 index 0000000000..6dd9fbef59 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus4_rtl.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus5.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus5.gif new file mode 100755 index 0000000000..e2e30fcb24 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus5.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus5_rtl.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus5_rtl.gif new file mode 100755 index 0000000000..ae0885b73b Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus5_rtl.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus_ar.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus_ar.gif new file mode 100755 index 0000000000..4428ba1500 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/minus_ar.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/open2.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/open2.gif new file mode 100755 index 0000000000..8881b69894 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/open2.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus.gif new file mode 100755 index 0000000000..abb84bdfbf Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus2.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus2.gif new file mode 100755 index 0000000000..ea2816efce Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus2.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus2_rtl.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus2_rtl.gif new file mode 100755 index 0000000000..f1ba5825bf Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus2_rtl.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus3.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus3.gif new file mode 100755 index 0000000000..cd6967e52b Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus3.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus3_rtl.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus3_rtl.gif new file mode 100755 index 0000000000..b8cad18740 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus3_rtl.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus4.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus4.gif new file mode 100755 index 0000000000..185bd9b704 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus4.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus4_rtl.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus4_rtl.gif new file mode 100755 index 0000000000..ce882e49cf Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus4_rtl.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus5.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus5.gif new file mode 100755 index 0000000000..72fe4e577f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus5.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus5_rtl.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus5_rtl.gif new file mode 100755 index 0000000000..15455b597f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus5_rtl.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus_ar.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus_ar.gif new file mode 100755 index 0000000000..d2fcaf0120 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/plus_ar.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/radio_off.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/radio_off.gif new file mode 100755 index 0000000000..27dc5f9974 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/radio_off.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/radio_on.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/radio_on.gif new file mode 100755 index 0000000000..efd74ee2eb Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/radio_on.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/red.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/red.gif new file mode 100755 index 0000000000..bc09296f5a Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/red.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/white.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/white.gif new file mode 100755 index 0000000000..41dba5868d Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/white.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/yellow.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/yellow.gif new file mode 100755 index 0000000000..83c4c25eab Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/images/yellow.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/6_IE_inside2.png b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/6_IE_inside2.png new file mode 100755 index 0000000000..a0ecd45b96 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/6_IE_inside2.png differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/Thumbs.db b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/Thumbs.db new file mode 100755 index 0000000000..36f7388254 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/Thumbs.db differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/arrow.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/arrow.gif new file mode 100755 index 0000000000..20858cbe43 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/arrow.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/bookmark.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/bookmark.gif new file mode 100755 index 0000000000..01df053daa Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/bookmark.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/border-dotted-ccc.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/border-dotted-ccc.gif new file mode 100755 index 0000000000..a47b6c1eef Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/border-dotted-ccc.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/border-dotted.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/border-dotted.gif new file mode 100755 index 0000000000..565aeafebc Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/border-dotted.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/bullet.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/bullet.gif new file mode 100755 index 0000000000..bd8f792a13 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/bullet.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/doc-button.png b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/doc-button.png new file mode 100755 index 0000000000..9ede7a1492 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/doc-button.png differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/doc-button_inact.png b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/doc-button_inact.png new file mode 100755 index 0000000000..c8642b872f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/doc-button_inact.png differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/footer-bg.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/footer-bg.gif new file mode 100755 index 0000000000..311fa6bd8f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/footer-bg.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/footer-logo.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/footer-logo.gif new file mode 100755 index 0000000000..b153745169 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/footer-logo.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/grid-placeholder.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/grid-placeholder.gif new file mode 100755 index 0000000000..fca1ef0fee Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/grid-placeholder.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/head_bg.png b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/head_bg.png new file mode 100755 index 0000000000..056fc14c7c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/head_bg.png differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo.png b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo.png new file mode 100755 index 0000000000..9422ba3ab0 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo.png differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_accordion.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_accordion.gif new file mode 100755 index 0000000000..dea40c3d06 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_accordion.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_ajax.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_ajax.gif new file mode 100755 index 0000000000..2329a7ed3f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_ajax.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_calendar.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_calendar.gif new file mode 100755 index 0000000000..368d0b606e Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_calendar.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_chart.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_chart.gif new file mode 100755 index 0000000000..1666ccb2e7 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_chart.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_colorpicker.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_colorpicker.gif new file mode 100755 index 0000000000..3974fe601c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_colorpicker.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_combo.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_combo.gif new file mode 100755 index 0000000000..826b5e7410 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_combo.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_connector.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_connector.gif new file mode 100755 index 0000000000..7e009c8954 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_connector.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_dataview.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_dataview.gif new file mode 100755 index 0000000000..628e554840 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_dataview.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_editor.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_editor.gif new file mode 100755 index 0000000000..e8deaab02e Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_editor.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_folders.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_folders.gif new file mode 100755 index 0000000000..dd30c8f9bf Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_folders.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_form.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_form.gif new file mode 100755 index 0000000000..1ecd103a0f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_form.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_gantt.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_gantt.gif new file mode 100755 index 0000000000..72408baf8a Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_gantt.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_grid.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_grid.gif new file mode 100755 index 0000000000..59424e3a0e Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_grid.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_layout.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_layout.gif new file mode 100755 index 0000000000..271d6f9306 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_layout.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_menu.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_menu.gif new file mode 100755 index 0000000000..d25d5d6c86 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_menu.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_scheduler.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_scheduler.gif new file mode 100755 index 0000000000..46d68b2a8d Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_scheduler.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_slider.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_slider.gif new file mode 100755 index 0000000000..4bf559bc60 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_slider.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_tabbar.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_tabbar.gif new file mode 100755 index 0000000000..ee4dd2c0f6 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_tabbar.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_toolbar.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_toolbar.gif new file mode 100755 index 0000000000..5bfd6ea1d2 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_toolbar.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_tree.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_tree.gif new file mode 100755 index 0000000000..49c40747c8 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_tree.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_treegrid.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_treegrid.gif new file mode 100755 index 0000000000..dc52999ae6 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_treegrid.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_vault.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_vault.gif new file mode 100755 index 0000000000..74556bd791 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_vault.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_windows.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_windows.gif new file mode 100755 index 0000000000..c884dee4f7 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/logo_windows.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/samples-but.png b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/samples-but.png new file mode 100755 index 0000000000..32e66bf3d6 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/samples-but.png differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/samples-but_inact.png b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/samples-but_inact.png new file mode 100755 index 0000000000..37a385d17a Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/samples-but_inact.png differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/search-button.png b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/search-button.png new file mode 100755 index 0000000000..95dc854319 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/search-button.png differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/search-field.png b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/search-field.png new file mode 100755 index 0000000000..b2e88f38b3 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/search-field.png differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/source-bg.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/source-bg.gif new file mode 100755 index 0000000000..f0608a13cb Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/source-bg.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/source.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/source.gif new file mode 100755 index 0000000000..2c194c9159 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/source.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/toc-arrow.gif b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/toc-arrow.gif new file mode 100755 index 0000000000..5e0389e9f8 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/toc-arrow.gif differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/toolbar5.944_left2.png b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/toolbar5.944_left2.png new file mode 100755 index 0000000000..dabcf312c5 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/img/toolbar5.944_left2.png differ diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree.xml new file mode 100755 index 0000000000..e131c67fbb --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree3.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree3.xml new file mode 100755 index 0000000000..452723a0e7 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree3.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree3_14_selection_sorting_navigation.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree3_14_selection_sorting_navigation.xml new file mode 100755 index 0000000000..7c896cd440 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree3_14_selection_sorting_navigation.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree4.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree4.xml new file mode 100755 index 0000000000..ca40ec5511 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree4.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_02_checkboxes.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_02_checkboxes.xml new file mode 100755 index 0000000000..3aae307403 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_02_checkboxes.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_05_drag_n_drop.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_05_drag_n_drop.xml new file mode 100755 index 0000000000..55c54b4d03 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_05_drag_n_drop.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_a.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_a.xml new file mode 100755 index 0000000000..e2845e7833 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_a.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_b.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_b.xml new file mode 100755 index 0000000000..19b9a8dcdb --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_b.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_bg.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_bg.xml new file mode 100755 index 0000000000..15339b0ff5 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_bg.xml @@ -0,0 +1,2 @@ + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_cl.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_cl.xml new file mode 100755 index 0000000000..1cb0949ae5 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_cl.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_lc.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_lc.xml new file mode 100755 index 0000000000..e8273e37d8 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_lc.xml @@ -0,0 +1,68 @@ + + + 21.07.2005 + Ivan Petrenko + ReadOnly + + 19:45 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_lg.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_lg.xml new file mode 100755 index 0000000000..45b5606bf0 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_lg.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_mixed.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_mixed.xml new file mode 100755 index 0000000000..c1ca62daac --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_mixed.xml @@ -0,0 +1,66 @@ + + + + 19:45 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_ml.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_ml.xml new file mode 100755 index 0000000000..49d28dbdf4 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_ml.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_ol.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_ol.xml new file mode 100755 index 0000000000..7ba27fecc6 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_ol.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_p.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_p.xml new file mode 100755 index 0000000000..2843a86356 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_p.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_radio.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_radio.xml new file mode 100755 index 0000000000..86aaaf204b --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_radio.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_st.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_st.xml new file mode 100755 index 0000000000..d12edcbe98 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_st.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_to.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_to.xml new file mode 100755 index 0000000000..80c86b2d96 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_to.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_ud.xml b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_ud.xml new file mode 100755 index 0000000000..520e65a59c --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/common/tree_ud.xml @@ -0,0 +1,71 @@ + + + 21.07.2005 + Ivan Petrenko + ReadOnly + + 21.07.2005 + Ivan Petrenko + ReadOnly + 19:45 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/index.html b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/index.html new file mode 100755 index 0000000000..5a64550392 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/samples/index.html @@ -0,0 +1,42 @@ + + + + dhtmlxTree Samples + + + + + + + + + + +
    + +
    DHTMLX Docs & Samples Explorer
    +
    + + +
    +
    + + +
    +
    + + + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/sources/dhtmlxcommon.js b/phpgwapi/js/dhtmlxtree/dhtmlxTree/sources/dhtmlxcommon.js new file mode 100755 index 0000000000..e8144c718a --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/sources/dhtmlxcommon.js @@ -0,0 +1,928 @@ +dhtmlx=function(obj){ + for (var a in obj) dhtmlx[a]=obj[a]; + return dhtmlx; //simple singleton +}; +dhtmlx.extend_api=function(name,map,ext){ + var t = window[name]; + if (!t) return; //component not defined + window[name]=function(obj){ + if (obj && typeof obj == "object" && !obj.tagName){ + var that = t.apply(this,(map._init?map._init(obj):arguments)); + //global settings + for (var a in dhtmlx) + if (map[a]) this[map[a]](dhtmlx[a]); + //local settings + for (var a in obj){ + if (map[a]) this[map[a]](obj[a]); + else if (a.indexOf("on")==0){ + this.attachEvent(a,obj[a]); + } + } + } else + var that = t.apply(this,arguments); + if (map._patch) map._patch(this); + return that||this; + }; + window[name].prototype=t.prototype; + if (ext) + dhtmlXHeir(window[name].prototype,ext); +}; + +dhtmlxAjax={ + get:function(url,callback){ + var t=new dtmlXMLLoaderObject(true); + t.async=(arguments.length<3); + t.waitCall=callback; + t.loadXML(url) + return t; + }, + post:function(url,post,callback){ + var t=new dtmlXMLLoaderObject(true); + t.async=(arguments.length<4); + t.waitCall=callback; + t.loadXML(url,true,post) + return t; + }, + getSync:function(url){ + return this.get(url,null,true) + }, + postSync:function(url,post){ + return this.post(url,post,null,true); + } +} + +/** + * @desc: xmlLoader object + * @type: private + * @param: funcObject - xml parser function + * @param: object - jsControl object + * @param: async - sync/async mode (async by default) + * @param: rSeed - enable/disable random seed ( prevent IE caching) + * @topic: 0 + */ +function dtmlXMLLoaderObject(funcObject, dhtmlObject, async, rSeed){ + this.xmlDoc=""; + + if (typeof (async) != "undefined") + this.async=async; + else + this.async=true; + + this.onloadAction=funcObject||null; + this.mainObject=dhtmlObject||null; + this.waitCall=null; + this.rSeed=rSeed||false; + return this; +}; +/** + * @desc: xml loading handler + * @type: private + * @param: dtmlObject - xmlLoader object + * @topic: 0 + */ +dtmlXMLLoaderObject.prototype.waitLoadFunction=function(dhtmlObject){ + var once = true; + this.check=function (){ + if ((dhtmlObject)&&(dhtmlObject.onloadAction != null)){ + if ((!dhtmlObject.xmlDoc.readyState)||(dhtmlObject.xmlDoc.readyState == 4)){ + if (!once) + return; + + once=false; //IE 5 fix + if (typeof dhtmlObject.onloadAction == "function") + dhtmlObject.onloadAction(dhtmlObject.mainObject, null, null, null, dhtmlObject); + + if (dhtmlObject.waitCall){ + dhtmlObject.waitCall.call(this,dhtmlObject); + dhtmlObject.waitCall=null; + } + } + } + }; + return this.check; +}; + +/** + * @desc: return XML top node + * @param: tagName - top XML node tag name (not used in IE, required for Safari and Mozilla) + * @type: private + * @returns: top XML node + * @topic: 0 + */ +dtmlXMLLoaderObject.prototype.getXMLTopNode=function(tagName, oldObj){ + if (this.xmlDoc.responseXML){ + var temp = this.xmlDoc.responseXML.getElementsByTagName(tagName); + if(temp.length==0 && tagName.indexOf(":")!=-1) + var temp = this.xmlDoc.responseXML.getElementsByTagName((tagName.split(":"))[1]); + var z = temp[0]; + } else + var z = this.xmlDoc.documentElement; + + if (z){ + this._retry=false; + return z; + } + + if ((_isIE)&&(!this._retry)){ + //fall back to MS.XMLDOM + var xmlString = this.xmlDoc.responseText; + var oldObj = this.xmlDoc; + this._retry=true; + this.xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); + this.xmlDoc.async=false; + this.xmlDoc["loadXM"+"L"](xmlString); + + return this.getXMLTopNode(tagName, oldObj); + } + dhtmlxError.throwError("LoadXML", "Incorrect XML", [ + (oldObj||this.xmlDoc), + this.mainObject + ]); + + return document.createElement("DIV"); +}; + +/** + * @desc: load XML from string + * @type: private + * @param: xmlString - xml string + * @topic: 0 + */ +dtmlXMLLoaderObject.prototype.loadXMLString=function(xmlString){ + { + try{ + var parser = new DOMParser(); + this.xmlDoc=parser.parseFromString(xmlString, "text/xml"); + } + catch (e){ + this.xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); + this.xmlDoc.async=this.async; + this.xmlDoc["loadXM"+"L"](xmlString); + } + } + + this.onloadAction(this.mainObject, null, null, null, this); + + if (this.waitCall){ + this.waitCall(); + this.waitCall=null; + } +} +/** + * @desc: load XML + * @type: private + * @param: filePath - xml file path + * @param: postMode - send POST request + * @param: postVars - list of vars for post request + * @topic: 0 + */ +dtmlXMLLoaderObject.prototype.loadXML=function(filePath, postMode, postVars, rpc){ + if (this.rSeed) + filePath+=((filePath.indexOf("?") != -1) ? "&" : "?")+"a_dhx_rSeed="+(new Date()).valueOf(); + this.filePath=filePath; + + if ((!_isIE)&&(window.XMLHttpRequest)) + this.xmlDoc=new XMLHttpRequest(); + else { + this.xmlDoc=new ActiveXObject("Microsoft.XMLHTTP"); + } + + if (this.async) + this.xmlDoc.onreadystatechange=new this.waitLoadFunction(this); + this.xmlDoc.open(postMode ? "POST" : "GET", filePath, this.async); + + if (rpc){ + this.xmlDoc.setRequestHeader("User-Agent", "dhtmlxRPC v0.1 ("+navigator.userAgent+")"); + this.xmlDoc.setRequestHeader("Content-type", "text/xml"); + } + + else if (postMode) + this.xmlDoc.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); + + this.xmlDoc.setRequestHeader("X-Requested-With","XMLHttpRequest"); + this.xmlDoc.send(null||postVars); + + if (!this.async) + (new this.waitLoadFunction(this))(); +}; +/** + * @desc: destructor, cleans used memory + * @type: private + * @topic: 0 + */ +dtmlXMLLoaderObject.prototype.destructor=function(){ + this._filterXPath = null; + this._getAllNamedChilds = null; + this._retry = null; + this.async = null; + this.rSeed = null; + this.filePath = null; + this.onloadAction = null; + this.mainObject = null; + this.xmlDoc = null; + this.doXPath = null; + this.doXPathOpera = null; + this.doXSLTransToObject = null; + this.doXSLTransToString = null; + this.loadXML = null; + this.loadXMLString = null; + // this.waitLoadFunction = null; + this.doSerialization = null; + this.xmlNodeToJSON = null; + this.getXMLTopNode = null; + this.setXSLParamValue = null; + return null; +} + +dtmlXMLLoaderObject.prototype.xmlNodeToJSON = function(node){ + var t={}; + for (var i=0; i-1) + _isChrome=true; + +if ((navigator.userAgent.indexOf('Safari') != -1)||(navigator.userAgent.indexOf('Konqueror') != -1)){ + var _KHTMLrv = parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf('Safari')+7, 5)); + + if (_KHTMLrv > 525){ //mimic FF behavior for Safari 3.1+ + _isFF=true; + var _FFrv = 1.9; + } else + _isKHTML=true; +} else if (navigator.userAgent.indexOf('Opera') != -1){ + _isOpera=true; + _OperaRv=parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf('Opera')+6, 3)); +} + + +else if (navigator.appName.indexOf("Microsoft") != -1){ + _isIE=true; + if (navigator.appVersion.indexOf("MSIE 8.0")!= -1 && document.compatMode != "BackCompat") _isIE=8; + if (navigator.appVersion.indexOf("MSIE 9.0")!= -1 && document.compatMode != "BackCompat") _isIE=8; +} else { + _isFF=true; + var _FFrv = parseFloat(navigator.userAgent.split("rv:")[1]) +} + + +//multibrowser Xpath processor +dtmlXMLLoaderObject.prototype.doXPath=function(xpathExp, docObj, namespace, result_type){ + if (_isKHTML || (!_isIE && !window.XPathResult)) + return this.doXPathOpera(xpathExp, docObj); + + if (_isIE){ //IE + if (!docObj) + if (!this.xmlDoc.nodeName) + docObj=this.xmlDoc.responseXML + else + docObj=this.xmlDoc; + + if (!docObj) + dhtmlxError.throwError("LoadXML", "Incorrect XML", [ + (docObj||this.xmlDoc), + this.mainObject + ]); + + if (namespace != null) + docObj.setProperty("SelectionNamespaces", "xmlns:xsl='"+namespace+"'"); // + + if (result_type == 'single'){ + return docObj.selectSingleNode(xpathExp); + } + else { + return docObj.selectNodes(xpathExp)||new Array(0); + } + } else { //Mozilla + var nodeObj = docObj; + + if (!docObj){ + if (!this.xmlDoc.nodeName){ + docObj=this.xmlDoc.responseXML + } + else { + docObj=this.xmlDoc; + } + } + + if (!docObj) + dhtmlxError.throwError("LoadXML", "Incorrect XML", [ + (docObj||this.xmlDoc), + this.mainObject + ]); + + if (docObj.nodeName.indexOf("document") != -1){ + nodeObj=docObj; + } + else { + nodeObj=docObj; + docObj=docObj.ownerDocument; + } + var retType = XPathResult.ANY_TYPE; + + if (result_type == 'single') + retType=XPathResult.FIRST_ORDERED_NODE_TYPE + var rowsCol = new Array(); + var col = docObj.evaluate(xpathExp, nodeObj, function(pref){ + return namespace + }, retType, null); + + if (retType == XPathResult.FIRST_ORDERED_NODE_TYPE){ + return col.singleNodeValue; + } + var thisColMemb = col.iterateNext(); + + while (thisColMemb){ + rowsCol[rowsCol.length]=thisColMemb; + thisColMemb=col.iterateNext(); + } + return rowsCol; + } +} + +function _dhtmlxError(type, name, params){ + if (!this.catches) + this.catches=new Array(); + + return this; +} + +_dhtmlxError.prototype.catchError=function(type, func_name){ + this.catches[type]=func_name; +} +_dhtmlxError.prototype.throwError=function(type, name, params){ + if (this.catches[type]) + return this.catches[type](type, name, params); + + if (this.catches["ALL"]) + return this.catches["ALL"](type, name, params); + + alert("Error type: "+arguments[0]+"\nDescription: "+arguments[1]); + return null; +} + +window.dhtmlxError=new _dhtmlxError(); + + +//opera fake, while 9.0 not released +//multibrowser Xpath processor +dtmlXMLLoaderObject.prototype.doXPathOpera=function(xpathExp, docObj){ + //this is fake for Opera + var z = xpathExp.replace(/[\/]+/gi, "/").split('/'); + var obj = null; + var i = 1; + + if (!z.length) + return []; + + if (z[0] == ".") + obj=[docObj]; else if (z[0] == ""){ + obj=(this.xmlDoc.responseXML||this.xmlDoc).getElementsByTagName(z[i].replace(/\[[^\]]*\]/g, "")); + i++; + } else + return []; + + for (i; i < z.length; i++)obj=this._getAllNamedChilds(obj, z[i]); + + if (z[i-1].indexOf("[") != -1) + obj=this._filterXPath(obj, z[i-1]); + return obj; +} + +dtmlXMLLoaderObject.prototype._filterXPath=function(a, b){ + var c = new Array(); + var b = b.replace(/[^\[]*\[\@/g, "").replace(/[\[\]\@]*/g, ""); + + for (var i = 0; i < a.length; i++) + if (a[i].getAttribute(b)) + c[c.length]=a[i]; + + return c; +} +dtmlXMLLoaderObject.prototype._getAllNamedChilds=function(a, b){ + var c = new Array(); + + if (_isKHTML) + b=b.toUpperCase(); + + for (var i = 0; i < a.length; i++)for (var j = 0; j < a[i].childNodes.length; j++){ + if (_isKHTML){ + if (a[i].childNodes[j].tagName&&a[i].childNodes[j].tagName.toUpperCase() == b) + c[c.length]=a[i].childNodes[j]; + } + + else if (a[i].childNodes[j].tagName == b) + c[c.length]=a[i].childNodes[j]; + } + + return c; +} + +function dhtmlXHeir(a, b){ + for (var c in b) + if (typeof (b[c]) == "function") + a[c]=b[c]; + return a; +} + +function dhtmlxEvent(el, event, handler){ + if (el.addEventListener) + el.addEventListener(event, handler, false); + + else if (el.attachEvent) + el.attachEvent("on"+event, handler); +} + +//============= XSL Extension =================================== + +dtmlXMLLoaderObject.prototype.xslDoc=null; +dtmlXMLLoaderObject.prototype.setXSLParamValue=function(paramName, paramValue, xslDoc){ + if (!xslDoc) + xslDoc=this.xslDoc + + if (xslDoc.responseXML) + xslDoc=xslDoc.responseXML; + var item = + this.doXPath("/xsl:stylesheet/xsl:variable[@name='"+paramName+"']", xslDoc, + "http:/\/www.w3.org/1999/XSL/Transform", "single"); + + if (item != null) + item.firstChild.nodeValue=paramValue +} +dtmlXMLLoaderObject.prototype.doXSLTransToObject=function(xslDoc, xmlDoc){ + if (!xslDoc) + xslDoc=this.xslDoc; + + if (xslDoc.responseXML) + xslDoc=xslDoc.responseXML + + if (!xmlDoc) + xmlDoc=this.xmlDoc; + + if (xmlDoc.responseXML) + xmlDoc=xmlDoc.responseXML + + //MOzilla + if (!_isIE){ + if (!this.XSLProcessor){ + this.XSLProcessor=new XSLTProcessor(); + this.XSLProcessor.importStylesheet(xslDoc); + } + var result = this.XSLProcessor.transformToDocument(xmlDoc); + } else { + var result = new ActiveXObject("Msxml2.DOMDocument.3.0"); + try{ + xmlDoc.transformNodeToObject(xslDoc, result); + }catch(e){ + result = xmlDoc.transformNode(xslDoc); + } + } + return result; +} + +dtmlXMLLoaderObject.prototype.doXSLTransToString=function(xslDoc, xmlDoc){ + var res = this.doXSLTransToObject(xslDoc, xmlDoc); + if(typeof(res)=="string") + return res; + return this.doSerialization(res); +} + +dtmlXMLLoaderObject.prototype.doSerialization=function(xmlDoc){ + if (!xmlDoc) + xmlDoc=this.xmlDoc; + if (xmlDoc.responseXML) + xmlDoc=xmlDoc.responseXML + if (!_isIE){ + var xmlSerializer = new XMLSerializer(); + return xmlSerializer.serializeToString(xmlDoc); + } else + return xmlDoc.xml; +} + +/** +* @desc: +* @type: private +*/ +dhtmlxEventable=function(obj){ + obj.attachEvent=function(name, catcher, callObj){ + name='ev_'+name.toLowerCase(); + if (!this[name]) + this[name]=new this.eventCatcher(callObj||this); + + return(name+':'+this[name].addEvent(catcher)); //return ID (event name & event ID) + } + obj.callEvent=function(name, arg0){ + name='ev_'+name.toLowerCase(); + if (this[name]) + return this[name].apply(this, arg0); + return true; + } + obj.checkEvent=function(name){ + return (!!this['ev_'+name.toLowerCase()]) + } + obj.eventCatcher=function(obj){ + var dhx_catch = []; + var z = function(){ + var res = true; + for (var i = 0; i < dhx_catch.length; i++){ + if (dhx_catch[i] != null){ + var zr = dhx_catch[i].apply(obj, arguments); + res=res&&zr; + } + } + return res; + } + z.addEvent=function(ev){ + if (typeof (ev) != "function") + ev=eval(ev); + if (ev) + return dhx_catch.push(ev)-1; + return false; + } + z.removeEvent=function(id){ + dhx_catch[id]=null; + } + return z; + } + obj.detachEvent=function(id){ + if (id != false){ + var list = id.split(':'); //get EventName and ID + this[list[0]].removeEvent(list[1]); //remove event + } + } + obj.detachAllEvents = function(){ + for (var name in this){ + if (name.indexOf("ev_")==0) + delete this[name]; + } + } +} diff --git a/phpgwapi/js/dhtmlxtree/dhtmlxTree/sources/dhtmlxtree.js b/phpgwapi/js/dhtmlxtree/dhtmlxTree/sources/dhtmlxtree.js new file mode 100755 index 0000000000..aed3f5d95b --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/dhtmlxTree/sources/dhtmlxtree.js @@ -0,0 +1,3808 @@ +//v.2.6 build 100722 + +/* +Copyright DHTMLX LTD. http://www.dhtmlx.com +You allowed to use this component or parts of it under GPL terms +To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com +*/ +/*_TOPICS_ +@0:Initialization +@1:Selection control +@2:Add/delete +@3:Private +@4:Node/level control +@5:Checkboxes/user data manipulation +@6:Appearence control +@7: Handlers +*/ + +function xmlPointer(data){ + this.d=data; +} +xmlPointer.prototype={ + text:function(){ if (!_isFF) return this.d.xml; var x = new XMLSerializer(); return x.serializeToString(this.d); }, + get:function(name){return this.d.getAttribute(name); }, + exists:function(){return !!this.d }, + content:function(){return this.d.firstChild?this.d.firstChild.data:""; }, // <4k in FF + each:function(name,f,t,i){ var a=this.d.childNodes; var c=new xmlPointer(); if (a.length) for (i=i||0; i0) { beforeNode=new Object; beforeNode.tr=parentObject.childNodes[0].tr.previousSibling; } + parentObject._has_top=true; + for (ik=Count; ik>0; ik--) + Nodes[ik]=Nodes[ik-1]; + Count=0; + break; + } + }; + }; + + var n; + if (!(n=this._idpull[itemId]) || n.span!=-1){ + n=Nodes[Count]=new dhtmlXTreeItemObject(itemId,itemText,parentObject,this,itemActionHandler,1); + itemId = Nodes[Count].id; + parentObject.childsCount++; + } + + if(!n.htmlNode) { + n.label=itemText; + n.htmlNode=this._createItem((this.checkBoxOff?1:0),n); + n.htmlNode.objBelong=n; + } + + if(image1) n.images[0]=image1; + if(image2) n.images[1]=image2; + if(image3) n.images[2]=image3; + + + var tr=this._drawNewTr(n.htmlNode); + if ((this.XMLloadingWarning)||(this._hAdI)) + n.htmlNode.parentNode.parentNode.style.display="none"; + + + if ((beforeNode)&&(beforeNode.tr.nextSibling)) + parentObject.htmlNode.childNodes[0].insertBefore(tr,beforeNode.tr.nextSibling); + else + if (this.parsingOn==parentObject.id){ + this.parsedArray[this.parsedArray.length]=tr; + } + else + parentObject.htmlNode.childNodes[0].appendChild(tr); + + + if ((beforeNode)&&(!beforeNode.span)) beforeNode=null; + + if (this.XMLsource) if ((childs)&&(childs!=0)) n.XMLload=0; else n.XMLload=1; + n.tr=tr; + tr.nodem=n; + + if (parentObject.itemId==0) + tr.childNodes[0].className="hiddenRow"; + + if ((parentObject._r_logic)||(this._frbtr)) + this._setSrc(n.htmlNode.childNodes[0].childNodes[0].childNodes[1].childNodes[0],this.imPath+this.radioArray[0]); + + + if (optionStr) { + var tempStr=optionStr.split(","); + + for (var i=0; i=2) + { + this._correctPlus(Nodes[parentObject.childsCount-2]); + this._correctLine(Nodes[parentObject.childsCount-2]); + } + if (parentObject.childsCount!=2) this._correctPlus(Nodes[0]); + + if (this.tscheck) this._correctCheckStates(parentObject); + + if (this._onradh){ + if (this.xmlstate==1){ + var old=this.onXLE; + this.onXLE=function(id){ this._onradh(itemId); if (old) old(id); } + } + else + this._onradh(itemId); + } + + } + return n; +}; + + + + +/** +* @desc: create new node as a child to specified with parentId +* @type: deprecated +* @param: parentId - parent node id +* @param: itemId - new node id +* @param: itemText - new node text +* @param: itemActionHandler - function fired on node select event (optional) +* @param: image1 - image for node without children; (optional) +* @param: image2 - image for closed node; (optional) +* @param: image3 - image for opened node (optional) +* @param: optionStr - options string (optional) +* @param: children - node children flag (for dynamical trees) (optional) +* @topic: 2 +*/ + dhtmlXTreeObject.prototype.insertNewItem=function(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,children){ + var parentObject=this._globalIdStorageFind(parentId); + if (!parentObject) return (-1); + var nodez=this._attachChildNode(parentObject,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,children); + + return nodez; + }; +/** +* @desc: create new node as a child to specified with parentId +* @type: public +* @param: parentId - parent node id +* @param: itemId - new node id +* @param: itemText - new node label +* @param: itemActionHandler - function fired on node select event (optional) +* @param: image1 - image for node without children; (optional) +* @param: image2 - image for closed node; (optional) +* @param: image3 - image for opened node (optional) +* @param: optionStr - options string (optional) +* @param: children - node children flag (for dynamical trees) (optional) +* @topic: 2 +*/ + dhtmlXTreeObject.prototype.insertNewChild=function(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,children){ + return this.insertNewItem(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,children); + } +/** +* @desc: parse xml +* @type: private +* @param: dhtmlObject - jsTree object +* @param: node - top XML node +* @param: parentId - parent node id +* @param: level - level of tree +* @topic: 2 +*/ + dhtmlXTreeObject.prototype._parseXMLTree=function(a,b,c,d,xml){ + var p=new xmlPointer(xml.getXMLTopNode("tree")); + a._parse(p); + a._p=p; + } + + dhtmlXTreeObject.prototype._parseItem=function(c,temp,preNode,befNode){ + var id; + if (this._srnd && (!this._idpull[id=c.get("id")] || !this._idpull[id].span)) + { + this._addItemSRND(temp.id,id,c); + return; + } + + var a=c.get_all(); + + if ((typeof(this.waitUpdateXML)=="object")&&(!this.waitUpdateXML[a.id])){ + this._parse(c,a.id,1); + return; + } + + + + + + + var zST=[]; + if (a.select) zST.push("SELECT"); + if (a.top) zST.push("TOP"); + if (a.call) this.nodeAskingCall=a.id; + if (a.checked==-1) zST.push("HCHECKED"); + else if (a.checked) zST.push("CHECKED"); + if (a.open) zST.push("OPEN"); + + if (this.waitUpdateXML){ + if (this._globalIdStorageFind(a.id)) + var newNode=this.updateItem(a.id,a.text,a.im0,a.im1,a.im2,a.checked); + else{ + if (this.npl==0) zST.push("TOP"); + else preNode=temp.childNodes[this.npl]; + + var newNode=this._attachChildNode(temp,a.id,a.text,0,a.im0,a.im1,a.im2,zST.join(","),a.child,0,preNode); + preNode=null; + } + } + else + var newNode=this._attachChildNode(temp,a.id,a.text,0,a.im0,a.im1,a.im2,zST.join(","),a.child,(befNode||0),preNode); + if (a.tooltip) + newNode.span.parentNode.parentNode.title=a.tooltip; + + if (a.style) + if (newNode.span.style.cssText) + newNode.span.style.cssText+=(";"+a.style); + else + newNode.span.setAttribute("style",newNode.span.getAttribute("style")+"; "+a.style); + + if (a.radio) newNode._r_logic=true; + + if (a.nocheckbox){ + var check_node=newNode.span.parentNode.previousSibling.previousSibling; + check_node.childNodes[0].style.display='none'; + if (window._KHTMLrv) check_node.style.display="none"; + newNode.nocheckbox=true; + } + if (a.disabled){ + if (a.checked!=null) this._setCheck(newNode,a.checked); + this.disableCheckbox(newNode,1); + } + + + newNode._acc=a.child||0; + + if (this.parserExtension) this.parserExtension._parseExtension.call(this,c,a,(temp?temp.id:0)); + + this.setItemColor(newNode,a.aCol,a.sCol); + if (a.locked=="1") this.lockItem(newNode.id,true,true); + + if ((a.imwidth)||(a.imheight)) this.setIconSize(a.imwidth,a.imheight,newNode); + if ((a.closeable=="0")||(a.closeable=="1")) this.setItemCloseable(newNode,a.closeable); + var zcall=""; + if (a.topoffset) this.setItemTopOffset(newNode,a.topoffset); + if ((!this.slowParse)||(typeof(this.waitUpdateXML)=="object")){ + if (c.sub_exists("item")) + zcall=this._parse(c,a.id,1); + } + + if (zcall!="") this.nodeAskingCall=zcall; + + + c.each("userdata",function(u){ + this.setUserData(c.get("id"),u.get("name"),u.content()); + },this) + + + } + dhtmlXTreeObject.prototype._parse=function(p,parentId,level,start){ + if (this._srnd && !this.parentObject.offsetHeight) { + var self=this; + return window.setTimeout(function(){ + self._parse(p,parentId,level,start); + },100); + } + if (!p.exists()) return; + + this.skipLock=true; //disable item locking + //loading flags + + + if (!parentId) { //top level + parentId=p.get("id"); + if (p.get("radio")) + this.htmlNode._r_logic=true; + this.parsingOn=parentId; + this.parsedArray=new Array(); + this.setCheckList=""; + this.nodeAskingCall=""; + } + + var temp=this._globalIdStorageFind(parentId); + if (!temp) return dhtmlxError.throwError("DataStructure","XML refers to not existing parent"); + + this.parsCount=this.parsCount?(this.parsCount+1):1; + this.XMLloadingWarning=1; + + if ((temp.childsCount)&&(!start)&&(!this._edsbps)&&(!temp._has_top)) + var preNode=0;//temp.childNodes[temp.childsCount-1]; + else + var preNode=0; + + this.npl=0; + + p.each("item",function(c,i){ + + temp.XMLload=1; + if ((this._epgps)&&(this._epgpsC==this.npl)){ + this._setNextPageSign(temp,this.npl+1*(start||0),level,node); + return -1; + } + + this._parseItem(c,temp,0,preNode); + + + this.npl++; + + + + },this,start); + + + if (!level) { + p.each("userdata",function(u){ + this.setUserData(p.get("id"),u.get("name"),u.content()); + },this); + + temp.XMLload=1; + if (this.waitUpdateXML){ + this.waitUpdateXML=false; + for (var i=temp.childsCount-1; i>=0; i--) + if (temp.childNodes[i]._dmark) + this.deleteItem(temp.childNodes[i].id); + } + + var parsedNodeTop=this._globalIdStorageFind(this.parsingOn); + + for (var i=0; i1){ + if ( ( (Nodes[1].style.display!="none") || (mode==1) ) && (mode!=2) ) { +//nb:solves standard doctype prb in IE + this.allTree.childNodes[0].border = "1"; + this.allTree.childNodes[0].border = "0"; + nodestyle="none"; + } + else nodestyle=""; + + for (var i=1; i7) td2.style.width="999999px"; + else if (!window._KHTMLrv) td2.style.width="100%"; + +// itemObject.span.appendChild(document.createTextNode(itemObject.label)); + itemObject.span.innerHTML=itemObject.label; + td2.appendChild(itemObject.span); + td2.parentObject=itemObject; td1.parentObject=itemObject; + td2.onclick=this.onRowSelect; td1.onclick=this.onRowClick; td2.ondblclick=this.onRowClick2; + if (this.ettip) + tr.title=itemObject.label; + + if (this.dragAndDropOff) { + if (this._aimgs) { this.dragger.addDraggableItem(td12,this); td12.parentObject=itemObject; } + this.dragger.addDraggableItem(td2,this); + } + + itemObject.span.style.paddingLeft="5px"; itemObject.span.style.paddingRight="5px"; td2.style.verticalAlign=""; + td2.style.fontSize="10pt"; td2.style.cursor=this.style_pointer; + tr.appendChild(td1); tr.appendChild(td11); tr.appendChild(td12); + tr.appendChild(td2); + tbody.appendChild(tr); + table.appendChild(tbody); + + if (this.ehlt || this.checkEvent("onMouseIn") || this.checkEvent("onMouseOut")){//highlighting + tr.onmousemove=this._itemMouseIn; + tr[(_isIE)?"onmouseleave":"onmouseout"]=this._itemMouseOut; + } + return table; + }; + + +/** +* @desc: set path to images directory +* @param: newPath - path to images directory (related to the page with tree or absolute http url) +* @type: public +* @topic: 0 +*/ + dhtmlXTreeObject.prototype.setImagePath=function( newPath ){ this.imPath=newPath; this.iconURL=newPath; }; + /** + * @desc: set path to external images used as tree icons + * @type: public + * @param: path - url (or relative path) of images folder with closing "/" + * @topic: 0,7 + */ + dhtmlXTreeObject.prototype.setIconPath=function(path){ + this.iconURL=path; + } + + + +/** +* @desc: set function called when tree node selected +* @param: (function) func - event handling function +* @type: deprecated +* @topic: 0,7 +* @event: onRightClick +* @depricated: use grid.attachEvent("onRightClick",func); instead +* @eventdesc: Event occurs after right mouse button was clicked. + Assigning this handler can disable default context menu, and incompattible with dhtmlXMenu integration. +* @eventparam: (string) ID of clicked item +* @eventparam: (object) event object +*/ + dhtmlXTreeObject.prototype.setOnRightClickHandler=function(func){ this.attachEvent("onRightClick",func); }; + +/** +* @desc: set function called when tree node clicked, also can be forced to call from API +* @param: func - event handling function +* @type: deprecated +* @topic: 0,7 +* @event: onClick +* @depricated: use grid.attachEvent("onClick",func); instead +* @eventdesc: Event raises immideatly after text part of item in tree was clicked, but after default onClick functionality was processed. + Richt mouse button click can be catched by onRightClick event handler. +* @eventparam: ID of clicked item +* @eventparam: ID of previously selected item +*/ + dhtmlXTreeObject.prototype.setOnClickHandler=function(func){ this.attachEvent("onClick",func); }; + +/** +* @desc: set function called when tree node selected or unselected, include any select change caused by any functionality +* @param: func - event handling function +* @type: deprecated +* @topic: 0,7 +* @event: onSelect +* @depricated: use grid.attachEvent("onSelect",func); instead +* @eventdesc: Event raises immideatly after selection in tree was changed +* @eventparam: selected item ID ( list of IDs in case of multiselection) +*/ + dhtmlXTreeObject.prototype.setOnSelectStateChange=function(func){ this.attachEvent("onSelect",func); }; + + +/** +* @desc: enables dynamic loading from XML +* @type: public +* @param: filePath - name of script returning XML; in case of virtual loading - user defined function +* @topic: 0 +*/ + dhtmlXTreeObject.prototype.setXMLAutoLoading=function(filePath){ this.XMLsource=filePath; }; + + /** +* @desc: set function called before checkbox checked/unchecked +* @param: func - event handling function +* @type: deprecated +* @topic: 0,7 +* @event: onCheck +* @depricated: use tree.attachEvent("onCheck",func); instead +* @eventdesc: Event raises right before item in tree was checked/unchecked. can be canceled (return false from event handler) +* @eventparam: ID of item which will be checked/unchecked +* @eventparam: Current checkbox state. 1 - item checked, 0 - item unchecked. +* @eventreturn: true - confirm changing checked state; false - deny chaning checked state; +*/ + dhtmlXTreeObject.prototype.setOnCheckHandler=function(func){ this.attachEvent("onCheck",func); }; + + +/** +* @desc: set function called before tree node opened/closed +* @param: func - event handling function +* @type: deprecated +* @topic: 0,7 +* @event: onOpen +* @depricated: use grid.attachEvent("onOpenStart",func); instead +* @eventdesc: Event raises immideatly after item in tree got command to open/close , and before item was opened//closed. Event also raised for unclosable nodes and nodes without open/close functionality - in that case result of function will be ignored. + Event does not occur if node was opened by dhtmlXtree API. +* @eventparam: ID of node which will be opened/closed +* @eventparam: Current open state of tree item. 0 - item has not children, -1 - item closed, 1 - item opened. +* @eventreturn: true - confirm opening/closing; false - deny opening/closing; +*/ + dhtmlXTreeObject.prototype.setOnOpenHandler=function(func){ this.attachEvent("onOpenStart",func); }; +/** +* @desc: set function called before tree node opened/closed +* @param: func - event handling function +* @type: deprecated +* @topic: 0,7 +* @event: onOpenStart +* @depricated: use grid.attachEvent("onOpenStart",func); instead +* @eventdesc: Event raises immideatly after item in tree got command to open/close , and before item was opened//closed. Event also raised for unclosable nodes and nodes without open/close functionality - in that case result of function will be ignored. + Event not raised if node opened by dhtmlXtree API. +* @eventparam: ID of node which will be opened/closed +* @eventparam: Current open state of tree item. 0 - item has not children, -1 - item closed, 1 - item opened. +* @eventreturn: true - confirm opening/closing; false - deny opening/closing; +*/ + dhtmlXTreeObject.prototype.setOnOpenStartHandler=function(func){ this.attachEvent("onOpenStart",func); }; + +/** +* @desc: set function called after tree node opened/closed +* @param: func - event handling function +* @type: deprecated +* @topic: 0,7 +* @event: onOpenEnd +* @depricated: use grid.attachEvent("onOpenEnd",func); instead +* @eventdesc: Event raises immideatly after item in tree was opened//closed. Event also raised for unclosable nodes and nodes without open/close functionality - in that case result of function will be ignored. + Event not raised if node opened by dhtmlXtree API. +* @eventparam: ID of node which will be opened/closed +* @eventparam: Current open state of tree item. 0 - item has not children, -1 - item closed, 1 - item opened. +*/ + dhtmlXTreeObject.prototype.setOnOpenEndHandler=function(func){ this.attachEvent("onOpenEnd",func); }; + + /** +* @desc: set function called when tree node double clicked +* @param: func - event handling function +* @type: public +* @topic: 0,7 +* @event: onDblClick +* @depricated: use grid.attachEvent("onDblClick",func); instead +* @eventdesc: Event raised immideatly after item in tree was doubleclicked, before default onDblClick functionality was processed. + Beware using both onClick and onDblClick events, because component can generate onClick event before onDblClick event while doubleclicking item in tree. + ( that behavior depend on used browser ) +* @eventparam: ID of item which was doubleclicked +* @eventreturn: true - confirm opening/closing; false - deny opening/closing; +*/ + dhtmlXTreeObject.prototype.setOnDblClickHandler=function(func){ this.attachEvent("onDblClick",func); }; + + + + + + + + + + /** +* @desc: expand target node and all sub nodes +* @type: public +* @param: itemId - node id +* @topic: 4 +*/ + dhtmlXTreeObject.prototype.openAllItems=function(itemId) + { + var temp=this._globalIdStorageFind(itemId); + if (!temp) return 0; + this._xopenAll(temp); + }; + +/** +* @desc: return open/close state +* @type: public +* @param: itemId - node id +* @return: -1 - close, 1 - opened, 0 - node doesn't have children +* @topic: 4 +*/ + dhtmlXTreeObject.prototype.getOpenState=function(itemId){ + var temp=this._globalIdStorageFind(itemId); + if (!temp) return ""; + return this._getOpenState(temp); + }; + +/** +* @desc: collapse target node and all sub nodes +* @type: public +* @param: itemId - node id +* @topic: 4 +*/ + dhtmlXTreeObject.prototype.closeAllItems=function(itemId) + { + if (itemId===window.undefined) itemId=this.rootId; + + var temp=this._globalIdStorageFind(itemId); + if (!temp) return 0; + this._xcloseAll(temp); + +//nb:solves standard doctype prb in IE + this.allTree.childNodes[0].border = "1"; + this.allTree.childNodes[0].border = "0"; + + }; + + +/** +* @desc: set user data for target node +* @type: public +* @param: itemId - target node id +* @param: name - key for user data +* @param: value - user data value +* @topic: 5 +*/ + dhtmlXTreeObject.prototype.setUserData=function(itemId,name,value){ + var sNode=this._globalIdStorageFind(itemId,0,true); + if (!sNode) return; + if(name=="hint") + sNode.htmlNode.childNodes[0].childNodes[0].title=value; + if (typeof(sNode.userData["t_"+name])=="undefined"){ + if (!sNode._userdatalist) sNode._userdatalist=name; + else sNode._userdatalist+=","+name; + } + sNode.userData["t_"+name]=value; + }; + +/** +* @desc: get user data from target node +* @type: public +* @param: itemId - target node id +* @param: name - key for user data +* @return: value of user data +* @topic: 5 +*/ + dhtmlXTreeObject.prototype.getUserData=function(itemId,name){ + var sNode=this._globalIdStorageFind(itemId,0,true); + if (!sNode) return; + return sNode.userData["t_"+name]; + }; + + + + +/** +* @desc: get node color (text color) +* @param: itemId - id of node +* @type: public +* @return: color of node (empty string for default color); +* @topic: 6 +*/ + dhtmlXTreeObject.prototype.getItemColor=function(itemId) + { + var temp=this._globalIdStorageFind(itemId); + if (!temp) return 0; + + var res= new Object(); + if (temp.acolor) res.acolor=temp.acolor; + if (temp.scolor) res.scolor=temp.scolor; + return res; + }; +/** +* @desc: set node text color +* @param: itemId - id of node +* @param: defaultColor - node color +* @param: selectedColor - selected node color +* @type: public +* @topic: 6 +*/ + dhtmlXTreeObject.prototype.setItemColor=function(itemId,defaultColor,selectedColor) + { + if ((itemId)&&(itemId.span)) + var temp=itemId; + else + var temp=this._globalIdStorageFind(itemId); + if (!temp) return 0; + else { + if (temp.i_sel) + { if (selectedColor) temp.span.style.color=selectedColor; } + else + { if (defaultColor) temp.span.style.color=defaultColor; } + + if (selectedColor) temp.scolor=selectedColor; + if (defaultColor) temp.acolor=defaultColor; + } + }; + +/** +* @desc: return node text +* @param: itemId - id of node +* @type: public +* @return: text of item (with HTML formatting, if any) +* @topic: 6 +*/ + dhtmlXTreeObject.prototype.getItemText=function(itemId) + { + var temp=this._globalIdStorageFind(itemId); + if (!temp) return 0; + return(temp.htmlNode.childNodes[0].childNodes[0].childNodes[3].childNodes[0].innerHTML); + }; +/** +* @desc: return parent item id +* @param: itemId - id of node +* @type: public +* @return: id of parent item +* @topic: 4 +*/ + dhtmlXTreeObject.prototype.getParentId=function(itemId) + { + var temp=this._globalIdStorageFind(itemId); + if ((!temp)||(!temp.parentObject)) return ""; + return temp.parentObject.id; + }; + + + +/** +* @desc: change item id +* @type: public +* @param: itemId - old node id +* @param: newItemId - new node id +* @topic: 4 +*/ + dhtmlXTreeObject.prototype.changeItemId=function(itemId,newItemId) + { + if (itemId==newItemId) return; + var temp=this._globalIdStorageFind(itemId); + if (!temp) return 0; + temp.id=newItemId; + temp.span.contextMenuId=newItemId; + this._idpull[newItemId]=this._idpull[itemId]; + delete this._idpull[itemId]; + }; + + +/** +* @desc: mark selected item as cut +* @type: public +* @topic: 2 +*/ + dhtmlXTreeObject.prototype.doCut=function(){ + if (this.nodeCut) this.clearCut(); + this.nodeCut=(new Array()).concat(this._selected); + for (var i=0; i=2) + { + + this._correctPlus(Nodes[targetObject.childsCount-2]); + this._correctLine(Nodes[targetObject.childsCount-2]); + } + + this._correctPlus(Nodes[targetObject.childsCount-1]); + //this._correctLine(Nodes[targetObject.childsCount-1]); + + + if (this.tscheck) this._correctCheckStates(targetObject); + if (oldTree.tscheck) oldTree._correctCheckStates(z); + + } + + //fix source parent + + if (c>1) { oldTree._correctPlus(z.childNodes[c-2]); + oldTree._correctLine(z.childNodes[c-2]); + } + + +// if (z.childsCount==0) + oldTree._correctPlus(z); + oldTree._correctLine(z); + + + this.callEvent("onDrop",[itemObject.id,targetObject.id,(beforeNode?beforeNode.id:null),oldTree,targetObject.treeNod]); + return itemObject.id; + }; + + + +/** +* @desc: recursive set default styles for node +* @type: private +* @param: itemObject - target node object +* @topic: 6 +*/ + dhtmlXTreeObject.prototype._clearStyles=function(itemObject){ + if (!itemObject.htmlNode) return; //some weird case in SRND mode + var td1=itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[1]; + var td3=td1.nextSibling.nextSibling; + + itemObject.span.innerHTML=itemObject.label; + itemObject.i_sel=false; + + if (itemObject._aimgs) + this.dragger.removeDraggableItem(td1.nextSibling); + + if (this.checkBoxOff) { + td1.childNodes[0].style.display=""; + td1.childNodes[0].onclick=this.onCheckBoxClick; + this._setSrc(td1.childNodes[0],this.imPath+this.checkArray[itemObject.checkstate]); + } + else td1.childNodes[0].style.display="none"; + td1.childNodes[0].treeNod=this; + + this.dragger.removeDraggableItem(td3); + if (this.dragAndDropOff) this.dragger.addDraggableItem(td3,this); + if (this._aimgs) this.dragger.addDraggableItem(td1.nextSibling,this); + + td3.childNodes[0].className="standartTreeRow"; + td3.onclick=this.onRowSelect; td3.ondblclick=this.onRowClick2; + td1.previousSibling.onclick=this.onRowClick; + + this._correctLine(itemObject); + this._correctPlus(itemObject); + for (var i=0; i
    "; + dh+="
    If you think that error can be caused by dhtmlxtree press the 'Generate report' button and send generated report to support@dhtmlx.com
    "; + dh+=""; + dh+="
    "; + d.innerHTML=dh; + document.body.appendChild(d); + return true; +}; + +function dhtmlxtreeErrorReport(a,b,c){ + var str=a+" ["+b+"]"; + if (a=='LoadXML') + { + str+="
    "+c[0].responseText+"
    "+c[0].status; + } + + window.onerror(str, "none", "none"); +} + +function dhtmlxtreeReport(node){ + var that=node.parentNode; + that.lastChild.innerHTML=""; + var rep=that.childNodes[1].innerHTML; + for (var a=0; a<_all_used_trees.length; a++){ + var atree=_all_used_trees[a]; + rep+="\n\n Tree "+a+"\n"; + for (b in atree){ + if (typeof(atree[b])=="function") continue; + rep+=b+"="+atree[b]+"\n"; + } + rep+="---------------------\n"; + if (atree.XMLLoader){ + try{ + var z=atree.XMLLoader.getXMLTopNode("tree") + if (document.all) + rep+=z.xml+"\n"; + else{ + var xmlSerializer = new XMLSerializer(); + rep+=xmlSerializer.serializeToString(z)+"\n"; + } + } + catch(e){ + rep+="XML not recognised\n"; + } + } + + rep+="---------------------\n"; + for (var i in atree._idpull){ + var n=atree._idpull[i]; + if (typeof(n)!='object') continue; + rep+="Node: "+n.id; + rep+=" Childs: "+n.childsCount; + for (var j=0; j"+cont+""); + window[id]=t; + + var oninit = obj.getAttribute("oninit"); + if (oninit) eval(oninit); + return t; +} + +function dhx_init_trees(){ + var z=document.getElementsByTagName("div"); + for (var i=0; ibody div.dokuwiki textarea.edit{background:#fff url(./tpl/dhtmlx/images/inputshadow.png) repeat-x top;}div.dokuwiki input.edit,div.dokuwiki select.edit{font-size:100%;border:1px solid #8cacbb;color:#000;background-color:#fff;vertical-align:middle;margin:1px;padding:0.20em 0.3em;display:inline;}html>body div.dokuwiki input.edit,html>body div.dokuwiki select.edit{background:#fff url(./tpl/dhtmlx/images/inputshadow.png) repeat-x top;}div.dokuwiki select.edit{padding:0.1em 0;}div.dokuwiki input.missing{font-size:100%;border:1px solid #8cacbb;color:#000;background-color:#fcc;vertical-align:middle;margin:1px;padding:0.20em 0.3em;display:inline;}div.dokuwiki textarea.edit[disabled],div.dokuwiki textarea.edit[readonly],div.dokuwiki input.edit[disabled],div.dokuwiki input.edit[readonly],div.dokuwiki select.edit[disabled]{background-color:#f5f5f5!important;color:#666!important;}div.dokuwiki div.toolbar,div.dokuwiki div#wiki__editbar{margin:2px 0;text-align:left;}div.dokuwiki div#size__ctl{float:right;width:60px;height:2.7em;}div.dokuwiki #size__ctl img{cursor:pointer;}div.dokuwiki div#wiki__editbar div.editButtons{float:left;padding:0 1.0em 0.7em 0;}div.dokuwiki div#wiki__editbar div.summary{float:left;}div.dokuwiki .nowrap{white-space:nowrap;}div.dokuwiki div#draft__status{float:right;color:#638c9c;}div.dokuwiki div.license{padding:0.5em;font-size:90%;text-align:center;}div.dokuwiki form#dw__editform div.license{clear:left;font-size:90%;}div.dokuwiki input.button,div.dokuwiki button.button{border:1px solid #8cacbb;color:#000;background-color:#fff;vertical-align:middle;text-decoration:none;font-size:100%;cursor:pointer;margin:1px;padding:0.125em 0.4em;}html>body div.dokuwiki input.button,html>body div.dokuwiki button.button{background:#fff url(./tpl/dhtmlx/images/buttonshadow.png) repeat-x bottom;}* html div.dokuwiki input.button,* html div.dokuwiki button.button{height:1.8em;}div.dokuwiki div.secedit input.button{border:1px solid #8cacbb;color:#000;background-color:#fff;vertical-align:middle;text-decoration:none;margin:0;padding:0;font-size:10px;cursor:pointer;float:right;display:inline;}div.dokuwiki div.pagenav{margin:1em 0 0 0;}div.dokuwiki div.pagenav-prev{text-align:right;float:left;width:49%}div.dokuwiki div.pagenav-next{text-align:left;float:right;width:49%}div.dokuwiki a:link,div.dokuwiki a:visited{color:#436976;text-decoration:none;}div.dokuwiki a:hover,div.dokuwiki a:active{text-decoration:underline;}div.dokuwiki h1 a,div.dokuwiki h2 a,div.dokuwiki h3 a,div.dokuwiki h4 a,div.dokuwiki h5 a,div.dokuwiki a.nolink{text-decoration:none !important;}div.dokuwiki a.urlextern{background:transparent url(./tpl/dhtmlx/images/link_icon.gif) 0px 1px no-repeat;padding:1px 0px 1px 16px;}div.dokuwiki a.windows{background:transparent url(./tpl/dhtmlx/images/windows.gif) 0px 1px no-repeat;padding:1px 0px 1px 16px;}div.dokuwiki a.interwiki{}div.dokuwiki a.media{padding:0;}div.dokuwiki a.urlextern:link,div.dokuwiki a.windows:link,div.dokuwiki a.interwiki:link{color:#436976;}div.dokuwiki a.urlextern:visited,div.dokuwiki a.windows:visited,div.dokuwiki a.interwiki:visited{color:purple;}div.dokuwiki a.urlextern:hover,div.dokuwiki a.urlextern:active,div.dokuwiki a.windows:hover,div.dokuwiki a.windows:active,div.dokuwiki a.interwiki:hover,div.dokuwiki a.interwiki:active{color:#000;}div.dokuwiki a.mail{background:transparent url(./tpl/dhtmlx/images/mail_icon.gif) 0px 1px no-repeat;padding:1px 0px 1px 16px;}div.dokuwiki a.wikilink1{color:#058cb6 !important;}div.dokuwiki a.wikilink2{color:#666 !important;text-decoration:none !important;border-bottom:dashed 1px #666 !important;}div.dokuwiki a.wikilink2:hover{border-bottom:none !important;}div.dokuwiki div.preview{background-color:#f5f5f5;margin:0 0 0 2em;padding:4px;border:1px dashed #000;}div.dokuwiki div.breadcrumbs{background-color:#f5f5f5;color:#666;font-size:80%;padding:0 0 0 4px;}div.dokuwiki p br{clear:both;}div.dokuwiki .last{width:300px;}div.dokuwiki span.user{color:#ccc;font-size:90%;}div.dokuwiki li.minor{color:#666;font-style:italic;}td .level4 .media img{margin:0 5px 0 0;float:left;width:22px;}div.dokuwiki img.media{margin-bottom:-5px;padding-right:4px;}div.dokuwiki img.medialeft{border:0;float:left;margin:0 1.5em 0 0;}div.dokuwiki img.mediaright{border:0;float:right;margin:0 0 0 1.5em;}div.dokuwiki img.mediacenter{border:0;display:block;margin:0 auto;}div.dokuwiki img.middle{vertical-align:middle;}div.dokuwiki acronym{cursor:help;border-bottom:1px dotted #000;}div.dokuwiki h1,div.dokuwiki h2,div.dokuwiki h3,div.dokuwiki h4,div.dokuwiki h5{background-color:inherit;font-size:100%;font-weight:normal;margin:0 0 1em 0;padding:0.5em 0 0 0;clear:left;}div.dokuwiki h1{font-family:tahoma,arial,helvetica;font-size:27px;margin:30px 0 20px 0;}div.dokuwiki h2{text-align:left;font-family:tahoma,arial,helvetica;font-size:25px;color:#b5b5b5;}div.dokuwiki h3{font-size:18px;border-bottom:none;padding-top:20px;}div.dokuwiki h4{font-size:20px;color:#b5b5b5 !important;margin:10px 0 20px 0;font-family:arial;}div.dokuwiki h5{font-size:100%;color:#666 !important;border-bottom:none;font-weight:bold;border-top:1px dotted #666;line-height:5px;margin-right:50px;}div.dokuwiki div.level1{margin-left:0;}div.dokuwiki div.level2{margin-left:0;}div.dokuwiki div.level3{margin-left:0;}div.dokuwiki div.level4{margin-left:0;}div.dokuwiki div.level5{margin-left:0}div.level4 ul{line-height:22px;list-style-type:square !important;list-style-image:none !important;margin-left:35px;color:#638c9c;}div.dokuwiki ul{line-height:22px;list-style-type:none;list-style-type:circle;margin:0 0 20px 35px;color:#638c9c;}div.dokuwiki ol{line-height:1.5em;list-style-image:none;margin:0 0 1em 3.5em;color:#638c9c;font-weight:bold;}div.dokuwiki li ul{margin-bottom:0;}div.dokuwiki li ol{margin-bottom:0;}div.dokuwiki .li{color:#666;font-weight:normal;}div.dokuwiki ol{list-style-type:decimal}div.dokuwiki ol ol{list-style-type:upper-roman}div.dokuwiki ol ol ol{list-style-type:lower-alpha}div.dokuwiki ol ol ol ol{list-style-type:lower-greek}div.dokuwiki li.open{list-style-image:url(./tpl/dhtmlx/images/open.gif);}div.dokuwiki li.closed{list-style-image:url(./tpl/dhtmlx/images/closed.gif);}div.dokuwiki blockquote{border-left:2px solid #8cacbb;padding-left:3px;}div.dokuwiki pre{font-size:120%;padding:0.5em;border:1px dashed #8cacbb;color:#000;overflow:auto;}div.dokuwiki pre.pre{background-color:#f7f9fa;}div.dokuwiki pre.code{background-color:#f7f9fa;}div.dokuwiki code{font-size:120%;}div.dokuwiki pre.file{background-color:#dee7ec;}div.dokuwiki table.inline{background-color:#fff;border-spacing:0px;border-collapse:collapse;}div.dokuwiki table.inline th{padding:3px;border:1px solid #8cacbb;background-color:#dee7ec;}div.dokuwiki table.inline td{padding:3px;border:1px solid #8cacbb;}div.dokuwiki div.toc{position:absolute;right:0;top:80px;float:right;width:360px;background:transparent url(./tpl/dhtmlx/images/bookmark.gif) no-repeat;font-size:80%;clear:both;}div.dokuwiki div.tocheader{text-align:left;font-weight:bold;padding:3px;font-family:arial;font-size:22px;color:#b5b5b5;margin:30px 0 2px 70px;}#toc__inside a.toc{font-family:verdana;font-size:12px;color:#058cb6 !important;line-height:22px;padding-left:10px;outline:none;}#toc__inside a.toc:hover{border-bottom:1px #058cb6 dashed;text-decoration:none;}div.dokuwiki #toc__inside{text-align:left;padding:5px 0 0 48px;}div.dokuwiki ul.toc{list-style-type:none;list-style-image:none;line-height:1.2em;padding-left:1em;padding-top:10px;margin:0;}div.dokuwiki ul.toc li{background:transparent url(./tpl/dhtmlx/images/toc-arrow.gif) 0 0.6em no-repeat;padding-left:0.4em;}div.dokuwiki ul.toc li.clear{background-image:none;padding-left:0.4em;}div.dokuwiki a.toc:link,div.dokuwiki a.toc:visited{color:#436976;}div.dokuwiki a.toc:hover,div.dokuwiki a.toc:active{color:#000;}div.dokuwiki table.diff{background-color:#fff;width:100%;}div.dokuwiki td.diff-blockheader{font-weight:bold;}div.dokuwiki table.diff th{border-bottom:1px solid #8cacbb;font-size:110%;width:50%;font-weight:normal;text-align:left;}div.dokuwiki table.diff th a{font-weight:bold;}div.dokuwiki table.diff th span.user{color:#000;font-size:80%;}div.dokuwiki table.diff th span.sum{font-size:80%;font-weight:bold;}div.dokuwiki table.diff th.minor{font-style:italic;}div.dokuwiki table.diff td{font-family:monospace;font-size:100%;}div.dokuwiki td.diff-addedline{background-color:#dfd;}div.dokuwiki td.diff-deletedline{background-color:#ffb;}div.dokuwiki td.diff-context{background-color:#f5f5f5;}div.dokuwiki table.diff td.diff-addedline strong,div.dokuwiki table.diff td.diff-deletedline strong{color:red;}div.dokuwiki div.footnotes{clear:both;border-top:1px solid #8cacbb;padding-left:1em;margin-top:1em;}div.dokuwiki div.fn{font-size:90%;}div.dokuwiki a.fn_bot{font-weight:bold;}div.insitu-footnote{font-size:80%;line-height:1.2em;border:1px solid #8cacbb;background-color:#f7f9fa;text-align:left;padding:4px;max-width:40%;}* html .insitu-footnote pre.code,* html .insitu-footnote pre.file{padding-bottom:18px;}div.dokuwiki .search_result{margin-bottom:6px;padding:10px 15px 15px 0;border:dotted 1px #ccc;}div.dokuwiki .search_result:hover{background:url("./tpl/dhtmlx/images/search-rez-bg.png");}div.dokuwiki .search_snippet{color:#ccc;font-size:12px;margin:15px 0 0 22px;}div.search_result a.wikilink1{display:inline-block;background:url("./tpl/dhtmlx/images/search-rezult.gif") no-repeat 0 1px;padding-left:22px;}div.dokuwiki .search_cnt{color:#666;}div.dokuwiki .search_sep{color:#000;}div.dokuwiki .search_hit{color:black;}div.dokuwiki strong.search_hit{font-weight:normal;}div.dokuwiki div.search_quickresult{margin:0 0 15px 0;padding:10px 15px 15px 22px;border:dotted 1px #ccc;background:url("./tpl/dhtmlx/images/search-quick-rezult-bg.gif");}div.search_quickresult h3{font-size:24px !important;font-family:tahoma,arial,helvetica;color:#ccc;padding:10px 0 0 0;}div.dokuwiki div.search_quickresult h3{margin:0 0 1.0em 0;font-size:1em;font-weight:bold;}div.dokuwiki ul.search_quickhits{margin:0;}div.dokuwiki ul.search_quickhits li{list-style:none;}div.dokuwiki ul.search_quickhits a{color:white !important;display:inline-block;background:url("./tpl/dhtmlx/images/search-rezult-dark.gif") no-repeat 0 1px;padding-left:18px;}div.footerinc{text-align:center;}.footerinc a img{opacity:0.5;border:0;}.footerinc a:hover img{opacity:1;}div.dokuwiki div.ajax_qsearch{position:absolute;right:237px;;width:200px;opacity:0.9;display:none;font-size:80%;line-height:1.2em;border:1px solid #8cacbb;background-color:#f7f9fa;text-align:left;padding:4px;}button.toolbutton{background-color:#fff;padding:0px;margin:0 1px 0 0;border:1px solid #8cacbb;cursor:pointer;}html>body button.toolbutton{background:#fff url(./tpl/dhtmlx/images/buttonshadow.png) repeat-x bottom;}div.picker{width:250px;border:1px solid #8cacbb;background-color:#dee7ec;}button.pickerbutton{padding:0px;margin:0 1px 1px 0;border:0;background-color:transparent;font-size:80%;cursor:pointer;}div.dokuwiki div.img_big{float:left;margin-right:0.5em;}div.dokuwiki dl.img_tags{float:left;width:50%;}div.dokuwiki dl.img_tags dt{font-weight:bold;background-color:#dee7ec;}div.dokuwiki dl.img_tags dd{background-color:#f5f5f5;}div.dokuwiki div.imagemeta{color:#666;font-size:70%;line-height:95%;}div.dokuwiki div.imagemeta img.thumb{float:left;margin-right:0.1em;}#dhtmlxlayout{height:54px;width:128px;background:transparent url(./tpl/dhtmlx/images/logo_layout.gif) no-repeat;font-size:0px;color:white;overflow:hidden;display:block;}#dhtmlxaccordion{height:54px;width:160px;background:transparent url(./tpl/dhtmlx/images/logo_accordion.gif) no-repeat;font-size:0px;color:white;overflow:hidden;display:block;}#dhtml_tabbar_guide_and_samples{height:54px;width:156px;background:transparent url(./tpl/dhtmlx/images/logo_tabbar.gif) no-repeat;font-size:0px;color:white;overflow:hidden;display:block;}#dhtmlxwindows{height:54px;width:150px;background:transparent url(./tpl/dhtmlx/images/logo_windows.gif) no-repeat;font-size:0px;color:white;overflow:hidden;display:block;}#dhtmlxgrid{height:54px;width:120px;background:transparent url(./tpl/dhtmlx/images/logo_grid.gif) no-repeat;font-size:0px;color:white;overflow:hidden;display:block;}#dhtmlxtree{height:54px;width:120px;background:transparent url(./tpl/dhtmlx/images/logo_tree.gif) no-repeat;font-size:0px;color:white;overflow:hidden;display:block;}#treegrid_extension{height:54px;width:156px;background:transparent url(./tpl/dhtmlx/images/logo_treegrid.gif) no-repeat;font-size:0px;color:white;overflow:hidden;display:block;}#dhtmlxfolders{height:54px;width:144px;background:transparent url(./tpl/dhtmlx/images/logo_folders.gif) no-repeat;font-size:0px;color:white;overflow:hidden;display:block;}#dhtmlxmenu{height:54px;width:170px;background:transparent url(./tpl/dhtmlx/images/logo_menu.gif) no-repeat;font-size:0px;color:white;overflow:hidden;display:block;}#dhtmlxtoolbar{height:54px;width:170px;background:transparent url(./tpl/dhtmlx/images/logo_toolbar.gif) no-repeat;font-size:0px;color:white;overflow:hidden;display:block;}#dhtml_combobox_guide_and_samples{height:54px;width:156px;background:transparent url(./tpl/dhtmlx/images/logo_combo.gif) no-repeat;font-size:0px;color:white;overflow:hidden;display:block;}#dhtmlxcalendar{height:54px;width:156px;background:transparent url(./tpl/dhtmlx/images/logo_calendar.gif) no-repeat;font-size:0px;color:white;overflow:hidden;display:block;}#dhtmlxcolorpicker{height:54px;width:150px;background:transparent url(./tpl/dhtmlx/images/logo_colorpicker.gif) no-repeat;font-size:0px;color:white;overflow:hidden;display:block;}#dhtmlxslider{height:54px;width:138px;background:transparent url(./tpl/dhtmlx/images/logo_slider.gif) no-repeat;font-size:0px;color:white;overflow:hidden;display:block;}#dhtmlxeditor{height:54px;width:129px;background:transparent url(./tpl/dhtmlx/images/logo_editor.gif) no-repeat;font-size:0px;color:white;overflow:hidden;display:block;}#dhtmlxvault{height:54px;width:128px;background:transparent url(./tpl/dhtmlx/images/logo_vault.gif) no-repeat;font-size:0px;color:white;overflow:hidden;display:block;}#dhtmlxajax_library_guide_and_samples{height:54px;width:107px;background:transparent url(./tpl/dhtmlx/images/logo_ajax.gif) no-repeat;font-size:0px;color:white;overflow:hidden;display:block;}#dhtmlxconnector{height:54px;width:160px;background:transparent url(./tpl/dhtmlx/images/logo_connector.gif) no-repeat;font-size:0px;color:white;overflow:hidden;display:block;}#dhtmlxscheduler{height:54px;width:160px;background:transparent url(./tpl/dhtmlx/images/logo_scheduler.gif) no-repeat;font-size:0px;color:white;overflow:hidden;display:block;}.backlink{position:relative;border:solid 1px #CCC;float:left;padding:2px 8px 0 5px;height:23px;margin:3px 0 18px 0;}.backlink:hover{background-color:#eaeff4;border-color:#69c;}.backlink a.wikilink1:hover{border-bottom:dotted 1px;text-decoration:none;}.arrow{float:left;background:url("./tpl/dhtmlx/images/arrow.gif") no-repeat;width:8px;height:23px;margin:5px 3px;}-,.last_backlink{padding-bottom:2px;padding-top:0;}#media__manager{height:100%;overflow:hidden;}#media__left{width:30%;border-right:solid 1px #8cacbb;height:100%;overflow:auto;position:absolute;left:0;}#media__right{width:69.7%;height:100%;overflow:auto;position:absolute;right:0;}#media__manager h1{margin:0;padding:0;margin-bottom:0.5em;}#media__tree img{float:left;padding:0.5em 0.3em 0 0;}#media__tree ul{list-style-type:none;list-style-image:none;margin-left:1.5em;}#media__tree li{clear:left;list-style-type:none;list-style-image:none;}*+html #media__tree li,* html #media__tree li{border:1px solid #fff;}#media__opts{padding-left:1em;margin-bottom:0.5em;}#media__opts input{float:left;display:block;margin-top:4px;position:absolute;}*+html #media__opts input,* html #media__opts input{position:static;}#media__opts label{display:block;float:left;margin-left:20px;margin-bottom:4px;}*+html #media__opts label,* html #media__opts label{margin-left:10px;}#media__opts br{clear:left;}#media__content img.load{margin:1em auto;}#media__content #scroll__here{border:1px dashed #8cacbb;}#media__content .odd{background-color:#f7f9fa;padding:0.4em;}#media__content .even{padding:0.4em;}#media__content a.mediafile{margin-right:1.5em;font-weight:bold;}#media__content div.detail{padding:0.3em 0 0.3em 2em;}#media__content div.detail div.thumb{float:left;width:130px;text-align:center;margin-right:0.4em;}#media__content img.btn{vertical-align:text-bottom;}#media__content div.example{color:#666;margin-left:1em;}#media__content div.upload{font-size:90%;padding:0 0.5em 0.5em 0.5em;}#media__content form#dw__upload,#media__content div#dw__flashupload{display:block;border-bottom:solid 1px #8cacbb;padding:0 0.5em 1em 0.5em;}#media__content form#dw__upload fieldset{padding:0;margin:0;border:none;width:auto;}#media__content form#dw__upload p{text-align:left;padding:0.25em 0;margin:0;line-height:1.0em;}#media__content form#dw__upload label.check{float:none;width:auto;margin-left:11.5em;}#media__content form.meta{display:block;padding:0 0 1em 0;}#media__content form.meta label{display:block;width:25%;float:left;font-weight:bold;margin-left:1em;clear:left;}#media__content form.meta .edit{font:100% "Lucida Grande",Verdana,Lucida,Helvetica,Arial,sans-serif;float:left;width:70%;padding-right:0;padding-left:0.2em;margin:2px;}#media__content form.meta textarea.edit{height:8em;}#media__content form.meta div.metafield{clear:left;}#media__content form.meta div.buttons{clear:left;margin-left:20%;padding-left:1em;} + +div.dokuwiki form.button{ display:none; } \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/accordion.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/accordion.gif new file mode 100755 index 0000000000..e456fffb44 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/accordion.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/ajax.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/ajax.gif new file mode 100755 index 0000000000..ce5533de09 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/ajax.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/arrow.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/arrow.gif new file mode 100755 index 0000000000..00f1144951 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/arrow.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/bullet.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/bullet.gif new file mode 100755 index 0000000000..cf1706e036 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/bullet.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/calendar.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/calendar.gif new file mode 100755 index 0000000000..2a8bc0e63c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/calendar.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/chart.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/chart.gif new file mode 100755 index 0000000000..359a325f92 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/chart.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/chm.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/chm.gif new file mode 100755 index 0000000000..6516b100ab Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/chm.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/colorpicker.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/colorpicker.gif new file mode 100755 index 0000000000..1992defbed Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/colorpicker.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/combo.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/combo.gif new file mode 100755 index 0000000000..8dba9afe5b Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/combo.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/connector.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/connector.gif new file mode 100755 index 0000000000..62804cbf5e Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/connector.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/dataprocessor.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/dataprocessor.gif new file mode 100755 index 0000000000..35e6c60f9f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/dataprocessor.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/dataview.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/dataview.gif new file mode 100755 index 0000000000..43e2284ca4 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/dataview.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/editor.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/editor.gif new file mode 100755 index 0000000000..ea3c121195 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/editor.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/file.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/file.gif new file mode 100755 index 0000000000..31d23fd447 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/file.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/file_link.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/file_link.gif new file mode 100755 index 0000000000..47f7e84988 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/file_link.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/folders.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/folders.gif new file mode 100755 index 0000000000..f8e02bbde6 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/folders.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/form.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/form.gif new file mode 100755 index 0000000000..d96f5c28da Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/form.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/gantt.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/gantt.gif new file mode 100755 index 0000000000..343f4d5b1f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/gantt.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/grid.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/grid.gif new file mode 100755 index 0000000000..db0832caf1 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/grid.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/layout.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/layout.gif new file mode 100755 index 0000000000..f37427e768 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/layout.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/menu.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/menu.gif new file mode 100755 index 0000000000..2fbd60671c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/menu.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/none.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/none.gif new file mode 100755 index 0000000000..f8a866519c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/none.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/old.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/old.gif new file mode 100755 index 0000000000..680e116e2b Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/old.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/pdf.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/pdf.gif new file mode 100755 index 0000000000..e315235a26 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/pdf.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/scheduler.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/scheduler.gif new file mode 100755 index 0000000000..ea6c9aadd1 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/scheduler.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/slider.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/slider.gif new file mode 100755 index 0000000000..3fab6d659c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/slider.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/source.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/source.gif new file mode 100755 index 0000000000..b226184220 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/source.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/tabbar.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/tabbar.gif new file mode 100755 index 0000000000..8a35665af4 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/tabbar.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/toolbar.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/toolbar.gif new file mode 100755 index 0000000000..92ef2cdbf3 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/toolbar.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/tree.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/tree.gif new file mode 100755 index 0000000000..c290270fba Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/tree.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/treegrid.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/treegrid.gif new file mode 100755 index 0000000000..bb752c8d0a Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/treegrid.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/vault.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/vault.gif new file mode 100755 index 0000000000..c3be39783a Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/vault.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/windows.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/windows.gif new file mode 100755 index 0000000000..a5d59fe593 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/icons/windows.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/bz2.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/bz2.png new file mode 100755 index 0000000000..d48cae0384 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/bz2.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/conf.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/conf.png new file mode 100755 index 0000000000..ddffe6fd1a Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/conf.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/deb.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/deb.png new file mode 100755 index 0000000000..9229d87838 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/deb.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/doc.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/doc.png new file mode 100755 index 0000000000..932567f8a9 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/doc.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/file.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/file.png new file mode 100755 index 0000000000..817014fa73 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/file.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/gif.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/gif.png new file mode 100755 index 0000000000..b4c07a9120 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/gif.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/gz.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/gz.png new file mode 100755 index 0000000000..2426bd169c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/gz.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/htm.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/htm.png new file mode 100755 index 0000000000..1a6812185b Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/htm.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/html.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/html.png new file mode 100755 index 0000000000..672cbce420 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/html.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/jpeg.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/jpeg.png new file mode 100755 index 0000000000..aa4cc23a5b Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/jpeg.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/jpg.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/jpg.png new file mode 100755 index 0000000000..1fb6cc1fbf Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/jpg.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/odc.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/odc.png new file mode 100755 index 0000000000..47f65c84d3 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/odc.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/odf.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/odf.png new file mode 100755 index 0000000000..a2fbc5195a Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/odf.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/odg.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/odg.png new file mode 100755 index 0000000000..434f18262f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/odg.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/odi.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/odi.png new file mode 100755 index 0000000000..74f6303d3d Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/odi.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/odp.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/odp.png new file mode 100755 index 0000000000..a5c77f845f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/odp.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/ods.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/ods.png new file mode 100755 index 0000000000..2ab1273f0d Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/ods.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/odt.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/odt.png new file mode 100755 index 0000000000..b0c21fc1fd Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/odt.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/pdf.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/pdf.png new file mode 100755 index 0000000000..638066dea6 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/pdf.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/png.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/png.png new file mode 100755 index 0000000000..f0b5b00eee Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/png.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/ppt.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/ppt.png new file mode 100755 index 0000000000..adaefc6025 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/ppt.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/ps.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/ps.png new file mode 100755 index 0000000000..c51c763ab3 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/ps.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/rar.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/rar.png new file mode 100755 index 0000000000..a6af4d1cac Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/rar.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/rpm.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/rpm.png new file mode 100755 index 0000000000..22212eafac Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/rpm.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/rtf.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/rtf.png new file mode 100755 index 0000000000..d8bada5fe1 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/rtf.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/swf.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/swf.png new file mode 100755 index 0000000000..0729ed0203 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/swf.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/sxc.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/sxc.png new file mode 100755 index 0000000000..419c183c1f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/sxc.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/sxd.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/sxd.png new file mode 100755 index 0000000000..5801bb23a6 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/sxd.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/sxi.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/sxi.png new file mode 100755 index 0000000000..2a94290d70 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/sxi.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/sxw.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/sxw.png new file mode 100755 index 0000000000..6da97beb35 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/sxw.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/tar.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/tar.png new file mode 100755 index 0000000000..5a2f717fc5 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/tar.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/tgz.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/tgz.png new file mode 100755 index 0000000000..141acf5647 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/tgz.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/txt.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/txt.png new file mode 100755 index 0000000000..da20009c6e Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/txt.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/xls.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/xls.png new file mode 100755 index 0000000000..e8cd58dc0f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/xls.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/xml.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/xml.png new file mode 100755 index 0000000000..eb46323979 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/xml.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/zip.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/zip.png new file mode 100755 index 0000000000..999ffbe807 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/fileicons/zip.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/smileys/delete.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/smileys/delete.gif new file mode 100755 index 0000000000..d668348b91 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/smileys/delete.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/smileys/fixme.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/smileys/fixme.gif new file mode 100755 index 0000000000..b66ea99d65 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/images/smileys/fixme.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/6_IE_inside2.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/6_IE_inside2.png new file mode 100755 index 0000000000..a0ecd45b96 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/6_IE_inside2.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/Thumbs.db b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/Thumbs.db new file mode 100755 index 0000000000..36f7388254 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/Thumbs.db differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/arrow.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/arrow.gif new file mode 100755 index 0000000000..20858cbe43 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/arrow.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/bookmark.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/bookmark.gif new file mode 100755 index 0000000000..01df053daa Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/bookmark.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/border-dotted-ccc.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/border-dotted-ccc.gif new file mode 100755 index 0000000000..a47b6c1eef Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/border-dotted-ccc.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/border-dotted.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/border-dotted.gif new file mode 100755 index 0000000000..565aeafebc Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/border-dotted.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/bullet.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/bullet.gif new file mode 100755 index 0000000000..bd8f792a13 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/bullet.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/doc-button.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/doc-button.png new file mode 100755 index 0000000000..9ede7a1492 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/doc-button.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/doc-button_inact.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/doc-button_inact.png new file mode 100755 index 0000000000..c8642b872f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/doc-button_inact.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/footer-bg.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/footer-bg.gif new file mode 100755 index 0000000000..311fa6bd8f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/footer-bg.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/footer-logo.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/footer-logo.gif new file mode 100755 index 0000000000..b153745169 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/footer-logo.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/grid-placeholder.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/grid-placeholder.gif new file mode 100755 index 0000000000..fca1ef0fee Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/grid-placeholder.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/head_bg.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/head_bg.png new file mode 100755 index 0000000000..056fc14c7c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/head_bg.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo.png new file mode 100755 index 0000000000..9422ba3ab0 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_accordion.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_accordion.gif new file mode 100755 index 0000000000..dea40c3d06 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_accordion.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_ajax.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_ajax.gif new file mode 100755 index 0000000000..2329a7ed3f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_ajax.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_calendar.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_calendar.gif new file mode 100755 index 0000000000..368d0b606e Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_calendar.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_chart.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_chart.gif new file mode 100755 index 0000000000..1666ccb2e7 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_chart.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_colorpicker.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_colorpicker.gif new file mode 100755 index 0000000000..3974fe601c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_colorpicker.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_combo.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_combo.gif new file mode 100755 index 0000000000..826b5e7410 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_combo.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_connector.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_connector.gif new file mode 100755 index 0000000000..7e009c8954 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_connector.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_dataview.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_dataview.gif new file mode 100755 index 0000000000..628e554840 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_dataview.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_editor.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_editor.gif new file mode 100755 index 0000000000..e8deaab02e Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_editor.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_folders.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_folders.gif new file mode 100755 index 0000000000..dd30c8f9bf Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_folders.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_form.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_form.gif new file mode 100755 index 0000000000..1ecd103a0f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_form.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_gantt.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_gantt.gif new file mode 100755 index 0000000000..72408baf8a Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_gantt.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_grid.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_grid.gif new file mode 100755 index 0000000000..59424e3a0e Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_grid.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_layout.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_layout.gif new file mode 100755 index 0000000000..271d6f9306 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_layout.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_menu.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_menu.gif new file mode 100755 index 0000000000..d25d5d6c86 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_menu.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_scheduler.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_scheduler.gif new file mode 100755 index 0000000000..46d68b2a8d Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_scheduler.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_slider.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_slider.gif new file mode 100755 index 0000000000..4bf559bc60 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_slider.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_tabbar.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_tabbar.gif new file mode 100755 index 0000000000..ee4dd2c0f6 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_tabbar.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_toolbar.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_toolbar.gif new file mode 100755 index 0000000000..5bfd6ea1d2 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_toolbar.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_tree.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_tree.gif new file mode 100755 index 0000000000..49c40747c8 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_tree.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_treegrid.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_treegrid.gif new file mode 100755 index 0000000000..dc52999ae6 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_treegrid.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_vault.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_vault.gif new file mode 100755 index 0000000000..74556bd791 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_vault.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_windows.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_windows.gif new file mode 100755 index 0000000000..c884dee4f7 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/logo_windows.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/samples-but.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/samples-but.png new file mode 100755 index 0000000000..32e66bf3d6 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/samples-but.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/samples-but_inact.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/samples-but_inact.png new file mode 100755 index 0000000000..37a385d17a Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/samples-but_inact.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/search-button.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/search-button.png new file mode 100755 index 0000000000..95dc854319 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/search-button.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/search-field.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/search-field.png new file mode 100755 index 0000000000..b2e88f38b3 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/search-field.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/source-bg.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/source-bg.gif new file mode 100755 index 0000000000..f0608a13cb Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/source-bg.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/source.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/source.gif new file mode 100755 index 0000000000..2c194c9159 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/source.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/toc-arrow.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/toc-arrow.gif new file mode 100755 index 0000000000..5e0389e9f8 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/toc-arrow.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/toolbar5.944_left2.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/toolbar5.944_left2.png new file mode 100755 index 0000000000..dabcf312c5 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/img/toolbar5.944_left2.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/arrow.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/arrow.gif new file mode 100755 index 0000000000..20858cbe43 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/arrow.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/bookmark.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/bookmark.gif new file mode 100755 index 0000000000..01df053daa Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/bookmark.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/bullet.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/bullet.gif new file mode 100755 index 0000000000..b43de48a47 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/bullet.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/buttonshadow.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/buttonshadow.png new file mode 100755 index 0000000000..f60be309f7 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/buttonshadow.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/closed.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/closed.gif new file mode 100755 index 0000000000..8414d4d69f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/closed.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/doc-button.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/doc-button.png new file mode 100755 index 0000000000..9ede7a1492 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/doc-button.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/favicon.ico b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/favicon.ico new file mode 100755 index 0000000000..9f9239202d Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/favicon.ico differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/file.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/file.gif new file mode 100755 index 0000000000..2550f4448e Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/file.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/footer-bg.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/footer-bg.gif new file mode 100755 index 0000000000..311fa6bd8f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/footer-bg.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/footer-logo.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/footer-logo.gif new file mode 100755 index 0000000000..b153745169 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/footer-logo.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/head_bg.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/head_bg.png new file mode 100755 index 0000000000..056fc14c7c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/head_bg.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/link_icon.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/link_icon.gif new file mode 100755 index 0000000000..815ccb1b1c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/link_icon.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo.png new file mode 100755 index 0000000000..9422ba3ab0 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_accordion.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_accordion.gif new file mode 100755 index 0000000000..dea40c3d06 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_accordion.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_ajax.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_ajax.gif new file mode 100755 index 0000000000..2329a7ed3f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_ajax.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_calendar.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_calendar.gif new file mode 100755 index 0000000000..368d0b606e Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_calendar.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_colorpicker.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_colorpicker.gif new file mode 100755 index 0000000000..3974fe601c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_colorpicker.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_combo.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_combo.gif new file mode 100755 index 0000000000..826b5e7410 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_combo.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_connector.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_connector.gif new file mode 100755 index 0000000000..7e009c8954 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_connector.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_editor.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_editor.gif new file mode 100755 index 0000000000..e8deaab02e Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_editor.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_folders.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_folders.gif new file mode 100755 index 0000000000..dd30c8f9bf Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_folders.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_grid.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_grid.gif new file mode 100755 index 0000000000..59424e3a0e Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_grid.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_layout.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_layout.gif new file mode 100755 index 0000000000..271d6f9306 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_layout.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_menu.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_menu.gif new file mode 100755 index 0000000000..d25d5d6c86 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_menu.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_scheduler.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_scheduler.gif new file mode 100755 index 0000000000..46d68b2a8d Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_scheduler.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_slider.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_slider.gif new file mode 100755 index 0000000000..4bf559bc60 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_slider.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_tabbar.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_tabbar.gif new file mode 100755 index 0000000000..ee4dd2c0f6 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_tabbar.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_toolbar.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_toolbar.gif new file mode 100755 index 0000000000..5bfd6ea1d2 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_toolbar.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_tree.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_tree.gif new file mode 100755 index 0000000000..49c40747c8 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_tree.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_treegrid.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_treegrid.gif new file mode 100755 index 0000000000..dc52999ae6 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_treegrid.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_vault.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_vault.gif new file mode 100755 index 0000000000..74556bd791 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_vault.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_windows.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_windows.gif new file mode 100755 index 0000000000..c884dee4f7 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/logo_windows.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/mail_icon.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/mail_icon.gif new file mode 100755 index 0000000000..50a87a9a06 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/mail_icon.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/open.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/open.gif new file mode 100755 index 0000000000..f5d5c7e56f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/open.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/samples-button.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/samples-button.png new file mode 100755 index 0000000000..37a385d17a Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/samples-button.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-button.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-button.png new file mode 100755 index 0000000000..95dc854319 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-button.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-field.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-field.png new file mode 100755 index 0000000000..b2e88f38b3 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-field.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-hits.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-hits.png new file mode 100755 index 0000000000..8d3ef25659 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-hits.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-quick-rezult-bg.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-quick-rezult-bg.gif new file mode 100755 index 0000000000..32bc436c85 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-quick-rezult-bg.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-rez-bg.png b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-rez-bg.png new file mode 100755 index 0000000000..4bbbad504e Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-rez-bg.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-rezult-dark.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-rezult-dark.gif new file mode 100755 index 0000000000..3e1b4b074f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-rezult-dark.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-rezult.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-rezult.gif new file mode 100755 index 0000000000..8b0ac400e5 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/search-rezult.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/toc-arrow.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/toc-arrow.gif new file mode 100755 index 0000000000..5e0389e9f8 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/toc-arrow.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/tocdot2.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/tocdot2.gif new file mode 100755 index 0000000000..3d39c2e739 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/codebase/tpl/dhtmlx/images/tocdot2.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/_media.txt b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/_media.txt new file mode 100755 index 0000000000..0a96b944ef --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/_media.txt @@ -0,0 +1,7 @@ +icons___file.gif +icons___connector.gif +dhtmlxconnector___file_system.png +dhtmlxconnector___multitable_tree.png +dhtmlxconnector___treegrid_multitable.png +dhtmlxconnector___tree_group.png +dhtmlxconnector___defining_header_server.png diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/_structure.xml b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/_structure.xml new file mode 100755 index 0000000000..1bfc68213f --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/_structure.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___base_concept.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___base_concept.html new file mode 100755 index 0000000000..c1f34df6ca --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___base_concept.html @@ -0,0 +1,162 @@ + + + + dhtmlxconnector:base_concept [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    Multi-user sync

    +
    + +

    + +Connector 1.x can work in multi-user mode, in such mode all users will see changes of other users in real-time mode. +

    + +

    +To enable mode you need to +

    + +

    +a) init component with dataprocessor in default way +b) add to the server side code + +

    +
      	require("../../codebase/grid_connector.php");
    +	$grid = new GridConnector($res);
    +	$grid->enable_live_update('actions_table');  //this line!
    +

    + +Where actions_table - table in Db, which will be used for sync. data storage. It need to have the next structure. +

    +
    CREATE TABLE `actions_table` (
    +  `id` int(11) NOT NULL AUTO_INCREMENT,
    +  `dataId` int(11) NOT NULL,
    +  `type` varchar(255) NOT NULL,
    +  `user` varchar(255) NOT NULL,
    +  PRIMARY KEY (`id`)
    +) ENGINE=MyISAM;
    +

    +c) on client side, add the next code line after dataprocessor initialization +

    +
      dp.setAutoUpdate(2000);
    +

    + +where parameter of command - delay between update calls. +

    + +

    +That is all, now all users of component will be able to see changes of other users. +

    + +

    +It works for all connector and all components. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___client_side_other_components.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___client_side_other_components.html new file mode 100755 index 0000000000..8b646a9f0b --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___client_side_other_components.html @@ -0,0 +1,224 @@ + + + + dhtmlxconnector:client_side_other_components [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +
    +
    Table of Contents
    +
    + + +
    +
    + + +

    +Other components can be initialized in the way similar to the grid's one +

    + + + +

    TreeGrid

    +
    + +

    +For TreeGrid in static mode + +

    +
    mygrid = new dhtmlXGridObject('gridbox');
    +mygrid.setColTypes("tree,...");
    +//...
    +mygrid.loadXML("connector.php");
    +

    +For TreeGrid in dynamic mode + +

    +
    mygrid = new dhtmlXGridObject('gridbox');
    +mygrid.setColTypes("tree,...");
    +//...
    +mygrid.kidsXmlFile="connector.php";
    +mygrid.loadXML("connector.php");
    +
    +
    +

    Tree

    +
    + +

    +For Tree in static mode + +

    +
    tree=new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0);
    +//...
    +tree.loadXML("connector.php");
    +

    +For Tree in dynamic mode + +

    +
    tree=new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0);
    +//...
    +tree.setXMLAutoLoading("connector.php");
    +tree.loadXML("connector.php");
    +
    +
    +

    Combo

    +
    + +

    +For combo in static mode + +

    +
    var z=new dhtmlXCombo("combo_zone2","alfa2",200);
    +z.loadXML("connector.php");
    +

    +For combo in auto-complete mode + +

    +
    var z=new dhtmlXCombo("combo_zone2","alfa2",200);
    +z.enableFilteringMode(true,"connector.php",true);
    +z.loadXML("connector.php");
    +
    +
    +

    Scheduler

    +
    +
    scheduler.init(some_obj)
    +scheduler.load("connector.php");
    +
    +
    +

    Form

    +
    +
    var z = new dhtmlXForm(someId);
    +z.load("connector.php");
    +
    +
    +

    DataView

    +
    +
    var z = new dhtmlXDataView({...});
    +z.load("connector.php");
    +
    +
    +

    Chart

    +
    +
    var z = new dhtmlXChart({...});
    +z.load("connector.php");
    +

    +If you want to use dataprocessor with Tree or TreeGrid, you will need to include connector.js same as for grid +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___combodataitem.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___combodataitem.html new file mode 100755 index 0000000000..f766ac6ae0 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___combodataitem.html @@ -0,0 +1,131 @@ + + + + dhtmlxconnector:combodataitem [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    ComboDataItem

    +
    + +

    + +Nest all methods of DataItem Object +

    + +
    + +

    select

    +
    + +

    +Mark options as selected + +

    +
      $dataItem->select();
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___complex_updates.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___complex_updates.html new file mode 100755 index 0000000000..b87af8a050 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___complex_updates.html @@ -0,0 +1,177 @@ + + + + dhtmlxconnector:complex_updates [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Complex updates

    +
    + +

    + +By default connector generates all create|update|delete queries automatically, based on configuration. But in some cases it may be necessary to define your own logic. +It can be done in one of two ways + +

    +
      +
    • defining custom SQL code for operation
      +
    • +
    • using server side events to customize operations
      +
    • +
    + +
    + +

    custom SQL code

    +
    + +

    +You can define your own SQL for specific action (Insert, Update or Delete) as follows: +

    +
            $gridConn->sql->attach("Update","Update tableA set name='{name}', price={price} where id={id}");
    +        //...
    +        $gridConn->render_sql(" .. ","id","price,name");
    +

    + +The parameters are the following: +

    +
      +
    • action name. Possible values are: “Updateâ€, “Insertâ€, “Deleteâ€
      +
    • +
    • SQL statement. It can use fields(or their aliases) which were mentioned in render_sql or render_table method used for loading data.
      +
    • +
    + +
    + +

    custom server side events

    +
    + +

    +Grid provides set of events, which can be used to handle server side action in your custom way +

    +
          //data preprocessing before update
    +      function my_update($data){
    +            $price = $data->get_value("price");
    +            $price = intval($price);
    +            $data->set_value("price");
    +      } 
    +      $conn->event->attach("beforeUpdate","my_update")
          //including additional field to request
    +      function my_update($data){
    +            $data->add_field("userId",1); //will be included in update
    +      } 
    +      $conn->event->attach("beforeUpdate","my_update")
          //fully custom code
    +      function my_update($data){
    +             $price=$data->get_value("price");
    +             $id=$data->get_value("id");
    +             $conn->sql->query("UPDATE some_table SET price='{$price}' where id={$id}");
    +             $data->success(); //if you have made custom update - mark operation as finished
    +      } 
    +      $conn->event->attach("beforeUpdate","my_update")
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___connector_object.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___connector_object.html new file mode 100755 index 0000000000..99cc6b9d36 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___connector_object.html @@ -0,0 +1,224 @@ + + + + dhtmlxconnector:connector_object [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    API of connector Objects

    +
    + +
    + +

    render_table

    +
    + +

    +configure connector to take data from single table + +

    +
       $conn->render_table($table,$id,$text,$extra,$relation);
    +

    + +Parameters: +

    +
      +
    • $table - name of table;
      +
    • +
    • $id - name of id field ;
      +
    • +
    • $text - comma separated list of data fields;
      +
    • +
    • $extra - comma separated list of extra fields, optional;
      +
    • +
    • $relation_id - used for building hierarchy in case of Tree and TreeGrid.
      +
    • +
    + +
    + +

    render_sql

    +
    + +

    +configure connector to take data based on provided SQL text + +

    +
       $conn->render_sql($sql,$id,$text,$extra,$relation);
    +

    + +Parameters: +

    +
      +
    • $sql - any sql code, which will be used as a base for data selection;
      +
    • +
    • $id - name of id field;
      +
    • +
    • $text - comma separated list of data fields;
      +
    • +
    • $extra - comma separated list of extra fields, optional;
      +
    • +
    • $relation_id - used for building hierarchy in case of Tree and TreeGrid.
      +
    • +
    + +
    + +

    set_encoding

    +
    + +

    +allows to set encoding, which will be used for generated XML (default encoding is UTF-8 ) + +

    +
        $conn->set_encoding("iso-8859-1");
    +

    + +Parameters: +

    +
      +
    • encoding name.
      +
    • +
    + +
    + +

    dynamic_loading

    +
    + +

    +enable dynamical loading mode for connector +

    + +
    + +

    enable_log

    +
    + +

    +enable logging for connector +

    + +
    + +

    is_select_mode

    +
    + +

    +returns current active mode: +

    +
      +
    • true for data select mode;
      +
    • +
    • false for data update mode.
      +
    • +
    +
       if ($conn->is_select_mode()){
    +      do_something();
    +   }
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___connectors_and_oracle.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___connectors_and_oracle.html new file mode 100755 index 0000000000..e1ef9ad4df --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___connectors_and_oracle.html @@ -0,0 +1,146 @@ + + + + dhtmlxconnector:connectors_and_oracle [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    Connectors and Oracle DB

    +
    + +

    + +Sample of init code , can be checked here +

    + +
    +
    +

    Inserting new records

    +
    + +

    +Oracle has not auto ID generation functionality , so you need to provide some custom ID for each insert operations. There are two ways to do such task + +

    +
      +
    • custom ID generation - id generated by PHP code
      +
    • +
    +
    	function pre_insert($data){
    +	    	$new_id = time()%10000; //any other ID generation logic can be used here
    +    		$data->add_field("EMPLOYEE_ID",$new_id);
    +	}
    +	$grid->event->attach("beforeInsert","pre_insert");
    +	$grid->render_table("EMPLOYEES","EMPLOYEE_ID","FIRST_NAME,LAST_NAME");
      +
    • use sequence for ID generation
      +
    • +
    +
    	$grid->sql->sequence("EMPLOYEES_INC.nextVal"); //sequence name
    +	$grid->render_table("EMPLOYEES","EMPLOYEE_ID","FIRST_NAME,LAST_NAME");
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___custom_queries.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___custom_queries.html new file mode 100755 index 0000000000..05ce111c63 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___custom_queries.html @@ -0,0 +1,220 @@ + + + + dhtmlxconnector:custom_queries [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + + + + +

    +

    + +

    + +

    Using connector for DB operation

    +
    + +

    + +When implementing custom queries , it may be necessary to execute some custom update against DB. +It possible to use connector's code, which will provide abstraction from underline DB +

    + +
    +
    +

    SQL queries

    +
    + +

    + +You can access DBWrapper object as + +

    +
    	$connector->sql
    +

    + +and use it for custom queries + +

    +
    	$connector->sql->query("DELETE FROM some_table WHERE ID=1");
    +

    + +or + +

    +
    	$res = $connector->sql->query("SELECT * FROM some_table WHERE ID=1");
    +	$data =  $connector->sql->get_next($res);
    +

    + +or + +

    +
    	$connector->sql->query("INSERT INTO some_table(type) VALUES('simple')");
    +	$id = $connector->sql->get_new_id();
    +
    +
    +

    Operation through connector

    +
    + +

    + +Connector object has 3 methods for manipulation with underline table +

    +
    	$connector->delete($id);
    +

    + +parameter - value of ID field, for which record need to be deleted +

    +
    	$connector->update(array(
    +		"type_id" => '1'
    +		"type" => 'simple'
    +	));
    +

    + +parameter - has of values, it must contain ID field for successfull result. +

    +
    	$id = $connector->insert(array(
    +		"type" => "simple",
    +	));
    +

    + +parameter - has of values +

    + +
    +
    +

    Creating addtional output-less connectors

    +
    + +

    + +You can create an extra connector object on the fly and use it for DB operations +

    +
     
    +	$temp = new Connector($db_connection);
    +	$temp->configure("some_table");
    + 
    +	$temp->insert(array(
    +		"some1" => "value 1",
    +		"some2" => "value 2"
    +	));
    +	$temp->delete("2");
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___data_export.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___data_export.html new file mode 100755 index 0000000000..06ab74501c --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___data_export.html @@ -0,0 +1,188 @@ + + + + dhtmlxconnector:data_export [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    Export data

    +
    + +

    + +By using external grid-to-pdf and grid-to-excel services, it possible to convert data of grid to PDF or Excel directly on server side. +It can be used to export data from any table to PDF or Excel, without actually rendering data in the grid. +

    + +

    +Data part of exported part is defined by render command, header part of data is defined by GridConfiguration - same as for normal grid. + +

    + +
    + +
    PDF
    +
    +
    <?php
    +	require("../../../codebase/grid_connector.php");
    +	require("../../../codebase/convert.php"); 
    + 
    +	//url to data conversion service
    +	$convert = new ConvertService("http://dhtmlx.com/docs/products/devExchange/samples/grid2pdf_02/server/generate.php");
    + 
    +	$grid = new GridConnector($res);
    +	$grid->set_config(new GridConfiguration());	//mandatory 
    +	$grid->render_table("grid50");				//table name and optional list of fields
    +?>
    +
    + +
    Excel
    +
    +
    	require_once("../../config.php");
    +	$res=mysql_connect($mysql_server,$mysql_user,$mysql_pass);
    +	mysql_select_db($mysql_db);
    + 
    + 
    +	require("../../../codebase/grid_connector.php");
    +	require("../../../codebase/convert.php");
    + 
    +	//url to data conversion service
    +	$convert = new ConvertService("http://dhtmlx.com/docs/products/devExchange/samples/grid2excel_02/server/generate.php");
    +	$convert->excel();
    + 
    +	$grid = new GridConnector($res);
    +	$grid->set_config(new GridConfiguration()); //mandatory 
    +	$grid->render_table("grid50"); 				//table name and optional list of fields
    +
    + +
    Options
    +
    + +

    + +ConvertService has two public methods, which allows to define type of conversion and name of result file +

    +
        $grid->pdf("some.pdf",false);
    +

    + +or + +

    +
        $grid->excel("some.xls",false);
    +

    +Second parameter of command controls how file will be delivered +

    +
      +
    • false - as file
      +
    • +
    • true - as inline content ( if browser has related plugin - it will open document )
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___dataaction_object.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___dataaction_object.html new file mode 100755 index 0000000000..55bca1e6da --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___dataaction_object.html @@ -0,0 +1,335 @@ + + + + dhtmlxconnector:dataaction_object [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    DataAction Object

    +
    + +
    + +

    get_value

    +
    + +

    +method - returns value of named field ( name of column or alias): + +

    +
      $action->get_value($name)
    +

    + +Parameters: +

    +
      +
    • name of column or alias.
      +
    • +
    + +
    + +

    set_value

    +
    + +

    +method sets value of named field: + +

    +
        $action->set_value($name,$value)
    +

    + +Parameters: +

    +
      +
    • $name - name or alias of the field
      +
    • +
    • $value - value of the field in question
      +
    • +
    + +
    + +

    get_status

    +
    + +

    +method returns action type of the item: + +

    +
          $action->get_status()
    +
    + +

    set_status

    +
    + +

    +method allows to set the status of operation - do not use it if you need to avoid using custom status: + +

    +
        $action->set_status($value)
    +

    + +Parameters: +

    +
      +
    • $value- status of operation
      +
    • +
    + +
    + +

    get_id

    +
    + +

    +method returns id of the current record: + +

    +
          $action->get_id()
    +
    + +

    get_data

    +
    + +

    +method returns hash of values: + +

    +
        $action->get_data()
    +
    + +

    set_response_text

    +
    +
        $action->set_response_text($text);
    +

    + +Parameters: +

    +
      +
    • $text - any text value , which will be returned on client side with related action structure
      +
    • +
    + +
    + +

    set_response_xml

    +
    + +

    +method allows to set xml-string , which will be included in response ( if you need to provide just a text - use the method mentioned above ): + +

    +
        $action->set_response_xml($text)
    +

    + +Parameters: +

    +
      +
    • $text - any text value , which will be returned on client side with related action structure
      +
    • +
    + +
    + +

    set_response_attribute

    +
    + +

    +method allows to define custom attribute, which will be added to the related action tag in XML response + +

    +
        $action->set_response_attribute($name,$value)
    +
    + +

    invalid

    +
    + +

    +method marks provided data as invalid and cancels default update operation: + +

    +
        $action->invalid();
    +
    + +

    error

    +
    + +

    +method marks operation as invalid and stops in further processing + +

    +
        $action->error();
    +
    + +

    success

    +
    + +

    +method confirms that operation has been executed correctly and cancels default update operation: + +

    +
        $action->success();
    +

    +in case of Insert operation, method can receive one parameter - new ID of element ( which will be updated on client side ) + +

    +
      $action->success($id);
    +
    + +

    add_field

    +
    + +

    +method allows to register field for usage during update|insert|delete operation: + +

    +
            $action->add_field($name,$value);
    +

    + +Parameters: +

    +
      +
    • $name - name or alias of the field
      +
    • +
    • $value - value of the field in question
      +
    • +
    + +
    + +

    remove_field

    +
    + +

    +method allows to remove one of default fields from db operation: + +

    +
            $action->remove_field($name,$value)
    +

    + +Parameters: +

    +
      +
    • $name - name or alias of the field
      +
    • +
    • $value - value of the field in question
      +
    • +
    + +
    + +

    get_new_id

    +
    + +

    +method returns ID, received after insert operation ( valid for afterProcessing event only ) + +

    +
           $action->get_new_id();
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___dataitem_object.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___dataitem_object.html new file mode 100755 index 0000000000..9908a8399b --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___dataitem_object.html @@ -0,0 +1,199 @@ + + + + dhtmlxconnector:dataitem_object [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + +

    get_value

    +
    + +

    +returns value for named field + +

    +
         $dataItem->get_value($name)
    +

    + +Parameters: +

    +
      +
    • $name - name or alias of the field
      +
    • +
    + +
    + +

    set_value

    +
    + +

    +allows to set value of named field + +

    +
          $dataItem->set_value($name,$value)
    +

    + +Parameters: +

    +
      +
    • $name - name or alias of the field
      +
    • +
    • $value - new value
      +
    • +
    + +
    + +

    get_id

    +
    + +

    +returns id of the item: + +

    +
        $dataItem->get_id();
    +
    + +

    set_id

    +
    + +

    +allows to set id of the item: + +

    +
        $dataItem->set_id($value);
    +

    + +Parameters: +

    +
      +
    • $value - id of the item
      +
    • +
    + +
    + +

    get_index

    +
    + +

    +returns index of current item ( for example, in grid , it will be an index of row ) + +

    +
        $dataItem->get_index();
    +
    + +

    +
    + +

    +calling skip method will result in ignoring current item while rendering output. It allows to define custom filtering rules + +

    +
        $dataItem->skip();
    +
    + + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___defining_grid_structure_on_server_side.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___defining_grid_structure_on_server_side.html new file mode 100755 index 0000000000..06ec0db1c8 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___defining_grid_structure_on_server_side.html @@ -0,0 +1,293 @@ + + + + dhtmlxconnector:defining_grid_structure_on_server_side [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +
    +
    Table of Contents
    + +
    + + +

    +

    +

    + + + +

    Defining grid structure on server side

    +
    + +

    + +Starting from version 1.0 , connectors can be used to define header of grid, it can be done in automatic and detailed modes +

    + +
    +
    +

    Automatic mode

    +
    +
    require("../../codebase/grid_connector.php");
    +$grid = new GridConnector($res);
    + 
    +$grid->set_config(new GridConfiguration());
    + 
    +$grid->render_table("grid50000","item_id","item_nm,item_cd");
    +

    +Grid will use list of fields - as labels for the columns. +It can be combined with short render_table form as +

    +
    $grid->set_config(new GridConfiguration());
    +$grid->render_table("grid50000");
    +

    +In such case grid headers will be created for all columns in the related table +

    + +

    + +If you want to have automatic server side sorting and filtering for all columns , you can use + +

    +
    $grid->set_config(new GridConfiguration(true));
    +$grid->render_table("grid50000","item_id","item_nm,item_cd");
    +
    +
    +

    Manual mode

    +
    + +

    + +In manual mode you need to define headers and their parameters by php command. Names of commands mimic names of js commands, with similar functionality. +

    +
    $config = new GridConfiguration();
    +$config->setHeader(array("column 1","column 2"));
    +$config->setColTypes(array("ro","ed"));
    + 
    +$grid->set_config($config);
    + 
    +$grid->render_table("grid50000","item_id","item_nm,item_cd");
    +
    + +
    Commands which can be used
    +
    + +

    + +For all below commands, parameter is an array of values or comma separated string, delimited by headerDelimiter (default is ,). +

    +
    // column labels
    +$config->setHeader($names);
    +// column types
    +$grid->setColTypes($typeStr);
    +// column IDs
    +$grid->setColIds($idsStr);
    +// column width, int values, will be processed as size in pixels
    +$grid->setInitWidths($widths);
    +// column width, int value, will be threated as size in percents
    +$grid->setInitWidthsP($widths);
    +// column align
    +$grid->setColAlign($alStr);
    +// column sorting type
    +$grid->setColSorting($sortStr);
    +// column color
    +$grid->setColColor($colorStr);
    +// visibility of column 
    +$grid->setColHidden($hidStr);
    +

    +For setColHidden command values must be +

    +
      +
    • true if column should be hidden
      +
    • +
    • false otherwise
      +
    • +
    + +
    + +
    Headers and Footers
    +
    +
    $grid->attachHeader($values, $styles = null);
    +

    + +The parameters of this method are: +

    +
      +
    • array of header names or string of header names, delimited by headerDelimiter (default is ,)
      +
    • +
    • array of header styles or string of header styles, delimited by headerDelimiter (default is ,)
      +
    • +
    +
    $grid->attachFooter($values, $styles = null);
    +

    + +The parameters of this method are: +

    +
      +
    • array of footer names or string of footer names, delimited by headerDelimiter (default is ,)
      +
    • +
    • array of footer styles or string of footer styles, delimited by headerDelimiter (default is ,)
      +
    • +
    + +
    + +
    Setting delimiter
    +
    + +

    +Sets symbol or several symbols which will be used as delimiter in string arguments. + +

    +
    $grid->setHeaderDelimiter($headerDelimiter);
    +
    + +

    Example

    +
    +
    require_once("../config.php");
    +$res=mysql_connect($mysql_server,$mysql_user,$mysql_pass);
    +mysql_select_db($mysql_db);
    + 
    +require("../../codebase/grid_connector.php");
    +$grid = new GridConnector($res);
    + 
    +$config = new GridConfiguration();
    + 
    +	$config->setHeader("Item Name,Item CD");
    +	$config->attachHeader("Item Name Test,#rspan");
    +	$config->attachFooter("Item Name,Item CD", Array("background-color: #ff0000;", "background-color: #00ff00;"));
    +	$config->attachFooter("Item Name Test,#rspan", "background-color: #0000ff;color:white;");
    +	$config->setColIds("col1,col2");
    +	$config->setInitWidths('120,*');
    +	$config->setColSorting("connector,connector");
    +	$config->setColColor("null,#dddddd");
    +	$config->setColHidden("false,false");
    +	$config->setColTypes("ro,ed");
    +	$config->setColAlign('center,center');
    + 
    +$grid->set_config($config);
    +$config->render_table("grid50000","item_id","item_nm,item_cd");
    +

    +This example initializes the following structure: +

    + +

    + + +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___defining_header_server.png b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___defining_header_server.png new file mode 100755 index 0000000000..2e9583651a Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___defining_header_server.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___dynamical_loading.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___dynamical_loading.html new file mode 100755 index 0000000000..098ed9c118 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___dynamical_loading.html @@ -0,0 +1,179 @@ + + + + dhtmlxconnector:dynamical_loading [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Dynamical Loading

    +
    + +

    + +Dynamical Loading mode allows to load data not all at once, but partially, by client side request ( which decrease initial loading time and decrease loading of server ) +

    +
      +
    • grid - smart rendering and paging modes
      +
    • +
    • treegrid - dynamic branch loading mode
      +
    • +
    • tree - dynamic branch loading mode
      +
    • +
    • combo - partial autocomplete ( you need not it for normal autocomplete)
      +
    • +
    • dataview - dynamiÑ scrolling or dynamic paging
      +
    • +
    +
            $conn->dynamic_loading([$rowsNum]);
    +

    + +The parameter(s) are: +

    +
      +
    • no parameters for tree, treegrid
      +
    • +
    • number of rows which should be initially loaded (the value should be more than number of rows visible in grid, or at least any positive number) for grid.
      +
    • +
    • maximum number of options which server will send to combo in autocomplete mode for single data request
      +
    • +
    + +

    + +To work correctly, related mode need to be enabled on client side as well ( for grid - smart rendring | paging enabled, for tree|treegrid - dynamical loading enabled, for combo - autocomplete enabled ) +

    + +
    +
    +

    Control of dyn. loading for Tree and TreeGrid

    +
    + +

    + +Normally connector make all operations automatically, and need not customization. But in case of dyn. loading in Tree || TreeGrid it possible that DB already have field which shows is current item leaf or branch. By using beforeRender event it possible to mark item as leaf and through that decrease count of SQL queries generated by component ( which means increase in performance ) + +

    +
    	function custom_define($item){
    +		if ($item->get_value("is_a_branch"))
    +			$item->set_kids(true);
    +		else
    +			$item->set_kids(false);
    +	}
    +	$tree->event->attach("beforeRender","custom_define");
    +

    + +The same approach can be used for non-dynamical mode of Tree|TreeGrid as well. It not so necessary , but will increase data generation performance as well. Package contains two samples of basic tree loading, one of which use forced kids flag setting and second not +

    +
      +
    • 01_basic_connector.php - 1.42s - default loading
      +
    • +
    • 01p_basic connector.php - 0.36s - with custom code for kids flag setting
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___error_handling_and_logging.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___error_handling_and_logging.html new file mode 100755 index 0000000000..1618112ad3 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___error_handling_and_logging.html @@ -0,0 +1,177 @@ + + + + dhtmlxconnector:error_handling_and_logging [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + + + + +

    +

    + +

    + +

    Error Handling and Logging

    +
    + +

    +During development phase, we strongly recommend to use server side logs, which can be enabled as + +

    +
            $gridConn->enable_log("path to log file");
    +

    + +In the code string above you should specify only one parameter: +

    +
      +
    • absolute or relative path to text file where log will be written
      +
    • +
    + +

    + +If any error occurs during data processing client side data processor object will receive “error†action, which will contain short info about the problem (full info will be written in the log ) +If you want to show full error info on client side you should use the following code string (useful for debug, not recommended for production ) +

    +
            $gridConn->enable_log("path to log file",true);
    +

    +In such mode, when critical error occurs all log records for current session will be send to client and shown in browser. +

    + +
    +
    +

    Dataprocessor logging

    +
    + +

    +Dataprocessor has its own client side logger, which can be enabled by including one additional js file - dhtmlxdataprocessor_debug.js +

    + +
    +
    +

    Adding custom records to the log

    +
    + +

    +During development , you may have need to write some custom data to the log ( can be useful for custom server side events ), in such case you can use default log as + +

    +
             LogMaster::log("any text here");
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_afterdelete.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_afterdelete.html new file mode 100755 index 0000000000..ce5a6acfe8 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_afterdelete.html @@ -0,0 +1,120 @@ + + + + dhtmlxconnector:event_afterdelete [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    afterDelete

    +
    + +

    +The same as afterProcessing , but occurs only for insert operations. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_afterinsert.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_afterinsert.html new file mode 100755 index 0000000000..9f5e7f024c --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_afterinsert.html @@ -0,0 +1,121 @@ + + + + dhtmlxconnector:event_afterinsert [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    afterInsert

    +
    + +

    +The same as afterProcessing , but occurs only for insert operations. + +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_afterprocessing.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_afterprocessing.html new file mode 100755 index 0000000000..e1c7647c5c --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_afterprocessing.html @@ -0,0 +1,129 @@ + + + + dhtmlxconnector:event_afterprocessing [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    afterProcessing

    +
    + +

    +This event occurs after insert, update, delete actions. It can be used to pass additional values to client side. +

    + +

    +Example of usage: + +

    +
          //adds new xml as a child of default <action> tag which is passed to client side as response
    +        function doAfterProcessing($action){
    +                   $action->set_response_xml("<guid>some value</guid>")
    +        }
    +        $gridConn->event->attach("afterProcessing",doAfterProcessing);
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_afterupdate.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_afterupdate.html new file mode 100755 index 0000000000..d89a9779dc --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_afterupdate.html @@ -0,0 +1,120 @@ + + + + dhtmlxconnector:event_afterupdate [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    afterUpdate

    +
    + +

    +The same as afterProcessing , but occurs only for update operations +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforedelete.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforedelete.html new file mode 100755 index 0000000000..f174f9fdf8 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforedelete.html @@ -0,0 +1,120 @@ + + + + dhtmlxconnector:event_beforedelete [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    beforeDelete

    +
    + +

    +The beforeDelete event occurs before deleting record in database and can cancel default delete statement. For more details see beforeUpdate event description . +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforefilter.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforefilter.html new file mode 100755 index 0000000000..410d890e0a --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforefilter.html @@ -0,0 +1,143 @@ + + + + dhtmlxconnector:event_beforefilter [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    beforeFilter

    +
    + +

    +This event occurs before data loading and allows to customize filtering of dataset + +

    +
           $gridConn->event->attach("beforeFilter",handlerFunc);
    +

    + +In this event handlerFunc gets the following arguments: +

    + + +

    + +Sample of usage: + +

    +
       function custom_filter($filter_by){
    +          //change WHERE some_field LIKE '%value%' to the WHERE some_field > 'value'
    +          $index = $filter_by->index("some_field");
    +          if ($index!==false)  //there is client side input for the filter
    +               $filter_by->rules[$index]["operation"]=">";
    +   }
    +   $conn->attach->event("beforeFilter","custom_filter");
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforeinsert.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforeinsert.html new file mode 100755 index 0000000000..d86f4732ed --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforeinsert.html @@ -0,0 +1,120 @@ + + + + dhtmlxconnector:event_beforeinsert [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    beforeInsert

    +
    + +

    +This event occurs before inserting values in database and can cancel default insert statement. It can be used also to validate incoming values. For more details see beforeUpdate event description. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforeoutput.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforeoutput.html new file mode 100755 index 0000000000..66fdaec489 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforeoutput.html @@ -0,0 +1,158 @@ + + + + dhtmlxconnector:event_beforeoutput [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    beforeOutput

    +
    + +

    +The beforeOutput event occurs after data has been selected from the database and ready to be sent to client side + +

    +
          $gridConn->event->attach("beforeOutput",myFunction);
    + 
    +

    + +In this event myFunction doesn't get any parameters. +

    + +

    +Event can be used to mix some custom data in XML output. +

    + +

    +Most common use-case - header structure for the grid. +

    +
    	$grid = new GridConnector($res);
    +	function grid_header(){
    +		echo '<head>
    +	        <column width="50" type="dyn" align="right" color="white" sort="str">Sales</column>
    +	        <column width="150" type="ed" align="left" color="#d5f1ff" sort="str">Book Title</column>
    +		</head>';
    +	}
    +	$grid->event->attach("beforeOutput","grid_header");
    +	$grid->render_table("grid50000","item_id","item_nm,item_cd");
    +

    +In case of dyn. loading mode, one more check need to be added, to prevent data output for additional data calls. + +

    +
    	$grid = new GridConnector($res);
    +	function grid_header(){
    +            if (!isset($_GET["posStart"]))
    +		echo '<head>
    +	        <column width="50" type="dyn" align="right" color="white" sort="str">Sales</column>
    +	        <column width="150" type="ed" align="left" color="#d5f1ff" sort="str">Book Title</column>
    +		</head>';
    +	}
    +	$grid->event->attach("beforeOutput","grid_header");
    +	$grid->dynamic_loading(100);
    +	$grid->render_table("grid50000","item_id","item_nm,item_cd");
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforeprocessing.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforeprocessing.html new file mode 100755 index 0000000000..6461b91f72 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforeprocessing.html @@ -0,0 +1,120 @@ + + + + dhtmlxconnector:event_beforeprocessing [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    beforeProcessing

    +
    + +

    +This event occurs before beforeInsert, beforeUpdate, beforeDelete events occur. The beforeProcessing method occurs for all these operations. It can be cancelled in the same way as the aforementioned events. For more details see beforeUpdate event description . +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforerender.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforerender.html new file mode 100755 index 0000000000..ce3fef5dfa --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforerender.html @@ -0,0 +1,127 @@ + + + + dhtmlxconnector:event_beforerender [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    beforeRender

    +
    + +

    +The beforeRender event occurs after data has been selected from the database but before its outputting to client. + +

    +
          $gridConn->event->attach("beforeRender",myFunction);
    + 
    +

    + +In this event myFunction gets data item object as incoming argument. This object has different methods for different client side components. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforesort.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforesort.html new file mode 100755 index 0000000000..b44f0d03bd --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforesort.html @@ -0,0 +1,140 @@ + + + + dhtmlxconnector:event_beforesort [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    beforeSort

    +
    + +

    +This event occurs before data loading and allows to customize sorting of dataset +

    +
            $gridConn->event->attach("beforeSort",handlerFunc);
    +

    + +handlerFunc gets the following arguments: +

    + + +

    + +Sample of usage: + +

    +
       function custom_sort($sorted_by){
    +          // SORT BY LENGTH(some_field)
    +          $sorted_by->rules[0]["name"]="LENGTH(some_field)";
    +   }
    +   $conn->attach->event("beforeSort","custom_sort");
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforeupdate.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforeupdate.html new file mode 100755 index 0000000000..af3bae2b07 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___event_beforeupdate.html @@ -0,0 +1,145 @@ + + + + dhtmlxconnector:event_beforeupdate [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    beforeUpdate

    +
    + +

    + +This event occurs before updating values in database and can cancel default update statement (see error, invalid and success methods below). It can be used also to validate incoming values (see invalid() method below). + +

    +
             $gridConn->event->attach("beforeUpdate",myUpdate);
    +

    + +In the code string above myUpdate function gets $action object as incoming argument. +$action is an instance of DataAction object +

    + +

    +Samples of usage: + +

    +
    //creates and runs own update statement using values came in request, cancels default update
    +        function myUpdate($action){
    +            mysql_query("UPDATE Countries SET item_nm='{$action->get_value('name')}' WHERE item_id='{$action->get_id()}'");
    +            $action->success();
    +        }
    //checks if value of name is empty, then cancel update. Otherwise proceeds with default update.  
    +        function myUpdate($action){
    +            if($action->get_value("name")=="")
    +                $action->invalid();
    +        }
    //sets new value for name and proceeds with default update. 
    +        function myUpdate($action){
    +            $new_value = rand(0,100);
    +            $action->set_value("name",$new_value);
    +        }
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___events_system.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___events_system.html new file mode 100755 index 0000000000..10eeff9d70 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___events_system.html @@ -0,0 +1,157 @@ + + + + dhtmlxconnector:events_system [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + + + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___excel_file.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___excel_file.html new file mode 100755 index 0000000000..4152140533 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___excel_file.html @@ -0,0 +1,180 @@ + + + + dhtmlxconnector:excel_file [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    Loading data from Excel file

    +
    + +

    + +Connector 1.0+ allows to use MsExcel file as datasource, you can load data from excel file in any component ( grid, chart, dataview, combo , scheduler ) +

    + +

    +To start using this feature you need to download libExcel - which is standalone project and not included in the connector's package +You can grab it from here http://support.dhtmlx.com/x-files/connector/phpExcel.zip or from author's site http://www.codeplex.com/PHPExcel - unzip lib to the connector's folder. +

    + +

    +Connector file will look as +

    +
    //files from ligExcel package
    +require_once('lib/PHPExcel.php');
    +require_once('lib/PHPExcel/IOFactory.php');
    + 
    +//connectors
    +require("../../codebase/db_excel.php");
    +require("../../codebase/grid_connector.php");
    + 
    +$grid = new GridConnector("../some.xls", "ExcelDBDataWrapper");
    +$grid->render_table("A18:F83", "id", "A,B,C,D,E,F");
    +

    +Constructor +

    +
      +
    • first parameter - name of excel file, absolute path or path related to the php file
      +
    • +
    + +

    + +render_table +

    +
      +
    • first parameter can be
      +
        +
      • range of cells in the spreadsheet, for example A18:F83
        +
      • +
      • number of the top row, from which output need to be started, for example A4
        +
      • +
      • “*†, which means include all not empty rows
        +
      • +
      +
    • +
    • second parameter is the field , which will be used as id, you can use “id†for auto id generation
      +
    • +
    • third parameter list of columns, which will be used as columns in the grid
      +
    • +
    +
    $grid->render_table("A18:F83", "id", "A,B,C,D,E,F");
    $grid->render_table("A1", "id", "A,B,C,D,E,F");
    $grid->render_table("*", "id", "A,B,C,D,E,F");
    +

    +If you want to load both data and header from excel file, it can be done by using GridConfiguration +

    +
    	$grid = new GridConnector($excel_file, "Excel");
    + 
    +		$config=new GridConfiguration();
    +		//array of cells, with labels for grid's header
    +		$config->setHeader($grid->sql->excel_data(array("A3","B3","F13")));
    +		$grid->set_config($config);
    + 
    +	$grid->render_table("A18", "id", "A,B,F");
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___extending_existing_functionality.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___extending_existing_functionality.html new file mode 100755 index 0000000000..bd34bb8d39 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___extending_existing_functionality.html @@ -0,0 +1,123 @@ + + + + dhtmlxconnector:extending_existing_functionality [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + + + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___file_system.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___file_system.html new file mode 100755 index 0000000000..20c48679a1 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___file_system.html @@ -0,0 +1,219 @@ + + + + dhtmlxconnector:file_system [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    Using File System as datasource

    +
    + +

    + +Connector 1.x allows to use FileSystem as datasouce. It can be used with any client side component, but more common use-case is the grid and tree +

    +
     
    +	require("./codebase/connector/db_filesystem.php");
    +	require("./codebase/connector/grid_connector.php");
    + 
    +	$grid = new GridConnector("", "FileSystem");
    +	$grid->render_table("../","safe_name","filename,full_filename,size,name,extention,date,is_folder");
    +

    + +

    + +

    +Above code will fill grid with info about files in d:/www folder +

    + +

    +Parameters of render_table + +

    +
      +
    • folder, for which data listing is required
      +
    • +
    +
      +
    • id field, leave it empty of use safe_name as ID of file
      +
    • +
    +
      +
    • list of fields, possible values are
      +
    • +
    +
      +
    • filename - name of file
      +
    • +
    +
      +
    • full_filename - full path to file
      +
    • +
    +
      +
    • size - size of file in bytes
      +
    • +
    +
      +
    • name - name part of file name
      +
    • +
    +
      +
    • extension - extension part of file name
      +
    • +
    +
      +
    • date - timestamp of file
      +
    • +
    +
      +
    • is_folder - file|folder flag
      +
    • +
    + +
    + +
    Limiting files in output
    +
    + +

    + +You can limit files by extension type +

    +
     
    +	$fileTypes = FileSystemTypes::getInstance();
    +	$fileTypes->addExtention('png');
    +

    +or by meta-type +

    +
     
    +	$fileTypes = FileSystemTypes::getInstance();
    +	$fileTypes->setType('web');
      +
    • image - image files
      +
    • +
    • document - doc, xls, txt, rtf
      +
    • +
    • web - php, html, js, css
      +
    • +
    • audio - mp3, wav, ogg
      +
    • +
    • video - avi, mpg, mpeg, mp4
      +
    • +
    • only_dir - folders
      +
    • +
    + +

    + +or by regexp pattern +

    +
     
    +	$fileTypes = FileSystemTypes::getInstance();
    +	$fileTypes->addPattern('/^.+\..*$/');
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___file_system.png b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___file_system.png new file mode 100755 index 0000000000..772b7be74b Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___file_system.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___filtering.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___filtering.html new file mode 100755 index 0000000000..bb92e6e0b9 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___filtering.html @@ -0,0 +1,219 @@ + + + + dhtmlxconnector:filtering [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Filtering

    +
    + +

    +While all connector can filter data by url manipulation, only Grid and TreeGrid1) has native GUI for sorting, so below info mostly actual for those two components. +

    + +

    +To enable server side filtering you can use one of the following in-header filter types while configuring dhtmlxGrid: +

    +
      +
    • #connector_text_filter - searches for values which contain mask defined through text field
      +
    • +
    • #connector_select_filter - searches for values which contain mask defined through list of possible values
      +
    • +
    +
    	mygrid.setHeader("Column A, Column B");
    +	mygrid.attachHeader("#connector_text_filter,#connector_select_filter")
    +

    +When using text filter, no any additional configuration necessary. Grid will automatically send data about new entered text and filter server side using %mask% pattern. +If you need change filtering pattern or implement more advanced logic - beforeFilter server side event can be used +

    + +
    + +

    Redefining filtering through beforeFilter

    +
    + +

    +Event receives FilterInterface Object as parameter +

    + +

    +Define default filtering + +

    +
       function custom_filter($filter_by){
    +          //WHERE some_field LIKE 'value'
    +          if (!sizeof($filter_by->rules)) 
    +               $filter_by->add("some_field","value","LIKE");
    +   }
    +   $conn->event->attach("beforeFilter","custom_filter");
    +

    +Redefine default filtering logic + +

    +
       function custom_filter($filter_by){
    +          //change WHERE some_field LIKE '%value%' to the WHERE some_field > 'value'
    +          $index = $filter_by->index("some_field");
    +          if ($index!==false)  //there is client side input for the filter
    +               $filter_by->rules[$index]["operation"]=">";
    +   }
    +   $conn->event->attach("beforeFilter","custom_filter");
    +
    + +

    Custom PHP level filters

    +
    + +

    +By using beforeRender events it possible to define filtering rules as PHP code ( will not work for dyn. modes ) + +

    +
    function custom_filter($data){
    +     if ($data->get_value("some")<0)
    +          $data->skip(); //not include in output
    +}
    +$conn->event->attach("beforeRender","custom_filter")
    +
    + +

    Filling options for select filter

    +
    + +

    + +If you are using select filter you may need to define list of options in select box, it can be defined in one of 3 ways + +

    +
      +
    • automatic - if no custom instruction provided , grid will use DISTINCT select against related field, and fetch all possible options
      +
    • +
    • hardcoded list
      +
    • +
    +
    	$grid->set_options("item_nm",array("1","two","3"));
    +	$grid->render_table("grid50","item_id","item_nm,item_cd");
      +
    • list created on base of different table
      +
    • +
    +
    	$filter1 = new OptionsConnector($res);
    +	$filter1->render_table("countries","country_id","country_name(value)");
    +	$grid->set_options("item_nm",$filter1);
    + 
    +	$grid->render_table("grid50","item_id","item_nm,item_cd");
    +

    +You can use both render_table and render_sql for OptionsConnector object, same as for any normal connector. +

    + +

    +Beware that name of fields, used in select filter need to have alias (value) + +

    + +
    +
    +
    1) +server side filtering with dhtmlxTreeGrid doesn't maintain open states
    +
    + + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___filterinterface_object.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___filterinterface_object.html new file mode 100755 index 0000000000..57ecdbe744 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___filterinterface_object.html @@ -0,0 +1,185 @@ + + + + dhtmlxconnector:filterinterface_object [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +
    +
    Table of Contents
    +
    + + +
    +
    + + +

    +

    + +

    + +

    Filter Interface Object

    +
    + +
    +
    +

    clear

    +
    + +

    +clears all defined settings + +

    +
      $coll->clear();
    +
    +
    +

    index

    +
    + +

    +check if options for named field exist in collection and return related hash. Returns false if named field not found in collection. + +

    +
      $index = $coll->index("some_field");
    +
    +
    +

    add

    +
    + +

    +adds new filtering rule to collection + +

    +
      $coll->add("some_field","abc");  // some_field LIKE "%abc%"
    +  $coll->add("other_field","5","<"); //some_field < 5
    +
    +
    +

    rules

    +
    + +

    +array of all already defined sorting rules. Each element has two properties +

    +
      +
    • name - name of related field
      +
    • +
    • value - filtering value
      +
    • +
    • operation - filtering operation, if empty then default LIKE instruction will be used
      +
    • +
    +
      $name = $coll->rules[0]["name"]
    +  $coll->rules[0]["value"]="cde";
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___formatting_changing_data_before_loading.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___formatting_changing_data_before_loading.html new file mode 100755 index 0000000000..37f37a07fa --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___formatting_changing_data_before_loading.html @@ -0,0 +1,248 @@ + + + + dhtmlxconnector:formatting_changing_data_before_loading [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + + + + +

    +

    + +

    + +

    Formatting/Changing Data before Loading

    +
    + +
    +
    +

    Base Formatting Methods

    +
    + +

    + +In case you need to update values which were returned from database table or set some specific formatting before sending them to client side, you can use the “beforeRender†event handler. +

    + +

    +Common use-case will be similar to next + +

    +
    	$res=mysql_connect($mysql_server,$mysql_user,$mysql_pass);
    +	mysql_select_db($mysql_db);
    +	require("../../codebase/grid_connector.php");	
    + 
    +	function color_rows($row){
    +		if ($row->get_index()%2)
    +				$row->set_row_color("red");
    +	}
    + 
    +	$grid = new GridConnector($res);
    +	$grid->event->attach("beforeRender","color_rows");
    +	$grid->render_table("grid50000","item_id","item_nm,item_cd");
    +

    + +Here , color_rows function attached to the beforeRender event and set colors for rows based on their index. +

    + +

    +During data generation, for each record outputed for client side beforeRender event will be executed, which means color_rows function will be called for each record. $row is an instance of GridDataItem object, related to current record. +

    + +

    +Same approach can be used for data formating +

    +
    	function formatting($row){
    +                  //render field as details link
    +                  $data = $row->get_value("some_field");
    +                  $row->set_value("some_field","<a href='details.php?id={$data}'>Details</a>")
    + 
    +                  //formatting date field
    +                  $data = $row->get_value("other_field");
    +                  $row->set_value("other_field",date("m-d-Y",strtotime($data)));
    +	}
    + 
    +	$grid = new GridConnector($res);
    +	$grid->event->attach("beforeRender","formatting");
    +

    +get_value and set_value method allow get or set value of any field related to the record ( it not affect actual values in DB ), if alias was used during data configuration - you need to use it instead of real db field name as first parameter of get|set command. +

    + +

    +More complex formating rules can be defined by using “extra†fields in configuration, fields which will not be outputed to client but can be used inside events. + +

    +
    	function formatting($row){
    +                  //set row color
    +                  $row->set_row_color($row->get_value("color"));
    +                  //save in userdata 
    +                  $row->set_userdata("some_data",$row->get_value("count"));
    +	}
    + 
    +	$grid = new GridConnector($res);
    +	$grid->event->attach("beforeRender","formatting");
    +        $grid->render_table("some_table","id","name,price","color,count");
    +

    + +Here, field color not outputed to client side , but used to define property of row. During update|insert operation only name and price columns may be changed, color will stay untouched. +Count field will be sent to client side as userdata of the row ( and it will be possible to access it on client side through related data. +

    + +
    +
    +

    Formatting in Combo

    +
    + +

    +In case of dhtmlxCombo event works the same but provides ComboDataItem as parameter of event, it possible to implement the same use-cases with it +

    + +
    +
    +

    Formatting in TreeGrid and Tree

    +
    + +

    +TreeGrid provides TreeGridDataItem and Tree provides TreeDataItem for beforeUpdate event, both of them support base operations and few specific ones. +

    +
    	function custom_format($item){
    +                if ($item->get_value("complete")>75) 
    +		        $item->set_check_state(1);
    + 
    +		if ($item->get_value("duration")>10)
    +			$item->set_image("true.gif");
    +		else
    +			$item->set_image("false.gif");
    +	}
    +	$tree->event->attach("beforeRender","custom_format");
      +
    • set_image method allows to set image of tree element ( for treegrid it accepts only one parameter, while for tree it can be a single image of 3 different images for 3 states of tree's item.
      +
    • +
    • set_check method exists only in TreeDataItem object and allow to set state of related checkbox ( tree need to have checkboxes enabled in js. configuration code as well )
      +
    • +
    + +

    + +beforeRender event can be used in dynamic Tree and TreeGrid to define which elements of hierarchy are branches and which are leafs. It is covered in related section of document. + +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___griddataitem_treegriddataitem_specific.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___griddataitem_treegriddataitem_specific.html new file mode 100755 index 0000000000..46a88c80ac --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___griddataitem_treegriddataitem_specific.html @@ -0,0 +1,245 @@ + + + + dhtmlxconnector:griddataitem_treegriddataitem_specific [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    GridDataItem specific

    +
    + +

    + +Nest all methods of DataItem Object +

    + +
    + +

    set_row_color

    +
    + +

    +method allows to set color for any row in the component: + +

    +
        $dataItem->set_row_color($color)
    +

    + +Parameters: +

    +
      +
    • $color - the color of the row
      +
    • +
    + +
    + +

    set_row_style

    +
    + +

    +method allows to set the style for any row + +

    +
        $dataItem->set_row_style($style )
    +

    + +Parameters: +

    +
      +
    • $style - style of the row in question
      +
    • +
    + +
    + +

    set_cell_style

    +
    + +

    +method allows to set style for any cell of the item: + +

    +
        $dataItem->set_cell_style($name,$value)
    +

    + +Parameters: +

    +
      +
    • $name - name or alias of the cell
      +
    • +
    • $value - style of the cell in question
      +
    • +
    + +
    + +

    set_cell_class

    +
    + +

    +method allows to set class for any cell of the item: + +

    +
        $dataItem->set_cell_class($name,$value)
    +

    + +Parameters: +

    +
      +
    • $name - name or alias of the cell
      +
    • +
    • $value - class of the cell in question
      +
    • +
    + +
    + +

    set_row_attribute

    +
    + +

    +method allows to set attributes for any row of the component: + +

    +
        $dataItem->set_row_attribute($attr,$value)
    +

    + +Parameters: +

    +
      +
    • $attr - name of attribute
      +
    • +
    • $value - value of attribute
      +
    • +
    + +
    + +

    set_cell_attribute

    +
    + +

    +method allows to set attributes for any cell of the item: + +

    +
        $dataItem->set_cell_attribute($name,$attr,$value)
    +

    + +Parameters: +

    +
      +
    • $name - name of alias of the cell in question
      +
    • +
    • $attr - name of attribute
      +
    • +
    • $value - value of attribute
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___group_connector.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___group_connector.html new file mode 100755 index 0000000000..0347842a1f --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___group_connector.html @@ -0,0 +1,141 @@ + + + + dhtmlxconnector:group_connector [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    Group connector for tree and TreeGrid

    +
    + +

    + +Default connector for Tree and TreeGrid expects that data in DB is stored with child-parent key relation. But in some cases tree or treegrid need to be shown from plain data , by grouping it. Such task can be done with help of the TreeGroupConnector or TreeGridGroupConnector +

    + +

    +Loads data from table products , grouping by category. As result top level - will be categories, second level - products, related to the category. +

    +
    	require("./codebase/connector/tree_group_connector.php");
    + 
    +	$tree = new TreeGroupConnector($res);
    +	$tree->render_table("products2", "id", "product_name", "", "category");
    +

    + +

    + +

    +similar can be done to treegrid as + +

    +
    	require_once('../../codebase/treegridgroup_connector.php');
    + 
    +	$treegrid = new TreeGridGroupConnector($res,"MySQL");
    +	$treegrid->render_table("products2", "id", "product_name,scales,colour", "", "category");
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___initialization_of_dhtmlxconnector.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___initialization_of_dhtmlxconnector.html new file mode 100755 index 0000000000..42de885fcf --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___initialization_of_dhtmlxconnector.html @@ -0,0 +1,201 @@ + + + + dhtmlxconnector:initialization_of_dhtmlxconnector [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +
    +
    Table of Contents
    + +
    + + +

    +

    + +

    + +

    Initialization of dhtmlxConnector

    +
    + +
    +
    +

    Client Side Code

    +
    + +

    +No modifications on client side are required for regular data loading. In other cases you should include the connector.js file (located in dhtmlxConnector_php/codebase) into your page. To perform any update operations you have to use dhtmlxDataProcessor, which has been already included in both Professional and Standard editions of dhtmlx library. +

    + +

    +For data loading you need to point load (or loadXML) method of dhtmlx component to connector file: +

    +
            myGrid = new dhtmlXGridObject("pObjId");
    +        //... grid configuration commands
    +        myGrid.load("myconnector.php");
    +

    + +To perform insert/update/delete operations you should add dhtmlxDataProcessor (for more details about dhtmlxDataProcessor see related documentation) and use connector file as parameter of constructor +

    +
            myDP = new dataProcessor("myconnector.php");
    +        myDP.init(myGrid);
    + 
    +

    +Samples of client side initialization for other components +

    + +
    +
    +

    Server Side Code

    +
    + +

    +To start operating with dhtmlxConnector you should do the following: + +

    +
      +
    • include appropriate connector file into the page (Here and after we'll use dhtmlxGrid connector for code samples. All differences between connectors of other components will be described additionally. When using sample code with appropriate components, all files or function names which contain component name “grid†should be changed to “treeâ€, “treegrid†or “combo†accordingly.)
      +
    • +
    +
    	require("connector/grid_connector.php");
      +
    • create Database connection
      +
    • +
    +
            $res=mysql_connect("localhost","root","");
    +        mysql_select_db("myDatabase");
    +

    + +After have implemented these operations you are ready to instantiate connector object. The only database connection link variable is mandatory parameter in all constructors. Optionally, you can specify database type (“MySQL†by default. Other possible: “Postgreâ€) +

    +
           $gridConn = new GridConnector($res,"MySQL");
    +

    +And as a last step - configuration, which fields and data will be used in connector + +

    +
            $gridConn->render_table("mytable","item_id","item_nm,item_cd");
    +

    +This is all. +

    + +

    +Above code must be enough to show data in component and sync update|delete|create operations from the component to the DB. +

    + +

    +Server side initialization for other components and DB types +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___keygrid_connector.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___keygrid_connector.html new file mode 100755 index 0000000000..4f8e9424d5 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___keygrid_connector.html @@ -0,0 +1,133 @@ + + + + dhtmlxconnector:keygrid_connector [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    KeyGrid connector

    +
    + +

    + +Normal grid connector expects that target table has some autogenerated ID field, but in some cases, data need to be loaded and saved from DB which has not such autofilled ID. Normal connector can be used for data loading, but will not be able to save data back to such table. To resolve such problem you can use separate connector class +

    +
    	$grid = new KeyGridConnector($res);
    +	$grid->render_table("mytable","name","name,address,phone");
    +

    +There are two differences from the normal GridConnector +

    +
      +
    • name of connector class
      +
    • +
    • one of data fields is used as ID
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___loading_editing_data.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___loading_editing_data.html new file mode 100755 index 0000000000..94d08456d3 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___loading_editing_data.html @@ -0,0 +1,271 @@ + + + + dhtmlxconnector:loading_editing_data [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + + + + +

    +

    + +

    + +

    Data configuration

    +
    + +
    +
    +

    Single table operations

    +
    + +

    +Once you get connection object you are ready to decide what data should take part in load/update operations. Where all necessary data is placed in one database table you should use the render_table method: +

    +
        $grid->render_table("grid50","item_id","item_nm,item_cd");
    +

    +The parameters of this method are: +

    +
      +
    • database table name
      +
    • +
    • name of identity field 1)
      +
    • +
    • list of fields which should be used as values of component item (cells of grid, item label in tree, text of option in combo)
      +
    • +
    + +

    + +This is all you need to make connector implement select, insert, update and delete operations. +

    + +

    +If you want to render all fields from DB ( except of key field ), you can use simplified command +

    +
        $grid->render_table("grid50");
    +
    +
    +

    Join Tables and Complex Queries Operations

    +
    + +

    + +You are allowed to use any SQL statements to populate any dhtmlx component through dhtmlxConnector. This is possible with the render_sql method: +

    +
            $grid->render_sql("SELECT * from tableA INNER JOIN tableB  ON tableA.id=tableB.id", "","name,price");
    +

    + +The parameters of the render_sql method are the following: +

    +
      +
    • sql statement
      +
    • +
    • field to use as identifier 2)
      +
    • +
    • list of fields which should be used as values of component item (cells for grid, item label for tree, text of option for combo)
      +
    • +
    • list of extra fields, they will not be sent to client side but can be used as attributes or flags
      +
    • +
    • parent ID field name for hierarchical structures (required for tree and treegrid) *
      +
    • +
    + +

    + +In case your SQL query was against single table, it is quite probable that insert/update/delete operations do not require any additional code. dhtmlxConnector will parse your SQL and generate insert/update/delete statements based on used table and fields names. +

    + +

    +If your SQL statement contains more than one table, connector will not be able to generate insert/update/delete operations correctly, so you will need do one from next +

    +
      +
    • define sql for each operation manually
      +
    • +
    • use server side events to define your own processing logic
      +
    • +
    • define different configs for select and update operations
      +
    • +
    + +

    + +The 3rd approach shown in below sample + +

    +
        if ($grid->is_select_mode())//code for loading data
    +        $grid->render_sql("Select * from tableA, tableB  where  tableA.id=tableB.id", "a.id","name,price,other");
    +    else //code for other operations - i.e. update/insert/delete
    +        $grid->render_table("tableA","id","name,price");
    +

    + +With such init code grid will be loaded with three columns of data from 2 tables, but during saving only data from first table will be saved. +

    + +
    +
    +

    Extra data

    +
    + +

    +Last parameter of render_sql and render_table allows to define list of fields which will be used for rendering in grid and in update|insert operations, but command can be extended to define additional fields, which will be extracted from DB and can be mapped to different properties of records ( userdata, row styles, images, etc. ). +

    +
    $grid->render_table("tableA","id","name,price","extra1,extra2");
    +// or
    +$grid->render_sql("Select * from tableA, tableB  where  tableA.id=tableB.id", "table_a_id","name,price,other","extra1,extra2");
    +

    + +extra1 and extra2 fields will be available in all server side event of grid, but will not be sent to server side, and will not be included in update|insert operations. +

    + +
    +
    +

    Tree and TreeGrid

    +
    + +

    + +In case of Tree and TreeGrid , both render_sql and render_table accept one more parameter - relation ID. For default treegrid hierarchy - this is name of field , which will be used to link parent and child records. + +

    +
    $treeGridConn->render_table("tableA","id","name,price","","parent_id");
    +// or
    +$treeGridConn->render_sql("Select * from tableA, tableB  where  tableA.id=tableB.id", "a.id","name,price,other","","parent_id");
    +
    +
    +

    Aliases

    +
    + +

    +You can use aliases for DB field names to made later usage of extracted data more usable ( will have sense only if your are using server side events ) + +

    +
    $grid->render_table("tableA","id","name,price(product_price)");
    +// or
    +$grid->render_sql("Select *,tableA.id as aid from tableA, tableB  where  tableA.id=tableB.id", "tableA.id(aid)","name,price(product_price),other");
    +
    +
    +
    1) +, 2) +optional
    +
    + + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___migration_from_older_version.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___migration_from_older_version.html new file mode 100755 index 0000000000..c340c1ff60 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___migration_from_older_version.html @@ -0,0 +1,157 @@ + + + + dhtmlxconnector:migration_from_older_version [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +
    +
    Table of Contents
    + +
    + + +

    +

    + +

    + +

    Migration from Older Versions

    +
    + +
    +
    +

    0.9 -> 0.96

    +
    +
      +
    1. beforeFilter and beforeSorting events provide object as parameter instead of plain data
      +
    2. +
    3. Order of parameters for render_* methods of TreeGrid and Tree connector was changed.
      +
    4. +
    +
    //0.9
    +render_table("table","id","fields","parent id")
    +//1.0
    +render_table("table","id","fields","extra fields","parent id")
    +
    +
    +

    0.96 -> 1.0

    +
    +
      +
    1. beforeOutput event has different parameters
      +
    2. +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___multi-table_tree.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___multi-table_tree.html new file mode 100755 index 0000000000..5bf8c11745 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___multi-table_tree.html @@ -0,0 +1,165 @@ + + + + dhtmlxconnector:multi-table_tree [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    Multi-table tree and treegrid

    +
    + +

    + +In many cases, tree or treegrid need to be built from multiple tables. Each table represent separate level of tree or treegrid. For tree it can be done as +

    +
    	require("../../codebase/treemultitable_connector.php");
    + 
    + 
    +	$tree = new TreeMultitableConnector($res);
    +	$tree->setMaxLevel(3);
    +	$level = $tree->get_level();
    + 
    +	switch ($level) {
    +		case 0:
    +			$tree->render_table("projects2","project_id","project_name","","");
    +			break;
    +		case 1:
    +			$tree->render_sql("SELECT teams2.team_id, teams2.team_name, project_team2.project_id FROM teams2 INNER JOIN project_team2 ON teams2.team_id=project_team2.team_id", "team_id", "team_name", "", "project_id");
    +			break;
    +		case 2:
    +			$tree->render_table("developers2", "developer_id", "developer_name", "", "developer_team");
    +			break;
    +		case 3:
    +			$tree->render_table("phones2", "phone_id", "phone", "", "phone_developer");
    +			break;
    +	}
    +

    + +

    + +

    +Multi-table connector will work only for tree|treegrid with dyn. loading mode enabled +

    + +

    +Similar code can be used for treegrid , the only difference in the connector class +

    +
    	require("../../codebase/treegridmultitable_connector.php");
    + 
    +	$treegrid = new TreeGridMultitableConnector($res);
    +	$treegrid->setMaxLevel(3);
    +	$level = $treegrid->get_level();
    + 
    +        ...
    +

    + + +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___multitable_tree.png b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___multitable_tree.png new file mode 100755 index 0000000000..22a106649b Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___multitable_tree.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___new_in_version_1.0.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___new_in_version_1.0.html new file mode 100755 index 0000000000..7572b09449 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___new_in_version_1.0.html @@ -0,0 +1,133 @@ + + + + dhtmlxconnector:new_in_version_1.0 [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    New in version 1.0

    +
    + +

    +Version 1.0 adds the next new possibilities: +

    +
      +
    • Server side grid configuration
      +
    • +
    • Server side export of data to PDF or Excel
      +
    • +
    • Multi-user sync
      +
    • +
    • Grouping connectors
      +
    • +
    • FileSystem connector
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___order_of_events_execution.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___order_of_events_execution.html new file mode 100755 index 0000000000..1c101dea3e --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___order_of_events_execution.html @@ -0,0 +1,163 @@ + + + + dhtmlxconnector:order_of_events_execution [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Data loading

    +
    +
      +
    • - incoming request parsed
      +
    • +
    • beforeSorting
      +
    • +
    • beforeFiltering
      +
    • +
    • - sql select executed
      +
    • +
    • - for each selected record
      +
        +
      • beforeRender
        +
      • +
      • - generate xml for record
        +
      • +
      +
    • +
    • - output data to client
      +
    • +
    + +
    +
    +

    Data update

    +
    +
      +
    • - incoming request parsed
      +
    • +
    • - global transaction started ( if enabled )
      +
    • +
    • beforeProcessing event
      +
    • +
    • for each record
      +
        +
      • - record level transaction if started ( if enabled )
        +
      • +
      • beforeInsert|beforeDelete|beforeUpdate event
        +
      • +
      • - record level transaction commited ( if enabled )
        +
      • +
      +
    • +
    • afterProcessing event
      +
    • +
    • - global transaction commited ( if enabled )
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___porting_connectors.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___porting_connectors.html new file mode 100755 index 0000000000..9f2d4d29bf --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___porting_connectors.html @@ -0,0 +1,333 @@ + + + + dhtmlxconnector:porting_connectors [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + + + + +

    +

    + +

    + +

    Porting dhtmlxConnectors

    +
    + +
    +
    +

    Why it is necessary

    +
    + +

    +The existing version of connectors supports just a limited set of server platforms, although we are trying to extend the list of supported languages and databases - you can't embrace the unembraceable. In case database/framework/scripting language you use in your project is not supported, you can port existing solution on your platform. +

    + +
    +
    +

    When you shouldn't do this

    +
    + +

    +Connectors are just wrappers around existing grid functionality, that's why if you need to use this solution once, you would better use grid API directly instead of creating your own server connector. +

    + +
    +
    +

    Levels of implementation

    +
    + +

    + +Connector supports many operations implementing data load/manipulation and saving. There is an opportunity to provide supporting basic operations and ignore higher-level ones, in case they are not used in your project. +

    + +
    +
    +

    Basic Support

    +
    + +

    + +Data assignment is basic connector operation which proceeds in the following way: connector connects to database, selects data and outputs this in stdout using XML format of the current component. +

    + +

    +Important points: +

    +
      +
    1. XML-data input must occur only after sending an appropriate http-header;
      +
    2. +
    3. XML must start with XML declaration which contains an appropriate data coding;
      +
    4. +
    5. None other content must be sent to stdout (neither before nor after sending data by connector)
      +
    6. +
    +
        header("Content-type:text/xml");
    +    print("<?xml version='1.0' encoding='utf-8' ?>");
    +    print(xml_formatted_data);
      +
    • incoming parameters - there are no any;
      +
    • +
    • restriction for output data - there is no restriction.
      +
    • +
    + +

    + +XML Format used by connector +

    + +

    +Implementation of this level allows to use resulting script as url for load|loadXML operations. +

    + +

    + +(technically there is an opportunity to use JSON or any other supported by component format, but you should bear in mind that complex scenarios are XML-oriented, that's why you would better use XML) +

    + +
    +
    +

    Filtering and Sorting

    +
    + +

    + +At this stage, the number of supported operations is considerably extended; you are allowed to use #connector_text_filter, connector to sort in grid and sort/filter through URL. +

    + +

    +An obvious advantage of this functionality can be estimated only for operating with grid, for other components such functionality doesn't seem to be necessary (it can be used only by direct parameters setting in URL) +

    + +

    +In point of fact, you should use the code of the previous stage, but there is one particularity - before using XML data is sorted/filtered according to incoming data. +

    +
      +
    • Incoming parameters - GET
      +
        +
      • dhx_filter - hash of filtering rules
        +
          +
        • filtration pattern - any entry( like %x% );
          +
        • +
        • in case you have a few parameters, you should link them by AND logic;
          +
        • +
        • parameter is available only for fields with active filter;
          +
        • +
        • empty filter value means that filter wasn't set and it must be ignored.
          +
        • +
        +
      • +
      +
    • +
    +
         // where field1 like %some% AND field2 like %other%
    +     dhx_filter[1]=some&dhx_filter[2]=other
      +
    • dhx_sort - hash of sorting rules:
      +
        +
      • possible values for asc and dsc parameters;
        +
      • +
      • in case you have a few parameters, you should link them by AND logic;
        +
      • +
      • order of filtering implementation - not defined, at the moment no one component is able to create multi-field sorting
        +
      • +
      +
    • +
    +
         // order by field1 ASC, field2 DESC
    +     dhx_sort[1]=asc&dhx_filter[2]=dsc
    +

    +Names of fields where filtering is enabled or columns indexes in case of grid, will be used as names in above hashes. + +

    +
      +
    • Restriction for output data - order and structure are defined by filtering/sorting parameters.
      +
    • +
    + +

    + +dhtmlxCombo has an additional filtering parameter GET - mask, which is used for setting filtering in the text label column, using “like x%†rule. + +

    +
       some.do?mask=abc
    +
    +
    +

    Dynamical Loading

    +
    + +

    + +The next step after data output implementation is dynamical loading. Dynamical loading has some particular features when working with hierarchical ( tree| treegrid ) and simple ( grid | combo ) components. +

    + +

    +For hierarchical components, loading of data branch occurs at once. +

    +
         some.do?id=123
    +

    +id parameter contains “parent id†value which defines an appropriate branch, meanwhile all filtering/sorting rules which were mentioned above are always working. +

    + +

    +For simple structure, only section data will be output according to incoming parameters. + +

    +
         //grid
    +     some.do?posStart=20&count=50
    +     //combo
    +     some.do?pos=50
    +

    +In grid, posStart parameter sets index of initial string and count parameter sets number of strings to output. +

    + +

    +In combo, pos parameter sets index of initial string, number of strings is defined by server settings. +

    + +

    +When working with grid, initial request (grid doesn't know yet how many strings are expected) doesn't contain any additional parameters. +( posStart and count are not defined ) +

    + +
    +
    +

    Saving changes

    +
    + +

    + +Component uses dhtmlxDataProcessor in send-all-at-once mode. The articles below describe format of data sent to server side and expected reply + +

    + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___protocol_details.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___protocol_details.html new file mode 100755 index 0000000000..d29acba50d --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___protocol_details.html @@ -0,0 +1,268 @@ + + + + dhtmlxconnector:protocol_details [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +
    +
    Table of Contents
    + +
    + + +

    +

    + +

    + +

    Protocol Details

    +
    + +
    +
    +

    Data fetching

    +
    + +

    +POST +

    +
      +
    • none
      +
    • +
    + +

    + +GET +

    +
      +
    • connector=true - flag of connector based request
      +
    • +
    • dhx_colls=field1,field2…fieldN - optional, can contain list of fields for which collections will be requested. dhtmlxGrid use such parameters to request data for combo columns and select filters ( such requests executed only once , for initial data loading)
      +
    • +
    +
    +     some.php?connector=true&dhx_colls=2,3
    +
    +
      +
    • dhx_sort[field]=directon - instruct server side connector to sort dataset by defined field
      +
    • +
    +
    +     some.php?connector=true&dhx_sort[2]=asc
    +
    +
      +
    • dhx_filter[field]=mask - instruct server side connector to filter dataset by defined field
      +
    • +
    +
    +     //filter by %test%
    +     some.php?connector=true&dhx_filter[2]=test
    +
    + +
    + +
    dhtlmxGrid specific
    +
    + +

    +Requsting part of data +

    + +

    +GET +

    +
      +
    • posStart - position from which data requested
      +
    • +
    • count - count of rows requested
      +
    • +
    + +
    + +
    dhtlmxCombo specific
    +
    + +

    +Requsting part of data +

    + +

    +GET +

    +
      +
    • pos - position from which data requested
      +
    • +
    + +

    + +Filter by label field +

    + +

    +GET +

    +
      +
    • mask - filtering mask for label field
      +
    • +
    + +
    + +
    dhtmlxTree|dhtlxTreeGrid specific
    +
    + +

    +Request branch of tree +

    + +

    +GET +

    +
      +
    • id - parent id for requested branch
      +
    • +
    + +
    +
    +

    Data updating

    +
    + +

    + +GET +

    +
      +
    • editing=true - mark of dataprocessor based call
      +
    • +
    + +

    +POST +

    +
      +
    • ids - list of updated records
      +
    • +
    • [id]_[property] - for each field inside updated record related field in POST generated
      +
    • +
    • [id]_!nativeeditor_status - action type
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___security.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___security.html new file mode 100755 index 0000000000..0a2b7596a2 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___security.html @@ -0,0 +1,165 @@ + + + + dhtmlxconnector:security [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Security

    +
    + +

    +dhtmlxConnector is open to external access of another programs that's why any external user is allowed to change data in DB, thus adding some kind of session based authentication is strongly recommended. +Built in security manager allows to limit connector for certain operations only. +

    +
        $gridConn->access->deny("read"); //blocks Select action
    +    $gridConn->access->deny("add"); //blocks Insert action
    +    $gridConn->access->deny("edit"); //blocks Update action
    +    $gridConn->access->deny("delete"); //blocks Delete action
    +

    +By default connector allows all operations. +

    + +
    +
    +

    Transactions

    +
    + +

    + +Grid allows to use transactions , for data create|update|delete operations ( be sure that used DB engine has support for transactions ). They can be enabled as + +

    +
        $conn->sql->set_transaction_mode("global");
    +or 
    +    $conn->sql->set_transaction_mode("record");
    +
    + +

    global transaction mode

    +
    +
      +
    • Component uses single transaction for all records inside single request.
      +
    • +
    • If any operation fails - all record operations will be rolled back, all updated rows will be returned with error status
      +
    • +
    • If custom validation was assigned and block any record - all records inside request will be blocked
      +
    • +
    + +
    + +

    record transaction mode

    +
    +
      +
    • Component uses separate transactions for each record in request
      +
    • +
    • If any operation fails, it will not affect other operations
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___select-box_columns_in_grid.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___select-box_columns_in_grid.html new file mode 100755 index 0000000000..287901279a --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___select-box_columns_in_grid.html @@ -0,0 +1,158 @@ + + + + dhtmlxconnector:select-box_columns_in_grid [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    Select box columns in a grid

    +
    + +

    +When grid has co|coro columns ( select|combo-box ), it will automatically request data for it in same manner as for filtering options. So it possible to use similar way of logic to define which list of values need to be used in select|combo inside the grid. + +

    +
      +
    • automatic - if no custom instruction provided , grid will use DISTINCT select against related field, and fetch all possible options
      +
    • +
    • hardcoded list
      +
    • +
    +
    	$grid->set_options("item_nm",array("1" => "one", "2"=>"two","3" => "three")); // value => label
    +	$grid->render_table("grid50","item_id","item_nm,item_cd");
      +
    • list created on base of different table
      +
    • +
    +
    	$options = new OptionsConnector($res);
    +	$options->render_table("countries","country_id","country_id(value),country_name(label)");
    +	$grid->set_options("item_nm",$options);
    + 
    +	$grid->render_table("grid50","item_id","item_nm,item_cd");
    +

    +In case of options in grid +

    +
      +
    • when using predefined list of data, both values and labels need to be provided
      +
    • +
    • when using connector, there must be two fields selected, one as (value), second as (label)
      +
    • +
    + +

    + +In case, when connector used only to fill select-filter +

    +
      +
    • only labels need to be provided
      +
    • +
    • connector may define only label parameter
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___select-box_in_scheduler.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___select-box_in_scheduler.html new file mode 100755 index 0000000000..5b15af7f41 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___select-box_in_scheduler.html @@ -0,0 +1,143 @@ + + + + dhtmlxconnector:select-box_in_scheduler [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    Select box columns in a scheduler

    +
    + +

    + +When scheduler has a select-like collections , or unit|timeline view - it possible to load the list of related options from a server. In such case the data loading need to be defined on client side as + +

    +
    	some_collection=scheduler.serverList("type");
    +

    +On server side , list of options can be retrieved in few ways + +

    +
      +
    • hardcoded list
      +
    • +
    +
    	//	both values and labels need to be provided
    +	$scheduler->set_options("type",array("1" => "one", "2"=>"two","3" => "three")); // value => label
    +	$scheduler->render_table("events","event_id","start_date,end_date,text,type_id");
      +
    • list created on base of different table
      +
    • +
    +
    	$options = new OptionsConnector($res);
    +	//	there must be two fields selected, one as (value), second as (label)
    +	$options->render_table("types","type_id","type_id(value),type_name(label)");
    +	$scheduler->set_options("type",$options);
    + 
    +	$scheduler->render_table("events","event_id","start_date,end_date,text,type_id");
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___server_side_others.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___server_side_others.html new file mode 100755 index 0000000000..92387550e6 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___server_side_others.html @@ -0,0 +1,266 @@ + + + + dhtmlxconnector:server_side_others [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +The init code are similar for all components and DB types +

    + +

    DB types

    +
    + +

    + +MySQL ( php_mysql ) + +

    +
    require("connector/grid_connector.php");
    + 
    +$res=mysql_connect("localhost","root","");
    +mysql_select_db("myDatabase");
    + 
    +$gridConn = new GridConnector($res,"MySQL");
    +

    +MySQLi ( php_mysqli ) + +

    +
    require("connector/grid_connector.php");
    +require("connector/db_mysqli.php");
    + 
    +$mysqli = new mysqli($server, $user, $pass, $mysql_db); 
    +$gridConn = new GridConnector($mysqli,"MySQLi");
    +

    +PostgreSQL ( php_pg ) + +

    +
    require("connector/grid_connector.php");
    +require("connector/db_postgre.php");
    + 
    +$res = pg_connect("host=localhost port=5432 dbname=mary");
    + 
    +$gridConn = new GridConnector($res,"Postgre");
    +

    +Oracle ( php_oci ) + +

    +
    require("connector/grid_connector.php");
    +require("connector/db_oracle.php");
    + 
    +$res = oci_connect("scott", "tiger", $db);
    + 
    +$gridConn = new GridConnector($res,"Oracle");
    +

    +MSSQL ( php_mssql ) + +

    +
    require("connector/grid_connector.php");
    +require("connector/db_mssql.php");
    + 
    +$res=mssql_connect('.\SQLEXPRESS',"sa","1",false);
    +mssql_select_db("sampleDB");
    + 
    +$gridConn = new GridConnector($res,"MsSQL");
    +

    +PDO ( php_pdo ) + +

    +
    require("connector/grid_connector.php");
    +require("connector/db_pdo.php");
    + 
    +$res = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
    + 
    +$gridConn = new GridConnector($res,"PDO");
    +

    +File System + +

    +
    require("connector/grid_connector.php");
    +require("connector/db_pdo.php");
    + 
    +$gridConn = new GridConnector("/var/www/test","FileSystem");
    +$grid->render_table("./", "id", "A,B,C,D,E,F");
    +

    +Excel file + +

    +
    require("connector/grid_connector.php");
    +require("connector/db_excel.php");
    + 
    +$res = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
    + 
    +$grid = new GridConnector("some.xls", "ExcelDBDataWrapper");
    +$grid->render_table("A18:F83", "id", "A,B,C,D,E,F");
    +
    + +

    Component types

    +
    + +

    +For other components syntax of constructor exactly the same, except, the “Grid†in object name replaced with component's name +

    + +

    +Grid + +

    +
         require("connector/grid_connector.php");
    +     //...
    +     $gridConn = new GridConnector($res,"MySQL");
    +

    +TreeGrid 1) + +

    +
         require("connector/treegrid_connector.php");
    +     //...
    +     $treeGridConn = new TreeGridConnector($res,"MySQL");
    +

    +Tree 2) + +

    +
         require("connector/tree_connector.php");
    +     //...
    +     $treeConn = new TreeConnector($res,"MySQL");
    +

    +Combo + +

    +
         require("connector/combo_connector.php");
    +     //...
    +     $comboConn = new ComboConnector($res,"MySQL");
    +

    +Scheduler + +

    +
         require("connector/scheduler_connector.php");
    +     //...
    +     $schedulerConn = new SchedulerConnector($res,"MySQL");
    +

    +Form + +

    +
         require("connector/form_connector.php");
    +     //...
    +     $formConn = new FormConnector($res,"MySQL");
    +

    +DataView + +

    +
         require("connector/dataview_connector.php");
    +     //...
    +     $dataConn = new DataViewConnector($res,"MySQL");
    +

    +Chart + +

    +
         require("connector/chart_connector.php");
    +     //...
    +     $chartConn = new ChartConnector($res,"MySQL"); // (!!!)
    +
    +
    +
    1) +, 2) +check configuration details
    +
    + + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___sorting.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___sorting.html new file mode 100755 index 0000000000..976855baa5 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___sorting.html @@ -0,0 +1,169 @@ + + + + dhtmlxconnector:sorting [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Sorting

    +
    + +

    + +While all connectors can sort data by url manipulation, only Grid and TreeGrid has native GUI for sorting, so below info most actual for those two components. +

    + +

    +To make grid sort content with connectors you need to use “connector†as sorting type while grid initialization. For example: + +

    +
        myGrid.setColSorting("connector,str,na);
    +

    + +Here the first column will be sorted on server with connectors, the second as string on client side, the third column will not be sortable. +

    + +

    +If you need to customize the way of sorting you can use “beforeSort†server side event. +Event doesn't allow to write custom sorting logic , but you can affect SORT BY clause of generated SQL request. +Event receives SortInterface Object as parameter +

    + +

    +Define default sorting + +

    +
       function custom_sort($sorted_by){
    +          //SORT BY some_field ASC
    +          if (!sizeof($sorted_by->rules)) 
    +               $sorted_by->add("some_field","ASC");
    +   }
    +   $conn->event->attach("beforeSort","custom_sort");
    +

    +Default sorting by two fields + +

    +
       function custom_sort($sorted_by){
    +          //SORT BY some_field ASC, some_other ASC
    +          if (!sizeof($sorted_by->rules)){
    +               $sorted_by->add("some_field","ASC");
    +               $sorted_by->add("some_other","ASC");
    +          }
    +   }
    +   $conn->event->attach("beforeSort","custom_sort");
    +

    + +Custom sorting rule + +

    +
       function custom_sort($sorted_by){
    +          // SORT BY LENGTH(some_field)
    +          $sorted_by->rules[0]["name"]="LENGTH(some_field)";
    +   }
    +   $conn->event->attach("beforeSort","custom_sort");
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___sortinterface_object.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___sortinterface_object.html new file mode 100755 index 0000000000..58199ac08a --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___sortinterface_object.html @@ -0,0 +1,182 @@ + + + + dhtmlxconnector:sortinterface_object [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +
    +
    Table of Contents
    +
    + + +
    +
    + + +

    +

    + +

    + +

    Sort Interface Object

    +
    + +
    +
    +

    clear

    +
    + +

    +clears all defined settings + +

    +
      $coll->clear();
    +
    +
    +

    index

    +
    + +

    +check if options for named field exist in collection and return related hash. Returns false if named field not found in collection. + +

    +
      $index = $coll->index("some_field");
    +
    +
    +

    add

    +
    + +

    +adds new sorting rule to collection + +

    +
      $coll->add("some_field","ASC");
    +
    +
    +

    rules

    +
    + +

    +array of all already defined sorting rules. Each element has two properties +

    +
      +
    • name - name of related field
      +
    • +
    • direction - direction of sorting
      +
    • +
    +
      $name = $coll->rules[0]["name"]
    +  $coll->rules[0]["direction"]="DESC";
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___toc_dhtmlxconnector_event_o.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___toc_dhtmlxconnector_event_o.html new file mode 100755 index 0000000000..a902ec0443 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___toc_dhtmlxconnector_event_o.html @@ -0,0 +1,148 @@ + + + + dhtmlxconnector:toc_dhtmlxconnector_event_o [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    dhtmlxConnector event objects

    +
    + +

    +DataAction object +Object received by next events: beforeInsert, beforeUpdate, beforeDelete, beforeProcessing, afterProcessing, afterDelete, afterUpdate, afterInsert +

    + +

    +DataItem Object +Object received by beforeRender event +

    + + +

    + +SortInterface Object +Object received by beforeSort event +

    + +

    +FilterInterface Object +Object received by beforeSort event + +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___toc_what_is_dhtmlxconnector.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___toc_what_is_dhtmlxconnector.html new file mode 100755 index 0000000000..8130c8c950 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___toc_what_is_dhtmlxconnector.html @@ -0,0 +1,211 @@ + + + + dhtmlxconnector:toc_what_is_dhtmlxconnector [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + + + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___tree_group.png b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___tree_group.png new file mode 100755 index 0000000000..85452872a7 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___tree_group.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___treedataitem.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___treedataitem.html new file mode 100755 index 0000000000..df245f13a7 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___treedataitem.html @@ -0,0 +1,206 @@ + + + + dhtmlxconnector:treedataitem [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    TreeDataItem

    +
    + +

    + +Nest all methods of DataItem Object +

    + +
    + +

    get_parent_id

    +
    + +

    +method returns parent id of the selected item: + +

    +
      $dataItem->get_parent_id();
    +
    + +

    set_image

    +
    + +

    +method allows to set image for any item in tree: + +

    +
      $dataItem->set_image($img)
    +

    + +Parameters: +

    +
      +
    • $img - image which will be set for selected item
      +
    • +
    + +

    + +Can be use with variable number of parameters +

    +
      $dataItem->set_image($img1,$img2,$img3)
    +

    + +Parameters: +

    +
      +
    • $img1 - image of folder in opened state
      +
    • +
    • $img2 - image of folder in closed state
      +
    • +
    • $img3 - image of leaf item
      +
    • +
    + +
    + +

    get_check_state

    +
    + +

    +method returns the state of selected item: + +

    +
        $dataItem->get_check_state();
    +

    + +Parameters: +

    +
      +
    • $value -returns state of checkbox related to the item:
      +
    • +
    + +
    + +

    set_check_state

    +
    + +

    +method allows to set state of checkbox related to the item: + +

    +
        $dataItem->set_check_state($value);
    +

    + +Parameters: +

    +
      +
    • $value - state of the item, valid valus are “0†- unchecked, “1†- checked, â€-1†- third state
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___treegrid_multitable.png b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___treegrid_multitable.png new file mode 100755 index 0000000000..8c29ddf006 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___treegrid_multitable.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___treegriddataitem.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___treegriddataitem.html new file mode 100755 index 0000000000..99afde4ba1 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___treegriddataitem.html @@ -0,0 +1,150 @@ + + + + dhtmlxconnector:treegriddataitem [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    TreeGridDataItem

    +
    + +

    + +Nest all method of DataItem Object and GridDataItem Object +

    + +
    + +

    get_parent_id

    +
    + +

    +method returns parent id of selected item: + +

    +
        $dataItem->get_parent_id();
    +
    + +

    set_image

    +
    + +

    +method allows to set image for all check states of the node in tree: + +

    +
        $dataItem->set_image($img);
    +

    + +Parameters: +

    +
      +
    • $img - image which will be set for the item, path relative to icon's path of tree
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___url_manipulation.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___url_manipulation.html new file mode 100755 index 0000000000..d9926043ae --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___url_manipulation.html @@ -0,0 +1,174 @@ + + + + dhtmlxconnector:url_manipulation [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +
    +
    Table of Contents
    +
    + + +
    +
    + + +

    +

    + +

    + +

    URL manipulation

    +
    + +

    + +You can control which data loaded in component by specifying additional parameters in URL. Check protocol details for full url parameters description. +

    + +
    +
    +

    Filtering

    +
    +
      +
    • Filter by one field
      +
    • +
    +
           grid.load("some.php?connector=true&dhx_filter[1]=mask");
    +

    + +With such url - data will be taken with additional rule + +

    +
           WHERE field_for_column_1 LIKE %mask%
      +
    • Filter by multiple fields
      +
    • +
    +
           grid.load("some.php?connector=true&dhx_filter[1]=mask&dhx_filter[3]=another");
    +

    +Similar approach can be used against other component, but you will need to provide exact field name instead of column index. +

    + +

    +Beware that such filtering is not-secure, if you need to hide some data - be sure to define such limitation on server side, not as part of URL +

    + +
    +
    +

    Sorting

    +
    +
           //ORDER by field_2 ASC
    +       grid.load("some.php?connector=true&dhx_sort[2]=asc");
    +       //ORDER by field_2 ASC, field_3 DESC
    +       grid.load("some.php?connector=true&dhx_sort[2]=asc&dhx_sort[3]=desc");
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___validating_data.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___validating_data.html new file mode 100755 index 0000000000..3b8e45672b --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___validating_data.html @@ -0,0 +1,128 @@ + + + + dhtmlxconnector:validating_data [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Validating Data

    +
    + +

    +To implement server side validation of incoming data you can use “beforeUpdateâ€, “beforeInsertâ€, “beforeDelete†or “beforeProcessing†event. “beforeProcessing†event occurs for all types of operations, while other events occurs only for related operations, so you can have different validation rules for different operations. +

    + +

    +Event will receive DataAction object as parameter. This object can be used to retrieve related data and allow|deny operation. ( beware that it contains only data which was received from client side, not the all data related to the record, as DataItem object has ) +

    +
            function validate($data){
    +             if ($data->get_value("some")=="")
    +                  $data->invalid();
    +        }
    +        $conn->event->attach("beforeProcessing","validate");
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___xml_format_used_by_connector.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___xml_format_used_by_connector.html new file mode 100755 index 0000000000..7aef3b839e --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/dhtmlxconnector___xml_format_used_by_connector.html @@ -0,0 +1,260 @@ + + + + dhtmlxconnector:xml_format_used_by_connector [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +
    +
    Table of Contents
    + +
    + + +

    +

    + +

    + +

    XML format used by connector

    +
    + +
    +
    +

    Grid

    +
    +
       <rows>
    +           <row id="some1"><cell>value 1,1</cell><cell>value 1,2</cell></row>
    +           <row id="some2"><cell>value 2,1</cell><cell>value 2,2</cell></row>
    +   </rows>
      +
    • row - tag represents row in the grid
      +
    • +
    • cell - tag represents cell in the grid
      +
    • +
    + +

    + +row@id - mandatory attribute, must be unique for each row; row and cell tags may contain additional attributes, which will be processed in default way +

    + +

    +In dyn loading mode + +

    +
       <rows total_count="50000" pos="1230">
    +           <row id="some1230"><cell>value 1,1</cell><cell>value 1,2</cell></row>
    +           <row id="some1231"><cell>value 2,1</cell><cell>value 2,2</cell></row>
    +   </rows>
      +
    • rows@total_count - count of rows in grid, need to be sent only for first data request ( when posStart parameter is not defined )
      +
    • +
    • rows@pos - equal to posStart parameters, define in which place of grid data will added
      +
    • +
    + +
    +
    +

    TreeGrid

    +
    +
       <rows>
    +           <row id="some1">
    +              <cell image="some.gif">value 1,1</cell><cell>value 1,2</cell>
    +              <row id="some11"><cell>child value 1</cell><cell>child value 2</cell></row>
    +           </row>
    +           <row id="some2"><cell>value 2,1</cell><cell>value 2,2</cell></row>
    +   </rows>
      +
    • row - tag represents row in the grid, one row tag can contain other row tags inside ( parent - child relation in hierarchy )
      +
    • +
    • cell - tag represents cell in the grid
      +
    • +
    • row@id - mandatory attribute, must be unique for each row
      +
    • +
    • cell@image - can define image for tree cell in grid ( optional )
      +
    • +
    + +

    +Dyn. loading + +

    +
       <rows parent="id">
    +           <row id="some1" xmlkids="1">
    +              <cell image="some.gif">value 1,1</cell><cell>value 1,2</cell>
    +           </row>
    +           <row id="some2"><cell>value 2,1</cell><cell>value 2,2</cell></row>
    +   </rows>
      +
    • row@xmlkids - defines that row can contain child nodes
      +
    • +
    • rows@parent - name of parent ID ( equal to incoming “id†parameter ) , ID of virtual root - 0
      +
    • +
    + +
    +
    +

    Tree

    +
    +
       <tree>
    +        <item id="some" text="name">
    +                 <item id="child1" text="name 1"/>
    +                 <item id="child2" text="name 2"/>
    +        </item>
    +   </tree>
      +
    • item tag - item in a tree, can nest other item tags to represent parent-child relation
      +
    • +
    • item@id - ID, unique for each item
      +
    • +
    • item@text - label
      +
    • +
    + +

    + +In case of dyn. loading +

    +
       <tree id="id">
    +        <item id="some" text="name" childs="1">
    +        </item>
    +   </tree>
      +
    • item@childs - defines that row can contain child nodes
      +
    • +
    • tree@id - name of parent ID ( equal to incoming “id†parameter ) , ID of virtual root - 0
      +
    • +
    + +
    +
    +

    Combo

    +
    +
        <data>
    +        <option value="some">Some label</option>
    +        <option value="other">Other label</option>
    +    </data>
      +
    • option - represent option in combo
      +
    • +
    + +

    + +In case of dyn. loading +

    +
        <data add="true">
    +        <option value="some">Some label</option>
    +        <option value="other">Other label</option>
    +    </data>
    +

    + +If “pos†parameter was provided, response must contain data@add attribute , to mark that it not new set of values, but addition to existing one. + +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/icons___connector.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/icons___connector.gif new file mode 100755 index 0000000000..62804cbf5e Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/icons___connector.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/icons___file.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/icons___file.gif new file mode 100755 index 0000000000..31d23fd447 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/icons___file.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/index.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/index.html new file mode 100755 index 0000000000..a0d55b7c7f --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxconnector/index.html @@ -0,0 +1,176 @@ + + + + dhtmlxconnector:toc [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    dhtmlxConnector

    +
    + +

    + +This is documentation for PHP connector. For other platforms check
    + +.Net documentation, Java documentation, classic ASP documentation +

    + +

    +dhtmlxConnector is a set of PHP classes which helps to simplify server side operations for dhtmlx components + +

    +
      +
    • Data loading for Grid, TreeGrid, Tree, Combo, Scheduler, DataView, Chart, Form
      +
    • +
    • Data saving for Grid, TreeGrid, Tree, Scheduler, DataView, Form
      +
    • +
    • Server side sorting and filtering for Grid, Combo
      +
    • +
    • Dynamic loading (paging) for Grid, Treegrid, Tree, Scheduler, DataView
      +
    • +
    + +

    + +Server side requirements +

    +
      +
    • fully supported DataBases: MySQL, PostgreSQL, Oracle, MSSQL, FileSystem
      +
    • +
    • partially supported DataBases: any PDO|ODBC compilant ( MSAccess, SQLLite, DB2, FireBird, etc. )
      +
    • +
    • PHP version: 5.x
      +
    • +
    + + + +
    + +
    API Reference
    + +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/_media.txt b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/_media.txt new file mode 100755 index 0000000000..de5cc06a4d --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/_media.txt @@ -0,0 +1,4 @@ +icons___file.gif +icons___dataprocessor.gif +common___any_ed.gif +dhtmlxgrid___dataprocessor.png diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/_structure.xml b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/_structure.xml new file mode 100755 index 0000000000..a3120fbec0 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/_structure.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/common___any_ed.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/common___any_ed.gif new file mode 100755 index 0000000000..ce81017286 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/common___any_ed.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___adjusting_server_side_code.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___adjusting_server_side_code.html new file mode 100755 index 0000000000..39302711b5 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___adjusting_server_side_code.html @@ -0,0 +1,192 @@ + + + + dhtmlxdataprocessor:adjusting_server_side_code [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Adjusting Server Side Code

    +
    + +

    + +If you are using php-connectors - please refer to connectors documentation. +

    + +

    +The default package contains an example of the server side code for PHP (by additional request the similar code for JSP|ColdFusion|C#.Net|RybyOnRails can be sent). +The code does the following three tasks: +

    + +

    +a) Takes parameters from the incoming request;
    + +b) Makes the necessary DB operation;
    + +c) Returns the information about the operation result. +

    + +

    +The incoming parameters are: +

    +
      +
    • gr_id - id of a row in the grid for which some operation is executed;
      +
    • +
    • !nativeeditor_status - the status of the operation;
      +
    • +
    • inserted - the row in question was added;
      +
    • +
    • deleted - the row in question was deleted;
      +
    • +
    • … any other value … - the row was updated;
      +
    • +
    • c0 - the data of the first column in the updated row;
      +
    • +
    • c1 - the data of the second column in the updated row;
      + ….
      +
      +
    • +
    • cN - the data of the (N+1)th column in the grid.
      +
    • +
    + +

    + +All the parameters are part of GET request. +

    + +

    +Based on the value of â€!nativeeditor_status†the related section of the server side logic is triggered. +

    + +

    +The response must be in the following format: + +

    +
      <data>
    +      <action type="some" sid="some" tid="some" />
    +  </data>
    +

    + +Where: +

    +
      +
    • type - the type of the operation (it may be “insertâ€, “updateâ€, “deleteâ€);
      +
    • +
    • sid - the original row ID (the same as gr_id);
      +
    • +
    • tid - the ID of the row after the operation (may be the same as gr_id, or some different one - it can be used during a new row adding, when a temporary ID created on the client side is replaced with the ID taken from the DB or by any other business rule).
      +
    • +
    + +

    + +The response must be a valid XML in order to be processed correctly. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_afterupdatecallback.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_afterupdatecallback.html new file mode 100755 index 0000000000..3077dd85dc --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_afterupdatecallback.html @@ -0,0 +1,139 @@ + + + + dhtmlxdataprocessor:api_method_dataprocessor_afterupdatecallback [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    afterUpdateCallback(sid, tid, action, btag)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxdataprocessor.js +

    + +

    +used in combination with setOnBeforeUpdateHandler to create custom client-server transport system + +

    +
      +
    • sid - id of item before update
      +
    • +
    • tid - id of item after up0ate
      +
    • +
    • action - action name
      +
    • +
    • btag - reference to the xml node
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_attachevent.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_attachevent.html new file mode 100755 index 0000000000..dd9f9f42f5 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_attachevent.html @@ -0,0 +1,142 @@ + + + + dhtmlxdataprocessor:api_method_dataprocessor_attachevent [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    attachEvent (evName, evHandler)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxdataprocessor.js +

    + +

    + adds any user-defined handler to available events + +

    +
      +
    • evName - name of the event;
      +
    • +
    • evHandler - user-defined event handler.
      +
    • +
    +
                  dataprocessor.attachEvent(evName, evHandler);
    +

    + +Several handlers can be attached to one and the same event, and all of them will be executed. +

    + +

    +Note: the names of the events are case-insensitive. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_checkbeforeupdate.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_checkbeforeupdate.html new file mode 100755 index 0000000000..99ac87abc2 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_checkbeforeupdate.html @@ -0,0 +1,133 @@ + + + + dhtmlxdataprocessor:api_method_dataprocessor_checkbeforeupdate [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    checkBeforeUpdate(rowId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxdataprocessor.js +

    + +

    +check mandatory fields and varify values of cells, initiate update (if specified) + +

    +
      +
    • rowId - id of row to set update-status for
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_clearverificator.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_clearverificator.html new file mode 100755 index 0000000000..19ff8223c5 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_clearverificator.html @@ -0,0 +1,133 @@ + + + + dhtmlxdataprocessor:api_method_dataprocessor_clearverificator [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    clearVerificator(ind)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxdataprocessor.js +

    + +

    +remove column from list of those which should be verified + +

    +
      +
    • ind - column Index (0 based)
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_detachevent.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_detachevent.html new file mode 100755 index 0000000000..0219627f39 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_detachevent.html @@ -0,0 +1,129 @@ + + + + dhtmlxdataprocessor:api_method_dataprocessor_detachevent [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    detachEvent (id)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxdataprocessor.js +

    + +

    +removes an event handler + +

    +
                  dataprocessor.detachEvent(id);
    + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_enabledatanames.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_enabledatanames.html new file mode 100755 index 0000000000..34b0eda6d6 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_enabledatanames.html @@ -0,0 +1,133 @@ + + + + dhtmlxdataprocessor:api_method_dataprocessor_enabledatanames [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableDataNames(mode)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxdataprocessor.js +

    + +

    +enable/disable named field for data syncing, will use column ids for grid + +

    +
      +
    • mode - true/false
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_enablepartialdatasend.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_enablepartialdatasend.html new file mode 100755 index 0000000000..2fe0816e48 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_enablepartialdatasend.html @@ -0,0 +1,133 @@ + + + + dhtmlxdataprocessor:api_method_dataprocessor_enablepartialdatasend [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enablePartialDataSend(mode)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxdataprocessor.js +

    + +

    +enable/disable mode , when only changed fields and row id send to the server side, instead of all fields in default mode + +

    +
      +
    • mode - true/false
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_enableutfencoding.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_enableutfencoding.html new file mode 100755 index 0000000000..8b3a90149f --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_enableutfencoding.html @@ -0,0 +1,133 @@ + + + + dhtmlxdataprocessor:api_method_dataprocessor_enableutfencoding [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableUTFencoding(mode)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxdataprocessor.js +

    + +

    +allows to set escaping mode + +

    +
      +
    • true - utf based escaping, simple - use current page encoding
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_getsyncstate.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_getsyncstate.html new file mode 100755 index 0000000000..c7a1006168 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_getsyncstate.html @@ -0,0 +1,131 @@ + + + + dhtmlxdataprocessor:api_method_dataprocessor_getsyncstate [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getSyncState()

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxdataprocessor.js +

    + +

    +get state of updating +

    + +

    + +Returns true - all in sync with server, false - some items not updated yet. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_ignore.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_ignore.html new file mode 100755 index 0000000000..0ba3d05463 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_ignore.html @@ -0,0 +1,136 @@ + + + + dhtmlxdataprocessor:api_method_dataprocessor_ignore [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    ignore(code)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxdataprocessor.js +

    + +

    +allows to execute commands which will not trigger dataprocessor + +

    +
      +
    • code - code block, any operation in which, will not cause dataProcessor reaction
      +
    • +
    +
        dp.ignore(function(){
    +          mygrid.addRow(1,"new row");
    +          mygrid.deleteRow(123);
    +    })
    + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_init.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_init.html new file mode 100755 index 0000000000..4c113ba1cf --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_init.html @@ -0,0 +1,133 @@ + + + + dhtmlxdataprocessor:api_method_dataprocessor_init [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    init(anObj)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxdataprocessor.js +

    + +

    +initializes data-processor + +

    +
      +
    • anObj - dhtmlxGrid object to attach this data-processor to
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_senddata.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_senddata.html new file mode 100755 index 0000000000..836d1250da --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_senddata.html @@ -0,0 +1,133 @@ + + + + dhtmlxdataprocessor:api_method_dataprocessor_senddata [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    sendData(rowId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxdataprocessor.js +

    + +

    +send row(s) values to server + +

    +
      +
    • rowId - id of row which data to send. If not specified, then all “updated†rows will be send
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_setdatacolumns.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_setdatacolumns.html new file mode 100755 index 0000000000..e1f9070c05 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_setdatacolumns.html @@ -0,0 +1,133 @@ + + + + dhtmlxdataprocessor:api_method_dataprocessor_setdatacolumns [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setDataColumns(val)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxdataprocessor.js +

    + +

    +allows to define, which column may trigger update + +

    +
      +
    • val - array or list of true/false values
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_setonbeforeupdatehandler.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_setonbeforeupdatehandler.html new file mode 100755 index 0000000000..247b7b1d27 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_setonbeforeupdatehandler.html @@ -0,0 +1,133 @@ + + + + dhtmlxdataprocessor:api_method_dataprocessor_setonbeforeupdatehandler [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setOnBeforeUpdateHandler(func)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxdataprocessor_deprecated.js +

    + +

    +set function called before server request sent ( can be used for including custom client server transport system) + +

    +
      +
    • func - event handling function
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_settransactionmode.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_settransactionmode.html new file mode 100755 index 0000000000..2d0032f18d --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_settransactionmode.html @@ -0,0 +1,135 @@ + + + + dhtmlxdataprocessor:api_method_dataprocessor_settransactionmode [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setTransactionMode(mode,total)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxdataprocessor.js +

    + +

    +select GET or POST transaction model + +

    +
      +
    • mode - GET/POST
      +
    • +
    • total - true/false - send records row by row or all at once (for grid only)
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_setupdated.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_setupdated.html new file mode 100755 index 0000000000..5d60d5ba2b --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_setupdated.html @@ -0,0 +1,137 @@ + + + + dhtmlxdataprocessor:api_method_dataprocessor_setupdated [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setUpdated(rowId,state,mode)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxdataprocessor.js +

    + +

    +mark row as updated/normal. check mandatory fields,initiate autoupdate (if turned on) + +

    +
      +
    • rowId - id of row to set update-status for
      +
    • +
    • state - true for “updatedâ€, false for “not updatedâ€
      +
    • +
    • mode - update mode name - “insertedâ€,â€updatedâ€,â€deleted†(“updated†by default)
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_setupdatemode.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_setupdatemode.html new file mode 100755 index 0000000000..3f3a948c04 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_setupdatemode.html @@ -0,0 +1,133 @@ + + + + dhtmlxdataprocessor:api_method_dataprocessor_setupdatemode [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setUpdateMode(mode,dnd)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxdataprocessor.js +

    + +

    +set if rows should be send to server automaticaly + +

    +
      +
    • mode - “row†- based on row selection changed, “cell†- based on cell editing finished, “off†- manual data sending
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_setverificator.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_setverificator.html new file mode 100755 index 0000000000..158cf88939 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_method_dataprocessor_setverificator.html @@ -0,0 +1,146 @@ + + + + dhtmlxdataprocessor:api_method_dataprocessor_setverificator [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setVerificator(ind,verifFunction)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxdataprocessor.js +

    + +

    +specify column which value should be varified before sending to server + +

    +
      +
    • ind - column index (0 based)
      +
    • +
    • verifFunction - function (object) which should verify cell value (if not specified, then value will be compared to empty string). Three arguments will be passed into it: value, row ID and column index
      +
    • +
    +
       //check if first column values is not equal to 0
    +   myDataProcessor.setVerificator(0,greater_0);
    +   function greater_0(value){
    +	return value>0;
    +   }
    + 
    +   //check if second column values is not empty
    +   myDataProcessor.setVerificator(1,not_empty);
    +   function not_empty(value,id,ind){
    +	if (value=="") mygrid.setCellTextStyle(id,ind,"background-color:yellow;");
    +	return value!="";
    +   }
    + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_toc_alpha.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_toc_alpha.html new file mode 100755 index 0000000000..473e3b9103 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_toc_alpha.html @@ -0,0 +1,163 @@ + + + + dhtmlxdataprocessor:api_toc_alpha [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    dhtmlxDataProcessor API Methods

    +
    + + + +
    + +

    dataProcessor Object

    +
    +
      +
    • afterUpdateCallback used in combination with setOnBeforeUpdateHandler to create custom client-server transport system
      +
    • +
    • attachEvent attaches an event handler to DataProcessor
      +
    • +
    • checkBeforeUpdate checks mandatory fields and varify values of cells, initiate update (if specified)
      +
    • +
    • clearVerificator removes column from list of those which should be verified
      +
    • +
    • detachEvent removes an event handler
      +
    • +
    • enableDataNames enables/disables named field for data syncing, will use column ids for grid
      +
    • +
    • enablePartialDataSend enables/disables mode , when only changed fields and row id send to the server side, instead of all fields in * default mode
      +
    • +
    • enableUTFencoding allows to set escaping mode
      +
    • +
    • getSyncState gets state of updating
      +
    • +
    • init initializes data-processor
      +
    • +
    • ignore allows to execute commands which will not trigger dataprocessor
      +
    • +
    • sendData sends row(s) values to server
      +
    • +
    • setDataColumns allows to define, which column may trigger update
      +
    • +
    • setOnBeforeUpdateHandler sets function called before server request sent ( can be used for including custom client server transport system)
      +
    • +
    • setTransactionMode selects GET or POST transaction model
      +
    • +
    • setUpdated marks row as updated/normal. check mandatory fields,initiate autoupdate (if turned on)
      +
    • +
    • setUpdateMode sets if rows should be send to server automaticaly
      +
    • +
    • setVerificator specifies column which value should be varified before sending to server
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_toc_categories.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_toc_categories.html new file mode 100755 index 0000000000..b3c5a94da7 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___api_toc_categories.html @@ -0,0 +1,121 @@ + + + + dhtmlxdataprocessor:api_toc_categories [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + + + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___client_side_initialization.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___client_side_initialization.html new file mode 100755 index 0000000000..b55366b93e --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___client_side_initialization.html @@ -0,0 +1,142 @@ + + + + dhtmlxdataprocessor:client_side_initialization [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Client Side Initialization

    +
    + +

    + +To initialize DataProcessor and attach it to the grid, the following two commands can be used: + +

    +
      var dp = new dataProcessor(url)
    +  dp.init(mygrid)
    +

    + +Where: url - a relative or absolute path to a server side component of the dataprocessor.
    + +mygrid - a dhtmlxGrid object. +

    + +

    +By default the dataprocessor will be initialized in the auto update mode, which means that after each change in the grid it will send data to the server. In some cases it makes sense to use the manual update mode: + +

    +
      dp.setUpdateMode("off")
    +  ...
    +  dp.sendData();
    +

    + +In such case the dataprocessor will store the information about all changes in the grid, and will send them to the server only after sendData method is executed. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___common_errors.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___common_errors.html new file mode 100755 index 0000000000..da28c2053a --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___common_errors.html @@ -0,0 +1,142 @@ + + + + dhtmlxdataprocessor:common_errors [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Common Errors

    +
    + +

    + +a) Incorrect XML error.
    + +The most probable reason of this error is some server side error, which breaks the XML. You can enable debug console and check the response of the server side to receive more information. ( debug console can detect many types of xml related errors and show reasons of problems ) +

    + +

    +b) Deleted rows are not removed from the grid.
    + +Actually it is not an error - the rows will be removed only after synchronizing with the server. +You can define custom marking routine which will hide rows instead of striking through them. +

    + +

    +c) Deleted rows are not removed from the grid after synchronizing with the server (updated|inserted rows stay bold).
    + +The most probable cause are incorrect values of the “action†attribute in the response XML. +

    + +

    +d) JS error after synchronizing with the server.
    + + Most probably this error is caused by incorrect values of the “sid†and “tid†attributes in the response XML. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___common_tasks.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___common_tasks.html new file mode 100755 index 0000000000..33ac114b16 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___common_tasks.html @@ -0,0 +1,226 @@ + + + + dhtmlxdataprocessor:common_tasks [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Common Tasks

    +
    + +

    + +a) Waiting for finishing update. +There are two events which can be used to catch finish of data sync operation: + +

    +
      dp.attachEvent("onAfterUpdateFinish",function(){
    +      alert("single row updated")
    +  });
    +  dp.attachEvent("onFullSync",function(){
    +      alert("all rows updated")
    +  });
    +

    + +In any moment of time update state can be checked as follows: + +

    +
      dp.getSyncState()
    +

    + +which will return true if all data synced with server and false otherwise +

    + +

    +b) Manual row updating. +The dataprocessor detects the row changed only by edit operations. If a row was changed by a direct API calling it will not be updated. You can manually call the dataprocessor to inform about the update operation: + +

    +
          grid.cells(id,ind).setValue(new_one)
    +      dp.setUpdated(id,true);
    +

    + +The row can be marked as “not updated†in the same manner (may be useful in some scenarios): + +

    +
          dp.setUpdated(id,false);
    +

    + +If you want to mark row with status different from “updated†(not sure how it can be useful, but still ) it can be done as below: + +

    +
           dp.setUpdated(id,true,"status name");
    +

    + +c) Error catching. +

    + +

    +Starting version 2.1, dataprocessor has default reaction on “error†response type, which can be used to report about server side errors. Row marked as error will be highlighted in grid. And it will not be sent back to server until one of the next events occurs: +

    +
      +
    • user edit data in row;
      +
    • +
    • rows set back to updated status through setUpdated command.
      +
    • +
    + +

    + +d) Sever side validation. +

    + +

    +There is a built in support for “invalid†status in server side response. It's similar to “errorâ€, but has different visual marking. +

    + +

    +If you want to extend it, you should do the following: + +

    +
      dp.defineAction("invalid",function(sid,response){
    +            var message = response.getAttribute("message");
    +            alert(message);
    + 
    + 
    + 
    +            return true;
    +  })
    +

    + +now you can do the next on server side, if data is not valid you can just output the next instead of valid response: + +

    +
    <data>
    + <action sid="{gr_id}" type="invalid" message="Data in first column is not valid" />
    + </data>
    +

    + +e) Loading extra data during update. +

    + +

    + +It's possible to extend default after-update reaction as: + +

    +
      dp.defineAction("updated",function(sid,response){
    +            var sid = response.getAttribute("sid");
    +            var extra = response.getAttribute("extra");
    +            this.obj.cells(sid,0).setValue(extra);
    +            return true;
    +  })
    +

    + +with such code you will be able to specify any additional data which needs to be updated in grid after receiving xml response from the server: + +

    +
    <data>
    + <action sid="{gr_id}" type="updated" tid="{gr_id}" extra="new value for first column" />
    + </data>
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___custom_server_side_responses.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___custom_server_side_responses.html new file mode 100755 index 0000000000..f727929c79 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___custom_server_side_responses.html @@ -0,0 +1,152 @@ + + + + dhtmlxdataprocessor:custom_server_side_responses [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Custom Server Side Responses

    +
    + +

    + +The dataprocessor has 5 predefined modes of response: +

    +
      +
    • update;
      +
    • +
    • insert;
      +
    • +
    • delete;
      +
    • +
    • invalid;
      +
    • +
    • error.
      +
    • +
    + +

    + +But in some cases you will need a way to return some additional information (the most common use-case - an error during a DB operation). In such case you can introduce an additional response type: + +

    +
          dp.defineAction("my_error",my_action)
    +

    + +Where my_action - a custom function, which will be called when the response of “my_error†type is received. +

    +
      <data>
    +       <action type="my_error" sid="id" tid="id">Details</action>
    +  </data>
    + 
    +  function my_action(node){
    +      alert(node.getAttribute("type"));    // my_error
    +      alert(node.firstChild.data);    // Details
    +      return false;
    +  }
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___customizing_color_marking.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___customizing_color_marking.html new file mode 100755 index 0000000000..0e3c16b72f --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___customizing_color_marking.html @@ -0,0 +1,141 @@ + + + + dhtmlxdataprocessor:customizing_color_marking [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Customizing Color-marking

    +
    + +

    + +Default styles can be accessed and updated as: +

    +
      +
    • dp.style.updated - style string for updated status;
      +
    • +
    • dp.style.inserted- style string for inserted status;
      +
    • +
    • dp.style.deleted - style string for deleted status;
      +
    • +
    • dp.style.invalid - style string for invalid status;
      +
    • +
    • dp.style.invalid_cell - style assigned to cell validation of which failed;
      +
    • +
    • dp.style.error - style string for error status;
      +
    • +
    • dp.style.clear - default style of row.
      +
    • +
    + +

    +More complex coloring rules can be defined through onRowMark event. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___data_sending_modes.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___data_sending_modes.html new file mode 100755 index 0000000000..b7b248fc27 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___data_sending_modes.html @@ -0,0 +1,201 @@ + + + + dhtmlxdataprocessor:data_sending_modes [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Data Sending Modes

    +
    + +

    + +a) Meaningfull names.
    + +The parameters c0-cN, used by default, are not very useful on the server side. The dataprocessor allows to use the grid column IDs instead of them: + +

    +
          grid.setHeader("Name of the book,Name of the author")
    +      grid.setColumnIds("book,author");
    +      ...
    +      dp.enableDataNames(true);
    +

    + +on the server side:
    + +$_GET['c0'] ⇒ $_GET['book']
    + +$_GET['c1'] ⇒ $_GET['author'] +

    + +

    +b) Using POST instead of GET.
    + + +

    +
          dp.setTransactionMode("POST")
    +

    +c) Sending all at once.
    + +By default the update for each row will be sent as a separate request. This means that when 20 rows are updated - 20 requests will be sent to the server. This is not the best approach, so instead of it a single (more complex) request can be sent to the server side: + +

    +
          dp.setTransactionMode("POST",true)
    +

    + +In such mode the server side receives a slightly different set of parameters:
    + +ids - a comma separated list of updated rows IDs, for each ID there will be set of details in the request. +

    + +

    +For example if we have two updated rows on the client side with IDs = r2 and r3, the server side code will receive:
    + +ids = r2,r3 +

    +
      +
    • r2_!nativeeditor_status - the status of the operation for row r2;
      +
    • +
    • r2_c0 .. r2_cN - the data for a column of row r2;
      +
    • +
    • r3_!nativeeditor_status - the status of the operation for row r3;
      +
    • +
    • r3_c0 .. r3_cN - the data for a column of row r3.
      +
    • +
    + +

    + +The awaited server side response must be in the same format as usual, but must include the data for all processed rows: + +

    +
          <data>
    +           <action type="some" sid="r2" tid="r2" />
    +           <action type="some" sid="r3" tid="r3" />
    +       </data>
    +

    +Important! It's not recommended to set transaction mode if you use Connector. Connector requires using POST and sending all data at once. That corresponds to dp.setTransactionMode(“POSTâ€,true). This mode is set by default in this case. +

    + +

    +d) User can enable mode when only changed fields and row id send to the server side, instead of all fields in default mode + +

    +
          dp.enablePartialDataSend(true);
    +

    +e) Active fields.
    + +There is possibility to define which column may trigger update: + +

    +
          dp.setDataColumns([false,true,true,true]);
    +

    +In that case changing first column values will not trigger data sending to the server. Such mode have sense only if auto update is enabled. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___debug_mode.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___debug_mode.html new file mode 100755 index 0000000000..e511c863c7 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___debug_mode.html @@ -0,0 +1,125 @@ + + + + dhtmlxdataprocessor:debug_mode [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Debug Mode

    +
    + +

    +Starting from version 2.0 package includes additional debug console, which can be enabled by including dhtmlxdataprocessor_debug.js in addition to default js files. +

    + +

    + + +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onafterupdate.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onafterupdate.html new file mode 100755 index 0000000000..6204eacbda --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onafterupdate.html @@ -0,0 +1,138 @@ + + + + dhtmlxdataprocessor:event_onafterupdate [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    onAfterUpdate event

    +
    + +

    + +occurs for each action tag in xml response +

    +
          dp.attachEvent("onAfterUpdate",function(sid,action,tid,xml_node){
    +           //any custom code
    +           return true;
    +      })
    +

    +Parameters: +

    +
      +
    • sid - existing id of item;
      +
    • +
    • action - action type;
      +
    • +
    • tid - new id of item;
      +
    • +
    • xml node object from server side response, related to current record.
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onafterupdatefinish.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onafterupdatefinish.html new file mode 100755 index 0000000000..671e265fb8 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onafterupdatefinish.html @@ -0,0 +1,123 @@ + + + + dhtmlxdataprocessor:event_onafterupdatefinish [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    onAfterUpdateFinish event

    +
    + +

    + +occurs when current data sync operation finished. +

    +
          dp.attachEvent("onAfterUpdateFinish",function(){
    +           //any custom code
    +      })
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onbeforedatasending.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onbeforedatasending.html new file mode 100755 index 0000000000..3527331741 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onbeforedatasending.html @@ -0,0 +1,132 @@ + + + + dhtmlxdataprocessor:event_onbeforedatasending [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    onBeforeDataSending event

    +
    + +

    + +occurs after data was validated and its ready to be sent, occurs once for all rows in sending group, blockable. +

    +
          dp.attachEvent("onBeforeDataSending",function(id){
    +           //any custom code
    +           return true;
    +      })
    +

    +Parameters: +

    +
      +
    • row id - defined only if one row was sent, not defined for multi-sending modes.
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onbeforeupdate.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onbeforeupdate.html new file mode 100755 index 0000000000..0c2054f08b --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onbeforeupdate.html @@ -0,0 +1,135 @@ + + + + dhtmlxdataprocessor:event_onbeforeupdate [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    onBeforeUpdate event

    +
    + +

    + +occurs before data sending to the server, occurs for each row, blockable. +

    +
          dp.attachEvent("onBeforeUpdate",function(id,status){
    +           //any custom code
    +           return true;
    +      })
    +

    +Parameters: + +

    +
      +
    • row id;
      +
    • +
    • row status - {string} updated,inserted,deleted.
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onfullsync.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onfullsync.html new file mode 100755 index 0000000000..0dbb67f9af --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onfullsync.html @@ -0,0 +1,123 @@ + + + + dhtmlxdataprocessor:event_onfullsync [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    onFullSync event

    +
    + +

    + +occurs after saving all data ( there are no unsaved changes ). +

    +
          dp.attachEvent("onFullSync",function(){
    +           //any custom code
    +      })
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onrowmark.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onrowmark.html new file mode 100755 index 0000000000..0c0d4eaa8f --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onrowmark.html @@ -0,0 +1,138 @@ + + + + dhtmlxdataprocessor:event_onrowmark [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    onRowMark event

    +
    + +

    + +occurs each time when row need to be repaint, blockable. +

    +
          dp.attachEvent("onRowMark",function(id,state,mode,is_invalid){
    +           //any custom code
    +           return true;
    +      })
    +

    +Parameters: +

    +
      +
    • row id;
      +
    • +
    • row state - {bool} true - updated, false - update mark removed;
      +
    • +
    • mode - {string} updated,deleted,inserted;
      +
    • +
    • invalid - {bool} set if row has error or invalid status.
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onvalidatationerror.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onvalidatationerror.html new file mode 100755 index 0000000000..df4b810ba5 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___event_onvalidatationerror.html @@ -0,0 +1,134 @@ + + + + dhtmlxdataprocessor:event_onvalidatationerror [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    onValidationError event

    +
    + +

    + +occurs each time when verificator function catches error, blockable. +

    +
          dp.attachEvent("onValidationError",function(id,errors){
    +           //any custom code
    +           return true;
    +      })
    +

    +Parameters: +

    +
      +
    • row id;
      +
    • +
    • array of error messages.
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___events.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___events.html new file mode 100755 index 0000000000..fcc77070d7 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___events.html @@ -0,0 +1,138 @@ + + + + dhtmlxdataprocessor:events [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Events of Dataprocessor

    +
    + +

    + +custom code can be attached in common way + +

    +
      dp.attachEvent(event_name, some_function);
      +
    • onRowMark - occurs each time when row need to be repaint, blockable.
      +
    • +
    • onValidatationError - occurs each time when verificator function catches error, blockable.
      +
    • +
    • onBeforeUpdate - occurs before data sending to the server, occurs for each row, blockable.
      +
    • +
    • onBeforeDataSending - occurs after data was validated and its ready to be sent, occurs once for all rows in sending group, blockable.
      +
    • +
    • onAfterUpdate - occurs for each action tag in xml response
      +
    • +
    • onAfterUpdateFinish - occurs when current data sync operation finished.
      +
    • +
    • onFullSync - occurs after saving all data ( there are no unsaved changes ).
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___validation.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___validation.html new file mode 100755 index 0000000000..6a9ebf42ed --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxdataprocessor___validation.html @@ -0,0 +1,163 @@ + + + + dhtmlxdataprocessor:validation [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Validation

    +
    + +

    + +Grid allows to define validators which will be activated before data sending.
    + +dp.setVerificator(index,method); +

    +
      +
    • index - index of column for which verificator will be assigned;
      +
    • +
    • method - verificator function.
      +
    • +
    + +

    + +Verificator function is a function which will receive the following parameters: +

    +
      +
    • value of cell;
      +
    • +
    • id of row;
      +
    • +
    • index of columns.
      +
    • +
    + +

    + +Function based on such values must return true or false to accept or deny value. +If any value was denied during validation, data sending will be blocked and onValidatationError event generated +

    + +

    +Inside verificator function, “this†points to the object, to which dataprocessor attached ( grid or tree ) +

    + +
    +
    +

    Validate message

    +
    + +

    + +If you need to collect all validation errors and output a single error message it can be done by returning a text message from validation function instead of false. +You can check 07_basic_validation_with_message.html sample, inside dataprocessor's package, for more details. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxgrid___dataprocessor.png b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxgrid___dataprocessor.png new file mode 100755 index 0000000000..81e3c29fa2 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/dhtmlxgrid___dataprocessor.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/icons___dataprocessor.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/icons___dataprocessor.gif new file mode 100755 index 0000000000..35e6c60f9f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/icons___dataprocessor.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/icons___file.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/icons___file.gif new file mode 100755 index 0000000000..31d23fd447 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/icons___file.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/index.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/index.html new file mode 100755 index 0000000000..ddaa135d5a --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxdataprocessor/index.html @@ -0,0 +1,181 @@ + + + + dhtmlxdataprocessor:toc [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +
    +
    Table of Contents
    + +
    + + +

    +

    + +

    + +

    Dataprocessor usage

    +
    + +

    + +A dataprocessor is a small library which can integrate ghtmlxGrid (dhtmlxTreeGrid, dhtmlxTree) with server side backend. The library monitors changes in the grid and uses a simple protocol to interchange with the server side code. The dataprocessor consists of two parts - the client side code, which is common for any use-case and the server side code, which works by the same principles but needs to be adjusted for the used business-logic. +

    + +

    +(Starting dhtmlxSuite 2.1, there are ready to use PHP connectors , which can be used instead of custom coding) +

    + +
    +
    +

    Guide

    + +
    +

    Script API Reference

    + +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/_media.txt b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/_media.txt new file mode 100755 index 0000000000..c684808476 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/_media.txt @@ -0,0 +1,12 @@ +icons___file.gif +icons___tree.gif +common___pro_ed.gif +common___any_ed.gif +dhtmlxtree___dgr5rjkf_220gbgmh9gf_b.gif +dhtmlxtree___dgr5rjkf_221cf28k8ff_b.gif +dhtmlxtree___dgr5rjkf_222gz6tpsdc_b.gif +dhtmlxtree___dgr5rjkf_223fnxr7chh_b.gif +dhtmlxtree___dgr5rjkf_224ggpqf8gx_b.gif +dhtmlxtree___dgr5rjkf_225fpw796gk_b.gif +dhtmlxtree___dgr5rjkf_226c3td7kc7_b.gif +dhtmlxtree___dgr5rjkf_227f8jk4hd8_b.gif diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/_structure.xml b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/_structure.xml new file mode 100755 index 0000000000..8b38b75f55 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/_structure.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/common___any_ed.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/common___any_ed.gif new file mode 100755 index 0000000000..ce81017286 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/common___any_ed.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/common___pro_ed.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/common___pro_ed.gif new file mode 100755 index 0000000000..b7baca29d4 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/common___pro_ed.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_constructor.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_constructor.html new file mode 100755 index 0000000000..9e2cc14f63 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_constructor.html @@ -0,0 +1,165 @@ + + + + dhtmlxtree:api_constructor [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Constructor of dhtmlxTree

    +
    +
            var mytree = new dhtmlXTreeObject(parent,width, height, rootId )
    +

    +where +

    +
      +
    • parent - id of HTML element which will be used as parent ( or object itself
      +
    • +
    • width - width of tree
      +
    • +
    • height - height of tree
      +
    • +
    • virtual root ID
      +
    • +
    +
          <div id='my_tree_here'></div>
    +      <script>
    +      //common init code
    +      var mytree = new dhtmlXTreeObject("my_tree_here","100%","100%",0);
    +      </script>
    +

    +Layout, Window, Accordion, Tabbar can create a tree inside their cells by using + +

    +
          some_component.cells(some_id).attachTree(rootId)
    +

    + +In this case rootId has same meaning as in native initialization ( it is an optional, 0 used as default value ) +

    + +

    +Starting from 2.5 version, tree can be initialized by object notation + +

    +
          var mytree = new dhtmlXTreeObject({
    +          some_option1:some_value_1,
    +          some_option2:some_value_2,
    +          ...
    +          some_optionN:some_value_N,
    +      })
    +

    +List of supported options +

    +
    	tree = new dhtmlXTreeObject({
    +		parent:"a_tree",
    +		image_path:"codebase/imgs/csh_books/",
    +		onClick:function(){
    +			alert("I'm clicked");	
    +		},
    +		xml:"tree3.xml"
    +	});
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_constructor_object.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_constructor_object.html new file mode 100755 index 0000000000..d401990810 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_constructor_object.html @@ -0,0 +1,239 @@ + + + + dhtmlxtree:api_constructor_object [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + + + + +

    +

    + +

    + +

    List of initialization properties

    +
    + +
    +
    +

    Common initialization options

    +
    +
      +
    • parent - string or object, id of container, where tree will be initialized, mandatory
      +
    • +
    • image_path - string, path to image folder, which will be used for icons in tree
      +
    • +
    • width - {string} width of tree, can be defined in pixels or in percents
      +
    • +
    • height - {string} height of tree, can be defined in pixels or in percents
      +
    • +
    • root_id - {string} id of virtual root item
      +
    • +
    +
      +
    • checkbox - {boolean}, show/hide checkboxes (all checkboxes in tree) ( enableCheckBoxes )
      +
    • +
    • checkbox_3_state - {boolean}, enable three state checkboxes ( enableThreeStateCheckboxes )
      +
    • +
    • context_menu - context menu object, enable context menu ( enableContextMenu )
      +
    • +
    • multiline - {boolean}, enable multi line items ( enableMultiLineItems )
      +
    • +
    • multiselect - {boolean}, enable multiselection ( enableMultiselection )
      +
    • +
    • editor - {boolean}, enable editing of item text ( enableItemEditor )
      +
    • +
    • hover - {boolean}, enable item highlighting (item text highlited on mouseover) ( enableHighlighting )
      +
    • +
    • smart_parsing - {boolean}, enable/disable smart XML parsing mode (usefull for big, well structured XML) ( enableSmartXMLParsing )
      +
    • +
    • xml - {string}, url of data xml file
      +
    • +
    + +
    +
    +

    Drag and Drop

    +
    +
      +
    • drag - {boolean}, enable/disable drag-and-drop ( enableDragAndDrop )
      +
    • +
    • drag_copy - {boolean}, enable drag without removing (copy instead of move) ( enableMercyDrag )
      +
    • +
    • drag_image - {boolean}, enable draging item image with item text ( enableImageDrag )
      +
    • +
    • drag_scroll - {boolean}, enable/disable auto scrolling while drag-and-drop ( enableDragAndDropScrolling )
      +
    • +
    + +
    +
    +

    Extensions

    +
    +
      +
    • auto_save_selected - {boolean}, enable/disable autosaving selected node in cookie ( enableAutoSavingSelected )
      +
    • +
    • auto_tooltip - {boolean}, enable auto tooltips (node text as tooltip) ( enableAutoTooltips )
      +
    • +
    • checkbox_smart - {boolean}, enable smart checkboxes ,true by default (auto checking children and parents for 3-state checkboxes) ( enableSmartCheckboxes )
      +
    • +
    • distributed_parsing - {boolean}, enable distributed parsing of big tree (items loaded portion by portion with some timeouts) ( enableDistributedParsing )
      +
    • +
    • images - {boolean}, enable tree images ( enableTreeImages )
      +
    • +
    • image_fix - {boolean}, replace IMG tag with background images - solve problem with IE image caching , not works for IE6 SP1 ( enableIEImageFix )
      +
    • +
    • lines - {boolean}, enable/disable tree lines (parent-child threads) ( enableTreeLines )
      +
    • +
    • loading_item - {boolean}, enable/disable “Loading…†item ( enableLoadingItem )
      +
    • +
    • navigation - {boolean}, enable keyboard navigation in tree ( enableKeyboardNavigation )
      +
    • +
    • radio - {boolean}, replace checkboxes with radio buttons ( enableRadioButtons )
      +
    • +
    • radio_single - {boolean}, replace checkboxes with radio buttons ( enableSingleRadioMode )
      +
    • +
    • rtl - {boolean}, enables Right-to-Left mode in tree ( enableRTL )
      +
    • +
    • search - {boolean}, enable search items by pressing keys (any item in tree should be focused/selected to make search work) ( enableKeySearch )
      +
    • +
    • smart_rendering - {boolean}, enables smart rendering mode (usefull for big trees with lots f items on each level) ( enableSmartRendering )
      +
    • +
    • text_icons - {boolean}, replace images with text signs ( enableTextSigns )
      +
    • +
    + +
    +
    +

    Events

    +
    + +

    +any event can be assigned by using property equal to event name +

    +
    	tree = new dhtmlXTreeObject({
    +		parent:"a_tree",
    +		onClick:function(){
    +			alert("I'm clicked");	
    +		}
    +	});
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_assignkeys.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_assignkeys.html new file mode 100755 index 0000000000..602fcdbff5 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_assignkeys.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_assignkeys [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    assignKeys(keys)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_kn.js +

    + +

    +configure keys used for keyboard navigation + +

    +
      +
    • keys - configuration array, please check pro_key_nav.html in samples for more details
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_attachevent.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_attachevent.html new file mode 100755 index 0000000000..fa2113a670 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_attachevent.html @@ -0,0 +1,143 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_attachevent [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    attachEvent(evName, evHandler)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    + adds any user-defined handler to available events + +

    +
      +
    • evName - name of the event;
      +
    • +
    • evHandler - user-defined event handler.
      +
    • +
    +
                   tree.attachEvent(evName, evHandler);
    +

    + +Several handlers can be attached to one and the same event, and all of them will be executed. +

    + +

    + Note: the names of the events are case-insensitive. + +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_changeitemid.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_changeitemid.html new file mode 100755 index 0000000000..65bf61e48f --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_changeitemid.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_changeitemid [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    changeItemId(itemId,newItemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +change item id + +

    +
      +
    • itemId - old node id
      +
    • +
    • newItemId - new node id
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_clearcut.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_clearcut.html new file mode 100755 index 0000000000..7b212db238 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_clearcut.html @@ -0,0 +1,126 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_clearcut [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    clearCut()

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +clear cut +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_clearselection.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_clearselection.html new file mode 100755 index 0000000000..39210692aa --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_clearselection.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_clearselection [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    clearSelection(itemId)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +unselect item in tree + +

    +
      +
    • itemId - used in multi selection tree (optional)
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_closeallitems.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_closeallitems.html new file mode 100755 index 0000000000..0d6de735ea --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_closeallitems.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_closeallitems [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    closeAllItems(itemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +collapse target node and all sub nodes + +

    +
      +
    • itemId - node id
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_closeitem.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_closeitem.html new file mode 100755 index 0000000000..90c0a42f44 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_closeitem.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_closeitem [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    closeItem(itemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +collapse node + +

    +
      +
    • itemId - id of node
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_defineitemform.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_defineitemform.html new file mode 100755 index 0000000000..d8793c5e3c --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_defineitemform.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_defineitemform [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    defineItemForm(formId)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_if.js +

    + +

    +assign custom form to tree + +

    +
      +
    • formId - id of form node
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_deletechilditems.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_deletechilditems.html new file mode 100755 index 0000000000..ec53eeaba7 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_deletechilditems.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_deletechilditems [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    deleteChildItems(itemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +delete all children of node + +

    +
      +
    • itemId - node id
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_deleteitem.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_deleteitem.html new file mode 100755 index 0000000000..c108cc93fa --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_deleteitem.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_deleteitem [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    deleteItem(itemId,selectParent)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +delete node + +

    +
      +
    • itemId - node id
      +
    • +
    • selectParent - If true parent of deleted item get selection, else no selected items leaving in tree.
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_destructor.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_destructor.html new file mode 100755 index 0000000000..0cfb14268f --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_destructor.html @@ -0,0 +1,126 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_destructor [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    destructor()

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +deletes tree and clears memory +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_detachevent.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_detachevent.html new file mode 100755 index 0000000000..ffc312ab73 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_detachevent.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_detachevent [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    detachEvent(id)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +removes an event handler + +

    +
      +
    • id - event id
      +
    • +
    +
                   tree.detachEvent(id);
    + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_disablecheckbox.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_disablecheckbox.html new file mode 100755 index 0000000000..a4e208081d --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_disablecheckbox.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_disablecheckbox [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    disableCheckbox(itemId,mode)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +disable checkbox + +

    +
      +
    • itemId - Id of tree item
      +
    • +
    • mode - 1 - on, 0 - off;
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_docut.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_docut.html new file mode 100755 index 0000000000..acd6f6d576 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_docut.html @@ -0,0 +1,126 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_docut [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    doCut()

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +mark selected item as cut +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_dopaste.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_dopaste.html new file mode 100755 index 0000000000..4662e18f7a --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_dopaste.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_dopaste [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    doPaste(itemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +insert previously cut branch + +

    +
      +
    • itemId - id of new parent node
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_edititem.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_edititem.html new file mode 100755 index 0000000000..2ce2f6d1ee --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_edititem.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_edititem [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    editItem(id)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree_ed.js +

    + +

    +open editor for specified item + +

    +
      +
    • id - item ID
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableactiveimages.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableactiveimages.html new file mode 100755 index 0000000000..e5a9dab08b --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableactiveimages.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enableactiveimages [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableActiveImages(mode)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +enable active images (clickable and dragable). By default only text part of the node is active + +

    +
      +
    • mode - 1 - on, 0 - off;
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableautosavingselected.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableautosavingselected.html new file mode 100755 index 0000000000..6b0364fa5d --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableautosavingselected.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enableautosavingselected [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableAutoSavingSelected(mode,cookieName)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_xw.js +

    + +

    +enable/disable autosaving selected node in cookie + +

    +
      +
    • mode - true/false
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableautotooltips.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableautotooltips.html new file mode 100755 index 0000000000..87c5b66b10 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableautotooltips.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enableautotooltips [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableAutoTooltips(mode)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +enable auto tooltips (node text as tooltip) + +

    +
      +
    • mode - 1 - on, 0 - off;
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablecheckboxes.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablecheckboxes.html new file mode 100755 index 0000000000..578ddf5300 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablecheckboxes.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enablecheckboxes [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableCheckBoxes(mode, hidden)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +show/hide checkboxes (all checkboxes in tree) + +

    +
      +
    • mode - true/false
      +
    • +
    • hidden - if set to true, checkboxes not rendered but can be shown by showItemCheckbox
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablecontextmenu.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablecontextmenu.html new file mode 100755 index 0000000000..b014a8dfc1 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablecontextmenu.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enablecontextmenu [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableContextMenu(menu)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +enable context menu + +

    +
      +
    • menu - dhtmlXMenu object
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enabledistributedparsing.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enabledistributedparsing.html new file mode 100755 index 0000000000..4eee35a522 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enabledistributedparsing.html @@ -0,0 +1,137 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enabledistributedparsing [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableDistributedParsing(mode,count,delay)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +enable distributed parsing of big tree (items loaded portion by portion with some timeouts) + +

    +
      +
    • mode - true/false
      +
    • +
    • count - critical count to start distibuting (optional)
      +
    • +
    • delay - delay between distributed calls, ms (optional)
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enabledraganddrop.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enabledraganddrop.html new file mode 100755 index 0000000000..2e39240ee6 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enabledraganddrop.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enabledraganddrop [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableDragAndDrop(mode,rmode)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +enable/disable drag-and-drop + +

    +
      +
    • mode - enabled/disabled [ can be true/false/temporary_disabled - last value mean that tree can be D-n-D can be switched to true later ]
      +
    • +
    • rmode - enabled/disabled drag and drop on super root
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enabledraganddropscrolling.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enabledraganddropscrolling.html new file mode 100755 index 0000000000..501d4563c6 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enabledraganddropscrolling.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enabledraganddropscrolling [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableDragAndDropScrolling(mode)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +enable/disable auto scrolling while drag-and-drop + +

    +
      +
    • mode - enabled/disabled
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablehighlighting.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablehighlighting.html new file mode 100755 index 0000000000..88af6258f0 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablehighlighting.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enablehighlighting [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableHighlighting(mode)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +enable item highlighting (item text highlited on mouseover) + +

    +
      +
    • mode - 1 - on, 0 - off;
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableieimagefix.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableieimagefix.html new file mode 100755 index 0000000000..707eab5b94 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableieimagefix.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enableieimagefix [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableIEImageFix(mode)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +replace IMG tag with background images - solve problem with IE image caching , not works for IE6 SP1 + +

    +
      +
    • mode - true/false - enable/disable fix
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableimagedrag.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableimagedrag.html new file mode 100755 index 0000000000..eb4e32e362 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableimagedrag.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enableimagedrag [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableImageDrag(mode)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +enable draging item image with item text + +

    +
      +
    • mode - true/false
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableitemeditor.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableitemeditor.html new file mode 100755 index 0000000000..22d4fb3b40 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableitemeditor.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enableitemeditor [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableItemEditor(mode)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree_ed.js +

    + +

    +enable editing of item text + +

    +
      +
    • mode - true/false
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablekeyboardnavigation.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablekeyboardnavigation.html new file mode 100755 index 0000000000..1088d7a0de --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablekeyboardnavigation.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enablekeyboardnavigation [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableKeyboardNavigation(mode)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_kn.js +

    + +

    +enable keyboard navigation in tree + +

    +
      +
    • mode - true/false
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablekeysearch.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablekeysearch.html new file mode 100755 index 0000000000..14699f5545 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablekeysearch.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enablekeysearch [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableKeySearch(mode)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_kn.js +

    + +

    +enable search items by pressing keys (any item in tree should be focused/selected to make search work) + +

    +
      +
    • mode - true/false
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableloadingitem.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableloadingitem.html new file mode 100755 index 0000000000..bde94f63d8 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableloadingitem.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enableloadingitem [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableLoadingItem(text)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_lf.js +

    + +

    +enable/disable “Loading…†item + +

    +
      +
    • text - text of temporary item (default is “Loading…â€)
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablemercydrag.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablemercydrag.html new file mode 100755 index 0000000000..0ab650bc98 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablemercydrag.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enablemercydrag [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableMercyDrag(mode)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +enable drag without removing (copy instead of move) + +

    +
      +
    • mode - 1 - on, 0 - off;
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablemultilineitems.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablemultilineitems.html new file mode 100755 index 0000000000..f94152ea31 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablemultilineitems.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enablemultilineitems [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableMultiLineItems(width)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +enable multi line items + +

    +
      +
    • width - text width, if equls zero then use single lines items;
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablemultiselection.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablemultiselection.html new file mode 100755 index 0000000000..bdae9e26e6 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablemultiselection.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enablemultiselection [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableMultiselection(mode,strict)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +enable multiselection + +

    +
      +
    • mode - 1 - on, 0 - off;
      +
    • +
    • strict - 1 - on, 0 - off; in strict mode only items on the same level can be selected
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableradiobuttons.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableradiobuttons.html new file mode 100755 index 0000000000..58a356c017 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enableradiobuttons.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enableradiobuttons [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableRadioButtons(itemId,mode)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +replace checkboxes with radio buttons + +

    +
      +
    • mode - true/false
      +
    • +
    • itemId - node for which replacement called (optional)
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablertl.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablertl.html new file mode 100755 index 0000000000..769fb62864 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablertl.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enablertl [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableRTL(mode)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_rl.js +

    + +

    +enables Right-to-Left mode in tree + +

    +
      +
    • mode - true/false
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablesingleradiomode.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablesingleradiomode.html new file mode 100755 index 0000000000..a6687c3c82 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablesingleradiomode.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enablesingleradiomode [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableSingleRadioMode(mode)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +replace checkboxes with radio buttons + +

    +
      +
    • mode - true/false
      +
    • +
    • itemId - node for which replacement called (optional)
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablesmartcheckboxes.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablesmartcheckboxes.html new file mode 100755 index 0000000000..d06b460a4d --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablesmartcheckboxes.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enablesmartcheckboxes [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableSmartCheckboxes(mode)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +enable smart checkboxes ,true by default (auto checking children and parents for 3-state checkboxes) + +

    +
      +
    • mode - 1 - on, 0 - off;
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablesmartrendering.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablesmartrendering.html new file mode 100755 index 0000000000..d742f8fa63 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablesmartrendering.html @@ -0,0 +1,126 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enablesmartrendering [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableSmartRendering()

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_srnd.js +

    + +

    +enables smart rendering mode (usefull for big trees with lots f items on each level) +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablesmartxmlparsing.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablesmartxmlparsing.html new file mode 100755 index 0000000000..3388dc5d56 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablesmartxmlparsing.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enablesmartxmlparsing [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableSmartXMLParsing(mode)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +enable/disable smart XML parsing mode (usefull for big, well structured XML) + +

    +
      +
    • mode - 1 - on, 0 - off;
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enabletextsigns.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enabletextsigns.html new file mode 100755 index 0000000000..846a9b80b5 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enabletextsigns.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enabletextsigns [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableTextSigns(mode)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +replace images with text signs + +

    +
      +
    • mode - true/false
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablethreestatecheckboxes.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablethreestatecheckboxes.html new file mode 100755 index 0000000000..5959ba5b0e --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enablethreestatecheckboxes.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enablethreestatecheckboxes [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableThreeStateCheckboxes(mode)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +enable three state checkboxes + +

    +
      +
    • mode - 1 - on, 0 - off;
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enabletreeimages.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enabletreeimages.html new file mode 100755 index 0000000000..2eddb872ca --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enabletreeimages.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enabletreeimages [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableTreeImages(mode)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +enable tree images + +

    +
      +
    • mode - 1 - on, 0 - off;
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enabletreelines.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enabletreelines.html new file mode 100755 index 0000000000..1169f2808e --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_enabletreelines.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_enabletreelines [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    enableTreeLines(mode)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +enable/disable tree lines (parent-child threads) + +

    +
      +
    • mode - enable/disable tree lines
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_finditem.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_finditem.html new file mode 100755 index 0000000000..2068b012bb --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_finditem.html @@ -0,0 +1,137 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_finditem [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    findItem(searchStr,direction,top)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +find tree item by text, select and focus it + +

    +
      +
    • searchStr - search text
      +
    • +
    • direction - 0: top → bottom; 1: bottom → top
      +
    • +
    • top - 1: start searching from top
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_finditemidbylabel.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_finditemidbylabel.html new file mode 100755 index 0000000000..f344bc7ac3 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_finditemidbylabel.html @@ -0,0 +1,137 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_finditemidbylabel [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    findItemIdByLabel(searchStr,direction,top)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +find tree item by text + +

    +
      +
    • searchStr - search text
      +
    • +
    • direction - 0: top → bottom; 1: bottom → top
      +
    • +
    • top - 1: start searching from top
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_focusitem.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_focusitem.html new file mode 100755 index 0000000000..2fb50430d9 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_focusitem.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_focusitem [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    focusItem(itemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +focus item in tree (scroll to it if necessary) + +

    +
      +
    • itemId - item Id
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallchecked.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallchecked.html new file mode 100755 index 0000000000..e9cc0748d4 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallchecked.html @@ -0,0 +1,126 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getallchecked [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getAllChecked()

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +return list of identificators of nodes with checked checkboxes, separated by default delimiter +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallcheckedbranches.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallcheckedbranches.html new file mode 100755 index 0000000000..f0bf038b86 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallcheckedbranches.html @@ -0,0 +1,126 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getallcheckedbranches [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getAllCheckedBranches()

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +return list of identificators of nodes with checked and third state checkboxes, separated by default delimiter +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallchildless.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallchildless.html new file mode 100755 index 0000000000..1d766879bd --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallchildless.html @@ -0,0 +1,126 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getallchildless [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getAllChildless()

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +Returns the list of all items which doesn't have child nodes. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallitemswithkids.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallitemswithkids.html new file mode 100755 index 0000000000..4f06bc6d8c --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallitemswithkids.html @@ -0,0 +1,126 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getallitemswithkids [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getAllItemsWithKids()

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +Returns the list of all items which have child nodes, separated by default delimiter. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallpartiallychecked.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallpartiallychecked.html new file mode 100755 index 0000000000..a391b933b4 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallpartiallychecked.html @@ -0,0 +1,126 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getallpartiallychecked [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getAllPartiallyChecked()

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +return list of identificators of nodes with third state checkboxes, separated by default delimiter +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallsubitems.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallsubitems.html new file mode 100755 index 0000000000..4ed104f392 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallsubitems.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getallsubitems [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getAllSubItems(itemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +Returns the list of all children from all next levels of tree, separated by default delimiter. + +

    +
      +
    • itemId - id of node
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallunchecked.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallunchecked.html new file mode 100755 index 0000000000..be43c47e33 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getallunchecked.html @@ -0,0 +1,126 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getallunchecked [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getAllUnchecked(itemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +return list of identificators of nodes with unchecked checkboxes, separated by default delimiter +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getchilditemidbyindex.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getchilditemidbyindex.html new file mode 100755 index 0000000000..5f65316c31 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getchilditemidbyindex.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getchilditemidbyindex [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getChildItemIdByIndex(itemId,index)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +retun child node id by index + +

    +
      +
    • itemId - parent node id
      +
    • +
    • index - index of child node
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getdistributedparsingstate.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getdistributedparsingstate.html new file mode 100755 index 0000000000..c6c9a2d655 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getdistributedparsingstate.html @@ -0,0 +1,131 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getdistributedparsingstate [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getDistributedParsingState()

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +get current state of distributed parsing +

    + +

    + +Returns true - still parsing; false - parsing finished +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getindexbyid.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getindexbyid.html new file mode 100755 index 0000000000..1dbd96a6df --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getindexbyid.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getindexbyid [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getIndexById(itemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +retun node index in children collection by Id + +

    +
      +
    • itemId - node id
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getitemcolor.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getitemcolor.html new file mode 100755 index 0000000000..c71721d82e --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getitemcolor.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getitemcolor [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getItemColor(itemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +get node color (text color) + +

    +
      +
    • itemId - id of node
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getitemidbyindex.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getitemidbyindex.html new file mode 100755 index 0000000000..6e776cd9ce --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getitemidbyindex.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getitemidbyindex [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getItemIdByIndex(itemId,index)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +retun node id by index + +

    +
      +
    • itemId - parent node id
      +
    • +
    • index - index of node, 0 based
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getitemimage.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getitemimage.html new file mode 100755 index 0000000000..c955c4edf4 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getitemimage.html @@ -0,0 +1,137 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getitemimage [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getItemImage(itemId,imageInd,fullPath)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +get url of item image + +

    +
      +
    • itemId - id of item
      +
    • +
    • imageInd - index of image ( 0 - leaf, 1 - closed folder, 2 - opened folder)
      +
    • +
    • value - value of top offset
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getitemparsingstate.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getitemparsingstate.html new file mode 100755 index 0000000000..a836c55a98 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getitemparsingstate.html @@ -0,0 +1,131 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getitemparsingstate [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getItemParsingState(itemId)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +get current parsing state of item +

    + +

    + +Returns 1 - item already parsed; 0 - item not parsed yet; -1 - item in parsing process +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getitemtext.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getitemtext.html new file mode 100755 index 0000000000..18792f2290 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getitemtext.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getitemtext [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getItemText(itemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +return node text + +

    +
      +
    • itemId - id of node
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getitemtooltip.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getitemtooltip.html new file mode 100755 index 0000000000..a209e83c84 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getitemtooltip.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getitemtooltip [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getItemTooltip(itemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +get item's tooltip + +

    +
      +
    • itemId - id of node
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getlevel.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getlevel.html new file mode 100755 index 0000000000..7b4ba72296 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getlevel.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getlevel [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getLevel(itemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +get node level (position in hierarchy) + +

    +
      +
    • itemId - id of node
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getopenstate.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getopenstate.html new file mode 100755 index 0000000000..bd3bbe8184 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getopenstate.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getopenstate [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getOpenState(itemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +return open/close state + +

    +
      +
    • itemId - node id
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getparentid.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getparentid.html new file mode 100755 index 0000000000..2226aa3075 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getparentid.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getparentid [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getParentId(itemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +return parent item id + +

    +
      +
    • itemId - id of node
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getselecteditemid.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getselecteditemid.html new file mode 100755 index 0000000000..395b3ee729 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getselecteditemid.html @@ -0,0 +1,126 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getselecteditemid [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getSelectedItemId()

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +retun selected item id +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getselecteditemtext.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getselecteditemtext.html new file mode 100755 index 0000000000..8581491b6b --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getselecteditemtext.html @@ -0,0 +1,126 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getselecteditemtext [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getSelectedItemText()

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +retun selected node text +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getsubitems.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getsubitems.html new file mode 100755 index 0000000000..295b84e27e --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getsubitems.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getsubitems [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getSubItems(itemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +Returns the list of all subitems Ids from the next level of tree, separated by commas. + +

    +
      +
    • itemId - id of node
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getuserdata.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getuserdata.html new file mode 100755 index 0000000000..f67d53d39e --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getuserdata.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getuserdata [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getUserData(itemId,name)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +get user data from target node + +

    +
      +
    • itemId - target node id
      +
    • +
    • name - key for user data
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getxmlstate.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getxmlstate.html new file mode 100755 index 0000000000..6b9fca466f --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_getxmlstate.html @@ -0,0 +1,126 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_getxmlstate [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    getXMLState()

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +return current state of XML loading +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_haschildren.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_haschildren.html new file mode 100755 index 0000000000..8464c2142e --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_haschildren.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_haschildren [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    hasChildren(itemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +return number of children + +

    +
      +
    • itemId - id of node
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_hideitemform.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_hideitemform.html new file mode 100755 index 0000000000..ad3a57e191 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_hideitemform.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_hideitemform [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    hideItemForm(itemID,state)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_if.js +

    + +

    +hide item's form + +

    +
      +
    • itemID - item id
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_insertnewchild.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_insertnewchild.html new file mode 100755 index 0000000000..aa45ca834b --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_insertnewchild.html @@ -0,0 +1,149 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_insertnewchild [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    insertNewChild(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,children)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +create new node as a child to specified with parentId + +

    +
      +
    • parentId - parent node id
      +
    • +
    • itemId - new node id
      +
    • +
    • itemText - new node label
      +
    • +
    • itemActionHandler - function fired on node select event (optional)
      +
    • +
    • image1 - image for node without children; (optional)
      +
    • +
    • image2 - image for closed node; (optional)
      +
    • +
    • image3 - image for opened node (optional)
      +
    • +
    • optionStr - options string (optional)
      +
    • +
    • children - node children flag (for dynamical trees) (optional)
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_insertnewnext.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_insertnewnext.html new file mode 100755 index 0000000000..7071612042 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_insertnewnext.html @@ -0,0 +1,149 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_insertnewnext [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    insertNewNext(itemId,newItemId,itemText,itemActionHandler,image1,image2,image3,optionStr,children)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +create new node next to specified + +

    +
      +
    • itemId - node id
      +
    • +
    • newItemId - new node id
      +
    • +
    • itemText - new node text
      +
    • +
    • itemActionHandler - function fired on node select event (optional)
      +
    • +
    • image1 - image for node without children; (optional)
      +
    • +
    • image2 - image for closed node; (optional)
      +
    • +
    • image3 - image for opened node (optional)
      +
    • +
    • optionStr - options string (optional)
      +
    • +
    • children - node children flag (for dynamical trees) (optional)
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_isitemchecked.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_isitemchecked.html new file mode 100755 index 0000000000..b09ee5454a --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_isitemchecked.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_isitemchecked [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    isItemChecked(itemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +get state of nodes's checkbox + +

    +
      +
    • itemId - target node id
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_islocked.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_islocked.html new file mode 100755 index 0000000000..58ddef4dd9 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_islocked.html @@ -0,0 +1,136 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_islocked [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    isLocked(itemId)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_li.js +

    + +

    +get locked state of item + +

    +
      +
    • itemId - id of item
      +
    • +
    + +

    + +Returns true/false - locked/unlocked +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadcsv.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadcsv.html new file mode 100755 index 0000000000..aad5ec97b4 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadcsv.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_loadcsv [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    loadCSV(file,afterCall)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree_json.js +

    + +

    +load tree from csv file|stream + +

    +
      +
    • file - link to CSV file
      +
    • +
    • afterCall - function which will be called after xml loading
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadcsvstring.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadcsvstring.html new file mode 100755 index 0000000000..f492623689 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadcsvstring.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_loadcsvstring [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    loadCSVString(csv,afterCall)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree_json.js +

    + +

    +load tree from csv string + +

    +
      +
    • csv - csv string
      +
    • +
    • afterCall - function which will be called after xml loading
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadjsarray.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadjsarray.html new file mode 100755 index 0000000000..aac85c95e0 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadjsarray.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_loadjsarray [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    loadJSArray(ar,afterCall)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree_json.js +

    + +

    +load tree from js array object + +

    +
      +
    • ar - js array
      +
    • +
    • afterCall - function which will be called after xml loading
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadjsarrayfile.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadjsarrayfile.html new file mode 100755 index 0000000000..a8599209b1 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadjsarrayfile.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_loadjsarrayfile [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    loadJSArrayFile(file,afterCall)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree_json.js +

    + +

    +load tree from js array file|stream + +

    +
      +
    • file - link to JSArray file
      +
    • +
    • afterCall - function which will be called after xml loading
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadjson.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadjson.html new file mode 100755 index 0000000000..5a0289625a --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadjson.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_loadjson [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    loadJSON(file,afterCall)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree_json.js +

    + +

    +load tree from json file + +

    +
      +
    • file - link to JSON file
      +
    • +
    • afterCall - function which will be called after xml loading
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadjsonobject.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadjsonobject.html new file mode 100755 index 0000000000..20c196f4fd --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadjsonobject.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_loadjsonobject [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    loadJSONObject(json,afterCall)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree_json.js +

    + +

    +load tree from json object + +

    +
      +
    • json - json object
      +
    • +
    • afterCall - function which will be called after xml loading
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadopenstates.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadopenstates.html new file mode 100755 index 0000000000..063ef26500 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadopenstates.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_loadopenstates [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    loadOpenStates(name)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_xw.js +

    + +

    +restore open nodes from cookie + +

    +
      +
    • name - optional,cookie name
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadstate.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadstate.html new file mode 100755 index 0000000000..dbe9dea088 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadstate.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_loadstate [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    loadState(name)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_xw.js +

    + +

    +load tree from cookie + +

    +
      +
    • name - optional,cookie name
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadxml.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadxml.html new file mode 100755 index 0000000000..1a9b872f81 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadxml.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_loadxml [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    loadXML(file,afterCall)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +load tree from xml file + +

    +
      +
    • file - link to XML file
      +
    • +
    • afterCall - function which will be called after xml loading
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadxmlstring.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadxmlstring.html new file mode 100755 index 0000000000..17a1a568db --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_loadxmlstring.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_loadxmlstring [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    loadXMLString(xmlString,afterCall)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +load tree from xml string + +

    +
      +
    • xmlString - XML string
      +
    • +
    • afterCall - function which will be called after xml loading
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_lockitem.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_lockitem.html new file mode 100755 index 0000000000..597e125d38 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_lockitem.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_lockitem [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    lockItem(itemId,state)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_li.js +

    + +

    +lock/unlock item + +

    +
      +
    • itemId - id of item
      +
    • +
    • state - true/false - lock/unlock item
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_locktree.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_locktree.html new file mode 100755 index 0000000000..11be936326 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_locktree.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_locktree [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    lockTree(isLock)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_li.js +

    + +

    +lock tree + +

    +
      +
    • isLock - bool value. True - lock, false - unlock
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_makealldraggable.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_makealldraggable.html new file mode 100755 index 0000000000..270e50bbbe --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_makealldraggable.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_makealldraggable [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    makeAllDraggable(func)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree_dragin.js +

    + +

    +adds drag-n-drop capabilities (with possibility to drop into dhtmlxTree) to all HTML items with dragInDhtmlXTree attribute + +

    +
      +
    • func - custom drag processor function, optional
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_makedraggable.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_makedraggable.html new file mode 100755 index 0000000000..92317ba01c --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_makedraggable.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_makedraggable [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    makeDraggable(obj,func)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree_dragin.js +

    + +

    +adds drag-n-drop capabilities (with possibility to drop into dhtmlxTree) to HTML object. + +

    +
      +
    • obj - HTML object, or HTML object ID
      +
    • +
    • func - custom drag processor function, optional
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_moveitem.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_moveitem.html new file mode 100755 index 0000000000..5b5ecd2ecf --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_moveitem.html @@ -0,0 +1,139 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_moveitem [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    moveItem(itemId,mode,targetId,targetTree)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +move item (inside of tree) + +

    +
      +
    • itemId - item Id
      +
    • +
    • mode - moving mode (left,up,down,item_child,item_sibling,item_sibling_next,up_strict,down_strict)
      +
    • +
    • targetId - target Node in item_child and item_sibling mode
      +
    • +
    • targetTree - used for moving between trees (optional)
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_openallitems.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_openallitems.html new file mode 100755 index 0000000000..518f61e371 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_openallitems.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_openallitems [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    openAllItems(itemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +expand target node and all sub nodes + +

    +
      +
    • itemId - node id
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_openallitemsdynamic.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_openallitemsdynamic.html new file mode 100755 index 0000000000..e2a1c18cae --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_openallitemsdynamic.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_openallitemsdynamic [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    openAllItemsDynamic(itemId)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_xw.js +

    + +

    +expand target node and all child nodes (same as openAllItems, but works in dynamic trees) + +

    +
      +
    • itemId - node id, optional
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_openitem.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_openitem.html new file mode 100755 index 0000000000..d7acc11645 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_openitem.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_openitem [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    openItem(itemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +expand node + +

    +
      +
    • itemId - id of node
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_openitemsdynamic.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_openitemsdynamic.html new file mode 100755 index 0000000000..07e161f6b4 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_openitemsdynamic.html @@ -0,0 +1,137 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_openitemsdynamic [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    openItemsDynamic(list,flag)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_xw.js +

    + +

    +expand list of nodes in dynamic tree (wait of loading of node before expanding next) + +

    +
      +
    • list - list of nodes which will be expanded
      +
    • +
    • flag - true/false - select last node in the list
      +
    • +
    +
           tree.openItemsDynamic("id_0,id_0_2,id_0_2_3,id_2,id_2_1",true);
    +

    +The method calls onOpenDynamicEnd event +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_openonitemadded.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_openonitemadded.html new file mode 100755 index 0000000000..bed08f2b73 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_openonitemadded.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_openonitemadded [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    openOnItemAdded(mode)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +configure if parent node will be expanded immideatly after child item added + +

    +
      +
    • mode - true/false
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_preventiecaching.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_preventiecaching.html new file mode 100755 index 0000000000..663326e655 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_preventiecaching.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_preventiecaching [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    preventIECaching(mode)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +prevent caching in IE by adding random value to URL string + +

    +
      +
    • mode - enable/disable random value ( disabled by default )
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_refreshitem.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_refreshitem.html new file mode 100755 index 0000000000..d99469d31d --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_refreshitem.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_refreshitem [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    refreshItem(itemId)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +refresh tree branch from xml (XML with child nodes rerequested from server) + +

    +
      +
    • itemId - id of node, if not defined tree super root used.
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_refreshitems.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_refreshitems.html new file mode 100755 index 0000000000..ff3a1e0b5d --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_refreshitems.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_refreshitems [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    refreshItems(itemIdList,source)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +refresh specified tree nodes (get XML from server and updat only nodes included in itemIdList) + +

    +
      +
    • itemIdList - list of node identificators
      +
    • +
    • source - server side script
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_registerxmlentity.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_registerxmlentity.html new file mode 100755 index 0000000000..5228107ae9 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_registerxmlentity.html @@ -0,0 +1,140 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_registerxmlentity [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    registerXMLEntity(rChar,rEntity)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_xw.js +

    + +

    +register XML entity for replacement while initialization (default are: ampersand, lessthen and greaterthen symbols) + +

    +
      +
    • rChar - source char
      +
    • +
    • rEntity - target entity
      +
    • +
    + + + +

    +This method should be used with the setSerializationLevel method to enable replacement (true as the 3rd parameter). + +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_restoreselecteditem.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_restoreselecteditem.html new file mode 100755 index 0000000000..921c267080 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_restoreselecteditem.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_restoreselecteditem [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    restoreSelectedItem(name)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_xw.js +

    + +

    +restore selected item from cookie + +

    +
      +
    • name - optional, cookie name
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_saveopenstates.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_saveopenstates.html new file mode 100755 index 0000000000..f11e96443f --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_saveopenstates.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_saveopenstates [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    saveOpenStates(name,cookie_param)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_xw.js +

    + +

    +save open nodes to cookie + +

    +
      +
    • name - optional,cookie name
      +
    • +
    • cookie_param - additional parametrs added to cookie
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_saveselecteditem.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_saveselecteditem.html new file mode 100755 index 0000000000..9173f5d107 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_saveselecteditem.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_saveselecteditem [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    saveSelectedItem(name,cookie_param)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_xw.js +

    + +

    +save selected item to cookie + +

    +
      +
    • name - optional, cookie name
      +
    • +
    • cookie_param - additional parametrs added to cookie
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_savestate.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_savestate.html new file mode 100755 index 0000000000..6fc2ac5694 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_savestate.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_savestate [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    saveState(name,cookie_param)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_xw.js +

    + +

    +save tree to cookie + +

    +
      +
    • name - optional, cookie name
      +
    • +
    • cookie_param - additional parametrs added to cookie
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_selectitem.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_selectitem.html new file mode 100755 index 0000000000..ecf66f2a41 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_selectitem.html @@ -0,0 +1,137 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_selectitem [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    selectItem(itemId,mode,preserve)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +select node ( and optionaly fire onClick event) + +

    +
      +
    • itemId - node id
      +
    • +
    • mode - If true, script function for selected node will be called. ( onClick event )
      +
    • +
    • preserve - preserve earlier selected nodes
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_serializetree.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_serializetree.html new file mode 100755 index 0000000000..654184225c --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_serializetree.html @@ -0,0 +1,126 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_serializetree [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    serializeTree()

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_xw.js +

    + +

    +get xml representation (as string) of tree +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_serializetreetojson.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_serializetreetojson.html new file mode 100755 index 0000000000..4b32e685fd --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_serializetreetojson.html @@ -0,0 +1,126 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_serializetreetojson [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    serializeTreeToJSON()

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree_json.js +

    + +

    +return tree as json string +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setcheck.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setcheck.html new file mode 100755 index 0000000000..951b3fd590 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setcheck.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setcheck [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setCheck(itemId,state)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set state of node's checkbox + +

    +
      +
    • itemId - target node id
      +
    • +
    • state - checkbox state (0/1/“unsureâ€)
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setchildcalchtml.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setchildcalchtml.html new file mode 100755 index 0000000000..46eabe7608 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setchildcalchtml.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setchildcalchtml [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setChildCalcHTML( htmlA,htmlB )

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set children calculation prefix and postfix + +

    +
      +
    • htmlA - postfix ([ - by default)
      +
    • +
    • htmlB - postfix (] - by default)
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setchildcalcmode.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setchildcalcmode.html new file mode 100755 index 0000000000..a304727ded --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setchildcalcmode.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setchildcalcmode [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setChildCalcMode( mode )

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set children calculation mode + +

    +
      +
    • mode - mode name as string . Possible values: child - children, no recursive; leafs - children without subchildren, no recursive; ,childrec - children, recursive; leafsrec - children without subchildren, recursive; disabled (disabled by default)
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setcustomsortfunction.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setcustomsortfunction.html new file mode 100755 index 0000000000..6d79e244de --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setcustomsortfunction.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setcustomsortfunction [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setCustomSortFunction(func)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_sb.js +

    + +

    +set custom sort functions, which has two parametrs - id_of_item1,id_of_item2 + +

    +
      +
    • func - sorting function
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setdatamode.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setdatamode.html new file mode 100755 index 0000000000..8cb544bce8 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setdatamode.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setdatamode [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setDataMode(mode)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set default data transfer mode + +

    +
      +
    • mode - data mode (json,xml,csv)
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setdragbehavior.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setdragbehavior.html new file mode 100755 index 0000000000..43a5e88b92 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setdragbehavior.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setdragbehavior [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setDragBehavior(mode,select)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set Drag-And-Drop behavior (child - drop as chils, sibling - drop as sibling, complex - complex drop behaviour ) + +

    +
      +
    • mode - behavior name (child,sibling,complex)
      +
    • +
    • select - select droped node after drag-n-drop, true by default
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_seteditstartaction.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_seteditstartaction.html new file mode 100755 index 0000000000..532746070b --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_seteditstartaction.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_seteditstartaction [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setEditStartAction(click_IE, dblclick)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree_ed.js +

    + +

    +define which events must start editing + +

    +
      +
    • click_IE - click on already selected item - true/false [true by default]
      +
    • +
    • dblclick - on double click
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setescapingmode.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setescapingmode.html new file mode 100755 index 0000000000..c0af67a017 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setescapingmode.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setescapingmode [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setEscapingMode(mode)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set escaping mode (used for escaping ID in requests) + +

    +
      +
    • mode - escaping mode (“utf8†for UTF escaping)
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setformappearon.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setformappearon.html new file mode 100755 index 0000000000..95ee433b41 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setformappearon.html @@ -0,0 +1,137 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setformappearon [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setFormAppearOn(onClick,onDblClick,onMouseOver)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_if.js +

    + +

    +define events for form appearing + +

    +
      +
    • onClick - form appears on click event
      +
    • +
    • onDblClick - form appears on double click event
      +
    • +
    • onMouseOver - form appears on mouseover event
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setformdisappearon.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setformdisappearon.html new file mode 100755 index 0000000000..6282ef06f1 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setformdisappearon.html @@ -0,0 +1,137 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setformdisappearon [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setFormDisappearOn(onClick,onDblClick,onMouseOver)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_if.js +

    + +

    +define events for form disappearing + +

    +
      +
    • onClick - form disappears on click event
      +
    • +
    • onDblClick - form disappears on double click event
      +
    • +
    • onMouseOver - form disappears on mouseover event
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_seticonpath.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_seticonpath.html new file mode 100755 index 0000000000..36a658c3f2 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_seticonpath.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_seticonpath [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setIconPath(path)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set path to external images used as tree icons + +

    +
      +
    • path - url (or relative path) of images folder with closing â€/â€
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_seticonsize.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_seticonsize.html new file mode 100755 index 0000000000..74f61791e8 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_seticonsize.html @@ -0,0 +1,137 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_seticonsize [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setIconSize(newWidth,newHeight,itemId)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set size of icons + +

    +
      +
    • newWidth - new icon width
      +
    • +
    • newHeight - new icon height
      +
    • +
    • itemId - item Id, if skipped set default value for all new icons, optional
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setimagearrays.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setimagearrays.html new file mode 100755 index 0000000000..feb9c65571 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setimagearrays.html @@ -0,0 +1,143 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setimagearrays [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setImageArrays(arrayName,image1,image2,image3,image4,image5)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set images used for parent-child threads drawing (lines, plus, minus) + +

    +
      +
    • arrayName - name of array: plus, minus
      +
    • +
    • image1 - line crossed image
      +
    • +
    • image2 - image with top line
      +
    • +
    • image3 - image with bottom line
      +
    • +
    • image4 - image without line
      +
    • +
    • image5 - single root image
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setimagepath.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setimagepath.html new file mode 100755 index 0000000000..6a522caaec --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setimagepath.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setimagepath [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setImagePath( newPath )

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set path to images directory + +

    +
      +
    • newPath - path to images directory (related to the page with tree or absolute http url)
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemcloseable.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemcloseable.html new file mode 100755 index 0000000000..60d56e475f --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemcloseable.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setitemcloseable [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setItemCloseable(itemId,flag)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +prevent node from closing + +

    +
      +
    • itemId - id of node
      +
    • +
    • flag - if 0 - node can't be closed, else node can be closed
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemcolor.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemcolor.html new file mode 100755 index 0000000000..2504c406fe --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemcolor.html @@ -0,0 +1,137 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setitemcolor [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setItemColor(itemId,defaultColor,selectedColor)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set node text color + +

    +
      +
    • itemId - id of node
      +
    • +
    • defaultColor - node color
      +
    • +
    • selectedColor - selected node color
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemcontextmenu.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemcontextmenu.html new file mode 100755 index 0000000000..010e73f51a --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemcontextmenu.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setitemcontextmenu [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setItemContextMenu(itemId,cMenu)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set context menu to individual nodes + +

    +
      +
    • itemId - node id
      +
    • +
    • cMenu - context menu object
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemimage.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemimage.html new file mode 100755 index 0000000000..374f5b0571 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemimage.html @@ -0,0 +1,137 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setitemimage [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setItemImage(itemId,image1,image2)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set item icons (mostly usefull for childless nodes) + +

    +
      +
    • itemId - id of node
      +
    • +
    • image1 - node without children icon or closed node icon (if image2 specified)
      +
    • +
    • image2 - open node icon (optional)
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemimage2.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemimage2.html new file mode 100755 index 0000000000..a71842c666 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemimage2.html @@ -0,0 +1,139 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setitemimage2 [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setItemImage2(itemId, image1,image2,image3)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set item images + +

    +
      +
    • itemId - id of node
      +
    • +
    • image1 - node without children icon
      +
    • +
    • image2 - open node icon
      +
    • +
    • image3 - closed node icon
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemstyle.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemstyle.html new file mode 100755 index 0000000000..4a54891316 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemstyle.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setitemstyle [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setItemStyle(itemId,style_string)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set individual item style + +

    +
      +
    • itemId - node id
      +
    • +
    • style_string - valid CSS string
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemtext.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemtext.html new file mode 100755 index 0000000000..02a680c6e6 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemtext.html @@ -0,0 +1,137 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setitemtext [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setItemText(itemId,newLabel,newTooltip)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set new node text (HTML allowed) + +

    +
      +
    • itemId - id of node
      +
    • +
    • newLabel - node text
      +
    • +
    • newTooltip - (optional)tooltip for the node
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemtopoffset.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemtopoffset.html new file mode 100755 index 0000000000..e4eb106d44 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setitemtopoffset.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setitemtopoffset [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setItemTopOffset(itemId,value)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set top offset for item + +

    +
      +
    • itemId - id of item
      +
    • +
    • value - value of top offset in px
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setlistdelimeter.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setlistdelimeter.html new file mode 100755 index 0000000000..a8fb70b50d --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setlistdelimeter.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setlistdelimeter [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setListDelimeter(separator)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set list separator (â€,†by default) + +

    +
      +
    • separator - char or string to use for separating items in lists
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setlockedicons.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setlockedicons.html new file mode 100755 index 0000000000..01fe34f049 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setlockedicons.html @@ -0,0 +1,137 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setlockedicons [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setLockedIcons(im0,im1,im2)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_li.js +

    + +

    +set icon for locked items + +

    +
      +
    • im0 - icon for locked leaf
      +
    • +
    • im1 - icon for closed branch
      +
    • +
    • im2 - icon for opened branch
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setondblclickhandler.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setondblclickhandler.html new file mode 100755 index 0000000000..99c6de116b --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setondblclickhandler.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setondblclickhandler [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setOnDblClickHandler(func)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set function called when tree node double clicked + +

    +
      +
    • func - event handling function
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setonformdismissal.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setonformdismissal.html new file mode 100755 index 0000000000..e3bbdcf814 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setonformdismissal.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setonformdismissal [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setOnFormDismissal(func)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_if.js +

    + +

    +allow to set user routine which will be called right before form disappears + +

    +
      +
    • func - user defined function
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setonforminitialisation.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setonforminitialisation.html new file mode 100755 index 0000000000..6e31b49e4b --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setonforminitialisation.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setonforminitialisation [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setOnFormInitialisation(func)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_if.js +

    + +

    +allow setting user routine which will be called immideatly before form appears + +

    +
      +
    • func - user defined function
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setserializationlevel.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setserializationlevel.html new file mode 100755 index 0000000000..7e630a1b51 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setserializationlevel.html @@ -0,0 +1,141 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setserializationlevel [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setSerializationLevel(userData,fullXML,escapeEntities,userDataAsCData,DTD)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_xw.js +

    + +

    +configure XML serialization + +

    +
      +
    • userData - enable/disable user data serialization
      +
    • +
    • fullXML - enable/disable full XML serialization
      +
    • +
    • escapeEntities - convert tag brackets to related html entitites
      +
    • +
    • userDataAsCData - output user data in CDATA sections
      +
    • +
    • DTD - if specified, then set as XML's DTD
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setstdimages.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setstdimages.html new file mode 100755 index 0000000000..89e4e22702 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setstdimages.html @@ -0,0 +1,137 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setstdimages [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setStdImages(image1,image2,image3)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set default images for nodes (must be called before XML loading) + +

    +
      +
    • a0 - image for node without children;
      +
    • +
    • a1 - image for closed node;
      +
    • +
    • a2 - image for opened node
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setsubchecked.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setsubchecked.html new file mode 100755 index 0000000000..fc783a50af --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setsubchecked.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setsubchecked [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setSubChecked(itemId,state)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +change state of node's checkbox and all children checkboxes + +

    +
      +
    • itemId - target node id
      +
    • +
    • state - checkbox state
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setuserdata.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setuserdata.html new file mode 100755 index 0000000000..2e68ca00f7 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setuserdata.html @@ -0,0 +1,137 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setuserdata [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setUserData(itemId,name,value)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +set user data for target node + +

    +
      +
    • itemId - target node id
      +
    • +
    • name - key for user data
      +
    • +
    • value - user data value
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setxmlautoloading.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setxmlautoloading.html new file mode 100755 index 0000000000..2b368266ec --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setxmlautoloading.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setxmlautoloading [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setXMLAutoLoading(filePath)

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +enables dynamic loading from XML + +

    +
      +
    • filePath - name of script returning XML; in case of virtual loading - user defined function
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setxmlautoloadingbehaviour.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setxmlautoloadingbehaviour.html new file mode 100755 index 0000000000..10583501b0 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_setxmlautoloadingbehaviour.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_setxmlautoloadingbehaviour [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    setXMLAutoLoadingBehaviour(mode)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +define which script be called on dynamic loading + +

    +
      +
    • mode - id for some_script?id=item_id ; name for some_scriptitem_id, xmlname for some_scriptitem_id.xml ; function for calling user defined handler
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_showitemcheckbox.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_showitemcheckbox.html new file mode 100755 index 0000000000..ab3035e1b7 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_showitemcheckbox.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_showitemcheckbox [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    showItemCheckbox(itemId,state)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +show/hide checkbox for tree item (works only for individual items, not for entire tree ) + +

    +
      +
    • itemId - id of selected item, optional, set null to change states of all items
      +
    • +
    • state - checkbox show state : 0/1
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_showitemform.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_showitemform.html new file mode 100755 index 0000000000..59ce8b69d5 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_showitemform.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_showitemform [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    showItemForm(itemID,state)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_if.js +

    + +

    +show item's form + +

    +
      +
    • itemID - item id
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_showitemsign.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_showitemsign.html new file mode 100755 index 0000000000..555a1aa2bb --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_showitemsign.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_showitemsign [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    showItemSign(itemId,state)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +show/hide (+/-) icon (works only for individual items, not for entire tree ) + +

    +
      +
    • itemId - id of selected item
      +
    • +
    • state - show state : 0/1
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_smartrefreshbranch.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_smartrefreshbranch.html new file mode 100755 index 0000000000..c71b274840 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_smartrefreshbranch.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_smartrefreshbranch [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    smartRefreshBranch(itemId,source)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +refresh specified tree branch (get XML from server, add new nodes, remove not used nodes) + +

    +
      +
    • itemId - top node in branch
      +
    • +
    • source - server side script , optional
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_smartrefreshitem.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_smartrefreshitem.html new file mode 100755 index 0000000000..c4cd9de1e9 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_smartrefreshitem.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_smartrefreshitem [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    smartRefreshItem(itemId,source)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +refresh specified tree item (get XML from server, add new nodes, remove not used nodes) + +

    +
      +
    • itemId - top node in branch
      +
    • +
    • source - server side script , optional
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_sorttree.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_sorttree.html new file mode 100755 index 0000000000..b61927921b --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_sorttree.html @@ -0,0 +1,137 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_sorttree [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    sortTree(nodeId,order,all_levels)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree_sb.js +

    + +

    +reorder items in tree according to their text + +

    +
      +
    • nodeId - id of node to start sorting from
      +
    • +
    • all_levels - sorting all levels or only current level
      +
    • +
    • order - sorting order - ASC or DES
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_stopedit.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_stopedit.html new file mode 100755 index 0000000000..9d46889cfe --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_stopedit.html @@ -0,0 +1,126 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_stopedit [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    stopEdit()

    +
    + +

    + +Required library edition: This method works with any edition of DHTMLX library
    + Required library file: dhtmlxtree_ed.js +

    + +

    +switch currently edited item back to normal view +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_updateitem.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_updateitem.html new file mode 100755 index 0000000000..e12a2ed147 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_method_dhtmlxtreeobject_updateitem.html @@ -0,0 +1,143 @@ + + + + dhtmlxtree:api_method_dhtmlxtreeobject_updateitem [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    updateItem(itemId,name,im0,im1,im2,achecked)

    +
    + +

    + +Required library edition: This method requires Professional Edition of the DHTMLX library
    + Required library file: dhtmlxtree.js +

    + +

    +update item properties + +

    +
      +
    • itemId - list of node identificators
      +
    • +
    • name - list of node identificators, optional
      +
    • +
    • im0 - list of node identificators, optional
      +
    • +
    • im1 - list of node identificators, optional
      +
    • +
    • im2 - list of node identificators, optional
      +
    • +
    • achecked - list of node identificators, optional
      +
    • +
    + + + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_toc_alpha.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_toc_alpha.html new file mode 100755 index 0000000000..698493f8c7 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_toc_alpha.html @@ -0,0 +1,721 @@ + + + + dhtmlxtree:api_toc_alpha [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    dhtmlxTree API Methods

    +
    + + + +
    + +

    dhtmlXTreeObject Object

    +
    + +

    + +assignKeys configures keys used for keyboard navigation +

    + +

    +attachEvent adds any user-defined handler to available events +

    + +

    +changeItemId changes item id +

    + +

    +clearCut clears cut +

    + +

    +clearSelection unselects item in tree +

    + +

    +closeAllItems collapses target node and all sub nodes +

    + +

    +closeItem collapses node +

    + +

    +defineItemForm assigns custom form to tree +

    + +

    +deleteChildItems deletes all children of node +

    + +

    +deleteItem deletes node +

    + +

    +destructor deletes tree and clears memory +

    + +

    +detachEvent removes an event handler +

    + +

    +disableCheckbox disables checkbox +

    + +

    +doCut marks selected item as cut +

    + +

    +doPaste inserts previously cut branch +

    + +

    +editItem opens editor for specified item +

    + +

    +enableActiveImages enables active images (clickable and dragable). By default only text part of the node is active +

    + +

    +enableAutoSavingSelected enables/disables autosaving selected node in cookie +

    + +

    +enableAutoTooltips enables auto tooltips (node text as tooltip) +

    + +

    +enableCheckBoxes shows/hides checkboxes (all checkboxes in tree) +

    + +

    +enableContextMenu enables context menu +

    + +

    +enableDistributedParsing enables distributed parsing of big tree (items loaded portion by portion with some timeouts) +

    + +

    +enableDragAndDrop enables/disables drag-and-drop +

    + +

    +enableDragAndDropScrolling enables/disables auto scrolling while drag-and-drop +

    + +

    +enableHighlighting enables item highlighting (item text highlited on mouseover) +

    + +

    +enableIEImageFix replaces IMG tag with background images - solve problem with IE image caching , not works for IE6 SP1 +

    + +

    +enableImageDrag enables draging item image with item text +

    + +

    +enableItemEditor enables editing of item text +

    + +

    +enableKeySearch enables search items by pressing keys (any item in tree should be focused/selected to make search work) +

    + +

    +enableKeyboardNavigation enables keyboard navigation in tree +

    + +

    +enableLoadingItem enables/disables “Loading…†item +

    + +

    +enableMercyDrag enables drag without removing (copy instead of move) +

    + +

    +enableMultiLineItems enables multi line items +

    + +

    +enableMultiselection enables multiselection +

    + +

    +enableRTL enables Right-to-Left mode in tree +

    + +

    +enableRadioButtons replaces checkboxes with radio buttons +

    + +

    +enableSingleRadioMode replaces checkboxes with radio buttons +

    + +

    +enableSmartCheckboxes enables smart checkboxes ,true by default (auto checking children and parents for 3-state checkboxes) +

    + +

    +enableSmartRendering enables smart rendering mode (usefull for big trees with lots f items on each level) +

    + +

    +enableSmartXMLParsing enables/disables smart XML parsing mode (usefull for big, well structured XML) +

    + +

    +enableTextSigns replaces images with text signs +

    + +

    +enableThreeStateCheckboxes enables three state checkboxes +

    + +

    +enableTreeImages enables tree images +

    + +

    +enableTreeLines enables/disables tree lines (parent-child threads) +

    + +

    +findItem finds tree item by text, select and focus it +

    + +

    +findItemIdByLabel finds tree item by text +

    + +

    +focusItem focuses item in tree (scroll to it if necessary) +

    + +

    +getAllChecked returns list of identificators of nodes with checked checkboxes, separated by default delimiter +

    + +

    +getAllCheckedBranches returns list of identificators of nodes with checked and third state checkboxes, separated by default delimiter +

    + +

    +getAllChildless returns the list of all items which doesn't have child nodes. +

    + +

    +getAllItemsWithKids returns the list of all items which have child nodes, separated by default delimiter. +

    + +

    +getAllPartiallyChecked returns list of identificators of nodes with third state checkboxes, separated by default delimiter +

    + +

    +getAllSubItems returns the list of all children from all next levels of tree, separated by default delimiter. +

    + +

    +getAllUnchecked returns list of identificators of nodes with unchecked checkboxes, separated by default delimiter +

    + +

    +getChildItemIdByIndex returns child node id by index +

    + +

    +getDistributedParsingState gets current state of distributed parsing +

    + +

    +getIndexById returns node index in children collection by Id +

    + +

    +getItemColor gets node color (text color) +

    + +

    +getItemIdByIndex returns node id by index +

    + +

    +getItemImage gets url of item image +

    + +

    +getItemParsingState gets current parsing state of item +

    + +

    +getItemText returns node text +

    + +

    +getItemTooltip gets item's tooltip +

    + +

    +getLevel gets node level (position in hierarchy) +

    + +

    +getOpenState returns open/close state +

    + +

    +getParentId returns parent item id +

    + +

    +getSelectedItemId returns selected item id +

    + +

    +getSelectedItemText returns selected node text +

    + +

    +getSubItems returns the list of all subitems Ids from the next level of tree, separated by commas. +

    + +

    +getUserData gets user data from target node +

    + +

    +getXMLState returns current state of XML loading +

    + +

    +hasChildren returns number of children +

    + +

    +hideItemForm hides item's form +

    + +

    +insertNewChild creates new node as a child to specified with parentId +

    + +

    +insertNewNext creates new node next to specified +

    + +

    +isItemChecked gets state of nodes's checkbox +

    + +

    +isLocked gets locked state of item +

    + +

    +loadCSV loads tree from csv file|stream +

    + +

    +loadCSVString loads tree from csv string +

    + +

    +loadJSArray loads tree from js array object +

    + +

    +loadJSArrayFile loads tree from js array file|stream +

    + +

    +loadJSON loads tree from json file +

    + +

    +loadJSONObject loads tree from json object +

    + +

    +loadOpenStates restores open nodes from cookie +

    + +

    +loadState loads tree from cookie +

    + +

    +loadXML loads tree from xml file +

    + +

    +loadXMLString loads tree from xml string +

    + +

    +lockItem locks/unlocks item +

    + +

    +lockTree locks tree +

    + +

    +makeAllDraggable adds drag-n-drop capabilities (with possibility to drop into dhtmlxTree) to all HTML items with dragInDhtmlXTree attribute +

    + +

    +makeDraggable adds drag-n-drop capabilities (with possibility to drop into dhtmlxTree) to HTML object. +

    + +

    +moveItem moves item (inside of tree) +

    + +

    +openAllItems expands target node and all sub nodes +

    + +

    +openAllItemsDynamic expands target node and all child nodes (same as openAllItems, but works in dynamic trees) +

    + +

    +openItem expands node +

    + +

    +openItemsDynamic expands list of nodes in dynamic tree (wait of loading of node before expanding next) +

    + +

    +openOnItemAdded configures if parent node will be expanded immideatly after child item added +

    + +

    +preventIECaching prevents caching in IE by adding random value to URL string +

    + +

    +refreshItem refreshes tree branch from xml (XML with child nodes rerequested from server) +

    + +

    +refreshItems refreshes specified tree nodes (get XML from server and updat only nodes included in itemIdList) +

    + +

    +registerXMLEntity registers XML entity for replacement while initialization (default are: ampersand, lessthen and greaterthen symbols) +

    + +

    +restoreSelectedItem restores selected item from cookie +

    + +

    +saveOpenStates saves open nodes to cookie +

    + +

    +saveSelectedItem saves selected item to cookie +

    + +

    +saveState saves tree to cookie +

    + +

    +selectItem selects node ( and optionaly fire onselect event) +

    + +

    +serializeTree gets xml representation (as string) of tree +

    + +

    +serializeTreeToJSON returns tree as json string +

    + +

    +setCheck sets state of node's checkbox +

    + +

    +setChildCalcHTML sets children calculation prefix and postfix +

    + +

    +setChildCalcMode sets children calculation mode +

    + +

    +setCustomSortFunction sets custom sort functions, which has two parametrs - id_of_item1,id_of_item2 +

    + +

    +setDataMode sets default data transfer mode +

    + +

    +setDragBehavior sets Drag-And-Drop behavior (child - drop as chils, sibling - drop as sibling, complex - complex drop behaviour ) +

    + +

    +setEditStartAction defines which events must start editing +

    + +

    +setEscapingMode sets escaping mode (used for escaping ID in requests) +

    + +

    +setFormAppearOn defines events for form appearing +

    + +

    +setFormDisappearOn defines events for form disappearing +

    + +

    +setIconPath sets path to external images used as tree icons +

    + +

    +setIconSize sets size of icons +

    + +

    +setImageArrays sets images used for parent-child threads drawing (lines, plus, minus) +

    + +

    +setImagePath sets path to images directory +

    + +

    +setItemCloseable prevents node from closing +

    + +

    +setItemColor sets node text color +

    + +

    +setItemContextMenu sets context menu to individual nodes +

    + +

    +setItemImage sets item icons (mostly usefull for childless nodes) +

    + +

    +setItemImage2 sets item images +

    + +

    +setItemStyle sets individual item style +

    + +

    +setItemText sets new node text (HTML allowed) +

    + +

    +setItemTopOffset sets top offset for item +

    + +

    +setListDelimeter sets list separator (â€,†by default) +

    + +

    +setLockedIcons sets icon for locked items +

    + +

    +setOnDblClickHandler sets function called when tree node double clicked +

    + +

    +setOnFormDismissal allows to set user routine which will be called right before form disappears +

    + +

    +setOnFormInitialisation allows setting user routine which will be called immideatly before form appears +

    + +

    +setSerializationLevel configures XML serialization +

    + +

    +setStdImages sets default images for nodes (must be called before XML loading) +

    + +

    +setSubChecked changes state of node's checkbox and all children checkboxes +

    + +

    +setUserData sets user data for target node +

    + +

    +setXMLAutoLoading enables dynamic loading from XML +

    + +

    +setXMLAutoLoadingBehaviour defines which script be called on dynamic loading +

    + +

    +showItemCheckbox shows/hides checkbox for tree item (works only for individual items, not for entire tree ) +

    + +

    +showItemForm shows item's form +

    + +

    +showItemSign shows/hides (+/-) icon (works only for individual items, not for entire tree ) +

    + +

    +smartRefreshBranch refreshes specified tree branch (get XML from server, add new nodes, remove not used nodes) +

    + +

    +smartRefreshItem refreshes specified tree item (get XML from server, add new nodes, remove not used nodes) +

    + +

    +sortTree reorders items in tree according to their text +

    + +

    +stopEdit switches currently edited item back to normal view +

    + +

    +updateItem updates item properties + +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_toc_categories.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_toc_categories.html new file mode 100755 index 0000000000..c51fe06299 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___api_toc_categories.html @@ -0,0 +1,785 @@ + + + + dhtmlxtree:api_toc_categories [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + + + + +

    +

    + +

    + +

    Appearance

    +
    + +

    +enableHighlighting enables item highlighting (item text highlited on mouseover) +

    + +

    +enableIEImageFix replaces IMG tag with background images - solve problem with IE image caching , not works for IE6 SP1 +

    + +

    +enableLoadingItem enables/disables “Loading…†item +

    + +

    +enableMultiLineItems enables multi line items +

    + +

    +enableTextSigns replaces images with text signs +

    + +

    +enableTreeImages enables tree images +

    + +

    +enableTreeLines enables/disables tree lines (parent-child threads) +

    + +

    +setIconSize sets size of icons +

    + +

    +setItemColor sets node text color +

    + +

    +setItemImage sets item icons (mostly usefull for childless nodes) +

    + +

    +setItemImage2 sets item images +

    + +

    +setItemStyle sets individual item style +

    + +

    +setItemTopOffset sets top offset for item +

    + +

    +setLockedIcons sets icon for locked items +

    + +

    +showItemSign shows/hides (+/-) icon (works only for individual items, not for entire tree ) +

    + +
    +
    +

    Checkboxes

    +
    + +

    +disableCheckbox disables checkbox +

    + +

    +enableCheckBoxes shows/hides checkboxes (all checkboxes in tree) +

    + +

    +enableRadioButtons replaces checkboxes with radio buttons +

    + +

    +enableSingleRadioMode replaces checkboxes with radio buttons +

    + +

    +enableSmartCheckboxes enables smart checkboxes ,true by default (auto checking children and parents for 3-state checkboxes) +

    + +

    +enableThreeStateCheckboxes enables three state checkboxes +

    + +

    +setCheck sets state of node's checkbox +

    + +

    +setSubChecked changes state of node's checkbox and all children checkboxes +

    + +

    +showItemCheckbox shows/hides checkbox for tree item (works only for individual items, not for entire tree ) +

    + +
    +
    +

    Configuration

    +
    + +

    +attachEvent adds any user-defined handler to available events +

    + +

    +destructor deletes tree and clears memory +

    + +

    +detachEvent removes an event handler +

    + +

    +enableActiveImages enables active images (clickable and dragable). By default only text part of the node is active +

    + +

    +enableAutoTooltips enables auto tooltips (node text as tooltip) +

    + +

    +enableContextMenu enables context menu +

    + +

    +enableRTL enables Right-to-Left mode in tree +

    + +

    +lockTree locks tree +

    + +

    +setChildCalcHTML sets children calculation prefix and postfix +

    + +

    +setChildCalcMode sets children calculation mode +

    + +

    +setEditStartAction defines which events must start editing +

    + +

    +setEscapingMode sets escaping mode (used for escaping ID in requests) +

    + +

    +setIconPath sets path to external images used as tree icons +

    + +

    +setImageArrays sets images used for parent-child threads drawing (lines, plus, minus) +

    + +

    +setImagePath sets path to images directory +

    + +

    +setItemContextMenu sets context menu to individual nodes +

    + +

    +setListDelimeter sets list separator (â€,†by default) +

    + +

    +setOnDblClickHandler sets function called when tree node double clicked +

    + +

    +setStdImages sets default images for nodes (must be called before XML loading) +

    + +
    +
    +

    Cookies

    +
    + +

    +enableAutoSavingSelected enables/disables autosaving selected node in cookie +

    + +

    +restoreSelectedItem restores selected item from cookie +

    + +

    +saveOpenStates saves open nodes to cookie +

    + +

    +saveSelectedItem saves selected item to cookie +

    + +

    +saveState saves tree to cookie + +

    + +
    +
    +

    Data Loading

    +
    + +

    +defineItemForm assigns custom form to tree +

    + +

    +enableDistributedParsing enables distributed parsing of big tree (items loaded portion by portion with some timeouts) +

    + +

    +enableLoadingItem enables/disables “Loading…†item +

    + +

    +enableSmartRendering enables smart rendering mode (usefull for big trees with lots f items on each level) +

    + +

    +enableSmartXMLParsing enables/disables smart XML parsing mode (usefull for big, well structured XML) +

    + +

    +hideItemForm hides item's form +

    + +

    +loadCSV loads tree from csv file|stream +

    + +

    +loadCSVString loads tree from csv string +

    + +

    +loadJSArray loads tree from js array object +

    + +

    +loadJSArrayFile loads tree from js array file|stream +

    + +

    +loadJSON loads tree from json file +

    + +

    +loadJSONObject loads tree from json object +

    + +

    +loadOpenStates restores open nodes from cookie +

    + +

    +loadState loads tree from cookie +

    + +

    +loadXML loads tree from xml file +

    + +

    +loadXMLString loads tree from xml string +

    + +

    +preventIECaching prevents caching in IE by adding random value to URL string +

    + +

    +refreshItem refreshes tree branch from xml (XML with child nodes rerequested from server) +

    + +

    +refreshItems refreshes specified tree nodes (get XML from server and updat only nodes included in itemIdList) +

    + +

    +registerXMLEntity registers XML entity for replacement while initialization (default are: ampersand, lessthen and greaterthen symbols) +

    + +

    +setDataMode sets default data transfer mode +

    + +

    +setXMLAutoLoading enables dynamic loading from XML +

    + +

    +setXMLAutoLoadingBehaviour defines which script be called on dynamic loading +

    + +

    +smartRefreshBranch refreshes specified tree branch (get XML from server, add new nodes, remove not used nodes) +

    + +

    +smartRefreshItem refreshes specified tree item (get XML from server, add new nodes, remove not used nodes) +

    + +

    +setFormAppearOn defines events for form appearing +

    + +

    +setFormDisappearOn defines events for form disappearing +

    + +

    +setOnFormDismissal allows to set user routine which will be called right before form disappears +

    + +

    +setOnFormInitialisation allows setting user routine which will be called immideatly before form appears +

    + +

    +setUserData sets user data for target node +

    + +

    +showItemForm shows item's form +

    + +

    +serializeTree gets xml representation (as string) of tree +

    + +

    +serializeTreeToJSON returns tree as json string +

    + +

    +setSerializationLevel configures XML serialization +

    + +
    +
    +

    Drag-and-Drop

    +
    + +

    +enableDragAndDrop enables/disables drag-and-drop +

    + +

    +enableDragAndDropScrolling enables/disables auto scrolling while drag-and-drop +

    + +

    +enableImageDrag enables draging item image with item text +

    + +

    +enableMercyDrag enables drag without removing (copy instead of move) +

    + +

    +makeAllDraggable adds drag-n-drop capabilities (with possibility to drop into dhtmlxTree) to all HTML items with dragInDhtmlXTree attribute +

    + +

    +makeDraggable adds drag-n-drop capabilities (with possibility to drop into dhtmlxTree) to HTML object. +

    + +

    +moveItem moves item (inside of tree) +

    + +

    +setDragBehavior sets Drag-And-Drop behavior (child - drop as chils, sibling - drop as sibling, complex - complex drop behaviour ) +

    + +
    +
    +

    Get-methods

    +
    + +

    +getAllChecked returns list of identificators of nodes with checked checkboxes, separated by default delimiter +

    + +

    +getAllCheckedBranches returns list of identificators of nodes with checked and third state checkboxes, separated by default delimiter +

    + +

    +getAllChildless returns the list of all items which doesn't have child nodes. +

    + +

    +getAllItemsWithKids returns the list of all items which have child nodes, separated by default delimiter. +

    + +

    +getAllPartiallyChecked returns list of identificators of nodes with third state checkboxes, separated by default delimiter +

    + +

    +getAllSubItems returns the list of all children from all next levels of tree, separated by default delimiter. +

    + +

    +getAllUnchecked returns list of identificators of nodes with unchecked checkboxes, separated by default delimiter +

    + +

    +getChildItemIdByIndex returns child node id by index +

    + +

    +getDistributedParsingState gets current state of distributed parsing +

    + +

    +getIndexById returns node index in children collection by Id +

    + +

    +getItemColor gets node color (text color) +

    + +

    +getItemIdByIndex returns node id by index +

    + +

    +getItemImage gets url of item image +

    + +

    +getItemParsingState gets current parsing state of item +

    + +

    +getItemText returns node text +

    + +

    +getItemTooltip gets item's tooltip +

    + +

    +getLevel gets node level (position in hierarchy) +

    + +

    +getOpenState returns open/close state +

    + +

    +getParentId returns parent item id +

    + +

    +getSelectedItemId returns selected item id +

    + +

    +getSelectedItemText returns selected node text +

    + +

    +getSubItems returns the list of all subitems Ids from the next level of tree, separated by commas. +

    + +

    +getUserData gets user data from target node +

    + +

    +getXMLState returns current state of XML loading +

    + +

    +hasChildren returns number of children +

    + +
    +
    +

    Items manipulation

    +
    + +

    +changeItemId changes item id +

    + +

    +clearCut clears cut +

    + +

    +closeAllItems collapses target node and all sub nodes +

    + +

    +closeItem collapses node +

    + +

    +deleteChildItems deletes all children of node +

    + +

    +deleteItem deletes node +

    + +

    +doCut marks selected item as cut +

    + +

    +doPaste inserts previously cut branch +

    + +

    +editItem opens editor for specified item +

    + +

    +enableItemEditor enables editing of item text +

    + +

    +insertNewChild creates new node as a child to specified with parentId +

    + +

    +insertNewNext creates new node next to specified +

    + +

    +isItemChecked gets state of nodes's checkbox +

    + +

    +isLocked gets locked state of item +

    + +

    +lockItem locks/unlocks item +

    + +

    +openAllItems expands target node and all sub nodes +

    + +

    +openAllItemsDynamic expands target node and all child nodes (same as openAllItems, but works in dynamic trees) +

    + +

    +openItem expands node +

    + +

    +openItemsDynamic expands list of nodes in dynamic tree (wait of loading of node before expanding next) +

    + +

    +openOnItemAdded configures if parent node will be expanded immideatly after child item added +

    + +

    +setCheck sets state of node's checkbox +

    + +

    +setItemCloseable prevents node from closing +

    + +

    +setItemText sets new node text (HTML allowed) +

    + +

    +stopEdit switches currently edited item back to normal view +updateItem updates item properties +

    + +
    +
    +

    Selection, Sorting, Navigation

    +
    + +

    +assignKeys configures keys used for keyboard navigation +

    + +

    +clearSelection unselects item in tree +

    + +

    +enableKeyboardNavigation enables keyboard navigation in tree +

    + +

    +enableKeySearch enables search items by pressing keys (any item in tree should be focused/selected to make search work) +

    + +

    +findItem finds tree item by text, select and focus it +

    + +

    +findItemIdByLabel finds tree item by text +

    + +

    +enableMultiselection enables multiselection +

    + +

    +focusItem focuses item in tree (scroll to it if necessary) +

    + +

    +selectItem selects node ( and optionaly fire onselect event) +

    + +

    +setCustomSortFunction sets custom sort functions, which has two parametrs - id_of_item1,id_of_item2 +

    + +

    +sortTree reorders items in tree according to their text + +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___checkboxes_manipulation.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___checkboxes_manipulation.html new file mode 100755 index 0000000000..ee1fefcb7e --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___checkboxes_manipulation.html @@ -0,0 +1,347 @@ + + + + dhtmlxtree:checkboxes_manipulation [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + + + + +

    +

    + +

    + +

    Checkboxes Manipulation

    +
    + +

    +dhtmlxTree operates the advanced chechbox system. Besides usual two-state checkboxes (checked item, unchecked item), there is the possibility to use three-state checkboxes with “partly-checked†value. + +

    + +
    +
    +

    Enabling/Disabling Checkboxes

    +
    + +
    + +

    Enabling Standard Checkboxes

    +
    + +

    + +Method enableCheckboxes() does the very thing: + +

    +
        <script>
    +        tree.enableCheckBoxes(mode, hidden);
    +    </script>
    +

    + +The parameters here are as follows: +

    +
      +
    • mode(true|false) - false stands for hiding all the checkboxes, while true stands for showing them all in the tree;
      +
    • +
    • hidden - setting it to true means that checkboxes are not rendered, but can be shown by showItemCheckbox() method.
      +
    • +
    + +

    +In case of creating checkboxes with the help of the above mentioned method, they will possess the usual checkbox states: +

    +
      +
    • checked;
      +
    • +
    • unchecked.
      +
    • +
    + +
    + +

    Enabling Three-State Checkboxes

    +
    + +

    + +The following method is responsible for enabling three-state checkboxes: + +

    +
        <script>
    +        tree.enableThreeStateCheckboxes(true|false);
    +    </script>
    +

    + +The following states are available for three-state checkboxes: +

    +
      +
    • checked;
      +
    • +
    • unchecked;
      +
    • +
    • partially checked.
      +
    • +
    + +

    +The third state takes place when the item has several child nodes among which there are checked and unchecked ones. +

    + +

    +It should be noted that in case when three-state checkboxes are enabled, a click on a parent unchecked checkbox will result in checking it together with all its child items, and vice versa. +

    + +
    + +

    Disabling a Checkbox

    +
    + +

    + +A checkbox of a certain item can be disabled. The parameters that are to be specified: +

    +
      +
    • itemId - id of the item in question;
      +
    • +
    • mode(true|false) - indicates whether the checkbox is disabled (true) or enabled (false).
      +
    • +
    +
        <script>
    +        tree.disableCheckbox(itemId,mode);
    +    </script>
    +
    + +

    Enabling Checkboxes for Specific Items

    +
    + +

    + +The user can set checkboxes for some specific items only. This can be done in the following way: + +

    +
        <script>
    +        tree.enableCheckBoxes(true, true);
    +        ...   
    +        tree.showItemCheckbox(id, mode);
    +    </script>
    +

    + +The parameters here are: +

    +
      +
    • id - id of the item;
      +
    • +
    • mode (true|false) - whether the checkbox will be visible (true) or not (false).
      +
    • +
    + +
    + +

    Enabling Smart Checkboxes

    +
    + +

    + +Method enableSmartCheckboxes() enables three-state checkboxes logic. By default it is set to false: + +

    +
        <script>
    +        tree.enableSmartCheckboxes(true|false); // false by default
    +    </script>
    +
    +
    +

    Checkboxes State Manipulation

    +
    + +
    + +

    Checking/Unchecking Tree Item

    +
    + +

    + +Any checkbox in the tree can be easily checked|unchecked from script with the help of the following method: + +

    +
        <script>
    +        tree.setCheck(id, mode);
    +    </script>
    +

    + +The parameters are as follows: +

    +
      +
    • id - id of the item in question;
      +
    • +
    • mode (true|false) - if set to true, the item will be checked, while false means unchecking the item.
      +
    • +
    + +

    +It should be noted that according to three-state checkboxes' logic, if a parent item was checked with the help of setCheck() method, all its child items will become checked as well. +

    + +
    + +

    Checking/Unchecking Tree Branch

    +
    + +

    + +Along with checking a tree item, a tree branch can also be easily checked/unchecked from script in the following way: + +

    +
        <script>
    +        tree.setSubChecked(id, state);
    +    </script>
    +

    + +The parameters are as follows: +

    +
      +
    • id - id of the item in question;
      +
    • +
    • state (true|false) - if set to true, the branch of items will be checked, while false means unchecking the branch.
      +
    • +
    + +
    + +

    Getting Checkbox's State

    +
    + +

    + +State of the specified item's checkbox can be got in the following way: + +

    +
        <script>
    +        var checkState = tree.isItemChecked(itemId);
    +    </script>
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___compatibility_with_other_dhtmlx_components.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___compatibility_with_other_dhtmlx_components.html new file mode 100755 index 0000000000..0b65cc594e --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___compatibility_with_other_dhtmlx_components.html @@ -0,0 +1,234 @@ + + + + dhtmlxtree:compatibility_with_other_dhtmlx_components [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + + + + +

    +

    + +

    + +

    Compatibility with Other DHTMLX Components

    +
    + +
    +
    +

    Enabling Contextual Menu

    +
    + +

    +A contextual menu can be easily added to dhtmlxTree. The content of this menu can be set with XML or script. To enable the contextual menu, the user should do the following: +

    +
     
    +        <script>      
    +                //initialization of the menu      
    +            menu = new dhtmlXMenuObject(null,"standard");
    +            menu.setImagePath("[full path to this folder]/dhtmlxMenu/codebase/imgs/");
    +            menu.setIconsPath("[full path to this folder]/images/");    
    +            menu.renderAsContextMenu();
    +            menu.loadXML("_context.xml");
    + 
    + 
    + 
    +                //initialization of the tree
    +            tree = new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0);
    +            ...
    +                //link the contextual menu to the tree      
    +            tree.enableContextMenu(aMenu);
    +        </script>
    + 
    + 
    +
    +
    +

    Contextual Menu Based on Item's Properties

    +
    + +

    +One contextual menu content can be attached to the whole tree. If the user wants the menu to be shown differently depending on the item it was called for, menu methods hideButtons/showButtons should be used. +

    + +

    +Note: Refer for more information on the above mentioned menu buttons to dhtmlxMenu Guide and Code Samples documentation. + +

    +
          <div id="treeboxbox_tree" style="width:200;height:200"></div>
    + 
    + 
    + 
    +      <script> 
    +          function onButtonClick(menuitemId,type){
    +              var id = tree.contextID;
    +              tree.setItemColor(id,menuitemId.split("_")[1]);
    +          }
    +              //initialization of the menu
    +          menu = new dhtmlXMenuObject(null,"standard");
    +          menu.setImagePath("[full path to this folder]/dhtmlxMenu/codebase/imgs/");
    +          menu.setIconsPath("[full path to this folder]/images/");
    +          menu.renderAsContextMenu();
    +          menu.setOpenMode("web");
    +          menu.attachEvent("onClick",onButtonClick);
    +          menu.loadXML("_context.xml");
    +              //initialization of the tree
    +          tree=new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0);
    +          tree.setImagePath("../imgs/");
    +          tree.enableDragAndDrop(true);
    +          tree.enableContextMenu(menu);
    +              //link contextual menu to the tree
    +          tree.loadXML("tree.xml")
    + 
    +          tree.attachEvent("onBeforeContextMenu",function(itemId){
    +              if (tree.hasChildren(itemId) > 0){
    +                  menu.hideItem('outher');
    +              } else {
    +                  menu.showItem('outher');
    +              }
    +              return true
    +          })
    +      </script>
    +
    +
    +

    Contextual Menu for Individual Items

    +
    + +

    +If the user wants to set different menus for individual tree items, he should use the following method: + +

    +
          <script>
    +          tree.setItemContextMenu(itemId,cMenu);
    +      </script>
    +

    + +The parameters here are responsible for: +

    +
      +
    • itemId - id of the item the contextual menu will be attached to;
      +
    • +
    • cMenu - contextual menu object that will be attached.
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_220gbgmh9gf_b.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_220gbgmh9gf_b.gif new file mode 100755 index 0000000000..ab9b48d96c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_220gbgmh9gf_b.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_221cf28k8ff_b.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_221cf28k8ff_b.gif new file mode 100755 index 0000000000..71dcc6a149 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_221cf28k8ff_b.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_222gz6tpsdc_b.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_222gz6tpsdc_b.gif new file mode 100755 index 0000000000..c8d80665cd Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_222gz6tpsdc_b.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_223fnxr7chh_b.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_223fnxr7chh_b.gif new file mode 100755 index 0000000000..c3f77ab625 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_223fnxr7chh_b.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_224ggpqf8gx_b.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_224ggpqf8gx_b.gif new file mode 100755 index 0000000000..3de4c6f884 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_224ggpqf8gx_b.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_225fpw796gk_b.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_225fpw796gk_b.gif new file mode 100755 index 0000000000..7ebf92b9bb Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_225fpw796gk_b.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_226c3td7kc7_b.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_226c3td7kc7_b.gif new file mode 100755 index 0000000000..e9474b4257 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_226c3td7kc7_b.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_227f8jk4hd8_b.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_227f8jk4hd8_b.gif new file mode 100755 index 0000000000..f2f58d72e8 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___dgr5rjkf_227f8jk4hd8_b.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___drag_and_drop_handling.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___drag_and_drop_handling.html new file mode 100755 index 0000000000..23844458ae --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___drag_and_drop_handling.html @@ -0,0 +1,339 @@ + + + + dhtmlxtree:drag_and_drop_handling [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + + + + +

    +

    + +

    + +

    Drag-and-Drop Handling

    +
    + +

    +dhtmlxTree has extended drag-and-drop functionality (within one tree, between trees). Using this functionality, it is easy to reorder nodes in a tree view, edit the tree by dragging nodes within one tree, between trees, or even to another object. +

    + +
    +
    +

    Enabling/Disabling Drag-and-Drop

    +
    + +

    +The user can switch d-n-d functionality on|off with the help of enableDragAndDrop() method: + +

    +
            tree.enableDragAndDrop(mode, rmode);
    +

    + +The parameters here are as follows: +

    +
      +
    • mode - the possible variants are:
      +
        +
      • true - d-n-d is enabled in the tree;
        +
      • +
      • false - d-n-d is disabled in the tree;
        +
      • +
      • “temporary_disabled†- d-n-d is disabled temporarily.
        +
      • +
      +
    • +
    • rmode(true|false) - allows to enable|disable drop an item on an empty space in the tree, making this item the child of the top level tree node. This is enabled (true) by default. If disabled (false), the user won't be able to drop an item on an empty space in the tree.
      +
    • +
    + +
    +
    +

    Setting Drag-and-Drop Mode

    +
    + +

    +There is a simple method that allows the user to set d-n-d mode - setDragBehavior(): + +

    +
        <script>
    +        tree.setDragBehavior(mode, select);
    +    </script>
    +

    + +Dragging mode should be indicated as the parameter of this method. The parameters are the following: +

    +
      +
    • mode - the following modes are available:
      +
        +
      • child - drop as a child;
        +
      • +
      • sibling - drop as a sibling;
        +
      • +
      • complex - both previous modes are active;
        +
      • +
      +
    • +
    • select - select the dropped item after drag-n-drop; it is set to true by default.
      +
    • +
    + +
    +
    +

    Copy with Drag-and-Drop

    +
    + +

    +There is also the possibility to enable “mercy†drag mode. In this case, the copy of the dragged item will be moved to another place, leaving the source item intact (copy instead move): + +

    +
        <script>
    +        tree.enableMercyDrag(true|false);
    +    </script>
    +
    +
    +

    Dragging Into Tree

    +
    + +

    +Objects from page can be easily dragged into the tree. There are the following ways of making object draggable: +

    +
      +
    • Using makeDraggable() method which parameter is the id of the object that the user wants to make draggable:
      +
    • +
    +
        <div id="a0">Some text</div>
    +    <div id="a1" text="Tomb" image="tombs.gif">Some complex HTML</div>
    +    <script>
    +        ...
    +        tree.makeDraggable("a0");
    +        tree.makeDraggable("a1");
    +    </script>
      +
    • Using makeDraggable() method which parameters are: id of the object and the function that will be activated on d-n-d to add the element into the tree:
      +
    • +
    +
        <div id="a2" text="Green">
    +        <div style='width:50px; height:20px; background-color:green;'></div>
    +    </div>
    +    <script>
    +        tree.makeDraggable("a2",function(drop_obj,source_id,target_on,target_before){
    +            drop_obj.insertNewItem(target_on,source_id,"Green 1");
    +            drop_obj.insertNewItem(target_on,source_id,"Green 2");
    +            drop_obj.insertNewItem(target_on,source_id,"Green 3");
    +        });
    +    </script>
      +
    • Using makeAllDraggable() method without any input parameters:
      +
    • +
    +
        <div dragInDhtmlXTree="true" id="a3" text="Blue" >...</div>
    +    <div dragInDhtmlXTree="true" id="a4" image="open2.gif" text="Open">...</div>
    +    <div dragInDhtmlXTree="true" id="a5" image="tombs.gif" text="Tomb">...</div>
    + 
    + 
    + 
    +    <script>
    +        tree.makeAllDraggable();
    +    </script>
    +
    +
    +

    Dragging between Frames/Iframes

    +
    + +

    +Drag-and-drop between frames|iframes is enabled by default (works in IE and FireFox), so no additional code is required except: + +

    +
        <script>
    +        tree.enableDragAndDrop(true);
    +    </script>
    +

    + +All you need to do additionally is to insert the following code into the frame/iframe containing no tree: + +

    +
        <script>
    +        new dhtmlDragAndDropObject();
    +    </script>
    +
    +
    +

    Enabling Custom Drag Out

    +
    + +

    +Dragging a node from the tree to some input control on page is also possible with dhtmlxTree: + +

    +
        <script>
    +        tree.dragger.addDragLanding(sinput, {
    +            _drag : function(){ ... },
    +            _dragIn : function(){ ... },
    +            _dragOut : function(){ ... }
    +        });
    +    <acript>
    +

    + +The parameters of addDragLanding() method are as follows: +

    +
      +
    • sinput - the element that will act as a dragging area;
      +
    • +
    • object - the object containing 3 functions:
      +
        +
      • _drag - will be called when the element is put on the dragging area;
        +
      • +
      • _dragIn - will be called when the element is over the dragging area;
        +
      • +
      • _dragOut - will be called when the element was over the dragging area but was moved outside it.
        +
      • +
      +
    • +
    + +

    +The first function is responsible for the action itself, while the other two are used for its visualization. +

    + +
    +
    +

    Enabling Auto Scrolling

    +
    + +

    +Auto scrolling is very useful in the process of d-n-d. This functionality is enabled by default, but it can be easily disabled in the following way: + +

    +
        <script>
    +        tree.enableDragAndDropScrolling(false); // true to enable again
    +    </script>
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___error_handling.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___error_handling.html new file mode 100755 index 0000000000..532c1117f5 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___error_handling.html @@ -0,0 +1,138 @@ + + + + dhtmlxtree:error_handling [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Error Handling

    +
    + +

    +Some exceptions in dhtmlxTree can be captured and processed. + +

    +
        function myErrorHandler(type, desc, erData){
    +            alert(erData[0].status)
    +    }
    +    dhtmlxError.catchError("ALL",myErrorHandler);
    + 
    +

    + +The handler gets the following parameters: +

    +
      +
    • type - supported error types (“All†or “Load XMLâ€);
      +
    • +
    • desc - error description (hardcoded in code);
      +
    • +
    • erData - error related array of objects ([0] - response object).
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onbeforecheck.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onbeforecheck.html new file mode 100755 index 0000000000..4d1019c760 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onbeforecheck.html @@ -0,0 +1,139 @@ + + + + dhtmlxtree:event_onbeforecheck [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    onBeforeCheck Event

    +
    + +

    +This event calls user-defined handlers (if there are any) and passes the following parameters: +

    +
      +
    • id - id of the item;
      +
    • +
    • state - current state of the checkbox;
      +
    • +
    +
              tree.attachEvent("onBeforeCheck", function(id,state){});
    + 
    +

    + +The event returns: +

    + +

    + true - allows checking;
    + + false - denies checking; +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onbeforedrag.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onbeforedrag.html new file mode 100755 index 0000000000..de5c541090 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onbeforedrag.html @@ -0,0 +1,132 @@ + + + + dhtmlxtree:event_onbeforedrag [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    onBeforeDrag Event

    +
    + +

    +This event calls user-defined handlers (if there are any) and passes the following parameter: + +

    +
      +
    • sId - id of the source item.
      +
    • +
    +
              tree.attachEvent("onBeforeDrag", function(sId){});
    + 
    +

    + +This event returns: true - confirms drag-and-drop start; false - denies drag-and-drop (operation will not start). + +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_oncheck.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_oncheck.html new file mode 100755 index 0000000000..4b8d3ab2c2 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_oncheck.html @@ -0,0 +1,128 @@ + + + + dhtmlxtree:event_oncheck [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    onCheck Event

    +
    + +

    +This event calls user-defined handlers (if there are any) and passes the following parameters: +

    +
      +
    • id - id of the item that was checked|unchecked;
      +
    • +
    • state - current state of the checkbox (1 - item is checked, 0 - item is unchecked);
      +
    • +
    +
              tree.attachEvent("onCheck", function(id,state){});
    + 
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onclick.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onclick.html new file mode 100755 index 0000000000..e39fb44b34 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onclick.html @@ -0,0 +1,141 @@ + + + + dhtmlxtree:event_onclick [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    onClick Event

    +
    + +

    + +This event calls user-defined handlers (if there are any) and passes the following parameters: +

    +
      +
    • id - id of the clicked item;
      +
    • +
    • id - id of the previously selected item.
      +
    • +
    +
            tree.attachEvent("onClick", function(id, id){});
    + 
    +

    + +Here is the example of using onClick event in the tree containing items with link-like functionality: + +

    +
        <script>
    +        tree.attachEvent("onClick",function(id){
    +            window.open(tree.getUserData(id,"href"));
    +            return true;
    +        });
    +    </script>
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_ondblclick.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_ondblclick.html new file mode 100755 index 0000000000..0b5268c2fe --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_ondblclick.html @@ -0,0 +1,138 @@ + + + + dhtmlxtree:event_ondblclick [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    onDblClick Event

    +
    + +

    +This event calls user-defined handlers (if there are any) and passes the following parameter: + +

    +
      +
    • id - id of the node that was doubleclicked.
      +
    • +
    +
            tree.attachEvent("onDblClick", function(id){});
    + 
    +

    + +The event returns: +

    + +

    + true - confirms opening|closing;
    + + false - denies opening|closing. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_ondrag.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_ondrag.html new file mode 100755 index 0000000000..4e8f5970f2 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_ondrag.html @@ -0,0 +1,145 @@ + + + + dhtmlxtree:event_ondrag [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    onDrag Event

    +
    + +

    +This event calls user-defined handlers (if there are any) and passes the following parameters: +

    +
      +
    • sId - id of the source item;
      +
    • +
    • tId - id of the target item;
      +
    • +
    • id - if the node is dropped as a sibling, id of the item before which the source node will be inserted;
      +
    • +
    • sObject - source tree object;
      +
    • +
    • tObject - target tree object.
      +
    • +
    +
              tree.attachEvent("onDrag", function(sId,tId,id,sObject,tObject){});
    + 
    +

    + +This event returns: +

    + +

    + true - confirms drag-and-drop start;
    + + false - denies drag-and-drop. + +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_ondragin.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_ondragin.html new file mode 100755 index 0000000000..9190a3a1c7 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_ondragin.html @@ -0,0 +1,143 @@ + + + + dhtmlxtree:event_ondragin [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    onDragIn Event

    +
    + +

    +This event calls user-defined handlers (if there are any) and passes the following parameters: +

    +
      +
    • dId - id of the dragged item;
      +
    • +
    • lId - id of the potential drop landing;
      +
    • +
    • sObject - source object;
      +
    • +
    • tObject - target object.
      +
    • +
    +
              tree.attachEvent("onDragIn", function(dId,lId,id,sObject,tObject){});
    + 
    +

    + +This event returns: +

    + +

    +true - allows drop;
    + +false - denies drop. + +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_ondrop.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_ondrop.html new file mode 100755 index 0000000000..c41386df64 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_ondrop.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:event_ondrop [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    onDrop Event

    +
    + +

    +This event calls user-defined handlers (if there are any) and passes the following parameters: +

    +
      +
    • sId - id of the source item (id after inserting into the tree, my not be equal to the initial id);
      +
    • +
    • tId - id of the target item;
      +
    • +
    • id - if the node is dropped as a sibling, id of the item before which the source node will be inserted;
      +
    • +
    • sObject - source tree object;
      +
    • +
    • tObject - target tree object.
      +
    • +
    +
               tree.attachEvent("onDrop", function(sId,tId,id,sObject,tObject){});
    + 
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onedit.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onedit.html new file mode 100755 index 0000000000..0c973e1292 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onedit.html @@ -0,0 +1,136 @@ + + + + dhtmlxtree:event_onedit [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    onEdit Event

    +
    + +

    +This event calls user-defined handlers (if there are any) and passes the following parameters: +

    +
      +
    • state - 0 = before starting of editing, 1 = after starting of editing, 2 = before editor's closing, 3 = after editor's closing;
      +
    • +
    • id - id of the edited item;
      +
    • +
    • tree - tree object;
      +
    • +
    • value - value of the editor (for stages 0 and 2).
      +
    • +
    +
               tree.attachEvent("onEdit", function(state,id,tree,value){});
    + 
    +

    + +For stages 0 and 2 this event returns: true - confirms opening|closing, false - denies opening|closing; text - edit value. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onmousein.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onmousein.html new file mode 100755 index 0000000000..cd0f7ba67a --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onmousein.html @@ -0,0 +1,127 @@ + + + + dhtmlxtree:event_onmousein [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    onMouseIn Event

    +
    + +

    +This event calls user-defined handlers (if there are any) and passes the following parameter: + +

    +
      +
    • id - id of the node.
      +
    • +
    +
            tree.attachEvent("onMouseIn", function(id){});
    + 
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onmouseout.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onmouseout.html new file mode 100755 index 0000000000..9be56f0fa1 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onmouseout.html @@ -0,0 +1,127 @@ + + + + dhtmlxtree:event_onmouseout [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    onMouseOut Event

    +
    + +

    +This event calls user-defined handlers (if there are any) and passes the following parameter: + +

    +
      +
    • id - id of the clicked node.
      +
    • +
    +
            tree.attachEvent("onMouseOut", function(id){});
    + 
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onopendynamicend.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onopendynamicend.html new file mode 100755 index 0000000000..2f85ced2cd --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onopendynamicend.html @@ -0,0 +1,135 @@ + + + + dhtmlxtree:event_onopendynamicend [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    onOpenDynamicEnd Event

    +
    + +

    +Required library edition: This method requires Professional Edition of the DHTMLX library
    + +

    + +

    +Event is occurs after the item defined in the openItemsDynamic method opens +

    + +

    + +This event calls user-defined handlers (if there are any): + +

    +
           tree.attachEvent("onOpenDynamicEnd", function(){
    +           /*here is your code*/
    +       });
    + 
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onopenend.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onopenend.html new file mode 100755 index 0000000000..b465cf1d09 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onopenend.html @@ -0,0 +1,128 @@ + + + + dhtmlxtree:event_onopenend [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    onOpenEnd Event

    +
    + +

    +This event calls user-defined handlers (if there are any) and passes the following parameters: +

    +
      +
    • id - id of the node that will be opened;
      +
    • +
    • state - current open state of the item: 0 - item has no child nodes, -1 - item is closed, 1 - item is opened.
      +
    • +
    +
            tree.attachEvent("onOpenEnd", function(id,state){});
    + 
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onopenstart.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onopenstart.html new file mode 100755 index 0000000000..0a1127be45 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onopenstart.html @@ -0,0 +1,133 @@ + + + + dhtmlxtree:event_onopenstart [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    onOpenStart Event

    +
    + +

    +This event calls user-defined handlers (if there are any) and passes the following parameters: +

    +
      +
    • id - id of the node that will be opened;
      +
    • +
    • state - current open state of the item: 0 - item has no child nodes, -1 - item is closed, 1 - item is opened.
      +
    • +
    +
            tree.attachEvent("onOpenStart", function(id,state){});
    + 
    +

    + +The event returns: true - confirms opening|closing; false - denies opening|closing. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onrightclick.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onrightclick.html new file mode 100755 index 0000000000..fbc1daeee3 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onrightclick.html @@ -0,0 +1,128 @@ + + + + dhtmlxtree:event_onrightclick [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    onRightClick Event

    +
    + +

    +This event calls user-defined handlers (if there are any) and passes the following parameters: +

    +
      +
    • id - id of the clicked item;
      +
    • +
    • object - event object.
      +
    • +
    +
            tree.attachEvent("onRightClick", function(id, object){});
    + 
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onselect.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onselect.html new file mode 100755 index 0000000000..2a35db28e3 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onselect.html @@ -0,0 +1,127 @@ + + + + dhtmlxtree:event_onselect [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    +

    + + + +

    onSelect Event

    +
    + +

    +This event calls user-defined handlers (if there are any) and passes the following parameters: + +

    +
      +
    • id - id of the selected item (ids of selected items list in case of multiselection).
      +
    • +
    +
            tree.attachEvent("onSelect", function(id){});
    + 
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onxle.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onxle.html new file mode 100755 index 0000000000..432c89bdab --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onxle.html @@ -0,0 +1,127 @@ + + + + dhtmlxtree:event_onxle [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    onXLE Event

    +
    + +

    +This event calls user-defined handlers (if there are any) and passes the following parameters: +

    +
      +
    • tree - tree object;
      +
    • +
    • id - id of the last parsed item.
      +
    • +
    +
              tree.attachEvent("onXLE", function(tree,id){});
    + 
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onxls.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onxls.html new file mode 100755 index 0000000000..80f3027d5b --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___event_onxls.html @@ -0,0 +1,128 @@ + + + + dhtmlxtree:event_onxls [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    onXLS Event

    +
    + +

    + +This event calls user-defined handlers (if there are any) and passes the following parameters: +

    +
      +
    • tree - tree object;
      +
    • +
    • id - id of the item for which XML is loaded.
      +
    • +
    +
              tree.attachEvent("onXLS", function(tree,id){});
    + 
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___events_handling.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___events_handling.html new file mode 100755 index 0000000000..760f08f648 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___events_handling.html @@ -0,0 +1,238 @@ + + + + dhtmlxtree:events_handling [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +
    +
    Table of Contents
    + +
    + + +

    +

    + +

    + +

    Events Handling

    +
    + +
    +
    +

    Available Events

    +
    + +

    +The following events are available in dhtmlxTree: +

    +
      +
    • Drag-and-Drop Events:
      +
        +
      • onBeforeDrag - occurs when item's dragging starts (the item is selected and the mouse is moving);
        +
      • +
      • onDrag - occurs when the item was dragged and dropped on some other item, but before item's moving is processed;
        +
      • +
      • onDragIn - occurs when the item is dragged over some target the item can be dropped to;
        +
      • +
      • onDrop - occurs when drag-and-drop had already been processed; also occurs when the nodes are moved programmatically;
        +
      • +
      +
    • +
    • Editing Events:
      +
        +
      • onEdit - occurs on 4 different stages of edit process: before starting of editing (can be canceled), after starting of editing, before editor's closing (can be canceled), after editor's closing;
        +
      • +
      • onBeforeCheck - occurs before an item is checked|unchecked;
        +
      • +
      • onCheck - occurs immediately after an item in the tree was checked|unchecked;
        +
      • +
      +
    • +
    • Loading Events:
      +
        +
      • onXLS - occurs when XML parsing starts;
        +
      • +
      • onXLE - occurs when XML parsing is over, new items are already available in the tree;
        +
      • +
      +
    • +
    • Mouse Events:
      +
        +
      • onMouseIn - occurs when the mouse pointer is hovered over an item;
        +
      • +
      • onMouseOut - occurs when the mouse pointer is moved out of item's area;
        +
      • +
      +
    • +
    • Opening Events:
      +
        +
      • onOpenStart - occurs right when an item in the tree starts to open, but before this item opens. This event is also available for “unclosable†nodes and nodes without open|close functionality - in that case result of the function will be ignored;
        +
      • +
      • onOpenEnd - occurs right when an item in the tree has already become open. Event also raised for “unclosable†nodes and nodes without open/close functionality - in that case result of function will be ignored.
        +
      • +
      • onDblClick - occurs right when a tree item was double clicked, but before default onDblClick functionality is processed;
        +
      • +
      • onOpenDynamicEnd - occurs when openItemsDynamic() method loads and opens the required hierarchy of items;
        +
      • +
      +
    • +
    • Right Click Events
      +
        +
      • onRightClick- occurs when the user clicks the right mouse button;
        +
      • +
      +
    • +
    • Selection Events
      +
        +
      • onClick - occurs when the text part of a tree item was clicked, but after default onClick functionality was processed;
        +
      • +
      • onSelect - occurs when the selection in the tree was changed.
        +
      • +
      +
    • +
    + +
    +
    +

    Attaching/Removing Event Handlers

    +
    + +

    +The user can add any user-defined handler to available events. To do this he can use attachEvent() method with the following parameters: +

    +
      +
    • evName - name of the event;
      +
    • +
    • evHandler - user-defined event handler.
      +
    • +
    +
                  tree.attachEvent(evName, evHandler);
    + 
    +

    + +Several handlers can be attached to one and the same event, and all of them will be executed.
    + +Note: the names of the events are case-sensitive. +

    + +

    +There is a simple way of removing an event-handler: + +

    +
              tree.detachEvent(id); // unique id of the event handler
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___increasing_tree_s_performance.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___increasing_tree_s_performance.html new file mode 100755 index 0000000000..ed8ab3a799 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___increasing_tree_s_performance.html @@ -0,0 +1,380 @@ + + + + dhtmlxtree:increasing_tree_s_performance [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + + + + +

    +

    + +

    + +

    Increasing Tree's Performance

    +
    + +

    +The following ways of increasing performance were introduced in dhtmlxTree (when working with huge data sets): +

    +
      +
    • Dynamical Loading;
      +
    • +
    • Smart XML Parsing;
      +
    • +
    • Distributed Parsing;
      +
    • +
    • Smart Rendering.
      +
    • +
    + +
    +
    +

    Dynamical Loading

    +
    + +

    +In case the tree contains large amount of nodes (or the user doesn't want to waste time on loading hidden nodes), it would be better to load them on request, not all at once. The functionality to load tree levels dynamically using XML was introduced for this purpose. Dynamical loading of items from XML stream gives the possibility to create DHTML trees with unlimited number of nodes. +

    + +
    + +

    Activating Dynamical Loading

    +
    + +

    +First, in XML the user should indicate the nodes that will be loaded dynamically this way: add the parameter child=“1†to all nodes that have child items. The items containing this parameter will be objects for dynamical loading. + +

    +
        <?xml version="1.0" encoding="iso-8859-1" ?>
    +        <tree id="0">
    +            <item  text="Surveillance" id="a1" im0="book.gif" … child="1"/>
    +            <item …/>
    +            …
    +        </tree>
    +

    + +The method setXMLAutoLoading() switches the dynamical loading on in the tree: + +

    +
        <script>
    +        tree.setXMLAutoLoading(url);
    +        tree.loadXML(file); // load the first level of the tree
    +    </script>
    +

    + +The above mentioned snippet is useful in case of a tree with large amount of data. The system will first load the data indicated by loadXML() method. The script specified in setXMLAutoLoading() method will be called when the user clicks the tree to expand any of the parent nodes (which child nodes were not loaded). The script will get the id of the node to open, and return the XML with description of the child items. +

    + +

    +It should be noted that when the tree is switched on dynamical loading, script methods work only for those items that are loaded at the moment. +

    + +
    + +

    Setting Auto Loading Behavior

    +
    + +

    +The following method is responsible for specifying the way server side URL is constructed during dynamical loading calls: + +

    +
        <script>
    +        tree.setXMLAutoLoadingBehaviour(mode);
    +    </script>
    +

    + +The following modes variants are available here: +

    +
      +
    • id - some_script?id=[item_id]
      +
    • +
    • name - some_script[item_id]
      +
    • +
    • xmlname - some_script[item_id].xml
      +
    • +
    • function - is used for calling user-defined handler that should be set as the first parameter of setXMLAutoLoading() method.
      +
    • +
    + +
    + +

    Setting Escaping Mode

    +
    + +

    +Mode setEscapingMode() is responsible for setting escaping mode (used for escaping id in requests). This method sets the mode for transferring itree item information to the server: + +

    +
        <script>
    +        tree.setEscapingMode(mode);
    +    </script>
    +

    + +The following modes are available: +

    +
      +
    • default - uses native escape functionality of the browser;
      +
    • +
    • utf8 - is used for UTF escaping;
      +
    • +
    • none - data is not escaped.
      +
    • +
    + +
    +
    +

    Smart XML Parsing

    +
    + +

    +The idea of Smart XML Parsing is simple: the entire tree structure is loaded on the client side, but only nodes that should be displayed are rendered. This helps to decrease loading time +and general performance of large trees greatly. Plus, the entire tree structure is available for most of script methods (for example, searching is performed against all nodes, not only rendered ones). +

    + +
    + +

    Activating Smart XML Parsing

    +
    + +

    +To activate Smart XML Parsing, the user should apply the following method: + +

    +
        <script>
    +        tree.enableSmartXMLParsing(true); // false is used to disable
    +    </script>
    +

    + +Please, pay your attention to the fact that Smart XML Parsing does not work in case of loading fully expanded tree. +

    + +
    + +

    Getting Parsing State

    +
    + +

    +Parsing state can be got using getItemParsingState() method which takes item id as parameter: + +

    +
        <script>
    +        var state = tree.getItemParsingState(itemId);
    +    </script>
    +

    + +The method returns: +

    +
      +
    • 1 - item is already parsed;
      +
    • +
    • 0 - item is not parsed yet;
      +
    • +
    • -1 - item's parsing is in process.
      +
    • +
    + +
    +
    +

    Distributed Parsing

    +
    + +

    +Another way to increase performance of the tree with some levels containing more than 100-200 nodes per level was introduced. This functionality is called Distributed Parsing. The main +advantage of it lies in making the level visible and ready to use before it is completely parsed. Thus, items are loaded portion by portion with some timeouts. +

    + +
    + +

    Activating Distributed Parsing

    +
    + +

    +To enable this functionality, the user should make use of the following JS command: + +

    +
        <script>
    +        tree.enableDistributedParsing(mode,count,delay);
    +    </script>
    +

    + +Parameters of this method are: +

    +
      +
    • mode - true|false meaning enable|disable Distributed Parsing;
      +
    • +
    • count - number of nodes per portion (optional parameter);
      +
    • +
    • delay - delay between portions parsing, set in milliseconds (optional parameter).
      +
    • +
    + +

    +This functionaity is fully compatible with Smart XML Parsing. + +

    + +
    + +

    Getting Parsing State

    +
    + +

    +Current state of Distributed Parsing can be easily got in the following way: + +

    +
        <script>
    +    var state = tree.getDistributedParsingState(); // returns true|false
    +    </script>
    +

    + +This method returns either true (meaning that parsing is still in process) or false (meaning that parsing is already finished). +

    + +
    +
    +

    Smart Rendering

    +
    + +

    +In case the tree contains a lot of items per level (for instance, 500 and more), the user can increase overall performance using Smart Rendering mode. This mode allows loading big, not +well-formed trees. There is no need for any changes in data structure to switch this mode on. It's just enableSmartRendering() method that should be used before loading data in tree: + +

    +
        <script>
    +        tree.enableSmartRendering(true); // false is used to switch the mode off
    +    </script>
    +

    + +The important thing that should be taken into account is that this mode is incompatible with Distributed Parsing and Three-state checkboxes. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___initialization_of_dhtmlxtree.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___initialization_of_dhtmlxtree.html new file mode 100755 index 0000000000..85e35db706 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___initialization_of_dhtmlxtree.html @@ -0,0 +1,593 @@ + + + + dhtmlxtree:initialization_of_dhtmlxtree [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + + + + +

    +

    + +

    + +

    Initialization of dhtmlxTree

    +
    + +

    +dhtmlxTree can be initialized on page using one of the following initialization schemes: +

    +
      +
    • Object-based initialization;
      +
    • +
    • Initialization from HTML.
      +
    • +
    + +

    +Complete the following steps for any type of dhtmlxTree's initialization: +

    +
      +
    • Download the dhtmlxTree package from the server and place it in a folder;
      +
    • +
    • Create an html file;
      +
    • +
    • Place the full paths to dhtmlxTree's CSS and JS files into the header of the created html file.
      +
    • +
    +
        <head>  
    +        <link rel="stylesheet" type="text/css" href="[full path to this file]/dhtmlxtree.css">
    +        <script src="[full path to this file]/dhtmlxcommon.js"></script>
    +        <script src="[full path to this file]/dhtmlxtree.js"></script>   
    +    </head>
    +
    +
    +

    Setting Image Path

    +
    + +

    +Full path to tree's images can be set in dhtmlxTree with the help of method setImagePath(): + +

    +
        <script>
    +        tree.setImagePath("[full path to this category]/codebase/imgs/");
    +    </script>
    +

    + +The above mentioned method should be used after creation of new dhtmlXTreeObject, but before any of data loading methods. +

    + +

    +The following predefined icon sets are available in dhtmlxTree: +

    +
      +
    • default
      +
    • +
    + +

    + +

    +
      +
    • scbrblue
      +
    • +
    + +

    + +

    +
      +
    • yellowbooks
      +
    • +
    + +

    + +

    +
      +
    • bluefolders
      +
    • +
    + +

    + +

    +
      +
    • books
      +
    • +
    + +

    + +

    +
      +
    • vista
      +
    • +
    + +

    + +

    +
      +
    • winstyle
      +
    • +
    + +

    + +

    +
      +
    • bluebooks
      +
    • +
    + +

    + + +

    + +
    +
    +

    Object-Based Initialization

    +
    + +

    +The user needs to create an HTML container where dhtmlxTree will be placed later. In this example the container is a <div> element on page which is placed in the <body> tag: + +

    +
        <div id="treeBox" style="width:200;height:200"></div>
    +

    + +The next step is to create a new dhtmlXTreeObject and place it after the <div> element (container) that we've just created: + +

    +
        <script>
    +        var tree = new dhtmlXTreeObject("treeBox","100%","100%",0);
    +    </script>
    +

    + +Parameters passed to the constructor are the following: +

    +
      +
    • Object to attach the tree to (should be loaded before the constructor is called);
      +
    • +
    • Width of the tree;
      +
    • +
    • Height of the tree;
      +
    • +
    • Identifier of the tree root level (super root).
      +
    • +
    + +
    +
    +

    Initialization from HTML

    +
    + +

    +This type of initialization includes two sub-types: +

    +
      +
    • Initialization from an HTML list;
      +
    • +
    • Initialization from inline XML.
      +
    • +
    + +

    +The user can create the tree based on an HTML list or inline XML. In both casesб the list or XML should be placed into the DIV element that will be act as a container for the tree. XML should also be included into XMP tag. +It should be noted that any of tree methods starting with set or enable can be used as attributes of this DIV element to set/enable different tree properties. +

    + +
    + +

    Conversion

    +
    + +

    + +The following two types of conversion (of HTML data into the tree) are available: +

    +
      +
    • Automatic conversion - presupposes setting dhtmlxTree class for the top div element;
      +
    • +
    • Script conversion - calling dhtmlXTreeFromHTML() command with id of the div element to convert as the first argument.
      +
    • +
    + +
    + +

    Initialization from an HTML list

    +
    + +

    + +This type of initialization presupposes the following actions from user's side: +

    +
      +
    • Add dhtmlxtree_start.js file into the page;
      +
    • +
    • Choose type of conversion to use;
      +
    • +
    • Set some attributes defining tree-specific properties of the top div element:
      +
        +
      • setImagePath - sets path to tree's image files;
        +
      • +
      • id - name of a JS variable referenced to the tree object;
        +
      • +
      +
    • +
    • Use simple HTML list tags.
      +
    • +
    +
        <head>
    +        ...
    +        <script src="[full path to this file]/dhtmlxtree_start.js"></script>
    +    </head>
    + 
    + 
    + 
    +    <div class="dhtmlxTree" // for automatic conversion
    +        id="treeboxbox_tree"
    +        setImagePath="[full path to this category]/imgs/"
    +        style="width:250px; height:218px;overflow:auto;">
    +        <ul>
    +            <li>Root
    +                <ul>
    +                    <li>Child1
    +                <ul>
    +                    <li>Child 1-1</li>
    +                    </ul>
    +                    <li>Child2</li>
    +                    <li><b>Bold</b> <i>Italic</i></li>
    +                </ul>
    +            </li>
    +        </ul>
    +    </div>
    +    <script>
    +        var myTree = dhtmlXTreeFromHTML("treeboxbox_tree"); // for script conversion
    +    </script>
    +
    + +

    Initialization from Inline XML

    +
    + +

    + +Initialization of this kind allows the user to apply standard dhtmlxTree's XML structure enclosed into XMP tag inside the div element (the tree container). +The sequence of actions is as follows: +

    +
      +
    • Add dhtmlxtree_start.js file into the page;
      +
    • +
    • Choose type of conversion to use;
      +
    • +
    • Set some attributes defining tree-specific properties of the top div element:
      +
        +
      • setImagePath - sets path to tree's image files;
        +
      • +
      • id - name of JS variable referenced to ĐµÑ€Ñƒ tree object;
        +
      • +
      +
    • +
    • Apply XML structure in <xmp> tag.
      +
    • +
    +
        <div id="treeboxbox_tree"
    +        setImagePath="[full path to this category]/imgs/"
    +        class="dhtmlxTree"> // for automatic conversion 
    +    <xmp>
    +        <item text="Root" open="1" id="11">
    +            <item text="Child1" select="1" open="1" id="12">
    +                <item text="Child1-1" id="13"/>
    +            </item>
    +            <item text="Child2" id="14"/>
    +            <item id="15" text="Text"/>
    +        </item>
    +    </xmp>
    +    </div>
    +
    +
    +

    Data Loading

    +
    + +

    +The next step of initialization of dhtmlxTree component is Data Loading. The user can choose one of the following data loading possibilities: +

    +
      +
    • XML;
      +
    • +
    • JSON;
      +
    • +
    • CSV;
      +
    • +
    • JS array.
      +
    • +
    + +
    + +

    Data Loading from XML

    +
    + +

    + +loadXML() and loadXMLString() methods load menu data from XML: + +

    +
        <script>
    +        tree.loadXML(file, function); // loading from a file
    +        tree.loadXMLString(xmlString, function); // loading from an XML string
    +    </script>
    +

    + +These methods have the following parameters: +

    +
      +
    • file/xmlString- full path to the XML file/string containing tree data;
      +
    • +
    • function (optional parameter) - function that will be called when data is loaded (if specified).
      +
    • +
    + +

    +It should be noted that when using loadXML() without parameters, the system will load the URL specified in setXMLAutoLoading() method. +

    + +

    +getXMLState() method should be used to get the current state of XML loading: + +

    +
        <script>
    +        var xmlSate = tree.getXMLState(); // returns true if XML is being loaded at the moment
    +    </script>
    +

    + +See here for XML Syntax Template. +

    + +
    + +

    Data Loading from JSON

    +
    + +

    + +To load the tree from JSON, the user needs to have a JSON object or a file and load it using the following methods: + +

    +
        <script>
    +        tree.loadJSONObject(json_object, function); // loading from a script object
    +        tree.loadJSON(file, function); // loading from a file
    +    </script>
    +

    + +Both methods have the following parameters: +

    +
      +
    • json_object/file - object or file containing tree data;
      +
    • +
    • function (optional parameter) - function that will be called when data is loaded (if specified).
      +
    • +
    + +

    +See here for JSON Format Template. +

    + +
    + +

    Data Loading from CSV

    +
    + +

    + +This type of loading tree data presupposes that the user should have CSV represented as a string or a file. There are two methods that can be used in this case: + +

    +
        <script>
    +        tree.loadCSV(file, function); // loading from a file
    +        tree.loadCSVString(csvstring, function); // loading from a string
    +    </script>
    +

    + +Both methods have the following parameters: +

    +
      +
    • file/csvstring - file or string containing tree data;
      +
    • +
    • function (optional parameter) - function that will be called when data is loaded (if specified).
      +
    • +
    + +

    +See here for CSV Format Template. +

    + +
    + +

    Data Loading from JS Array

    +
    + +

    + +The tree can be loaded from a JS Array. The array as an object or as a file should be specified in the following methods: + +

    +
        <script>
    +        tree.loadJSArrayFile(file, function); // loading from a file
    +        tree.loadJSArray(array, function); // loading from an array object
    +    </script>
    +

    + +Both methods have the following parameters: +

    +
      +
    • file/array - file or array object containing tree data;
      +
    • +
    • function (optional parameter) - function that will be called when data is loaded (if specified).
      +
    • +
    + +

    +See here for JS Array Format Template. +

    + +
    +
    +

    Data Transfer Mode

    +
    + +

    +The user can set default data transfer mode in the following way: + +

    +
        <script>
    +        tree.setDataMode(mode);
    +    </script>
    +

    + +The following mode variants are available: +

    +
      +
    • JSON - sets JSON data transfer mode;
      +
    • +
    • XML - sets XML data transfer mode;
      +
    • +
    • CSV - sets CSV data transfer mode.
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___navigation_and_selection_in_tree.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___navigation_and_selection_in_tree.html new file mode 100755 index 0000000000..5763635105 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___navigation_and_selection_in_tree.html @@ -0,0 +1,306 @@ + + + + dhtmlxtree:navigation_and_selection_in_tree [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + + + + +

    +

    + +

    + +

    Navigation and Selection in Tree

    +
    + +
    +
    +

    Navigation Manipulation

    +
    + +
    + +

    Enabling Keyboard Navigation

    +
    + +

    + +There is the possibility to enable keyboard navigation in dhtmlxTree. Using keyboard navigation, the user can select any item in the tree and use the following keys: +

    +
      +
    • Up arrow - selects the item above the currently selected one;
      +
    • +
    • Down arrow - selects the item below the currently selected one;
      +
    • +
    • Right arrow - opens the item;
      +
    • +
    • Left arrow - closes the item;
      +
    • +
    • Enter - calls item's action;
      +
    • +
    • F2 - edits the selected item;
      +
    • +
    • Esc - closes the editor.
      +
    • +
    + +

    +Keyboard navigation in the tree can be enabled/disabled in the following way: + +

    +
        <script>
    +        tree.enableKeyboardNavigation(true|false);
    +    </script>
    +

    + +This method should be called before any of the data loading methods. +

    + +
    + +

    Assigning Navigation Keys

    +
    + +

    + +The user can also set new navigation keys using assignKeys() method: + +

    +
        <script>
    +        tree.assignKeys([["up",104],["down",98],["open",102],["close",100],["call",101]]); // should be called when keyboard navigation is already switched on
    +    </script>
    +

    + +The first parameter is the name of the action, the second one indicates the key code. +

    + +
    +
    +

    Selection Manipulation

    +
    + +
    + +

    Focusing Item

    +
    + +

    + +The method below allows to scroll to the indicated item from script: + +

    +
        <script>
    +        tree.focusItem(itemId);
    +    </script>
    +

    + +In this case the item is not selected/highlighted. +

    + +
    + +

    Selecting Item

    +
    + +

    + +To select an item from script, the user should call the following command: + +

    +
        <script>
    +        tree.selectItem(itemId,mode,preserve);
    +    </script>
    +

    + +The parameters here are as follows: +

    +
      +
    • itemId - item id;
      +
    • +
    • mode(true|false) - if set to true, script function for the selected item will be called;
      +
    • +
    • preserve(true|false) - preserve earlier selected items, it is set to false by default.
      +
    • +
    + +
    + +

    Clearing Selection

    +
    + +

    + +Method clearSelection() removes the selection of the specified item in the tree: + +

    +
        <script>
    +        tree.clearSelection(itemId);
    +    </script>
    +
    + +

    Enabling Multiselection

    +
    + +

    + +Multiselection in the tree allows the user to select multiple items using Ctrl+click. Drag-and-drop is also supported in multiselection mode, as well as Cut and Paste functionality. + +

    +
        <script>
    +        tree.enableMultiselection(mode, strict);
    +    </script>
    +

    + +The parameters are as follows: +

    +
      +
    • mode(true|false) - this parameter is responsible for enabling|disabling multiselection;
      +
    • +
    • strict(true|false) - whether the strict mode is on/off; the strict mode presupposes that only items on the same level can be objects of multiselection.
      +
    • +
    + +
    + +

    Enable Item Highlighting

    +
    + +

    + +There is the possibility to switch on item's highlighting feature - when it is on, item's label will be highlighted when the mouse pointer is over it. This feature is operated like this: + +

    +
        <script>
    +        tree.enableHighlighting(true|false); // is switched off by default
    +    </script>
    +

    + +When this method is set to false, it is switched off, while setting it to true, switches this feature on. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___nodes_manipulation.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___nodes_manipulation.html new file mode 100755 index 0000000000..63cc1b7a1f --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___nodes_manipulation.html @@ -0,0 +1,1420 @@ + + + + dhtmlxtree:nodes_manipulation [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + + + + +

    +

    + +

    + +

    Nodes Manipulation

    +
    + +
    +
    +

    Adding/Removing Items

    +
    + +
    + +

    Adding Parent Item

    +
    + +

    + +Parent tree nodes can be easily added to the tree from script with the help of insertNewNext() method. The following incoming parameters should be indicated in this method: +

    +
      +
    • siblingId - id of the item after which the new one will be created;
      +
    • +
    • itemId - id of the new item;
      +
    • +
    • label - text of the new item;
      +
    • +
    • action - 0 in most cases, but can be a custom function;
      +
    • +
    • imageClosed - image for a collapsed item; if 0 is indicated - the default one is used;
      +
    • +
    • imageOpen - image for an expanded item; if 0 is indicated - the default one is used;
      +
    • +
    • imageLeaf - image for a leaf item; if 0 is indicated - the default one is used;
      +
    • +
    • additional options - a comma delimited string of the following possible values (upper case only):
      +
        +
      • SELECT - move selection to this item after its creation;
        +
      • +
      • CALL - call a function on select;
        +
      • +
      • TOP - add this item to the top position;
        +
      • +
      • CHILD - the node contains child items;
        +
      • +
      • CHECKED - the checkbox is checked (if exists).
        +
      • +
      +
    • +
    +
        <script>
    +        tree.insertNewNext(1,2,"New Node 2",0,0,0,0,"CHILD,CHECKED");
    +    </script>
    +
    + +

    Adding Child Node

    +
    + +

    + +Method insertNewChild() allows to add a new child item for the chosen tree node. The parameters the user should indicate are: +

    +
      +
    • parentId - id of the parent item in which the new child will be created;
      +
    • +
    • itemId - id of the new item;
      +
    • +
    • label - text of the new item;
      +
    • +
    • action - 0 in most cases, but can be a custom function;
      +
    • +
    • imageClosed - image for a collapsed item; if 0 is indicated - the default one is used;
      +
    • +
    • imageOpen - image for an expanded item; if 0 is indicated - the default one is used;
      +
    • +
    • imageLeaf - image for a leaf item; if 0 is indicated - the default one is used;
      +
    • +
    • additional options - a comma delimited string of the following possible values (upper case only):
      +
        +
      • SELECT - move selection to this item after its creation;
        +
      • +
      • CALL - call a function on item's select;
        +
      • +
      • TOP - add this item to the top position;
        +
      • +
      • CHILD - the node contains child items;
        +
      • +
      • CHECKED - the checkbox is checked (if exists).
        +
      • +
      +
    • +
    +
        <script>
    +        tree.insertNewChild(0,1,"New Node 1",0,0,0,0,"SELECT,CALL,TOP,CHILD,CHECKED");
    +    </script>
    +

    + +The item added as a child will be created always the last among other child items for the specified parent. +

    + +
    + +

    Removing Item

    +
    + +

    + +Any item can be easily removed from the tree in the following way: + +

    +
        <script>t
    +        tree.deleteItem(itemId, selectParent);
    +    </script>
    +

    + +The parameters the user should specify are: +

    +
      +
    • itemId - id of the item in question;
      +
    • +
    • selectParent(true|false) - if set to true, the parent item of the removed one becomes selected when the removal is done, while false means that no other item will be selected in the tree after removal of the indicated item.
      +
    • +
    + +
    + +

    Removing All Child Items

    +
    + +

    + +The following method allows the user to remove all child items of a certain node very easily: + +

    +
        <script>
    +        tree.deleteChildItems(itemId);
    +    </script>
    +
    +
    +

    Collapsing/Expanding Items

    +
    + +
    + +

    Expanding Parent Item on Child Adding

    +
    + +

    + +There is a possibility in dhtmlxTree to set whether a parent item will be expanded or not when a child item is added to it. + +

    +
        <script>
    +        tree.openOnItemAdded(mode);
    +    </script>
    +

    + +The method can be set either to true (the parent item will be expanded on child adding) or to false (the parent item won't be expanded). +

    + +
    + +

    Collapsing/Expanding Item

    +
    + +

    + +There is the possibility to expand/collapse any node in dhtmlxTree from script. The only value that the user should indicate, is the id of the item in question: + +

    +
        <script>
    +        tree.openItem(itemId); // expand the indicated item
    +        tree.closeItem(itemId); // collapse the indicated item
    +    </script>
    +
    + +

    Collapsing/Expanding All Items

    +
    + +

    + +The user can also expand/collapse all items in the tree. The optional parameter here is the id of the item starting from which all items will be expanded/collapsed: + +

    +
        <script>
    +        tree.openAllItems(itemId); // expand all items
    +        tree.closeAllItems(itemId); // collapse all items
    +    </script>
    +

    + +The method to expand all tree items that is similar to the above mentioned one but that works in dynamical trees: + +

    +
        <script>
    +        tree.openAllItemsDynamic(itemId); // expands all items in a dynamical tree
    +    </script>
    +
    + +

    Expanding Item's List

    +
    + +

    + +The method to expand a list of tree items in dynamical tree (items are expanded one by one, the next item will be opened only when the previous one is loaded): + +

    +
        <script>
    +        tree.openItemsDynamic(list,flag);
    +    </script>
    +

    + +The parameters are: +

    +
      +
    • list - list of nodes ids that will be expanded;
      +
    • +
    • flag (true|false) - indicates whether the last node in the list will be selected (true) or not (false).
      +
    • +
    + +
    + +

    Prevent Item from Collapsing

    +
    + +

    + +There is a method that can prevent the item from collapsing: + +

    +
        <script>
    +        tree.setItemCloseable(itemId,flag);
    +    </script>
    +

    + +The parameters here are as follows: +

    +
      +
    • itemId - id of the node;
      +
    • +
    • flag(true|false) - if set to false, prevents the item from collapsing.
      +
    • +
    + +
    + +

    Getting Item State

    +
    + +

    + +Item's state (expanded|collapsed) can be got in the following way: + +

    +
        <script>
    +         var state = tree.getOpenState(itemId);
    +    </script>
    +

    + +The method returns true if the item in question is expanded, and false if the item is collapsed. +

    + +
    + +

    Locking Tree/Item

    +
    + +

    + +By locking the tree, the user denies expanding|collapsing tree nodes. By default the tree isn't locked (false). To lock the tree, lockTree() method should be set to true: + +

    +
        <script>
    +        tree.lockTree(true); // false to unlock the tree
    +    </script>
    +

    + +Any item, whether it is a parent or a child one, can be also locked by method lockItem(): + +

    +
        <script>
    +        tree.lockItem(itemId); // id of the item as the input parameter
    +    </script>
    +
    + +

    Getting Locking State

    +
    + +

    + +To get the state (locked|unlocked) of any item in the tree, the user should apply the following method: + +

    +
        <script>
    +        var itemState = tree.isLocked(itemId); // returns current item's state
    +    </script>
    +

    + +If the item in question is locked, the method returns true, if it is unlocked, false is returned. + +

    + +
    +
    +

    Editing Item

    +
    + +
    + +

    Making Items Editable

    +
    + +

    + +Any item in the tree can be made editable - double click on the item allows to edit its title text. By default all items in the tree are not editable (false). To make them so, the user should write the following code line: + +

    +
        <script>
    +        tree.enableItemEditor(true); // false to deny items editing
    +    </script>
    +
    + +

    Activating Editor for Item

    +
    + +

    + +The user can activate the editor for a specified item from script with the help of method editItem(). The only parameter that should be specified is id of this item: + +

    +
        <script>
    +        tree.editItem(itemId);
    +    </script>
    +
    + +

    Deactivating Editor for Item

    +
    + +

    + +Item's editor can be easily deactivated from script bringing the item back to its normal view: + +

    +
        <script>
    +        tree.stopEdit();
    +    </script>
    +
    + +

    Defining Editing Event

    +
    + +

    +The event that starts item's editing can be defined from script in the following way: + +

    +
        <script>
    +        tree.setEditStartAction(click, dblclick);
    +    </script>
    +

    + +The parameters define the following: +

    +
      +
    • click(true|false) - item's editing will be activated by a click on the selected item;
      +
    • +
    • dblclick(true|false) - item's editing will be activated by a double click on the selected item.
      +
    • +
    + +
    +
    +

    Integration with Cookies

    +
    + +
    + +

    Saving Items' States to Cookies

    +
    + +

    + +The user has the possibility to store states of items to cookies in the following way: + +

    +
        <script>
    +        tree.saveOpenStates(cookie_name,cookie_param);
    +    </script>
    +

    + +The parameters of this method are: +

    +
      +
    • cookie_name - name of the cookie (optional parameter);
      +
    • +
    • cookie_param - additional parameters added to cookie.
      +
    • +
    + +
    + +

    Restoring Items' States from Cookies

    +
    + +

    + +There is a method that restores items' states (expanded|collapsed) from cookie's information: + +

    +
        <script>
    +        tree.loadOpenStates(cookie_name); // the parameter is optional
    +    </script>
    +
    + +

    Saving Selection to Cookies

    +
    + +

    + +Item's selection can be also stored in cookies in the following way: + +

    +
        <script>
    +        tree.saveSelectedItem(cookie_name,cookie_param);
    +    </script>
    +

    + +The parameters of this method are: +

    +
      +
    • cookie_name - name of the cookie (optional parameter);
      +
    • +
    • cookie_param - additional parameters added to cookie.
      +
    • +
    + +
    + +

    Restoring Selection from Cookies

    +
    + +

    + +Item's selection can be restored from cookie in the following way: + +

    +
        <script>
    +        tree.restoreSelectedItem(cookie_name); // the parameter is optional
    +    </script>
    +
    + +

    Saving Tree to Cookies

    +
    + +

    + +Method saveState() stores the whole tree to cookies: + +

    +
        <script>
    +        tree.saveState(cookie_name,cookie_param);
    +    </script>
    +

    + +The parameters of this method are: +

    +
      +
    • cookie_name - name of the cookie (optional parameter);
      +
    • +
    • cookie_param - additional parameters added to cookie
      +
    • +
    + +
    + +

    Restoring Tree from Cookies

    +
    + +

    + +Method loadState() restores the whole tree from cookies: + +

    +
        <script>
    +        tree.loadState(cookie_name); // the parameter is optional
    +    </script>
    +
    + +

    Enabling Item's Auto Saving

    +
    + +

    + +dhtmlxTree allows its users to save the selected node automatically in cookies. Method enableAutoSavingSelected() is used to switch this on|off in the tree: + +

    +
        <script>
    +        tree.enableAutoSavingSelected(mode,cookieName);
    +    </script>
    +

    + +The parameters are: +

    +
      +
    • mode(true|false) - indicates whether the auto saving is on|off;
      +
    • +
    • cookieName - name of the cookie.
      +
    • +
    + +
    +
    +

    Item Text, Tooltip, Color Manipulation

    +
    + +
    + +

    Setting Item's Label

    +
    + +

    + +The user can set the label (text) of a tree node in the following way: + +

    +
        <script>
    +        tree.setItemText(itemId, newLabel, newTooltip);
    +    </script>
    +

    + +The parameters are as follows: +

    +
      +
    • itemId - id of the item in question;
      +
    • +
    • newLabel - new text for item's label;
      +
    • +
    • newTooltip - the text indicated in this parameter will be used as item's tooltip text (optional parameter).
      +
    • +
    + +
    + +

    Getting Item's Label

    +
    + +

    + +The user has the possibility to get text of item's label indicating item's id in the following way: + +

    +
        <script>
    +        var text = tree.getItemText(itemId);
    +    </script>
    +

    + +The user can also get the text of the currently selected item in the following way: + +

    +
        <script>
    +        var textSelected = tree.getSelectedItemText();
    +    </script>
    +
    + +

    Setting Item's Color

    +
    + +

    + +The following line of code is responsible for node's color (text color) in the tree: + +

    +
        <script>
    +        tree.setItemColor(itemId, defaultColor, selectedColor);
    +    </script>
    +

    + +The parameters the user should specify are as follows: +

    +
      +
    • itemId - id of the item in question;
      +
    • +
    • defaultColor - item's color;
      +
    • +
    • selectedColor - item's color for a selected state.
      +
    • +
    + +
    + +

    Getting Item's Color

    +
    + +

    + +Item's color can be easily got by item id in the following way: + +

    +
        <script>
    +        car color = tree.getItemColor(itemId);
    +    </script>
    +

    + +The object returned by the above mentioned method has parameters { acolor:“valueâ€, scolor:“value†} where: +

    +
      +
    • acolor - means color for the normal state of the item;
      +
    • +
    • scolor - means color for the selected state of the item.
      +
    • +
    + +

    +The format of the color will be the same as it was set in setItemColor() method. +

    + +
    + +

    Setting Item's Tooltip

    +
    + +

    + +There are three ways to set tooltip for an item in dhtmlxTree: +

    +
      +
    • Using node's text (“label†attribute of a node) as tooltip. In this case the following method should be used:
      +
    • +
    +
        <script>
    +        tree.enableAutoTooltips(true|false); // false by default
    +    </script>
      +
    • Using “tooltip†attribute of a node in XML (it is used by default if this attribute was specified);
      +
    • +
    • Using setItemText method specifying its third parameter.
      +
    • +
    + +
    + +

    Getting Item's Tooltip

    +
    + +

    + +Item's tooltip is also easy to get with the help of getItemTooltip() method indicating item id: + +

    +
        <script>
    +        var tooltip = tree.getItemTooltip(itemId);
    +    <script>
    +
    +
    +

    Refreshing and Updating Items

    +
    + +
    + +

    Refreshing Item/Items

    +
    + +

    + +The following method is used to refresh data for the specified node: + +

    +
        <script>
    +        tree.refreshItem(itemId); // if item id is not indicated, id of the top tree item will be used
    +    </script>
    +

    + +The code string mentioned above presupposes that all the child items of the indicated node are removed, an XML file (indicated in setXMLAutoLoading(); auto loading should be activated) is loaded from the server. The data from this file is used for creating new child items of the node in question. +

    + +

    +The following method is used to refresh data for several nodes: + +

    +
        <script>
    +        tree.refreshItems(itemIdList, source);
    +    </script>
    +

    + +The parameters of this method include the list of items that should be refreshed, and the path to the XML file from which new data will be loaded. +In this case, the data is refreshed only for nodes indicated in itemIdList (not their children). +

    + +
    + +

    Smart Branch Refreshing

    +
    + +

    + +There is one more possibility to refresh tree data. smartRefreshBranch() method is able to load XML from the server and refresh data for the specified branch (text, icons, items). It should be noted that the current position and all changes introduced by the user stay the same in this case. + +

    +
        <script>
    +        tree.smartRefreshBranch(itemId,source);
    +    </script>
    +

    + +The parameters here are responsible for: +

    +
      +
    • itemId - id of the item from which the refreshing starts in the branch;
      +
    • +
    • source - server side script, optional parameter. If it is not set, the system will use the source indicated in setXMLAutoLoading().
      +
    • +
    + +
    + +

    Smart Item Refreshing

    +
    + +

    + +Method smartRefreshItem() is responsible for loading XML which data is used for refreshing the specified item in the tree. As with the previous method, this one keeps the current position of the item and all other changes introduced by the user. + +

    +
        <script>
    +        tree.smartRefreshItem(itemId,source);
    +    </script>
    +

    + +The parameters are as follows: +

    +
      +
    • itemId - id of the item in question;
      +
    • +
    • source - server side script, optional parameter. If it is not set, the system will use the source indicated in setXMLAutoLoading().
      +
    • +
    + +
    + +

    Updating Item

    +
    + +

    + +There is a simple way of updating items in dhmlxTree - updateItem() method. The used should indicate the id of the item that is going to be updated, and parameters that are going to be updated: + +

    +
        <script>
    +        tree.updateItem(itemId,name,im0,im1,im2,achecked);
    +    </script>
    +

    + +The parameters of this method are as follows: +

    +
      +
    • itemId - id of the item in question;
      +
    • +
    • name - title text of the item;
      +
    • +
    • im0 - the icon for a leaf node;
      +
    • +
    • im1 - the icon for an expanded parent node;
      +
    • +
    • im2 - the icon for a collapsed parent node;
      +
    • +
    • achecked(true|false) - whether the checkbox is checked (true) or not (false).
      +
    • +
    + +
    +
    +

    Items Ids Manipulation

    +
    + +
    + +

    Getting List of Parent Items Ids

    +
    + +

    + +The following methods allow the user to get ids of all parent tree nodes: + +

    +
        <script>
    +        var parents = tree.getAllItemsWithKids(); // returns the array of nodes ids
    +    </script>
    +
    + +

    Getting List of Leaf Items Ids

    +
    + +

    + +The user can get the list of ids of all tree items that do not have child nodes (childless items): + +

    +
        <script>
    +        var childless = tree.getAllChildless(); // returns the array of nodes ids
    +    </script>
    +
    + +

    Getting List of Sub-Items Ids

    +
    + +

    + +The user can easily get ids of all sub-items starting from the item which id is indicated in this method: + +

    +
        <script>
    +        var subItems = tree.getAllSubItems(itemId);
    +    </script>
    +

    + +Getting the list of all sub-items ids for the specified item is quite easy. This parent item id should be specified: + +

    +
        <script>
    +        tree.getSubItems(itemId);
    +    </script>
    +
    + +

    Changing Item Id

    +
    + +

    + +The user can change any node's id if there's such a need in the following way: + +

    +
        <script>
    +        tree.changeItemId(itemCurrentId,itemNewId);
    +    </script>
    +
    + +

    Getting Child Item Id

    +
    + +

    + +The user can get any child item id by its index (sequence number) and the id of its parent: + +

    +
        <script>
    +        var childId = tree.getItemIdByIndex(itemId,index);
    +    </script>
    +

    + +The parameters are: +

    +
      +
    • itemId - id of the parent item;
      +
    • +
    • index - sequence number of the child item (starting with 0).
      +
    • +
    + +
    + +

    Getting Child Item Index

    +
    + +

    + +Child item's index (sequence number) can be easily got by its id: + +

    +
        <script>
    +        var childIndex = tree.getIndexById(itemId);
    +    </script>
    +

    + +The parameter is id of the child item which index the user wants to get. +

    + +
    + +

    Getting Item's Parent Id

    +
    + +

    + +getParentId() method can be used to get item's parent id: + +

    +
        <script>
    +        var parent = tree.getParentId(itemId);
    +    </script>
    +

    + +The id of the item should be indicated as the parameter. +

    + +
    + +

    Getting Ids List of Checked/Unchecked Tree Items

    +
    + +

    + +The ids of all checked/unchecked items in the tree can be easily got by getAllChecked() method: + +

    +
        <script>
    +        var list = tree.getAllChecked(); // returns the array of all checked items ids
    +            // or
    +        var list = tree.getAllUnchecked(); // returns the array of all unchecked items ids
    +    </script>
    +
    + +

    Getting Ids List of Partially Checked Items

    +
    + +

    + +The method, similar to the above mentioned ones, exists for getting the ids of all partially checked items in the tree: + +

    +
        <script>
    +        var list = tree.getAllPartiallyChecked(); // returns the array of all checked items ids
    +    </script>
    +
    + +

    Getting Ids List of Checked Branches

    +
    + +

    + +Ids of all checked branches in the tree can be got like this: + +

    +
        <script>
    +        var list = tree.getAllCheckedBranches(); // returns the array of all checked branches ids
    +    </script>
    +
    + +

    0 Getting Selected Item Id

    +
    + +

    + +Selected item's id is easy to get through getSelectedItemId() method which takes item id as the parameter: + +

    +
        <script>
    +        var selectId = tree.getSelectedItemId();
    +    </script>
    +
    + +

    1 Setting List Separator

    +
    + +

    + +There is a simple way of setting list separator in dhtmlxTree: + +

    +
        <script>
    +        tree.setListDelimeter(separator); // by default the separator is ","
    +    </script>
    +

    + +There is only one parameter here - separator - char or string used for separating items in lists. + +

    + +
    +
    +

    Items Position Manipulation

    +
    + +
    + +

    Moving Items

    +
    + +

    + +Any item in the tree can be moved with the help of moveItem() method. + +

    +
        <script>
    +        tree.moveItem(itemId, mode, targetId, targetTree);
    +    </script>
    +

    + +The following parameters should be specified for this method: +

    +
      +
    • itemId - id of the item in question;
      +
    • +
    • mode - one of the moving modes available:
      +
        +
      • left - the item will be moved to the left of node's current position;
        +
      • +
      • up - the item will be moved one level up in the hierarchy;
        +
      • +
      • up_strict - the item will be moved one position up, but will remain in the same level of the hierarchy;
        +
      • +
      • down - the item will be moved one level down in the hierarchy;
        +
      • +
      • down_strict - the item will be moved one position down, but will remain in the same level of the hierarchy;
        +
      • +
      • item_child - the item will be made child of the target item;
        +
      • +
      • item_sibling - the item will be made sibling of the target item, and will be placed before the target item;
        +
      • +
      • item_sibling_next - the item will be made sibling of the target item, and will be placed after the target item;
        +
      • +
      +
    • +
    • targetId - id of the item relative to which the item in question will be moved;
      +
    • +
    • targetTree (optonal) - the object of some other tree the item in question is moved into.
      +
    • +
    + +
    + +

    Cutting/Pasting Items

    +
    + +

    + +One more way of nodes moving is through doCut() and doPaste() commands. But they work only with selected items: + +

    +
        <script>
    +        tree.doCut(); // marks the selected item as cut
    +        tree.doPaste(itemId); // id of a new parent node
    +    </script>
    +

    + +The cut item will be made a child node of the item indicated in the method doPaste(). +

    + +
    + +

    Clearing Cut Mark

    +
    + +

    + +To clear the mark made by doCut() method, the user is advised to use clearCut() one: + +

    +
        <script>
    +        tree.clearCut();
    +    </script>
    +
    + +

    Getting Item's Level

    +
    + +

    + +There is a method in dhtmlxTree that allows the user to get item's current level (position in hierarchy) indicating this item's id: + +

    +
        <script>
    +        var level = getLevel(itemId);
    +    </script>
    +
    + +

    Setting Item Top Offset

    +
    + +

    + +There is the possibility to set top offset for a tree item using the following method: + +

    +
        <script>
    +        tree.setItemTopOffset(itemId,value);
    +    </script>
    +

    + +The parameters are: +

    +
      +
    • itemId - id of the item in question;
      +
    • +
    • value - offset value.
      +
    • +
    + +
    +
    +

    Calculating Items

    +
    + +
    + +

    Setting Calculation Mode

    +
    + +

    + +The user can set calculation mode for the tree in the following way: + +

    +
        <script>
    +        tree.setChildCalcMode(mode); // disabled by default
    +    </script>
    +

    + +There are the following mode variants available: +

    +
      +
    • child - direct child items, no recursive;
      +
    • +
    • leafs - direct child items without sub-items, no recursive;
      +
    • +
    • childrec - child items (leaf items and those with their own child items), recursive;
      +
    • +
    • leafsrec - child items without sub-items, recursive;
      +
    • +
    • disabled - disable this mode.
      +
    • +
    + +

    +All tree child nodes will be calculated in this mode. +

    + +
    + +

    Setting Calculation HTML

    +
    + +

    + +Along with setting the calculation mode for child items, the user can specify calculation HTML like this: + +

    +
        <script>
    +        tree.setChildCalcHTML(htmlA,htmlB);
    +    </script>
    +

    + +The parameters here are: +

    +
      +
    • htmlA - prefix of the calculator (â€[†by default);
      +
    • +
    • htmlB - postfix of the calculator (â€]†by default).
      +
    • +
    + +
    + +

    Getting Number of Child Items

    +
    + +

    + +The number of child items of a certain parent can be got in the following way: + +

    +
        <script>
    +        var childItems = tree.hasChildren(itemId);
    +    </script>
    +
    +
    +

    User Data Manipulation

    +
    + +
    + +

    Setting User Data

    +
    + +

    +User data can be set for any tree item in dhtmlxTree: + +

    +
        <script>
    +        tree.setUserData(itemId,name,value);
    +    </script>
    +

    + +The parameters of this method are: +

    +
      +
    • iteId - id of the item in question;
      +
    • +
    • name - name of user data;
      +
    • +
    • value - value of user data.
      +
    • +
    + +
    + +

    Getting User Data

    +
    + +

    + +User data set for a tree node can be got in the following way: + +

    +
        <script>
    +        var userData = tree.getUserData(itemId,name);
    +    </script>
    +

    + +The parameters of this method are: +

    +
      +
    • iteId - id of the item in question;
      +
    • +
    • name - name of user data.
      +
    • +
    + +
    +
    +

    Using Link-Like Functionality in Tree

    +
    + +

    +Any node if the tree can have link-like functionality specified for it. The link for an item can be set by user in XML. The user should also specify onClick event for the item with link-like functionality. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___radio_buttons_manipulation.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___radio_buttons_manipulation.html new file mode 100755 index 0000000000..750f8f6888 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___radio_buttons_manipulation.html @@ -0,0 +1,180 @@ + + + + dhtmlxtree:radio_buttons_manipulation [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Radio Buttons Manipulation

    +
    + +
    +
    +

    Enabling/Disabling Radio Buttons

    +
    + +
    + +

    Enabling/Disabling Radio Buttons for Tree

    +
    + +

    + +dhtmlxTree supports radio buttons. To turn them on for the whole tree, the user should call the following method: + +

    +
        <script>
    +        tree.enableRadiobuttons(true); // false - disables radio buttons for the whole tree
    +    </script>
    +

    + +This method should be called before data loading in the tree takes place. +

    + +
    + +

    Enabling/Disabling Radio Buttons for Items

    +
    + +

    + +There is the possibility to enable radio buttons for child items of a certain node in the tree. In this case, the checkboxes of these child items will be replaced by radio buttons: + +

    +
        <script>
    +        tree.enableCheckboxes(true); //enable checkboxes
    +        tree.enableRadiobuttons(true, itemId);  // enable radio buttons for child items of a certain node; false to disable
    +    </script>
    +
    + +

    Enabling/Disabling Single Radio Mode

    +
    + +

    + +Method enableSingleRadioMode() changes radio buttons logic in the way that there can be only one checked radio button in the whole tree. To switch this mode on, the user should write the following code line: + +

    +
        <script>
    +        tree.enableSingleRadioMode(mode, itemId);
    +    </script>
    +

    + +The parameters are: +

    +
      +
    • mode(true|false) - whether single radio mode is enabled/disabled;
      +
    • +
    • itemId - id of the item that will be checked.
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___searching_and_sorting_in_tree.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___searching_and_sorting_in_tree.html new file mode 100755 index 0000000000..bee91ebb92 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___searching_and_sorting_in_tree.html @@ -0,0 +1,252 @@ + + + + dhtmlxtree:searching_and_sorting_in_tree [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +
    +
    Table of Contents
    + +
    + + +

    +

    + +

    + +

    Searching and Sorting in Tree

    +
    + +
    +
    +

    Searching in Tree

    +
    + +
    + +

    Enabling Auto Search

    +
    + +

    +First, the meaning of auto search should be explained. When auto selected is switched on, the user can just select any item in the tree and start typing. The tree item, which name +is the closes to the typed one, will be selected. Restarting search is done by using the backspace button. +Auto search can be enabled only after enabling keyboard navigation: + +

    +
        <script>
    +        tree.enableKeyboardNavigation(true);
    +        tree.enableKeySearch(true); // false to disable
    +    </script>
    +

    + +This method should be called before any of the data loading methods. +

    + +
    + +

    Searching Tree

    +
    + +

    +The tree can be searched from script with the help of methods findItem() and findItemIdByLabel(). The methods differ in one thing: whether the searched item will be selected and focused when found or not: + +

    +
        <script>
    +        tree.findItem(searchStr, direction, top); // the item will be selected and focused when found
    +            // or
    +        tree.findItemIdByLabel(searchStr, direction, top); // the item will not be selected and focused when found
    +    </script>
    +

    + +The parameters of both these methods are: +

    +
      +
    • searchStr - the search query;
      +
    • +
    • direction(false|true) - direction of the search, from the top to the bottom (false), and vice versa (true);
      +
    • +
    • top(true|false) - start searching from the top (true) or start searching from the currently selected item (false).
      +
    • +
    + +
    +
    +

    Sorting in Tree

    +
    + +
    + +

    Sorting Tree

    +
    + +

    +dhtmlxTree allows its users to sort the tree in ASC or DES orders: + +

    +
        <script>
    +        tree.sortTree(itemId, oder, all_levels);
    +    </script>
    +

    + +The user should indicate the following parameters: +

    +
      +
    • itemId - id of the node sorting starts from;
      +
    • +
    • oder(ASC|DES) - sorting order;
      +
    • +
    • all_levels(true|false) - sorting the tree by all levels (true), or by current level.
      +
    • +
    + +
    + +

    Custom Defined Sorting

    +
    + +

    +The user can set custom sort function. The function should have two parameters - id_of_item1,id_of_item2. For example: + +

    +
        <script>
    +            //define the comparator (in our case it compares the second words in labels)
    +        function mySortFunc(idA,idB){
    +            a=(tree.getItemText(idA)).split(" ")[1]||"";
    +            b=(tree.getItemText(idB)).split(" ")[1]||"";
    +            return ((a&amp;gt;b)?1:-1);
    +        }
    +    </script>
    +

    + +Then setCustomSortFunction() method should be called taking the name of the function as the incoming parameter: + +

    +
        <script>
    +            //attach the comparator to the tree
    +        tree.setCustomSortFunction(mySortFunc);
    +    </script>
    +

    + +It should be noted that if custom comparator is specified, sortTree() method will use it for sorting. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___serialization_caching_and_removing_tree.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___serialization_caching_and_removing_tree.html new file mode 100755 index 0000000000..6d3fe73669 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___serialization_caching_and_removing_tree.html @@ -0,0 +1,241 @@ + + + + dhtmlxtree:serialization_caching_and_removing_tree [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + + + + +

    +

    + +

    + +

    Serialization, Caching and Removing Tree

    +
    + +
    +
    +

    Serializing Tree

    +
    + +

    +The user can get an XML representation (as a string) of the tree using method serializeTree(): + +

    +
        <script>
    +        tree.serializeTree();
    +    </script>
    +

    + +Also there is the possibility to return the tree as a JSON string like this: + +

    +
        <script>
    +        tree.serializeTreeToJSON();
    +    </script>
    +
    +
    +

    Setting Serialization Level

    +
    + +

    +XML serialization can be easily configured in the following way: + +

    +
        <script>
    +        tree.setSerializationLevel(userData,fullXML,escapeEntities,userDataAsCData,DTD);
    +    </script>
    +

    + +The parameters are as follows: +

    +
      +
    • userData - enable/disable user data serialization;
      +
    • +
    • fullXML - enable/disable full XML serialization;
      +
    • +
    • escapeEntities - convert tag brackets to related html entities;
      +
    • +
    • userDataAsCData - output user data in CDATA sections;
      +
    • +
    • DTD - if specified, then set as XML's DTD.
      +
    • +
    + +
    +
    +

    Preventing Caching in IE

    +
    + +

    +The user can prevent caching in IE by adding random value to URL string with the help of method preventIECaching(): + +

    +
        <script>
    +        tree.preventIECaching(true|false); // false by default
    +    </script>
    +
    +
    +

    Registering XML Entity

    +
    + +

    +There is the possibility in dhtmlxTree to register an XML entity for replacement of special symbols while initialization of the tree (default ones are: ampersand, “less then†and “greater then†symbols): + +

    +
     
    +      <script>
    +          tree.registerXMLEntity(rChar,rEntity);
    +      </script>
    + 
    + 
    +

    + +The parameters are the following: +

    +
      +
    • rChar - source char;
      +
    • +
    • rEntity - target entity.
      +
    • +
    + +
    +
    +

    Removing Tree

    +
    + +

    +There is a simple method that allows the user to remove the tree completely and to clear memory: + +

    +
        <script>
    +        tree.destructor();
    +    </script>
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___setting_tree_appearance.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___setting_tree_appearance.html new file mode 100755 index 0000000000..97f30c8acb --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___setting_tree_appearance.html @@ -0,0 +1,676 @@ + + + + dhtmlxtree:setting_tree_appearance [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + + + + +

    +

    + +

    + +

    Setting Tree Appearance

    +
    + +
    +
    +

    Tree Lines and Icons Manipulation

    +
    + +
    + +

    Enabling/Disabling Tree Lines

    +
    + +

    +Tree lines are tiny lines that visually “connect†elements of the tree. These lines can be enabled|disabled from script easily: + +

    +
        <script>
    +        tree.enableTreeLines(true|false); // true by default
    +    </script>
    +
    + +

    Setting +/- Icons

    +
    + +

    + +â€+†and â€-†icons indicate whether a parent node is closed or opened. setImageArrays() is used to set these images: + +

    +
        <script>
    +        tree.setImageArrays(arrayName,image1,image2,image3,image4,image5);
    +    </script>
    +

    + +The parameters for this method are as follows: +

    +
      +
    • arrayName - name of array: plus, minus;
      +
    • +
    • image1 - line crossed image (+);
      +
    • +
    • image2 - image with top line (Đ³);
      +
    • +
    • image3 - image with bottom line (L);
      +
    • +
    • image4 - image without line ( );
      +
    • +
    • image5 - single root image (-).
      +
    • +
    + +
    + +

    Showing/Hiding +/- Icons

    +
    + +

    + +There is a simple way of showing/hiding +/- signs of a certain item: + +

    +
        <script>
    +        tree.showItemSign(itemId,mode);
    +    </script>
    +

    + +The following parameters should be indicated: +

    +
      +
    • itemId - id of the item which +/- icon will be shown/hidden;
      +
    • +
    • mode(true|false) - true stands for showing the icon, false means hiding it.
      +
    • +
    + +

    +This method works only for individual items, not for the entire tree. +

    + +
    + +

    Specifying Icons for Locked Items

    +
    + +

    + +If the user wants to specify the icons for locked state of tree items, they should be indicated before any of the data loading methods: + +

    +
        <script>
    +        ...
    +        tree.setLockedIcons("lock.gif","lock.gif","lock.gif");
    +        tree.loadXML("tree.xml")
    +    </script>
    +

    + +The parameters of setLockedIcons() method indicate paths to the icons that will be used for locked nodes: +

    +
      +
    • m0 - icon for a locked leaf;
      +
    • +
    • im1 - icon for a closed branch;
      +
    • +
    • im2 - icon for an opened branch.
      +
    • +
    + +
    +
    +

    Tree Images Manipulation

    +
    + +
    + +

    Setting Images for Items

    +
    + +

    + +It should be noted that the tree will get images for its nodes from the path the user specified in setImagePath() method. +

    + +

    +But there are also other ways available for setting custom images for nodes in the tree. The difference between these two methods lies in the way the user adds item to the tree: +

    +
      +
    • JavaScript way - using arguments of insertNewChild() or insertNewNext() methods:
      +
    • +
    +
        <script>
    +        var im0 = "doc.gif"; // the icon for a leaf node
    +        var im1 = "opened.gif"; // the icon for an expanded parent node
    +        var im2 = "closed.gif"; // the icon for a collapsed parent node
    + 
    + 
    + 
    +        tree.insertNewItem(0,1,"New Node 1",0,im0,im1,im2);
    +        tree.insertNewNext(1,2,"New Node 2",0,"txt.gif","opened.gif","closed.gif");
    +    </script>
      +
    • JavaScript way - using setItemImage() and setItemImage2() methods:
      +
    • +
    + +

    +The first method for setting an image for an item should be written this way: + +

    +
        <script>
    +        tree.setItemImage(itemId,image1,image2);
    +    </script>
    +

    + +The parameters are as follows: +

    +
      +
    • itemId - id of the item in question;
      +
    • +
    • image1 - image for the leaf item or image for the collapsed parent item (if the third parameter is indicated);
      +
    • +
    • image2 - image for the expanded parent item.
      +
    • +
    + +

    +The second setting image method is the following: + +

    +
        <script>
    +        tree.setItemImage2(itemId,image1,image2, image3);
    +    </script>
    +

    + +The parameters are as follows: +

    +
      +
    • itemId - id of the item in question;
      +
    • +
    • image1 - image for the leaf item;
      +
    • +
    • image2 - image for the collapsed parent item;
      +
    • +
    • image3 - image for the expanded parent item.
      +
    • +
    +
      +
    • XML way - using parameters of <item> tag:
      +
    • +
    +
        <?xml version='1.0' encoding='iso-8859-1'>
    +        <tree id="0">
    +            <item text="My Computer" id="1" child="1" im0="doc.gif" im1="my_opened.gif" im2="my_closed.gif">
    +        </tree>
    +

    + +See XML Format Template. +

    + +
    + +

    Getting Item's Image

    +
    + +

    + +Item's image can be got with the help of getItemImage() method: + +

    +
        <script>
    +        var image = tree.getItemImage(itemId,imageInd,fullPath);
    +    </script>
    +

    + +In order to get items image, the user should indicate: +

    +
      +
    • itemId - id of the item which image should be got;
      +
    • +
    • imageInd - index of the image (0 - leaf image, 1 - closed parent node image, 2 - open parent node image);
      +
    • +
    • fullPath (true|false) - indicates whether the method returns full path to the image (true), or just name of the image file (false).
      +
    • +
    + +
    + +

    Enabling Tree Images

    +
    + +

    + +Images are enabled in dhtmlxTree by default. To disable images, the user should call the following method: + +

    +
        <script>
    +        tree.enableTreeImages(false); // true to enable
    +    </script>
    +
    + +

    Setting Default Item's Images

    +
    + +

    + +There is a simple way of setting default item's images in dhtmlxTree: + +

    +
        <script>
    +        tree.setStdImages(image1,image2,image3);
    +    </script>
    +

    + +This method should be called before XML loading takes place. It is useful when a lot of similar images are going to be used in the tree, it is better to use this method once rather than specify these images every time for every item. +

    + +

    +The parameters that the user should specify are the following: +

    +
      +
    • image1 - image for a leaf node;
      +
    • +
    • image2 - image for a closed parent node;
      +
    • +
    • image3 - image for an opened parent node.
      +
    • +
    + +
    + +

    Changing Icon Sets

    +
    + +

    + +dhtmlxTree is a highly customizable component. You can use different icon sets for trees simply by changing image path: + +

    +
        <script>
    +        tree.setImagePath("[full path to this folder]/codebase/images/"); // the default icons set
    +            // or
    +        tree.setImagePath("[full path to this folder]/codebase/images/csh_scbrblue/");
    +            // or
    +        tree.setImagePath("[full path to this folder]/codebase/images/csh_yellowbooks/");
    +            // or
    +        ...
    +    </script>
    +
    + +

    Setting Icon's Size

    +
    + +

    + +Setting icon's size is quite simple with setIconSize() method. The default size of tree icons is 18×18 px. + +

    +
        <script>
    +        tree.setIconSize(newWidth,newHeight,itemId);
    +    </script>
    +

    + +The parameters the user should specify are: +

    +
      +
    • newWidth - new width for the icon;
      +
    • +
    • newHeight- new height for the icon;
      +
    • +
    • itemId - the item new sizes will be applied to (optional parameter).
      +
    • +
    + +

    +If the last parameter is not indicated, new sizes will be applied to all icons in the tree. +

    + +
    + +

    Making Images Clickable

    +
    + +

    + +There is a simple method used to make all images in the tree clickable: + +

    +
        <script>
    +        tree.enableActiveImages(true|fasle); // enabled by default
    +    </script>
    +
    + +

    Enabling Image Dragging

    +
    + +

    + +There is a method that is responsible for allowing the user to drag items not only by text, but also by their images. This functionality is enabled by default + +

    +
        <script>
    +        tree.enableImageDrag(true|false);
    +    </script>
    +
    + +

    Enabling IE Images Fixing

    +
    + +

    + +There is a special method to change the way of images rendering in IE. It also helps to solve the problem of images caching in IE: + +

    +
        <script>
    +        tree.enableIEImageFix(true|false); // disabled by default
    +    </script>
    +
    +
    +

    Text Manipulation

    +
    + +
    + +

    Setting text Direction

    +
    + +

    + +dhtmlxTree support bot LTR and RTL text directions. LTR is set by default in the tree. The user can set the text direction to RTL like this: + +

    +
        <script>
    +        tree.enableRTL(true); // false to disable
    +    </script>
    +

    + +To set text direction to LTR again, use false in the above mentioned method. +

    + +
    + +

    Enabling Multiline

    +
    + +

    + +By default tree nodes' labels can contain only one text line. However, in some situations it can be useful to make them multiline. There is a special method for this in dhtmlxTree. It is recommended to turn tree lines off for better appearance: + +

    +
        <script>
    +        tree.enableTreeLines(false); 
    +        tree.enableMultiLineItems(true|false|width);
    +    </script>
    +

    + +This method should be called before loading tree data takes place. +The parameter of this method can be one of these options: +

    +
      +
    • true - the multiline is enabled;
      +
    • +
    • false - the multiline is disabled;
      +
    • +
    • width - the multiline is enabled and set in pixels (for example, “50pxâ€).
      +
    • +
    + +
    + +

    Setting Text Signs

    +
    + +

    + +There is the possibility to enable|disable text signs [+] and [-] instead of corresponding icons. This can be done in the following way: + +

    +
        <script>
    +        tree. enableTextSigns(mode);
    +    </script>
    +

    + +Setting this method to true equals enabling text signs for the tree, while false means disabling them. +

    + +
    + +

    Making Plain Text Tree

    +
    + +

    + +There is also the possibility to create a plain one-level tree. The steps the user should take for this are quite simple: +

    +
      +
    • Add the following style in the html file where the tree will be created:
      +
    • +
    +
        <style>
    +         #treeboxbox_tree.standartTreeImage img{
    +             width:0px;
    +         }
    +    </style>
      +
    • Create a div element on page and write the following script lines:
      +
    • +
    +
        <div id="treeboxbox_tree" style="width:200;height:200"></div>
    +    <script>
    +        tree=new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0);
    +        tree.setImagePath("[full path to this folder]/imgs/");
    +        tree.enableTreeImages("false"); // disable tree images
    +        tree.enableTreeLines("false"); // disable tree lines
    +        tree.loadXML(file);
    +    </script>
    +
    + +

    Enabling Loading Text

    +
    + +

    + +The user can set loading text for a tree item. This text will appear on item loading instead of its original text, and will be replaced by the original text when loading is done: + +

    +
        <script>
    +        tree.enableLoadingItem(text);
    +    </script>
    +

    + +The default loading text set in dhtmlxTree is “Loading…â€. +

    + +
    + +

    Using HTML in Item's Text

    +
    + +

    + +The user may use escaped HTML in text attribute of item tag to include some HTML into node's label, or he can use nested <itemtext> tag with CDATA for the same (this tag is supported only in PRO edition): + +

    +
        <?xml version="1.0">
    +        <tree id="0">
    +          <item id="1" text="&amp;lt; img src='some.gif' &amp;gt;" /> // using escaped HTML in text attribute
    +        </tree>
    +        <tree id="0">
    +          <item id="1">
    +             <itemtext><![CDATA <img src='some.gif'> ]]></itemtext> // using nested <itemtext> tag with CDATA
    +          </item>
    +        </tree>
    +
    +
    +

    Style Manipulation

    +
    + +
    + +

    Setting Individual Style for Item

    +
    + +

    + +The user can set individual style for any item in the tree in the following way: + +

    +
        <script>
    +        tree.setItemStyle(itemId,style_string);
    +    </script>
    +

    + +The parameters here are responsible for: +

    +
      +
    • itemId - id of the item;
      +
    • +
    • style_string - valid CSS string.
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___simultaneous_server_update.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___simultaneous_server_update.html new file mode 100755 index 0000000000..dbf44c4154 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___simultaneous_server_update.html @@ -0,0 +1,237 @@ + + + + dhtmlxtree:simultaneous_server_update [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + + + + +

    +

    + +

    + +

    Simultaneous Server Update

    +
    + +
    +
    +

    dataProcessor Module

    +
    + +

    +Common tree manipulations, like drag-n-drop (including d-n-d between trees), removing item, inserting item, or updating item's label, can be simultaneously reflected in server database now (since v.1.3) using dataProcessor module. +

    + +

    +Main features of this module are: +

    +
      +
    • An updated/inserted item is marked with bold text, a deleted one - with line-through;
      +
    • +
    • You can define the mode for data processing (automatic|manual).
      +
    • +
    + +

    +Updated|deleted items' data is sent to the server to the specified URL (we call it serverProcessor). serverProcessor should return simple XML of the specified format to let the tree know about successful or not successful processing. All necessary after-save procedures will be done automatically. + +

    + +
    +
    +

    Enabling dataProcessor Module

    +
    + +

    +To enable this feature, the user should do the following: +

    +
      +
    • Include dhtmlxdataprocessor.js file to the page;
      +
    • +
    • Create dataProcessor object for the tree;
      +
    • +
    • Initialize dataProcessor.
      +
    • +
    +
        <script src="../codebase/dhtmlxdataprocessor.js"></script>
    +    <script>
    +        ...
    +        tree.init();
    +        myDataProcessor = new dataProcessor(serverProcessorURL);
    +        myDataProcessor.init(treeObj); // tree object to assign dataProcessor to, mandatory
    +    </script>
    +

    + +The mandatory parameter for dataProcessor is: +

    +
      +
    • serverProcessorURL - URL of the file that will process incoming data. If our server-side routines is used, “dhtmlxDataProcessor/server_code/PHP/update.php?ctrl=tree†should be indicated.
      +
    • +
    + +
    +
    +

    Server-Side dataProcessor Handling

    +
    + +

    +Using server-side dataProcessor, the user should bare in mind the following: +

    +
      +
    • All data comes in GET scope:
      +
        +
      • tr_id - node id;
        +
      • +
      • tr_order - node sequense on the level;
        +
      • +
      • tr_pid - parent id;
        +
      • +
      • tr_text - node text(label);
        +
      • +
      • Userdata blocks - are passed with their names.
        +
      • +
      • !nativeeditor_status - values can be as follows:
        +
          +
        • “inserted†- item is inserted;
          +
        • +
        • “deleted†- item is deleted;
          +
        • +
        • “updated†or item doesn't exist - item is updated.
          +
        • +
        +
      • +
      +
    • +
    • serverProcessor should return valid XML of the following format:
      +
    • +
    +
        <data>
    +    <action type='insert/delete/update' sid='incomming_node_ID' tid='outgoing_node_ID'/>
    +    </data>
    +

    + +In the above mentioned snippet, incomming_node_ID and outgoing_node_ID may be different for insert action only, but they are equal for other actions. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___syntax_templates.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___syntax_templates.html new file mode 100755 index 0000000000..801cc85c64 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/dhtmlxtree___syntax_templates.html @@ -0,0 +1,461 @@ + + + + dhtmlxtree:syntax_templates [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + + + + +

    +

    + +

    + +

    Syntax Templates

    +
    + +
    +
    +

    XML Format Template

    +
    + +

    +XML syntax template is the following: + +

    +
          <?xml version='1.0' encoding='iso-8859-1'?>
    +          <tree id="0"> 
    +              <item text="My Computer" id="1" child="1" im0="my_cmp.gif" im1="my_cmp.gif" im2="my_cmp.gif" call="true" select="yes"> 
    +                  <userdata name="system">true</userdata> 
    +                  <item text="Floppy (A:)" id="11" child="0" im0="flop.gif" im1="flop.gif" im2="flop.gif"/> 
    +                  <item text="Local Disk (C:)" id="12" child="0" im0="drv.gif" im1="drv.gif" im2="drv.gif"/> 
    +              </item> 
    +              <item text="Recycle Bin" id="4" child="0" im0="recyc.gif" im1="recyc.gif" im2="recyc.gif"/>
    +      </tree>
    +

    + +The tags used are the following: +

    +
      +
    • <tree> tag is mandatory. It specifies the parent of loading block of data. According to this, its id parameter specifies the ID of that parent. To load root level the user needs to specify the ID used for creation of the tree object: new myObjTree(boxObject,width,height,0);
      +
    • +
    • <item> tag can contain sub-items (in order to load more than one level at once) or not. It also can contain <itemtext> tag that can be used to add some HTML to item label (attribute text should be skipped then):
      +
    • +
    +
          <item id="123">
    +          <itemtext><![CDATA[<font color="red">Label</font>]]></itemtext>
    +      </item>
    +

    + +Attributes for <item> tag are the following: +

    +
      +
    • Mandatory attributes:
      +
        +
      • text - label of the node;
        +
      • +
      • id - id of the node;
        +
      • +
      +
    • +
    • Optional attributes:
      +
        +
      • tooltip - tooltip of the node;
        +
      • +
      • im0 - image for a node without child items (tree will get images from the path specified in setImagePath() method);
        +
      • +
      • im1 - image for an expanded node with child items;
        +
      • +
      • im2 - image for a collapsed node with child items;
        +
      • +
      • aCol - colour of an item that is not selected;
        +
      • +
      • sCol - colour of a selected item;
        +
      • +
      • select - select a node on load (any value);
        +
      • +
      • style - text style of a node;
        +
      • +
      • open - show a node opened (any value);
        +
      • +
      • call - call function on select(any value);
        +
      • +
      • checked - check checkbox if exists (in case of 3-state checkboxes values can be 1 - checked or -1 - unsure);
        +
      • +
      • nocheckbox - instruct component, to not render checkbox for related item, optional
        +
      • +
      • child - specifies whether a node has child items (1) or not (0);
        +
      • +
      • imheight - height of the icon;
        +
      • +
      • imwidth - width of the icon;
        +
      • +
      • topoffset - offset of the item from the node above;
        +
      • +
      • radio - if not empty, child items of this node will have radio buttons.
        +
      • +
      +
    • +
    + +

    +To set userdata directly within XML, the user should apply <userdata> tag that has only one attribute - name, and value to specify userdata value. +

    + +

    +In PHP script the following code should be used for the page header: + +

    +
          <?php
    +             header("Content-type: text/xml");
    +             echo('<?xml version="1.0" encoding="iso-8859-1" ?>');
    + 
    +
    + +

    XML Format with Links Specified

    +
    + +

    + +XML format template for the tree containing links: + +

    +
          <tree..>
    +               <item ...>
    +                      <userdata name="myurl">http://www.google.com</userdata>
    +                      <item ...>
    +                              <userdata name="myurl">http://groups.google.com</userdata>
    +                      </item>
    + 
    +                </item>
    + 
    + 
    +
    +
    +

    JSON Format Template

    +
    + +

    +The structure of JSON template is like the one of XML, where tags are transformed to objects, and attributes to properties. + +

    +
          {id:0,
    +          item:[
    +              {id:1,text:"first"},
    +              {id:2, text:"middle",child:"1",img0:"book.gif",
    +                  item:[
    +                      {id:"21", text:"child"}
    +                  ]},
    +              {id:3,text:"last"}
    +          ]
    +      }
    +
    +
    +

    CSV Format Template

    +
    + +

    +A tree item is represented with three values - id, parent_id, text. +

    + +

    +For example: + +

    +
          1,0,node 1
    +      2,1,node 1.1
    +      3,2,node 1.1.1
    +      4,0,node 2
    +
    +
    +

    JS Array Format Template

    +
    + +

    +Tree item is represented with three values as sub-arrays of the top array - id, parent_id, text. +

    + +

    +For example: + +

    +
          var treeArray = new Array(
    +      ["1","0","node 1"],
    +      ["2","1","node 1.1"],
    +      ["3","2","node 1.1.1"],
    +      ["4","0","node 2"]
    +      )
    +
    +
    +

    Cold Fusion Tag for dhtmlXTree

    +
    + +

    +This section is devoted to a ready-made ColdFusion solution for the tree that, as it is believed by some users, simplifies usage of dhtmlxTree. For example: + +

    +
          <cf_dhtmlXTree
    +          name="tree"
    +          width="250"
    +          height="250"
    +          JSPath="../" CSSPath="../"
    +          iconspath="gfx/"
    +          xmldoc="tree.xml"
    +          checkboxes="false"
    +          dragndrop="true"
    +          style="background-color:whitesmoke;border:1px solid blue;"
    +          onSelect="onNodeSelect"
    +          onDrop="onDropNode">
    +                   ...configuration xml...
    +      </cf_dhtmlXTree>
    +

    + +The parameters that should be indicated are as follows: +

    +
      +
    • name - [optional] name of the tree JS object to use in JavaScript; if omitted, then name will be generated automatically;
      +
    • +
    • width - [optional] width of the tree (it sets the with of the tree box, leaving the width of the tree itself by 100%);
      +
    • +
    • height - [optional] height of the tree;
      +
    • +
    • JSPath - [optional] absolute or relative path to the directory containing tree JS files; “js†directory by default;
      +
    • +
    • CSSPath - [optional] absolute or relative path to the directory containing tree CSS files; “css†directory by default;
      +
    • +
    • iconspath - [optional] absolute or relative path to the directory containing tree icon files; “img†directory by default;
      +
    • +
    • xmldoc - [mandatory for xml loading] URL of the XML file used to load levels dynamically;
      +
    • +
    • checkboxes - [optional] show checkboxes (none, twoState, threeState);
      +
    • +
    • dragndrop - [optional] activate drag-&amp;-drop (true,false);
      +
    • +
    • style - [optional] style for the tree box;
      +
    • +
    • onSelect - [optional] JavaScript function to be called on node selection;
      +
    • +
    • oncheck - [optional] JavaScript function to be called on node (un)checking;
      +
    • +
    • onDrop - [optional] JavaScript function to be called on node drop;
      +
    • +
    • im1 - [optional] default image used for child nodes;
      +
    • +
    • im2 - [optional] default image used for expanded branches;
      +
    • +
    • im3 - [optional] default image used for collapsed branches.
      +
    • +
    + +

    +Please, refer to Data Loading from XML section. +

    + +

    +Minimal possible tag syntax with on-page XML is the following: + +

    +
          <cf_dhtmlXTree>
    +          <item text="Top node" id="t1" >
    +              <item text="Child node 1" id="c1" ></item>
    +              <item text="Child node 2" id="c2" ></item>
    +          </item>
    +      /cf_dhtmlXTree>
    +

    + +Minimal possible tag syntax with server-side XML is as follows: + +

    +
          <cf_dhtmlXTree xmldoc="tree.xml">
    +      </cf_dhtmlXTree>
    +

    + +Here is the example of ColdFusion tag for the tree with images specified: + +

    +
          <cf_dhtmlXTree
    +          im1="book.gif"
    +          im2="books_open.gif"
    +          im3="books_close.gif">
    +          <item text="Mystery " id="mystery" open="yes" >
    +              <item text="Lawrence Block" id="lb" >
    +                      <item text="All the Flowers Are Dying" id="lb_1" />
    +                      <item text="The Burglar on the Prowl" id="lb_2" />
    +                      <item text="The Plot Thickens" id="lb_3" />
    +                      <item text="Grifters Game" id="lb_4" />
    +                      <item text="The Burglar Who Thought He Was Bogart" id="lb_5" />
    +              </item>
    +              <item text="Robert Crais" id="rc" >
    +                      <item text="The Forgotten Man" id="rc_1" />
    +                      <item text="Stalking the Angel" id="rc_2" />
    +                      <item text="Free Fall" id="rc_3" />
    +                      <item text="Sunset Express" id="rc_4" />
    +                      <item text="Hostage" id="rc_5" />
    +               </item>
    +              <item text="Ian Rankin" id="ir" ></item>
    +              <item text="James Patterson" id="jp" ></item>
    +              <item text="Nancy Atherton" id="na" ></item>
    +          </item>
    +      </cf_dhtmlXTree>
    +

    + +The following code snippet shows creation of the tree with Events Handlers, Checkboxes, and Drag-n-drop functionality: + +

    +
          <cf_dhtmlXTree
    +          dragndrop="true"
    +          checkboxes="twoState"
    +          onSelect="onClick"
    +          onCheck="onCheck"
    +          onDrop="onDrag">
    +              <item text="Mystery " id="mystery" open="yes" >
    +                  <item text="Lawrence Block" id="lb" >
    +                              <item text="All the Flowers Are Dying" id="lb_1" />
    +                              <item text="The Burglar on the Prowl" id="lb_2" />
    +                              <item text="The Plot Thickens" id="lb_3" />
    +                              <item text="Grifters Game" id="lb_4" />
    +                              <item text="The Burglar Who Thought He Was Bogart" id="lb_5" />
    +                  </item>
    +                  <item text="Robert Crais" id="rc" >
    +                              <item text="The Forgotten Man" id="rc_1" />
    +                              <item text="Stalking the Angel" id="rc_2" />
    +                              <item text="Free Fall" id="rc_3" />
    +                              <item text="Sunset Express" id="rc_4" />
    +                              <item text="Hostage" id="rc_5" />
    +                  </item>
    +                  <item text="Ian Rankin" id="ir" ></item>
    +                  <item text="James Patterson" id="jp" ><item>
    +                  <item text="Nancy Atherton" id="na" ></item>
    +              </item>
    +      </cf_dhtmlXTree>
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/icons___file.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/icons___file.gif new file mode 100755 index 0000000000..31d23fd447 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/icons___file.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/icons___tree.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/icons___tree.gif new file mode 100755 index 0000000000..c290270fba Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/icons___tree.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/index.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/index.html new file mode 100755 index 0000000000..af1b087480 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/index.html @@ -0,0 +1,220 @@ + + + + dhtmlxtree:toc [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +
    +
    Table of Contents
    +
    + + +
    +
    + + +

    +

    + +

    + +

    dhtmlxTree

    +
    + +

    + +dhtmlxTree is a flexible, smart, and easy to use JavaScript tree component allowing to create hierarchical navigation interfaces for web applications. It is great working with huge amounts of data due to special techniques implemented. dhtmlxTree possesses advanced drag-and-drop, dynamical loading of nodes, customizable view, unlimited number of nodes, and many other capabilities that make it fully-featured aid for developers. Communication with server is done via AJAX that allows the tree content to be updated without reloading the entire webpage. Complete JavaScript API is provided to help users to save time on configuring. +

    + +
    +
    +

    Guide

    + +
    +

    Script API Reference

    +
    + + +

    +
    + +

    + +

    +Dear User, +

    + +

    +Your opinion is important for us. Please feel free to contact us, say what for, where are you using tree, which methods are you using, what do you like, what don't like, what would you like to see in the future release. This information will help us to make dhtmlxTree better.
    + +

    + +

    +Thanks, your dhtmlxTeam.
    + +

    + +

    +support@dhtmlx.com
    + +

    + +

    +~~DISCUSSION:off~~ + +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/others___supported_browsers.html b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/others___supported_browsers.html new file mode 100755 index 0000000000..d8d3646b55 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/dhtmlxtree/others___supported_browsers.html @@ -0,0 +1,130 @@ + + + + others:supported_browsers [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Supported Browsers

    +
    +
      +
    • IE 5.5 and above;
      +
    • +
    • Safari 3.x and above;
      +
    • +
    • Firefox 1.5 and above;
      +
    • +
    • Opera 9 and above;
      +
    • +
    • Google Chrome 0.2 and above;
      +
    • +
    • Any other browser based on mozilla or web-kit engine.
      +
    • +
    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/index.html b/phpgwapi/js/dhtmlxtree/docsExplorer/index.html new file mode 100755 index 0000000000..d0dd58c147 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/index.html @@ -0,0 +1,126 @@ + + + + DHTMLX Documentation + + + + + + + + + + +
    + +
    DHTMLX Docs & Samples Explorer
    +
    + + +
    +
    + + +
    +
    + + + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/samples.html b/phpgwapi/js/dhtmlxtree/docsExplorer/samples.html new file mode 100755 index 0000000000..01f5be38e2 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/samples.html @@ -0,0 +1,104 @@ + + + + DHTMLX Samples + + + + + + + + + + +
    + +
    DHTMLX Docs & Samples Explorer
    +
    + +
    +
    + + +
    +
    +
    + +

    Local Samples

    +
    +
    + +
    +
    + +

    Demo Applications On-line

    + + +

    On-line Samples

    +
    + +
    Layouts & Data Containers
    + +
    +
    Data Presentation & Navigation
    + +
    + +
    Others
    + +
    + +
    + + +
    + + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/_media.txt b/phpgwapi/js/dhtmlxtree/docsExplorer/start/_media.txt new file mode 100755 index 0000000000..9d84065bf4 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/start/_media.txt @@ -0,0 +1,24 @@ +icons___layout.gif +icons___accordion.gif +icons___tabbar.gif +icons___windows.gif +icons___grid.gif +icons___tree.gif +icons___treegrid.gif +icons___folders.gif +icons___menu.gif +icons___toolbar.gif +icons___combo.gif +icons___calendar.gif +icons___colorpicker.gif +icons___slider.gif +icons___editor.gif +icons___vault.gif +icons___ajax.gif +icons___dataprocessor.gif +icons___connector.gif +icons___scheduler.gif +icons___file.gif +icons___chm.gif +others___complier-interface2.png +layout2_sum_trans.gif diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/_structure.xml b/phpgwapi/js/dhtmlxtree/docsExplorer/start/_structure.xml new file mode 100755 index 0000000000..f607e93c5c --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/start/_structure.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/dhtmlx_overall_logic_en.html b/phpgwapi/js/dhtmlxtree/docsExplorer/start/dhtmlx_overall_logic_en.html new file mode 100755 index 0000000000..4826a8ec48 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/start/dhtmlx_overall_logic_en.html @@ -0,0 +1,443 @@ + + + + dhtmlx_overall_logic_en [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + + + + + + +

    Why Should You Read This ?

    +
    + +

    +Before working with library, scavenging information from the documentation, checking examples and making up conclusions - consolatory or not – you should read this article. It will take less than 10 minutes, but will save considerably more of your time in the near future. This article is aimed to explain the working logic of library and to provide the basic code examples. In case you intend to go deep into the matter and jump to creating applications you can be sure this article meets your needs. Well, let’s come down to practice: +

    + +
    +
    +

    Usage Guidelines: the Entire Package or Separate Components?

    +
    + +

    +Dhtmlx library consists of different components, which can be used separately – for example, you are allowed to insert grid into your application for data output in table mode, tree and menu – for navigation purposes. As well, you can use the entire library to get necessary functionality and structure interface. +

    + +
    +
    +

    dhtmlxSuite Location

    +
    + +

    +To start working with library you should download dhtmlxSuitehere. Package contains 15 (or 16 for professional edition) components. All components are listed on download page. +

    + +

    +Package content: +

    +
      +
    1. Folders with separate components;
      +
    2. +
    3. Folder with the tool that allows to integrate all necessary items in one script file - libCompiler;
      +
    4. +
    5. dhtmlx_std_full.zip – this is all you need for quick start. The archive contains all available components with all available functionality.
      + dhtmlx_pro_full.zip – the same for Professional Edition;
      +
    6. +
    7. index.html - file starting Docs and Samples Explorer.
      +
    8. +
    + +
    +
    +

    Documentation Location

    +
    + +

    +When you unpack the entire archive you will find index.html file (see point 4 in the paragraph above) and only after starting this file you will be able to see all components documentation. Thus, the archive file doesn't contain documentation. It is distributed within component folders, if you need to have access to all documentation files you can find it in dhtmlx Docs and Samples Explorer. By the way, you can avoid unpacking procedure and local working, there is an opportunity to check documentation on our site, all necessary documentation and samples are here: http://dhtmlx.com/docs/products/docsExplorer/index.shtml +

    + +
    +
    +

    Required Development Files

    +
    + +

    + To start working immediately, you should unpack dhtmlx_std_full.zip (dhtmlx_pro_full.zip) archive in the place from where you are going to load scripts (Note: the folder must be available through web-server, otherwise some functionality will not be able to work). In any case, you are creating a web-application, so a web-server involvement is mandatory. +

    + +

    +Except script file, archive contains styles file and all necessary images. So, let's unpack it in /codebase for example. The structure looks approximately as follows: + +

    +
      [codebase]
    +      [imgs]
    +      dhtmlx.js
    +      dhtmlx.css
    +  index.html
    + +

    +The last file indicates where we will create the interface of the application and make it work. +

    + +
    +
    +

    Files Size

    +
    + +

    + +Don't be confused with the size of the script file - 900 Kbytes. First, it contains the entire functionality, including specific one. When it comes to your application release, you will be able to leave just necessary functionality using the attached tool (see point 2). Secondly, all modern browsers support operating with the packed scripts, as for gzip format, here the maximum bundling weighs less than 200 Kbyts, so, browser successfully caches it as well as external content. +

    + +

    +Also, you can use files only with necessary functionality. But in this case it's required permanent synchronization with documentation (to know which file has to be pasted to make work certain functionality). For more details about files required for component initialization and functionality support (extensions usage), see separate components documentation. +

    + +
    +
    +

    Starting from html

    +
    + +

    +Let's return to index.html file. +

    +
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    +<html>
    +<head>
    +    <title>My Application</title>
    +    <link rel="STYLESHEET" type="text/css" href="codebase/dhtmlx.css">
    +    <script src="codebase/dhtmlx.js" type="text/javascript"></script>
    +    <script>
    +        function buildInterface(){
    +            //entire code for interface init will go here
    +        }
    +        dhtmlxEvent(window,"load", buildInterface);
    +    </script>
    +</head>
    +<body>
    + 
    +</body>
    +</html>
    +

    +The main conclusion you should make up is that interface creation has to be started from the full page loading. Why do we use dhtmlxEvent? Because it makes event setting available for any browser. +

    + +
    +
    +

    Allocating Components on Page

    +
    +
      +
    • Attaching to HTML-item.
      + During components creation, the major part of them are already attached to certain place on page through parent HTML-item. In most cases, div-item is used for this purpose. Item's identifier or link are passed to component constructor. Some components allow to change parent item after initialization. Another way to relocate component within document structure is relocating its parent item.
      +
    • +
    +
        <div id="mygrid"></div>
    +    <script>
    +        myGrid = new dhtmlXGridObject("mygrid");
    +    </script>
      +
    • Placing inside dhtmlxLayout.
      + If at the beginning, you place dhtmlxLayout on page (on empty page, you can attach it just to document.body), after that you can allocate components inside its cells. You are allowed to do the same with dhtmlxTabbar, dhtmlxWindows. For these components, items from items, windows and tabs collections, accordingly, are used as container with the same capabilities.
      +
    • +
    +
        myLayout = new dhtmlXLayout(document.body,"3E");
    +    myGrid = myLayout.items(0).attachGrid();
    +

    +For more details about allocating dhtmlx and other items inside Layout, Tabbar and Window, see here. +

    + +
    +
    +

    How to Initialize Components

    +
    + +

    + +There are three ways to initialize any component of the suite: + +

    +
      +
    • Through constructor function.
      + This way of initialization is valid for all components. The names of all component constructors coincide with the names of components (since version 2.5). The major part of components are initialized with a certain set of parameters, we will go into details of this later. So, below you can see an example of windows system initialization through the constructor:
      +
    • +
    +
    myWindows = new dhtmlxWindows();
      +
    • Through appropriated methods of dhtmlxLayout component: attachTree, attachGrid, attachMenu и Ñ‚.Đ´. (for Layout API documentation, see here api_toc_alpha). The procedure is almost the same, there is only one difference, instead of constructor function you should write layout method (or more exactly, the method of separate layout panel). As result the component is initialized directly into the appropriate panel.
      +
    • +
    +
      +
    • Directly from HTML objects, their class attribute (name of css class) is set in the value corresponding to component name: for tree - dhtmlxTree, for grid - dhtmlxGrid, for tabbar - dhtmlxTabbar. If you need this way of initialization, see documentation for more details.
      +
    • +
    + +
    +
    +

    How to Set Parameters (Configuration)

    +
    +
      +
    • Through methods.
      + In most cases, methods which allow to set parameters start with “setâ€, “enable†(setInitWidth, enableMathSerialization). The list of basic and optional methods required for component initialization is located in constructor function section of API documentation of each component. (part “Original Way of Initializationâ€).
      +
    • +
    +
        myGrid = new dhtmlXGridObject("grid_container");
    +    myGrid.setImagePath("codebase/imgs/");
    +    myGrid.setHeader("Model,Qty,Price");
    +    myGrid.setInitWidths("*,150,150");
    +    myGrid.setColAlign("left,right,right");
    +    myGrid.setSkin("light");
    +    myGrid.init();
    +    myGrid.loadXML("some_url.php");
      +
    • Through objects properties (since version 2.5, there is extension for object initialization/configuration).
      + The list of basic and optional properties required for component initialization is located in constructor function section of API documentation of each component. (part “Original Way of Initializationâ€).
      +
    • +
    +
        myGrid = new dhtmlXGridObject({
    +        parent: "grid_container",
    +        image_path: "codebase/imgs/",
    +        skin: "light",
    +        columns: [
    +             {
    +                 label: "Model",
    +                 width: "*",
    +                 align: "left",
    +             },{
    +                 label: "Qty",
    +                 width: 150,
    +                 align: "right",
    +             },{
    +                 label: "Price",
    +                 width: 150,
    +                 align: "right",
    +             }
    +        ]
    +    });
    +    myGrid.loadXML("some_url.php");
      +
    • Through XML.
      + Grid supports this way of initialization. Grid and columns parameters are indicated in special partition of XML-document, which can be loaded from server with all data for rows (or without it). For more details see here.
      +
    • +
    + +
    + +

    Setting Parameters for the Entire dhtmlxSuite

    +
    + +

    + +There are some parameters which can be set for all components on page at once. Currently they are: skin name and path to images. FIXME + +

    +
      +
    • through global dhtmlx object;
      +
    • +
    • through parameters of dhtmlxLayout object, which contains used components.
      +
    • +
    + +

    + +If these parameters are set for concrete objects later, they will have priority status. +

    + +
    +
    +

    Event Handlers

    +
    + +

    + +attachEvent(event_name,handler_function) allows to set event handlers for any components of dhtmlxSuite. For lists of events see Script API Reference partition, which is located at the foot of generic page of any component documentation. Note: names of events are case-insensitive. +

    + +

    +Nearly every event passes to function-handler some parameters which can be used in this function. Such parameters are listed in documentation. This is an example: +

    +
    myGrid.attachEvent("onRowSelect",function(rowId,cellInd){
    +    alert("Row was selected. It's id is "+ rowId +". Index of clicked cell is "+ cellInd)
    +});
    +
    +
    +

    How to Create Interface Completely

    +
    + +

    +There is the main approach to interface creation by using dhtmlx library capabilities: + +

    +
      +
    • Let's create interface structure which will be set by layout. The whole page (document.body), some block HTML item (for example, DIV-item or table cell), cell of other layout, tabbar, window or accordion can be used as container for layout. Layout structure can be set in two ways:
      + by choosing appropriate structure from existing ones,
      + or by creating any other structure by means of combining with existing ones (in this case you should use the capability to create layouts within cells of other layout).
      +
    • +
    +
    myLayout1 = new dhtmlxLayout({
    +    parent:document.body;
    +    schema: "3J";
    + 
    +})
    +myLayout1.cells("c").hideHeader();
    +myLayout2 = new dhtmlxLayout({
    +    parent: myLayout1.cells("c"),
    +    schema: "3E"
    +})
    +

    +Here we get the sum of 2 layouts and 5 cells (2 cells are taken from the first layout, 3 others - from the second one) for items placement. You should call them accordingly to the following logic: +

    + +

    +myLayout1.cells(“aâ€), myLayout1.cells(“bâ€), myLayout2.cells(“aâ€), myLayout2.cells(“bâ€),myLayout2.cells(“câ€). +

    + +

    + +

    +
      +
    • Global items. Layout already contains windows system which can be used for popup windows (see details), also you are allowed to set menu and toolbar over a cell (any cell can have its menu and toolbar, as well). For the detailed description, see here.
      +
    • +
    +
      +
    • Let's place items inside layout panels. As it was described in the second way of initialization paragraph, you have an opportunity to create components inside layout panels by using layout cells methods which begin with the word attach (attachGrid, attachTree etc). In the same way you can place HTML objects in layout cells and load external page. Otherwise components can be placed in cell after initialization by means of attachObject method. Menu and toolbar can be placed in cell at once with the main item. For details see here.
      +
    • +
    + +
    +
    +

    How to Go On Working with Components

    +
    + +

    + +After initializing components, properties of them (to be more precise, most of them) can be changed dynamically - by using API methods. Generally, such methods start with set or enable. To call subobjects (rows and columns in grid, item in tree, windows in window system, cells in layout, buttons in toolbar, items in menu etc) you should use ID. +Besides correcting properties through API, you are allowed to achieve any desired functionality of components. For more information see Documentation (search is enabled) orKnowlege Base, or contact our support team. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___accordion.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___accordion.gif new file mode 100755 index 0000000000..e456fffb44 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___accordion.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___ajax.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___ajax.gif new file mode 100755 index 0000000000..ce5533de09 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___ajax.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___calendar.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___calendar.gif new file mode 100755 index 0000000000..2a8bc0e63c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___calendar.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___chm.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___chm.gif new file mode 100755 index 0000000000..6516b100ab Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___chm.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___colorpicker.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___colorpicker.gif new file mode 100755 index 0000000000..1992defbed Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___colorpicker.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___combo.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___combo.gif new file mode 100755 index 0000000000..8dba9afe5b Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___combo.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___connector.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___connector.gif new file mode 100755 index 0000000000..62804cbf5e Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___connector.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___dataprocessor.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___dataprocessor.gif new file mode 100755 index 0000000000..35e6c60f9f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___dataprocessor.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___editor.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___editor.gif new file mode 100755 index 0000000000..ea3c121195 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___editor.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___file.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___file.gif new file mode 100755 index 0000000000..31d23fd447 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___file.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___folders.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___folders.gif new file mode 100755 index 0000000000..f8e02bbde6 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___folders.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___grid.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___grid.gif new file mode 100755 index 0000000000..db0832caf1 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___grid.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___layout.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___layout.gif new file mode 100755 index 0000000000..f37427e768 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___layout.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___menu.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___menu.gif new file mode 100755 index 0000000000..2fbd60671c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___menu.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___scheduler.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___scheduler.gif new file mode 100755 index 0000000000..ea6c9aadd1 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___scheduler.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___slider.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___slider.gif new file mode 100755 index 0000000000..3fab6d659c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___slider.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___tabbar.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___tabbar.gif new file mode 100755 index 0000000000..8a35665af4 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___tabbar.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___toolbar.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___toolbar.gif new file mode 100755 index 0000000000..92ef2cdbf3 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___toolbar.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___tree.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___tree.gif new file mode 100755 index 0000000000..c290270fba Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___tree.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___treegrid.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___treegrid.gif new file mode 100755 index 0000000000..bb752c8d0a Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___treegrid.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___vault.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___vault.gif new file mode 100755 index 0000000000..c3be39783a Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___vault.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___windows.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___windows.gif new file mode 100755 index 0000000000..a5d59fe593 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/icons___windows.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/index.html b/phpgwapi/js/dhtmlxtree/docsExplorer/start/index.html new file mode 100755 index 0000000000..088ca53f2c --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/start/index.html @@ -0,0 +1,246 @@ + + + + start [DHX documentation] + + + + + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/layout2_sum_trans.gif b/phpgwapi/js/dhtmlxtree/docsExplorer/start/layout2_sum_trans.gif new file mode 100755 index 0000000000..d403823a61 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/layout2_sum_trans.gif differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___complier-interface2.png b/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___complier-interface2.png new file mode 100755 index 0000000000..34936fd5ac Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___complier-interface2.png differ diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___migration_version_25.html b/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___migration_version_25.html new file mode 100755 index 0000000000..1080a6d8d0 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___migration_version_25.html @@ -0,0 +1,154 @@ + + + + others:migration_version_25 [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Migrating to the version 2.5

    +
    + +

    + +Version 2.5 is backward compatible by API with versions 2.0 and 2.1 ( separate components is mostly compatible with version 1.6 as well ), so you will not need to made any special updates in code, while updating codebase to the version 2.5 +

    + +

    +If you are using layout, accordion or tabbar then you will need to add the “dhtmlxcontainer.js†on the page. All above components doesn't require “dhtmlxWindows†anymore, and are fuly functional separately. +

    + +

    +Beware that dhtmlx.js, included in package, is compiled with dhx_skyblue skin, so if you are using the different skin - you will need to change skin in your code or recompile the dhtmlx.js through libCompiler. ( by the way, in case of components 2.5 you can change default skin for all component on the page , by simple defining dhtmlx.skin=“skin name†) +

    + +

    +If after update, you start to receive “dhtmlx is undefined†error - be sure that +

    +
      +
    • latest version of dhtmlxcommon.js is used
      +
    • +
    • you are including all other dhtmlx-related js files after dhtmlxcommon.js
      +
    • +
    + +
    +
    +

    Migration details for separate components

    + +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___special_characters_in_dhtmlxgrid.html b/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___special_characters_in_dhtmlxgrid.html new file mode 100755 index 0000000000..d4fe8c5b6c --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___special_characters_in_dhtmlxgrid.html @@ -0,0 +1,140 @@ + + + + others:special_characters_in_dhtmlxgrid [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Special Characters in dhtmlxGrid

    +
    + +

    +By default grid takes all incoming data as HTML, so it will convert any HTML special chars ( < > &amp; characters included ) +

    + +

    + +To resolve such problem, the grid supports “pure†text excell. Pure text excell editors (unlike the default ones) don't allow to put any HTML content inside them, due to their capabilities any special characters are modicification proof and correctly editable. +

    + +

    + +The following are the “pure text†cell types: +

    + +

    +rotxt - read-only text excell +edtxt - single line editor text excell +txttxt - multi-line text editor +corotxt - text only selectbox + +

    +
      mygrid.setColTypes("rotxt")
    +  ...
    +  mygrid.addRow(1,"<&amp;>"); // will render text correctly
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___special_characters_in_xml.html b/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___special_characters_in_xml.html new file mode 100755 index 0000000000..52d2e0e455 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___special_characters_in_xml.html @@ -0,0 +1,139 @@ + + + + others:special_characters_in_xml [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Special Characters in XML

    +
    + +

    +During the data loading from XML file|string you can have some problems with several special characters. +For XML those are < > &amp; +

    + +

    +There are two ways to store them in XML +

    + +

    +a) Escaping - the characters can be replaced with related XML entities + +

    +
          > => &amp;gt;
    +      < => &amp;lt;
    +      &amp; => &amp;amp;
    +

    + +b) use CDATA section - any data can be stored within CDATA section +

    +
          <cell> Specail characters < > &amp;</cell>      <= Incorrect
    +      <cell> Specail characters &amp;lt; &amp;gt; &amp;amp;</cell>        <= Correct
    +      <cell><![CDATA[ Specail characters < > &amp;]]></cell>        <= Correct
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___special_characters_serialization.html b/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___special_characters_serialization.html new file mode 100755 index 0000000000..00c7113022 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___special_characters_serialization.html @@ -0,0 +1,121 @@ + + + + others:special_characters_serialization [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Special Characters Serialization

    +
    + +

    +When the grid has been serialized back to XML, special characters in cells can corrupt the final XML. To prevent such issue you can force the usage of CDATA during serialization. ( CDATA makes any content safe, so the final XML will be valid in any case ) +This mode can be enabled with the setSerializationLevel command +

    +
      grid.setSerializationLevel(false,false,false,false,false,true);
    +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___special_encodings_in_xml.html b/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___special_encodings_in_xml.html new file mode 100755 index 0000000000..e474e3f8f6 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___special_encodings_in_xml.html @@ -0,0 +1,122 @@ + + + + others:special_encodings_in_xml [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Special Encodings in XML

    +
    + +

    +The component has agnostic encoding, so it will support any encoding which are supported by browser, just make sure you have correct XML header +<?xml version=“1.0†encoding=“ISO-8859-1†?> +The encoding attribute must specify correct encoding value. ( if this attribute is omitted, UTF-8 will be used by default) +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___toc_dhtmlx_2_0_step_by_step.html b/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___toc_dhtmlx_2_0_step_by_step.html new file mode 100755 index 0000000000..d14eca2c0a --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___toc_dhtmlx_2_0_step_by_step.html @@ -0,0 +1,558 @@ + + + + others:toc_dhtmlx_2_0_step_by_step [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + + + + +

    +

    + +

    + +

    dhtmlx 2.0. Step by Step

    +
    + +

    +The purpose of this tutorial is to show in step-by-step manner the easy way of building complex interface for AJAX based application with the help of DHTMLX library. This tutorial contains main stream - which describes the process of building Windows like file explorer and some includes (marked with orange border) which describes more complex functionality or provides more details about some things which don't relate to File Explorer development. +

    + +

    +This tutorial is actual for dhtmlxSuite 2008 Rel.3 (initial release of dhtmlx 2.0). Further versions of dhtmlx components can contain some extra functionality which is not described here. Or some functionality can be used in some more convenient way. +

    + +

    +Files related to this tutorial can be downloaded here: dhtmlx20_tutorial.zip +

    + +
    +
    +

    Step 1. Create HTML File.

    +
    + +

    +Any front end of AJAX based application is HTML page. So, let's create a simple HTML page: +

    +
        <html>
    +    <head>
    +        <title>AJAX Application</title>
    +    </head>
    +    <body>
    +    </body>
    +    </html>
    +

    + +For further steps we'll use DHTMLX files concatenated with libCompiler, which is delivered within dhtmlxSuite and provides the possibility to unite all necessary components, functionality and appearance in single script file and single folder of necessary images. +

    + +
    +
    +

    Step 2. Insert DHTMLX Library File

    +
    + +

    +If you do not have PHP on the server where you inflated dhtmlxSuite archive to, then you can just choose from the presets which already exists in the package (see directory “presets†in the root of the package). To get all available possibilities, just get preset “fullâ€. +If you have PHP and you do want to create your own set of components and functionality, then brows to libCompiler/index.html. There you'll see tree of available components with nested nodes representing available functionality and possible variants of skinning on the right side. You have two options from now: +

    +
      +
    • choose preset from the dropdown list above the tree (after you make a selection it will check checkboxes near chosen components/functionality). You'll be able to extend selection or uncheck unnecessary points before generating resulting file. Also choose what skin you'd like to use for the application (on right side of libCompiler interface).
      +
    • +
    • or just start from bland print and check just necessary points yourself
      +
    • +
    + +

    +I would choose the first option. Moreover, on stage of development I would use “full†preset keeping the possibility to decrease the file size for the final stage of development. Well, either way you go, you'll get two files (js and css) and a folder with images at the end. Files are: dhtmlx.js and dhtmlx.css, folder name is imgs. Put all where you need them (css and imgs should be put togather as you got them). I put in the codebase directory in the root folder of my future app. And added js and css files to the html I have: +

    +
        <html>
    +    <head>
    +        <title>AJAX Application</title>
    +        <script src="codebase/dtmlx.js"></script>
    +        <link rel="STYLESHEET" type="text/css" href="codebase/dhtmlx.css">
    +    </head>
    +    <body>
    +    </body>
    +    </html>
    +
    +
    +

    Step 3. Prepare HTML Page

    +
    + +

    +To prepare HTML page for full-screen dhtmlxLayout, you need to set some parameters of body tag. This can be actual just for initial release of DHTMLX 2.0 and can be not necessary for newer releases: +

    +
        <body style="width:100%; height:100%; margin:0px; overflow:hidden;">
    +
    +
    +

    Step 4. Choose Layout for Application

    +
    + +

    +There are some predefined layout structures you can choose from. All of them are shown in dhtmlxLayout documentation. Their names start with number (reflects number of panels) followed by letter. For File Explorer we need quite simple one - “2Uâ€. Left panel for navigation tree and right one for directory content. To start coding I would add onload event handler to body and place all necessary code in event handler. Also, we need to define global variables for all necessary objects (left side navigation tree, folders and grid for directory view, menu and toolbar for… for menu and toolbar ;). And layout itself of course.). +

    + +

    +First we initialize full-screen layout. +

    +
        <script>
    +        var myLayout, myTree, myGrid, myFolders, myMenu, myToolbar
    +        var gl_view_type = "icons"; //icons,dlist,tiles ...
    +        var gl_view_bg = ""; //which component is used for directory content view - grid or folders, empty from start
    + 
    + 
    + 
    +        function doOnLoad(){
    +            myLayout = new dhtmlXLayoutObject(document.body, "2U", "dhx_blue");
    +        }
    +    </script>
    + 
    + 
    + 
    +    <body onload="doOnLoad()" style="width:100%; height:100%; margin:0px; overflow:hidden;">
    +
    + +

    Ways of Initialization

    +
    + +

    +Besides full screen initialization there are some others: +

    +
      +
    • window based (initialize layout inside dhtmlxWindow);
      +
    • +
    • object based (initialize layout inside some object on page, for example DIV);
      +
    • +
    • initialization inside another layout panel
      +
    • +
    + +

    + (Nested layouts topic is described below) +

    + +
    + +

    Unified Skins

    +
    + +

    +Some words about skins. dhtmlx components has various predefined skins. Since version 2.0, when we provide the possibility to unite different components under the application interface, we also added some skins which can be applied to entire interface. Under dhtmlxLayout all dhtmlx components get unified skin set for the layout automatically (but we keep the possibility to set skin to each component also). These unified skins names start with “dhx_â€:
    + + dhx_black, dhx_light, dhx_lightblue.
    + +So, using one of them as 3rd argument in dhtmlxLayout constructor you apply this skin on all dhtmlx components also. +

    + +
    + +

    Nested Layouts

    +
    + +

    +If non of predefined layouts suites you absolutely, you can combine structures inserting one into another. For example: + +

    +
              myLayoutTop = new dhtmlXLayoutObject(document.body, "2U");
    +          myLayoutIns =  new dhtmlXLayoutObject(myLayoutTop.cells("a"), "2U");
    + 
    +

    + +This code creates 2U layout in the left panel of myLayoutTop layout. Thus you'll have 3 panels for further wok now: +

    +
      +
    • myLayoutTop.cells(“bâ€);
      +
    • +
    • myLayoutIns.cells(“aâ€);
      +
    • +
    • myLayoutIns.cells(“bâ€).
      +
    • +
    + +
    +
    +

    Step 5. Adjust Panel Sizes

    +
    +
            function doOnLoad(){
    +            myLayout = new dhtmlXLayoutObject(document.body, "2U", "dhx_black");
    +            myLayout.cells("a").setWidth(250);
    +        }
    +
    + +

    Using Panels in Script

    +
    + +

    +There are two ways to apply to panel: + +

    +
      +
    • through the name (panels in dhtmlxLayout are named alphabetically: a,b,c,d etc.)
      +
    • +
    +
              dhxLayout.cells("a")
      +
    • through index (zero based)
      +
    • +
    +
              dhxLayout.items[0]
    +
    + +

    Panel Dimensions

    +
    + +

    +Besides width you can define panel height + +

    +
    myLayout.cells("a").setHeight(250);
    +
    +
    +

    Step 6. Define Panel Headers

    +
    + +

    +I'll leave header for the panel with folders tree and hide it for the panel with folder's content. Also, I'll change default header label (“a†for the panel in question) to “Foldersâ€. + +

    +
        function doOnLoad(){
    +        myLayout = new dhtmlXLayoutObject(document.body, "2U", "dhx_black");
    +        myLayout.cells("a").setText("Folders");
    +        myLayout.cells("b").hideHeader();
    +    }
    +

    + +Current version of dhtmlxLayout (2.0 build 80829) provides the possibility to collapse/expand panel with mouse click through header only. Thus if you hide header for the panel user will not be able to collapse this panel. +

    + +
    +
    +

    Step 7. Add Top Menu

    +
    + +

    +I'll create top menu with items more or less similar to those you can see in your Windows Explorer. You'll be able to find ready to use fileExplorerMenu.xml file in the package of this tutorial files (see link in the introduction). Most items are dsabled there, cause they are not the goal of this tutorial. XML structure for dhtmlxMenu 2.0 can be found in dhtmlxMenu 2.0 documentation or in the doc article which describes XML structures of all dhtmlx components. +

    +
        function doOnLoad(){
    +        ...
    +        myMenu = myLayout.attachMenu();
    +         myMenu.setImagePath("codebase/imgs/dhx_blue");
    +         myMenu.loadXML("xml/fileExplorerMenu.xml");
    +    }
    +
    +
    +

    Step 8. Add Toolbar

    +
    + +

    +Same as with the menu, toolbar items will be more or less similar to Windows File Explorer toolbar. You'll be able to find ready to use fileExplorerToolbar.xml file in the package of this tutorial files (see link in the introduction). XML structure for dhtmlxToolbar 2.0 can be found in dhtmlxToolbar 2.0 documentation or in the doc article which describes XML structures of all dhtmlx components. +

    +
        function doOnLoad(){
    +        ...
    +        myToolbar = myLayout.attachToolbar();
    +        myToolbar.setIconPath("images/toolbar/");
    +         myToolbar.loadXML("xml/fileExplorerToolbar.xml");
    +    }
    +
    +
    +

    Setting Icons or Images Paths for Components

    +
    + +

    +The difference in using setIconPath or setImagePath methods in dhtmlx components is the following: setIconPath defines the folder with graphical materials which are used in component but which are not parts of component - for example icons for buttons on toolbar, images in grid which represent some data. In most cases developer specifies the file names for these images (for example in XML) and these images are not delivered within components package (but can be in some cases). +

    + +

    +On the other hand setImagePath defines the path to folder with images which are parts of component. For example parts of component skin or integral part of component functionality (like radiobutton or checkbox icons in grid, tree, menu or sorting arrow in grid, plus/minus signs in treegrid and tree). In all cases such images are delivered with components and located in codebase/imgs folder (or imgs folder inside preset directory for dhtmlx presets). So, setImagePath sets path to this imgs folder related to the page you use components on. +

    + +
    +
    +

    Step 9. Add Tree and Populate with Data

    +
    + +

    +Most dhtmlx components can be attached to the dhtmlxLayout panel with single command. You did this with Menu and Toolbar. Same with the tree. After attaching the component you can work with it - configure, populate with data. In case of tree, we need to pass one value inside attachTree method (same we do for dhtmlxTree constructor when use it) - id of tree super-root element (id attribute of “tree†node in XML with tree structure). In most case “0†is ok. +

    +
        function doOnLoad(){
    +        ...
    +        myTree = myLayout.cells("a").attachTree("0");
    +        myTree.setImagePath("codebase/imgs/");
    +        myTree.setXMLAutoLoading("xml/directoryTree.php");
    +         myTree.loadXML("xml/directoryTree.php");
    +    }
    +

    + +directoryTree.php outputs directory structure in XML format required by dhtmlxTree. In our case it outputs one level at a time based on incoming directory (as directory structure can be quite big we use dynamical loading, loading just one level on request). If no directory came it ouputs starting directory (starting directory is specified in config.php included in tutorial files package. Find download link in Itroduction) +

    + +
    +
    +

    Step 10. Add Grid and Load Directory Content

    +
    + +

    +Again, we just add grid to dhtmlxLayout panel (in this case “bâ€) and then just work with grid - configuring and loading data. Tutorial of dhtmlxgrid basics is available here. +

    +
        function showDList(dir){
    +            //create grid in layout
    +        myGrid = myLayout.cells("b").attachGrid();
    +            //configure grid with script
    +        myGrid.setImagePath("codebase/imgs/");
    +        myGrid.setHeader("&amp;nbsp;,Name,Size,Type,Modified");
    +        myGrid.setColTypes("img,ro,ro,ro");
    +        myGrid.setInitWidths("20,250,50,100,*");
    +        myGrid.setColAlign("center,left,right,left");
    +            //load directory contnet description in XML format
    +        myGrid.load("xml/directoryContent.php?dir="+dir)
    +    }
    +

    + +directoryContent.php outputs directory content (based on incoming directory) in dhtmlxGrid XML format with all necessary details for each item (file or directory): +

    +
      +
    • icon file name;
      +
    • +
    • item name;
      +
    • +
    • item type (folder, text file, word document etc.);
      +
    • +
    • size;
      +
    • +
    • last modification date.
      +
    • +
    + +
    +
    +

    Step 11. Add Folders and Load Directory Content

    +
    + +

    +dhtmlxFolders is used to display data items one by one based on incoming data and some visualization template. In our case, we'll use same datasource as we do for grid - directoryContent.php - and visualization templates (rendering functions) to display data items either as icons or as tiles (names are similar to Windows Explorer, so you can take a look there to see what should be the result). +

    + +

    + +Adding dhtmlxFolders to layout is as simple as in previous steps: just one command. +

    +
        function showOtherViews(dir){
    +            //create Folders in layout
    +        myFolders = myLayout.cells("b").attachFolders();
    +            //confugure settings
    +        myFolders.enableSelection(true);
    +        myFolders.setItemTagName("row");
    +            //change type of items depending on required
    +        if(gl_view_type=="icons"){
    +            myFolders.setItemType("js_generic",rendFuncIcons);
    +            myFolders.setCSSBaseName("ficon");
    +        }else if(gl_view_type=="tiles"){
    +            myFolders.setItemType("js_generic",rendFuncTiles);
    +            myFolders.setCSSBaseName("ftiles");
    +        }
    +            myFolders.loadXML("xml/directoryContent.php?dir="+dir);
    +    }
    +
    +
    +

    Step 12. Activate Relations between Left and Right Parts

    +
    + +

    +Attaching dhtmlxFolders to panel “b†removes grid from there (as we attach grid to panel “b†too) and visa versa. So, depending on currently selected view format (user can make a choice in toolbar) we should call either showDList or showOtherViews function to switch between view formats. And we should do this in two cases: +

    +
      +
    1. when user clicks on some item in folders tree (load different content for same view format)
      +
    2. +
    3. when user changes view format through toolbar or menu (use different view format for same content)
      +
    4. +
    + +

    +In both cases we should use event handlers - of tree (onSelect) and of toolbar (onClick) and menu (onRadioClick as we used radiobuttons in menu for this purposes). Here is the code where I define event handlers and call same function in which I decide if to call showDList or showOtherViews. As far as menu and toolbar items use same IDs for view related items, I'll use same event handler for both. +

    +
      function showDirContent(dir){
    +          if(gl_view_type=="dlist"){
    +              showDList(dir);
    +          }else{
    +              showOtherViews(dir);
    +          }
    +  }
    + 
    + 
    + 
    +  //this function we'll use for toolbar and menu event handlers
    +  function defineTypeAndLoad(id){
    +      //set global variable value depending on user choice
    +      if(id=="view_dlist")
    +          gl_view_type="dlist";
    +      else if(id=="view_icons")
    +          gl_view_type="icons";
    +      else if(id=="view_tiles")
    +          gl_view_type="tiles";
    +      //call function
    +      if(id.toString().indexOf("view")==0)
    +          showDirContent(myTree.getSelectedItemId());
    +  }
    + 
    + 
    + 
    +  //tree event handler onSelect passes selected item ID as argument to the function. This is what we need in showDirContent, as I used directories as items IDs 
    +  myTree.attachEvent("onSelect",showDirContent)
    + 
    + 
    + 
    + 
    +  myToolbar.attachEvent("onClick",defineTypeAndLoad);
    +  myMenu.attachEvent("onRadioClick",defineTypeAndLoad);
    +
    +
    +

    Conclusion

    +
    + +

    + +This tutorial demonstrated how easy you can create the interface of your web application based on dhtmlxLayout. To investigate the application code in details, please download it here: dhtmlx20_tutorial.zip. You may continue coding it, extending basic functionality which was described in this tutorial and implemented in the resulting application. Final application logic was not the goal of this article, but interface built here is a good start for creating full functional File Browser. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___toc_handling_special_charac.html b/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___toc_handling_special_charac.html new file mode 100755 index 0000000000..1b29f8cb93 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___toc_handling_special_charac.html @@ -0,0 +1,132 @@ + + + + others:toc_handling_special_charac [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + + + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___toc_libcompiler.html b/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___toc_libcompiler.html new file mode 100755 index 0000000000..88795636f8 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___toc_libcompiler.html @@ -0,0 +1,314 @@ + + + + others:toc_libcompiler [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +
    +
    Table of Contents
    + +
    + + +

    +

    + +

    + +

    libComplier

    +
    + +

    +libComplier is a utility that is created for those users who intend to use dhtmlx components. This tool is designed to make the work of developers much easier. There's no need to set paths to different JS and CSS files required for every single dhtmlx component. libComplier generates one JS and one CSS files out of them all that the user can download and use. So, instead of a pack of different files, we get only two that contain all necessary code (including styles definition). What's more, the tool also provides users with all the necessary image files for the chosen component/components, stored in one archive. +

    + +

    + +This utility provides users with the possibility to: +

    +
      +
    • Choose the necessary component/components and desired set of functionality;
      +
    • +
    • Choose the necessary skin;
      +
    • +
    • Generate a JS and a CSS files containing compilation of all the JS and CSS files needed for the chosen component/components;
      +
    • +
    • Generate an archive containing a compiled JS file and all necessary images.
      +
    • +
    + +

    +Note: two last actions mentioned are done at the same time by one button click. +

    + +
    +
    +

    libComplier's Interface

    +
    + +

    +libComplier's interface is quite simple, intuitive, and user-friendly. The program is displayed with the help of “3J†Layout view with a Toolbar attached to it. Each item in this Layout can be collapsed or expanded; the dimensions of each them can be easily changed by dragging one of its sides with a mouse. +

    + +

    + +

    + +
    + +

    Tree

    +
    + +

    +The Tree is displayed in the left upper item of Compiler's layout. The main parent tree node is called “dhtmlxComponentsâ€. Its child branch items represent dhtmlx components. Leaf items stand for the main functionality of a certain component. +

    + +

    +When the user checks any leaf item, all its parent items become checked as well. On startup none of tree items is checked, and only the main parent node is expanded. There is the possibility to expand or collapse all tree nodes using toolbar buttons. Also the user can check or uncheck all tree nodes by one button click. +

    + +
    + +
    Features
    +
    + +

    +There is also a drop-down list called “Features†in the functional panel of the left upper item of Compiler's layout. This drop-down list contains ready-made presets for the most commonly used dhtmlx components or their combinations. +

    + +

    +The available ready-made presets are as follows: +

    +
      +
    • Custom Set - it's not a preset, it's the possibility for the user to return the tree to its initial state - when nothing is checked;
      +
    • +
    • Grid Basic - this preset includes basic grid functionality: data loading, sorting, resizing, editing (ed,ro,txt), data serialization, API for selection and rows adding;
      +
    • +
    • Grid Full - this preset contains all grid functionality - grouping, filtering, math, d-n-d, additional excell types;
      +
    • +
    • Tree Basic - here the user will find basic tree functionality: data loading from XML, ability to add|delete rows, d-n-d, checkboxes;
      +
    • +
    • Tree Full - all tree functionality is included into this preset (sorting, loading from json, serialization, operation with cookies);
      +
    • +
    • TreeGrid Basic - this preset contains basic treegrid functionality, which is loading and API, plus basic grid functionality;
      +
    • +
    • TreeGrid Full - in this preset the user will find basic treegrid functionality + filtering in treegrid + ability to show tree lines, as well as full grid functionality;
      +
    • +
    • Suite Basic - this preset includes grid, tree, treegrid, combo, and tabbar components with their basic functionality;
      +
    • +
    • Suite Full - all functionality of all components is added to this preset;
      +
    • +
    • Explorer Base - this preset is a base set to use the layout and the main components (tree and grid).
      +
    • +
    + +

    +When the user chooses one of the preset from the list, the utility checks the necessary tree nodes, which files will be compiled, and shows the details of the chosen preset. +On startup Custom Set preset is chosen from the drop-down list. + +

    + +
    + +

    Details

    +
    + +

    +The Details part is situated right under the tree, in the left lower part of Complier's layout. It shows brief description for leaf items and for some of the branch items. The details are used to give the user general information on the chosen item. + +

    + +
    + +

    Used Skin

    +
    + +

    +This part of Compiler's layout allows the user to choose the skin he wants to apply to his project. The only thing the user should do is to choose one of the available skins displayed by clicking the radio button near the skin name. Each available skin is backed up by a picture that can be viewed full size by clicking it. The picture then will be opened in a new window. +

    + +

    +On startup dhx_blue skin is chosen. + +

    + +
    + +

    Toolbar

    +
    + +

    +The toolbar contains the following buttons: +

    +
      +
    • Expand all - a click on this button expands all nodes in the Tree;
      +
    • +
    • Collapse all - a click on this button collapses all Tree nodes;
      +
    • +
    • Check all - a click on this button checks all Tree nodes (branch and leaf ones);
      +
    • +
    • Uncheck all - a click on this button uncheks all Tree nodes (branch and leaf ones);
      +
    • +
    • Generate - a click on this button generates a compiled JS and a CSS files in an archive, a link to which is displayed in a popup “Generated code†window.
      +
    • +
    + +

    + +Note: “Generated code†window will be displayed only if the user has already chosen a skin and a component/components in the Tree. +

    + +
    + +
    Generated Code Window
    +
    + +

    +This popup window appears when the user clicks “Generate†toolbar button. The window contains the progress text while the system generates the necessary data. +When the data is generated, the window displays the following: +

    +
      +
    • Text: “Ready code stored at [path to the directory the code is stored];
      +
    • +
    • Archive link: “Get all as zip†- a link to the generated archive containing a JS file, a CSS file, and all necessary images. The user can download the archive by clicking the link.
      +
    • +
    + +

    +The user should close the window after the download is finished. +

    + +
    +
    +

    How libComplier Works

    +
    + +

    +All files (JS and CSS ones) are compressed and compiled into one JS and one CSS files, which is put into an archive together with all the necessary image files. +

    + +

    +The only parameter in get_files.php file, that the user can indicate, is the following: + +

    +
          define("YUI",true);
    + 
    +

    + +Here true means that YUI compressor will be used for files compression. While false stands for more simple files compression. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___troubleshooting_common_errors.html b/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___troubleshooting_common_errors.html new file mode 100755 index 0000000000..9c5bc35dde --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/docsExplorer/start/others___troubleshooting_common_errors.html @@ -0,0 +1,193 @@ + + + + others:troubleshooting_common_errors [DHX documentation] + + + +
    + +
    + +
    + + DHTMLX Docs & Samples Explorer + +
    +
    +
    + + +
    + + +
    + + + + + + + +
    + + +
    + + +

    +

    + +

    + +

    Incorrect order of js files

    +
    + +

    + +Symptom: One of next error appears +

    +
      +
    1. “dhtmlx is undefinedâ€
      +
    2. +
    3. “dhtmlxExcell is undefinedâ€
      +
    4. +
    5. “dhtmlX[Something] is undefinedâ€
      +
    6. +
    + +

    + +Solution: Check order of js files, it must be +

    +
      +
    1. dhtmlxcommon.js
      +
    2. +
    3. dhtmlx[Component].js ( dhtmlxgrid.js for grid, dhtmlxtree.js for tree and etc. )
      +
    4. +
    5. any extensions for the component
      +
    6. +
    + +

    + +In case of dhtmlxgrid +

    +
      +
    1. dhtmlxcommon.js
      +
    2. +
    3. dhtmlxgridcell.js
      +
    4. +
    5. dhtmlxgrid.js
      +
    6. +
    7. any extensions for the grid
      +
    8. +
    + +

    + +In case of layout, windows, tabbar, accordion components you need to include dhtmlxcontainer.js as well +

    + +

    +Alternative solution: full package contains dhtmlx_full.zip ( dhtmlx_standard_full.zip ) archive, which contains “all included†dhtmlx.js, which can be used instead of separate js files. Including this single file is equal to including all base and extension files at once. +

    + +
    +
    +

    Incorrect XML

    +
    + +

    + +Symptom: “Incorrect XML†message. +

    + +

    +Reasons: +

    +
      +
    1. Incorrect XML structure - it may be caused by incorrectly formed XML tags, or by using some special content (& < > chars) inside the tag values. The simplest way to detect the reason for an XML error is open the url used for XML loading in a separate browser window. It will show the error details and exact position of the problematic code;
      +
    2. +
    3. (IE specific) Usage of incorrect content type - if you are using dynamic XML source (generate it by the script), you need to send the data with Content-type:text/xml;
      +
    4. +
    5. (FF specific) In case of FF the problem may occur because of any whitespace before <?xml declaraton (the declaration must be the first text in the output).
      +
    6. +
    + +

    + +If you are using a dynamic XML source, pay attention to the fact that the output during a stand alone test may not be equal to the output during the usage of the same feed with the component. You can try to use the debug version of dhtmlxcommon to check which urls are used and which xml output was sent during the data loading. +

    + +
    +
    + +
    + +
     
    + + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + + +
    + +
    + + + diff --git a/phpgwapi/js/dhtmlxtree/index.html b/phpgwapi/js/dhtmlxtree/index.html new file mode 100755 index 0000000000..952586ea3b --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/index.html @@ -0,0 +1,14 @@ + + + + + DHTMLX Package + + + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/js/dhtmlXCommon.js b/phpgwapi/js/dhtmlxtree/js/dhtmlXCommon.js new file mode 100755 index 0000000000..e8144c718a --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/js/dhtmlXCommon.js @@ -0,0 +1,928 @@ +dhtmlx=function(obj){ + for (var a in obj) dhtmlx[a]=obj[a]; + return dhtmlx; //simple singleton +}; +dhtmlx.extend_api=function(name,map,ext){ + var t = window[name]; + if (!t) return; //component not defined + window[name]=function(obj){ + if (obj && typeof obj == "object" && !obj.tagName){ + var that = t.apply(this,(map._init?map._init(obj):arguments)); + //global settings + for (var a in dhtmlx) + if (map[a]) this[map[a]](dhtmlx[a]); + //local settings + for (var a in obj){ + if (map[a]) this[map[a]](obj[a]); + else if (a.indexOf("on")==0){ + this.attachEvent(a,obj[a]); + } + } + } else + var that = t.apply(this,arguments); + if (map._patch) map._patch(this); + return that||this; + }; + window[name].prototype=t.prototype; + if (ext) + dhtmlXHeir(window[name].prototype,ext); +}; + +dhtmlxAjax={ + get:function(url,callback){ + var t=new dtmlXMLLoaderObject(true); + t.async=(arguments.length<3); + t.waitCall=callback; + t.loadXML(url) + return t; + }, + post:function(url,post,callback){ + var t=new dtmlXMLLoaderObject(true); + t.async=(arguments.length<4); + t.waitCall=callback; + t.loadXML(url,true,post) + return t; + }, + getSync:function(url){ + return this.get(url,null,true) + }, + postSync:function(url,post){ + return this.post(url,post,null,true); + } +} + +/** + * @desc: xmlLoader object + * @type: private + * @param: funcObject - xml parser function + * @param: object - jsControl object + * @param: async - sync/async mode (async by default) + * @param: rSeed - enable/disable random seed ( prevent IE caching) + * @topic: 0 + */ +function dtmlXMLLoaderObject(funcObject, dhtmlObject, async, rSeed){ + this.xmlDoc=""; + + if (typeof (async) != "undefined") + this.async=async; + else + this.async=true; + + this.onloadAction=funcObject||null; + this.mainObject=dhtmlObject||null; + this.waitCall=null; + this.rSeed=rSeed||false; + return this; +}; +/** + * @desc: xml loading handler + * @type: private + * @param: dtmlObject - xmlLoader object + * @topic: 0 + */ +dtmlXMLLoaderObject.prototype.waitLoadFunction=function(dhtmlObject){ + var once = true; + this.check=function (){ + if ((dhtmlObject)&&(dhtmlObject.onloadAction != null)){ + if ((!dhtmlObject.xmlDoc.readyState)||(dhtmlObject.xmlDoc.readyState == 4)){ + if (!once) + return; + + once=false; //IE 5 fix + if (typeof dhtmlObject.onloadAction == "function") + dhtmlObject.onloadAction(dhtmlObject.mainObject, null, null, null, dhtmlObject); + + if (dhtmlObject.waitCall){ + dhtmlObject.waitCall.call(this,dhtmlObject); + dhtmlObject.waitCall=null; + } + } + } + }; + return this.check; +}; + +/** + * @desc: return XML top node + * @param: tagName - top XML node tag name (not used in IE, required for Safari and Mozilla) + * @type: private + * @returns: top XML node + * @topic: 0 + */ +dtmlXMLLoaderObject.prototype.getXMLTopNode=function(tagName, oldObj){ + if (this.xmlDoc.responseXML){ + var temp = this.xmlDoc.responseXML.getElementsByTagName(tagName); + if(temp.length==0 && tagName.indexOf(":")!=-1) + var temp = this.xmlDoc.responseXML.getElementsByTagName((tagName.split(":"))[1]); + var z = temp[0]; + } else + var z = this.xmlDoc.documentElement; + + if (z){ + this._retry=false; + return z; + } + + if ((_isIE)&&(!this._retry)){ + //fall back to MS.XMLDOM + var xmlString = this.xmlDoc.responseText; + var oldObj = this.xmlDoc; + this._retry=true; + this.xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); + this.xmlDoc.async=false; + this.xmlDoc["loadXM"+"L"](xmlString); + + return this.getXMLTopNode(tagName, oldObj); + } + dhtmlxError.throwError("LoadXML", "Incorrect XML", [ + (oldObj||this.xmlDoc), + this.mainObject + ]); + + return document.createElement("DIV"); +}; + +/** + * @desc: load XML from string + * @type: private + * @param: xmlString - xml string + * @topic: 0 + */ +dtmlXMLLoaderObject.prototype.loadXMLString=function(xmlString){ + { + try{ + var parser = new DOMParser(); + this.xmlDoc=parser.parseFromString(xmlString, "text/xml"); + } + catch (e){ + this.xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); + this.xmlDoc.async=this.async; + this.xmlDoc["loadXM"+"L"](xmlString); + } + } + + this.onloadAction(this.mainObject, null, null, null, this); + + if (this.waitCall){ + this.waitCall(); + this.waitCall=null; + } +} +/** + * @desc: load XML + * @type: private + * @param: filePath - xml file path + * @param: postMode - send POST request + * @param: postVars - list of vars for post request + * @topic: 0 + */ +dtmlXMLLoaderObject.prototype.loadXML=function(filePath, postMode, postVars, rpc){ + if (this.rSeed) + filePath+=((filePath.indexOf("?") != -1) ? "&" : "?")+"a_dhx_rSeed="+(new Date()).valueOf(); + this.filePath=filePath; + + if ((!_isIE)&&(window.XMLHttpRequest)) + this.xmlDoc=new XMLHttpRequest(); + else { + this.xmlDoc=new ActiveXObject("Microsoft.XMLHTTP"); + } + + if (this.async) + this.xmlDoc.onreadystatechange=new this.waitLoadFunction(this); + this.xmlDoc.open(postMode ? "POST" : "GET", filePath, this.async); + + if (rpc){ + this.xmlDoc.setRequestHeader("User-Agent", "dhtmlxRPC v0.1 ("+navigator.userAgent+")"); + this.xmlDoc.setRequestHeader("Content-type", "text/xml"); + } + + else if (postMode) + this.xmlDoc.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); + + this.xmlDoc.setRequestHeader("X-Requested-With","XMLHttpRequest"); + this.xmlDoc.send(null||postVars); + + if (!this.async) + (new this.waitLoadFunction(this))(); +}; +/** + * @desc: destructor, cleans used memory + * @type: private + * @topic: 0 + */ +dtmlXMLLoaderObject.prototype.destructor=function(){ + this._filterXPath = null; + this._getAllNamedChilds = null; + this._retry = null; + this.async = null; + this.rSeed = null; + this.filePath = null; + this.onloadAction = null; + this.mainObject = null; + this.xmlDoc = null; + this.doXPath = null; + this.doXPathOpera = null; + this.doXSLTransToObject = null; + this.doXSLTransToString = null; + this.loadXML = null; + this.loadXMLString = null; + // this.waitLoadFunction = null; + this.doSerialization = null; + this.xmlNodeToJSON = null; + this.getXMLTopNode = null; + this.setXSLParamValue = null; + return null; +} + +dtmlXMLLoaderObject.prototype.xmlNodeToJSON = function(node){ + var t={}; + for (var i=0; i-1) + _isChrome=true; + +if ((navigator.userAgent.indexOf('Safari') != -1)||(navigator.userAgent.indexOf('Konqueror') != -1)){ + var _KHTMLrv = parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf('Safari')+7, 5)); + + if (_KHTMLrv > 525){ //mimic FF behavior for Safari 3.1+ + _isFF=true; + var _FFrv = 1.9; + } else + _isKHTML=true; +} else if (navigator.userAgent.indexOf('Opera') != -1){ + _isOpera=true; + _OperaRv=parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf('Opera')+6, 3)); +} + + +else if (navigator.appName.indexOf("Microsoft") != -1){ + _isIE=true; + if (navigator.appVersion.indexOf("MSIE 8.0")!= -1 && document.compatMode != "BackCompat") _isIE=8; + if (navigator.appVersion.indexOf("MSIE 9.0")!= -1 && document.compatMode != "BackCompat") _isIE=8; +} else { + _isFF=true; + var _FFrv = parseFloat(navigator.userAgent.split("rv:")[1]) +} + + +//multibrowser Xpath processor +dtmlXMLLoaderObject.prototype.doXPath=function(xpathExp, docObj, namespace, result_type){ + if (_isKHTML || (!_isIE && !window.XPathResult)) + return this.doXPathOpera(xpathExp, docObj); + + if (_isIE){ //IE + if (!docObj) + if (!this.xmlDoc.nodeName) + docObj=this.xmlDoc.responseXML + else + docObj=this.xmlDoc; + + if (!docObj) + dhtmlxError.throwError("LoadXML", "Incorrect XML", [ + (docObj||this.xmlDoc), + this.mainObject + ]); + + if (namespace != null) + docObj.setProperty("SelectionNamespaces", "xmlns:xsl='"+namespace+"'"); // + + if (result_type == 'single'){ + return docObj.selectSingleNode(xpathExp); + } + else { + return docObj.selectNodes(xpathExp)||new Array(0); + } + } else { //Mozilla + var nodeObj = docObj; + + if (!docObj){ + if (!this.xmlDoc.nodeName){ + docObj=this.xmlDoc.responseXML + } + else { + docObj=this.xmlDoc; + } + } + + if (!docObj) + dhtmlxError.throwError("LoadXML", "Incorrect XML", [ + (docObj||this.xmlDoc), + this.mainObject + ]); + + if (docObj.nodeName.indexOf("document") != -1){ + nodeObj=docObj; + } + else { + nodeObj=docObj; + docObj=docObj.ownerDocument; + } + var retType = XPathResult.ANY_TYPE; + + if (result_type == 'single') + retType=XPathResult.FIRST_ORDERED_NODE_TYPE + var rowsCol = new Array(); + var col = docObj.evaluate(xpathExp, nodeObj, function(pref){ + return namespace + }, retType, null); + + if (retType == XPathResult.FIRST_ORDERED_NODE_TYPE){ + return col.singleNodeValue; + } + var thisColMemb = col.iterateNext(); + + while (thisColMemb){ + rowsCol[rowsCol.length]=thisColMemb; + thisColMemb=col.iterateNext(); + } + return rowsCol; + } +} + +function _dhtmlxError(type, name, params){ + if (!this.catches) + this.catches=new Array(); + + return this; +} + +_dhtmlxError.prototype.catchError=function(type, func_name){ + this.catches[type]=func_name; +} +_dhtmlxError.prototype.throwError=function(type, name, params){ + if (this.catches[type]) + return this.catches[type](type, name, params); + + if (this.catches["ALL"]) + return this.catches["ALL"](type, name, params); + + alert("Error type: "+arguments[0]+"\nDescription: "+arguments[1]); + return null; +} + +window.dhtmlxError=new _dhtmlxError(); + + +//opera fake, while 9.0 not released +//multibrowser Xpath processor +dtmlXMLLoaderObject.prototype.doXPathOpera=function(xpathExp, docObj){ + //this is fake for Opera + var z = xpathExp.replace(/[\/]+/gi, "/").split('/'); + var obj = null; + var i = 1; + + if (!z.length) + return []; + + if (z[0] == ".") + obj=[docObj]; else if (z[0] == ""){ + obj=(this.xmlDoc.responseXML||this.xmlDoc).getElementsByTagName(z[i].replace(/\[[^\]]*\]/g, "")); + i++; + } else + return []; + + for (i; i < z.length; i++)obj=this._getAllNamedChilds(obj, z[i]); + + if (z[i-1].indexOf("[") != -1) + obj=this._filterXPath(obj, z[i-1]); + return obj; +} + +dtmlXMLLoaderObject.prototype._filterXPath=function(a, b){ + var c = new Array(); + var b = b.replace(/[^\[]*\[\@/g, "").replace(/[\[\]\@]*/g, ""); + + for (var i = 0; i < a.length; i++) + if (a[i].getAttribute(b)) + c[c.length]=a[i]; + + return c; +} +dtmlXMLLoaderObject.prototype._getAllNamedChilds=function(a, b){ + var c = new Array(); + + if (_isKHTML) + b=b.toUpperCase(); + + for (var i = 0; i < a.length; i++)for (var j = 0; j < a[i].childNodes.length; j++){ + if (_isKHTML){ + if (a[i].childNodes[j].tagName&&a[i].childNodes[j].tagName.toUpperCase() == b) + c[c.length]=a[i].childNodes[j]; + } + + else if (a[i].childNodes[j].tagName == b) + c[c.length]=a[i].childNodes[j]; + } + + return c; +} + +function dhtmlXHeir(a, b){ + for (var c in b) + if (typeof (b[c]) == "function") + a[c]=b[c]; + return a; +} + +function dhtmlxEvent(el, event, handler){ + if (el.addEventListener) + el.addEventListener(event, handler, false); + + else if (el.attachEvent) + el.attachEvent("on"+event, handler); +} + +//============= XSL Extension =================================== + +dtmlXMLLoaderObject.prototype.xslDoc=null; +dtmlXMLLoaderObject.prototype.setXSLParamValue=function(paramName, paramValue, xslDoc){ + if (!xslDoc) + xslDoc=this.xslDoc + + if (xslDoc.responseXML) + xslDoc=xslDoc.responseXML; + var item = + this.doXPath("/xsl:stylesheet/xsl:variable[@name='"+paramName+"']", xslDoc, + "http:/\/www.w3.org/1999/XSL/Transform", "single"); + + if (item != null) + item.firstChild.nodeValue=paramValue +} +dtmlXMLLoaderObject.prototype.doXSLTransToObject=function(xslDoc, xmlDoc){ + if (!xslDoc) + xslDoc=this.xslDoc; + + if (xslDoc.responseXML) + xslDoc=xslDoc.responseXML + + if (!xmlDoc) + xmlDoc=this.xmlDoc; + + if (xmlDoc.responseXML) + xmlDoc=xmlDoc.responseXML + + //MOzilla + if (!_isIE){ + if (!this.XSLProcessor){ + this.XSLProcessor=new XSLTProcessor(); + this.XSLProcessor.importStylesheet(xslDoc); + } + var result = this.XSLProcessor.transformToDocument(xmlDoc); + } else { + var result = new ActiveXObject("Msxml2.DOMDocument.3.0"); + try{ + xmlDoc.transformNodeToObject(xslDoc, result); + }catch(e){ + result = xmlDoc.transformNode(xslDoc); + } + } + return result; +} + +dtmlXMLLoaderObject.prototype.doXSLTransToString=function(xslDoc, xmlDoc){ + var res = this.doXSLTransToObject(xslDoc, xmlDoc); + if(typeof(res)=="string") + return res; + return this.doSerialization(res); +} + +dtmlXMLLoaderObject.prototype.doSerialization=function(xmlDoc){ + if (!xmlDoc) + xmlDoc=this.xmlDoc; + if (xmlDoc.responseXML) + xmlDoc=xmlDoc.responseXML + if (!_isIE){ + var xmlSerializer = new XMLSerializer(); + return xmlSerializer.serializeToString(xmlDoc); + } else + return xmlDoc.xml; +} + +/** +* @desc: +* @type: private +*/ +dhtmlxEventable=function(obj){ + obj.attachEvent=function(name, catcher, callObj){ + name='ev_'+name.toLowerCase(); + if (!this[name]) + this[name]=new this.eventCatcher(callObj||this); + + return(name+':'+this[name].addEvent(catcher)); //return ID (event name & event ID) + } + obj.callEvent=function(name, arg0){ + name='ev_'+name.toLowerCase(); + if (this[name]) + return this[name].apply(this, arg0); + return true; + } + obj.checkEvent=function(name){ + return (!!this['ev_'+name.toLowerCase()]) + } + obj.eventCatcher=function(obj){ + var dhx_catch = []; + var z = function(){ + var res = true; + for (var i = 0; i < dhx_catch.length; i++){ + if (dhx_catch[i] != null){ + var zr = dhx_catch[i].apply(obj, arguments); + res=res&&zr; + } + } + return res; + } + z.addEvent=function(ev){ + if (typeof (ev) != "function") + ev=eval(ev); + if (ev) + return dhx_catch.push(ev)-1; + return false; + } + z.removeEvent=function(id){ + dhx_catch[id]=null; + } + return z; + } + obj.detachEvent=function(id){ + if (id != false){ + var list = id.split(':'); //get EventName and ID + this[list[0]].removeEvent(list[1]); //remove event + } + } + obj.detachAllEvents = function(){ + for (var name in this){ + if (name.indexOf("ev_")==0) + delete this[name]; + } + } +} diff --git a/phpgwapi/js/dhtmlxtree/js/dhtmlXTree.js b/phpgwapi/js/dhtmlxtree/js/dhtmlXTree.js new file mode 100755 index 0000000000..b5816eee04 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/js/dhtmlXTree.js @@ -0,0 +1,211 @@ +//v.2.6 build 100722 + +/* +Copyright DHTMLX LTD. http://www.dhtmlx.com +You allowed to use this component or parts of it under GPL terms +To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com +*/ + + +function xmlPointer(data){this.d=data;};xmlPointer.prototype={text:function(){if (!_isFF)return this.d.xml;var x = new XMLSerializer();return x.serializeToString(this.d);}, + get:function(name){return this.d.getAttribute(name);}, + exists:function(){return !!this.d }, + content:function(){return this.d.firstChild?this.d.firstChild.data:"";}, + each:function(name,f,t,i){var a=this.d.childNodes;var c=new xmlPointer();if (a.length)for (i=i||0;i0){beforeNode=new Object;beforeNode.tr=parentObject.childNodes[0].tr.previousSibling;};parentObject._has_top=true;for (ik=Count;ik>0;ik--)Nodes[ik]=Nodes[ik-1];Count=0;break;}}};var n;if (!(n=this._idpull[itemId])|| n.span!=-1){n=Nodes[Count]=new dhtmlXTreeItemObject(itemId,itemText,parentObject,this,itemActionHandler,1);itemId = Nodes[Count].id;parentObject.childsCount++;};if(!n.htmlNode){n.label=itemText;n.htmlNode=this._createItem((this.checkBoxOff?1:0),n);n.htmlNode.objBelong=n;};if(image1)n.images[0]=image1;if(image2)n.images[1]=image2;if(image3)n.images[2]=image3;var tr=this._drawNewTr(n.htmlNode);if ((this.XMLloadingWarning)||(this._hAdI)) + n.htmlNode.parentNode.parentNode.style.display="none";if ((beforeNode)&&(beforeNode.tr.nextSibling)) + parentObject.htmlNode.childNodes[0].insertBefore(tr,beforeNode.tr.nextSibling);else + if (this.parsingOn==parentObject.id){this.parsedArray[this.parsedArray.length]=tr;}else + parentObject.htmlNode.childNodes[0].appendChild(tr);if ((beforeNode)&&(!beforeNode.span)) beforeNode=null;if (this.XMLsource)if ((childs)&&(childs!=0)) n.XMLload=0;else n.XMLload=1;n.tr=tr;tr.nodem=n;if (parentObject.itemId==0)tr.childNodes[0].className="hiddenRow";if ((parentObject._r_logic)||(this._frbtr)) + this._setSrc(n.htmlNode.childNodes[0].childNodes[0].childNodes[1].childNodes[0],this.imPath+this.radioArray[0]);if (optionStr){var tempStr=optionStr.split(",");for (var i=0;i=2){this._correctPlus(Nodes[parentObject.childsCount-2]);this._correctLine(Nodes[parentObject.childsCount-2]);};if (parentObject.childsCount!=2)this._correctPlus(Nodes[0]);if (this.tscheck)this._correctCheckStates(parentObject);if (this._onradh){if (this.xmlstate==1){var old=this.onXLE;this.onXLE=function(id){this._onradh(itemId);if (old)old(id);}}else + this._onradh(itemId);}};return n;};dhtmlXTreeObject.prototype.insertNewItem=function(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,children){var parentObject=this._globalIdStorageFind(parentId);if (!parentObject)return (-1);var nodez=this._attachChildNode(parentObject,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,children);return nodez;};dhtmlXTreeObject.prototype.insertNewChild=function(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,children){return this.insertNewItem(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,children);};dhtmlXTreeObject.prototype._parseXMLTree=function(a,b,c,d,xml){var p=new xmlPointer(xml.getXMLTopNode("tree"));a._parse(p);a._p=p;};dhtmlXTreeObject.prototype._parseItem=function(c,temp,preNode,befNode){var id;if (this._srnd && (!this._idpull[id=c.get("id")] || !this._idpull[id].span)) + {this._addItemSRND(temp.id,id,c);return;};var a=c.get_all();if ((typeof(this.waitUpdateXML)=="object")&&(!this.waitUpdateXML[a.id])){this._parse(c,a.id,1);return;};var zST=[];if (a.select)zST.push("SELECT");if (a.top)zST.push("TOP");if (a.call)this.nodeAskingCall=a.id;if (a.checked==-1)zST.push("HCHECKED");else if (a.checked)zST.push("CHECKED");if (a.open)zST.push("OPEN");if (this.waitUpdateXML){if (this._globalIdStorageFind(a.id)) + var newNode=this.updateItem(a.id,a.text,a.im0,a.im1,a.im2,a.checked);else{if (this.npl==0)zST.push("TOP");else preNode=temp.childNodes[this.npl];var newNode=this._attachChildNode(temp,a.id,a.text,0,a.im0,a.im1,a.im2,zST.join(","),a.child,0,preNode);preNode=null;}}else + var newNode=this._attachChildNode(temp,a.id,a.text,0,a.im0,a.im1,a.im2,zST.join(","),a.child,(befNode||0),preNode);if (a.tooltip)newNode.span.parentNode.parentNode.title=a.tooltip;if (a.style)if (newNode.span.style.cssText)newNode.span.style.cssText+=(";"+a.style);else + newNode.span.setAttribute("style",newNode.span.getAttribute("style")+";"+a.style);if (a.radio)newNode._r_logic=true;if (a.nocheckbox){var check_node=newNode.span.parentNode.previousSibling.previousSibling;check_node.childNodes[0].style.display='none';if (window._KHTMLrv)check_node.style.display="none";newNode.nocheckbox=true;};if (a.disabled){if (a.checked!=null)this._setCheck(newNode,a.checked);this.disableCheckbox(newNode,1);};newNode._acc=a.child||0;if (this.parserExtension)this.parserExtension._parseExtension.call(this,c,a,(temp?temp.id:0));this.setItemColor(newNode,a.aCol,a.sCol);if (a.locked=="1")this.lockItem(newNode.id,true,true);if ((a.imwidth)||(a.imheight)) this.setIconSize(a.imwidth,a.imheight,newNode);if ((a.closeable=="0")||(a.closeable=="1")) this.setItemCloseable(newNode,a.closeable);var zcall="";if (a.topoffset)this.setItemTopOffset(newNode,a.topoffset);if ((!this.slowParse)||(typeof(this.waitUpdateXML)=="object")){if (c.sub_exists("item")) + zcall=this._parse(c,a.id,1);};if (zcall!="")this.nodeAskingCall=zcall;c.each("userdata",function(u){this.setUserData(c.get("id"),u.get("name"),u.content());},this) + + + };dhtmlXTreeObject.prototype._parse=function(p,parentId,level,start){if (this._srnd && !this.parentObject.offsetHeight){var self=this;return window.setTimeout(function(){self._parse(p,parentId,level,start);},100);};if (!p.exists()) return;this.skipLock=true;if (!parentId){parentId=p.get("id");if (p.get("radio")) + this.htmlNode._r_logic=true;this.parsingOn=parentId;this.parsedArray=new Array();this.setCheckList="";this.nodeAskingCall="";};var temp=this._globalIdStorageFind(parentId);if (!temp)return dhtmlxError.throwError("DataStructure","XML refers to not existing parent");this.parsCount=this.parsCount?(this.parsCount+1):1;this.XMLloadingWarning=1;if ((temp.childsCount)&&(!start)&&(!this._edsbps)&&(!temp._has_top)) + var preNode=0;else + var preNode=0;this.npl=0;p.each("item",function(c,i){temp.XMLload=1;if ((this._epgps)&&(this._epgpsC==this.npl)){this._setNextPageSign(temp,this.npl+1*(start||0),level,node);return -1;};this._parseItem(c,temp,0,preNode);this.npl++;},this,start);if (!level){p.each("userdata",function(u){this.setUserData(p.get("id"),u.get("name"),u.content());},this);temp.XMLload=1;if (this.waitUpdateXML){this.waitUpdateXML=false;for (var i=temp.childsCount-1;i>=0;i--)if (temp.childNodes[i]._dmark)this.deleteItem(temp.childNodes[i].id);};var parsedNodeTop=this._globalIdStorageFind(this.parsingOn);for (var i=0;i1){if ( ( (Nodes[1].style.display!="none")|| (mode==1) ) && (mode!=2) ) {this.allTree.childNodes[0].border = "1";this.allTree.childNodes[0].border = "0";nodestyle="none";}else nodestyle="";for (var i=1;i7)td2.style.width="999999px";else if (!window._KHTMLrv)td2.style.width="100%";itemObject.span.innerHTML=itemObject.label;td2.appendChild(itemObject.span);td2.parentObject=itemObject;td1.parentObject=itemObject;td2.onclick=this.onRowSelect;td1.onclick=this.onRowClick;td2.ondblclick=this.onRowClick2;if (this.ettip)tr.title=itemObject.label;if (this.dragAndDropOff){if (this._aimgs){this.dragger.addDraggableItem(td12,this);td12.parentObject=itemObject;};this.dragger.addDraggableItem(td2,this);};itemObject.span.style.paddingLeft="5px";itemObject.span.style.paddingRight="5px";td2.style.verticalAlign="";td2.style.fontSize="10pt";td2.style.cursor=this.style_pointer;tr.appendChild(td1);tr.appendChild(td11);tr.appendChild(td12);tr.appendChild(td2);tbody.appendChild(tr);table.appendChild(tbody);if (this.ehlt || this.checkEvent("onMouseIn")|| this.checkEvent("onMouseOut")){tr.onmousemove=this._itemMouseIn;tr[(_isIE)?"onmouseleave":"onmouseout"]=this._itemMouseOut;};return table;};dhtmlXTreeObject.prototype.setImagePath=function( newPath ){this.imPath=newPath;this.iconURL=newPath;};dhtmlXTreeObject.prototype.setIconPath=function(path){this.iconURL=path;};dhtmlXTreeObject.prototype.setOnRightClickHandler=function(func){this.attachEvent("onRightClick",func);};dhtmlXTreeObject.prototype.setOnClickHandler=function(func){this.attachEvent("onClick",func);};dhtmlXTreeObject.prototype.setOnSelectStateChange=function(func){this.attachEvent("onSelect",func);};dhtmlXTreeObject.prototype.setXMLAutoLoading=function(filePath){this.XMLsource=filePath;};dhtmlXTreeObject.prototype.setOnCheckHandler=function(func){this.attachEvent("onCheck",func);};dhtmlXTreeObject.prototype.setOnOpenHandler=function(func){this.attachEvent("onOpenStart",func);};dhtmlXTreeObject.prototype.setOnOpenStartHandler=function(func){this.attachEvent("onOpenStart",func);};dhtmlXTreeObject.prototype.setOnOpenEndHandler=function(func){this.attachEvent("onOpenEnd",func);};dhtmlXTreeObject.prototype.setOnDblClickHandler=function(func){this.attachEvent("onDblClick",func);};dhtmlXTreeObject.prototype.openAllItems=function(itemId) + {var temp=this._globalIdStorageFind(itemId);if (!temp)return 0;this._xopenAll(temp);};dhtmlXTreeObject.prototype.getOpenState=function(itemId){var temp=this._globalIdStorageFind(itemId);if (!temp)return "";return this._getOpenState(temp);};dhtmlXTreeObject.prototype.closeAllItems=function(itemId) + {if (itemId===window.undefined)itemId=this.rootId;var temp=this._globalIdStorageFind(itemId);if (!temp)return 0;this._xcloseAll(temp);this.allTree.childNodes[0].border = "1";this.allTree.childNodes[0].border = "0";};dhtmlXTreeObject.prototype.setUserData=function(itemId,name,value){var sNode=this._globalIdStorageFind(itemId,0,true);if (!sNode)return;if(name=="hint")sNode.htmlNode.childNodes[0].childNodes[0].title=value;if (typeof(sNode.userData["t_"+name])=="undefined"){if (!sNode._userdatalist)sNode._userdatalist=name;else sNode._userdatalist+=","+name;};sNode.userData["t_"+name]=value;};dhtmlXTreeObject.prototype.getUserData=function(itemId,name){var sNode=this._globalIdStorageFind(itemId,0,true);if (!sNode)return;return sNode.userData["t_"+name];};dhtmlXTreeObject.prototype.getItemColor=function(itemId) + {var temp=this._globalIdStorageFind(itemId);if (!temp)return 0;var res= new Object();if (temp.acolor)res.acolor=temp.acolor;if (temp.scolor)res.scolor=temp.scolor;return res;};dhtmlXTreeObject.prototype.setItemColor=function(itemId,defaultColor,selectedColor) + {if ((itemId)&&(itemId.span)) + var temp=itemId;else + var temp=this._globalIdStorageFind(itemId);if (!temp)return 0;else {if (temp.i_sel){if (selectedColor)temp.span.style.color=selectedColor;}else + {if (defaultColor)temp.span.style.color=defaultColor;};if (selectedColor)temp.scolor=selectedColor;if (defaultColor)temp.acolor=defaultColor;}};dhtmlXTreeObject.prototype.getItemText=function(itemId) + {var temp=this._globalIdStorageFind(itemId);if (!temp)return 0;return(temp.htmlNode.childNodes[0].childNodes[0].childNodes[3].childNodes[0].innerHTML);};dhtmlXTreeObject.prototype.getParentId=function(itemId) + {var temp=this._globalIdStorageFind(itemId);if ((!temp)||(!temp.parentObject)) return "";return temp.parentObject.id;};dhtmlXTreeObject.prototype.changeItemId=function(itemId,newItemId) + {if (itemId==newItemId)return;var temp=this._globalIdStorageFind(itemId);if (!temp)return 0;temp.id=newItemId;temp.span.contextMenuId=newItemId;this._idpull[newItemId]=this._idpull[itemId];delete this._idpull[itemId];};dhtmlXTreeObject.prototype.doCut=function(){if (this.nodeCut)this.clearCut();this.nodeCut=(new Array()).concat(this._selected);for (var i=0;i=2){this._correctPlus(Nodes[targetObject.childsCount-2]);this._correctLine(Nodes[targetObject.childsCount-2]);};this._correctPlus(Nodes[targetObject.childsCount-1]);if (this.tscheck)this._correctCheckStates(targetObject);if (oldTree.tscheck)oldTree._correctCheckStates(z);};if (c>1){oldTree._correctPlus(z.childNodes[c-2]);oldTree._correctLine(z.childNodes[c-2]);};oldTree._correctPlus(z);oldTree._correctLine(z);this.callEvent("onDrop",[itemObject.id,targetObject.id,(beforeNode?beforeNode.id:null),oldTree,targetObject.treeNod]);return itemObject.id;};dhtmlXTreeObject.prototype._clearStyles=function(itemObject){if (!itemObject.htmlNode)return;var td1=itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[1];var td3=td1.nextSibling.nextSibling;itemObject.span.innerHTML=itemObject.label;itemObject.i_sel=false;if (itemObject._aimgs)this.dragger.removeDraggableItem(td1.nextSibling);if (this.checkBoxOff){td1.childNodes[0].style.display="";td1.childNodes[0].onclick=this.onCheckBoxClick;this._setSrc(td1.childNodes[0],this.imPath+this.checkArray[itemObject.checkstate]);}else td1.childNodes[0].style.display="none";td1.childNodes[0].treeNod=this;this.dragger.removeDraggableItem(td3);if (this.dragAndDropOff)this.dragger.addDraggableItem(td3,this);if (this._aimgs)this.dragger.addDraggableItem(td1.nextSibling,this);td3.childNodes[0].className="standartTreeRow";td3.onclick=this.onRowSelect;td3.ondblclick=this.onRowClick2;td1.previousSibling.onclick=this.onRowClick;this._correctLine(itemObject);this._correctPlus(itemObject);for (var i=0;i0)) + {if (node.childNodes[i].unParsed)var zb=this._getAllScraggyItemsXML(node.childNodes[i].unParsed,1);else + var zb=this._getAllScraggyItems(node.childNodes[i]) + + if (zb)if (z)z+=this.dlmtr+zb;else z=zb;}else + if (!z)z=node.childNodes[i].id;else z+=this.dlmtr+node.childNodes[i].id;};return z;};dhtmlXTreeObject.prototype._getAllFatItems =function(node) + {var z="";for (var i=0;i0)) + {if (!z)z=node.childNodes[i].id;else z+=this.dlmtr+node.childNodes[i].id;if (node.childNodes[i].unParsed)var zb=this._getAllFatItemsXML(node.childNodes[i].unParsed,1);else + var zb=this._getAllFatItems(node.childNodes[i]) + + if (zb)z+=this.dlmtr+zb;}};return z;};dhtmlXTreeObject.prototype._getAllSubItems =function(itemId,z,node) + {if (node)temp=node;else {var temp=this._globalIdStorageFind(itemId);};if (!temp)return 0;z="";for (var i=0;i=z.childsCount)) return null;return z.childNodes[index].id;};dhtmlXTreeObject.prototype.getChildItemIdByIndex=function(itemId,index){var z=this._globalIdStorageFind(itemId);if ((!z)||(index>=z.childsCount)) return null;return z.childNodes[index].id;};dhtmlXTreeObject.prototype.setDragHandler=function(func){this.attachEvent("onDrag",func);};dhtmlXTreeObject.prototype._clearMove=function(){if (this._lastMark){this._lastMark.className=this._lastMark.className.replace(/dragAndDropRow/g,"");this._lastMark=null;};this.allTree.className=this.allTree.className.replace(" selectionBox","");};dhtmlXTreeObject.prototype.enableDragAndDrop=function(mode,rmode){if (mode=="temporary_disabled"){this.dADTempOff=false;mode=true;}else + this.dADTempOff=true;this.dragAndDropOff=convertStringToBoolean(mode);if (this.dragAndDropOff)this.dragger.addDragLanding(this.allTree,this);if (arguments.length>1)this._ddronr=(!convertStringToBoolean(rmode));};dhtmlXTreeObject.prototype._setMove=function(htmlNode,x,y){if (htmlNode.parentObject.span){var a1=getAbsoluteTop(htmlNode);var a2=getAbsoluteTop(this.allTree)-this.allTree.scrollTop;this.dadmodec=this.dadmode;this.dadmodefix=0;var zN=htmlNode.parentObject.span;zN.className+=" dragAndDropRow";this._lastMark=zN;this._autoScroll(null,a1,a2);}};dhtmlXTreeObject.prototype._autoScroll=function(node,a1,a2){if (this.autoScroll){if (node){a1=getAbsoluteTop(node);a2=getAbsoluteTop(this.allTree);};if ( (a1-a2-parseInt(this.allTree.scrollTop))>(parseInt(this.allTree.offsetHeight)-50) ) + this.allTree.scrollTop=parseInt(this.allTree.scrollTop)+20;if ( (a1-a2)<(parseInt(this.allTree.scrollTop)+30) ) + this.allTree.scrollTop=parseInt(this.allTree.scrollTop)-20;}};dhtmlXTreeObject.prototype._createDragNode=function(htmlObject,e){if (!this.dADTempOff)return null;var obj=htmlObject.parentObject;if (!this.callEvent("onBeforeDrag",[obj.id])) return null;if (!obj.i_sel)this._selectItem(obj,e);var dragSpan=document.createElement('div');var text=new Array();if (this._itim_dg)for (var i=0;i"+this._selected[i].span.innerHTML+"";else + text=this.getSelectedItemText().split(this.dlmtr);dragSpan.innerHTML=text.join("");dragSpan.style.position="absolute";dragSpan.className="dragSpanDiv";this._dragged=(new Array()).concat(this._selected);return dragSpan;};dhtmlXTreeObject.prototype._focusNode=function(item){var z=getAbsoluteTop(item.htmlNode)-getAbsoluteTop(this.allTree);if ((z>(this.allTree.offsetHeight-30))||(z<0)) + this.allTree.scrollTop=z+this.allTree.scrollTop;};dhtmlXTreeObject.prototype._preventNsDrag=function(e){if ((e)&&(e.preventDefault)) {e.preventDefault();return false;};return false;};dhtmlXTreeObject.prototype._drag=function(sourceHtmlObject,dhtmlObject,targetHtmlObject){if (this._autoOpenTimer)clearTimeout(this._autoOpenTimer);if (!targetHtmlObject.parentObject){targetHtmlObject=this.htmlNode.htmlNode.childNodes[0].childNodes[0].childNodes[1].childNodes[0];this.dadmodec=0;};this._clearMove();var z=sourceHtmlObject.parentObject.treeNod;if ((z)&&(z._clearMove)) z._clearMove("");if ((!this.dragMove)||(this.dragMove())) + {if ((!z)||(!z._clearMove)||(!z._dragged)) var col=new Array(sourceHtmlObject.parentObject);else var col=z._dragged;var trg=targetHtmlObject.parentObject;for (var i=0;i2)?(sNode.checkstate-3):sNode.checkstate);this._setCheck(sNode);if (sNode.dscheck<3)sNode.dscheck=false;};dhtmlXTreeObject.prototype.setEscapingMode=function(mode){this.utfesc=mode;};dhtmlXTreeObject.prototype.enableHighlighting=function(mode) {this.ehlt=true;this.ehlta=convertStringToBoolean(mode);};dhtmlXTreeObject.prototype._itemMouseOut=function(){var that=this.childNodes[3].parentObject;var tree=that.treeNod;tree.callEvent("onMouseOut",[that.id]);if (that.id==tree._l_onMSI)tree._l_onMSI=null;if (!tree.ehlta)return;that.span.className=that.span.className.replace("_lor","");};dhtmlXTreeObject.prototype._itemMouseIn=function(){var that=this.childNodes[3].parentObject;var tree=that.treeNod;if (tree._l_onMSI!=that.id)tree.callEvent("onMouseIn",[that.id]);tree._l_onMSI=that.id;if (!tree.ehlta)return;that.span.className=that.span.className.replace("_lor","");that.span.className=that.span.className.replace(/((standart|selected)TreeRow)/,"$1_lor");};dhtmlXTreeObject.prototype.enableActiveImages=function(mode){this._aimgs=convertStringToBoolean(mode);};dhtmlXTreeObject.prototype.focusItem=function(itemId){var sNode=this._globalIdStorageFind(itemId);if (!sNode)return (0);this._focusNode(sNode);};dhtmlXTreeObject.prototype.getAllSubItems =function(itemId){return this._getAllSubItems(itemId);};dhtmlXTreeObject.prototype.getAllChildless =function(){return this._getAllScraggyItems(this.htmlNode);};dhtmlXTreeObject.prototype.getAllLeafs=dhtmlXTreeObject.prototype.getAllChildless;dhtmlXTreeObject.prototype._getAllScraggyItems =function(node) + {var z="";for (var i=0;i0)) + {if (node.childNodes[i].unParsed)var zb=this._getAllScraggyItemsXML(node.childNodes[i].unParsed,1);else + var zb=this._getAllScraggyItems(node.childNodes[i]) + + if (zb)if (z)z+=this.dlmtr+zb;else z=zb;}else + if (!z)z=node.childNodes[i].id;else z+=this.dlmtr+node.childNodes[i].id;};return z;};dhtmlXTreeObject.prototype._getAllFatItems =function(node) + {var z="";for (var i=0;i0)) + {if (!z)z=node.childNodes[i].id;else z+=this.dlmtr+node.childNodes[i].id;if (node.childNodes[i].unParsed)var zb=this._getAllFatItemsXML(node.childNodes[i].unParsed,1);else + var zb=this._getAllFatItems(node.childNodes[i]) + + if (zb)z+=this.dlmtr+zb;}};return z;};dhtmlXTreeObject.prototype.getAllItemsWithKids =function(){return this._getAllFatItems(this.htmlNode);};dhtmlXTreeObject.prototype.getAllFatItems=dhtmlXTreeObject.prototype.getAllItemsWithKids;dhtmlXTreeObject.prototype.getAllChecked=function(){return this._getAllChecked("","",1);};dhtmlXTreeObject.prototype.getAllUnchecked=function(itemId){if (itemId)itemId=this._globalIdStorageFind(itemId);return this._getAllChecked(itemId,"",0);};dhtmlXTreeObject.prototype.getAllPartiallyChecked=function(){return this._getAllChecked("","",2);};dhtmlXTreeObject.prototype.getAllCheckedBranches=function(){var temp= this._getAllChecked("","",1);if (temp!="")temp+=this.dlmtr;return temp+this._getAllChecked("","",2);};dhtmlXTreeObject.prototype._getAllChecked=function(htmlNode,list,mode){if (!htmlNode)htmlNode=this.htmlNode;if (htmlNode.checkstate==mode)if (!htmlNode.nocheckbox){if (list)list+=this.dlmtr+htmlNode.id;else list=htmlNode.id;};var j=htmlNode.childsCount;for (var i=0;i";temp.span.style.paddingRight=temp.span.style.paddingLeft='0px';temp.span.onclick = temp.span.ondblclick= function(e){(e||event).cancelBubble = true;};temp.span.childNodes[0].value=editText;temp.span.childNodes[0].onselectstart=function(e){(e||event).cancelBubble=true;return true;};temp.span.childNodes[0].onmousedown=function(e){(e||event).cancelBubble=true;return true;};temp.span.childNodes[0].focus();temp.span.childNodes[0].focus();temp.span.onclick=function (e){(e||event).cancelBubble=true;return false;};temp.span.className="";temp.span.parentNode.className="";var self=this;temp.span.childNodes[0].onkeydown=function(e){if (!e)e=window.event;if (e.keyCode==13){e.cancelBubble=true;self._stopEdit(window.undefined);}else if (e.keyCode==27){self._editCell.span.childNodes[0].value=self._editCell._oldValue;self._stopEdit(window.undefined);};(e||event).cancelBubble=true;};this.callEvent("onEdit",[1,id,this]);}}; + + +//v.2.6 build 100722 + +/* +Copyright DHTMLX LTD. http://www.dhtmlx.com +You allowed to use this component or parts of it under GPL terms +To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com +*/ \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/js/ext/dhtmlxtree_er.js b/phpgwapi/js/dhtmlxtree/js/ext/dhtmlxtree_er.js new file mode 100755 index 0000000000..2ee60c6745 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/js/ext/dhtmlxtree_er.js @@ -0,0 +1,18 @@ +//v.2.6 build 100722 + +/* +Copyright DHTMLX LTD. http://www.dhtmlx.com +You allowed to use this component or parts of it under GPL terms +To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com +*/ +var _all_used_trees=new Array();dhtmlXTreeObject.prototype._createSelfA2=dhtmlXTreeObject.prototype._createSelf;dhtmlXTreeObject.prototype._createSelf=function(){_all_used_trees[_all_used_trees.length]=this;return this._createSelfA2();};window.onerror=function (a,b,c,d){var d=document.createElement("DIV");d.style.cssText="position:absolute;background-color:white;top:10px;left:10px;z-index:20;width:500px;border: 2px silver outset;";var dh="
    Javascript Error
    ";dh+="
    The next error ocured :
    "+a+" in "+b+" at line "+c+"
    ";dh+="
    If you think that error can be caused by dhtmlxtree press the 'Generate report' button and send generated report to support@dhtmlx.com
    ";dh+="";dh+="
    ";d.innerHTML=dh;document.body.appendChild(d);return true;};function dhtmlxtreeErrorReport(a,b,c){var str=a+" ["+b+"]";if (a=='LoadXML'){str+="
    "+c[0].responseText+"
    "+c[0].status;};window.onerror(str, "none", "none");};function dhtmlxtreeReport(node){var that=node.parentNode;that.lastChild.innerHTML="";var rep=that.childNodes[1].innerHTML;for (var a=0;a<_all_used_trees.length;a++){var atree=_all_used_trees[a];rep+="\n\n Tree "+a+"\n";for (b in atree){if (typeof(atree[b])=="function") continue;rep+=b+"="+atree[b]+"\n";};rep+="---------------------\n";if (atree.XMLLoader){try{var z=atree.XMLLoader.getXMLTopNode("tree") + if (document.all)rep+=z.xml+"\n";else{var xmlSerializer = new XMLSerializer();rep+=xmlSerializer.serializeToString(z)+"\n";}}catch(e){rep+="XML not recognised\n";}};rep+="---------------------\n";for (var i in atree._idpull){var n=atree._idpull[i];if (typeof(n)!='object') continue;rep+="Node: "+n.id;rep+=" Childs: "+n.childsCount;for (var j=0;j"+cont+"");window[id]=t;var oninit = obj.getAttribute("oninit");if (oninit)eval(oninit);return t;};function dhx_init_trees(){var z=document.getElementsByTagName("div");for (var i=0;i + + + + + + + diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/components.xml b/phpgwapi/js/dhtmlxtree/libCompiler/components.xml new file mode 100755 index 0000000000..ae361a96fb --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/libCompiler/components.xml @@ -0,0 +1,635 @@ + + + dhtmlx components + + + dhtmlxGrid + + core + Excells - ed,edn,edtxt,ro,ron,rotxt]]> + + + + Base functionality + + + + hidden cellsallow to hide columns|rows by API + + + colspansallow to use colspans in data + + + locked rowsability to lock rows + + + custom sortingability to use custom sorting functions + + + serializationserialization to XML + + + parsingability to use distributed parsing + + + formatsability to use date and number formatting + + + config in xmlability to load grid configuration from XML + + + headersability to create multiline headers or footers + + + cell typesability to change cell types on the fly + + + + hovering hovering and light mouse navigation + + + alter css alter css + + + moving rows moving rows up and down + + + sorting sorting + + + column_resize column resize + + + update from xml update from xml + + + xml data ability to load from XML + + + non xml data ability to load from jsarray, json, csv + + + + tooltips tooltips + + + context menu context menu + + + + + + + + + + + + + + + + Extensions + + + + filteringAbility to filter data in grid, by using predefined UI or API calls + + + groupingAbility to group data in grid + + + drag-and-dropAbility to drag and drop rows in grid + + + extra XML typesSupport of xmlA and xmlB datasource types + + + form integrationintegration with HTML form + + + header menuAbility to use context menu for header + + + mathAbility to use math formulas in grid + + + column moveAbility to move column, or dynamically add|delete them + + + csvSupport of CSV serialization + + + clipboardAbility to operate with clipboard + + + block selectionAbility to use block selection in grid + + + pagingAbility to use paging in grid + + + pivotAbility to create pivot table from dhtmlxgrid + + + rowspanAbility to use rowspans in grid + + + frozen columnsAbility to split grid in two separate areas + + + smart renderingAbility to operate with big datasets + + + state savingAbility to save current state of grid in cookies + + + init from HTMLAbility to filter data in grid, by using predefined UI or API calls + + + undo|redoAbility to use undo|redo functionality against edit operation + + + sub row|gridAbility to use expandable rows with static content or sub grids + + + validation data validation in the grid + + + + Excells + + + excell methodsadditional methods of excell - getFont, setFont, getTextColor, getTextColor, getHorAlign, getWidth, setTextColor, setTextColor, setHorAlign + + + onCellChangedonCellChanged event support (-5% of loading performance) + + + ch excellsupport of ch excell + + + ra excellsupport of ra excell + + + price excellsupport of price excell + + + calendar excellsupport of calendar excell + + + dyn excellsupport of dyn excell + + + cp excellsupport of cp excell + + + txt excellsupport of txt excell + + + co excellsupport of co|coro excell + + + img excellsupport of img excell + + + counterauto increment cell + + + linkHTML link + + + clistlist of checkboxes + + + + + + + + dhtmlxTree + + corejust a dhtmlxtree + + + advancedsome advanced features + + calckability to use child counters in tree + + + distributedability to use distributed parsing in tree + + + smart parsingability to use smart parsing in tree + + + contextability to use context menu in tree + + + multiselectability to select multiple items in same time + + + findability to find item by text + + + d-n-dmoving item as child and sibling in tree ( d-n-d ) + + + + + + + Extensions + + + attributescustom attributes in tree + + + drag inhelpers to create custom drag in tree + + + editor allows in tree edit + + + jsonsupport of JSON as datasource in tree + + + Navigationkeyboard navigation in tree + + + loading flagloading flag for dynamical loading modes + + + lockinglocked items in tree + + + routesmarked routes in tree + + + RTLaupport of RTL in tree + + + sortingallows sorting in tree + + + SRND smart rendering in tree + + + HTML init tree from HTML + + + serializationserialization to XML + + + cookiesadditional dynamic loading features + + + + + + + + dhtmlxTreeGrid + + corejust a dhtmlxtreegrid + + + Extensions + + + lineslines in treegrid + + + filterfiltration in treegrid + + + + + dhtmlxLayout + + corejust a dhtmlxlayout + + + + dhtmlxMenu + + corejust a dhtmlxmenu + + + extra functionalitydifferent aligns, extra methods + + + extensions + + + scrollsinner scrollers in menu + + + checkboxescheckboxes in menu + + + radiosradio buttons in menu + + + hotkeyshotkeys in menu ( useless ) + + + usedatauserdata in menu ( useless ) + + + context menumenu as context element + + + + + + + + skins + + + aquadarkaquadark skin for dhtmlxmenu + + + aquaorangeaquaorange skin for dhtmlxmenu + + + aquaskyaquasky skin for dhtmlxmenu + + + clearblueclearblue skin for dhtmlxmenu + + + cleargreencleargreen skin for dhtmlxmenu + + + clearsilverclearsilver skin for dhtmlxmenu + + + modernblackmodernblack skin for dhtmlxmenu + + + modernbluemodernblue skin for dhtmlxmenu + + + modernredmodernred skin for dhtmlxmenu + + + + + + dhtmlxToolbar + + corejust a dhtmlxtoolbar ( include text, and image buttons support ) + + + extensions + + selectselect like button + + + inputinput button + + + 2-statetwo state button + + + sliderslider button + + + + + + + + skins + + + aquadarkaquadark skin for dhtmlxtoolbar + + + aquaorangeaquaorange skin for dhtmlxtoolbar + + + aquaskyaquasky skin for dhtmlxtoolbar + + + clearblueclearblue skin for dhtmlxtoolbar + + + cleargreencleargreen skin for dhtmlxtoolbar + + + clearsilverclearsilver skin for dhtmlxtoolbar + + + modernblackmodernblack skin for dhtmlxtoolbar + + + modernbluemodernblue skin for dhtmlxtoolbar + + + modernredmodernred skin for dhtmlxtoolbar + + + + + + dhtmlxWindows + + corejust a dhtmlxwindows + + + + advancedsome advanced features + + + rarerare used functionality ( findByText, forEachWindow, getBottommostWindow ) + + + buttonsbuttons in dhtmlxwindow + + + integrationability to create tree|grid|folders|layout|accordeon in dhtmlxwindow + + + moveability to move dhtmlxwindow + + + parkability to park dhtmlxwindow + + + + + Extensions + + statusstatus bar in window + + + menumenu in window + + + toolbartoolbar in window + + + + + + common + + d-n-dability to use drag and drop + + + XSLT supportability to use XSLT on client side + + + XML for Safari 2.xability to use XML parsing routines in Safari 2.x + + + Container of layout + + + + + dhtmlxDataProcessor + + coreAbility to sync changes in tree or grid with remote DB + + + + + + + + + + + + + + + + dhtmlxCalendar + + corejust a dhtmlxcalendar + + + + + + + dhtmlxColorPicker + + corejust a dhtmlxcolorpicker + + + + + dhtmlxCombo + + corejust a dhtmlxcombo + + + option typesability to use checkboxes and images inside dhtmlxcombo + + + auto-sizeauto-width and auot-height of dhtmlxcombo + + + groupinggrouping dhtmlxcombo + + + + + + dhtmlxFolders + + corejust a dhtmlxfolders + + + d-n-dd-n-d in dhtmlxfolders + + + + dhtmlxTabbar + + corejust a dhtmlxtabbar + + all sidesability to have tabs on rigth,left,bottom sides + + + sizesability to adjust size to inner or outer content + + + scrollsability to use scrollers in tabbar + + + linesability ot have multiple lines of tabs + + + ajax|iframeability to work in ajax and frame based modes + + + + + + + + + + HTMLallows to init dhtmlxtabbar from HTML markup + + + + + + dhtmlxAccordion + + corejust a dhtmlxAccordion + + + + + dhtmlxSlider + + corejust a dhtmlxSlider + + + + + dhtmlxEditor + + corejust a dhtmlxEditor + + + extended initability to use toolbar in editor header with all possible buttons + + + + dhtmlXForm + + coreAll functionality of dhtmlxForm + + + + dhtmlXChart + + coreall functionality of dhtmlXChart + + + + dhtmlXDataView + + coreall functionality of dhtmlXForm + + + + + + + + + + + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/convert.php b/phpgwapi/js/dhtmlxtree/libCompiler/convert.php new file mode 100755 index 0000000000..0fae4c4205 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/libCompiler/convert.php @@ -0,0 +1,179 @@ + 23) $doshour = $doshour - 24; + if($doshour < 0) $doshour = $doshour + 24; + + $doshour = $doshour * pow(2,11); + + // mix it with about 250 grams of minutes + $dosminute = gmdate("i") * pow(2,5); + + // then add a pinch of seconds + $dossecond = round(gmdate("s") / 2); + + // mix them together and whack them in the oven for about 20 minutes + $dostime = $doshour+$dosminute+$dossecond; + + // and it's ready to be served! :) + return $dostime; + + // "whack" is a registered trademark of Jamie Oliver. All rights reserved. +}; + +// format according to MSDN: +// 5 bytes for days, 4 for month, 7 for years from 1980... can go for 128 years then, so warn me in 2108 ;) + +function dosdate_get($offset) { + // date + $dosyear = (gmdate("Y") - 1980); + $dosmonth = gmdate("m"); + $dosday = gmdate("j"); + + // checking if date is valid + // starting with... is the day too high after applying offset? + if(gmdate("G") + $offset > 23) { + $dosday++; + if($dosday > date("t")) { + $dosday = 1; + $dosmonth++; + if($dosmonth > 12) { + $dosmonth = 1; + $dosyear++; + }; + }; + }; + + // then, is the day too low after applying offset? + if(gmdate("G") + 1 + $offset < 0) { // +1 to fix the erm... standard -1 offset this pc has... strange thou :p + $dosday = $dosday - 1; + if($dosday < 1) { + // ok, little helper array, containing the months that have 30 days:) + $dirtydays = array(4,6,9,11); + if(in_array($dirtydays,$dosmonth - 1)) { // is it one month after one of the feared months, added in the array above? + $dosday = 30; + } elseif ($dosmonth == 3) { // is it march then? + $dosday = 28+date("L"); + } else { // then the month before this one must have 31 days :) + $dosday = 31; + }; + + $dosmonth --; + if($dosmonth < 1){ + $dosmonth == 12; + $dosyear --; // i aint checking this one, we're not creating files b4 1980 anyway ;) + }; + }; + }; + + // wow, that took me some thinking, let's go to an easier part, returning! + $dosyear = $dosyear * pow(2,9); + $dosmonth = $dosmonth * pow(2,5); + return $dosyear+$dosmonth+$dosday; +} + +// Now this process must be reversed aswell. I think the most easy method for this is just returning an array with data. + +function dostime_return($dostime) { + $dostime = decbin(ascii2dec($dostime)); //looks nasty, but hey, it works ;) + $dostime = str_pad($dostime,16,"0",STR_PAD_LEFT); + + // retreiving the needed data... 5-6-5 was the format + // *** Warning! *** Waarschuwing! *** Achtung! *** + // I don't know if this works on little endian machines the way it works on big-endian ones + // So let's hope for the best + + $return['hours'] = substr($dostime,0,5); + $return['minutes'] = substr($dostime,5,6); + $return['seconds'] = substr($dostime,11,5); + + unset($dostime); + + // now processing the info to the right format + $return['hours'] = bindec($return['hours']); + $return['minutes'] = bindec($return['minutes']); + $return['seconds'] = bindec($return['seconds']) * 2; + return $return; +} + +// this is mostly a copy of dostime_return +function dosdate_return($dosdate) { + $dosdate = decbin(ascii2dec($dosdate)); //looks nasty, but hey, it works ;) + $dosdate = str_pad($dosdate,16,"0",STR_PAD_LEFT); + + // retreiving the needed data... 5-4-7 was the format + // *** Warning! *** Waarschuwing! *** Achtung! *** + // I don't know if this works on little endian machines the way it works on big-endian ones + // So let's hope for the best + + $return['year'] = substr($dosdate,0,7); + $return['month'] = substr($dosdate,7,4); + $return['day'] = substr($dosdate,11,5); + + unset($dosdate); + + // now processing the info to the right format + $return['day'] = bindec($return['day']); + $return['month'] = bindec($return['month']); + $return['year'] = bindec($return['year']) + 1980; + return $return; +} + +// Also useful is this ascii2dec convertor, will be a well used conversion when reading a zipfile +// simple but powerful :) + +function ascii2dec($input) { + $end = strlen($input); + $multiplier = 1; + for($i=0; $i < $end; $i++) { + $output = $output + (ord($input[$i]) * $multiplier); // I think Max wants some credit for this [$i] method + $multiplier = $multiplier * 256; + } + unset ($input); + return $output; +} + +// Extension to content-type header conversion. +function ext2cth($filename) { + $filename = explode(".",$filename); + $extension = array_pop($filename); + + // I kinda need a gigantic array for this, i'll do this for now by including this array and setting a little var so I know it's + // been included + + if(!$types_is_included){ + require ("./array_filetypes.php"); + $types_is_included = TRUE; + } + + $extension = strtolower($extension); + $filetype = $type[$extension]; + if(empty($filetype)) { + $filetype = $type['default']; + } + return $filetype; +} +?> diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/core.js b/phpgwapi/js/dhtmlxtree/libCompiler/core.js new file mode 100755 index 0000000000..a2c64a5340 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/libCompiler/core.js @@ -0,0 +1,160 @@ +window.dhtmlx||(dhtmlx={});dhtmlx.version="3.0";dhtmlx.codebase="./";dhtmlx.extend=function(a,b){for(var c in b)a[c]=b[c];b.g&&a.g();return a};dhtmlx.bind=function(a,b){return function(){return a.apply(b,arguments)}};dhtmlx.require=function(a){if(!dhtmlx.N[a]){dhtmlx.exec(dhtmlx.ajax().sync().get(dhtmlx.codebase+a).responseText);dhtmlx.N[a]=true}};dhtmlx.N={};dhtmlx.exec=function(a){window.execScript?window.execScript(a):window.eval(a)}; +dhtmlx.methodPush=function(a,b){return function(){var c=false;return c=a[b].apply(a,arguments)}};dhtmlx.isNotDefined=function(a){return typeof a=="undefined"};dhtmlx.delay=function(a,b,c){setTimeout(function(){var d=a.apply(b,c);a=b=c=null;return d},1)};dhtmlx.uid=function(){if(!this.ca)this.ca=(new Date).valueOf();this.ca++;return this.ca};dhtmlx.toNode=function(a){if(typeof a=="string")return document.getElementById(a);return a};dhtmlx.toArray=function(a){return dhtmlx.extend(a||[],dhtmlx.PowerArray)}; +dhtmlx.toFunctor=function(a){return typeof a=="string"?eval(a):a};dhtmlx.h={};dhtmlx.event=function(a,b,c,d){a=dhtmlx.toNode(a);var e=dhtmlx.uid();dhtmlx.h[e]=[a,b,c];if(d)c=dhtmlx.bind(c,d);if(a.addEventListener)a.addEventListener(b,c,false);else a.attachEvent&&a.attachEvent("on"+b,c);return e};dhtmlx.eventRemove=function(a){if(a){var b=dhtmlx.h[a];if(b[0].removeEventListener)b[0].removeEventListener(b[1],b[2],false);else b[0].detachEvent&&b[0].detachEvent("on"+b[1],b[2]);delete this.h[a]}}; +dhtmlx.EventSystem={g:function(){this.h={};this.H={};this.B={}},block:function(){this.h.ha=true},unblock:function(){this.h.ha=false},mapEvent:function(a){dhtmlx.extend(this.B,a)},callEvent:function(a,b){if(this.h.ha)return true;a=a.toLowerCase();var c=this.h[a.toLowerCase()],d=true;if(c)for(var e=0;e=0)this.splice(a,b||1)},remove:function(a){this.removeAt(this.find(a))},insertAt:function(a,b){if(!b&&b!==0)this.push(a);else{var c=this.splice(b,this.length-b);this[b]=a;this.push.apply(this,c)}},find:function(a){for(i=0;i")!=-1){c=c.split("->"); +switch(c[0]){case "html":c=dhtmlx.html.getValue(c[1]).replace(/\"/g,'\\"');break;case "http":c=(new dhtmlx.ajax).sync().get(c[1],{uid:(new Date).valueOf()}).responseText;break;default:break}}a[b]=dhtmlx.Template.fromHTML(c)}}}; +dhtmlx.Settings={g:function(){this.a=this.config=[];this.a.sort=null},define:function(a,b){if(typeof a=="object")return this.Fa(a);return this.la(a,b)},la:function(a,b){var c=this[a+"_setter"];return this.a[a]=c?c.call(this,a,b):b},Fa:function(a){if(a)for(var b in a)this.la(b,a[b])},O:function(a,b){var c=dhtmlx.extend({},b);typeof a=="object"&&!a.tagName&&dhtmlx.extend(c,a);this.Fa(c)},v:function(a,b){for(var c in b)switch(typeof a[c]){case "object":a[c]=this.v(a[c]||{},b[c]);break;case "undefined":a[c]= +b[c];break;default:break}return a},$:function(a,b,c){if(typeof a=="object"&&!a.tagName)a=a.container;this.b=dhtmlx.toNode(a);if(!this.b&&c)this.b=c(a);this.b.className+=" "+b;this.b.onselectstart=function(){return false};this.c=this.b},qb:function(a){if(typeof a=="object")return this.type_setter("type",a);this.type=dhtmlx.extend({},this.types[a]);this.customize()},customize:function(a){a&&dhtmlx.extend(this.type,a);this.type.ya=dhtmlx.Template.fromHTML(this.template_item_start(this.type));this.type.xa= +this.template_item_end(this.type);this.render()},type_setter:function(a,b){this.qb(typeof b=="object"?dhtmlx.Type.add(this,b):b);return b},template_setter:function(a,b){return this.type_setter("type",{template:b})},css_setter:function(a,b){this.b.className+=" "+b;return b}}; +dhtmlx.Destruction={g:function(){dhtmlx.destructors.push(this)},destructor:function(){this.destructor=function(){};this.u=this.d=null;this.l&&document.body.appendChild(this.l);this.l=null;if(this.b){this.b.innerHTML="";this.b.d=null}this.data=this.b=this.c=null;this.h=this.H={}}};dhtmlx.destructors=[]; +dhtmlx.event(window,"unload",function(){for(var a=0;a=this.data.limit)a=this.data.limit-1;if(this.callEvent("onBeforePageChange",[this.a.page,a])){this.data.page=a*1;this.refresh();this.callEvent("onAfterPageChange",[a])}},types:{"default":{template:dhtmlx.Template.fromHTML("{common.pages()}"), +pages:function(a){var b="";if(a.page==-1)return"";a.min=a.page-Math.round((a.group-1)/2);a.max=a.min+a.group-1;if(a.min<0){a.max+=a.min*-1;a.min=0}if(a.max>=a.limit){a.min-=Math.min(a.min,a.max-a.limit+1);a.max=a.limit-1}for(var c=a.min||0;c<=a.max;c++)b+=this.button({id:c,index:c+1,selected:c==a.page?"_selected":""});return b},page:function(a){return a.page+1},first:function(){return this.button({id:"first",index:" << ",selected:""})},last:function(){return this.button({id:"last",index:" >> ", +selected:""})},prev:function(){return this.button({id:"prev",index:"<",selected:""})},next:function(){return this.button({id:"next",index:">",selected:""})},button:dhtmlx.Template.fromHTML("
    {obj.index}
    ")}},refresh:function(){var a=this.a;a.limit=Math.ceil(a.count/a.size);if(a.limit&&a.limit!=a.old_limit)a.page=Math.min(a.limit-1,a.page);var b=a.page;if(b!=-1&&b!=a.old_page||a.limit!=a.old_limit){this.render();this.callEvent("onRefresh", +[]);a.old_limit=a.limit;a.old_page=a.page}},template_item_start:dhtmlx.Template.fromHTML("
    "),template_item_end:dhtmlx.Template.fromHTML("
    ")};dhtmlx.SingleRender={g:function(){},D:function(a){return this.type.ya(a,this.type)+this.type.template(a,this.type)+this.type.xa},render:function(){if(!this.callEvent||this.callEvent("onBeforeRender",[this.data])){if(this.data)this.c.innerHTML=this.D(this.data);this.callEvent&&this.callEvent("onAfterRender",[])}}}; +dhtmlx.ui.Tooltip=function(a){this.name="Tooltip";this.version="3.0";if(typeof a=="string")a={template:a};dhtmlx.extend(this,dhtmlx.Settings);dhtmlx.extend(this,dhtmlx.SingleRender);this.O(a,{type:"default",dy:0,dx:20});this.c=this.b=document.createElement("DIV");this.b.className="dhx_tooltip";dhtmlx.html.insertBefore(this.b,document.body.firstChild)}; +dhtmlx.ui.Tooltip.prototype={show:function(a,b){if(this.data!=a){this.data=a;this.render(a)}this.b.style.top=b.y+this.a.dy+"px";this.b.style.left=b.x+this.a.dx+"px";this.b.style.display="block"},hide:function(){this.data=null;this.b.style.display="none"},types:{"default":dhtmlx.Template.fromHTML("{obj.id}")},template_item_start:dhtmlx.Template.empty,template_item_end:dhtmlx.Template.empty}; +dhtmlx.AutoTooltip={tooltip_setter:function(a,b){var c=new dhtmlx.ui.Tooltip(b);this.attachEvent("onMouseMove",function(d,e){c.show(this.get(d),dhtmlx.html.pos(e))});this.attachEvent("onMouseOut",function(){c.hide()});this.attachEvent("onMouseMoving",function(){c.hide()});return c}};dhtmlx.compat=function(a,b){dhtmlx.compat[a]&&dhtmlx.compat[a](b)}; +(function(){if(!window.dhtmlxError){var a=function(){};window.dhtmlxError={catchError:a,throwError:a};window.convertStringToBoolean=function(c){return!!c};window.dhtmlxEventable=function(c){dhtmlx.extend(c,dhtmlx.EventSystem)};var b={getXMLTopNode:function(){},doXPath:function(c){return dhtmlx.DataDriver.xml.xpath(this.xml,c)},xmlDoc:{responseXML:true}};dhtmlx.compat.dataProcessor=function(c){var d="_sendData",e="_in_progress",g="_tMode",i="_waitMode";c[d]=function(l,j){if(l){if(j)this[e][j]=(new Date).valueOf(); +if(!this.callEvent("onBeforeDataSending",j?[j,this.getState(j)]:[]))return false;var m=this,p=this.serverProcessor;this[g]!="POST"?dhtmlx.ajax().get(p+(p.indexOf("?")!=-1?"&":"?")+this.serialize(l,j),"",function(q,n){b.xml=dhtmlx.DataDriver.xml.checkResponse(q,n);m.afterUpdate(m,null,null,null,b)}):dhtmlx.ajax().post(p,this.serialize(l,j),function(q,n){b.xml=dhtmlx.DataDriver.xml.checkResponse(q,n);m.afterUpdate(m,null,null,null,b)});this[i]++}}}}})(); +dhtmlx.DataProcessor={Ra:function(a){var b="_methods";a[b]=["setItemStyle","","changeId","remove"];this.attachEvent("onAfterAdd",function(c){a.setUpdated(c,true,"inserted")});this.data.attachEvent("onStoreLoad",dhtmlx.bind(function(c,d){c.getUserData&&c.getUserData(d,this.ga)},this));this.attachEvent("onBeforeDelete",function(c){var d=a.getState(c);if(d=="inserted"){a.setUpdated(c,false);return true}if(d=="deleted")return false;if(d=="true_deleted")return true;a.setUpdated(c,true,"deleted");return false}); +this.attachEvent("onAfterEditStop",function(c){a.setUpdated(c,true,"updated")});b="_getRowData";a[b]=function(c){c=this.obj.data.get(c);var d={};for(var e in c)if(e.indexOf("_")!==0)d[e]=c[e];return d};b="_clearUpdateFlag";a[b]=function(){};this.ga={};a.attachEvent("insertCallback",this.ma);a.attachEvent("updateCallback",this.ma);a.attachEvent("deleteCallback",function(c,d){this.obj.setUserData(d,this.action_param,"true_deleted");this.obj.remove(d)});dhtmlx.compat("dataProcessor",a)},ma:function(a, +b){this.obj.data.set(b,dhtmlx.DataDriver.xml.getDetails(a.firstChild));this.obj.data.refresh(b)},setItemStyle:function(a,b){if(a=this.m(a))a.style.cssText+=";"+b},changeId:function(a,b){this.data.order[this.data.indexById(a)]=b;this.data.pull[b]=this.data.pull[a];this.data.get(b).id=b;delete this.data.pull[a];this.data.refresh()},setUserData:function(a,b,c){if(a)this.data.get(a)[b]=c;else this.ga[b]=c},getUserData:function(a,b){return a?this.data.get(a)[b]:this.ga[b]}}; +(function(){var a="_dp_init";dhtmlx.DataProcessor[a]=dhtmlx.DataProcessor.Ra})(); +dhtmlx.compat.dnd=function(){if(window.dhtmlDragAndDropObject){var a="_dragged",b=dhtmlDragAndDropObject.prototype.checkLanding;dhtmlDragAndDropObject.prototype.checkLanding=function(j,m,p){b.apply(this,arguments);if(!p){dhtmlx.DragControl.o=dhtmlx.DragControl.o||{};dhtmlx.DragControl.K(j,m,true)}};var c=dhtmlDragAndDropObject.prototype.stopDrag;dhtmlDragAndDropObject.prototype.stopDrag=function(j,m,p){if(!p)if(dhtmlx.DragControl.i){dhtmlx.DragControl.n=d.dragStartNode;dhtmlx.DragControl.R(j,true)}c.apply(this, +arguments)};var d=new dhtmlDragAndDropObject,e=dhtmlx.DragControl.da;dhtmlx.DragControl.da=function(){e.apply(this,arguments);var j=dhtmlx.DragControl.o;if(j){for(var m=[],p=[],q=0;q"+a.innerHTML+"
    "}}; +dhtmlx.DragItem={g:function(){if(!this.a||this.a.drag)dhtmlx.DragItem.wa(this);else if(this.a)this.drag_setter=function(a,b){if(b){this.wa(this);delete this.drag_setter}return b};if(this.dragMarker){this.attachEvent("onBeforeDragIn",this.dragMarker);this.attachEvent("onDragOut",this.dragMarker)}},wa:function(a){dhtmlx.DragControl.addDrop(a.b,a,true);dhtmlx.DragControl.addDrag(a.b,a)},onDragIn:function(a,b,c){b=this.locate(c)||null;var d=dhtmlx.DragControl.o,e=dhtmlx.DragControl.getMaster(a);a=this.m(b)|| +this.b;if(a==dhtmlx.DragControl.A)return a;d.target=b;d.to=e;if(!this.callEvent("onBeforeDragIn",[d,c]))return d.id=null;dhtmlx.html.addCss(a,"dhx_drag_over");return a},onDragOut:function(a,b,c,d){a=this.locate(d)||null;c=this.m(a)||(c?dhtmlx.DragControl.getMaster(c).b:window.undefined);if(c==dhtmlx.DragControl.A)return null;c=dhtmlx.DragControl.o;dhtmlx.html.removeCss(dhtmlx.DragControl.A,"dhx_drag_over");c.target=c.to=null;this.callEvent("onDragOut",[c,d]);return null},onDrop:function(a,b,c,d){b= +dhtmlx.DragControl.o;b.from=dhtmlx.DragControl.getMaster(a);b.to=this;b.index=b.target?this.indexById(b.target):this.dataCount();b.new_id=dhtmlx.uid();if(this.callEvent("onBeforeDrop",[b,d])){if(b.from==b.to)this.move(b.source,b.index);else b.from&&b.from.move(b.source,b.index,b.to,b.new_id);this.callEvent("onAfterDrop",[b,d])}},onDrag:function(a,b){a=this.locate(b);var c=[a];if(a){if(this.getSelected){var d=this.getSelected();if(dhtmlx.PowerArray.find.call(d,a)!=-1)c=d}var e=dhtmlx.DragControl.o= +{source:c,start:a};e.from=this;if(this.callEvent("onBeforeDrag",[e,b]))return e.html||this.D(this.get(a))}return null}}; +dhtmlx.EditAbility={g:function(){this.L=this.p=null;this.attachEvent("onEditKeyPress",function(a,b,c){if(a==13&&!c)this.stopEdit();else a==27&&this.stopEdit(true)});this.attachEvent("onBeforeRender",function(){this.stopEdit()})},isEdit:function(){return this.p},edit:function(a){if(this.stopEdit(false,a))if(this.callEvent("onBeforeEditStart",[a])){var b=this.data.get(a);if(!b.$template){b.$template="edit";this.data.refresh(a);this.p=a;this.pb(a);this.L(true,b);this.callEvent("onAfterEditStart",[a])}}}, +stopEdit:function(a,b){if(!this.p)return true;if(this.p==b)return false;if(!this.callEvent("onBeforeEditStop",[this.p]))return false;var c=this.data.get(this.p);c.$template=null;a||this.L(false,c);a=this.p;this.L=this.p=null;this.data.refresh(a);this.callEvent("onAfterEditStop",[a]);return true},pb:function(a){var b=this.m(a),c="",d="",e=[];if(b){var g=b.getElementsByTagName("*"),i="";for(a=0;a100||a.length>this.data.dataCount/2},ba:function(a){if(typeof a!="object")a=[a];if(a.length){if(this.ab(a))this.data.refresh(); +else for(var b=0;bc.Y)break;for(var d=a;!this.u[d];)d--;var e=this.u[d],g=a*c.W+(this.data.min||0);if(g>(this.data.max||Infinity))break;var i=Math.min(g+c.W-1,this.data.max||Infinity),l=this.U(c.S),j=this.data.getIndexRange(g,i);if(!j.length)break;l.innerHTML=j.map(this.D,this).join("");for(var m= +0;m0){e.style.height=n+"px";this.u[a+1]=e}else{if(q<0)dhtmlx.html.remove(e);else e.style.height=q+"px";if(n>0){var w=this.u[a+1]=this.U(n);dhtmlx.html.insertBefore(w,l.nextSibling,this.c)}}a++}if(this.I.length){a=this.indexById(this.I[0]);l=this.indexById(this.I.pop())+1;if(l>a){if(!this.callEvent("onDataRequest", +[a,l-a]))return false;this.data.feed.call(this,a,l-a)}}},ua:function(){var a=this.c.scrollTop,b=Math.max(this.c.scrollWidth,this.c.offsetWidth)-18,c=this.c.offsetHeight,d=this.X(),e=Math.floor(b/d.x)||1,g=Math.floor(a/d.y);c=Math.ceil((c+a)/d.y)-1;var i=this.data.max?this.data.max-this.data.min:this.data.dataCount(),l=Math.ceil(i/e)*d.y;return{s:g,Y:c,xb:a,cb:l,S:d.y,W:e}}}; +dhtmlx.DataStore=function(){this.name="DataStore";dhtmlx.extend(this,dhtmlx.EventSystem);this.setDriver("xml");this.pull={};this.order=dhtmlx.toArray()}; +dhtmlx.DataStore.prototype={setDriver:function(a){this.driver=dhtmlx.DataDriver[a]},jb:function(a){for(var b=this.driver.getInfo(a),c=this.driver.getRecords(a),d=(b.s||0)*1,e=0,g=0;gb){var c=b;b=a;a=c}}else{a=this.min||0;b=Math.min(this.max||Infinity,this.dataCount()-1)}return this.getIndexRange(a,b)},getIndexRange:function(a,b){b=Math.min(b,this.dataCount()- +1);var c=dhtmlx.toArray();for(a=a;a<=b;a++)c.push(this.get(this.order[a]));return c},dataCount:function(){return this.order.length},exists:function(a){return!!this.pull[a]},move:function(a,b){if(!(a<0||b<0)){var c=this.idByIndex(a),d=this.get(c);this.order.removeAt(a);this.order.insertAt(c,Math.min(this.order.length,b));this.callEvent("onStoreUpdated",[c,d,"move"])}},add:function(a,b){var c=this.id(a),d=this.dataCount();if(dhtmlx.isNotDefined(b)||b<0)b=d;if(b>d)b=Math.min(this.order.length,b);if(this.callEvent("onbeforeAdd", +[c,b])){if(this.exists(c))return null;this.pull[c]=a;this.order.insertAt(c,b);if(this.q){var e=this.q.length;if(!b&&this.order.length)e=0;this.q.insertAt(c,e)}this.callEvent("onafterAdd",[c,b]);this.callEvent("onStoreUpdated",[c,a,"add"]);return c}},remove:function(a){if(a instanceof Array)for(var b=0;bb?1:ab?1:ab?1:a0&&a-c*0.75d+e)d+=c;this.b.scrollTop=d}return true}, +j:"dhx_f_id",on_click:{dhx_dataview_item:function(a,b){if(this.stopEdit(false,b))if(this.a.select)this.a.select=="multiselect"?this.select(b,a.ctrlKey,a.shiftKey):this.select(b)}},on_dblclick:{dhx_dataview_item:function(a,b){this.a.edit&&this.edit(b)}},on_mouse_move:{},types:{"default":{css:"default",template:dhtmlx.Template.fromHTML("
    {obj.text}
    "),template_edit:dhtmlx.Template.fromHTML("
    "), +template_loading:dhtmlx.Template.fromHTML("
    Loading...
    "),width:210,height:115,margin:0,padding:10,border:1}},template_item_start:dhtmlx.Template.fromHTML("
    "),template_item_end:dhtmlx.Template.fromHTML("
    ")}; +dhtmlx.compat("layout");dhtmlx.math={};dhtmlx.math.tb=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];dhtmlx.math.toHex=function(a,b){a=parseInt(a,10);for(str="";a>0;){str=this.tb[a%16]+str;a=Math.floor(a/16)}for(;str.length")},addSector:function(a,b,c,d,e,g,i){var l=[];l.push(d);l.push(Math.floor(e*i));for(var j=b;j"+this.B.join("\n")+"";a.d=b;this.B=[]}};if(!dhtmlx.chart)dhtmlx.chart={}; +dhtmlx.chart.line={pvt_render_line:function(a,b,c,d){var e,g,i,l,j,m,p=new dhtmlx.ui.Map(this.j),q=!!this.a.yAxis;if(q&&typeof this.a.yAxis.end!="undefied"&&typeof this.a.yAxis.start!="undefied"&&this.a.yAxis.step){e=parseFloat(this.a.yAxis.end);g=parseFloat(this.a.yAxis.start)}else{e=this.max(this.a.value);g=this.min(this.a.value)}this.ra(a,b,c,d,g,e);if(q){e=parseFloat(this.a.yAxis.end);g=parseFloat(this.a.yAxis.start)}var n=parseInt(this.a.padding.top,10),w=parseInt(this.a.padding.left,10),z=parseInt(this.a.padding.bottom, +10),A=parseInt(this.a.padding.right,10),r=d-n-z;if(g!=e){var D=this.ta(g,e);l=D[0];i=D[1];j=r/l;if(!q){m=j>10?j:10;j=(r-m)/l}}else{i=1;m=0;j=(r-10)/e}var O=Math.round((c-w-A)/b.length),K=Math.floor(O/2);if(b.length){for(var P=function(G){G=this.a.value(G);var H=(parseFloat(G)-g)*i;q||(H+=m/j);if(g==e)H=e;var x=d-Math.floor(j*H)-z;if(H<0)x=d-n;if(G>e)x=n;if(G10?j:10;j=(r-m)/l}}else{i=1;m=0;j=(r-10)/e}l=Math.floor((c-z-parseInt(this.a.padding.right,10))/b.length);var D=parseInt(this.a.width,10);if(D>l)D=l-2;var O=Math.floor((l-D)/2),K=typeof this.a.radius!="undefined"?parseInt(this.a.radius,10):Math.round(D/5),P=false,v=this.a.gradient;if(v===true){P=true;v=false}else if(v){v=a.createLinearGradient(0,d-w,0,A);this.a.gradient(v)}var B=0;if(A&&!n){B=d- +A;this.w(a,0,B+0.5,c,B+0.5,"#000000",1)}for(n=0;ne)r=e;r-=g;r*=i;if(g==e)r=e;var C=z+O+n*l,I=d-A;this.qa(C+Math.floor(D/2),b[n]);if(r<0||this.a.yAxis&&r===0)this.renderTextAt(true,true,C+Math.floor(D/2),I,this.a.label(b[n]));else{q||(r+=m/j);var Q=v||this.a.color.call(this,b[n]);if(this.a.border){a.beginPath();a.fillStyle=Q;this.Q(a,C,I,D,K,j,r,0);a.lineTo(C,0);a.fill();a.fillStyle="#000000";a.globalAlpha=0.37;a.beginPath();this.Q(a,C,I,D,K,j,r, +0);a.fill()}a.globalAlpha=this.a.alpha.call(this,b[n]);a.fillStyle=v||this.a.color.call(this,b[n]);a.beginPath();var G=this.Q(a,C,I,D,K,j,r,this.a.border?1:0);if(v&&!P)a.lineTo(C+(this.a.border?1:0),0);a.fill();a.globalAlpha=1;if(P){var H=a.createLinearGradient(0,I-j*r+2,0,I);H.addColorStop(0,Q);H.addColorStop(0.1,Q);H.addColorStop(1,"#FFFFFF");a.fillStyle=H;a.beginPath();G=this.Q(a,C+2,I,D-4,K,j,r,1);a.fill()}this.renderTextAt(true,true,C+Math.floor(D/2),G[1],this.a.label(b[n]));p.addRect(b[n].id, +[C,G[1],G[0],I])}}this.pa(a,b,c,d);p.render(this.b)},Q:function(a,b,c,d,e,g,i,l){var j=0;if(e>g*i){var m=(e-g*i)/e;j=-Math.acos(m)+Math.PI/2}a.moveTo(b+l,c);var p=c-Math.floor(g*i)+e+(e?0:l);eg.total_height)c+=d-g.total_height-a.lineWidth/2;if(g.valign=="middle"&&d>g.total_height)c+=(d-g.total_height)/2-a.lineWidth/2;c+=e*g.height;a.moveTo(i,c);d=i+g.marker.width-g.marker.height+1;a.lineTo(d,c);a.stroke();this.renderText(d+g.marker.width/2+5,c-g.marker.height/2,g.template(b))},Xa:function(a,b){var c=0;if(this.a.legend)c=this.a.legend.width*(this.a.legend.align== +"right"?-1:1);a=(a+c)/2;b/=2;c=Math.min(a,b)-this.a.padding.top;return{x:a,y:b,radius:c}},ja:function(a,b,c,d,e,g,i){a.lineWidth=1;if(d<=0&&e>=0||d>=0&&e<=Math.PI||d<=Math.PI&&e>=Math.PI){if(d<0&&e>0){d=0;this.oa(a,b,c,g,d,e)}if(dMath.PI){e=Math.PI;this.oa(a,b,c,g,d,e)}var l=(this.a.height||Math.floor(g/4))/this.a.cant;a.beginPath();a.arc(b,c,g,d,e,false);a.lineTo(b+g*Math.cos(e),c+g*Math.sin(e)+l);a.arc(b,c+l,g,e,d,true);a.lineTo(b+g*Math.cos(d),c+g*Math.sin(d));a.fill();i&&a.stroke()}}, +oa:function(a,b,c,d,e,g){a.beginPath();a.arc(b,c,d,e,g,false);a.stroke()},Ma:function(a,b,c,d){for(var e=["#676767","#7b7b7b","#a0a0a0","#bcbcbc","#d1d1d1","#d6d6d6"],g=e.length-1;g>-1;g--){a.beginPath();a.fillStyle=e[g];a.arc(b+2,c+2,d+g,0,Math.PI*2,true);a.fill()}},Wa:function(a){a.addColorStop(0,"#ffffff");a.addColorStop(0.7,"#7a7a7a");a.addColorStop(1,"#000000");return a},rb:function(a,b,c,d,e,g){a.globalAlpha=0.3;a.beginPath();var i;if(typeof this.a.gradient!="function"){i=a.createRadialGradient(e, +g,d/4,b,c,d);i=this.Wa(i)}else i=this.a.gradient(i);a.fillStyle=i;a.arc(b,c,d,0,Math.PI*2,true);a.fill();a.globalAlpha=1},na:function(a,b,c,d,e,g,i,l){if(i=this.renderText(0,0,i,0,1)){var j=i.scrollWidth;i.style.width=j+"px";if(j>a)j=a;var m=8;if(l)m=j/1.8;var p=d+(e-d)/2;c-=(m-8)/2;var q=-m,n=-8,w="left";if(p>=Math.PI/2&&p=Math.PI){q=-j-q+1;w="right"}d=(b+Math.floor(c*Math.sin(p)))*g+n;m=a+Math.floor((c+m/2)*Math.cos(p))+q;var z=eb*g)d+=this.a.height||Math.floor(c/4);i.style.top=d+"px";i.style.left=m+"px";i.style.width=j+"px";i.style.textAlign=w;i.style.whiteSpace="nowrap"}}}; +dhtmlx.Group={g:function(){this.data.attachEvent("onStoreLoad",dhtmlx.bind(function(){this.a.group&&this.group(this.a.group,false)},this));this.attachEvent("onBeforeRender",dhtmlx.bind(function(a){if(this.a.sort){a.block();a.sort(this.a.sort);a.unblock()}},this));this.attachEvent("onBeforeSort",dhtmlx.bind(function(){this.a.sort=null},this))},Za:function(a,b){a.attachEvent("onClearAll",dhtmlx.bind(function(){this.ungroup(false)},b))},sum:function(a,b){a=dhtmlx.Template.setter(0,a);b=b||this.data; +var c=0;b.each(function(d){c+=a(d)*1});return c},min:function(a,b){a=dhtmlx.Template.setter(0,a);b=b||this.data;var c=Infinity;b.each(function(d){if(a(d)*1c)c=a(d)*1});return c},sb:function(a){var b=function(j,m){j=dhtmlx.Template.setter(0,j);return j(m[0])},c=dhtmlx.Template.setter(0,a.by);a.map[c]||(a.map[c]=[c,b]);var d={},e=[];this.data.each(function(j){var m=c(j); +if(!d[m]){e.push({id:m});d[m]=dhtmlx.toArray()}d[m].push(j)});for(var g in a.map){var i=a.map[g][1]||b;if(typeof i!="function")i=this[i];for(var l=0;l5?10:5;c=parseInt(l,10)*i;if(c>Math.abs(a))d=a<=0||a','","");this.element_.insertAdjacentHTML("BeforeEnd",S.join(""))};x.stroke=function(f){var h=[],k=l(f?this.fillStyle:this.strokeStyle),o=k.color,s=k.alpha*this.globalAlpha,u=k=10;h.push("u.x)u.x=t.x;if(k.y==null||t.yu.y)u.y=t.y}}h.push(' ">');if(f)if(typeof this.fillStyle=="object"){var F=this.fillStyle,M=0,J={x:0,y:0};o=0;var L=1;if(F.type_=="gradient"){k=F.x0_/this.arcScaleX_;u=F.y0_/ +this.arcScaleY_;y=F.x1_/this.arcScaleX_;t=F.y1_/this.arcScaleY_;var E=this.getCoords_(k,u),S=this.getCoords_(y,t);k=S.x-E.x;u=S.y-E.y;M=Math.atan2(k,u)*180/Math.PI;if(M<0)M+=360;if(M<1.0E-6)M=0}else{E=this.getCoords_(F.x0_,F.y0_);o=u.x-k.x;u=u.y-k.y;J={x:(E.x-k.x)/o,y:(E.y-k.y)/u};o/=this.arcScaleX_*v;u/=this.arcScaleY_*v;var T=A.max(o,u);o=2*F.r0_/T;L=2*F.r1_/T-o}var N=F.colors_;N.sort(function(aa,ba){return aa.offset-ba.offset});k=N.length;var U=N[0].color,V=N[k-1].color,W=N[0].alpha*this.globalAlpha, +X=N[k-1].alpha*this.globalAlpha,Z=[];for(y=0;y')}else h.push('');else{var Y=this.lineScale_*this.lineWidth;if(Y<1)s*=Y;h.push("')}h.push("");this.element_.insertAdjacentHTML("beforeEnd",h.join(""))};x.fill=function(){this.stroke(true)};x.closePath=function(){this.currentPath_.push({type:"close"})};x.getCoords_=function(f,h){var k=this.m_;return{x:v*(f*k[0][0]+h*k[1][0]+k[2][0])-B,y:v*(f*k[0][1]+h*k[1][1]+k[2][1])-B}};x.save=function(){var f={};i(this,f);this.aStack_.push(f);this.mStack_.push(this.m_); +this.m_=g(e(),this.m_)};x.restore=function(){i(this.aStack_.pop(),this);this.m_=this.mStack_.pop()};x.translate=function(f,h){f=[[1,0,0],[0,1,0],[f,h,1]];n(this,g(f,this.m_),false)};x.rotate=function(f){var h=O(f),k=D(f);h=[[h,k,0],[-k,h,0],[0,0,1]];n(this,g(h,this.m_),false)};x.scale=function(f,h){this.arcScaleX_*=f;this.arcScaleY_*=h;f=[[f,0,0],[0,h,0],[0,0,1]];n(this,g(f,this.m_),true)};x.transform=function(f,h,k,o,s,u){s=[[f,h,0],[k,o,0],[s,u,1]];n(this,g(s,this.m_),true)};x.setTransform=function(f, +h,k,o,s,u){f=[[f,h,0],[k,o,0],[s,u,1]];n(this,f,true)};x.clip=function(){};x.arcTo=function(){};x.createPattern=function(){return new z};w.prototype.addColorStop=function(f,h){h=l(h);this.colors_.push({offset:f,color:h.color,alpha:h.alpha})};G_vmlCanvasManager=I;CanvasRenderingContext2D=m;CanvasGradient=w;CanvasPattern=z}();if(dhtmlx&&dhtmlx.N)dhtmlx.N["thirdparty/excanvas/excanvas.js"]=true; diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/dhtmlxcommon.js b/phpgwapi/js/dhtmlxtree/libCompiler/dhtmlxcommon.js new file mode 100755 index 0000000000..e8144c718a --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/libCompiler/dhtmlxcommon.js @@ -0,0 +1,928 @@ +dhtmlx=function(obj){ + for (var a in obj) dhtmlx[a]=obj[a]; + return dhtmlx; //simple singleton +}; +dhtmlx.extend_api=function(name,map,ext){ + var t = window[name]; + if (!t) return; //component not defined + window[name]=function(obj){ + if (obj && typeof obj == "object" && !obj.tagName){ + var that = t.apply(this,(map._init?map._init(obj):arguments)); + //global settings + for (var a in dhtmlx) + if (map[a]) this[map[a]](dhtmlx[a]); + //local settings + for (var a in obj){ + if (map[a]) this[map[a]](obj[a]); + else if (a.indexOf("on")==0){ + this.attachEvent(a,obj[a]); + } + } + } else + var that = t.apply(this,arguments); + if (map._patch) map._patch(this); + return that||this; + }; + window[name].prototype=t.prototype; + if (ext) + dhtmlXHeir(window[name].prototype,ext); +}; + +dhtmlxAjax={ + get:function(url,callback){ + var t=new dtmlXMLLoaderObject(true); + t.async=(arguments.length<3); + t.waitCall=callback; + t.loadXML(url) + return t; + }, + post:function(url,post,callback){ + var t=new dtmlXMLLoaderObject(true); + t.async=(arguments.length<4); + t.waitCall=callback; + t.loadXML(url,true,post) + return t; + }, + getSync:function(url){ + return this.get(url,null,true) + }, + postSync:function(url,post){ + return this.post(url,post,null,true); + } +} + +/** + * @desc: xmlLoader object + * @type: private + * @param: funcObject - xml parser function + * @param: object - jsControl object + * @param: async - sync/async mode (async by default) + * @param: rSeed - enable/disable random seed ( prevent IE caching) + * @topic: 0 + */ +function dtmlXMLLoaderObject(funcObject, dhtmlObject, async, rSeed){ + this.xmlDoc=""; + + if (typeof (async) != "undefined") + this.async=async; + else + this.async=true; + + this.onloadAction=funcObject||null; + this.mainObject=dhtmlObject||null; + this.waitCall=null; + this.rSeed=rSeed||false; + return this; +}; +/** + * @desc: xml loading handler + * @type: private + * @param: dtmlObject - xmlLoader object + * @topic: 0 + */ +dtmlXMLLoaderObject.prototype.waitLoadFunction=function(dhtmlObject){ + var once = true; + this.check=function (){ + if ((dhtmlObject)&&(dhtmlObject.onloadAction != null)){ + if ((!dhtmlObject.xmlDoc.readyState)||(dhtmlObject.xmlDoc.readyState == 4)){ + if (!once) + return; + + once=false; //IE 5 fix + if (typeof dhtmlObject.onloadAction == "function") + dhtmlObject.onloadAction(dhtmlObject.mainObject, null, null, null, dhtmlObject); + + if (dhtmlObject.waitCall){ + dhtmlObject.waitCall.call(this,dhtmlObject); + dhtmlObject.waitCall=null; + } + } + } + }; + return this.check; +}; + +/** + * @desc: return XML top node + * @param: tagName - top XML node tag name (not used in IE, required for Safari and Mozilla) + * @type: private + * @returns: top XML node + * @topic: 0 + */ +dtmlXMLLoaderObject.prototype.getXMLTopNode=function(tagName, oldObj){ + if (this.xmlDoc.responseXML){ + var temp = this.xmlDoc.responseXML.getElementsByTagName(tagName); + if(temp.length==0 && tagName.indexOf(":")!=-1) + var temp = this.xmlDoc.responseXML.getElementsByTagName((tagName.split(":"))[1]); + var z = temp[0]; + } else + var z = this.xmlDoc.documentElement; + + if (z){ + this._retry=false; + return z; + } + + if ((_isIE)&&(!this._retry)){ + //fall back to MS.XMLDOM + var xmlString = this.xmlDoc.responseText; + var oldObj = this.xmlDoc; + this._retry=true; + this.xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); + this.xmlDoc.async=false; + this.xmlDoc["loadXM"+"L"](xmlString); + + return this.getXMLTopNode(tagName, oldObj); + } + dhtmlxError.throwError("LoadXML", "Incorrect XML", [ + (oldObj||this.xmlDoc), + this.mainObject + ]); + + return document.createElement("DIV"); +}; + +/** + * @desc: load XML from string + * @type: private + * @param: xmlString - xml string + * @topic: 0 + */ +dtmlXMLLoaderObject.prototype.loadXMLString=function(xmlString){ + { + try{ + var parser = new DOMParser(); + this.xmlDoc=parser.parseFromString(xmlString, "text/xml"); + } + catch (e){ + this.xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); + this.xmlDoc.async=this.async; + this.xmlDoc["loadXM"+"L"](xmlString); + } + } + + this.onloadAction(this.mainObject, null, null, null, this); + + if (this.waitCall){ + this.waitCall(); + this.waitCall=null; + } +} +/** + * @desc: load XML + * @type: private + * @param: filePath - xml file path + * @param: postMode - send POST request + * @param: postVars - list of vars for post request + * @topic: 0 + */ +dtmlXMLLoaderObject.prototype.loadXML=function(filePath, postMode, postVars, rpc){ + if (this.rSeed) + filePath+=((filePath.indexOf("?") != -1) ? "&" : "?")+"a_dhx_rSeed="+(new Date()).valueOf(); + this.filePath=filePath; + + if ((!_isIE)&&(window.XMLHttpRequest)) + this.xmlDoc=new XMLHttpRequest(); + else { + this.xmlDoc=new ActiveXObject("Microsoft.XMLHTTP"); + } + + if (this.async) + this.xmlDoc.onreadystatechange=new this.waitLoadFunction(this); + this.xmlDoc.open(postMode ? "POST" : "GET", filePath, this.async); + + if (rpc){ + this.xmlDoc.setRequestHeader("User-Agent", "dhtmlxRPC v0.1 ("+navigator.userAgent+")"); + this.xmlDoc.setRequestHeader("Content-type", "text/xml"); + } + + else if (postMode) + this.xmlDoc.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); + + this.xmlDoc.setRequestHeader("X-Requested-With","XMLHttpRequest"); + this.xmlDoc.send(null||postVars); + + if (!this.async) + (new this.waitLoadFunction(this))(); +}; +/** + * @desc: destructor, cleans used memory + * @type: private + * @topic: 0 + */ +dtmlXMLLoaderObject.prototype.destructor=function(){ + this._filterXPath = null; + this._getAllNamedChilds = null; + this._retry = null; + this.async = null; + this.rSeed = null; + this.filePath = null; + this.onloadAction = null; + this.mainObject = null; + this.xmlDoc = null; + this.doXPath = null; + this.doXPathOpera = null; + this.doXSLTransToObject = null; + this.doXSLTransToString = null; + this.loadXML = null; + this.loadXMLString = null; + // this.waitLoadFunction = null; + this.doSerialization = null; + this.xmlNodeToJSON = null; + this.getXMLTopNode = null; + this.setXSLParamValue = null; + return null; +} + +dtmlXMLLoaderObject.prototype.xmlNodeToJSON = function(node){ + var t={}; + for (var i=0; i-1) + _isChrome=true; + +if ((navigator.userAgent.indexOf('Safari') != -1)||(navigator.userAgent.indexOf('Konqueror') != -1)){ + var _KHTMLrv = parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf('Safari')+7, 5)); + + if (_KHTMLrv > 525){ //mimic FF behavior for Safari 3.1+ + _isFF=true; + var _FFrv = 1.9; + } else + _isKHTML=true; +} else if (navigator.userAgent.indexOf('Opera') != -1){ + _isOpera=true; + _OperaRv=parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf('Opera')+6, 3)); +} + + +else if (navigator.appName.indexOf("Microsoft") != -1){ + _isIE=true; + if (navigator.appVersion.indexOf("MSIE 8.0")!= -1 && document.compatMode != "BackCompat") _isIE=8; + if (navigator.appVersion.indexOf("MSIE 9.0")!= -1 && document.compatMode != "BackCompat") _isIE=8; +} else { + _isFF=true; + var _FFrv = parseFloat(navigator.userAgent.split("rv:")[1]) +} + + +//multibrowser Xpath processor +dtmlXMLLoaderObject.prototype.doXPath=function(xpathExp, docObj, namespace, result_type){ + if (_isKHTML || (!_isIE && !window.XPathResult)) + return this.doXPathOpera(xpathExp, docObj); + + if (_isIE){ //IE + if (!docObj) + if (!this.xmlDoc.nodeName) + docObj=this.xmlDoc.responseXML + else + docObj=this.xmlDoc; + + if (!docObj) + dhtmlxError.throwError("LoadXML", "Incorrect XML", [ + (docObj||this.xmlDoc), + this.mainObject + ]); + + if (namespace != null) + docObj.setProperty("SelectionNamespaces", "xmlns:xsl='"+namespace+"'"); // + + if (result_type == 'single'){ + return docObj.selectSingleNode(xpathExp); + } + else { + return docObj.selectNodes(xpathExp)||new Array(0); + } + } else { //Mozilla + var nodeObj = docObj; + + if (!docObj){ + if (!this.xmlDoc.nodeName){ + docObj=this.xmlDoc.responseXML + } + else { + docObj=this.xmlDoc; + } + } + + if (!docObj) + dhtmlxError.throwError("LoadXML", "Incorrect XML", [ + (docObj||this.xmlDoc), + this.mainObject + ]); + + if (docObj.nodeName.indexOf("document") != -1){ + nodeObj=docObj; + } + else { + nodeObj=docObj; + docObj=docObj.ownerDocument; + } + var retType = XPathResult.ANY_TYPE; + + if (result_type == 'single') + retType=XPathResult.FIRST_ORDERED_NODE_TYPE + var rowsCol = new Array(); + var col = docObj.evaluate(xpathExp, nodeObj, function(pref){ + return namespace + }, retType, null); + + if (retType == XPathResult.FIRST_ORDERED_NODE_TYPE){ + return col.singleNodeValue; + } + var thisColMemb = col.iterateNext(); + + while (thisColMemb){ + rowsCol[rowsCol.length]=thisColMemb; + thisColMemb=col.iterateNext(); + } + return rowsCol; + } +} + +function _dhtmlxError(type, name, params){ + if (!this.catches) + this.catches=new Array(); + + return this; +} + +_dhtmlxError.prototype.catchError=function(type, func_name){ + this.catches[type]=func_name; +} +_dhtmlxError.prototype.throwError=function(type, name, params){ + if (this.catches[type]) + return this.catches[type](type, name, params); + + if (this.catches["ALL"]) + return this.catches["ALL"](type, name, params); + + alert("Error type: "+arguments[0]+"\nDescription: "+arguments[1]); + return null; +} + +window.dhtmlxError=new _dhtmlxError(); + + +//opera fake, while 9.0 not released +//multibrowser Xpath processor +dtmlXMLLoaderObject.prototype.doXPathOpera=function(xpathExp, docObj){ + //this is fake for Opera + var z = xpathExp.replace(/[\/]+/gi, "/").split('/'); + var obj = null; + var i = 1; + + if (!z.length) + return []; + + if (z[0] == ".") + obj=[docObj]; else if (z[0] == ""){ + obj=(this.xmlDoc.responseXML||this.xmlDoc).getElementsByTagName(z[i].replace(/\[[^\]]*\]/g, "")); + i++; + } else + return []; + + for (i; i < z.length; i++)obj=this._getAllNamedChilds(obj, z[i]); + + if (z[i-1].indexOf("[") != -1) + obj=this._filterXPath(obj, z[i-1]); + return obj; +} + +dtmlXMLLoaderObject.prototype._filterXPath=function(a, b){ + var c = new Array(); + var b = b.replace(/[^\[]*\[\@/g, "").replace(/[\[\]\@]*/g, ""); + + for (var i = 0; i < a.length; i++) + if (a[i].getAttribute(b)) + c[c.length]=a[i]; + + return c; +} +dtmlXMLLoaderObject.prototype._getAllNamedChilds=function(a, b){ + var c = new Array(); + + if (_isKHTML) + b=b.toUpperCase(); + + for (var i = 0; i < a.length; i++)for (var j = 0; j < a[i].childNodes.length; j++){ + if (_isKHTML){ + if (a[i].childNodes[j].tagName&&a[i].childNodes[j].tagName.toUpperCase() == b) + c[c.length]=a[i].childNodes[j]; + } + + else if (a[i].childNodes[j].tagName == b) + c[c.length]=a[i].childNodes[j]; + } + + return c; +} + +function dhtmlXHeir(a, b){ + for (var c in b) + if (typeof (b[c]) == "function") + a[c]=b[c]; + return a; +} + +function dhtmlxEvent(el, event, handler){ + if (el.addEventListener) + el.addEventListener(event, handler, false); + + else if (el.attachEvent) + el.attachEvent("on"+event, handler); +} + +//============= XSL Extension =================================== + +dtmlXMLLoaderObject.prototype.xslDoc=null; +dtmlXMLLoaderObject.prototype.setXSLParamValue=function(paramName, paramValue, xslDoc){ + if (!xslDoc) + xslDoc=this.xslDoc + + if (xslDoc.responseXML) + xslDoc=xslDoc.responseXML; + var item = + this.doXPath("/xsl:stylesheet/xsl:variable[@name='"+paramName+"']", xslDoc, + "http:/\/www.w3.org/1999/XSL/Transform", "single"); + + if (item != null) + item.firstChild.nodeValue=paramValue +} +dtmlXMLLoaderObject.prototype.doXSLTransToObject=function(xslDoc, xmlDoc){ + if (!xslDoc) + xslDoc=this.xslDoc; + + if (xslDoc.responseXML) + xslDoc=xslDoc.responseXML + + if (!xmlDoc) + xmlDoc=this.xmlDoc; + + if (xmlDoc.responseXML) + xmlDoc=xmlDoc.responseXML + + //MOzilla + if (!_isIE){ + if (!this.XSLProcessor){ + this.XSLProcessor=new XSLTProcessor(); + this.XSLProcessor.importStylesheet(xslDoc); + } + var result = this.XSLProcessor.transformToDocument(xmlDoc); + } else { + var result = new ActiveXObject("Msxml2.DOMDocument.3.0"); + try{ + xmlDoc.transformNodeToObject(xslDoc, result); + }catch(e){ + result = xmlDoc.transformNode(xslDoc); + } + } + return result; +} + +dtmlXMLLoaderObject.prototype.doXSLTransToString=function(xslDoc, xmlDoc){ + var res = this.doXSLTransToObject(xslDoc, xmlDoc); + if(typeof(res)=="string") + return res; + return this.doSerialization(res); +} + +dtmlXMLLoaderObject.prototype.doSerialization=function(xmlDoc){ + if (!xmlDoc) + xmlDoc=this.xmlDoc; + if (xmlDoc.responseXML) + xmlDoc=xmlDoc.responseXML + if (!_isIE){ + var xmlSerializer = new XMLSerializer(); + return xmlSerializer.serializeToString(xmlDoc); + } else + return xmlDoc.xml; +} + +/** +* @desc: +* @type: private +*/ +dhtmlxEventable=function(obj){ + obj.attachEvent=function(name, catcher, callObj){ + name='ev_'+name.toLowerCase(); + if (!this[name]) + this[name]=new this.eventCatcher(callObj||this); + + return(name+':'+this[name].addEvent(catcher)); //return ID (event name & event ID) + } + obj.callEvent=function(name, arg0){ + name='ev_'+name.toLowerCase(); + if (this[name]) + return this[name].apply(this, arg0); + return true; + } + obj.checkEvent=function(name){ + return (!!this['ev_'+name.toLowerCase()]) + } + obj.eventCatcher=function(obj){ + var dhx_catch = []; + var z = function(){ + var res = true; + for (var i = 0; i < dhx_catch.length; i++){ + if (dhx_catch[i] != null){ + var zr = dhx_catch[i].apply(obj, arguments); + res=res&&zr; + } + } + return res; + } + z.addEvent=function(ev){ + if (typeof (ev) != "function") + ev=eval(ev); + if (ev) + return dhx_catch.push(ev)-1; + return false; + } + z.removeEvent=function(id){ + dhx_catch[id]=null; + } + return z; + } + obj.detachEvent=function(id){ + if (id != false){ + var list = id.split(':'); //get EventName and ID + this[list[0]].removeEvent(list[1]); //remove event + } + } + obj.detachAllEvents = function(){ + for (var name in this){ + if (name.indexOf("ev_")==0) + delete this[name]; + } + } +} diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/dhtmlxcontainer.js b/phpgwapi/js/dhtmlxtree/libCompiler/dhtmlxcontainer.js new file mode 100755 index 0000000000..1c07ecc78a --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/libCompiler/dhtmlxcontainer.js @@ -0,0 +1,1173 @@ +function dhtmlXContainer(obj) { + + var that = this; + + this.obj = obj; + this.dhxcont = null; + + this.st = document.createElement("DIV"); + this.st.style.position = "absolute"; + this.st.style.left = "-200px"; + this.st.style.top = "0px"; + this.st.style.width = "100px"; + this.st.style.height = "1px"; + this.st.style.visibility = "hidden"; + this.st.style.overflow = "hidden"; + document.body.insertBefore(this.st, document.body.childNodes[0]); + + this.obj._getSt = function() { + // return this.st object, needed for content moving + return that.st; + } + + this.obj.dv = "def"; // default + this.obj.av = this.obj.dv; // active for usage + this.obj.cv = this.obj.av; // current opened + this.obj.vs = {}; // all + this.obj.vs[this.obj.av] = {}; + + this.obj.view = function(name) { + + if (!this.vs[name]) { + + this.vs[name] = {}; + this.vs[name].dhxcont = this.vs[this.dv].dhxcont; + var mainCont = document.createElement("DIV"); + mainCont.style.position = "relative"; + mainCont.style.left = "0px"; + mainCont.style.width = "200px"; + mainCont.style.height = "200px"; + mainCont.style.overflow = "hidden"; + that.st.appendChild(mainCont); + + this.vs[name].dhxcont.mainCont[name] = mainCont; + + } + + this.avt = this.av; + this.av = name; + + return this; + + } + + this.obj.setActive = function() { + + if (!this.vs[this.av]) return; + + this.cv = this.av; + + // detach current content + + if (this.vs[this.avt].dhxcont == this.vs[this.avt].dhxcont.mainCont[this.avt].parentNode) { + + that.st.appendChild(this.vs[this.avt].dhxcont.mainCont[this.avt]); + + if (this.vs[this.avt].menu) that.st.appendChild(document.getElementById(this.vs[this.avt].menuId)); + if (this.vs[this.avt].toolbar) that.st.appendChild(document.getElementById(this.vs[this.avt].toolbarId)); + if (this.vs[this.avt].sb) that.st.appendChild(document.getElementById(this.vs[this.avt].sbId)); + + } + + + + // adjust content + if (this._isCell) { + //this.adjustContent(this.childNodes[0], (this._noHeader?0:this.skinParams[this.skin]["cpanel_height"])); + } + //this.vs[this.av].dhxcont.mainCont[this.av].style.width = this.vs[this.av].dhxcont.mainCont[this.avt].style.width; + //this.vs[this.av].dhxcont.mainCont[this.av].style.height = this.vs[this.av].dhxcont.mainCont[this.avt].style.height; + + if (this.vs[this.av].dhxcont != this.vs[this.av].dhxcont.mainCont[this.av].parentNode) { + + this.vs[this.av].dhxcont.insertBefore(this.vs[this.av].dhxcont.mainCont[this.av],this.vs[this.av].dhxcont.childNodes[this.vs[this.av].dhxcont.childNodes.length-1]); + + if (this.vs[this.av].menu) this.vs[this.av].dhxcont.insertBefore(document.getElementById(this.vs[this.av].menuId), this.vs[this.av].dhxcont.childNodes[0]); + if (this.vs[this.av].toolbar) this.vs[this.av].dhxcont.insertBefore(document.getElementById(this.vs[this.av].toolbarId), this.vs[this.av].dhxcont.childNodes[(this.vs[this.av].menu?1:0)]); + if (this.vs[this.av].sb) this.vs[this.av].dhxcont.insertBefore(document.getElementById(this.vs[this.av].sbId), this.vs[this.av].dhxcont.childNodes[this.vs[this.av].dhxcont.childNodes.length-1]); + + } + + if (this._doOnResize) this._doOnResize(); + + this.avt = null; + } + + this.obj._viewRestore = function() { + var t = this.av; + if (this.avt) { this.av = this.avt; this.avt = null; } + return t; + } + + this.setContent = function(data) { + /* + this.dhxcont = data; + this.dhxcont.innerHTML = "
    "+ + ""; + this.dhxcont.mainCont = this.dhxcont.childNodes[0]; + this.obj.vs[this.obj.av].dhxcont = this.dhxcont; + */ + + this.obj.vs[this.obj.av].dhxcont = data; + this.obj._init(); + } + + this.obj._init = function() { + + this.vs[this.av].dhxcont.innerHTML = "
    "+ + ""; + + this.vs[this.av].dhxcont.mainCont = {}; + this.vs[this.av].dhxcont.mainCont[this.av] = this.vs[this.av].dhxcont.childNodes[0]; + + } + + this.obj._genStr = function(w) { + var s = ""; var z = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + for (var q=0; q 0) objB.appendChild(objA.childNodes[0]); + + //this.vs[a] = null; + + + } + + cont.view(this.av).setActive(); + + + } + + this.obj.adjustContent = function(parentObj, offsetTop, marginTop, notCalcWidth, offsetBottom) { + + this.vs[this.av].dhxcont.style.left = (this._offsetLeft||0)+"px"; + this.vs[this.av].dhxcont.style.top = (this._offsetTop||0)+offsetTop+"px"; + // + var cw = parentObj.clientWidth+(this._offsetWidth||0); + if (notCalcWidth !== true) this.vs[this.av].dhxcont.style.width = Math.max(0, cw)+"px"; + if (notCalcWidth !== true) if (this.vs[this.av].dhxcont.offsetWidth > cw) this.vs[this.av].dhxcont.style.width = Math.max(0, cw*2-this.vs[this.av].dhxcont.offsetWidth)+"px"; + // + var ch = parentObj.clientHeight+(this._offsetHeight||0); + this.vs[this.av].dhxcont.style.height = Math.max(0, ch-offsetTop)+(marginTop!=null?marginTop:0)+"px"; + if (this.vs[this.av].dhxcont.offsetHeight > ch - offsetTop) this.vs[this.av].dhxcont.style.height = Math.max(0, (ch-offsetTop)*2-this.vs[this.av].dhxcont.offsetHeight)+"px"; + if (offsetBottom) if (!isNaN(offsetBottom)) this.vs[this.av].dhxcont.style.height = Math.max(0, parseInt(this.vs[this.av].dhxcont.style.height)-offsetBottom)+"px"; + + // main window content + if (this.vs[this.av]._minDataSizeH != null) { + // height for menu/toolbar/status bar should be included + if (parseInt(this.vs[this.av].dhxcont.style.height) < this.vs[this.av]._minDataSizeH) this.vs[this.av].dhxcont.style.height = this.vs[this.av]._minDataSizeH+"px"; + } + if (this.vs[this.av]._minDataSizeW != null) { + if (parseInt(this.vs[this.av].dhxcont.style.width) < this.vs[this.av]._minDataSizeW) this.vs[this.av].dhxcont.style.width = this.vs[this.av]._minDataSizeW+"px"; + } + + if (notCalcWidth !== true) { + this.vs[this.av].dhxcont.mainCont[this.av].style.width = this.vs[this.av].dhxcont.clientWidth+"px"; + // allow border to this.dhxcont.mainCont + if (this.vs[this.av].dhxcont.mainCont[this.av].offsetWidth > this.vs[this.av].dhxcont.clientWidth) this.vs[this.av].dhxcont.mainCont[this.av].style.width = Math.max(0, this.vs[this.av].dhxcont.clientWidth*2-this.vs[this.av].dhxcont.mainCont[this.av].offsetWidth)+"px"; + } + + var menuOffset = (this.vs[this.av].menu!=null?(!this.vs[this.av].menuHidden?this.vs[this.av].menuHeight:0):0); + var toolbarOffset = (this.vs[this.av].toolbar!=null?(!this.vs[this.av].toolbarHidden?this.vs[this.av].toolbarHeight:0):0); + var statusOffset = (this.vs[this.av].sb!=null?(!this.vs[this.av].sbHidden?this.vs[this.av].sbHeight:0):0); + + // allow border to this.dhxcont.mainCont + this.vs[this.av].dhxcont.mainCont[this.av].style.height = this.vs[this.av].dhxcont.clientHeight+"px"; + if (this.vs[this.av].dhxcont.mainCont[this.av].offsetHeight > this.vs[this.av].dhxcont.clientHeight) this.vs[this.av].dhxcont.mainCont[this.av].style.height = Math.max(0, this.vs[this.av].dhxcont.clientHeight*2-this.vs[this.av].dhxcont.mainCont[this.av].offsetHeight)+"px"; + this.vs[this.av].dhxcont.mainCont[this.av].style.height = Math.max(0, parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height)-menuOffset-toolbarOffset-statusOffset)+"px"; + + } + this.obj.coverBlocker = function() { + return this.vs[this.av].dhxcont.childNodes[this.vs[this.av].dhxcont.childNodes.length-1]; + } + this.obj.showCoverBlocker = function() { + this.coverBlocker().style.display = ""; + } + this.obj.hideCoverBlocker = function() { + this.coverBlocker().style.display = "none"; + } + this.obj.updateNestedObjects = function() { + + if (this.vs[this.av].grid) { this.vs[this.av].grid.setSizes(); } + if (this.vs[this.av].sched) { this.vs[this.av].sched.setSizes(); } + if (this.vs[this.av].tabbar) { + this.vs[this.av].tabbar.adjustOuterSize(); + } + if (this.vs[this.av].folders) { this.vs[this.av].folders.setSizes(); } + if (this.vs[this.av].editor) { + if (!_isIE) this.vs[this.av].editor._prepareContent(true); + this.vs[this.av].editor.setSizes(); + } + + //if (_isOpera) { var t = this; window.setTimeout(function(){t.editor.adjustSize();},10); } else { this.vs[this.av].editor.adjustSize(); } } + if (this.vs[this.av].layout) { + if (this.vs[this.av]._isAcc && this.vs[this.av].skin == "dhx_skyblue") { + this.vs[this.av].layoutObj.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width)+2+"px"; + this.vs[this.av].layoutObj.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height)+2+"px"; + } else { + this.vs[this.av].layoutObj.style.width = this.vs[this.av].dhxcont.mainCont[this.av].style.width; + this.vs[this.av].layoutObj.style.height = this.vs[this.av].dhxcont.mainCont[this.av].style.height; + } + this.vs[this.av].layout.setSizes(); + } + + if (this.vs[this.av].accordion != null) { + + if (this.vs[this.av].skin == "dhx_web") { + this.vs[this.av].accordionObj.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width)+"px"; + this.vs[this.av].accordionObj.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height)+"px"; + } else { + this.vs[this.av].accordionObj.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width)+2+"px"; + this.vs[this.av].accordionObj.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height)+2+"px"; + } + this.vs[this.av].accordion.setSizes(); + } + // docked layout's cell + if (this.vs[this.av].dockedCell) { this.vs[this.av].dockedCell.updateNestedObjects(); } + /* + if (win.accordion != null) { win.accordion.setSizes(); } + if (win.layout != null) { win.layout.setSizes(win); } + */ + if (this.vs[this.av].form) this.vs[this.av].form.setSizes(); + } + /** + * @desc: attaches a status bar to a window + * @type: public + */ + this.obj.attachStatusBar = function() { + + if (this.vs[this.av].sb) return; + + var sbObj = document.createElement("DIV"); + + if (this._isCell) { + sbObj.className = "dhxcont_sb_container_layoutcell"; + } else { + sbObj.className = "dhxcont_sb_container"; + } + sbObj.id = "sbobj_"+this._genStr(12); + sbObj.innerHTML = "
    "; + + if (this.cv == this.av) this.vs[this.av].dhxcont.insertBefore(sbObj, this.vs[this.av].dhxcont.childNodes[this.vs[this.av].dhxcont.childNodes.length-1]); else that.st.appendChild(sbObj); + + sbObj.setText = function(text) { this.childNodes[0].innerHTML = text; } + sbObj.getText = function() { return this.childNodes[0].innerHTML; } + sbObj.onselectstart = function(e) { e=e||event; e.returnValue=false; return false; } + + this.vs[this.av].sb = sbObj; + this.vs[this.av].sbHeight = (this.skin=="dhx_web"?41:(this.skin=="dhx_skyblue"?23:sbObj.offsetHeight)); + this.vs[this.av].sbId = sbObj.id; + + if (this._doOnAttachStatusBar) this._doOnAttachStatusBar("init"); + this.adjust(); + + return this.vs[this._viewRestore()].sb; + } + /** + * @desc: detaches a status bar from a window + * @type: public + */ + this.obj.detachStatusBar = function() { + if (!this.vs[this.av].sb) return; + this.vs[this.av].sb.setText = null; + this.vs[this.av].sb.getText = null; + this.vs[this.av].sb.onselectstart = null; + this.vs[this.av].sb.parentNode.removeChild(this.vs[this.av].sb); + this.vs[this.av].sb = null; + this.vs[this.av].sbHeight = null; + this.vs[this.av].sbId = null; + this._viewRestore(); + if (this._doOnAttachStatusBar) this._doOnAttachStatusBar("unload"); + } + /** + * @desc: attaches a dhtmlxMenu to a window + * @type: public + */ + this.obj.attachMenu = function(skin) { + + if (this.vs[this.av].menu) return; + + var menuObj = document.createElement("DIV"); + menuObj.style.position = "relative"; + menuObj.style.overflow = "hidden"; + menuObj.id = "dhxmenu_"+this._genStr(12); + + if (this.cv == this.av) this.vs[this.av].dhxcont.insertBefore(menuObj, this.vs[this.av].dhxcont.childNodes[0]); else that.st.appendChild(menuObj); + + this.vs[this.av].menu = new dhtmlXMenuObject(menuObj.id, (skin||this.skin)); + this.vs[this.av].menuHeight = (this.skin=="dhx_web"?29:menuObj.offsetHeight); + this.vs[this.av].menuId = menuObj.id; + + if (this._doOnAttachMenu) this._doOnAttachMenu("init"); + this.adjust(); + + return this.vs[this._viewRestore()].menu; + } + /** + * @desc: detaches a dhtmlxMenu from a window + * @type: public + */ + this.obj.detachMenu = function() { + if (!this.vs[this.av].menu) return; + var menuObj = document.getElementById(this.vs[this.av].menuId); + this.vs[this.av].menu.unload(); + this.vs[this.av].menu = null; + this.vs[this.av].menuId = null; + this.vs[this.av].menuHeight = null; + menuObj.parentNode.removeChild(menuObj); + menuObj = null; + this._viewRestore(); + if (this._doOnAttachMenu) this._doOnAttachMenu("unload"); + } + /** + * @desc: attaches a dhtmlxToolbar to a window + * @type: public + */ + this.obj.attachToolbar = function(skin) { + + if (this.vs[this.av].toolbar) return; + + var toolbarObj = document.createElement("DIV"); + toolbarObj.style.position = "relative"; + toolbarObj.style.overflow = "hidden"; + toolbarObj.id = "dhxtoolbar_"+this._genStr(12); + + if (this.cv == this.av) this.vs[this.av].dhxcont.insertBefore(toolbarObj, this.vs[this.av].dhxcont.childNodes[(this.vs[this.av].menu!=null?1:0)]); else that.st.appendChild(toolbarObj); + + this.vs[this.av].toolbar = new dhtmlXToolbarObject(toolbarObj.id, (skin||this.skin)); + this.vs[this.av].toolbarHeight = (this.skin=="dhx_web"?41:toolbarObj.offsetHeight+(this._isLayout&&this.skin=="dhx_skyblue"?2:0)); + this.vs[this.av].toolbarId = toolbarObj.id; + + if (this._doOnAttachToolbar) this._doOnAttachToolbar("init"); + this.adjust(); + + return this.vs[this._viewRestore()].toolbar; + } + /** + * @desc: detaches a dhtmlxToolbar from a window + * @type: public + */ + this.obj.detachToolbar = function() { + if (!this.vs[this.av].toolbar) return; + var toolbarObj = document.getElementById(this.vs[this.av].toolbarId); + this.vs[this.av].toolbar.unload(); + this.vs[this.av].toolbar = null; + this.vs[this.av].toolbarId = null; + this.vs[this.av].toolbarHeight = null; + toolbarObj.parentNode.removeChild(toolbarObj); + toolbarObj = null; + this._viewRestore(); + if (this._doOnAttachToolbar) this._doOnAttachToolbar("unload"); + } + /** + * @desc: attaches a dhtmlxGrid to a window + * @type: public + */ + this.obj.attachGrid = function() { + if (this._isWindow && this.skin == "dhx_skyblue") { + this.vs[this.av].dhxcont.mainCont[this.av].style.border = "#a4bed4 1px solid"; + this._redraw(); + } + var obj = document.createElement("DIV"); + obj.id = "dhxGridObj_"+this._genStr(12); + obj.style.width = "100%"; + obj.style.height = "100%"; + obj.cmp = "grid"; + document.body.appendChild(obj); + this.attachObject(obj.id, false, true); + + this.vs[this.av].grid = new dhtmlXGridObject(obj.id); + this.vs[this.av].grid.setSkin(this.skin); + if (this.skin != "dhx_web") { + this.vs[this.av].grid.entBox.style.border = "0px solid white"; + this.vs[this.av].grid._sizeFix=0; + } + this.vs[this.av].gridId = obj.id; + this.vs[this.av].gridObj = obj; + + return this.vs[this._viewRestore()].grid; + } + /** + * @desc: attaches a dhtmlxScheduler to a window + * @type: public + */ + this.obj.attachScheduler = function(day,mode) { + var obj = document.createElement("DIV"); + obj.id = "dhxSchedObj_"+this._genStr(12); + obj.innerHTML = '
     
     
    '; + + document.body.appendChild(obj.firstChild); + this.attachObject(obj.id, false, true); + + this.vs[this.av].sched = scheduler; + this.vs[this.av].schedId = obj.id; + scheduler.setSizes = scheduler.update_view; + scheduler.destructor=function(){}; + scheduler.init(obj.id,day,mode); + + return this.vs[this._viewRestore()].sched; + } + /** + * @desc: attaches a dhtmlxTree to a window + * @param: rootId - not mandatory, tree super root, see dhtmlxTree documentation for details + * @type: public + */ + this.obj.attachTree = function(rootId) { + if (this._isWindow && this.skin == "dhx_skyblue") { + this.vs[this.av].dhxcont.mainCont[this.av].style.border = "#a4bed4 1px solid"; + this._redraw(); + } + var obj = document.createElement("DIV"); + obj.id = "dhxTreeObj_"+this._genStr(12); + obj.style.width = "100%"; + obj.style.height = "100%"; + obj.cmp = "tree"; + document.body.appendChild(obj); + this.attachObject(obj.id, false, true); + this.vs[this.av].tree = new dhtmlXTreeObject(obj.id, "100%", "100%", (rootId||0)); + this.vs[this.av].tree.setSkin(this.skin); + // this.tree.allTree.style.paddingTop = "2px"; + this.vs[this.av].tree.allTree.childNodes[0].style.marginTop = "2px"; + this.vs[this.av].tree.allTree.childNodes[0].style.marginBottom = "2px"; + + this.vs[this.av].treeId = obj.id; + this.vs[this.av].treeObj = obj; + + return this.vs[this._viewRestore()].tree; + } + /** + * @desc: attaches a dhtmlxTabbar to a window + * @type: public + */ + this.obj.attachTabbar = function(mode) { + + if (this._isWindow && this.skin == "dhx_skyblue") { + this.vs[this.av].dhxcont.style.border = "none"; + this.setDimension(this.w, this.h); + } + + var obj = document.createElement("DIV"); + obj.id = "dhxTabbarObj_"+this._genStr(12); + obj.style.width = "100%"; + obj.style.height = "100%"; + obj.style.overflow = "hidden"; + obj.cmp = "tabbar"; + document.body.appendChild(obj); + this.attachObject(obj.id, false, true); + + // manage dockcell if exists + if (this.className == "dhtmlxLayoutSinglePoly") this.hideHeader(); + // + this.vs[this.av].tabbar = new dhtmlXTabBar(obj.id, mode||"top", 20); + if (!this._isWindow) this.vs[this.av].tabbar._s.expand = true; + this.vs[this.av].tabbar.setSkin(this.skin); + this.vs[this.av].tabbar.adjustOuterSize(); + this.vs[this.av].tabbarId = obj.id; + this.vs[this.av].tabbarObj = obj; + + return this.vs[this._viewRestore()].tabbar; + } + /** + * @desc: attaches a dhtmlxFolders to a window + * @type: public + */ + this.obj.attachFolders = function() { + if (this._isWindow && this.skin == "dhx_skyblue") { + this.vs[this.av].dhxcont.mainCont[this.av].style.border = "#a4bed4 1px solid"; + this._redraw(); + } + var obj = document.createElement("DIV"); + obj.id = "dhxFoldersObj_"+this._genStr(12); + obj.style.width = "100%"; + obj.style.height = "100%"; + obj.style.overflow = "hidden"; + obj.cmp = "folders"; + document.body.appendChild(obj); + this.attachObject(obj.id, false, true); + this.vs[this.av].folders = new dhtmlxFolders(obj.id); + this.vs[this.av].folders.setSizes(); + + this.vs[this.av].foldersId = obj.id; + this.vs[this.av].foldersObj = obj; + + return this.vs[this._viewRestore()].folders; + } + /** + * @desc: attaches a dhtmlxAccordion to a window + * @type: public + */ + this.obj.attachAccordion = function() { + if (this._isWindow && this.skin == "dhx_skyblue") { + this.vs[this.av].dhxcont.mainCont[this.av].style.border = "#a4bed4 1px solid"; + this._redraw(); + } + + var obj = document.createElement("DIV"); + obj.id = "dhxAccordionObj_"+this._genStr(12); + + if (this.skin == "dhx_web") { + obj.style.left = "0px"; + obj.style.top = "0px"; + obj.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width)+"px"; + obj.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height)+"px"; + } else { + + obj.style.left = "-1px"; + obj.style.top = "-1px"; + obj.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width)+2+"px"; + obj.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height)+2+"px"; + } + // + obj.style.position = "relative"; + obj.cmp = "accordion"; + document.body.appendChild(obj); + this.attachObject(obj.id, false, true); + + this.vs[this.av].accordion = new dhtmlXAccordion(obj.id, this.skin); + this.vs[this.av].accordion.setSizes(); + this.vs[this.av].accordionId = obj.id; + this.vs[this.av].accordionObj = obj; + + return this.vs[this._viewRestore()].accordion; + } + /** + * @desc: attaches a dhtmlxLayout to a window + * @param: view - layout's pattern + * @param: skin - layout's skin + * @type: public + */ + this.obj.attachLayout = function(view, skin) { + + // attach layout to layout + if (this._isCell && this.skin == "dhx_skyblue") { + this.hideHeader(); + this.vs[this.av].dhxcont.style.border = "0px solid white"; + this.adjustContent(this.childNodes[0], 0); + } + + if (this._isCell && this.skin == "dhx_web") { + this.hideHeader(); + } + + var obj = document.createElement("DIV"); + obj.id = "dhxLayoutObj_"+this._genStr(12); + obj.style.overflow = "hidden"; + obj.style.position = "absolute"; + + obj.style.left = "0px"; + obj.style.top = "0px"; + obj.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width)+"px"; + obj.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height)+"px"; + + if (this._isAcc && this.skin == "dhx_skyblue") { + obj.style.left = "-1px"; + obj.style.top = "-1px"; + obj.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width)+2+"px"; + obj.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height)+2+"px"; + } + + // needed for layout's init + obj.dhxContExists = true; + obj.cmp = "layout"; + document.body.appendChild(obj); + this.attachObject(obj.id, false, true); + + this.vs[this.av].layout = new dhtmlXLayoutObject(obj, view, (skin||this.skin)); + // window/layout events configuration + if (this._isWindow) this.attachEvent("_onBeforeTryResize", this.vs[this.av].layout._defineWindowMinDimension); + + this.vs[this.av].layoutId = obj.id; + this.vs[this.av].layoutObj = obj; + + // this.adjust(); + + return this.vs[this._viewRestore()].layout; + } + /** + * @desc: attaches a dhtmlxEditor to a window + * @param: skin - not mandatory, editor's skin + * @type: public + */ + this.obj.attachEditor = function(skin) { + if (this._isWindow && this.skin == "dhx_skyblue") { + this.vs[this.av].dhxcont.mainCont[this.av].style.border = "#a4bed4 1px solid"; + this._redraw(); + } + var obj = document.createElement("DIV"); + obj.id = "dhxEditorObj_"+this._genStr(12); + obj.style.position = "relative"; + obj.style.display = "none"; + obj.style.overflow = "hidden"; + obj.style.width = "100%"; + obj.style.height = "100%"; + obj.cmp = "editor"; + document.body.appendChild(obj); + // + this.attachObject(obj.id, false, true); + // + this.vs[this.av].editor = new dhtmlXEditor(obj.id, this.skin); + + this.vs[this.av].editorId = obj.id; + this.vs[this.av].editorObj = obj; + return this.vs[this._viewRestore()].editor; + + } + + this.obj.attachMap = function(opts) { + + var obj = document.createElement("DIV"); + obj.id = "GMapsObj_"+this._genStr(12); + obj.style.position = "relative"; + obj.style.display = "none"; + obj.style.overflow = "hidden"; + obj.style.width = "100%"; + obj.style.height = "100%"; + obj.cmp = "gmaps"; + document.body.appendChild(obj); + + this.attachObject(obj.id, false, true); + + if (!opts) opts = {center: new google.maps.LatLng(40.719837,-73.992348), zoom: 11, mapTypeId: google.maps.MapTypeId.ROADMAP}; + this.vs[this.av].gmaps = new google.maps.Map(obj, opts); + + return this.vs[this.av].gmaps; + + } + + /** + * @desc: attaches an object into a window + * @param: obj - object or object id + * @param: autoSize - set true to adjust a window to object's dimension + * @type: public + */ + this.obj.attachObject = function(obj, autoSize, localCall) { + if (typeof(obj) == "string") obj = document.getElementById(obj); + if (autoSize) { + obj.style.visibility = "hidden"; + obj.style.display = ""; + var objW = obj.offsetWidth; + var objH = obj.offsetHeight; + } + this._attachContent("obj", obj); + if (autoSize && this._isWindow) { + obj.style.visibility = "visible"; + this._adjustToContent(objW, objH); + /* this._engineAdjustWindowToContent(this, objW, objH); */ + } + if (!localCall) this._viewRestore(); + } + /** + * + * + */ + this.obj.detachObject = function(remove, moveTo) { + + // detach dhtmlx components + + var p = null; + var pObj = null; + var t = ["tree","grid","layout","tabbar","accordion","folders"]; + for (var q=0; q 0) pObj.removeChild(pObj.childNodes[0]); + pObj.parentNode.removeChild(pObj); + pObj = null; + p = null; + } else { + document.body.appendChild(pObj); + pObj.style.display = "none"; + } + this.vs[this.av][t[q]] = null; + this.vs[this.av][t[q]+"Id"] = null; + this.vs[this.av][t[q]+"Obj"] = null; + } + } + + if (p != null && pObj != null) return new Array(p, pObj); + + // detach any other content + if (remove && this.vs[this.av]._frame) { + this._detachURLEvents(); + this.vs[this.av]._frame = null; + } + + var objA = this.vs[this.av].dhxcont.mainCont[this.av]; + while (objA.childNodes.length > 0) { + if (remove == true) { + // add frame events removing + objA.removeChild(objA.childNodes[0]); + } else { + var obj = objA.childNodes[0]; + if (moveTo != null) { + if (typeof(moveTo) != "object") moveTo = document.getElementById(moveTo); + moveTo.appendChild(obj); + } else { + document.body.appendChild(obj); + } + obj.style.display = "none"; + } + } + } + + /** + * @desc: appends an object into a window + * @param: obj - object or object id + * @type: public + */ + this.obj.appendObject = function(obj) { + if (typeof(obj) == "string") { obj = document.getElementById(obj); } + this._attachContent("obj", obj, true); + } + /** + * @desc: attaches an html string as an object into a window + * @param: str - html string + * @type: public + */ + this.obj.attachHTMLString = function(str) { + this._attachContent("str", str); + var z=str.match(/]*>[^\f]*?<\/script>/g)||[]; + for (var i=0; i]*>/g,"") + if (window.execScript) window.execScript(s); + else window.eval(s); + } + } + /** + * @desc: attaches an url into a window + * @param: url + * @param: ajax - loads an url with ajax + * @type: public + */ + this.obj.attachURL = function(url, ajax) { + this._attachContent((ajax==true?"urlajax":"url"), url, false); + this._viewRestore(); + } + this.obj.adjust = function() { + if (this.skin == "dhx_skyblue") { + if (this.vs[this.av].menu) { + if (this._isWindow || this._isLayout) { + this.vs[this.av].menu._topLevelOffsetLeft = 0; + document.getElementById(this.vs[this.av].menuId).style.height = "26px"; + this.vs[this.av].menuHeight = document.getElementById(this.vs[this.av].menuId).offsetHeight; + if (this._doOnAttachMenu) this._doOnAttachMenu("show"); + } + if (this._isCell) { + document.getElementById(this.vs[this.av].menuId).className += " in_layoutcell"; + // document.getElementById(this.menuId).style.height = "25px"; + this.vs[this.av].menuHeight = 25; + } + if (this._isAcc) { + document.getElementById(this.vs[this.av].menuId).className += " in_acccell"; + // document.getElementById(this.menuId).style.height = "25px"; + this.vs[this.av].menuHeight = 25; + } + if (this._doOnAttachMenu) this._doOnAttachMenu("adjust"); + } + if (this.vs[this.av].toolbar) { + if (this._isWindow || this._isLayout) { + document.getElementById(this.vs[this.av].toolbarId).style.height = "29px"; + this.vs[this.av].toolbarHeight = document.getElementById(this.vs[this.av].toolbarId).offsetHeight; + if (this._doOnAttachToolbar) this._doOnAttachToolbar("show"); + } + if (this._isCell) { + document.getElementById(this.vs[this.av].toolbarId).className += " in_layoutcell"; + } + if (this._isAcc) { + document.getElementById(this.vs[this.av].toolbarId).className += " in_acccell"; + } + } + } + + if (this.skin == "dhx_web") { + + + } + } + // attach content obj|url + this.obj._attachContent = function(type, obj, append) { + // clear old content + if (append !== true) { + if (this.vs[this.av]._frame) { + this._detachURLEvents(); + this.vs[this.av]._frame = null; + } + while (this.vs[this.av].dhxcont.mainCont[this.av].childNodes.length > 0) this.vs[this.av].dhxcont.mainCont[this.av].removeChild(this.vs[this.av].dhxcont.mainCont[this.av].childNodes[0]); + } + // attach + if (type == "url") { + if (this._isWindow && obj.cmp == null && this.skin == "dhx_skyblue") { + this.vs[this.av].dhxcont.mainCont[this.av].style.border = "#a4bed4 1px solid"; + this._redraw(); + } + var fr = document.createElement("IFRAME"); + fr.frameBorder = 0; + fr.border = 0; + fr.style.width = "100%"; + fr.style.height = "100%"; + fr.setAttribute("src","javascript:false;"); + this.vs[this.av].dhxcont.mainCont[this.av].appendChild(fr); + fr.src = obj; + + // ?? this._frame = fr; + this.vs[this.av]._frame = fr; + this._attachURLEvents(); + + } else if (type == "urlajax") { + + if (this._isWindow && obj.cmp == null && this.skin == "dhx_skyblue") { + this.vs[this.av].dhxcont.mainCont[this.av].style.border = "#a4bed4 1px solid"; + this.vs[this.av].dhxcont.mainCont[this.av].style.backgroundColor = "#FFFFFF"; + this._redraw(); + } + var t = this; + var xmlParser = function(){ + t.attachHTMLString(this.xmlDoc.responseText, this); + //if (t._doOnAttachURL) t._doOnAttachURL(false); + if (t._doOnFrameContentLoaded) t._doOnFrameContentLoaded(); + this.destructor(); + } + var xmlLoader = new dtmlXMLLoaderObject(xmlParser, window); + xmlLoader.dhxWindowObject = this; + xmlLoader.loadXML(obj); + + } else if (type == "obj") { + + if (this._isWindow && obj.cmp == null && this.skin == "dhx_skyblue") { + this.vs[this.av].dhxcont.mainCont[this.av].style.border = "#a4bed4 1px solid"; + this.vs[this.av].dhxcont.mainCont[this.av].style.backgroundColor = "#FFFFFF"; + this._redraw(); + } + this.vs[this.av].dhxcont._frame = null; + this.vs[this.av].dhxcont.mainCont[this.av].appendChild(obj); + // this._engineGetWindowContent(win).style.overflow = (append===true?"auto":"hidden"); + // win._content.childNodes[2].appendChild(obj); + this.vs[this.av].dhxcont.mainCont[this.av].style.overflow = (append===true?"auto":"hidden"); + obj.style.display = ""; + + } else if (type == "str") { + + if (this._isWindow && obj.cmp == null && this.skin == "dhx_skyblue") { + this.vs[this.av].dhxcont.mainCont[this.av].style.border = "#a4bed4 1px solid"; + this.vs[this.av].dhxcont.mainCont[this.av].style.backgroundColor = "#FFFFFF"; + this._redraw(); + } + this.vs[this.av].dhxcont._frame = null; + this.vs[this.av].dhxcont.mainCont[this.av].innerHTML = obj; + } + } + + this.obj._attachURLEvents = function() { + var t = this; + var fr = this.vs[this.av]._frame; + if (_isIE) { + fr.onreadystatechange = function(a) { + if (fr.readyState == "complete") { + try {fr.contentWindow.document.body.onmousedown=function(){if(t._doOnFrameMouseDown)t._doOnFrameMouseDown();};}catch(e){}; + try{if(t._doOnFrameContentLoaded)t._doOnFrameContentLoaded();}catch(e){}; + } + } + } else { + fr.onload = function() { + try{fr.contentWindow.onmousedown=function(){if(t._doOnFrameMouseDown)t._doOnFrameMouseDown();};}catch(e){}; + try{if(t._doOnFrameContentLoaded)t._doOnFrameContentLoaded();}catch(e){}; + } + } + } + + this.obj._detachURLEvents = function() { + if (_isIE) { + try { + this.vs[this.av]._frame.onreadystatechange = null; + this.vs[this.av]._frame.contentWindow.document.body.onmousedown = null; + this.vs[this.av]._frame.onload = null; + } catch(e) {}; + } else { + try { + this.vs[this.av]._frame.contentWindow.onmousedown = null; + this.vs[this.av]._frame.onload = null; + } catch(e) {}; + } + } + + this.obj.showMenu = function() { + if (!(this.vs[this.av].menu && this.vs[this.av].menuId)) return; + if (document.getElementById(this.vs[this.av].menuId).style.display != "none") return; + this.vs[this.av].menuHidden = false; + if (this._doOnAttachMenu) this._doOnAttachMenu("show"); + document.getElementById(this.vs[this.av].menuId).style.display = ""; + this._viewRestore(); + } + + this.obj.hideMenu = function() { + if (!(this.vs[this.av].menu && this.vs[this.av].menuId)) return; + if (document.getElementById(this.vs[this.av].menuId).style.display == "none") return; + document.getElementById(this.vs[this.av].menuId).style.display = "none"; + this.vs[this.av].menuHidden = true; + if (this._doOnAttachMenu) this._doOnAttachMenu("hide"); + this._viewRestore(); + } + + this.obj.showToolbar = function() { + if (!(this.vs[this.av].toolbar && this.vs[this.av].toolbarId)) return; + if (document.getElementById(this.vs[this.av].toolbarId).style.display != "none") return; + this.vs[this.av].toolbarHidden = false; + if (this._doOnAttachToolbar) this._doOnAttachToolbar("show"); + document.getElementById(this.vs[this.av].toolbarId).style.display = ""; + this._viewRestore(); + } + + this.obj.hideToolbar = function() { + if (!(this.vs[this.av].toolbar && this.vs[this.av].toolbarId)) return; + if (document.getElementById(this.vs[this.av].toolbarId).style.display == "none") return; + this.vs[this.av].toolbarHidden = true; + document.getElementById(this.vs[this.av].toolbarId).style.display = "none"; + if (this._doOnAttachToolbar) this._doOnAttachToolbar("hide"); + this._viewRestore(); + } + + this.obj.showStatusBar = function() { + if (!(this.vs[this.av].sb && this.vs[this.av].sbId)) return; + if (document.getElementById(this.vs[this.av].sbId).style.display != "none") return; + this.vs[this.av].sbHidden = false; + if (this._doOnAttachStatusBar) this._doOnAttachStatusBar("show"); + document.getElementById(this.vs[this.av].sbId).style.display = ""; + this._viewRestore(); + } + + this.obj.hideStatusBar = function() { + if (!(this.vs[this.av].sb && this.vs[this.av].sbId)) return; + if (document.getElementById(this.vs[this.av].sbId).style.display == "none") return; + this.vs[this.av].sbHidden = true; + document.getElementById(this.vs[this.av].sbId).style.display = "none"; + if (this._doOnAttachStatusBar) this._doOnAttachStatusBar("hide"); + this._viewRestore(); + } + + this.obj._dhxContDestruct = function() { + + // clear attached objects + + var av = this.av; + for (var a in this.vs) { + + this.av = a; + + // menu, toolbar, status + this.detachMenu(); + this.detachToolbar(); + this.detachStatusBar(); + + // remove any attached object or dhtmlx component + this.detachObject(true); + + this.vs[a].dhxcont.mainCont[a].parentNode.removeChild(this.vs[a].dhxcont.mainCont[a]); + this.vs[a].dhxcont.mainCont[a] = null; + + } + + this.vs[this.dv].dhxcont.mainCont = null; + this.vs[this.dv].dhxcont.parentNode.removeChild(this.vs[this.dv].dhxcont); + for (var a in this.vs) this.vs[a].dhxcont = null; + this.vs = null; + + this.attachMenu = null; + this.attachToolbar = null; + this.attachStatusBar = null; + this.detachMenu = null; + this.detachToolbar = null; + this.detachStatusBar = null; + this.showMenu = null; + this.showToolbar = null; + this.showStatusBar = null; + this.hideMenu = null; + this.hideToolbar = null; + this.hideStatusBar = null; + + this.attachGrid = null; + this.attachScheduler = null; + this.attachTree = null; + this.attachTabbar = null; + this.attachFolders = null; + this.attachAccordion = null; + this.attachLayout = null; + this.attachEditor = null; + this.attachObject = null; + this.detachObject = null; + this.appendObject = null; + this.attachHTMLString = null; + this.attachURL = null; + + this.view = null; + this.show = null; + this.adjust = null; + this.setMinContentSize = null; + this.moveContentTo = null; + this.adjustContent = null; + this.coverBlocker = null; + this.showCoverBlocker = null; + this.hideCoverBlocker = null; + this.updateNestedObjects = null; + + this._attachContent = null; + this._attachURLEvents = null; + this._detachURLEvents = null; + this._viewRestore = null; + this._setPadding = null; + this._init = null; + this._genStr = null; + this._dhxContDestruct = null; + + that.st.parentNode.removeChild(that.st); + that.st = null; + + that.setContent = null; + that.dhxcont = null; // no more used at all? + that.obj = null; + that = null; + + // remove attached components + /* + for (var a in this.vs) { + + if (this.vs[a].layout) this.vs[a].layout.unlaod(); + if (this.vs[a].accordion) this.vs[a].accordion.unlaod(); + if (this.vs[a].sched) this.vs[a].sched.destructor(); + + this.vs[a].layout = null; + this.vs[a].accordion = null; + this.vs[a].sched = null; + + } + */ + // extended functionality + if (dhtmlx.detaches) for (var a in dhtmlx.detaches) dhtmlx.detaches[a](this); + + } + + // extended functionality + if (dhtmlx.attaches) for (var a in dhtmlx.attaches) this.obj[a] = dhtmlx.attaches[a]; + +} diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/get_files.php b/phpgwapi/js/dhtmlxtree/libCompiler/get_files.php new file mode 100755 index 0000000000..7b78e13ba1 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/libCompiler/get_files.php @@ -0,0 +1,22 @@ + + + + + + + + Ready code stored at


    + Download generated files

    + + + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/images.php b/phpgwapi/js/dhtmlxtree/libCompiler/images.php new file mode 100755 index 0000000000..943c50336f --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/libCompiler/images.php @@ -0,0 +1,274 @@ +".$s_l."( position ".$chunks[0][$i][1].") at ".$name); + $temp[$c_size]=array($temps[0],$temps[1],$chunks[0][$i][1],0); + $c_size++; + } + else + { + if (!$temp[$ballans]) + { + echo "
    ";print_r($temp);
    +                  die("Incorrect Injection layout,  
    ballans corrupted.
    ".$s_l."( position ".$chunks[0][$i][1].") at ".$name); + return 0; + } + + for ($ii=$c_size-1; $ii>=0; $ii--) + if ($temp[$ii][3]==0) + { + $temp[$ii][3]=$chunks[0][$i][1]+strlen($chunks[0][$i][0]); + break; + } + + $ballans++; + //end of chunk + } + + } + + if ($ballans!=(sizeof($chunks[0])/2)) + { + die("Incorrect Injection layout,
    ballans corrupted at ".$name); + return 0; + } + + $tokens=array(); + + foreach ($temp as $k=>$v){ + $name=$v[0]; + if (!$tokens[$name]) + $tokens[$name]=array(); + + $tokens[$name][]=$v; + } + return $tokens; + } + function clearAreas($data,$tokens,$preserve){ + foreach($tokens as $k=>$v){ + if ($v && array_search($k,$preserve)===FALSE){ + foreach($v as $kd=>$vd){ + $size=$vd[3]-$vd[2]; + $bik=str_repeat("#",$size); + $data=substr($data,0,$vd[2]).$bik.substr($data,$vd[3]); + } + } + } + $data=preg_replace("|([#]{6,})|","",$data); + return $data; + } + + function process_request($files, $chunks, $skin, $yui=false){ + global $js_header; + + $files=explode(";",$files); + $chunks=explode(";",$chunks); + array_push($chunks,"__pro_feature"); + + $js_list=array("./dhtmlxcommon.js"); + $css_list=array(); + $manifest = array("Skin: ".$skin); + + for ($i=0; $i2) + array_push($components,$temp[1]); + } + $location=export_images(array_values(array_unique($components)),$skin); + for ($i=0; $i < sizeof($components); $i++) { + $temp_name="../".$components[$i]."/codebase/skins/".strtolower($components[$i])."_".$skin.".css"; + + if (file_exists($temp_name)) + array_push($css_list,$temp_name); + } + + $css_list=array_values(array_unique($css_list)); + + $js_code=""; + $css_code=""; + $jscore_code=""; + + array_push($manifest,"\n======== JS CODE ========="); + for ($i=0; $i {$location}/temp2.js`; + $js_code=file_get_contents($location."/temp2.js"); + unlink($location."/temp.js"); + unlink($location."/temp2.js"); + } + + $css_code=preg_replace('/"/',"'",$css_code); + $css_code=str_replace("../imgs","imgs/",$css_code); + $css_code=str_replace("../../codebase/","",$css_code); + + if (!$yui){ + $css_code=preg_replace("#\/\*([^\*]|\*[^\/])*\*\/#","",$css_code); + $css_code=preg_replace('/[ \t]+/'," ",$css_code); + $css_code=preg_replace("/\{[\r\n]+/","{",$css_code); + $css_code=preg_replace("/;[\r\n]+/",";",$css_code); + $css_code=preg_replace("/[\r\n]+/","\n",$css_code); + $css_code=preg_replace("/\/\*.*\n/","",$css_code); + //$css_code=preg_replace("/\n/","\";str+=\"",$css_code); + //$css_code=preg_replace("/\n/","\\n",$css_code); + + $css_code=preg_replace("/\{ /","{",$css_code); + $css_code=preg_replace("/[; ]+\}/","}",$css_code); + }else{ + file_put_contents($location."/temp.css",$css_code); + `java -jar ./yui/yuicompressor-2.3.5/build/yuicompressor-2.3.5.jar {$location}/temp.css > {$location}/temp2.css`; + $css_code=file_get_contents($location."/temp2.css"); + unlink($location."/temp.css"); + unlink($location."/temp2.css"); + } + + + file_put_contents($location."/dhtmlx.js",$js_header.$js_code.$jscore_code); + file_put_contents($location."/dhtmlx.css",$css_code); + file_put_contents($location."/manifest.txt",implode("\n",$manifest)); + + return $location; +} + +?> \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/imgs/big/black_skin.png b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/big/black_skin.png new file mode 100755 index 0000000000..7faf90cb55 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/big/black_skin.png differ diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/imgs/big/blue_skin.png b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/big/blue_skin.png new file mode 100755 index 0000000000..cca0cadb99 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/big/blue_skin.png differ diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/imgs/big/skyblue_skin.png b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/big/skyblue_skin.png new file mode 100755 index 0000000000..4452b066d2 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/big/skyblue_skin.png differ diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/imgs/check-all.gif b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/check-all.gif new file mode 100755 index 0000000000..a42f66fcb7 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/check-all.gif differ diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/imgs/collapse-all.gif b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/collapse-all.gif new file mode 100755 index 0000000000..a7522a781b Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/collapse-all.gif differ diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/imgs/expand-all.gif b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/expand-all.gif new file mode 100755 index 0000000000..620b459f60 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/expand-all.gif differ diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/imgs/generate.gif b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/generate.gif new file mode 100755 index 0000000000..d4f119830e Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/generate.gif differ diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/imgs/small/black_skin.png b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/small/black_skin.png new file mode 100755 index 0000000000..a2c8e48a96 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/small/black_skin.png differ diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/imgs/small/blue_skin.png b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/small/blue_skin.png new file mode 100755 index 0000000000..08cbbdbe01 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/small/blue_skin.png differ diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/imgs/small/skyblue_skin.png b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/small/skyblue_skin.png new file mode 100755 index 0000000000..3145d2431f Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/small/skyblue_skin.png differ diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/imgs/small/web_skin.png b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/small/web_skin.png new file mode 100755 index 0000000000..a521b41771 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/small/web_skin.png differ diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/imgs/uncheck-all.gif b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/uncheck-all.gif new file mode 100755 index 0000000000..446d9015a8 Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/libCompiler/imgs/uncheck-all.gif differ diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/index.html b/phpgwapi/js/dhtmlxtree/libCompiler/index.html new file mode 100755 index 0000000000..6c93ce22e1 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/libCompiler/index.html @@ -0,0 +1,304 @@ + + + dhtlmx composer + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    + dhx_web
    + + +
    +
    + dhx_skyblue
    + + +
    +
    + dhx_blue
    + + +
    +
    + dhx_black
    + +
    + + +
    +
    + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/progress.html b/phpgwapi/js/dhtmlxtree/libCompiler/progress.html new file mode 100755 index 0000000000..30b3050c87 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/libCompiler/progress.html @@ -0,0 +1 @@ +In progress... \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/readme.txt b/phpgwapi/js/dhtmlxtree/libCompiler/readme.txt new file mode 100755 index 0000000000..7e3e841c36 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/libCompiler/readme.txt @@ -0,0 +1,5 @@ +(c) DHTMLX Ltd. + +This tool can combine numerous script files of DHTMLX library into a single JS file (+ single CSS file) depending on chosen functionality. +To use this tool, you need to unzip dhtmlxSuite package content into directory under web server with support for PHP and load [dhtmlxSuitePackage]/libCompiler/index.html. Currently there is no difference between libCompiler delivered with Standard and Professional Editions of dhtmlxSuite, but resulting files functionality depends on Edition of course. +More details about usage of libCompiler can be found here: http://www.dhtmlx.com/docs/products/docsExplorer/index.shtml?node=libc_ \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/yui/yuicompressor-2.3.5/build/yuicompressor-2.3.5.jar b/phpgwapi/js/dhtmlxtree/libCompiler/yui/yuicompressor-2.3.5/build/yuicompressor-2.3.5.jar new file mode 100755 index 0000000000..3f92c3413c Binary files /dev/null and b/phpgwapi/js/dhtmlxtree/libCompiler/yui/yuicompressor-2.3.5/build/yuicompressor-2.3.5.jar differ diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/yui/yuicompressor-2.3.5/doc/CHANGELOG b/phpgwapi/js/dhtmlxtree/libCompiler/yui/yuicompressor-2.3.5/doc/CHANGELOG new file mode 100755 index 0000000000..85ea1d0cdc --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/libCompiler/yui/yuicompressor-2.3.5/doc/CHANGELOG @@ -0,0 +1,193 @@ +YUI Compressor 2.3.5, 2008-02-08 +-------------------------------- + ++ Added a warning when more than one 'var' statement is used in a single scope. + Automatic coalescence is extremely complicated, and would be unsafe if not + done properly. + +YUI Compressor 2.3.4, 2008-02-07 +-------------------------------- + ++ Expanded the list of reserved words used by isValidIdentifier() + +YUI Compressor 2.3.3, 2008-02-04 +-------------------------------- + ++ C-style comments starting with /*! are preserved. This is especially + useful with comments containing copyright/license information. + +YUI Compressor 2.3.2, 2008-02-01 +-------------------------------- + ++ Compressing an empty JS file throws an error [SourceForge bug #1884207] ++ When a string is the first token in a function body, it was removed from + the compressed file [SourceForge bug #1884314] + +YUI Compressor 2.3.1, 2008-01-30 +-------------------------------- + ++ Added test against list of reserved words in method isValidIdentifier. + +YUI Compressor 2.3, 2008-01-28 +------------------------------ + ++ Always output a ';' at the end of a minified JavaScript file. This allows + the concatenating of several minified files without the fear of introducing + a syntax error. ++ Removed all System.exit() statements. Throw exceptions instead. This is + especially useful when running the compressor from within a J2EE container. + [SourceForge bug #1834750] ++ Transform obj["foo"] into obj.foo whenever possible, saving 3 bytes. ++ Transform 'foo': ... into foo: ... whenever possible, saving 2 bytes. ++ Added support for multi-line string literals [SourceForge bug #1871453] ++ Added support for unescaped slashes inside character classes in regexp. ++ Minor performance improvements. ++ Preserve the escaping for an octal representation of a character in string + literals [SourceForge bug #1844894] + + var a = '\001'; + ++ CSS: Preserve comments that hide CSS rules from IE Mac: + + /* Hides from IE-mac \*/ + ... + /* End hide from IE-mac */ + ++ CSS: Added support for box model hack [SourceForge bug #1862107] + + div.content { + width:400px; + voice-family: "\"}\""; + voice-family:inherit; + width:300px; + } + +YUI Compressor 2.2.5, 2007-10-09 +-------------------------------- + ++ Remove line terminator after escape in string literals. + +YUI Compressor 2.2.4, 2007-10-01 +-------------------------------- + ++ Fixed the way quote characters are counted in string literals + [SourceForge bug #1804576] ++ Do not use a regular expression using non-greedy matching to remove CSS + comments (if the comment is more than 800 characters long or so, a stack + overflow exception gets thrown) Instead, use good old parsing... ++ Fix unnecessary quote escaping in string literals. + +YUI Compressor 2.2.3, 2007-09-28 +-------------------------------- + ++ Transform <'+'/script>' completely useless. ++ When converting decimal rgb color values to hexadecimal color values, + prepend a '0' if the value is less than 16. Otherwise, rgb(0,124,114) + for instance becomes #07c72, which is incorrect. ++ In CSS files, do not change color names into their corresponding color + codes (and vice-versa) due to the high potential of introducing bugs + (rolled back from 2.2.1) + +YUI Compressor 2.2.1, 2007-09-25 +-------------------------------- + ++ Optimize quote escaping in JavaScript string literals by using the best quote + character (' or " depending on the occurrence of this character in the string) ++ Fixed minor bug in the CSS compressor. Colors should not be shortened in + filter: chroma(color="#FFFFFF"); + Otherwise, it makes the filter break in Internet Explorer. ++ In CSS files, change color names into their corresponding color codes + (and vice-versa) if that change yields any savings. + +YUI Compressor 2.2, 2007-09-18 +------------------------------ + ++ Don't obfuscate function argument named $super if it is the first function + argument listed. This is to support Prototype 1.6's heretic implementation. ++ Added support for stdin/stdout (see README for more info) ++ Shorten colors from rgb(51,102,153) to #336699 in CSS files. ++ Shorten values from 0.8em to .8em in CSS files. ++ Added support for Internet Explorer's conditional comments in JavaScript + files. Note that the presence of a conditional comment inside a function + (i.e. not in the global scope) will reduce the level of compression for the + same reason the use of 'eval' or 'with' reduces the level of compression + (conditional comments, which do not get parsed, may refer to local variables, + which get obfuscated) In any case, the use of Internet Explorer's conditional + comment is to be avoided. + +YUI Compressor 2.1.2, 2007-08-31 +-------------------------------- + ++ Added --preserve-semi option ++ Modified --line-break option + +YUI Compressor 2.1.1, 2007-08-30 +-------------------------------- + ++ Fixed missing space in CSS background:url('foo.png')no-repeat + causing a background not to appear on Internet Explorer. + +YUI Compressor 2.1, 2007-08-29 +------------------------------ + ++ Pass the --line-break option to the CSS compressor. ++ Allow the output file to overwrite the input file (with version 2.0, + in this case, the output file was always empty) ++ Remove spaces before and after '(' and ')' as in background:url('xxx'); ++ Merge (if possible) string literals that are appended in JavaScript files. + This not only makes the code smaller, it makes the code faster, + but allows you to maintain some readability in your source code. ++ Handle constructs such as a + ++ b or a + + "1" (in which case the + space between the operators must be kept!) and other similar cases... ++ Pass ErrorReporter instance to the constructor of class JavaScriptCompressor + (as suggested by David Bernard for his integration of the YUI Compressor + as a maven plugin) + +YUI Compressor 2.0, 2007-08-27 +------------------------------ + ++ Switched from Rhino 1.6R6 to Rhino 1.6R7 ++ Integrated Isaac Schlueter's CSS compressor. ++ Refactored code to make it easier to use the compressor from a servlet + environment or another Java app (no need to pass in file names anymore) ++ Output a white-space character after 'throw' only when necessary. ++ Output a white-space character after 'break' and 'continue' when followed + by a label. + +YUI Compressor 1.1, 2007-08-20 +------------------------------ + ++ Java source now in package com.yahoo.platform.yui.compressor ++ Added --line-break option that adds a line feed character after each + semi-colon character (may help debugging with the MS Script debugger) ++ Added support for missing JavaScript features (get, set, const) ++ Do not show the entire stack trace when the input file cannot be found. ++ Removed the randomization of obfuscated symbols. When compressed code is + checked in CVS, unchanged files would otherwise end up being versioned. ++ Added web-based front-end to the YUI Compressor as part of the dist package. ++ Added a public entry point that makes the YUI Compressor easy to integrate + with an already existing Java application. ++ Simplified code by using the same parsing routines used to build the symbol + tree while looking for undeclared symbols. ++ Count how many times each identifier is used, and display a warning when an + identifier seems to be unused (code cannot safely be removed automatically) ++ Remove ';' when followed by a '}'. This yields an additional ~1.5% savings + on yahoo-dom-event.js compared to the JSMin version. ++ Output a white-space character after 'return' and 'case' only when necessary. diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/yui/yuicompressor-2.3.5/doc/README b/phpgwapi/js/dhtmlxtree/libCompiler/yui/yuicompressor-2.3.5/doc/README new file mode 100755 index 0000000000..8da3c6cc9f --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/libCompiler/yui/yuicompressor-2.3.5/doc/README @@ -0,0 +1,135 @@ +============================================================================== +YUI Compressor +============================================================================== + +NAME + + YUI Compressor - The Yahoo! JavaScript and CSS Compressor + +SYNOPSIS + + Usage: java -jar yuicompressor-x.y.z.jar [options] [input file] + + Global Options + -h, --help Displays this information + --type Specifies the type of the input file + --charset Read the input file using + --line-break Insert a line break after the specified column number + -v, --verbose Display informational messages and warnings + -o Place the output into . Defaults to stdout. + + JavaScript Options + --nomunge Minify only, do not obfuscate + --preserve-semi Preserve all semicolons + --disable-optimizations Disable all micro optimizations + +DESCRIPTION + + The YUI Compressor is a JavaScript compressor which, in addition to removing + comments and white-spaces, obfuscates local variables using the smallest + possible variable name. This obfuscation is safe, even when using constructs + such as 'eval' or 'with' (although the compression is not optimal is those + cases) Compared to jsmin, the average savings is around 20%. + + The YUI Compressor is also able to safely compress CSS files. The decision + on which compressor is being used is made on the file extension (js or css) + +GLOBAL OPTIONS + + -h, --help + Prints help on how to use the YUI Compressor + + --line-break + Some source control tools don't like files containing lines longer than, + say 8000 characters. The linebreak option is used in that case to split + long lines after a specific column. It can also be used to make the code + more readable, easier to debug (especially with the MS Script Debugger) + Specify 0 to get a line break after each semi-colon in JavaScript, and + after each rule in CSS. + + --type js|css + The type of compressor (JavaScript or CSS) is chosen based on the + extension of the input file name (.js or .css) This option is required + if no input file has been specified. Otherwise, this option is only + required if the input file extension is neither 'js' nor 'css'. + + --charset character-set + If a supported character set is specified, the YUI Compressor will use it + to read the input file. Otherwise, it will assume that the platform's + default character set is being used. The output file is encoded using + the same character set. + + -o outfile + Place output in file outfile. If not specified, the YUI Compressor will + default to the standard output, which you can redirect to a file. + + -v, --verbose + Display informational messages and warnings. + +JAVASCRIPT ONLY OPTIONS + + --nomunge + Minify only. Do not obfuscate local symbols. + + --preserve-semi + Preserve unnecessary semicolons (such as right before a '}') This option + is useful when compressed code has to be run through JSLint (which is the + case of YUI for example) + + --disable-optimizations + Disable all the built-in micro optimizations. + +NOTES + + + If no input file is specified, it defaults to stdin. + + + The YUI Compressor requires Java version >= 1.4. + + + It is possible to prevent a local variable, nested function or function + argument from being obfuscated by using "hints". A hint is a string that + is located at the very beginning of a function body like so: + + function fn (arg1, arg2, arg3) { + "arg2:nomunge, localVar:nomunge, nestedFn:nomunge"; + + ... + var localVar; + ... + + function nestedFn () { + .... + } + + ... + } + + The hint itself disappears from the compressed file. + + + C-style comments starting with /*! are preserved. This is useful with + comments containing copyright/license information. For example: + + /*! + * TERMS OF USE - EASING EQUATIONS + * Open source under the BSD License. + * Copyright 2001 Robert Penner All rights reserved. + */ + + becomes: + + /* + * TERMS OF USE - EASING EQUATIONS + * Open source under the BSD License. + * Copyright 2001 Robert Penner All rights reserved. + */ + +AUTHOR + + The YUI Compressor was written and is maintained by: + Julien Lecomte + The CSS portion is a port of Isaac Schlueter's cssmin utility. + +COPYRIGHT + + Copyright (c) 2007, Yahoo! Inc. All rights reserved. + Code licensed under the BSD License: + http://developer.yahoo.net/yui/license.txt diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/zip.php b/phpgwapi/js/dhtmlxtree/libCompiler/zip.php new file mode 100755 index 0000000000..45f24ac880 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/libCompiler/zip.php @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/phpgwapi/js/dhtmlxtree/libCompiler/ziplib.php b/phpgwapi/js/dhtmlxtree/libCompiler/ziplib.php new file mode 100755 index 0000000000..fff96db4d0 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/libCompiler/ziplib.php @@ -0,0 +1,249 @@ += 1 && $level <= 9) $type = "g"; + elseif($level > 9) die("Compression level set too high"); + else $type = "n"; + } + + if($type == "g") { + $this->compr_lvl_last = 8; + RETURN gzdeflate($data,$level); + } elseif($type == "b") { + $this->compr_lvl_last = 12; + RETURN bzcompress($data,$level); + } else { + $this->compr_lvl_last = 0; + RETURN $data; + } +} + +public function zl_add_file($data,$filename,$comp = "") { + global $settings; + // if we already created a file, we'll make sure it'll be there in the coming zipfile ;) + + // first, checking some data + if(strlen($filename) > pow(2,16)-1) die("Filename $filename too long"); // ooh, dirty... dieing, will change later + if(strlen($data) > pow(2,32)-1) die("File $filename larger then 2GB, cannot continue"); // another one, naughty me ;) + + // $comp has a special format. the first character tells me about the compression, the second one represents the level + if(strlen($comp) == 1) { + // they still use the old method, assuming gzip + + $comp_type = "n"; + $comp_lvl = 0; + if($comp >= 1 && $comp <= 9) { + $comp_type = "g"; + $comp_lvl = $comp; + } + } else { + $comp_lvl = 5; + $comp_type = "n"; + // hmmm, the new method. Is it valid? + if ($comp[0] == "b" OR $comp[0] == "g" OR $comp[0] == "n") $comp_type = $comp[0]; + if (preg_match("/[0-9]/i",$comp[1])) $comp_lvl = $comp[1]; + } + + // ok, let's get this bitch tidy: + // first adding a file + $compressed = $this->zl_compress($data,$comp_lvl,$comp_type); + $uncompressed = strlen($data); + + $newfile = "\x50\x4b\x03\x04"; // Header + $newfile .="\x00\x00"; // Version needed to extract + $newfile .="\x00\x00"; // general purpose bit flag + $newfile .=pack("v",$this->compr_lvl_last); // compression method + $newfile .=pack("v",dostime_get($settings['offset'])); // last mod file time + $newfile .=pack("v",dosdate_get($settings['offset'])); // last mod file date + $newfile .=pack("V",crc32($data)); // CRC32 + $newfile .=pack("V",strlen($compressed)); // compressed filesize + $newfile .=pack("V",$uncompressed); // uncompressed filesize + $newfile .=pack("v",strlen($filename)); // length of filename + $newfile .="\x00\x00"; // some sort of extra field ;) + $newfile .=$filename; + $newfile .=$compressed; + + $this->archive .= $newfile; + + + // some 'statistics' for this file ;) + $this->archive_filecount++; + $idf = $this->archive_filecount - 1; + $this->archive_fileinfo[$this->archive_filecount]['comp_type'] = $this->compr_lvl_last; + $this->archive_fileinfo[$this->archive_filecount]['size'] = strlen($data); + $this->archive_fileinfo[$this->archive_filecount]['size_comp'] = strlen($compressed); + $this->archive_fileinfo[$this->archive_filecount]['pkg_size'] = strlen($newfile); + if(!empty($this->archive_fileinfo[$idf]['local_stats_pointer'])) { + $this->archive_fileinfo[$this->archive_filecount]['local_stats_pointer'] = + $this->archive_fileinfo[$idf]['local_stats_pointer'] + + $this->archive_fileinfo[$idf]['pkg_size'] + 1; // HACKERDIEHACK! only way to get local_stats_pointer to '0' (for now) in zl_pack + } else { + $this->archive_fileinfo[$this->archive_filecount]['local_stats_pointer'] = 1; + } + $this->archive_fileinfo[$this->archive_filecount]['name'] = $filename; + $this->archive_fileinfo[$this->archive_filecount]['crc32'] = crc32($data); + unset($file,$compressed); // to avoid having data in our memory double ;) + RETURN TRUE; +} + +public function zl_pack($comment) { + global $settings; + if(strlen($comment) > pow(2,16)-1) die("Comment too long"); // that's 3 + + // now the central directory structure start + for($x=1;$x <= $this->archive_filecount;$x++) { + $file_stats = $this->archive_fileinfo[$x]; + $cdss .= "\x50\x4b\x01\x02"; // Header + $cdss .="\x00\x00"; // version made by + $cdss .="\x00\x00"; // version needed to extract + $cdss .="\x00\x00"; // general purpose bit flag + $cdss .=pack("v",$file_stats['comp_type']); // compression method + $cdss .=pack("v",dostime_get($settings['offset'])); // last mod file time + $cdss .=pack("v",dosdate_get($settings['offset'])); // last mod file date + $cdss .=pack("V",$file_stats['crc32']); // CRC32 + $cdss .=pack("V",$file_stats['size_comp']); // compressed size + $cdss .=pack("V",$file_stats['size']); // uncompressed size + $cdss .=pack("v",strlen($file_stats['name'])); // file name length + $cdss .="\x00\x00"; // extra field length + $cdss .="\x00\x00"; // file comment length + $cdss .="\x00\x00"; // disk number start + $cdss .="\x00\x00"; // internal file attributes + $cdss .="\x00\x00\x00\x00"; // external file attributes + $cdss .=pack("V",$file_stats['local_stats_pointer']-$x); // relative offset of local header + // aka: The local_stats_pointer hack: part 2, see above + $cdss .=$file_stats['name']; + } + + // and final, the ending central directory structure! "WHOO HOOW!" (©Blur, 1998) + $cdse = "\x50\x4b\x05\x06"; // Header + $cdse .="\x00\x00"; // number of this disk + $cdse .="\x00\x00"; // number of the disk with the start of the central directory + $cdse .=pack("v",$this->archive_filecount); // total number of entries in the central directory on this disk + $cdse .=pack("v",$this->archive_filecount); // total number of entries in the central directory + $cdse .=pack("V",strlen($cdss)); // size of the central directory + $cdse .=pack("V",strlen($this->archive)); // offset of start of central directory with respect to the starting disk number + $cdse .=pack("v",strlen($comment)); // .ZIP file comment length + $cdse .=$comment; + + return $this->archive.$cdss.$cdse; +} + +public function zl_index_file($file) { + $fp = @fopen($file,"rb"); + // ok, as we don't know what the exact position of everything is, we'll have to "guess" using the default sizes + //and set values in the zipfile. Basicly this means I have to go through the entire file, could take some time. + //Let's see if I can create an algorithm powerful enough. + if(!$fp) die("File empty"); + $continue = 1; + $file_count = 0; + + while($continue) { + $content = fread($fp,30); + $id = substr($content,0,4); + if ($id == "\x50\x4b\x03\x04") { + // the method used is quite simple, load a file in the memory, and walk through several parts of it using substr + // As the PKZip format uses mostly fixed sizes for information, this isn't too hard to implement + // First I want everything tested, before I start giving this function a nice place in the class + $temp[$file_count]['file-size'] = ascii2dec(substr($content,18,4)); + $temp[$file_count]['filename-size'] = ascii2dec(substr($content,26,2)); + $temp[$file_count]['compression-type'] = ascii2dec(substr($content,8,2)); + $temp[$file_count]['crc'] = ascii2dec(substr($content,14,4)); + $temp[$file_count]['dostime'] = dostime_return(substr($content,10,2)); + $temp[$file_count]['dosdate'] = dosdate_return(substr($content,12,2)); + + $temp[$file_count]['filename'] = fread($fp,$temp[$file_count]['filename-size']); + + // As the Zip format does not include Content type headers, I'll create a nice little array with + // extension/content type, and a small function to retreive it + $temp[$file_count]['file-type'] = ext2cth($temp[$file_count]['filename']); + $temp[$file_count]['content'] = fread($fp,$temp[$file_count]['file-size']); + + if ($temp[$file_count]['compression-type'] != 0 AND $temp[$file_count]['compression-type'] != 8 AND $temp[$file_count]['compression-type'] != 12) { + $temp[$file_count]['lasterror'] = "Compression type not supported"; + } else { + if($temp[$file_count]['compression-type'] == 8) { + $temp[$file_count]['content'] = gzinflate($temp[$file_count]['content']); + } elseif ($temp[$file_count]['compression-type'] == 12) { + $temp[$file_count]['content'] = bzdecompress($temp[$file_count]['content']); + } + $verify = crc32($temp[$file_count]['content']); + if ($verify != $temp[$file_count]['crc']) { + $temp[$file_count]['lasterror'] = "CRC did not match, possibly this zipfile is damaged"; + } + } + $file_count++; + } else { + $continue = 0; + } + + } + fclose($fp); + unset($fp,$content,$file_count); + return $temp; +} +} + + function zipImgsFiles($source,$zip) + { + + $folder = opendir($source==""?"./":$source); + while($file = readdir($folder)) + { + if ($file == '.' || $file == '..') { + continue; + } + + if(is_dir($source.$file)) + { + zipImgsFiles($source.$file."/",$zip); + } + else + { + $zip->zl_add_file(file_get_contents($source.$file),$source.$file,"g0"); + } + } + closedir($folder); + return 1; + } + + function zipFromLocation($location,$name="dhtmlx"){ + //echo $location; + chdir($location); + $zip = new Ziplib; + $zip->zl_add_file(file_get_contents("dhtmlx.js"),$name.'.js',"g9"); + $zip->zl_add_file(file_get_contents("dhtmlx.css"),$name.'.css',"g9"); + $zip->zl_add_file(file_get_contents("manifest.txt"),'manifest.txt',"g9"); + zipImgsFiles("imgs/",$zip); + $files = @scandir("./types"); + if (count($files) > 2) + zipImgsFiles("types/",$zip); + + $outZip = $zip->zl_pack(""); + + return $outZip; + } +?> diff --git a/phpgwapi/js/dhtmlxtree/readme.EGroupware.txt b/phpgwapi/js/dhtmlxtree/readme.EGroupware.txt new file mode 100644 index 0000000000..d0a384c5db --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/readme.EGroupware.txt @@ -0,0 +1,14 @@ +EGroupware uses a different directory structure from current dhtmlxTree packages: + +phpgwapi/js/dhtmlxtree/ ++- css +| +- dhtmlxtree.css --> dhtmlxTree/codebase/dhtmlxtree.css ++- js + +- dhtmlxcommon.js --> dhtmlxTree/codebase/dhtmlcommon.js + +- dhtmlxtree.js --> dhtmlxTree/codebase/dhtmlxtree.js + +- ext --> dhtmlxTree/codebase/ext + +- ... + +These files/directories are copied from dhtmlxTree/codebase to not modify all code. + +If dhtmlxtree get updated, these files have to be copied again, or code need to be changed. diff --git a/phpgwapi/js/dhtmlxtree/readme.txt b/phpgwapi/js/dhtmlxtree/readme.txt new file mode 100755 index 0000000000..f328ce1f53 --- /dev/null +++ b/phpgwapi/js/dhtmlxtree/readme.txt @@ -0,0 +1,3 @@ +dhtmlxTree v.2.6 Standard edition build 100916 (with applied IE9 beta fix) + +(c) DHTMLX Ltd. \ No newline at end of file