SHOW:
|
|
- or go back to the newest paste.
1 | // ### GLOBALS ### | |
2 | var customers = new Array(); | |
3 | var positions = new Array(); | |
4 | var selectedFirm; | |
5 | var selectedProfile; | |
6 | var selectedGlass; | |
7 | ||
8 | - | var Profiles = { |
8 | + | var Profiles = {}; |
9 | - | KMG: 'KMG', |
9 | + | |
10 | - | VEKA: 'VEKA', |
10 | + | |
11 | - | Salamander: 'Salamander', |
11 | + | |
12 | - | Trocal: 'Trocal', |
12 | + | |
13 | - | Komerlink: 'Komerlink' |
13 | + | |
14 | }; | |
15 | ||
16 | var MechanismsEnum = { | |
17 | Siegenia: 'Siegenia', | |
18 | Endow: 'Endow', | |
19 | Winkhaus: 'Winkhaus' | |
20 | }; | |
21 | ||
22 | // Design the configurations, for displaying | |
23 | function createPosition(src, alt, id) { | |
24 | var img = document.createElement('img'); | |
25 | img.src = src; | |
26 | img.id = id; | |
27 | ||
28 | img.setAttribute('width', '150'); | |
29 | img.setAttribute('height', '80'); | |
30 | ||
31 | if (alt != null) img.alt = alt; | |
32 | ||
33 | img.onclick = function () { | |
34 | onImageClick(this); | |
35 | }; | |
36 | ||
37 | return img; | |
38 | } | |
39 | ||
40 | // Returns if some array contains some object | |
41 | function contains(array, obj) { | |
42 | var i = a.length; | |
43 | while (i--) { | |
44 | if (a[i] === obj) { | |
45 | return true; | |
46 | } | |
47 | } | |
48 | return false; | |
49 | } | |
50 | ||
51 | function InitializePositions() { | |
52 | ||
53 | // Some positions | |
54 | positions.push(new createPosition('images/fix.jpg', 'fix', 'fix')); | |
55 | positions.push(new createPosition('images/fix_otv_fix.jpg', 'fix_otv_fix', 'fix_otv_fix')); | |
56 | positions.push(new createPosition('images/fix_otv_otv_fix.jpg', 'fix_otv_otv_fix', 'fix_otv_otv_fix')); | |
57 | ||
58 | positions.push(new createPosition('images/otv.jpg', 'otv', 'otv')); | |
59 | positions.push(new createPosition('images/otv_fix.jpg', 'otv_fix', 'otv_fix')); | |
60 | positions.push(new createPosition('images/otv_fix_otv.jpg', 'otv_fix_otv', 'otv_fix_otv')); | |
61 | ||
62 | positions.push(new createPosition('images/otv_fix_vrata.jpg', 'otv_fix_vrata', 'otv_fix_vrata')); | |
63 | positions.push(new createPosition('images/proz_fix_vrata.jpg', 'proz_fix_vrata', 'proz_fix_vrata')); | |
64 | positions.push(new createPosition('images/vrata.jpg', 'vrata', 'vrata')); | |
65 | ||
66 | // Displaying | |
67 | for (var i = 0; i < positions.length; i++) { | |
68 | var disp = document.getElementById('positionSelection'); | |
69 | disp.appendChild(positions[i]); | |
70 | } | |
71 | ||
72 | } | |
73 | ||
74 | function onImageClick(image) { | |
75 | var imgToDisplay = createPosition(image.src, image.alt, image.id); | |
76 | ||
77 | var location = document.getElementById('picturePresent'); | |
78 | location.innerHTML = ''; | |
79 | location.appendChild(imgToDisplay); | |
80 | ||
81 | // Show or hide the door's fields | |
82 | if (imgToDisplay.id == 'otv_fix_vrata' || imgToDisplay.id == 'proz_fix_vrata') { | |
83 | showElement('doorWidth', true); | |
84 | showElement('doorHeight', true); | |
85 | } | |
86 | - | function Profile(name, casePrice, wingPrice, delimeterPrice, delimeterPricePerCount, workCost) { |
86 | + | |
87 | showElement('doorWidth', false); | |
88 | showElement('doorHeight', false); | |
89 | } | |
90 | ||
91 | // show/hide wingWidth field | |
92 | - | this.workCost = workCost; |
92 | + | if (imgToDisplay.id == 'fix' || imgToDisplay.id == 'otv' || imgToDisplay.id == 'vrata' || imgToDisplay.id == 'proz_fix_vrata') { |
93 | showElement('wingWidth', false); | |
94 | } | |
95 | else { | |
96 | showElement('wingWidth', true); | |
97 | } | |
98 | } | |
99 | ||
100 | function Profile(name, casePrice, wingPrice, delimeterPrice, delimeterPricePerCount, casePriceColor, wingPriceColor, delPriceColor, wingDoorPrice, wingDoorColorPrice) { | |
101 | this.name = name; | |
102 | this.workCost = 0; | |
103 | this.delimeterPricePerCount = delimeterPricePerCount; | |
104 | ||
105 | // White | |
106 | this.casePrice = casePrice; | |
107 | this.wingPrice = wingPrice; | |
108 | this.delimeterPrice = delimeterPrice; | |
109 | this.wingDoorPrice = wingDoorPrice; | |
110 | ||
111 | // Color | |
112 | this.casePriceColor = casePriceColor; | |
113 | this.wingPriceColor = wingPriceColor; | |
114 | this.delPriceColor = delPriceColor; | |
115 | this.wingDoorColorPrice = wingDoorColorPrice; | |
116 | ||
117 | - | function Window(w, h, profileType, delimeters, glassType) { |
117 | + | |
118 | ||
119 | function Glass(name, price, squareCoeficient) { | |
120 | this.name = name; | |
121 | - | glass = new Glass(), |
121 | + | |
122 | ||
123 | // 1 usualy | |
124 | this.squareCoeficient = squareCoeficient; | |
125 | ||
126 | this.GetPrice = function (sqrtMeters) { | |
127 | - | glass = glassType; |
127 | + | |
128 | var result = sqrtMeters; | |
129 | ||
130 | if (this.squareCoeficient != 1) { | |
131 | result *= squareCoeficient; | |
132 | result = sqrtMeters - result; | |
133 | return result * this.pricePerSQRTMeter; | |
134 | } | |
135 | else { | |
136 | return sqrtMeters * this.pricePerSQRTMeter; | |
137 | } | |
138 | - | function Wing(w, h) { |
138 | + | |
139 | - | var wid = w, |
139 | + | |
140 | - | hei = h; |
140 | + | |
141 | - | var len = function () { return wid * 2 + hei * 2 }; |
141 | + | function Window(w, h, profileType, delimeters, mechanismTipe) { |
142 | ||
143 | - | this.Price = function () { return len() * profile.wingPrice }; |
143 | + | |
144 | var profile = new Profile(), | |
145 | wings = new Array(), | |
146 | width = w, | |
147 | height = h; | |
148 | ||
149 | profile = profileType; | |
150 | ||
151 | - | this.GetWindowArea = function (){ |
151 | + | |
152 | function delimetersLen() { | |
153 | var result = 0; | |
154 | for (var i = 0; i < delimeters.length; i++) { | |
155 | - | this.AddWing = function (w, h) { |
155 | + | |
156 | - | wings.push(new Wing(w, h)); |
156 | + | |
157 | return result; | |
158 | } | |
159 | ||
160 | function Wing(w, h, hasDouble) { | |
161 | var _width = w, | |
162 | _height = h, | |
163 | _hasDouble = hasDouble, | |
164 | len = function () { return _width * 2 + _height * 2; }, | |
165 | _mechanism = new Mechanism(); | |
166 | ||
167 | //_mechanism = mechanismTipe; | |
168 | getMechPrice = function () { | |
169 | var result = _mechanism.normalPrice; | |
170 | ||
171 | if (_width > _mechanism.upperL_Len) { | |
172 | result += _mechanism.upperL_Price; | |
173 | if (_hasDouble == true) { | |
174 | result += _mechanism.double_UpperL_Price; | |
175 | } | |
176 | } | |
177 | ||
178 | if (_height > _mechanism.upperH_Len) { | |
179 | result += _mechanism.upperH_Price; | |
180 | if (_hasDouble == true) { | |
181 | result += _mechanism.double_upperH_Price; | |
182 | } | |
183 | - | |
183 | + | |
184 | ||
185 | // REMOVE ofter FIX | |
186 | - | function Mechanism(name, pricePerNormalWing, pricePer) { |
186 | + | if (isNaN(result)) { |
187 | result = 0; | |
188 | } | |
189 | ||
190 | return result; | |
191 | }; | |
192 | ||
193 | this.Price = function () { | |
194 | return len() * profile.wingPrice + getMechPrice(); | |
195 | }; | |
196 | } | |
197 | ||
198 | function Area() { | |
199 | return width * height; | |
200 | } | |
201 | ||
202 | // Public functions | |
203 | this.GetWindowArea = function () { | |
204 | return Area(); | |
205 | } | |
206 | ||
207 | this.AddWing = function (w, h, hasDouble) { | |
208 | wings.push(new Wing(w, h, hasDouble)); | |
209 | // TODO: Add mechanism | |
210 | } | |
211 | ||
212 | this.GetPrice = function () { | |
213 | var totalPrice = 0; | |
214 | totalPrice += (2 * width + 2 * height) * profile.casePrice; // Case price | |
215 | ||
216 | if (delimetersLen() > 0) { | |
217 | totalPrice += delimetersLen() * profile.delimeterPrice + delimeters.length * profile.delimeterPricePerCount; // Delimeters price + | |
218 | } | |
219 | ||
220 | totalPrice += Area() * profile.workCost; // Work Cost price | |
221 | ||
222 | for (var i = 0; i < wings.length; i++) { | |
223 | totalPrice += wings[i].Price(); // Wings prises | |
224 | } | |
225 | ||
226 | return totalPrice; | |
227 | } | |
228 | ||
229 | } | |
230 | ||
231 | function Customer(name) { | |
232 | this.name = name; | |
233 | this.profilesSupport = new Array(); | |
234 | this.glassesSupport = new Array(); | |
235 | this.mechanismSupport = new Array(); | |
236 | - | |
236 | + | |
237 | ||
238 | function Mechanism(name, forProfileType, normalPrice, upperH_Len, upperH_Price, upperL_Len, upperL_Price, securityPrice, doubleNormalPrice, double_upperH_Price, double_UpperL_Price) { | |
239 | this.name = name; | |
240 | this.normalPrice = normalPrice; | |
241 | this.upperH_Price = upperH_Price; | |
242 | this.upperL_Price = upperL_Price; | |
243 | this.securityPrice = securityPrice; | |
244 | this.doubleNormalPrice = doubleNormalPrice; | |
245 | this.double_upperH_Price = double_upperH_Price; | |
246 | this.double_UpperL_Price = double_UpperL_Price; | |
247 | this.upperH_Len = upperH_Len; | |
248 | this.upperL_Len = upperL_Len; | |
249 | this.forProfileType = forProfileType; | |
250 | } | |
251 | ||
252 | function Manifacture() { | |
253 | ||
254 | } | |
255 | ||
256 | function ManageUserEntry() { | |
257 | // TODO: check boundaries ... | |
258 | var overallWidth = parseInt(document.getElementById('overallWidth').value) / 100; | |
259 | var overallHeight = parseInt(document.getElementById('overallHeight').value) / 100; | |
260 | ||
261 | var doorWidth = parseInt(document.getElementById('doorWidth').value) / 100; | |
262 | var doorHeight = parseInt(document.getElementById('doorHeight').value) / 100; | |
263 | ||
264 | var wingWidth = parseInt(document.getElementById('wingWidth').value) / 100; | |
265 | if (!isNaN(wingWidth)) { | |
266 | if (wingWidth == 0 || wingWidth > 100) { | |
267 | wingWidth = 0.75; | |
268 | } | |
269 | } | |
270 | else { | |
271 | wingWidth = 0.75; | |
272 | } | |
273 | ||
274 | var dblMechanism = document.getElementById("doubleMech").checked; | |
275 | ||
276 | (positionManager = function () { | |
277 | // Check selected pictire's ID | |
278 | // confugire and create a window for that picture | |
279 | // get the price | |
280 | ||
281 | var configuration = document.getElementById('picturePresent').firstChild; | |
282 | var posId = configuration.id; | |
283 | - | del = [0, 0] |
283 | + | |
284 | var del; | |
285 | var currentWindow; | |
286 | var currentFirm; | |
287 | var currentGlass; | |
288 | var currentFirmCurrentProfileIndex; | |
289 | var currentFirmCurrentGlassIndex; | |
290 | ||
291 | var resultToDisplay = 0; | |
292 | ||
293 | // getSelectet firm | |
294 | var temp = document.getElementById('firmList'); | |
295 | selectedFirm = temp.options[temp.selectedIndex].text; // change the global variable | |
296 | ||
297 | // getting gthe selected profile | |
298 | temp = document.getElementById('profilesList'); | |
299 | selectedProfile = temp.options[temp.selectedIndex].text; // change the global variable | |
300 | ||
301 | // getting the selected glass | |
302 | - | |
302 | + | |
303 | selectedGlass = temp.options[temp.selectedIndex].text; // change the global variable | |
304 | ||
305 | // find it profile the list | |
306 | for (var i = 0; i < customers.length; i++) { | |
307 | if (customers[i].name == selectedFirm) { | |
308 | for (var j = 0; j < customers[i].profilesSupport.length; j++) { | |
309 | // find the selcted profile in customer's list ot profiles | |
310 | if (customers[i].profilesSupport[j].name == selectedProfile) { | |
311 | currentFirm = customers[i]; | |
312 | currentFirmCurrentProfileIndex = j; | |
313 | continue; | |
314 | } | |
315 | } | |
316 | ||
317 | - | case 'proz_fix_vrata': { break; } |
317 | + | |
318 | - | case 'vrata': { break; } |
318 | + | |
319 | if (customers[i].glassesSupport[k].name.name == selectedGlass) { | |
320 | currentFirmCurrentGlassIndex = k; | |
321 | } | |
322 | } | |
323 | continue; | |
324 | } | |
325 | } | |
326 | ||
327 | switch (posId) { | |
328 | case 'fix': { | |
329 | del = [0, 0] // no delimeters for the fix ;) | |
330 | currentWindow = new Window(overallWidth, overallHeight, currentFirm.profilesSupport[currentFirmCurrentProfileIndex], del); | |
331 | break; | |
332 | } | |
333 | case 'fix_otv_fix': { | |
334 | del = [overallHeight, overallHeight]; // two delimeters by window height | |
335 | currentWindow = new Window(overallWidth, overallHeight, currentFirm.profilesSupport[currentFirmCurrentProfileIndex], del); | |
336 | currentWindow.AddWing(wingWidth, overallHeight); | |
337 | break; | |
338 | } | |
339 | case 'fix_otv_otv_fix': { | |
340 | - | //document.getElementById(elementId).style.display = block; |
340 | + | |
341 | currentWindow = new Window(overallWidth, overallHeight, currentFirm.profilesSupport[currentFirmCurrentProfileIndex], del); | |
342 | currentWindow.AddWing(wingWidth, overallHeight); | |
343 | currentWindow.AddWing(wingWidth, overallHeight); | |
344 | break; | |
345 | } | |
346 | case 'otv': { | |
347 | del = [0, 0] | |
348 | currentWindow = new Window(overallWidth, overallHeight, currentFirm.profilesSupport[currentFirmCurrentProfileIndex], del); | |
349 | currentWindow.AddWing(overallWidth, overallHeight); | |
350 | break; | |
351 | } | |
352 | case 'otv_fix': { | |
353 | del = [overallHeight]; | |
354 | currentWindow = new Window(overallWidth, overallHeight, currentFirm.profilesSupport[currentFirmCurrentProfileIndex], del); | |
355 | currentWindow.AddWing(wingWidth, overallHeight); | |
356 | break; | |
357 | } | |
358 | case 'otv_fix_otv': { | |
359 | del = [overallHeight, overallHeight]; // two delimeters by window height | |
360 | currentWindow = new Window(overallWidth, overallHeight, currentFirm.profilesSupport[currentFirmCurrentProfileIndex], del); | |
361 | currentWindow.AddWing(wingWidth, overallHeight); | |
362 | currentWindow.AddWing(wingWidth, overallHeight); | |
363 | break; | |
364 | } | |
365 | case 'otv_fix_vrata': { | |
366 | // the door part | |
367 | del = [doorWidth]; | |
368 | currentWindow = new Window(doorWidth, doorHeight, currentFirm.profilesSupport[currentFirmCurrentProfileIndex], del); | |
369 | currentWindow.AddWing(doorWidth, doorHeight); | |
370 | resultToDisplay += currentFirm.glassesSupport[currentFirmCurrentGlassIndex].GetPrice(currentWindow.GetWindowArea()); | |
371 | resultToDisplay += currentWindow.GetPrice(); | |
372 | ||
373 | // the window part | |
374 | del = [overallHeight]; | |
375 | currentWindow = new Window(overallWidth, overallHeight, currentFirm.profilesSupport[currentFirmCurrentProfileIndex], del); | |
376 | currentWindow.AddWing(wingWidth, overallHeight); | |
377 | ||
378 | break; | |
379 | } | |
380 | case 'proz_fix_vrata': { | |
381 | // the door part | |
382 | del = [doorWidth]; | |
383 | currentWindow = new Window(doorWidth, doorHeight, currentFirm.profilesSupport[currentFirmCurrentProfileIndex], del); | |
384 | currentWindow.AddWing(doorWidth, doorHeight); | |
385 | resultToDisplay += currentFirm.glassesSupport[currentFirmCurrentGlassIndex].GetPrice(currentWindow.GetWindowArea()); | |
386 | resultToDisplay += currentWindow.GetPrice(); | |
387 | ||
388 | // the window part | |
389 | del = [0, 0]; | |
390 | currentWindow = new Window(overallWidth, overallHeight, currentFirm.profilesSupport[currentFirmCurrentProfileIndex], del); | |
391 | break; | |
392 | } | |
393 | case 'vrata': { | |
394 | del = [overallWidth] | |
395 | currentWindow = new Window(overallWidth, overallHeight, currentFirm.profilesSupport[currentFirmCurrentProfileIndex], del); | |
396 | currentWindow.AddWing(overallWidth, overallHeight); | |
397 | break; | |
398 | } | |
399 | ||
400 | default: break; | |
401 | } | |
402 | ||
403 | // Procceed and Return the COST result | |
404 | resultToDisplay += currentFirm.glassesSupport[currentFirmCurrentGlassIndex].GetPrice(currentWindow.GetWindowArea()); | |
405 | resultToDisplay += currentWindow.GetPrice(); | |
406 | resultToDisplay = resultToDisplay.toFixed(2); | |
407 | ||
408 | alert(resultToDisplay); | |
409 | })(); | |
410 | } | |
411 | ||
412 | function showElement(elementId, show) { | |
413 | var element = document.getElementById(elementId); | |
414 | ||
415 | if (show == false) { | |
416 | document.getElementById(elementId).style.visibility = 'hidden'; | |
417 | } | |
418 | else { | |
419 | document.getElementById(elementId).style.visibility = 'visible'; | |
420 | } | |
421 | } | |
422 | ||
423 | function LoadLists() { | |
424 | // First time initialazation and displayng of whole data | |
425 | // After select an option the other dropdowns has filtering | |
426 | ||
427 | // Every firm | |
428 | (loadFirms = function () { | |
429 | var selectLocation = document.getElementById('firmList'); | |
430 | ||
431 | for (var i = 0; i < customers.length; i++) { | |
432 | selectLocation.options[selectLocation.options.length] = new Option(customers[i].name) | |
433 | } | |
434 | })(); | |
435 | ||
436 | // Every Profile | |
437 | (loadProfiles = function () { | |
438 | var selectLocation = document.getElementById('profilesList'); | |
439 | ||
440 | for (var i in Profiles) { | |
441 | selectLocation.options[selectLocation.options.length] = new Option(i); | |
442 | } | |
443 | })(); | |
444 | ||
445 | // Every glass | |
446 | (loadGlasses = function () { | |
447 | var selectLocation = document.getElementById('glassesList'); | |
448 | ||
449 | for (var i in Glasess) { | |
450 | var t = Glasess[i]; | |
451 | selectLocation.options[selectLocation.options.length] = new Option(t.name); | |
452 | } | |
453 | })(); | |
454 | ||
455 | (loadMechanisms = function () { | |
456 | // removes every option before insert all to avoid dublicate | |
457 | document.getElementById('mechanismList').options.length = 1; | |
458 | ||
459 | var selectLocation = document.getElementById('mechanismList'); | |
460 | ||
461 | for (var i in MechanismsEnum) { | |
462 | selectLocation.options[selectLocation.options.length] = new Option(i); | |
463 | } | |
464 | })(); | |
465 | ||
466 | // The profileColors is inline written | |
467 | // TODO: Check the option items Contains() an option, and if not to add it, if yes -> no | |
468 | } | |
469 | ||
470 | function Filter(filterBy) { | |
471 | // Remove Every option | |
472 | function removeAllOptions(id) { | |
473 | document.getElementById(id).options.length = 1; | |
474 | } | |
475 | ||
476 | // Reload everytink | |
477 | function Clear() { | |
478 | removeAllOptions('firmList'); | |
479 | removeAllOptions('profilesList'); | |
480 | removeAllOptions('glassesList'); | |
481 | LoadLists(); | |
482 | } | |
483 | ||
484 | switch (filterBy) { | |
485 | case 'profile': { | |
486 | if (document.getElementById("profilesList").selectedIndex > 0) { | |
487 | ||
488 | // Removers every firm | |
489 | var _firmList = document.getElementById('firmList'); | |
490 | var _selectedFirm = _firmList.options[_firmList.selectedIndex].text; | |
491 | removeAllOptions('firmList'); | |
492 | ||
493 | // Set only firm's that have that profile | |
494 | var profilelist = document.getElementById('profilesList'); | |
495 | var profileName = profilelist.options[profilelist.selectedIndex].text; | |
496 | ||
497 | - | (loadFirmData = function () { |
497 | + | |
498 | - | // TODO: Filter the customer.push() tru argument City, for city fitering |
498 | + | |
499 | - | // eg.: InnerDataManager(burgas); -> push() every firm in 'Burgas' |
499 | + | |
500 | var selectLocation = document.getElementById('firmList'); | |
501 | selectLocation.options[selectLocation.options.length] = new Option(customers[i].name) | |
502 | } | |
503 | } | |
504 | } | |
505 | // restore the prevouse selected after refreshing | |
506 | _firmList.value = _selectedFirm; | |
507 | break; | |
508 | } | |
509 | - | var Claudi = new Customer('Клауди 2011 ЕООД'); |
509 | + | |
510 | - | Claudi.profilesSupport.push(new Profile(Profiles.KMG, 5.8, 5.8, 5.8, 5, 5)); |
510 | + | |
511 | - | Claudi.profilesSupport.push(new Profile(Profiles.VEKA, 5.8, 5.8, 5.8, 5, 5)); |
511 | + | |
512 | - | Claudi.profilesSupport.push(new Profile(Profiles.Salamander, 5.8, 5.8, 5.8, 5, 5)); |
512 | + | |
513 | - | Claudi.glassesSupport.push(new Glass(Glasess.regular, 24, 0.18)); |
513 | + | |
514 | - | Claudi.glassesSupport.push(new Glass(Glasess.Ka, 29, 0.18)); |
514 | + | |
515 | - | customers.push(Claudi); |
515 | + | |
516 | if (document.getElementById("firmList").selectedIndex > 0) { | |
517 | ||
518 | - | var RollPlast = new Customer('Ролпласт'); |
518 | + | |
519 | var _profileList = document.getElementById('profilesList'); | |
520 | var _selectedProfile = _profileList.options[_profileList.selectedIndex].text; | |
521 | ||
522 | var _glassList = document.getElementById('glassesList'); | |
523 | var _selectedGlass = _glassList.options[_glassList.selectedIndex].text; | |
524 | ||
525 | removeAllOptions('profilesList'); | |
526 | removeAllOptions('glassesList'); | |
527 | ||
528 | // Set only profiles that support that firm | |
529 | - | })(); |
529 | + | |
530 | var firmName = firmList.options[firmList.selectedIndex].text; | |
531 | var firmSearchIndex = 0; | |
532 | for (var i = 0; i < customers.length; i++) { | |
533 | if (customers[i].name == firmName) { | |
534 | firmSearchIndex = i; | |
535 | continue; | |
536 | } | |
537 | } | |
538 | // update the profile list | |
539 | debugger; | |
540 | for (var j = 0; j < customers[firmSearchIndex].profilesSupport.length; j++) { | |
541 | var selectLocation = document.getElementById('profilesList'); | |
542 | selectLocation.options[selectLocation.options.length] = new Option(customers[firmSearchIndex].profilesSupport[j].name); | |
543 | } | |
544 | ||
545 | // update the glass list | |
546 | for (var k = 0; k < customers[firmSearchIndex].glassesSupport.length; k++) { | |
547 | var selectLocation = document.getElementById('glassesList'); | |
548 | selectLocation.options[selectLocation.options.length] = new Option(customers[firmSearchIndex].glassesSupport[k].name.name); | |
549 | } | |
550 | ||
551 | // restore the prevouse selected after refreshing | |
552 | _profileList.value = _selectedProfile; | |
553 | break; | |
554 | } | |
555 | else { | |
556 | Clear(); | |
557 | break; | |
558 | } | |
559 | } | |
560 | ||
561 | case 'glass': { | |
562 | // TODO: | |
563 | break; | |
564 | } | |
565 | ||
566 | case 'clear': { | |
567 | // Clear the whole form | |
568 | Clear(); | |
569 | break; | |
570 | } | |
571 | ||
572 | case 'mech': { | |
573 | // Filter the firms that has current mech and profile that has supported | |
574 | ||
575 | if (document.getElementById("mechanismList").selectedIndex > 0) { | |
576 | // 1. Get all firms that support that mech | |
577 | // Removers every firm | |
578 | var _firmList = document.getElementById('firmList'); | |
579 | var _selectedFirm = _firmList.options[_firmList.selectedIndex].text; | |
580 | var loadedFirms = new Array(); | |
581 | removeAllOptions('firmList'); | |
582 | ||
583 | // Set only firm's that have that mechanism | |
584 | var mechanismList = document.getElementById('mechanismList'); | |
585 | var _mechanismName = mechanismList.options[mechanismList.selectedIndex].text; | |
586 | ||
587 | for (var i = 0; i < customers.length; i++) { | |
588 | for (var j = 0; j < customers[i].mechanismSupport.length; j++) { | |
589 | if (customers[i].mechanismSupport[j].name == _mechanismName) { | |
590 | var selectLocation = document.getElementById('firmList'); | |
591 | // TODO: | |
592 | //if (contains(loadedFirms,customers[i]) == false) { | |
593 | loadedFirms.push(customers[i]); | |
594 | selectLocation.options[selectLocation.options.length] = new Option(customers[i].name) | |
595 | //} | |
596 | } | |
597 | } | |
598 | } | |
599 | ||
600 | // 2. Get all the profiles of that firm that support that mech | |
601 | var _profileList = document.getElementById('profilesList'); | |
602 | removeAllOptions('profilesList'); | |
603 | debugger; | |
604 | for (var i = 0; i < loadedFirms.length; i++) { | |
605 | for (var j = 0; j < loadedFirms[i].profilesSupport.length; j++) { | |
606 | for (var k = 0; k < loadedFirms[i].mechanismSupport.length; k++) { | |
607 | if (loadedFirms[i].mechanismSupport[k].name == _mechanismName) { | |
608 | var tmp = loadedFirms[i].mechanismSupport[k]; | |
609 | if (loadedFirms[i].profilesSupport[j].name == tmp.forProfileType) { | |
610 | // TODO: | |
611 | _profileList.options[_profileList.options.length] = new Option(loadedFirms[i].profilesSupport[j].name); | |
612 | } | |
613 | } | |
614 | } | |
615 | } | |
616 | } | |
617 | } | |
618 | else { | |
619 | // DO NOTHING | |
620 | } | |
621 | ||
622 | break; | |
623 | } | |
624 | ||
625 | default: | |
626 | break; | |
627 | } | |
628 | } | |
629 | ||
630 | // ### MAIN ### | |
631 | ||
632 | // StartUp function | |
633 | function Initialize() { | |
634 | // Load saved positions for windows, and they'r images | |
635 | InitializePositions(); | |
636 | // First time initialazation and displayng of whole data | |
637 | LoadLists(); | |
638 | } | |
639 | ||
640 | // Load firms and specifications | |
641 | function loadFirmData(firmName) { | |
642 | // # Push Profile: | |
643 | // # new Profile(name, casePrice, wingPrice, delimeterPrice, delimeterPricePerCount, workCost); | |
644 | // # Description: | |
645 | // name: ... | |
646 | // casePrice: ... | |
647 | // ... | |
648 | // Customer #1 | |
649 | var inputFirm = new Customer(firmName); | |
650 | /* | |
651 | inputFirm.profilesSupport.push(new Profile(Profiles.KMG, 5.8, 5.8, 5.8, 5, 5)); | |
652 | inputFirm.profilesSupport.push(new Profile(Profiles.VEKA, 5.8, 5.8, 5.8, 5, 5)); | |
653 | inputFirm.profilesSupport.push(new Profile(Profiles.Salamander, 5.8, 5.8, 5.8, 5, 5)); | |
654 | inputFirm.glassesSupport.push(new Glass(Glasess.regular, 24, 0.18)); | |
655 | inputFirm.glassesSupport.push(new Glass(Glasess.Ka, 29, 0.18)); | |
656 | inputFirm.mechanismSupport.push(new Mechanism(MechanismsEnum.Endow, Profiles.KMG)); | |
657 | inputFirm.mechanismSupport.push(new Mechanism(MechanismsEnum.Siegenia, Profiles.KMG)); | |
658 | inputFirm.mechanismSupport.push(new Mechanism(MechanismsEnum.Siegenia, Profiles.VEKA)); | |
659 | */ | |
660 | customers.push(inputFirm); | |
661 | ||
662 | // Customer #2 | |
663 | /* | |
664 | var RollPlast = new Customer(firmName); | |
665 | RollPlast.profilesSupport.push(new Profile(Profiles.Trocal, 5.8, 5.8, 5.8)); | |
666 | RollPlast.profilesSupport.push(new Profile(Profiles.VEKA, 5.8, 5.8, 5.8)); | |
667 | RollPlast.glassesSupport.push(new Glass(Glasess.regular, 24, 1)); | |
668 | RollPlast.mechanismSupport.push(new Mechanism(MechanismsEnum.Winkhaus, Profiles.Trocal)); | |
669 | customers.push(RollPlast); | |
670 | */ | |
671 | ||
672 | // Customer #3 | |
673 | // | |
674 | // | |
675 | // | |
676 | ||
677 | } | |
678 | ||
679 | function Wizard(step) { | |
680 | // Recursive | |
681 | // 6-7 steps or more | |
682 | var stepMessages = new Array(); | |
683 | // Push some messages | |
684 | // Massage 1 - step1 | |
685 | // Massage 2 - step2 | |
686 | //.... | |
687 | ||
688 | var stepCounter = stepMessages.length; | |
689 | } | |
690 | ||
691 | function getCustomerIndexByName(customerName){ | |
692 | for (var i=0; i < customers.length; i++) { | |
693 | if (customers[i].name == customerName) { | |
694 | return i; | |
695 | continue; | |
696 | }; | |
697 | }; | |
698 | } |