1(function()
2{
3	// Adds electrical stencils
4	Sidebar.prototype.addElectricalPalette = function()
5	{
6		var s = mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=bottom;shadow=0;dashed=0;align=center;html=1;' + mxConstants.STYLE_VERTICAL_ALIGN + '=top;' + mxConstants.STYLE_SHAPE;
7		var mea = s + '=mxgraph.electrical.abstract.';
8		var mec = 'pointerEvents=1;' + s + '=mxgraph.electrical.capacitors.';
9		var med = 'pointerEvents=1;fillColor=strokeColor;' + s + '=mxgraph.electrical.diodes.';
10		var mei = 'pointerEvents=1;' + s + '=mxgraph.electrical.inductors.';
11		var mem = 'pointerEvents=1;' + s + '=mxgraph.electrical.miscellaneous.';
12		var meem = 'pointerEvents=1;' + s + '=mxgraph.electrical.electro-mechanical.';
13		var mel = s + '=mxgraph.electrical.logic_gates.';
14		var mef1 = s + '=mxgraph.electrical.mosfets1.';
15		var mef2 = s + '=mxgraph.electrical.mosfets2.';
16		var met = s + '=mxgraph.electrical.transistors.';
17		var meoe = s + '=mxgraph.electrical.opto_electronics.';
18		var mep = 'pointerEvents=1;' + s + '=mxgraph.electrical.plc_ladder.';
19		var mer = s + '=mxgraph.electrical.radio.';
20		var mere = 'pointerEvents=1;' + s + '=mxgraph.electrical.resistors.';
21		var mess = 'pointerEvents=1;' + s + '=mxgraph.electrical.signal_sources.';
22		var metd = s + '=mxgraph.electrical.thermionic_devices.';
23		var mew = 'pointerEvents=1;' + s + '=mxgraph.electrical.waveforms.';
24		var mein = 'perimeter=ellipsePerimeter;' + s + '=mxgraph.electrical.instruments.';
25		var meiecl = s + '=mxgraph.electrical.iec_logic_gates.';
26		var merm = s + '=mxgraph.electrical.rot_mech.';
27		var metr = s + '=mxgraph.electrical.transmission.';
28		var gnmel = 'mxgraph.electrical.logic_gates';
29		var dtmel = 'electrical logic gate ';
30		var gnmeiecl = 'mxgraph.electrical.iec_logic_gates';
31		var dtmeiecl = 'electrical iec logic gate ';
32		var gnmere = 'mxgraph.electrical.resistors';
33		var dtmere = 'electrical resistor ';
34		var gnmec = 'mxgraph.electrical.capacitors';
35		var dtmec = 'electrical capacitor ';
36		var gnmei = 'mxgraph.electrical.inductors';
37		var dtmei = 'electrical inductor ';
38		var gnmeem = 'mxgraph.electrical.electro-mechanical';
39		var dtmeem = 'electrical switch relay ';
40		var gnmed = 'mxgraph.electrical.diodes';
41		var dtmed = 'electrical diode ';
42		var gnmess = 'mxgraph.electrical.signal_sources';
43		var dtmess = 'electrical signal source ';
44		var gnmet = 'mxgraph.electrical.transistors';
45		var dtmet = 'electrical transistor ';
46		var gnmein = 'mxgraph.electrical.instruments';
47		var dtmein = 'electrical instrument ';
48		var gnmer = 'mxgraph.electrical.radio';
49		var dtmer = 'electrical radio audio ';
50		var gnmem = 'mxgraph.electrical.miscellaneous';
51		var dtmem = 'electrical ';
52		var gnmea = 'mxgraph.electrical.abstract';
53		var dtmea = 'electrical ';
54		var gnmep = 'mxgraph.electrical.plc_ladder';
55		var dtmep = 'electrical plc ladder programmable logic logical controller';
56		var gnmeoe = 'mxgraph.electrical.opto_electronics';
57		var dtmeoe = 'electrical optical ';
58		var gnmetd = 'mxgraph.electrical.thermionic_devices';
59		var dtmetd = 'electrical thermionic thermo device vacuum tube ';
60		var gnmew = 'mxgraph.electrical.waveforms';
61		var dtmew = 'electrical waveform signal ';
62		var gnmerm = 'mxgraph.electrical.rot_mech';
63		var dtmerm = 'electrical rotating equipment mechanical function functions';
64		var gnmetr = 'mxgraph.electrical.transmission';
65		var dtmetr = 'electrical transmission paths bus buses';
66
67		this.setCurrentSearchEntryLibrary('electrical', 'electrical\LogicGates');
68
69		this.addPaletteFunctions('electrical\LogicGates', 'Electrical / Logic Gates', false,
70		[
71			this.createVertexTemplateEntry(mel + 'logic_gate;operation=and;', 100, 60, '', 'AND', null, null, this.getTagsForStencil(gnmel, 'and', dtmel).join(' ')),
72			this.createVertexTemplateEntry(mel + 'buffer2;', 100, 60, '', 'Buffer', null, null, this.getTagsForStencil(gnmel, 'buffer', dtmel).join(' ')),
73			this.createVertexTemplateEntry(mel + 'd_type_flip-flop;', 100, 80, '', 'D Type Flip-Flop', null, null, this.getTagsForStencil(gnmel, 'd_type_flip-flop', dtmel).join(' ')),
74			this.createVertexTemplateEntry(mel + 'd_type_flip-flop_with_clear_2;', 100, 90, '', 'D Type Flip-Flop With Clear', null, null, this.getTagsForStencil(gnmel, 'd_type_flip-flop_with_clear', dtmel).join(' ')),
75			this.createVertexTemplateEntry(mel + 'd_type_rs_flip-flop;', 100, 100, '', 'D Type RS Flip-Flop', null, null, this.getTagsForStencil(gnmel, 'd_type_rs_flip-flop', dtmel).join(' ')),
76			this.createVertexTemplateEntry(mel + 'inverter_2', 100, 60, '', 'Inverter', null, null, this.getTagsForStencil(gnmel, 'inverter', dtmel).join(' ')),
77			this.createVertexTemplateEntry(mel + 'inverting_contact;', 10, 10, '', 'Inverting Contact', null, null, this.getTagsForStencil(gnmel, 'inverting_contact', dtmel).join(' ')),
78			this.createVertexTemplateEntry(mel + 'jk_flip-flop;', 100, 80, '', 'JK Flip-Flop', null, null, this.getTagsForStencil(gnmel, 'jk_flip-flop', dtmel).join(' ')),
79			this.createVertexTemplateEntry(mel + 'jk_flip-flop_with_clear_2;', 100, 90, '', 'JK Flip-Flop With Clear', null, null, this.getTagsForStencil(gnmel, 'jk_flip-flop_with_clear', dtmel).join(' ')),
80			this.createVertexTemplateEntry(mel + 'jk_flip-flop_with_sr;', 100, 100, '', 'JK Flip-Flop With SR', null, null, this.getTagsForStencil(gnmel, 'jk_flip-flop_with_sr', dtmel).join(' ')),
81			this.createVertexTemplateEntry(mel + 'logic_gate;operation=and;negating=1;negSize=0.15;', 100, 60, '', 'NAND', null, null, this.getTagsForStencil(gnmel, 'nand not and', dtmel).join(' ')),
82			this.createVertexTemplateEntry(mel + 'logic_gate;operation=or;', 100, 60, '', 'OR', null, null, this.getTagsForStencil(gnmel, 'or', dtmel).join(' ')),
83			this.createVertexTemplateEntry(mel + 'logic_gate;operation=or;negating=1;negSize=0.15;', 100, 60, '', 'NOR', null, null, this.getTagsForStencil(gnmel, 'nor', dtmel).join(' ')),
84			this.createVertexTemplateEntry(mel + 'rs_latch;', 100, 80, '', 'RS Latch', null, null, this.getTagsForStencil(gnmel, 'rs_latch', dtmel).join(' ')),
85			this.createVertexTemplateEntry(mel + 'synchronous_rs_latch;', 100, 80, '', 'RS Latch (Synchronous)', null, null, this.getTagsForStencil(gnmel, 'synchronous_rs_latch', dtmel).join(' ')),
86			this.createVertexTemplateEntry(mel + 'schmitt_trigger;', 100, 60, '', 'Schmitt Trigger', null, null, this.getTagsForStencil(gnmel, 'schmitt_trigger', dtmel).join(' ')),
87			this.createVertexTemplateEntry(mel + 't_type_flip-flop;', 100, 80, '', 'T Type Flip-Flop', null, null, this.getTagsForStencil(gnmel, 't_type_flip-flop', dtmel).join(' ')),
88			this.createVertexTemplateEntry(mel + 'logic_gate;operation=xor;', 100, 60, '', 'XOR', null, null, this.getTagsForStencil(gnmel, 'xor', dtmel).join(' ')),
89			this.createVertexTemplateEntry(mel + 'logic_gate;operation=xor;negating=1;negSize=0.15;', 100, 60, '', 'XNOR', null, null, this.getTagsForStencil(gnmel, 'xnor', dtmel).join(' ')),
90			this.createVertexTemplateEntry(meiecl + 'and;', 60, 80, '', 'AND (IEC)', null, null, this.getTagsForStencil(gnmeiecl, 'and', dtmeiecl).join(' ')),
91			this.createVertexTemplateEntry(meiecl + 'nand_2;', 66, 80, '', 'NAND (IEC)', null, null, this.getTagsForStencil(gnmeiecl, 'nand', dtmeiecl).join(' ')),
92			this.createVertexTemplateEntry(meiecl + 'or;', 60, 80, '', 'OR (IEC)', null, null, this.getTagsForStencil(gnmeiecl, 'or', dtmeiecl).join(' ')),
93			this.createVertexTemplateEntry(meiecl + 'nor_2;', 66, 80, '', 'NOR (IEC)', null, null, this.getTagsForStencil(gnmeiecl, 'nor', dtmeiecl).join(' ')),
94			this.createVertexTemplateEntry(meiecl + 'not_2;', 66, 80, '', 'NOT (IEC)', null, null, this.getTagsForStencil(gnmeiecl, 'xor', dtmeiecl).join(' ')),
95			this.createVertexTemplateEntry(meiecl + 'xor;', 60, 80, '', 'XOR (IEC)', null, null, this.getTagsForStencil(gnmeiecl, 'xor', dtmeiecl).join(' ')),
96			this.createVertexTemplateEntry(
97					'shadow=0;dashed=0;align=center;html=1;strokeWidth=1;shape=mxgraph.electrical.logic_gates.dual_inline_ic;labelNames=a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;',
98					100, 200, 'IC', 'Dual In-Line IC', null, null, this.getTagsForStencil(gnmel, 'dual inline in line ic integrated circuit', dtmel).join(' ')),
99			this.createVertexTemplateEntry(
100					'shadow=0;dashed=0;align=center;html=1;strokeWidth=1;shape=mxgraph.electrical.logic_gates.qfp_ic;' +
101					'labelNames=a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1,m1,n1;',
102					200, 200, 'IC', 'Quad Flat Package IC', null, null, this.getTagsForStencil(gnmel, 'quad flat package qfp ic integrated circuit', dtmel).join(' '))
103		]);
104
105		this.setCurrentSearchEntryLibrary('electrical', 'electrical\Resistors');
106
107		this.addPaletteFunctions('electrical\Resistors', 'Electrical / Resistors', false,
108		[
109			this.createVertexTemplateEntry(mere + 'resistor_1;',
110					100, 20, '', 'Resistor', null, null, this.getTagsForStencil(gnmere, 'resistor_1', dtmere).join(' ')),
111			this.createVertexTemplateEntry(mere + 'resistor_2;',
112					100, 20, '', 'Resistor', null, null, this.getTagsForStencil(gnmere, 'resistor_2', dtmere).join(' ')),
113			this.createVertexTemplateEntry(mere + 'potentiometer_1;',
114					100, 40, '', 'Potentiometer', null, null, this.getTagsForStencil(gnmere, 'potentiometer_1', dtmere).join(' ')),
115			this.createVertexTemplateEntry(mere + 'potentiometer_2;',
116					100, 40, '', 'Potentiometer', null, null, this.getTagsForStencil(gnmere, 'potentiometer_2', dtmere).join(' ')),
117			this.createVertexTemplateEntry(mere + 'trimmer_pot_1;',
118					100, 40, '', 'Potentiometer (Trimmer)', null, null, this.getTagsForStencil(gnmere, 'trimmer_pot_1', dtmere).join(' ')),
119			this.createVertexTemplateEntry(mere + 'trimmer_pot_2;',
120					100, 40, '', 'Potentiometer (Trimmer)', null, null, this.getTagsForStencil(gnmere, 'trimmer_pot_2', dtmere).join(' ')),
121			this.createVertexTemplateEntry(mere + 'trimmer_resistor_1;',
122					100, 65.5, '', 'Resistor (Trimmer)', null, null, this.getTagsForStencil(gnmere, 'trimmer_resistor_1', dtmere).join(' ')),
123			this.createVertexTemplateEntry(mere + 'trimmer_resistor_2;',
124					100, 65.5, '', 'Resistor (Trimmer)', null, null, this.getTagsForStencil(gnmere, 'trimmer_resistor_2', dtmere).join(' ')),
125			this.createVertexTemplateEntry(mere + 'variable_resistor_1;',
126					100, 60, '', 'Resistor (Variable)', null, null, this.getTagsForStencil(gnmere, 'variable_resistor_1', dtmere).join(' ')),
127			this.createVertexTemplateEntry(mere + 'variable_resistor_2;',
128					100, 60, '', 'Resistor (Variable)', null, null, this.getTagsForStencil(gnmere, 'variable_resistor_2', dtmere).join(' ')),
129			this.createVertexTemplateEntry(mere + 'resistor_with_instrument_or_relay_shunt;',
130					100, 20, '', 'Resistor (Instrument/Relay Shunt)', null, null, this.getTagsForStencil(gnmere, 'resistor_with_instrument_or_relay_shunt', dtmere).join(' ')),
131			this.createVertexTemplateEntry(mere + 'attenuator;',
132					100, 60, '', 'Attenuator', null, null, this.getTagsForStencil(gnmere, 'attenuator', dtmere).join(' ')),
133			this.createVertexTemplateEntry(mere + 'resistor,_adjustable_contact;',
134					100, 40, '', 'Resistor (Adjustable Contact)', null, null, this.getTagsForStencil(gnmere, 'resistor,_adjustable_contact', dtmere).join(' ')),
135			this.createVertexTemplateEntry(mere + 'resistor,_shunt;',
136					100, 45, '', 'Resistor (Shunt)', null, null, this.getTagsForStencil(gnmere, 'resistor,_shunt', dtmere).join(' ')),
137			this.createVertexTemplateEntry(mere + 'symmetrical_varistor;',
138					100, 60, '', 'Varistor (Symmetrical)', null, null, this.getTagsForStencil(gnmere, 'symmetrical_varistor', dtmere).join(' ')),
139			this.createVertexTemplateEntry(mere + 'tapped_resistor;',
140					100, 40, '', 'Resistor (Tapped)', null, null, this.getTagsForStencil(gnmere, 'tapped_resistor', dtmere).join(' ')),
141			this.createVertexTemplateEntry(mere + 'nonlinear_resistor;',
142					100, 60, '', 'Resistor (Nonlinear)', null, null, this.getTagsForStencil(gnmere, 'nonlinear_resistor', dtmere).join(' ')),
143			this.createVertexTemplateEntry(mere + 'memristor_1;',
144					100, 20, '', 'Memristor', null, null, this.getTagsForStencil(gnmere, 'memristor_1', dtmere).join(' ')),
145			this.createVertexTemplateEntry(mere + 'memristor_2;',
146					100, 24, '', 'Memristor', null, null, this.getTagsForStencil(gnmere, 'memristor_2', dtmere).join(' ')),
147			this.createVertexTemplateEntry(mere + 'magnetoresistor;',
148					100, 60, '', 'Magnetoresistor', null, null, this.getTagsForStencil(gnmere, 'magnetoresistor', dtmere).join(' ')),
149			this.createVertexTemplateEntry(mere + 'symmetrical_photoconductive_transducer;',
150					100, 40, '', 'Photoconductive Transducer (Symmetrical)', null, null, this.getTagsForStencil(gnmere, 'symmetrical_photoconductive_transducer', dtmere).join(' '))
151		]);
152
153		this.setCurrentSearchEntryLibrary('electrical', 'electrical\Capacitors');
154
155		this.addPaletteFunctions('electrical\Capacitors', 'Electrical / Capacitors', false,
156		[
157			this.createVertexTemplateEntry(mec + 'capacitor_1;',
158					100, 60, '', 'Capacitor (US)', null, null, this.getTagsForStencil(gnmec, 'capacitor_1', dtmec).join(' ')),
159			this.createVertexTemplateEntry(mec + 'capacitor_2;',
160					100, 60, '', 'Capacitor (US)', null, null, this.getTagsForStencil(gnmec, 'capacitor_2', dtmec).join(' ')),
161			this.createVertexTemplateEntry(mec + 'capacitor_3;',
162					100, 60, '', 'Electrolytic Capacitor (US)', null, null, this.getTagsForStencil(gnmec, 'capacitor_3', dtmec).join(' ')),
163			this.createVertexTemplateEntry(mec + 'capacitor_4;',
164					100, 60, '', 'Capacitor (UK)', null, null, this.getTagsForStencil(gnmec, 'capacitor_4', dtmec).join(' ')),
165			this.createVertexTemplateEntry(mec + 'capacitor_5;',
166					100, 60, '', 'Electrolytic Capacitor (US)', null, null, this.getTagsForStencil(gnmec, 'capacitor_5', dtmec).join(' ')),
167			this.createVertexTemplateEntry(mec + 'capacitor_6;',
168					100, 60, '', 'Capacitor', null, null, this.getTagsForStencil(gnmec, 'capacitor_6', dtmec).join(' ')),
169			this.createVertexTemplateEntry(mec + 'differential_capacitor;',
170					100, 80, '', 'Differential Capacitor', null, null, this.getTagsForStencil(gnmec, 'differential_capacitor', dtmec).join(' ')),
171			this.createVertexTemplateEntry(mec + 'trimmer_capacitor_1;',
172					100, 65.5, '', 'Tuning Variable Capacitor (US)', null, null, this.getTagsForStencil(gnmec, 'trimmer_capacitor_1', dtmec).join(' ')),
173			this.createVertexTemplateEntry(mec + 'trimmer_capacitor_2;',
174					100, 65.5, '', 'Tuning Variable Capacitor (US)', null, null, this.getTagsForStencil(gnmec, 'trimmer_capacitor_2', dtmec).join(' ')),
175			this.createVertexTemplateEntry(mec + 'variable_capacitor_1;',
176					100, 60, '', 'Trimmer Variable Capacitor (US)', null, null, this.getTagsForStencil(gnmec, 'variable_capacitor_1', dtmec).join(' ')),
177			this.createVertexTemplateEntry(mec + 'variable_capacitor_2;',
178					100, 60, '', 'Trimmer Variable Capacitor (US)', null, null, this.getTagsForStencil(gnmec, 'variable_capacitor_2', dtmec).join(' ')),
179			this.createVertexTemplateEntry(mec + 'feed_through_capacitor;',
180					100, 90, '', 'Feed Through Capacitor', null, null, this.getTagsForStencil(gnmec, 'feed_through_capacitor', dtmec).join(' ')),
181			this.createVertexTemplateEntry(mec + 'ganged_capacitor;',
182					100, 130, '', 'Ganged Capacitor', null, null, this.getTagsForStencil(gnmec, 'ganged_capacitor', dtmec).join(' ')),
183			this.createVertexTemplateEntry(mec + 'multiple_capacitor;',
184					100, 130, '', 'Multiple Capacitor', null, null, this.getTagsForStencil(gnmec, 'multiple_capacitor', dtmec).join(' ')),
185			this.createVertexTemplateEntry(mec + 'multiple_electrolytic_capacitor_comm_neg;',
186					100, 130, '', 'Multiple Electrolytic Capacitor (Common Negative)', null, null, this.getTagsForStencil(gnmec, 'multiple_electrolytic_capacitor_comm_neg', dtmec).join(' ')),
187			this.createVertexTemplateEntry(mec + 'multiple_electrolytic_capacitor_comm_pos;',
188					100, 130, '', 'Multiple Electrolytic Capacitor (Common Positive)', null, null, this.getTagsForStencil(gnmec, 'multiple_electrolytic_capacitor_comm_pos', dtmec).join(' '))
189		]);
190
191		this.setCurrentSearchEntryLibrary('electrical', 'electrical\Inductors');
192
193		this.addPaletteFunctions('electrical\Inductors', 'Electrical / Inductors', false,
194		[
195			this.createVertexTemplateEntry(mei + 'inductor_3;',
196					100, 8, '', 'Inductor (Air Core)', null, null, this.getTagsForStencil(gnmei, 'inductor_3', dtmei).join(' ')),
197			this.createVertexTemplateEntry(mei + 'inductor_5;',
198					100, 14, '', 'Inductor (Air Core)', null, null, this.getTagsForStencil(gnmei, 'inductor_5', dtmei).join(' ')),
199			this.createVertexTemplateEntry(mei + 'inductor_1;',
200					100, 15, '', 'Inductor (Air Core)', null, null, this.getTagsForStencil(gnmei, 'inductor_1', dtmei).join(' ')),
201			this.createVertexTemplateEntry(mei + 'variable_inductor;',
202					100, 60, '', 'Variable', null, null, this.getTagsForStencil(gnmei, 'variable_inductor', dtmei).join(' ')),
203			this.createVertexTemplateEntry(mei + 'ferrite_core;',
204					64, 4, '', 'Ferrite Core', null, null, this.getTagsForStencil(gnmei, 'ferrite_core', dtmei).join(' ')),
205			this.createVertexTemplateEntry(mei + 'iron_core;',
206					64, 4, '', 'Iron Core', null, null, this.getTagsForStencil(gnmei, 'iron_core', dtmei).join(' ')),
207			this.createVertexTemplateEntry(mei + 'magnetic_core;direction=north;',
208					64, 3, '', 'Magnetic Core', null, null, this.getTagsForStencil(gnmei, 'magnetic core', dtmei).join(' ')),
209			this.createVertexTemplateEntry(mei + 'transformer_1;',
210					64, 60, '', 'Transformer (Iron Core)', null, null, this.getTagsForStencil(gnmei, 'transformer_1', dtmei).join(' ')),
211			this.createVertexTemplateEntry(mei + 'transformer_2;',
212					64, 60, '', 'Transformer (Iron Core)', null, null, this.getTagsForStencil(gnmei, 'transformer_2', dtmei).join(' ')),
213			this.createVertexTemplateEntry(mei + 'half_inductor;',
214					32, 23, '', 'Half Inductor', null, null, this.getTagsForStencil(gnmei, 'half inductor', dtmei).join(' ')),
215			this.createVertexTemplateEntry(mei + 'transformer;direction=north;',
216					64, 64, '', 'Transformer', null, null, this.getTagsForStencil(gnmei, 'transformer', dtmei).join(' ')),
217			this.createVertexTemplateEntry(mei + 'inductor;',
218					100, 42, '', 'Inductor', null, null, this.getTagsForStencil(gnmei, 'inductor', dtmei).join(' ')),
219			this.createVertexTemplateEntry(mei + 'choke;',
220					100, 200, '', 'Choke', null, null, this.getTagsForStencil(gnmei, 'choke', dtmei).join(' ')),
221			this.createVertexTemplateEntry('verticalLabelPosition=top;shadow=0;dashed=0;align=center;fillColor=#000000;html=1;verticalAlign=bottom;strokeWidth=1;shape=mxgraph.electrical.inductors.variometer;',
222					150, 88, '', 'Variometer', null, null, this.getTagsForStencil(gnmei, 'variometer', dtmei).join(' ')),
223			this.createVertexTemplateEntry(mei + 'coaxial_choke;',
224					300, 50, '', 'Coaxial Choke', null, null, this.getTagsForStencil(gnmei, 'coaxial choke', dtmei).join(' ')),
225			this.createVertexTemplateEntry(mei + 'transductor;',
226					200, 100, '', 'Transductor', null, null, this.getTagsForStencil(gnmei, 'transductor', dtmei).join(' ')),
227			this.createVertexTemplateEntry(mei + 'saturating_transformer;',
228					200, 150, '', 'Saturating Transformer', null, null, this.getTagsForStencil(gnmei, 'saturating_transformer', dtmei).join(' ')),
229			this.createVertexTemplateEntry(mei + 'potential_transformer_2;',
230					92, 40, '', 'Potential Transformer', null, null, this.getTagsForStencil(gnmei, 'potential transformer', dtmei).join(' ')),
231			this.createVertexTemplateEntry(mei + 'pot_trans_3_windings;',
232					67, 96, '', 'Pot. Trans. 3 Windings', null, null, this.getTagsForStencil(gnmei, 'potential transformer 3 three windings', dtmei).join(' ')),
233			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.signal_sources.current_source;',
234					40, 60, '', 'Transformer', null, null, this.getTagsForStencil(gnmei, '', dtmei).join(' ')),
235			this.createVertexTemplateEntry(mei + 'adjustable_transformer;',
236					46, 60, '', 'Adjustable Transformer', null, null, this.getTagsForStencil(gnmei, 'adjustable_transformer', dtmei).join(' ')),
237			this.createVertexTemplateEntry(mei + '1_phase_induction_volt_reg;',
238					100, 100, '', '1-Phase Induction Voltage Regulator', null, null, this.getTagsForStencil(gnmei, '1 phase induction voltage regulator monophase', dtmei).join(' ')),
239			this.createVertexTemplateEntry(mei + 'triplex_induction_volt_reg;',
240					100, 100, '', 'Triplex Induction Voltage Regulator', null, null, this.getTagsForStencil(gnmei, 'triplex induction voltage regulator', dtmei).join(' ')),
241			this.createVertexTemplateEntry(mei + 'induction_voltage_regulator;',
242					160, 210, '', 'Induction Voltage Regulator', null, null, this.getTagsForStencil(gnmei, 'induction voltage regulator', dtmei).join(' ')),
243			this.createVertexTemplateEntry(mei + 'current_transformer_1;',
244					12, 75, '', 'Current Transformer', null, null, this.getTagsForStencil(gnmei, 'current transformer', dtmei).join(' ')),
245			this.createVertexTemplateEntry(mei + 'current_transformer_2;',
246					125, 175, '', 'Current Transformer', null, null, this.getTagsForStencil(gnmei, 'current transformer', dtmei).join(' ')),
247			this.createVertexTemplateEntry(mei + 'current_transformer_3;',
248					75, 10, '', 'Current Transformer', null, null, this.getTagsForStencil(gnmei, 'current transformer', dtmei).join(' ')),
249			this.createVertexTemplateEntry(mei + 'potential_transformer;',
250					100, 50, '', 'Potential Transformer', null, null, this.getTagsForStencil(gnmei, 'potential transformer', dtmei).join(' ')),
251			this.createVertexTemplateEntry(mei + 'outdoor_metering_device;',
252					100, 100, '', 'Outdoor Metering Device', null, null, this.getTagsForStencil(gnmei, 'outdoor metering device', dtmei).join(' ')),
253			this.createVertexTemplateEntry(mei + 'linear_coupler;',
254					80, 20, '', 'Linear Coupler', null, null, this.getTagsForStencil(gnmei, 'linear coupler', dtmei).join(' '))
255		]);
256
257		this.setCurrentSearchEntryLibrary('electrical', 'electrical\SwitchesRelays');
258
259		this.addPaletteFunctions('electrical\SwitchesRelays', 'Electrical / Switches and Relays', false,
260		[
261			this.createVertexTemplateEntry(meem + '2-way_switch;',
262					75, 26, '', 'SPDT', null, null, this.getTagsForStencil(gnmeem, '2-way switch', dtmeem).join(' ')),
263			this.createVertexTemplateEntry(meem + 'push_switch_nc;',
264					75, 10, '', 'Pushbutton NC', null, null, this.getTagsForStencil(gnmeem, 'push switch nc', dtmeem).join(' ')),
265			this.createVertexTemplateEntry(meem + 'push_switch_no;',
266					75, 19, '', 'Pushbutton NO', null, null, this.getTagsForStencil(gnmeem, 'push switch no', dtmeem).join(' ')),
267			this.createVertexTemplateEntry(meem + 'simple_switch;',
268					75, 19, '', 'SPST', null, null, this.getTagsForStencil(gnmeem, 'simple switch', dtmeem).join(' ')),
269			this.createVertexTemplateEntry(meem + 'switch_disconnector;',
270					75, 19, '', 'Switch Disconnector', null, null, this.getTagsForStencil(gnmeem, 'switch disconnector', dtmeem).join(' ')),
271			this.createVertexTemplateEntry(meem + 'fuse;',
272					75, 16, '', 'Fuse', null, null, this.getTagsForStencil(gnmeem, 'fuse', dtmeem).join(' ')),
273			this.createVertexTemplateEntry(meem + 'liquid_level_actuated;',
274					75, 28, '', 'Liquid Level Actuated', null, null, this.getTagsForStencil(gnmeem, 'liquid level actuated', dtmeem).join(' ')),
275			this.createVertexTemplateEntry(meem + 'liquid_level_actuated_2;',
276					75, 32, '', 'Liquid Level Actuated', null, null, this.getTagsForStencil(gnmeem, 'liquid level actuated', dtmeem).join(' ')),
277			this.createVertexTemplateEntry(meem + 'gas_flow_actuated;',
278					75, 32, '', 'Gas Flow Actuated', null, null, this.getTagsForStencil(gnmeem, 'gas flow actuated', dtmeem).join(' ')),
279			this.createVertexTemplateEntry(meem + 'flow_actuated;',
280					75, 31, '', 'Flow Actuated', null, null, this.getTagsForStencil(gnmeem, 'flow actuated', dtmeem).join(' ')),
281			this.createVertexTemplateEntry(meem + 'pressure_actuated;',
282					75, 31, '', 'Pressure Actuated', null, null, this.getTagsForStencil(gnmeem, 'pressure actuated', dtmeem).join(' ')),
283			this.createVertexTemplateEntry(meem + 'temperature_actuated;',
284					75, 31, '', 'Temperature Actuated', null, null, this.getTagsForStencil(gnmeem, 'temperature actuated', dtmeem).join(' ')),
285			this.createVertexTemplateEntry(meem + 'safety_interlock;',
286					75, 37, '', 'Safety Interlock', null, null, this.getTagsForStencil(gnmeem, 'safety interlock', dtmeem).join(' ')),
287			this.createVertexTemplateEntry(meem + 'temperature_switch;',
288					75, 18, '', 'Temperature Switch', null, null, this.getTagsForStencil(gnmeem, 'temperature switch', dtmeem).join(' ')),
289			this.createVertexTemplateEntry('verticalLabelPosition=top;shadow=0;dashed=0;align=center;html=1;verticalAlign=bottom;strokeWidth=1;shape=mxgraph.electrical.electro-mechanical.thermostat;fontSize=10;',
290					75, 7, 'tº', 'Thermostat', null, null, this.getTagsForStencil(gnmeem, 'thermostat', dtmeem).join(' ')),
291			this.createVertexTemplateEntry(meem + 'limit_switch;',
292					75, 16, '', 'Limit Switch', null, null, this.getTagsForStencil(gnmeem, 'limit switch', dtmeem).join(' ')),
293			this.createVertexTemplateEntry(meem + 'circuit_breaker;',
294					75, 20, '', 'Circuit Breaker', null, null, this.getTagsForStencil(gnmeem, 'circuit breaker', dtmeem).join(' ')),
295			this.createVertexTemplateEntry(meem + 'selector_switch_3_position;',
296					75, 46, '', 'Selector Switch (3 positions)', null, null, this.getTagsForStencil(gnmeem, 'selector_switch', dtmeem).join(' ')),
297			this.createVertexTemplateEntry(meem + 'selector_switch;',
298					75, 66, '', 'Selector Switch (4 positions)', null, null, this.getTagsForStencil(gnmeem, 'selector_switch', dtmeem).join(' ')),
299			this.createVertexTemplateEntry(meem + 'selector_switch_6_position;',
300					75, 106, '', 'Selector Switch (6 positions)', null, null, this.getTagsForStencil(gnmeem, 'selector_switch', dtmeem).join(' ')),
301			this.createVertexTemplateEntry(meem + 'shorting_selector;',
302					60, 66, '', 'Shorting Selector', null, null, this.getTagsForStencil(gnmeem, 'shorting selector', dtmeem).join(' ')),
303			this.createVertexTemplateEntry(meem + 'proximity_limit_switch;',
304					75, 55, '', 'Proximity Limit Switch', null, null, this.getTagsForStencil(gnmeem, 'proximity limit switch', dtmeem).join(' ')),
305			this.createVertexTemplateEntry(meem + 'inertia_switch;',
306					75, 19, '', 'Inertia Switch', null, null, this.getTagsForStencil(gnmeem, 'inertia switch', dtmeem).join(' ')),
307			this.createVertexTemplateEntry(meem + 'pushbutton_break;',
308					75, 54, '', 'Pushbutton Break', null, null, this.getTagsForStencil(gnmeem, 'pushbutton break', dtmeem).join(' ')),
309			this.createVertexTemplateEntry(meem + 'manual_switch;',
310					75, 18, '', 'Manual Switch', null, null, this.getTagsForStencil(gnmeem, 'manual switch', dtmeem).join(' ')),
311			this.createVertexTemplateEntry(meem + 'make_contact;',
312					75, 16, '', 'Make Contact', null, null, this.getTagsForStencil(gnmeem, 'make contact', dtmeem).join(' ')),
313			this.createVertexTemplateEntry(meem + 'break_contact;',
314					75, 10, '', 'Break Contact', null, null, this.getTagsForStencil(gnmeem, 'break contact', dtmeem).join(' ')),
315			this.createVertexTemplateEntry(meem + 'two_way_contact;',
316					75, 30, '', 'Two Way Contact', null, null, this.getTagsForStencil(gnmeem, 'two way contact', dtmeem).join(' ')),
317			this.createVertexTemplateEntry(meem + 'passing_make_contact;',
318					75, 23, '', 'Passing Make-Contact', null, null, this.getTagsForStencil(gnmeem, 'passing make contact', dtmeem).join(' ')),
319			this.createVertexTemplateEntry(meem + 'stay_put;',
320					75, 7, '', 'Stay Put', null, null, this.getTagsForStencil(gnmeem, 'stay put', dtmeem).join(' ')),
321			this.createVertexTemplateEntry(meem + 'dpst;',
322					75, 26, '', 'DPST', null, null, this.getTagsForStencil(gnmeem, 'dpst', dtmeem).join(' ')),
323			this.createVertexTemplateEntry(meem + 'spring_return;',
324					75, 10, '', 'Spring Return', null, null, this.getTagsForStencil(gnmeem, 'spring return', dtmeem).join(' ')),
325			this.createVertexTemplateEntry(meem + 'spring_return_2;',
326					75, 19, '', 'Spring Return', null, null, this.getTagsForStencil(gnmeem, 'spring return', dtmeem).join(' ')),
327			this.createVertexTemplateEntry(meem + 'limit_switch_no;',
328					75, 24, '', 'Limit Switch NO', null, null, this.getTagsForStencil(gnmeem, 'limit switch no normally open', dtmeem).join(' ')),
329			this.createVertexTemplateEntry(meem + 'limit_switch_nc;',
330					75, 13, '', 'Limit Switch NC', null, null, this.getTagsForStencil(gnmeem, 'limit switch nc normally closed', dtmeem).join(' ')),
331			this.createVertexTemplateEntry(meem + 'dpdt2;',
332					58, 62, '', 'DPDT', null, null, this.getTagsForStencil(gnmeem, 'dpdt', dtmeem).join(' ')),
333			this.createVertexTemplateEntry(meem + '2_position_switch;',
334					75, 70, '', '2-Position Switch', null, null, this.getTagsForStencil(gnmeem, '2 position switch', dtmeem).join(' ')),
335			this.createVertexTemplateEntry(meem + '3_position_switch;',
336					60, 60, '', '3-Position Switch', null, null, this.getTagsForStencil(gnmeem, '3 position switch', dtmeem).join(' ')),
337			this.createVertexTemplateEntry(meem + '4_position_switch;',
338					75, 70, '', '4-Position Switch', null, null, this.getTagsForStencil(gnmeem, '4 position switch', dtmeem).join(' ')),
339			this.createVertexTemplateEntry(meem + 'pushbutton_make;',
340					75, 53, '', 'Pushbutton Make', null, null, this.getTagsForStencil(gnmeem, 'pushbutton make', dtmeem).join(' ')),
341			this.createVertexTemplateEntry(meem + 'pushbutton_2_circuit;',
342					75, 73, '', 'Pushbutton 2-Circuit', null, null, this.getTagsForStencil(gnmeem, 'pushbutton 2 circuit', dtmeem).join(' ')),
343			this.createVertexTemplateEntry(meem + 'time_delay_make;',
344					75, 31, '', 'Time Delay Make', null, null, this.getTagsForStencil(gnmeem, 'time delay make', dtmeem).join(' ')),
345			this.createVertexTemplateEntry(meem + 'time_delay_break;',
346					75, 32, '', 'Time Delay Break', null, null, this.getTagsForStencil(gnmeem, 'time delay break', dtmeem).join(' ')),
347			this.createVertexTemplateEntry(meem + 'time_delay_make_2;',
348					75, 36, '', 'Time Delay Make', null, null, this.getTagsForStencil(gnmeem, 'time delay make', dtmeem).join(' ')),
349			this.createVertexTemplateEntry(meem + 'time_delay_break_2;',
350					75, 30, '', 'Time Delay Break', null, null, this.getTagsForStencil(gnmeem, 'time delay break', dtmeem).join(' ')),
351			this.createVertexTemplateEntry(meem + 'isolator;',
352					75, 20, '', 'Isolator', null, null, this.getTagsForStencil(gnmeem, 'isolator', dtmeem).join(' ')),
353			this.createVertexTemplateEntry(meem + 'changeover_contact;',
354					75, 20, '', 'Changeover Contact', null, null, this.getTagsForStencil(gnmeem, 'changeover contact', dtmeem).join(' ')),
355			this.createVertexTemplateEntry(meem + 'reed_switch;',
356					75, 20, '', 'Reed Switch', null, null, this.getTagsForStencil(gnmeem, 'reed switch', dtmeem).join(' ')),
357			this.createVertexTemplateEntry(meem + 'relay_coil;',
358					70, 35, '', 'Relay Coil', null, null, this.getTagsForStencil(gnmeem, 'relay coil', dtmeem).join(' ')),
359			this.createVertexTemplateEntry(meem + 'relay;',
360					100, 50, '', 'Relay', null, null, this.getTagsForStencil(gnmeem, 'relay', dtmeem).join(' ')),
361			this.createVertexTemplateEntry(meem + 'relay_contacts;',
362					30, 24, '', 'Relay Contacts', null, null, this.getTagsForStencil(gnmeem, 'relay contacts', dtmeem).join(' ')),
363			this.createVertexTemplateEntry(meem + 'resonator;',
364					100, 50, '', 'Resonator', null, null, this.getTagsForStencil(gnmeem, 'resonator', dtmeem).join(' ')),
365			this.createVertexTemplateEntry(meem + 'pilot_light;',
366					100, 100, '', 'Pilot Light', null, null, this.getTagsForStencil(gnmeem, 'pilot light', dtmeem).join(' ')),
367			this.createVertexTemplateEntry(meem + 'relay_coil_2;',
368					100, 70, '', 'Relay Coil', null, null, this.getTagsForStencil(gnmeem, 'relay coil', dtmeem).join(' ')),
369			this.createVertexTemplateEntry(meem + 'mercury_switch;',
370					80, 80, '', 'Mercury Switch', null, null, this.getTagsForStencil(gnmeem, 'mercury switch', dtmeem).join(' ')),
371			this.createVertexTemplateEntry(meem + 'mercury_switch_2;',
372					50, 90, '', 'Mercury Switch', null, null, this.getTagsForStencil(gnmeem, 'mercury switch', dtmeem).join(' '))
373		]);
374
375		this.setCurrentSearchEntryLibrary('electrical', 'electrical\Diodes');
376
377		this.addPaletteFunctions('electrical\Diodes', 'Electrical / Diodes', false,
378		[
379			this.createVertexTemplateEntry(med + 'diode;',
380					100, 60, '', 'PN Diode', null, null, this.getTagsForStencil(gnmed, 'diode', dtmed).join(' ')),
381			this.createVertexTemplateEntry(med + 'gunn_diode;',
382					100, 60, '', 'Gunn Diode', null, null, this.getTagsForStencil(gnmed, 'gunn_diode', dtmed).join(' ')),
383			this.createVertexTemplateEntry(med + 'schottky_diode;',
384					100, 60, '', 'Schottky Diode', null, null, this.getTagsForStencil(gnmed, 'schottky_diode', dtmed).join(' ')),
385			this.createVertexTemplateEntry(med + 'zener_diode_2;',
386					100, 60, '', 'Breakdown', null, null, this.getTagsForStencil(gnmed, 'zener_diode_2', dtmed).join(' ')),
387			this.createVertexTemplateEntry(med + 'tunnel_diode;',
388					100, 60, '', 'Tunnel Diode 1', null, null, this.getTagsForStencil(gnmed, 'tunnel_diode', dtmed).join(' ')),
389			this.createVertexTemplateEntry(med + 'tunnel_diode_2;',
390					100, 80, '', 'Tunnel Diode 2', null, null, this.getTagsForStencil(gnmed, 'tunnel_diode_2', dtmed).join(' ')),
391			this.createVertexTemplateEntry(med + 'field_effect_diode;',
392					100, 60, '', 'Field Effect Diode', null, null, this.getTagsForStencil(gnmed, 'field_effect_diode', dtmed).join(' ')),
393			this.createVertexTemplateEntry(med + 'varactor_-_varicap;',
394					100, 60, '', 'Varactor - Varicap', null, null, this.getTagsForStencil(gnmed, 'varactor_-_varicap', dtmed).join(' ')),
395			this.createVertexTemplateEntry(med + 'zener_diode_1;',
396					100, 60, '', 'Zener Diode 1', null, null, this.getTagsForStencil(gnmed, 'zener_diode_1', dtmed).join(' ')),
397			this.createVertexTemplateEntry(med + 'zener_diode_3;',
398					100, 60, '', 'Zener Diode 2', null, null, this.getTagsForStencil(gnmed, 'zener_diode_3', dtmed).join(' ')),
399			this.createVertexTemplateEntry(med + 'four_layer_diode;',
400					100, 80, '', 'Four Layer Diode', null, null, this.getTagsForStencil(gnmed, 'four_layer_diode', dtmed).join(' ')),
401			this.createVertexTemplateEntry(med + 'transorb_1;',
402					100, 60, '', 'Transorb 1', null, null, this.getTagsForStencil(gnmed, 'transorb_1', dtmed).join(' ')),
403			this.createVertexTemplateEntry(med + 'transorb_2;',
404					100, 60, '', 'Transorb 2', null, null, this.getTagsForStencil(gnmed, 'transorb_2', dtmed).join(' '))
405		]);
406
407		this.setCurrentSearchEntryLibrary('electrical', 'electrical\Sources');
408
409		this.addPaletteFunctions('electrical\Sources', 'Electrical / Sources', false,
410		[
411			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=ac;',
412					60, 60, '', 'Source', null, null, this.getTagsForStencil(gnmess, 'source', dtmess).join(' ')),
413			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=dc1;',
414					60, 60, '', 'Source', null, null, this.getTagsForStencil(gnmess, 'source', dtmess).join(' ')),
415			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=dc3;',
416					60, 60, '', 'Source', null, null, this.getTagsForStencil(gnmess, 'source', dtmess).join(' ')),
417			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=none;elSourceType=dependent;',
418					60, 60, '', 'Source', null, null, this.getTagsForStencil(gnmess, 'source', dtmess).join(' ')),
419			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=dc2;elSourceType=dependent;',
420					60, 60, '', 'Source', null, null, this.getTagsForStencil(gnmess, 'source', dtmess).join(' ')),
421			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSourceType=dependent;elSignalType=dc3;',
422					60, 60, '', 'Source', null, null, this.getTagsForStencil(gnmess, 'source', dtmess).join(' ')),
423			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=noise;',
424					60, 60, '', 'Source', null, null, this.getTagsForStencil(gnmess, 'source', dtmess).join(' ')),
425			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=ideal;',
426					60, 60, '', 'Source', null, null, this.getTagsForStencil(gnmess, 'source', dtmess).join(' ')),
427			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=expSquib;',
428					60, 60, '', 'Source', null, null, this.getTagsForStencil(gnmess, 'source', dtmess).join(' ')),
429			this.createVertexTemplateEntry(mess + 'current_source;',
430					40, 60, '', 'Current', null, null, this.getTagsForStencil(gnmess, 'current_source', dtmess).join(' ')),
431			this.createVertexTemplateEntry(mess + 'dc_source_1;',
432					70, 75, '', 'DC', null, null, this.getTagsForStencil(gnmess, 'dc_source_1', dtmess).join(' ')),
433			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#000000;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.monocell_battery;',
434					100, 60, '', 'Accumulator / Monocell Battery', null, null, this.getTagsForStencil(gnmess, 'accumulator monocell battery single cell', dtmem).join(' ')),
435			this.createVertexTemplateEntry(mem + 'batteryStack;',
436					100, 60, '', 'Battery Stack', null, null, this.getTagsForStencil(gnmess, 'battery stack', dtmess).join(' ')),
437			this.createVertexTemplateEntry('pointerEvents=1;verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=#000000;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.multicell_battery_tapped;',
438					100, 70, '', 'Multicell Battery Tapped', null, null, this.getTagsForStencil(gnmess, 'accumulator multicell battery tapped multi multiple cell', dtmem).join(' ')),
439			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=square;',
440					60, 60, '', 'Source, Square', null, null, this.getTagsForStencil(gnmess, 'source square', dtmess).join(' ')),
441			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=triangular;',
442					60, 60, '', 'Source, Triangular', null, null, this.getTagsForStencil(gnmess, 'source triangular', dtmess).join(' ')),
443			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=sawtooth;',
444					60, 60, '', 'Source, Sawtooth', null, null, this.getTagsForStencil(gnmess, 'source sawtooth', dtmess).join(' ')),
445			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=pulse;',
446					60, 60, '', 'Source, Pulse', null, null, this.getTagsForStencil(gnmess, 'source pulse', dtmess).join(' ')),
447			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=invPulse;',
448					60, 60, '', 'Source, Inverse Pulse', null, null, this.getTagsForStencil(gnmess, 'source inverse pulse', dtmess).join(' ')),
449			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=chopSquare;',
450					60, 60, '', 'Source, Chopped Square', null, null, this.getTagsForStencil(gnmess, 'source chopped square', dtmess).join(' ')),
451			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=stepOn;',
452					60, 60, '', 'Source, Step On', null, null, this.getTagsForStencil(gnmess, 'source step on', dtmess).join(' ')),
453			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=stepOff;',
454					60, 60, '', 'Source, Step Off', null, null, this.getTagsForStencil(gnmess, 'source step off', dtmess).join(' ')),
455			this.createVertexTemplateEntry(mess + 'source;aspect=fixed;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0]];elSignalType=dc2;',
456					60, 60, '', 'Source, DC', null, null, this.getTagsForStencil(gnmess, 'source dc vertical', dtmess).join(' '))
457		]);
458
459		this.setCurrentSearchEntryLibrary('electrical', 'electrical\Transistors');
460
461		this.addPaletteFunctions('electrical\Transistors', 'Electrical / Transistors', false,
462		[
463			this.createVertexTemplateEntry(met + 'npn_transistor_1;',
464					95, 100, '', 'BJT (NPN)', null, null, this.getTagsForStencil(gnmet, 'npn_transistor_1', dtmet).join(' ')),
465			this.createVertexTemplateEntry(met + 'npn_transistor_5;',
466					64, 100, '', 'BJT (NPN)', null, null, this.getTagsForStencil(gnmet, 'npn_transistor_5', dtmet).join(' ')),
467			this.createVertexTemplateEntry(met + 'nigbt;',
468					64, 100, '', 'NIGBT', null, null, this.getTagsForStencil(gnmet, 'nigbt', dtmet).join(' ')),
469			this.createVertexTemplateEntry(met + 'pnp_transistor_1;',
470					95, 100, '', 'BJT (PNP)', null, null, this.getTagsForStencil(gnmet, 'pnp_transistor_1', dtmet).join(' ')),
471			this.createVertexTemplateEntry(met + 'pnp_transistor_5;',
472					64, 100, '', 'BJT (PNP)', null, null, this.getTagsForStencil(gnmet, 'pnp_transistor_5', dtmet).join(' ')),
473			this.createVertexTemplateEntry(met + 'pigbt;',
474					64, 100, '', 'PIGBT', null, null, this.getTagsForStencil(gnmet, 'pigbt', dtmet).join(' ')),
475			this.createVertexTemplateEntry(met + 'n-channel_jfet_1;',
476					95, 100, '', 'N Channel JFET', null, null, this.getTagsForStencil(gnmet, 'n-channel_jfet_1', dtmet).join(' ')),
477			this.createVertexTemplateEntry(met + 'p-channel_jfet_1;',
478					95, 100, '', 'P Channel JFET', null, null, this.getTagsForStencil(gnmet, 'p-channel_jfet_1', dtmet).join(' ')),
479			this.createVertexTemplateEntry(mef1 + 'n-channel_mosfet_1;',
480					95, 100, '', 'MOSFET (N)', null, null, this.getTagsForStencil(gnmet, 'n-channel_mosfet_1', dtmet).join(' ')),
481			this.createVertexTemplateEntry(mef1 + 'p-channel_mosfet_1;',
482					95, 100, '', 'MOSFET (P)', null, null, this.getTagsForStencil(gnmet, 'p-channel_mosfet_1', dtmet).join(' ')),
483			this.createVertexTemplateEntry(mef1 + 'mosfet_ic_n;',
484					95, 100, '', 'NMOS', null, null, this.getTagsForStencil(gnmet, 'mosfet_ic_n', dtmet).join(' ')),
485			this.createVertexTemplateEntry(mef1 + 'mosfet_ic_p;',
486					95, 100, '', 'PMOS', null, null, this.getTagsForStencil(gnmet, 'mosfet_ic_p', dtmet).join(' ')),
487			this.createVertexTemplateEntry(mef1 + 'mosfet_n_no_bulk;',
488					95, 100, '', 'MOSFET No Bulk (N)', null, null, this.getTagsForStencil(gnmet, 'mosfet_n_no_bulk', dtmet).join(' ')),
489			this.createVertexTemplateEntry(mef1 + 'mosfet_p_no_bulk;',
490					95, 100, '', 'MOSFET No Bulk (P)', null, null, this.getTagsForStencil(gnmet, 'mosfet_p_no_bulk', dtmet).join(' ')),
491			this.createVertexTemplateEntry(mef1 + 'dual_gate_mosfet_n;',
492					95, 100, '', 'Dual Gate MOSFET (N)', null, null, this.getTagsForStencil(gnmet, 'dual_gate_mosfet_n', dtmet).join(' ')),
493			this.createVertexTemplateEntry(mef1 + 'dual_gate_mosfet_p;',
494					95, 100, '', 'Dual Gate MOSFET (P)', null, null, this.getTagsForStencil(gnmet, 'dual_gate_mosfet_p', dtmet).join(' ')),
495			this.createVertexTemplateEntry(met + 'nmos;pointerEvents=1;',
496					60, 100, '', 'NMOS', null, null, this.getTagsForStencil(gnmet, 'nmos', dtmet).join(' ')),
497			this.createVertexTemplateEntry(met + 'nmos_bulk;pointerEvents=1;',
498					60, 100, '', 'NMOS with Bulk', null, null, this.getTagsForStencil(gnmet, 'nmos bulk', dtmet).join(' ')),
499			this.createVertexTemplateEntry(met + 'pmos;pointerEvents=1;',
500					60, 100, '', 'PMOS', null, null, this.getTagsForStencil(gnmet, 'pmos', dtmet).join(' ')),
501			this.createVertexTemplateEntry(met + 'pmos_bulk;pointerEvents=1;',
502					60, 100, '', 'PMOS with Bulk', null, null, this.getTagsForStencil(gnmet, 'pmos bulk', dtmet).join(' '))
503		]);
504
505		this.setCurrentSearchEntryLibrary('electrical', 'electrical\Instruments');
506
507		this.addPaletteFunctions('electrical\Instruments', 'Electrical / Instruments', false,
508		[
509			this.createVertexTemplateEntry('verticalLabelPosition=middle;shadow=0;dashed=0;align=center;html=1;verticalAlign=middle;strokeWidth=1;shape=ellipse;aspect=fixed;fontSize=50;',
510					90, 90, 'A', 'Ammeter', null, null, this.getTagsForStencil(gnmein, 'ampermeter ammeter', dtmein).join(' ')),
511			this.createVertexTemplateEntry(mein + 'galvanometer;',
512					90, 90, '', 'Galvanometer', null, null, this.getTagsForStencil(gnmein, 'galvanometer', dtmein).join(' ')),
513			this.createVertexTemplateEntry(mein + 'oscilloscope;',
514					90, 90, '', 'Oscilloscope', null, null, this.getTagsForStencil(gnmein, 'oscilloscope', dtmein).join(' ')),
515			this.createVertexTemplateEntry(mein + 'signal_generator;',
516					90, 90, '', 'Signal Generator', null, null, this.getTagsForStencil(gnmein, 'signal_generator', dtmein).join(' ')),
517			this.createVertexTemplateEntry('verticalLabelPosition=middle;shadow=0;dashed=0;align=center;html=1;verticalAlign=middle;strokeWidth=1;shape=ellipse;aspect=fixed;fontSize=50;',
518					90, 90, 'V', 'Voltmeter', null, null, this.getTagsForStencil(gnmein, 'ampermeter ammeter', dtmein).join(' '))
519		]);
520
521		this.setCurrentSearchEntryLibrary('electrical', 'electrical\Misc');
522
523		this.addPaletteFunctions('electrical\Misc', 'Electrical / Misc', false,
524		[
525			this.createVertexTemplateEntry(mer + 'aerial_-_antenna_1;',
526					80, 100, '', 'Antenna', null, null, this.getTagsForStencil(gnmer, 'aerial_-_antenna_1', dtmer).join(' ')),
527			this.createVertexTemplateEntry(mer + 'aerial_-_antenna_2;',
528					79, 100, '', 'Antenna', null, null, this.getTagsForStencil(gnmer, 'aerial_-_antenna_2', dtmer).join(' ')),
529			this.createVertexTemplateEntry(mer + 'loop_antenna;',
530					64.8, 69.78, '', 'Loop Antenna', null, null, this.getTagsForStencil(gnmer, 'loop_antenna', dtmer).join(' ')),
531			this.createVertexTemplateEntry(mem + 'loop_antenna',
532					100, 100, '', 'Loop Antenna', null, null, this.getTagsForStencil(gnmess, 'loop antenna', dtmem).join(' ')),
533			this.createVertexTemplateEntry('verticalLabelPosition=middle;shadow=0;dashed=0;align=center;html=1;verticalAlign=middle;strokeWidth=1;shape=ellipse;aspect=fixed;fontSize=35;',
534					60, 60, 'M', 'Electrical Motor', null, null, this.getTagsForStencil(gnmeem, 'motor_1', dtmeem).join(' ')),
535			this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE + '=mxgraph.electrical.electro-mechanical.motor_2;html=1;shadow=0;dashed=0;align=center;fontSize=30;strokeWidth=1;',
536					100, 60, '', 'Motor Armature', null, null, this.getTagsForStencil(gnmeem, 'motor_2', dtmeem).join(' ')),
537			this.createVertexTemplateEntry(mem + 'co-ax;',
538					40, 60, '', 'Co-Ax', null, null, this.getTagsForStencil(gnmem, 'co-ax', dtmem).join(' ')),
539			this.createVertexTemplateEntry(mem + 'crystal_1;',
540					100, 40, '', 'Crystal', null, null, this.getTagsForStencil(gnmem, 'crystal_1', dtmem).join(' ')),
541			this.createVertexTemplateEntry(mem + 'fuse_1;',
542					100, 20, '', 'Fuse (IEC)', null, null, this.getTagsForStencil(gnmem, 'fuse_1', dtmem).join(' ')),
543			this.createVertexTemplateEntry(mem + 'fuse_2;',
544					100, 20, '', 'Fuse (IEEE)', null, null, this.getTagsForStencil(gnmem, 'fuse_2', dtmem).join(' ')),
545			this.createVertexTemplateEntry(mem + 'fuse_3;',
546					100, 12, '', 'Fuse (obsolete)', null, null, this.getTagsForStencil(gnmem, 'fuse_3', dtmem).join(' ')),
547			this.createVertexTemplateEntry(mem + 'fuse_4;',
548					100, 32, '', 'Fuse (IEEE)', null, null, this.getTagsForStencil(gnmem, 'fuse_4', dtmem).join(' ')),
549			this.createVertexTemplateEntry(mem + 'light_bulb;',
550					60, 50, '', 'Light Bulb', null, null, this.getTagsForStencil(gnmem, 'light_bulb', dtmem).join(' ')),
551			this.createVertexTemplateEntry(mem + 'illuminating_bulb;',
552					60, 50, '', 'Illuminating Bulb', null, null, this.getTagsForStencil(gnmem, 'illuminating_bulb', dtmem).join(' ')),
553			this.createVertexTemplateEntry(mem + 'light_bulb;',
554					60, 50, '', 'Pilot Light', null, null, this.getTagsForStencil(gnmem, 'light_bulb', dtmem).join(' ')),
555			this.createVertexTemplateEntry(mem + 'neon_lamp_2;',
556					60, 50, '', 'Neon Lamp', null, null, this.getTagsForStencil(gnmem, 'neon_lamp_2', dtmem).join(' ')),
557			this.createVertexTemplateEntry(mem + 'flourescent_lamp',
558					80, 30, '', 'Flourescent Lamp', null, null, this.getTagsForStencil(gnmess, 'flourescent lamp', dtmem).join(' ')),
559			this.createVertexTemplateEntry(meoe + 'lamp',
560					50, 100, '', 'Lamp', null, null, this.getTagsForStencil(gnmess, 'lamp', dtmeoe).join(' ')),
561			this.createVertexTemplateEntry(mem + 'thermocouple;',
562					80, 81, '', 'Thermocouple', null, null, this.getTagsForStencil(gnmem, 'thermocouple', dtmem).join(' ')),
563			this.createVertexTemplateEntry(mea + 'amplifier;',
564					90, 100, '', 'Amplifier', null, null, this.getTagsForStencil(gnmea, 'amplifier', dtmea).join(' ')),
565			this.createVertexTemplateEntry(mea + 'controlled_amplifier;',
566					100, 90, '', 'Controlled Amplifier', null, null, this.getTagsForStencil(gnmea, 'controlled_amplifier', dtmea).join(' ')),
567			this.createVertexTemplateEntry(mea + 'dac;',
568					70, 46, '', 'DAC', null, null, this.getTagsForStencil(gnmea, 'dac', dtmea).join(' ')),
569			this.createVertexTemplateEntry(
570					'shadow=0;dashed=0;align=center;html=1;strokeWidth=1;shape=mxgraph.electrical.abstract.mux2;',
571					80, 120, 'Mux', 'Mux', null, null, this.getTagsForStencil(gnmea, 'mux', dtmea).join(' ')),
572			this.createVertexTemplateEntry(
573					'shadow=0;dashed=0;align=center;html=1;strokeWidth=1;shape=mxgraph.electrical.abstract.mux2;operation=demux;',
574					80, 120, 'Demux', 'Demux', null, null, this.getTagsForStencil(gnmea, 'mux', dtmea).join(' ')),
575			this.createVertexTemplateEntry(mea + 'operational_amp_1;',
576					98, 90, '', 'Operational Amp', null, null, this.getTagsForStencil(gnmea, 'operational_amp_1', dtmea).join(' ')),
577			this.createVertexTemplateEntry(mea + 'operational_amp_2;',
578					98, 90, '', 'Operational Amp', null, null, this.getTagsForStencil(gnmea, 'operational_amp_2', dtmea).join(' ')),
579			this.createVertexTemplateEntry(mea + 'ota_1;',
580					100, 90, '', 'OTA', null, null, this.getTagsForStencil(gnmea, 'ota_1', dtmea).join(' ')),
581			this.createVertexTemplateEntry(mea + 'ota_2;',
582					100, 90, '', 'OTA', null, null, this.getTagsForStencil(gnmea, 'ota_2', dtmea).join(' ')),
583			this.createVertexTemplateEntry(mea + 'ota_3;',
584					100, 90, '', 'OTA', null, null, this.getTagsForStencil(gnmea, 'ota_3', dtmea).join(' ')),
585			this.createVertexTemplateEntry(mea + 'quantizer;',
586					52, 46, '', 'Quantizer', null, null, this.getTagsForStencil(gnmea, 'quantizer', dtmea).join(' ')),
587			this.createVertexTemplateEntry(mea + 'delta;',
588					50, 50, '', 'Delta', null, null, this.getTagsForStencil(gnmea, 'delta', dtmea).join(' ')),
589			this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE + '=mxgraph.electrical.abstract.function;html=1;shadow=0;dashed=0;align=center;strokeWidth=1;fontSize=24',
590					50, 50, 'fn', 'Function', null, null, this.getTagsForStencil(gnmea, 'function', dtmea).join(' ')),
591			this.createVertexTemplateEntry(mea + 'integrator;',
592					50, 50, '', 'Integrator', null, null, this.getTagsForStencil(gnmea, 'integrator', dtmea).join(' ')),
593			this.createVertexTemplateEntry(mea + 'multiplier;',
594					50, 50, '', 'Multiplier', null, null, this.getTagsForStencil(gnmea, 'multiplier', dtmea).join(' ')),
595			this.createVertexTemplateEntry(mea + 'sum;',
596					50, 50, '', 'Sum', null, null, this.getTagsForStencil(gnmea, 'sum', dtmea).join(' ')),
597			this.createVertexTemplateEntry(mea + 'summation_point;',
598					50, 50, '', 'Summation Point', null, null, this.getTagsForStencil(gnmea, 'summation_point', dtmea).join(' ')),
599			this.createVertexTemplateEntry(mea + 'filter;',
600					52, 46, '', 'Filter', null, null, this.getTagsForStencil(gnmea, 'filter', dtmea).join(' ')),
601			this.createVertexTemplateEntry(s + '=mxgraph.electrical.logic_gates.bandpass_filter;',
602					52, 46, '', 'Bandpass Filter', null, null, this.getTagsForStencil('mxgraph.electrical.logic_gates', 'bandpass_filter', '').join(' ')),
603			this.createVertexTemplateEntry(s + '=mxgraph.electrical.logic_gates.highpass_filter;',
604					52, 46, '', 'Highpass Filter', null, null, this.getTagsForStencil('mxgraph.electrical.logic_gates', 'highpass_filter', '').join(' ')),
605			this.createVertexTemplateEntry(s + '=mxgraph.electrical.logic_gates.lowpass_filter;',
606					52, 46, '', 'Lowpass Filter', null, null, this.getTagsForStencil('mxgraph.electrical.logic_gates', 'lowpass_filter', '').join(' ')),
607			this.createVertexTemplateEntry(mxConstants.STYLE_SHAPE + '=mxgraph.electrical.abstract.thermistor_with_independent_integral_heater;html=1;shadow=0;dashed=0;strokeWidth=1;align=center;overflow=fill;fontSize=12;',
608					100, 94.25,
609					'<table cellpadding="0" cellspacing="0" style="width:100%;height:100%;">' +
610					'<tr height="45%">' +
611					'<td align="center">\\temp\\</td>' +
612					'</tr>' +
613					'<tr height="55%">' +
614					'<td></td>' +
615					'</tr>' +
616					'</table>',
617					'Thermistor With Independent Integral Heater', null, null, this.getTagsForStencil(gnmea, 'thermistor_with_independent_integral_heater', dtmea).join(' ')),
618			this.createVertexTemplateEntry(mea + 'voltage_regulator;',
619					70, 58, '', 'Voltage Regulator', null, null, this.getTagsForStencil(gnmea, 'voltage_regulator', dtmea).join(' ')),
620			this.createVertexTemplateEntry(mess + 'vss2;fontSize=24;flipV=1;',
621					60, 40,
622					'V<sub>ss</sub>', 'Vss', null, null, this.getTagsForStencil(gnmess, 'vss', dtmess).join(' ')),
623			this.createVertexTemplateEntry(mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=top;' + mxConstants.STYLE_VERTICAL_ALIGN + '=bottom;' + mxConstants.STYLE_SHAPE + '=mxgraph.electrical.signal_sources.vdd;shadow=0;dashed=0;align=center;strokeWidth=1;fontSize=24;html=1;flipV=1;',
624					60, 40,
625					'V<sub>dd</sub>', 'Vdd', null, null, this.getTagsForStencil(gnmess, 'vdd', dtmess).join(' ')),
626			this.createVertexTemplateEntry(mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=top;' + mxConstants.STYLE_VERTICAL_ALIGN + '=bottom;' + mxConstants.STYLE_SHAPE + '=mxgraph.electrical.signal_sources.current_flow;shadow=0;dashed=0;align=center;strokeWidth=1;fontSize=10;html=1;',
627					70, 10,
628					'5 mA',	'Current Flow', null, null, this.getTagsForStencil(gnmess, 'current_flow', dtmess).join(' ')),
629			this.createVertexTemplateEntry(mxConstants.STYLE_LABEL_POSITION + '=right;' + mxConstants.STYLE_ALIGN + '=left;' + mxConstants.STYLE_SHAPE + '=mxgraph.electrical.signal_sources.voltage;shadow=0;dashed=0;strokeWidth=1;fontSize=10;html=1;',
630					10, 70,
631					'1.2 V', 'Voltage', null, null, this.getTagsForStencil(gnmess, 'voltage', dtmess).join(' ')),
632			this.createVertexTemplateEntry(mess + 'equipotential;',
633					90, 90, '', 'Equipotential', null, null, this.getTagsForStencil(gnmess, 'equipotential', dtmess).join(' ')),
634			this.createVertexTemplateEntry(mess + 'protective_earth;',
635					25, 20, '', 'Equipotential', null, null, this.getTagsForStencil(gnmess, 'protective_earth', dtmess).join(' ')),
636			this.createVertexTemplateEntry(mess + 'signal_ground;',
637					45, 30, '', 'Ground', null, null, this.getTagsForStencil(gnmess, 'signal_ground', dtmess).join(' ')),
638			this.createVertexTemplateEntry(mem + 'chassis;',
639					65, 32, '', 'Chassis', null, null, this.getTagsForStencil(gnmess, 'chassis', dtmem).join(' ')),
640			this.createVertexTemplateEntry(mem + 'circuit_breaker;',
641					100, 13, '', 'Circuit Breaker', null, null, this.getTagsForStencil(gnmess, 'circuit breaker', dtmem).join(' ')),
642			this.createVertexTemplateEntry(mem + 'generic_component',
643					60, 60, '', 'Generic Component', null, null, this.getTagsForStencil(gnmess, 'generic component', dtmem).join(' ')),
644			this.createVertexTemplateEntry(mem + 'permanent_magnet',
645					20, 70, '', 'Permanent Magnet', null, null, this.getTagsForStencil(gnmess, 'permanent magnet', dtmem).join(' ')),
646			this.createVertexTemplateEntry(mem + 'thermal_element',
647					100, 32, '', 'Thermal Element', null, null, this.getTagsForStencil(gnmess, 'thermal element', dtmem).join(' ')),
648			this.createVertexTemplateEntry(mem + 'igniter_plug',
649					72, 39, '', 'Igniter Plug', null, null, this.getTagsForStencil(gnmess, 'igniter plug', dtmem).join(' ')),
650			this.createVertexTemplateEntry('shape=mxgraph.arrows2.arrow;verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;strokeWidth=1;dy=0;dx=10;notch=0;',
651					100, 30, '', 'Pickup Head', null, null, this.getTagsForStencil(gnmess, 'pickup head', dtmem).join(' ')),
652			this.createVertexTemplateEntry(mem + 'squib_ignitor',
653					100, 100, '', 'Squib Ignitor', null, null, this.getTagsForStencil(gnmess, 'squib ignitor', dtmem).join(' ')),
654			this.createVertexTemplateEntry(mem + 'transducer',
655					70, 60, '', 'Transducer', null, null, this.getTagsForStencil(gnmess, 'transducer', dtmem).join(' ')),
656			this.createVertexTemplateEntry(mem + 'transducer_2',
657					80, 100, '', 'Transducer', null, null, this.getTagsForStencil(gnmess, 'transducer', dtmem).join(' ')),
658			this.createVertexTemplateEntry(mem + 'thermopile',
659					80, 82, '', 'Thermopile', null, null, this.getTagsForStencil(gnmess, 'thermopile', dtmem).join(' ')),
660			this.createVertexTemplateEntry(mem + 'indicator',
661					60, 60, '', 'Indicator', null, null, this.getTagsForStencil(gnmess, 'indicator', dtmem).join(' ')),
662			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=strokeColor;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.surge_protector;',
663					70, 20, '', 'Surge Protector', null, null, this.getTagsForStencil(gnmess, 'surge protector', dtmem).join(' ')),
664			this.createVertexTemplateEntry(mem + 'surge_protector_2;',
665					70, 24, '', 'Surge Protector', null, null, this.getTagsForStencil(gnmess, 'surge protector', dtmem).join(' ')),
666			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;strokeWidth=1;shape=rect;',
667					130, 50, '', 'Material', null, null, this.getTagsForStencil(gnmess, 'material', dtmem).join(' ')),
668			this.createVertexTemplateEntry(mem + 'sensing_link_squib',
669					130, 40, '', 'Sensing Link Squib', null, null, this.getTagsForStencil(gnmess, 'sensing link squib', dtmem).join(' ')),
670			this.createVertexTemplateEntry(mem + 'delay_element',
671					100, 100, '', 'Delay Element', null, null, this.getTagsForStencil(gnmess, 'delay_element', dtmem).join(' ')),
672			this.createVertexTemplateEntry(mer + 'buzzer',
673					80, 50, '', 'Buzzer', null, null, this.getTagsForStencil(gnmess, 'buzzer', dtmer).join(' ')),
674			this.createVertexTemplateEntry(mem + 'adapter',
675					100, 40, '', 'Adapter', null, null, this.getTagsForStencil(gnmess, 'adapter', dtmer).join(' ')),
676			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;strokeWidth=1;shape=ellipse;perimeter=ellipsePerimeter;',
677					15, 15, '', 'Circuit Terminal', null, null, this.getTagsForStencil(gnmess, 'circuit terminal', dtmer).join(' ')),
678			this.createEdgeTemplateEntry('endArrow=open;html=1;strokeWidth=1;endFill=0;endSize=20;',
679					100, 0, '', 'M/F Contact', null, this.getTagsForStencil(gnmess, '', 'mf contact').join(' ')),
680			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=strokeColor;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.miscellaneous.mf_contact_2',
681					100, 10, '', 'M/F Contact 2', null, null, this.getTagsForStencil(gnmess, 'mf contact', dtmer).join(' ')),
682			this.createVertexTemplateEntry(mem + 'terminal_board',
683					75, 150, '', 'Terminal Board', null, null, this.getTagsForStencil(gnmess, 'terminal board', dtmer).join(' ')),
684			this.createVertexTemplateEntry(mem + 'cable_termination',
685					100, 50, '', 'Cable Termination', null, null, this.getTagsForStencil(gnmess, 'cable termination', dtmer).join(' ')),
686			this.createVertexTemplateEntry(mem + '2_conductor_jack',
687					100, 50, '', '2-Conductor Jack', null, null, this.getTagsForStencil(gnmess, '2 conductor jack two', dtmer).join(' ')),
688			this.createVertexTemplateEntry(mem + '3_conductor_jack',
689					100, 50, '', '3-Conductor Jack', null, null, this.getTagsForStencil(gnmess, '3 conductor jack three', dtmer).join(' ')),
690			this.createVertexTemplateEntry(mem + '2_conductor_plug',
691					53, 24, '', '2-Conductor Plug', null, null, this.getTagsForStencil(gnmess, '2 conductor plug two', dtmer).join(' ')),
692			this.createVertexTemplateEntry(mem + '3_conductor_plug',
693					53, 24, '', '3 Conductor Plug', null, null, this.getTagsForStencil(gnmess, '3 conductor plug', dtmer).join(' ')),
694			this.createVertexTemplateEntry(mem + 'normalled_jacks',
695					230, 65, '', 'Normalled Jacks', null, null, this.getTagsForStencil(gnmess, 'normalled jacks', dtmer).join(' ')),
696			this.createVertexTemplateEntry(mem + 'normalled_jack',
697					110, 65, '', 'Normalled Jack', null, null, this.getTagsForStencil(gnmess, 'normalled jack', dtmer).join(' ')),
698			this.createVertexTemplateEntry(mem + 'coaxial_outside_conductor',
699					300, 150, '', 'Coaxial Outside Conductor', null, null, this.getTagsForStencil(gnmess, 'coaxial outside conductor', dtmer).join(' ')),
700			this.createVertexTemplateEntry(mem + 'coaxial_center_conductor',
701					300, 150, '', 'Coaxial Center Conductor', null, null, this.getTagsForStencil(gnmess, 'coaxial center conductor', dtmer).join(' ')),
702			this.createVertexTemplateEntry(mem + 'large_d_connector',
703					375, 75, '', 'Large D Connector', null, null, this.getTagsForStencil(gnmess, 'large d connector', dtmer).join(' ')),
704			this.createVertexTemplateEntry(mem + 'small_d_connector',
705					150, 75, '', 'Small D Connector', null, null, this.getTagsForStencil(gnmess, 'small d connector', dtmer).join(' ')),
706			this.createVertexTemplateEntry(mem + 'c_header_connector',
707					200, 75, '', 'C Header Connector', null, null, this.getTagsForStencil(gnmess, 'c header connector', dtmer).join(' ')),
708			this.createVertexTemplateEntry(mem + 'ac_out',
709					200, 100, '', 'AC Out', null, null, this.getTagsForStencil(gnmess, 'ac out alternate current', dtmer).join(' ')),
710			this.createVertexTemplateEntry(mem + 'shielded_jack_plug',
711					50, 100, '', 'Shielded Jack/Plug', null, null, this.getTagsForStencil(gnmess, 'shielded jack plug', dtmer).join(' ')),
712			this.createVertexTemplateEntry(mem + 'coaxial_jack_plug',
713					50, 100, '', 'Coaxial Jack/Plug', null, null, this.getTagsForStencil(gnmess, 'coaxial jack/plug', dtmer).join(' ')),
714			this.createVertexTemplateEntry(mem + 'f_m_2_conductor_1',
715					100, 100, '', 'F/M 2 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
716			this.createVertexTemplateEntry(mem + 'f_m_2_conductor_2',
717					100, 100, '', 'F/M 2 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
718			this.createVertexTemplateEntry(mem + 'f_m_2_conductor_3',
719					100, 50, '', 'F/M 2 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
720			this.createVertexTemplateEntry(mem + 'f_m_3_conductor_1',
721					100, 100, '', 'F/M 3 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
722			this.createVertexTemplateEntry(mem + 'f_m_3_conductor_2',
723					100, 100, '', 'F/M 3 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
724			this.createVertexTemplateEntry(mem + 'f_m_3_conductor_3',
725					100, 100, '', 'F/M 3 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
726			this.createVertexTemplateEntry(mem + 'f_m_3_conductor_4',
727					100, 100, '', 'F/M 3 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
728			this.createVertexTemplateEntry(mem + 'f_m_3_conductor_5',
729					100, 100, '', 'F/M 3 Conductor', null, null, this.getTagsForStencil(gnmess, 'fm 2 conductor', dtmer).join(' ')),
730			this.createVertexTemplateEntry(mem + 'plug_socket_connection',
731					20, 20, '', 'Plug-Socket Connection', null, null, this.getTagsForStencil(gnmess, 'Plug Socket Connection', dtmer).join(' '))
732		]);
733
734		this.setCurrentSearchEntryLibrary('electrical', 'electrical\Audio');
735
736		this.addPaletteFunctions('electrical\Audio', 'Electrical / Audio', false,
737		[
738			this.createVertexTemplateEntry(mer + 'dipole;pointerEvents=1;',
739					100, 40, '', 'Dipole', null, null, this.getTagsForStencil(gnmer, 'dipole', dtmer).join(' ')),
740			this.createVertexTemplateEntry(mer + 'electret_microphone;',
741					70, 70, '', 'Electret Microphone', null, null, this.getTagsForStencil(gnmer, 'electret_microphone', dtmer).join(' ')),
742			this.createVertexTemplateEntry(mer + 'microphone_1;',
743					70, 70, '', 'Microphone', null, null, this.getTagsForStencil(gnmer, 'microphone_1', dtmer).join(' ')),
744			this.createVertexTemplateEntry(mer + 'microphone_2;',
745					42, 70, '', 'Microphone', null, null, this.getTagsForStencil(gnmer, 'microphone_2', dtmer).join(' ')),
746			this.createVertexTemplateEntry(meem + 'piezo_sounder;pointerEvents=1;',
747					100, 40, '', 'Piezo Sounder', null, null, this.getTagsForStencil(gnmeem, 'piezo_sounder', dtmeem).join(' ')),
748			this.createVertexTemplateEntry(meem + 'buzzer;',
749					45, 60, '', 'Buzzer', null, null, this.getTagsForStencil(gnmeem, 'buzzer', dtmeem).join(' ')),
750			this.createVertexTemplateEntry(meem + 'loudspeaker;',
751					25, 50, '', 'Loudspeaker', null, null, this.getTagsForStencil(gnmeem, 'loudspeaker', dtmeem).join(' ')),
752			this.createVertexTemplateEntry(mer + 'headphones;pointerEvents=1;',
753					66, 56, '', 'Headphones', null, null, this.getTagsForStencil(gnmer, 'headphones', dtmer).join(' ')),
754			this.createVertexTemplateEntry(meem + 'bell;',
755					47, 60, '', 'Bell', null, null, this.getTagsForStencil(gnmeem, 'bell', dtmeem).join(' '))
756		]);
757
758		this.setCurrentSearchEntryLibrary('electrical', 'electrical\PlcLadder');
759
760		this.addPaletteFunctions('electrical\PlcLadder', 'Electrical / PLC Ladder', false,
761		[
762			this.createVertexTemplateEntry(mep + 'contact;',
763					50, 25, '', 'Contact', null, null, this.getTagsForStencil(gnmep, 'contact', dtmep).join(' ')),
764			this.createVertexTemplateEntry(mep + 'not_contact;',
765					50, 25, '', 'Contact (N)', null, null, this.getTagsForStencil(gnmep, 'not_contact', dtmep).join(' ')),
766			this.createVertexTemplateEntry(mep + 'not_output_1;',
767					50, 25, '', 'Output (N)', null, null, this.getTagsForStencil(gnmep, 'not_output_1;', dtmep).join(' ')),
768			this.createVertexTemplateEntry(mep + 'not_output_2;',
769					50, 25, '', 'Output (N)', null, null, this.getTagsForStencil(gnmep, 'not_output_2', dtmep).join(' ')),
770			this.createVertexTemplateEntry(mep + 'output_1;',
771					50, 25, '', 'Output', null, null, this.getTagsForStencil(gnmep, 'output_1', dtmep).join(' ')),
772			this.createVertexTemplateEntry(mep + 'output_2;',
773					50, 25, '', 'Output', null, null, this.getTagsForStencil(gnmep, 'output_2', dtmep).join(' '))
774		]);
775
776		this.setCurrentSearchEntryLibrary('electrical', 'electrical\Optical');
777
778		this.addPaletteFunctions('electrical\Optical', 'Electrical / Optical', false,
779		[
780			this.createVertexTemplateEntry(meoe + '7_segment_display;pointerEvents=1;',
781					74.7, 96.1, '', '7 Segment Display', null, null, this.getTagsForStencil(gnmeoe, '7_segment_display', dtmeoe).join(' ')),
782			this.createVertexTemplateEntry(meoe + '7_segment_display_with_dp;pointerEvents=1;',
783					79.8, 96.9, '', '7 Segment Display with DP', null, null, this.getTagsForStencil(gnmeoe, '7_segment_display_with_dp', dtmeoe).join(' ')),
784			this.createVertexTemplateEntry(meoe + '9_segment_display;pointerEvents=1;',
785					74.7, 96.1, '', '9 Segment Display', null, null, this.getTagsForStencil(gnmeoe, '9_segment_display', dtmeoe).join(' ')),
786			this.createVertexTemplateEntry(meoe + '9_segment_display_with_dp;pointerEvents=1;',
787					79.8, 96.9, '', '9 Segment Display with DP', null, null, this.getTagsForStencil(gnmeoe, '9_segment_display_with_dp', dtmeoe).join(' ')),
788			this.createVertexTemplateEntry(meoe + 'led_1;pointerEvents=1;',
789					100, 65, '', 'LED', null, null, this.getTagsForStencil(gnmeoe, 'led_1', dtmeoe).join(' ')),
790			this.createVertexTemplateEntry(meoe + 'led_2;pointerEvents=1;',
791					100, 70, '', 'LED', null, null, this.getTagsForStencil(gnmeoe, 'led_2', dtmeoe).join(' ')),
792			this.createVertexTemplateEntry(meoe + 'light-activated_scr;pointerEvents=1;',
793					100, 70, '', 'Light Activated SCR', null, null, this.getTagsForStencil(gnmeoe, 'light-activated_scr', dtmeoe).join(' ')),
794			this.createVertexTemplateEntry(meoe + 'opto-coupler;',
795					99, 60, '', 'Opto-coupler', null, null, this.getTagsForStencil(gnmeoe, 'opto-coupler', dtmeoe).join(' ')),
796			this.createVertexTemplateEntry(meoe + 'opto-transistor;',
797					100, 110, '', 'Opto-transistor', null, null, this.getTagsForStencil(gnmeoe, 'opto-transistor', dtmeoe).join(' ')),
798			this.createVertexTemplateEntry(meoe + 'photodiode;pointerEvents=1;',
799					100, 70, '', 'Photodiode', null, null, this.getTagsForStencil(gnmeoe, 'photodiode', dtmeoe).join(' ')),
800			this.createVertexTemplateEntry(meoe + 'photo_resistor_1;',
801					100, 90, '', 'Photo Resistor', null, null, this.getTagsForStencil(gnmeoe, 'photo_resistor_1', dtmeoe).join(' ')),
802			this.createVertexTemplateEntry(meoe + 'photo_resistor_2;pointerEvents=1;',
803					100, 50, '', 'Photo Resistor', null, null, this.getTagsForStencil(gnmeoe, 'photo_resistor_2', dtmeoe).join(' ')),
804			this.createVertexTemplateEntry(meoe + 'photo_resistor_3;',
805					100, 90, '', 'Photo Resistor', null, null, this.getTagsForStencil(gnmeoe, 'photo_resistor_3', dtmeoe).join(' ')),
806			this.createVertexTemplateEntry(meoe + 'solar_cell;pointerEvents=1;',
807					100, 70, '', 'Solar Cell', null, null, this.getTagsForStencil(gnmeoe, 'solar_cell', dtmeoe).join(' '))
808		]);
809
810		this.setCurrentSearchEntryLibrary('electrical', 'electrical\VacuumTubes');
811
812		this.addPaletteFunctions('electrical\VacuumTubes', 'Electrical / Vacuum Tubes', false,
813		[
814			this.createVertexTemplateEntry(metd + 'diode;',
815					70, 77, '', 'Diode', null, null, this.getTagsForStencil(gnmetd, 'diode', dtmetd).join(' ')),
816			this.createVertexTemplateEntry(metd + 'double_diode;',
817					70, 77, '', 'Double Diode', null, null, this.getTagsForStencil(gnmetd, 'double_diode', dtmetd).join(' ')),
818			this.createVertexTemplateEntry(metd + 'triode;',
819					70, 77, '', 'Triode', null, null, this.getTagsForStencil(gnmetd, 'triode', dtmetd).join(' ')),
820			this.createVertexTemplateEntry(metd + 'double_triode;',
821					70, 77, '', 'Double Triode', null, null, this.getTagsForStencil(gnmetd, 'double_triode', dtmetd).join(' ')),
822			this.createVertexTemplateEntry(metd + 'tetrode;',
823					70, 77, '', 'Tetrode', null, null, this.getTagsForStencil(gnmetd, 'tetrode', dtmetd).join(' ')),
824			this.createVertexTemplateEntry(metd + 'pentode;',
825					70, 77, '', 'Pentode', null, null, this.getTagsForStencil(gnmetd, 'pentode', dtmetd).join(' ')),
826			this.createVertexTemplateEntry(metd + 'photocell;',
827					70, 87, '', 'Photocell', null, null, this.getTagsForStencil(gnmetd, 'photocell', dtmetd).join(' '))
828		]);
829
830		this.setCurrentSearchEntryLibrary('electrical', 'electrical\Waveforms');
831
832		this.addPaletteFunctions('electrical\Waveforms', 'Electrical / Waveforms', false,
833		[
834			this.createVertexTemplateEntry(mew + 'pulse_1;',
835					90, 90, '', 'Pulse', null, null, this.getTagsForStencil(gnmew, 'pulse_1', dtmew).join(' ')),
836			this.createVertexTemplateEntry(mew + 'pulse_2;',
837					90, 90, '', 'Pulse', null, null, this.getTagsForStencil(gnmew, 'pulse_2', dtmew).join(' ')),
838			this.createVertexTemplateEntry(mew + 'sawtooth;',
839					90, 40, '', 'Sawtooth', null, null, this.getTagsForStencil(gnmew, 'sawtooth', dtmew).join(' ')),
840			this.createVertexTemplateEntry(mew + 'sine_wave;',
841					90, 66.18, '', 'Sine Wave', null, null, this.getTagsForStencil(gnmew, 'sine_wave', dtmew).join(' ')),
842			this.createVertexTemplateEntry(mew + 'slow_square_wave;',
843					90, 80, '', 'Chopped Square Wave', null, null, this.getTagsForStencil(gnmew, 'slow_square_wave', dtmew).join(' ')),
844			this.createVertexTemplateEntry(mew + 'square_wave;',
845					90, 80, '', 'square_wave', null, null, this.getTagsForStencil(gnmew, 'square_wave', dtmew).join(' ')),
846			this.createVertexTemplateEntry(mew + 'step_1;',
847					90, 90, '', 'Step', null, null, this.getTagsForStencil(gnmew, 'step_1', dtmew).join(' ')),
848			this.createVertexTemplateEntry(mew + 'step_2;',
849					90, 90, '', 'Step', null, null, this.getTagsForStencil(gnmew, 'step_2', dtmew).join(' '))
850		]);
851
852		this.setCurrentSearchEntryLibrary('electrical', 'electrical\RotMech');
853
854		this.addPaletteFunctions('electrical\RotMech', 'Electrical / Rotating Equipment & Mechanical Functions', false,
855		[
856			this.createVertexTemplateEntry('verticalLabelPosition=middle;shadow=0;dashed=0;align=center;html=1;verticalAlign=middle;strokeWidth=1;shape=ellipse;fontSize=32;perimeter=ellipsePerimeter;',
857					100, 100, 'M', 'Rotating Machine', null, null, this.getTagsForStencil(gnmerm, 'rotating machine', dtmerm).join(' ')),
858			this.createVertexTemplateEntry(merm + 'armature;pointerEvents=1;',
859					100, 100, '', 'Armature', null, null, this.getTagsForStencil(gnmerm, 'armature', dtmerm).join(' ')),
860			this.createVertexTemplateEntry(merm + 'field;pointerEvents=1;',
861					90, 15, '', 'Field', null, null, this.getTagsForStencil(gnmerm, 'field', dtmerm).join(' ')),
862			this.createVertexTemplateEntry(mem + 'permanent_magnet;pointerEvents=1;',
863					20, 70, '', 'Permanent Magnet', null, null, this.getTagsForStencil(gnmerm, 'permanent magnet', dtmerm).join(' ')),
864			this.createVertexTemplateEntry(merm + 'winding_connection;',
865					100, 100, '', 'Winding Connection', null, null, this.getTagsForStencil(gnmerm, 'winding connection', dtmerm).join(' ')),
866			this.createVertexTemplateEntry(merm + 'synchro;',
867					80, 100, '', 'Synchro', null, null, this.getTagsForStencil(gnmerm, 'synchro', dtmerm).join(' ')),
868			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;strokeWidth=1;shape=trapezoid;perimeter=none;',
869					75, 25, '', 'Brake', null, null, this.getTagsForStencil(gnmerm, 'brake', dtmerm).join(' ')),
870			this.createVertexTemplateEntry(merm + 'gearing;pointerEvents=1;',
871					100, 64, '', 'Gearing', null, null, this.getTagsForStencil(gnmerm, 'gearing', dtmerm).join(' ')),
872			this.createVertexTemplateEntry(merm + 'verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;fillColor=strokeColor;html=1;verticalAlign=top;strokeWidth=1;shape=mxgraph.electrical.rot_mech.rotation;',
873					69, 54, '', 'Rotation', null, null, this.getTagsForStencil(gnmerm, 'rotation', dtmerm).join(' ')),
874			this.createVertexTemplateEntry(merm + 'clutch;pointerEvents=1;',
875					100, 20, '', 'Clutch', null, null, this.getTagsForStencil(gnmerm, 'clutch', dtmerm).join(' ')),
876			this.createVertexTemplateEntry(merm + 'clutch_2;pointerEvents=1;',
877					90, 60, '', 'Clutch', null, null, this.getTagsForStencil(gnmerm, 'clutch', dtmerm).join(' ')),
878			this.createVertexTemplateEntry(merm + 'delayed_action;pointerEvents=1;',
879					72, 50, '', 'Delayed Action', null, null, this.getTagsForStencil(gnmerm, 'delayed action', dtmerm).join(' ')),
880			this.createVertexTemplateEntry(merm + 'manual_control;pointerEvents=1;',
881					50, 50, '', 'Manual Control', null, null, this.getTagsForStencil(gnmerm, 'manual control', dtmerm).join(' ')),
882			this.createVertexTemplateEntry(merm + 'blocking_device;pointerEvents=1;',
883					100, 15, '', 'Blocking Device', null, null, this.getTagsForStencil(gnmerm, 'blocking device', dtmerm).join(' ')),
884			this.createVertexTemplateEntry(merm + 'latching_device;pointerEvents=1;',
885					100, 22, '', 'Latching Device', null, null, this.getTagsForStencil(gnmerm, 'latching device', dtmerm).join(' ')),
886			this.createVertexTemplateEntry(merm + 'mechanical_interlock;pointerEvents=1;',
887					100, 30, '', 'Mechanical Interlock', null, null, this.getTagsForStencil(gnmerm, 'mechanical interlock', dtmerm).join(' ')),
888			this.createVertexTemplateEntry(merm + 'automatic_return;pointerEvents=1;',
889					100, 12, '', 'Automatic Return', null, null, this.getTagsForStencil(gnmerm, 'automatic_return', dtmerm).join(' ')),
890			this.createVertexTemplateEntry(merm + 'detent;pointerEvents=1;',
891					100, 8, '', 'Detent', null, null, this.getTagsForStencil(gnmerm, 'detent', dtmerm).join(' '))
892		]);
893
894		var sb = this;
895		this.setCurrentSearchEntryLibrary('electrical', 'electrical\Transmission');
896
897		var fns =
898		[
899			this.createVertexTemplateEntry(metr + 'bus_width;pointerEvents=1;',
900					130, 156, '', 'Bus Width', null, null, this.getTagsForStencil(gnmetr, 'bus width', dtmetr).join(' ')),
901			this.createVertexTemplateEntry(metr + 'line_concentrator;',
902					130, 130, '', 'Line Concentrator', null, null, this.getTagsForStencil(gnmetr, 'line concentrator', dtmetr).join(' ')),
903			this.createVertexTemplateEntry(metr + 'cable_group;pointerEvents=1;',
904					130, 130, '', 'Cable Group', null, null, this.getTagsForStencil(gnmetr, 'cable group', dtmetr).join(' ')),
905			this.createVertexTemplateEntry(metr + 'overground_enclosure;',
906					130, 136, '', 'Overground Enclosure', null, null, this.getTagsForStencil(gnmetr, 'overground enclosure', dtmetr).join(' ')),
907			this.createVertexTemplateEntry(metr + 'optical_fiber;',
908					130, 80, '', 'Optical Fiber', null, null, this.getTagsForStencil(gnmetr, 'optical fiber', dtmetr).join(' ')),
909			this.createVertexTemplateEntry('verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;strokeWidth=1;shape=ellipse;',
910					10, 10, '', 'Terminal', null, null, this.getTagsForStencil(gnmetr, 'terminal', dtmetr).join(' ')),
911			this.createVertexTemplateEntry(metr + 'terminal_3_phase;pointerEvents=1;',
912					43, 10, '', 'Terminal 3 Phase', null, null, this.getTagsForStencil(gnmetr, 'Terminal 3 Phase', dtmetr).join(' ')),
913			this.createVertexTemplateEntry('verticalLabelPosition=middle;shadow=0;dashed=0;align=center;html=1;verticalAlign=middle;strokeWidth=1;shape=ellipse;fontSize=50;fontStyle=1;perimeter=ellipsePerimeter;',
914					130, 130, 'T', 'Terminal', null, null, this.getTagsForStencil(gnmetr, 'terminal', dtmetr).join(' ')),
915			this.createVertexTemplateEntry(metr + 'line_cable;',
916					130, 60, '', 'Line/Cable', null, null, this.getTagsForStencil(gnmetr, 'line cable', dtmetr).join(' ')),
917			this.createVertexTemplateEntry(metr + 'anticreepage_device;pointerEvents=1;',
918					130, 88, '', 'Anticreepage Device', null, null, this.getTagsForStencil(gnmetr, 'anticreepage device', dtmetr).join(' ')),
919			this.createVertexTemplateEntry(metr + 'testPoint;',
920					60, 130, '', 'Test Point', null, null, this.getTagsForStencil(gnmetr, 'test point', dtmetr).join(' ')),
921			this.createEdgeTemplateEntry('endArrow=none;html=1;strokeWidth=1;',
922					100, 0, '', 'Transmission Path', null, this.getTagsForStencil(gnmess, '', 'transmission path').join(' ')),
923			this.createEdgeTemplateEntry('endArrow=classicThin;html=1;strokeWidth=1;endSize=20;',
924					100, 0, '', 'Direction of Flow', null, this.getTagsForStencil(gnmess, '', 'direction flow').join(' ')),
925			this.createVertexTemplateEntry(metr + 'straightBus;',
926					90, 130, '', 'Straight Bus', null, null, this.getTagsForStencil(gnmetr, 'straight bus', dtmetr).join(' ')),
927			this.createVertexTemplateEntry('html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.bendArrow;dy=15;dx=38;notch=0;arrowHead=55;rounded=0;strokeWidth=1',
928					130, 130, '', 'Elbow Bus', null, null, this.getTagsForStencil(gnmetr, 'elbow bus', dtmetr).join(' ')),
929			this.createVertexTemplateEntry('html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.bendArrow;dy=15;dx=38;notch=0;arrowHead=55;rounded=0;strokeWidth=1;flipH=1;',
930					130, 130, '', 'Elbow Bus', null, null, this.getTagsForStencil(gnmetr, 'elbow bus', dtmetr).join(' ')),
931			this.createVertexTemplateEntry(metr + '2_line_bus;',
932					130, 25, '', '2-Line Bus', null, null, this.getTagsForStencil(gnmetr, '2 two line bus', dtmetr).join(' ')),
933			this.createVertexTemplateEntry(metr + '3_line_bus;',
934					130, 30, '', '3-Line Bus', null, null, this.getTagsForStencil(gnmetr, '3 three line bus', dtmetr).join(' ')),
935			this.createVertexTemplateEntry(metr + '4_line_bus;',
936					130, 75, '', '4-Line Bus', null, null, this.getTagsForStencil(gnmetr, '3 three line bus', dtmetr).join(' ')),
937			this.createVertexTemplateEntry(metr + '8_line_bus;',
938					130, 180, '', '8-Line Bus', null, null, this.getTagsForStencil(gnmetr, '3 three line bus', dtmetr).join(' ')),
939			this.createVertexTemplateEntry(metr + 'twoLineBusElbow;notch=25;',
940					120, 120, '', '2-Line Bus Elbow', null, null, this.getTagsForStencil(gnmetr, '2 two line bus elbow', dtmetr).join(' ')),
941			this.createVertexTemplateEntry(metr + 'threeLineBusElbow;notch=30;',
942					120, 120, '', '3-Line Bus Elbow', null, null, this.getTagsForStencil(gnmetr, '3 two line bus elbow', dtmetr).join(' ')),
943			this.createVertexTemplateEntry(metr + 'fourLineBusElbow;notch=75;',
944					120, 120, '', '4-Line Bus Elbow', null, null, this.getTagsForStencil(gnmetr, '4 two line bus elbow', dtmetr).join(' ')),
945			this.createVertexTemplateEntry(metr + 'eightLineBusElbow;notch=180;',
946					200, 200, '', '8-Line Bus Elbow', null, null, this.getTagsForStencil(gnmetr, '8 two line bus elbow', dtmetr).join(' '))
947		];
948
949		this.addPalette('electrical\Transmission', 'Electrical / Transmission Paths', false, mxUtils.bind(this, function(content)
950				{
951					for (var i = 0; i < fns.length; i++)
952					{
953						content.appendChild(fns[i](content));
954					}
955		}));
956		this.setCurrentSearchEntryLibrary();
957	};
958
959})();
960