var app={};app._current_tag=true;app.save_settings=function(c,w,a){var reload=app._s.config!=c;app._s.config=c;app._s.white=w;app._s.attrs=a;app.popup_win.close();document.cookie="xmledit_settings="+c+"|"+w+"|"+a;if(reload)top.setTimeout(function(){top.location.href="./index.html?uid="+(new Date()).valueOf();},1);};app.load_settings=function(){var a=false;var b=false;var d=false;var c=app.get_cookie("xmledit_settings");if(c){c=c.split("|");a=c[0]=="true";b=c[1]=="true";d=c[2]=="true";}app._s={};app._s.config=a;app._s.white=b;app._s.attrs=d;};app.get_cookie=function(name){var search=name+"=";if(document.cookie.length>0){var offset=document.cookie.indexOf(search);if(offset!= -1){offset+=search.length;var end=document.cookie.indexOf(";",offset);if(end== -1)end=document.cookie.length;return document.cookie.substring(offset,end);}}};app.mode_changed=function(){window.setTimeout(app.mode_changed_sure,1)};app.mode_changed_sure=function(){var state=document.getElementById('gstate').checked;if(state!=app._current_tag){app._current_tag=state;var id=app.tree.getSelectedItemId();if(id)app.tree.callEvent("onClick",[id])}};app.main_toolbar_click=function(id){switch(id){case "expand":app.tree.openAllItems(0);break;case "load_xml":var win=app.layout.dhxWins.createWindow("creation",1,1,350,200);win.setText("Add connection");win.setModal(true);win.center();win.attachURL("load.html");app.popup_win=win;break;case "save_xml":var win=app.layout.dhxWins.createWindow("creation",1,1,600,400);win.setText("Result");win.setModal(true);win.center();var area=document.createElement("textarea");area.style.cssText="width:100%; height:100%; font-family:Tahoma; font-size:8pt;";win.attachObject(area);area.value=app.build_xml(app._top).join("");break;case "settings":var win=app.layout.dhxWins.createWindow("creation",1,1,400,230);win.setText("Add connection");win.setModal(true);win.center();win.attachURL("settings.html");app.popup_win=win;break;}};app.load_xml_window=function(path){window.setTimeout(function(){app.load_xml(path);},1);app.popup_win.close();};app.load_xml=function(path){app.tree.deleteChildItems(0);app.config_grid.clearAll();app.data_grid.clearAll(true);dhtmlxAjax.get("proxy.php?path="+encodeURIComponent(path),function(xml){app._data={};app._ids=[];app._max_id=1;app._elements={};app._top=app.xml_pop(xml.doXPath("/*")[0]);app.tree.loadJSONObject({id:0,item:[app._top],text:""});window.setTimeout(app.fill_config_grid,1);});};app.fill_config_grid=function(){var data=[];for(var name in app._elements)data.push([name,"_tag_name_"]);app.config_grid.parse(data,"jsarray");};app.change_tag_map=function(stage,id,ind,value){if(stage==0){var c=app.config_grid.getCombo(1);c.clear();var attrs=app._elements[app.config_grid.cells(id,0).getValue()].attrs;c.put("_tag_name_","_tag_name_");c.put("_tag_value_","_tag_value_");for(var name in attrs)c.put(name,name);}if(stage==2){var el=app._elements[app.config_grid.cells(id,0).getValue()];app.change_tree_text(el,value);el._active=value;}return true;};app.get_node_name=function(id){return app._elements[app._ids[id].a__tag_name_];};app.change_tree_text=function(list,text){for(var i=0;i<list.length;i++)app.tree.setItemText(list[i],app._ids[list[i]]["a_"+text])};app.xml_tag=function(obj){if(!app._elements[obj.a__tag_name_]){app._elements[obj.a__tag_name_]=[];app._elements[obj.a__tag_name_].attrs={};}var c=app._elements[obj.a__tag_name_];c.push(obj.id);return c;};app.xml_pop=function(node){var text="";var child=[];var obj={a__tag_name_:node.tagName,item:child,id:app._max_id++,text:node.tagName};app._ids[obj.id]=obj;var attrs=app.xml_tag(obj).attrs;for(var i=0;i<node.childNodes.length;i++){var n=node.childNodes[i];switch(n.nodeType){case 3:text+=n.data;break;case 1:child.push(app.xml_pop(n));break;}}var a=node.attributes;for(var i=0;i<a.length;i++){obj["a_"+a[i].name]=a[i].value;attrs[a[i].name]=true;}obj.a__tag_value_=text;return obj;};app.show_details=function(id){if(app._current_tag){app.data_grid.clearAll(true);app.data_grid.setHeader("Property,Value,");app.data_grid.setInitWidths("*,*,*");app.data_grid.setColTypes("ro,ed,ro");app.data_grid.init();app.data_grid._mode=app._current_tag;app.data_grid._id=id;var data=[];var tag=app._ids[id].a__tag_name_;var attrs=app._elements[tag].attrs;data.push(["Tag value",app._ids[id]["a__tag_value_"]]);for(var a in attrs){data.push([a,app._ids[id]["a_"+a]]);};app.data_grid.parse(data,"jsarray")}else{app.data_grid.clearAll(true);var tag=app._ids[id].a__tag_name_;var attrs=app._elements[tag].attrs;var names=["ID"];var types=["ro"];var widths=["0"];for(var a in attrs){names.push(a);types.push("ed");widths.push("100")}names.push("Tag value");types.push("ed");widths.push("*");app.data_grid.setHeader(names.join(","));app.data_grid.setInitWidths(widths.join(","));app.data_grid.setColTypes(types.join(","));app.data_grid.init();app.data_grid._mode=app._current_tag;app.data_grid._id=id;var data=[];var rows=app._elements[tag];var sid=0;for(var i=0;i<rows.length;i++){var el=app._ids[rows[i]];var temp=[rows[i]];for(var a in attrs){temp.push(el["a_"+a]);}temp.push(el.a__tag_value_);data.push(temp);if(rows[i]==id)sid=i+1;};app.data_grid.parse(data,"jsarray");app.data_grid.selectRowById(sid);}};app.reselect_tree=function(id){if(!this._mode){this._id=this.cells(id,0).getValue();app.tree.selectItem(this._id,false);app.tree.focusItem(this._id)}return true;};app.data_changed=function(stage,id,ind,value){if(stage==2&&this._mode){var pid=this._id;var tag=app._ids[pid].a__tag_name_;var prop=this.cells(id,0).getValue();if(id==1)prop="_tag_value_";app._ids[pid]["a_"+prop]=value;var nodes=app.get_node_name(pid);if(nodes._active==prop)app.tree.setItemText(pid,value);}if(stage==2&& !this._mode){var pid=this._id;var tag=app._ids[pid].a__tag_name_;var prop=this.getColumnLabel(ind);if(ind==this.getColumnsNum()-1)prop="_tag_value_";app._ids[pid]["a_"+prop]=value;var nodes=app.get_node_name(pid);if(nodes._active==prop)app.tree.setItemText(pid,value);}return true;};app.build_xml=function(top,xml,start){xml=xml||[];var attrs=app._elements[top.a__tag_name_].attrs;xml.push(start||"");start=start||"\n";xml.push("<"+top.a__tag_name_);for(var a in attrs)if(top["a_"+a]|| !app._s.attrs)xml.push(" "+a+"='"+(top["a_"+a]||"")+"' ");xml.push(">");for(var i=0;i<top.item.length;i++)app.build_xml(top.item[i],xml,start+"\t");if(app._s.white)xml.push((top.a__tag_value_||"").replace(/[ \n\t]+/gi," "));else xml.push(top.a__tag_value_);xml.push(start);xml.push("</"+top.a__tag_name_+">");return xml;};function init(){app.load_settings();app.layout=new dhtmlXLayoutObject(document.body,"3W",skin);app.layout.items[app._s.config?0:1].setText("Hierarchy");app.layout.items[0].setWidth(250);app.layout.items[app._s.config?1:0].setText("Config");app.layout.items[1].setWidth(250);app.layout.items[2].setText("<small onclick='app.mode_changed()'><input id='gstate' type='radio' checked='true' name='edit_mode'/><label for='edit_mode'>Current tag only</label> <input type='radio' name='edit_mode'/><label for='edit_mode'>All similar tags</label></small>");app.tree=app.layout.items[app._s.config?0:1].attachTree(0);app.tree.setImagePath("./imgs/tree/");app.tree.attachEvent("onClick",app.show_details);app.config_grid=app.layout.items[app._s.config?1:0].attachGrid(0);app.config_grid.setHeader("XML tag,Use as value");app.config_grid.setInitWidths("100,*");app.config_grid.setColTypes("ro,coro");app.config_grid.init();app.config_grid.attachEvent("onEditCell",app.change_tag_map);app.data_grid=app.layout.items[2].attachGrid(0);app.data_grid.attachEvent("onEditCell",app.data_changed);app.data_grid.attachEvent("onRowSelect",app.reselect_tree);app.toolbar=app.layout.attachToolbar();app.toolbar.setIconsPath("./imgs/");app.toolbar.attachEvent("onClick",app.main_toolbar_click);app.toolbar.loadXML("./xml/buttons.xml");app.main_toolbar_click("load_xml");}
