var webtronics={ circuit:null, copy:null, rightclickmenu:null, title:null, description:null, file_id:null, scopestatus:null, scopedata:null, tabs:[], mode:'', Vlist:/\s*expression|\s*url|.*script/, Alist:/^(x|y|x1|y1|x2|y2|dx|dy|cx|cy|r|width|height|transform|d|id|class|fill|stroke|visibility|stroke-width|xmlns|xmlns:wtx|connects|partvalue|flippable|spice|index|font-size|font-weight|font-style|font-family)$/, Elist:/^(path|circle|rect|line|text|g|tspan|svg|wtx:part|wtx:pins|wtx:analog|wtx:digital|wtx:node|wtx:id|wtx:type|wtx:name|wtx:category|wtx:value|wtx:label|wtx:spice|wtx:flip|wtx:model|wtx:measure|metadata|)$/, /* .lib files contain spice .model devices .mod devices contain .subckt devices and the id must begin with x*/ // serverurls:["http://logical.github.io/webtronix/webtronix_server"], serverurls:["webtronix_server"], partslists:[], models:{}, docfromtext:function(txt){ var xmlDoc; if (window.DOMParser){ parser=new DOMParser(); xmlDoc=parser.parseFromString(txt,"text/xml"); } else{ // Internet Explorer xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(txt); } return xmlDoc; }, setsize:function(){ var buffer=30; var realheight=window.innerHeight-$('webtronics_toolbar').offsetHeight-$('webtronics_status_bar').offsetHeight; var realwidth=window.innerWidth-$('webtronics_side_bar').offsetWidth; $('webtronics_center').style.width = window.offsetWidth+'px'; $('webtronics_center').style.height = realheight-buffer+'px'; $('webtronics_diagram_area').style.width = realwidth-buffer+'px'; $('webtronics_diagram_area').style.height = realheight-buffer+'px'; frames=$$('#webtronics_diagram_area>iframe') if(frames[0])frames[0].width = realwidth-buffer+'px'; $('webtronics_side_bar').style.height=realheight-buffer+'px'; }, setMode:function(mode, status){ $('webtronics_status_bar').innerHTML = 'Mode: '+status; $('webtronics_add_text').style.display='none'; if(mode=='select'){ if($('webtronics_context_menu'))$('webtronics_context_menu').style.display='block'; } else if(mode=='line'){ if($('webtronics_context_menu'))$('webtronics_context_menu').style.display='none'; if(this.circuit.selected){ this.circuit.unselect(); } } else if(mode=='text'){ if($('webtronics_context_menu'))$('webtronics_context_menu').style.display='none'; } $('webtronics_context_menu').style.display='none'; this.circuit.mode=mode; }, getvalues:function(elem){ $("webtronics_part_model").options.length=0; $("webtronics_part_dir_model").options.length=0; $("webtronics_part_model").appendChild(new Element("option",{"value":""}).update("none")); $("webtronics_part_dir_model").appendChild(new Element("option",{"value":""}).update("none")); var part=netlistcreator.readwtx(elem,"name"); var cat=netlistcreator.readwtx(elem,"category"); if(cat && (part != "model")){ for(var i=0;idiv>div'); for(var i=0;i3){ $("webtronics_hor_pins").insert(Element("option",{"value":i}).update(i*2)); } $("webtronics_vert_pins").insert(Element("option",{"value":i}).update(i*2)); } /*menu events*/ Event.observe($('webtronics_file'), 'click', function() { if($('webtronics_file_menu').style.display=='block'){ $('webtronics_file_menu').style.display='none'; } else { $('webtronics_file_menu').style.display='block'; } }); Event.observe($('webtronics_chips_open'), 'click', function() { webtronics.circuit.clearinfo(); webtronics.setMode('select','Selection'); chipmaker.openmaker(); $('webtronics_chips_box').style.display = "block"; webtronics.center($('webtronics_chips_box')); webtronics.disablepage(); }); if($("webtronics_select"))Event.observe($('webtronics_select'), 'click', function() { webtronics.circuit.clearinfo(); webtronics.setMode('select', 'Selection'); }); if($("webtronics_wire"))Event.observe($('webtronics_wire'), 'click', function() { webtronics.circuit.clearinfo(); webtronics.setMode('line','Wire'); }); Event.observe($('webtronics_text'), 'click', function() { webtronics.circuit.clearinfo(); if($('webtronics_text').className=='pressed_button'){ $('webtronics_text').className = 'normal_button'; webtronics.setMode('select', 'Selection'); } else { $('webtronics_text').className = 'pressed_button'; webtronics.setMode('text', 'Text'); } }); if($('webtronics_undo')){ Event.observe($('webtronics_undo'),'click',function(){ webtronics.circuit.undo(); }); } if($('webtronics_redo')){ Event.observe($('webtronics_redo'),'click',function(){ webtronics.circuit.redo(); }); } Event.observe($('webtronics_delete'), 'click', function() { webtronics.circuit.clearinfo(); webtronics.circuit.addhistory(); webtronics.circuit.deleteSelection(); }); /* if($('webtronics_save')){ Event.observe($('webtronics_save'), 'click', function() { webtronics.circuit.clearinfo(); webtronics.showMarkup(); }); } */ if($('webtronics_netlist')){ Event.observe($('webtronics_netlist'), 'click', function() { netlistcreator.createnetlist(function(netlist){ var content=$$("#webtronics_netlist_text_div > *") for(var i=0;i