PageSourceSearch

https://www.sycom.co.jp/custom/js_rs01/model.js

js sycom.co.jp collected 2026-10-03 19:12:38 UTC 63,970 bytes, 2,001 lines download raw bytes

1var conv = new Conversion();
2var valid = new Validate();
3var gflag = false;
4var discountflag = false;
5var viflag = false;
6var tiflag = false;
7var priceset;
8var partstype;
9var partslist;
10var rparts;
11var errparts;
12var dparts;
13var liset;
14var pnset;
15var ppset;
16var spset;
17var mpset;
18var stotal;
19var sunit;
20var sprice;
21var sship;
22var sgrt;
23var sgrtsum;
24var sdiscount;
25var gtp;
26var dprice;
27var rgrt;
28var grtselected;
29var sgrtn;
30var sgrtp;
31var vinstselected;
32var ligrt;
33var rvinst;
34var livinst;
35var svinstn;
36var svinstp;
37var fc = [0, 0];
38var discount = 0;
39var tidiscount = 0;
40var rtradein;
41var stradeinn;
42var stradeinp;
43var litradein;
44var tiselected;
45var stidcnt;
46var sep;
47var oldie = false;
48var ddflag = false;
49var cdflag = false;
50var url_issuing = false;
51var issued_url = null;
52var customized_access = false;
53
54
55function urlIssuedResult(request) {
56    var res;
57    var mm;
58
59    res = JSON.parse(request.responseText);
60
61    document.getElementById('copy_to_clipboard').disabled = false;
62    url_issuing = false;
63
64    if (res.result == 'OK') {
65        issued_url = res.url;
66
67        if (res.from == 'clipboard') {
68            if (navigator.clipboard) {
69                navigator.clipboard.writeText(issued_url).then(
70                    () => {
71                        var mm = new ModelMessage();
72                        mm.show(mm.URL_TO_CLIPBOARD_OK, [ issued_url ]);
73                    },
74                    () => {
75                        var mm = new ModelMessage();
76                        mm.show(mm.URL_TO_CLIPBOARD_NG, [ issued_url ]);
77                    },
78                );
79            } else {
80                mm = new ModelMessage();
81                mm.show(mm.URL_TO_CLIPBOARD_NG, [ issued_url ]);
82            }
83        } else if (res.from == 'x') {
84            var url = 'https://twitter.com/intent/tweet';
85            var str = '【BTOパソコン サイコム】';
86            str += document.getElementById('model_name').value + "\n";
87
88            url += '?original_referer=';
89            url += encodeURIComponent(document.getElementById('nhost').value);
90            url += '&text=' + encodeURIComponent(str);
91            url += '&url=' + encodeURIComponent(issued_url);
92
93            window.open(url);
94
95        } else if (res.from == 'mail') {
96            mm = new ModelMessage();
97            mm.show(mm.URL_MAIL_SEND);
98        }
99    } else {
100        mm = new ModelMessage();
101        mm.show(mm.URL_ISSUE_ERR);
102    }
103}
104
105
106function issueURL(from, maddr) {
107    var sajx;
108    var request;
109    var str = '';
110    var parts = [];
111    var msg;
112    var mm;
113    var i;
114    var no = document.getElementById('modelno').value;
115    var pcmodel = { 'no': no,
116                    'eg_flag': false,
117                    'vi_cd': null };
118
119    for (i = 0; i < partslist.length; i++) {
120        var pd = { 'no': null,
121                   'type_cd': partstype[i][0],
122                   'name': null,
123                   'price': 0 };
124        if (partslist[i].length > 0) {
125            pd.no = partslist[i][sep[i]].no;
126            pd.name = partslist[i][sep[i]].name;
127            pd.price = partslist[i][sep[i]].price;
128        }
129        parts.push(pd);
130    }
131
132    if (gflag) {
133        for (i = 0; i < 2; i++) {
134            if (rgrt[i].checked) {
135                if (rgrt[i].value != '0') {
136                    pcmodel.eg_flag = true;
137                }
138                break;
139            }
140        }
141    }
142
143    if (viflag) {
144        for (i = 0; i < rvinst.length; i++) {
145            if (rvinst[i].checked) {
146                var viv = rvinst[i].value.split(':');
147                if (viv[0] != 'n') {
148                    pcmodel.vi_cd = viv[0];
149                }
150                break;
151            }
152        }
153    }
154
155    try {
156        str = 'no=' + no + '&mode=save&from=' + from;
157        str += '&model=' + encodeURIComponent(JSON.stringify(pcmodel));
158        str += '&parts=' + encodeURIComponent(JSON.stringify(parts));
159        if (from == 'mail') {
160            str += '&maddr=' + encodeURIComponent(maddr);
161        }
162    } catch (e) {
163        mm = new ModelMessage();
164        mm.show(mm.URL_ISSUE_ERR);
165        document.getElementById('copy_to_clipboard').disabled = false;
166        url_issuing = false;
167        return;
168    }
169
170    sajx = new SimpleAjax();
171    request = sajx.createHttpRequest();
172    if (!request) {
173        mm = new ModelMessage();
174        mm.show(mm.URL_ISSUE_ERR);
175        url_issuing = false;
176        return;
177    }
178
179    sajx.setCallBack(urlIssuedResult, request);
180
181    request.open('POST', '/custom/model');
182    sajx.setReqHeader();
183
184    request.send(str);
185}
186
187
188function urlToClipBoard() {
189    if (url_issuing) {
190        return;
191    }
192    if (issued_url === null) {
193        url_issuing = true;
194        document.getElementById('copy_to_clipboard').disabled = true;
195        issueURL('clipboard');
196    } else {
197        if (navigator.clipboard) {
198            navigator.clipboard.writeText(issued_url).then(
199                () => {
200                    var mm = new ModelMessage();
201                    mm.show(mm.URL_TO_CLIPBOARD_OK, [ issued_url ]);
202                },
203                () => {
204                    var mm = new ModelMessage();
205                    mm.show(mm.URL_TO_CLIPBOARD_NG, [ issued_url ]);
206                },
207            );
208        } else {
209            var mm = new ModelMessage();
210            mm.show(mm.URL_TO_CLIPBOARD_NG, [ issued_url ]);
211        }
212    }
213}
214
215
216function urlToX() {
217    if (url_issuing) {
218        return;
219    }
220    if (issued_url === null) {
221        url_issuing = true;
222        document.getElementById('copy_to_clipboard').disabled = true;
223        issueURL('x');
224    } else {
225        var url = 'https://twitter.com/intent/tweet';
226        var str = '【BTOパソコン サイコム】';
227        str += document.getElementById('model_name').value + "\n";
228
229        url += '?original_referer=';
230        url += encodeURIComponent(document.getElementById('nhost').value);
231        url += '&text=' + encodeURIComponent(str);
232        url += '&url=' + encodeURIComponent(issued_url);
233
234        window.open(url);
235    }
236}
237
238
239function urlToMail() {
240    if (url_issuing) {
241        return;
242    }
243    url_issuing = true;
244    document.getElementById('copy_to_clipboard').disabled = true;
245
246    var msg = "\n発行した URL を送信するメールアドレスを入力してください。\n";
247    var maddr = prompt(msg);
248    if (maddr === null || (maddr = maddr.trim()) == '') {
249        document.getElementById('copy_to_clipboard').disabled = false;
250        url_issuing = false;
251        return;
252    }
253
254    if (!(new Validate()).chkMailAddr(maddr)) {
255        var mm = new ModelMessage();
256        mm.show(mm.INVALID_MAIL_ADDR);
257        document.getElementById('copy_to_clipboard').disabled = false;
258        url_issuing = false;
259        return;
260    }
261
262    issueURL('mail', maddr);
263}
264
265
266function checkedParts(ti) {
267    var i = 0;
268
269    if (rparts[ti]) {
270        for (var j = 0; j < rparts[ti].length; j++) {
271            if (rparts[ti][j].checked) {
272                i = j;
273                break;
274            }
275        }
276    }
277    return(i);
278}
279
280
281function nodeText(el) {
282    var tstr;
283    var dtlflag = false;
284
285    if (el.nodeType == 1 &&
286        el.tagName == 'SPAN' &&
287        el.className == 'name') {
288        for (var i = 0; i < el.childNodes.length; i++) {
289            var cel = el.childNodes[i];
290            if (cel.nodeType == 1 &&
291                cel.tagName == 'A' &&
292                cel.className.match(/^colorboxLink/)) {
293                dtlflag = true;
294                break;
295            }
296        }
297    }
298
299    try {
300        if (el.nodeType == 1 &&
301            el.tagName == 'SPAN' &&
302            el.className == 'price') {
303            tstr = el.innerHTML.replace(/<em>.+<br>/, '');
304            tstr = conv.strTrim(tstr.replace(/<img\s.+>/i, ''));
305        } else {
306            tstr = conv.strTrim(el.innerText);
307        }
308    } catch (x) {
309        var r = el.ownerDocument.createRange();
310        r.selectNodeContents(el);
311        tstr = conv.strTrim(r.toString());
312    }
313
314    if (dtlflag) {
315        tstr = tstr.replace(/詳細$/, '');
316    }
317
318    return(tstr);
319}
320
321
322function selectedHtml(pn, pp, dflag) {
323    var ppt = pp;
324    var ss = '<span class="name">' + pn + '</span>';
325    if (!dflag) {
326        ss += '<span class="price strong02">';
327    } else {
328        ss += '<span class="price">';
329    }
330    if (ppt.match(/<em>.+<\/em>/)) {
331        ppt = ppt.replace(/<em>.+<br>/i, '');
332    }
333    ss += ppt + '</span>';
334    return(ss);
335}
336
337
338function updateDemandParts() {
339    var tstr, pstr;
340    var imgstr;
341    var i, j, k, l;
342    var dflag;
343    var orgprice;
344
345    for (i = 0; i < partslist.length; i++) {
346        if (partslist[i].length == 0) {
347            continue;
348        }
349        for (j = 0; j < partslist[i].length; j++) {
350            if (partslist[i][j].no == 'n' ||
351                partslist[i][j].no == '' ||
352                !partslist[i][j].stock ||
353                partslist[i][j].eos) {
354                continue;
355            }
356            var flag = true;
357
358            for (k = 0; k < dparts.length; k++) {
359                if (partslist[i][j].no == dparts[k].no) {
360                    flag = false;
361                    for (l = 0; l < dparts[k].dno.length; l++) {
362                        for (var m = 0; m < rparts.length; m++) {
363                            if (!rparts[m]) {
364                                continue;
365                            }
366                            if (rparts[m][sep[m]].value == dparts[k].dno[l]) {
367                                flag = true;
368                                break;
369                            }
370                        }
371                        if (flag) {
372                            break;
373                        }
374                    }
375                    break;
376                }
377            }
378            if (flag) {
379                tstr = ppset[i][j].innerHTML;
380                if (tstr.match(/<img\s.+>/i) && !tstr.match(/alert_01\.gif/)) {  // 組み合わせ不可
381                    ppset[i][j].innerHTML = tstr.replace(/<img\s.+>/i, '');
382                }
383                if (tstr.match(/<img\s.+>/i) && tstr.match(/alert_02\.gif/)) {  // 選択不可
384                    if (partstype[i][0] != '0000') {
385                        if (partslist[i][j].discount == 0) {
386                            if (partslist[i][j].dflag) {
387                                pstr = '(標準)';
388                            } else {
389                                pstr = conv.insertComma(String(partslist[i][j].price)) + '円';
390                                if (partslist[i][j].price >= 0) {
391                                    pstr = '+' + pstr;
392                                }
393                            }
394                            dflag = partslist[i][j].dflag;
395                        } else {
396                            pstr = '<em>';
397                            if (partslist[i][j].dflag) {
398                                pstr += '(標準)';
399                            } else {
400                                orgprice = partslist[i][j].price + partslist[i][j].discount;
401                                if (orgprice >= 0) {
402                                    pstr += '+';
403                                }
404                                pstr += conv.insertComma(String(orgprice)) + '円';
405                            }
406                            pstr += '</em><br>';
407                            if (partslist[i][j].price >= 0) {
408                                pstr += '+';
409                            }
410                            pstr += conv.insertComma(String(partslist[i][j].price)) + "円";
411                            dflag = false;
412                        }
413                    } else {
414                        pstr = '';
415                        if (partslist[i][j].discount != 0) {
416                            orgprice = parseInt(mpset[i], 10) + partslist[i][j].discount;
417                            pstr = "<em>" + conv.insertComma(String(orgprice)) + "円";
418                            pstr += "</em><br>";
419                        }
420                        pstr += conv.insertComma(mpset[i]) + '円';
421                        dflag = partslist[i][j].dflag;
422                    }
423                    ppset[i][j].innerHTML = pstr;
424                    if (sep[i] == j) {
425                        spset[i].innerHTML = selectedHtml(pnset[i][j].innerHTML,
426                                                          ppset[i][j].innerHTML,
427                                                          dflag);
428                    }
429                }
430            } else {
431                tstr = ppset[i][j].innerHTML;
432                if (!tstr.match(/<img\s.+>/i) || !tstr.match(/alert_0[12]\.gif/)) {
433                    imgstr = '<img src="/custom/img/alert_02.gif" height="13px" alt="(選択不可)" />';
434                    tstr += imgstr;
435                    ppset[i][j].innerHTML = tstr;
436                    if (sep[i] == j) {
437                        pstr = nodeText(ppset[i][j]);
438                        if (partslist[i][j].dflag && partslist[i][j].discount == 0) {
439                            dflag = true;
440                        } else {
441                            dflag = false;
442                        }
443                        imgstr = '<img src="/custom/img/alert_02.gif" height="15px" alt="(選択不可)" />';
444                        spset[i].innerHTML = selectedHtml(pnset[i][j].innerHTML,
445                                                          pstr + imgstr,
446                                                          dflag);
447                    }
448                }
449            }
450        }
451    }
452
453    // 訪問設置サービス
454    if (viflag) {
455        if (checkOSselected()) {
456            for (i = 0; i < rvinst.length; i++) {
457                if (rvinst[i].value.split(':')[0] == 'n') {
458                    continue;
459                }
460                tstr = svinstp[i].innerHTML;
461                if (tstr.match(/<img\s.+>/i) && tstr.match(/alert_02\.gif/)) {  // 選択不可
462                    svinstp[i].innerHTML = tstr.replace(/<img\s.+>/i, '');
463                    if (rvinst[i].checked) {
464                        vinstselected.innerHTML = selectedHtml(nodeText(svinstn[i]),
465                                                               nodeText(svinstp[i]),
466                                                               false);
467                    }
468                }
469            }
470        } else {
471            for (i = 0; i < rvinst.length; i++) {
472                if (rvinst[i].value.split(':')[0] == 'n') {
473                    continue;
474                }
475                tstr = svinstp[i].innerHTML;
476                if (!tstr.match(/<img\s.+>/i) || !tstr.match(/alert_02\.gif/)) {
477                    imgstr = '<img src="/custom/img/alert_02.gif" height="13px" alt="(選択不可)" />';
478                    tstr += imgstr;
479                    svinstp[i].innerHTML = tstr;
480                }
481                tstr = vinstselected.innerHTML;
482                if (rvinst[i].checked &&
483                    (!tstr.match(/<img\s.+>/i) || !tstr.match(/alert_02\.gif/))) {
484                    pstr = nodeText(svinstp[i]);
485                    imgstr = '<img src="/custom/img/alert_02.gif" height="15px" alt="(選択不可)" />';
486                    vinstselected.innerHTML = selectedHtml(nodeText(svinstn[i]),
487                                                           pstr + imgstr,
488                                                           false);
489                }
490            }
491        }
492    }
493}
494
495
496function updateAllErrParts() {
497    var i, j, k;
498    var eno = new Array();
499    var temp;
500    var hstr;
501    var dflag;
502
503    for (i = 0; i < partslist.length; i++) {
504        if (partslist[i].length == 0) {
505            continue;
506        }
507        for (j = 0; j < rparts[i].length; j++) {
508            if (partslist[i][j].stock && !partslist[i][j].eos) {
509                hstr = ppset[i][j].innerHTML;
510                if (hstr.match(/<img\s.+>/i) && hstr.match(/alert_01\.gif/)) { // 組み合わせ不可
511                    hstr = hstr.replace(/<img\s.+>/i, '');
512                    ppset[i][j].innerHTML = hstr;
513                    if (sep[i] == j) {
514                        if (partslist[i][j].dflag && partslist[i][j].discount == 0) {
515                            dflag = true;
516                        } else {
517                            dflag = false;
518                        }
519                        spset[i].innerHTML = selectedHtml(pnset[i][j].innerHTML,
520                                                          hstr,
521                                                          dflag);
522                    }
523                }
524            }
525        }
526        temp = rparts[i][sep[i]].value;
527        if (temp == 'n' || temp == '') {
528            continue;
529        }
530        for (j = 0; j < errparts.length; j++) {
531            if (temp == errparts[j].no) {
532                for (k = 0; k < errparts[j].errno.length; k++) {
533                    var flag = false;
534                    for (var l = 0; l < eno.length; l++) {
535                        if (errparts[j].errno[k] == eno[l]) {
536                            flag = true;
537                            break;
538                        }
539                    }
540                    if (!flag) {
541                        eno.push(errparts[j].errno[k]);
542                    }
543                }
544            }
545        }
546    }
547    for (i = 0; i < partslist.length; i++) {
548        if (partslist[i].length == 0) {
549            continue;
550        }
551        for (j = 0; j < partslist[i].length; j++) {
552            if (partslist[i][j].no == 'n' || partslist[i][j].no == '') {
553                continue;
554            }
555            for (k = 0; k < eno.length; k++) {
556                if (partslist[i][j].no == eno[k] &&
557                    partslist[i][j].stock &&
558                    !partslist[i][j].eos) {
559                    hstr = ppset[i][j].innerHTML;
560                    if (!hstr.match(/<img\s.+>/i) ||
561                        hstr.match(/alert_02\.gif/) ||   // 選択不可
562                        !hstr.match(/alert_01\.gif/)) {  // 組み合わせ不可
563                        var tstr = ppset[i][j].innerHTML.replace(/<img\s.+>/i, '');
564                        var istr = '<img src="/custom/img/alert_01.gif" ';
565                        istr += 'alt="(組み合わせ不可)" height="13px" />';
566                        ppset[i][j].innerHTML = tstr + istr;
567                        if (sep[i] == j) {
568                            tstr = nodeText(ppset[i][j]);
569                            istr = '<img src="/custom/img/alert_01.gif" ';
570                            istr += 'alt="(組み合わせ不可)" height="15px" />';
571                            if (partslist[i][j].dflag && partslist[i][j].discount == 0) {
572                                dflag = true;
573                            } else {
574                                dflag = false;
575                            }
576                            spset[i].innerHTML = selectedHtml(pnset[i][j].innerHTML,
577                                                              tstr + istr,
578                                                              dflag);
579                        }
580                    }
581                    break;
582                }
583            }
584        }
585    }
586
587    // 選択必須パーツについてのチェック
588    updateDemandParts();
589}
590
591
592function changeParts(el, ptno, si) {
593    var idp;
594    var msg;
595    var i, j, k;
596    var flag = false;
597    var eflag = false;
598    var eno;
599    var prei;
600    var pname;
601    var dflag;
602    var mm = null;
603    var replace_str;
604
605    prei = sep[ptno];
606    sep[ptno] = si;
607
608    if (el.value != '' && el.value != 'n') {
609        for (i = 0; i < errparts.length; i++) {
610            if (el.value == errparts[i].no) {
611                eno = errparts[i].errno;
612                flag = true;
613                break;
614            }
615        }
616    }
617
618    if (flag) {
619        var pename = new Array();
620        pname = '';
621        for (i = 0; i < partslist.length; i++) {
622            if (i == ptno || partslist[i].length == 0) {
623                continue;
624            }
625            for (j = 0; j < partslist[i].length; j++) {
626                if (partslist[i][j].no == 'n' ||
627                    partslist[i][j].no == ''||
628                    !partslist[i][j].stock &&
629                    partslist[i][j].eos) {
630                    continue;
631                }
632                for (k = 0; k < eno.length; k++) {
633                    if (partslist[i][j].no == eno[k]) {
634                        if (sep[i] == j) {
635                            if (!eflag) {
636                                pname = partslist[ptno][si].name;
637                                eflag = true;
638                            }
639                            pename.push(partslist[i][j].name);
640                            var hstr = ppset[i][j].innerHTML;
641                            if (!hstr.match(/<img\s.+>/i) ||
642                                hstr.match(/alert_02\.gif/) ||   // 選択不可
643                                !hstr.match(/alert_01\.gif/)) {  // 組み合わせ不可
644                                var tstr = ppset[i][j].innerHTML.replace(/<img\s.+>/i, '');
645                                var istr = '<img src="/custom/img/alert_01.gif" ';
646                                istr += 'alt="(組み合わせ不可)" height="13px" />';
647                                ppset[i][j].innerHTML = tstr + istr;
648                                istr = '<img src="/custom/img/alert_01.gif" ';
649                                istr += 'alt="(組み合わせ不可)" height="15px" />';
650                                if (partslist[i][j].dflag && partslist[i][j].discount == 0) {
651                                    dflag = true;
652                                } else {
653                                    dflag = false;
654                                }
655                                spset[i].innerHTML = selectedHtml(pnset[i][j].innerHTML,
656                                                                  nodeText(ppset[i][j]) + istr,
657                                                                  dflag);
658                            }
659                            eflag = true;
660                        }
661                        break;
662                    }
663                }
664            }
665        }
666        if (eflag) {
667            // メッセージ表示
668            mm = new ModelMessage();
669            replace_str = [ pname, '' ];
670            for (i = 0; i < pename.length; i++) {
671                replace_str[1] += '・' + pename[i] + '\n';
672            }
673            mm.show(mm.ASSEM_NG, replace_str);
674        }
675    }
676
677    if (!eflag) {
678        var deflag = false;
679        var dno;
680
681        flag = false;
682        if (el.value != '' && el.value != 'n') {
683            for (i = 0; i < dparts.length; i++) {
684                if (el.value == dparts[i].no) {
685                    dno = dparts[i].dno;
686                    flag = true;
687                    break;
688                }
689            }
690        }
691
692        if (flag) {
693            var sflag = false;
694            for (i = 0; i < dno.length; i++) {
695                for (j = 0; j < rparts.length; j++) {
696                    if (rparts[j] &&
697                        dno[i] == rparts[j][sep[j]].value) {
698                        sflag = true;
699                        break;
700                    }
701                }
702                if (sflag) {
703                    break;
704                }
705            }
706
707            if (!sflag) {
708                pname = '';
709                for (i = 0; i < partslist.length; i++) {
710                    if (partslist[i].length == 0) {
711                        continue;
712                    }
713                    for (j = 0; j < partslist[i].length; j++) {
714                        if (el.value == partslist[i][j].no) {
715                            pname = partslist[i][j].name;
716                            break;
717                        }
718                    }
719                    if (pname != '') {
720                        break;
721                    }
722                }
723                // メッセージ表示
724                if (mm === null) {
725                    mm = new ModelMessage();
726                }
727                mm.show(mm.DEMAND_NG, [ '・' + pname + '\n' ]);
728                deflag = true;
729            }
730        }
731
732        if (!deflag) {
733            var preno = rparts[ptno][prei].value;
734            if (preno != 'n' && preno != '') {
735                pname = new Array();
736                for (i = 0; i < dparts.length; i++) {
737                    flag = false;
738                    for (j = 0; j < dparts[i].dno.length; j++) {
739                        if (preno == dparts[i].dno[j]) {
740                            flag = true;
741                            break;
742                        }
743                    }
744                    if (!flag) {
745                        continue;
746                    }
747
748                    flag = false;
749                    for (j = 0; j < rparts.length; j++) {
750                        if (!rparts[j]) {
751                            continue;
752                        }
753                        if (rparts[j][sep[j]].value == dparts[i].no) {
754                            flag = true;
755                            break;
756                        }
757                    }
758                    if (!flag) {
759                        continue;
760                    }
761
762                    flag = false;
763                    for (j = 0; j < rparts.length; j++) {
764                        if (!rparts[j]) {
765                            continue;
766                        }
767                        for (k = 0; k < dparts[i].dno.length; k++) {
768                            if (rparts[j][sep[j]].value == dparts[i].dno[k]) {
769                                flag = true;
770                                break;
771                            }
772                        }
773                        if (flag) {
774                            break;
775                        }
776                    }
777                    if (!flag) {
778                        var pflag = false;
779                        for (j = 0; j < partslist.length; j++) {
780                            if (partslist[j].length == 0) {
781                                continue;
782                            }
783                            for (k = 0; k < partslist[j].length; k++) {
784                                if (dparts[i].no == partslist[j][k].no) {
785                                    pname.push(partslist[j][k].name);
786                                    pflag = true;
787                                    break;
788                                }
789                            }
790                            if (pflag) {
791                                break;
792                            }
793                        }
794                    }
795                }
796                if (pname.length > 0) {
797                    // メッセージ表示
798                    if (mm === null) {
799                        mm = new ModelMessage();
800                    }
801                    for (i = 0, msg = ''; i < pname.length; i++) {
802                        msg += '・' + pname[i] + '\n';
803                    }
804                    mm.show(mm.DEMAND_NG, [ msg ]);
805                    deflag = true;
806                }
807            }
808        }
809
810        if (viflag && !deflag &&
811            partstype[ptno][1] == 'OS' && partslist[ptno][si].no == 'n') {
812            var viv;
813            for (i = 0; i < rvinst.length; i++) {
814                if (rvinst[i].checked) {
815                    viv = rvinst[i].value;
816                    break;
817                }
818            }
819            if (viv.split(':')[0] != 'n') {
820                // メッセージ表示
821                if (mm === null) {
822                    mm = new ModelMessage();
823                }
824                mm.show(mm.OS_REQUIRED_VI);
825            }
826        }
827    }
828
829    updateAllErrParts(el);
830    calc();
831
832    if (partslist[ptno][si].ds_flag) {
833        // メッセージ表示
834        if (mm === null) {
835            mm = new ModelMessage();
836        }
837        mm.show(mm.DIRECT_SEND);
838    }
839
840    if (issued_url !== null) {
841        issued_url = null;
842    }
843}
844
845
846function partsclick(el) {
847    var idp;
848    var ptno;
849    var si;
850    var dflag;
851    var price;
852
853    if (el.id.match(/^[ls]_parts/)) {
854        idp = el.id.split('_');
855    } else {
856        var w = el.id.split('_');
857        idp = [null, null, w[1], w[2]];
858    }
859
860    ptno =  parseInt(idp[2], 10);
861    if (partslist[ptno].length == 0) {
862        return;
863    }
864    si = parseInt(idp[3], 10);
865    if (sep[ptno] == si || !partslist[ptno][si].stock || partslist[ptno][si].eos) {
866        return;
867    }
868
869    if (!oldie) {
870        liset[ptno][si].setAttribute("class", "on");
871    } else {
872        liset[ptno][si].className = "on";
873    }
874    rparts[ptno][si].checked = true;
875    for (var i = 0; i < liset[ptno].length; i++) {
876        if (i != si) {
877            try {
878                if (liset[ptno][i].hasAttribute("class") &&
879                    liset[ptno][i].getAttribute("class") != "stopOrder") {
880                    liset[ptno][i].removeAttribute("class");
881                }
882            } catch (x) {
883                if (liset[ptno][i].className != "stopOrder") {
884                    liset[ptno][i].className = "";
885                }
886            }
887        }
888    }
889
890    changeParts(rparts[ptno][si], ptno, si);
891
892    price = nodeText(ppset[ptno][si]);
893    if (price.indexOf("標準") != -1 ||
894        price.indexOf('不可') >= 0) {
895        dflag = true;
896    } else {
897        dflag = false;
898    }
899    var pstr = ppset[ptno][si].innerHTML;
900    if (pstr.match(/<img\s.+>/i) && pstr.match(/alert_0[12]\.gif/)) {
901        pstr = pstr.replace(/height=['"]13(px)?['"]/, 'height="15px"');
902    }
903    spset[ptno].innerHTML = selectedHtml(nodeText(pnset[ptno][si]),
904                                         pstr,
905                                         dflag);
906}
907
908
909function grtclick(el) {
910    var si;
911    var dflag;
912
913    if (el.id.match(/^(l_grt_|grt_n_)/)) {
914        si = parseInt(el.id.split('_')[2], 10);
915    } else {
916        si = parseInt(el.id.split('_')[1], 10);
917    }
918    if (si == 0) {
919        try {
920            if (ligrt[1].hasAttribute("class")) {
921                ligrt[1].removeAttribute("class");
922            }
923            if (!ligrt[0].hasAttribute("class")) {
924                ligrt[0].setAttribute("class", "on");
925            }
926        } catch (x) {
927            if (ligrt[1].className == "on") {
928                ligrt[1].className = "";
929            }
930            if (ligrt[0].className != "on") {
931                ligrt[0].className = "on";
932            }
933        }
934        rgrt[0].checked = true;
935        dflag = true;
936    } else {
937        try {
938            if (ligrt[0].hasAttribute("class")) {
939                ligrt[0].removeAttribute("class");
940            }
941            if (!ligrt[1].hasAttribute("class")) {
942                ligrt[1].setAttribute("class", "on");
943            }
944        } catch (x) {
945            if (ligrt[0].className == "on") {
946                ligrt[0].className = "";
947            }
948            if (ligrt[1].className != "on") {
949                ligrt[1].className = "on";
950            }
951        }
952        rgrt[1].checked = true;
953        dflag = false;
954    }
955
956    calc();
957
958    grtselected.innerHTML = selectedHtml(nodeText(sgrtn[si]),
959                                         nodeText(sgrtp[si]),
960                                         dflag);
961}
962
963
964function checkOSselected() {
965    var i;
966    var cpuindex;
967    var flag = false;
968
969    for (i = 0; i < partstype.length; i++) {
970        if (partstype[i][1] == 'OS') {
971            cpuindex = i;
972            break;
973        }
974    }
975
976    for (i = 0; i < rparts[cpuindex].length; i++) {
977        if (rparts[cpuindex][i].checked) {
978            if (partslist[cpuindex][i].no != 'n') {
979                flag = true;
980            }
981            break;
982        }
983    }
984
985    return(flag);
986}
987
988
989function vinstclick(el) {
990    var si;
991    var dflag = false;
992    var rv;
993    var i;
994    var msg;
995
996    if (el.id.match(/^l_vinst_/) || el.id.match(/^vinst_[np]_/)) {
997        si = parseInt(el.id.split('_')[2], 10);
998    } else {
999        si = parseInt(el.id.split('_')[1], 10);
1000    }
1001    for (i = 0; i < livinst.length; i++) {
1002        if (i != si) {
1003            try {
1004                if (livinst[i].hasAttribute('class')) {
1005                    livinst[i].removeAttribute('class');
1006                }
1007            } catch (x) {
1008                if (livinst[i].className == 'on') {
1009                    livinst[i].className = '';
1010                }
1011            }
1012            rvinst[i].checked = false;
1013        } else {
1014            try {
1015                if (!livinst[i].hasAttribute('class')) {
1016                    livinst[i].setAttribute('class', 'on');
1017                }
1018            } catch (x) {
1019                if (livinst[i].className != 'on') {
1020                    livinst[i].className = 'on';
1021                }
1022            }
1023            rvinst[i].checked = true;
1024            rv = rvinst[i].value.split(':');
1025            if (rv[0] == 'n') {
1026                dflag = true;
1027            }
1028        }
1029    }
1030
1031    if (rv[0] != 'n' && !checkOSselected()) {
1032        // メッセージ表示
1033        var mm = new ModelMessage();
1034        mm.show(mm.OS_REQUIRED_VI);
1035    }
1036
1037    vinstselected.innerHTML = selectedHtml(nodeText(svinstn[si]),
1038                                           nodeText(svinstp[si]),
1039                                           dflag);
1040
1041    updateDemandParts();
1042    calc();
1043}
1044
1045
1046function tradeinclick(el) {
1047    var si;
1048    var dflag;
1049
1050    if (el.id.match(/^l_tradein_/) || el.id.match(/^tradein_n_/)) {
1051        si = parseInt(el.id.split('_')[2], 10);
1052    } else {
1053        si = parseInt(el.id.split('_')[1], 10);
1054    }
1055    if (si == 0) {
1056        if (litradein[1].className == "on") {
1057            litradein[1].className = "";
1058        }
1059        if (litradein[0].className != "on") {
1060            litradein[0].className = "on";
1061        }
1062        rtradein[0].checked = true;
1063        dflag = true;
1064    } else {
1065        if (litradein[0].className == "on") {
1066            litradein[0].className = "";
1067        }
1068        if (litradein[1].className != "on") {
1069            litradein[1].className = "on";
1070        }
1071        rtradein[1].checked = true;
1072        dflag = false;
1073    }
1074
1075    calc();
1076
1077    tiselected.innerHTML = selectedHtml(nodeText(stradeinn[si]),
1078                                        nodeText(stradeinp[si]),
1079                                        dflag);
1080}
1081
1082
1083function setParam(sp) {
1084    var el;
1085    var pel;
1086    var i;
1087    var str = '';
1088
1089    while (sp.lastChild) {
1090        sp.removeChild(sp.lastChild);
1091    }
1092
1093    el = document.createElement('input');
1094    el.type = 'hidden';
1095    el.name = 'pp';
1096    el.value = '0';
1097    sp.appendChild(el);
1098
1099    el = document.createElement('input');
1100    el.type = 'hidden';
1101    el.name = 'np';
1102    el.value = '1';
1103    sp.appendChild(el);
1104
1105    el = document.createElement('input');
1106    el.type = 'hidden';
1107    el.name = 'p0_no';
1108    el.value = document.getElementById('modelno').value;
1109    sp.appendChild(el);
1110
1111    for (i = 0; i < partstype.length; i++) {
1112        str += partstype[i][0] + ':';
1113        if (partslist[i].length != 0) {
1114            str += rparts[i][sep[i]].value;
1115        }
1116        str += "\t";
1117    }
1118    el = document.createElement('input');
1119    el.type = 'hidden';
1120    el.name = 'p0_parts';
1121    el.value = str.substring(0, str.length - 1);
1122    sp.appendChild(el);
1123
1124    el = document.createElement('input');
1125    el.type = 'hidden';
1126    el.name = 'p0_num';
1127    el.value = priceset.num.toString();
1128    sp.appendChild(el);
1129
1130    if (gflag) {
1131        var g;
1132        for (var gi = 0; gi < rgrt.length; gi++) {
1133            if (rgrt[gi].checked) {
1134                g = rgrt[gi].value;
1135                break;
1136            }
1137        }
1138        el = document.createElement('input');
1139        el.type = 'hidden';
1140        el.name = 'p0_grt';
1141        el.value = g;
1142        sp.appendChild(el);
1143    }
1144
1145    if (viflag) {
1146        var viv;
1147        for (var vii = 0; vii < rvinst.length; vii++) {
1148            if (rvinst[vii].checked) {
1149                viv = rvinst[vii].value;
1150                break;
1151            }
1152        }
1153        el = document.createElement('input');
1154        el.type = 'hidden';
1155        el.name = 'p0_vinst';
1156        el.value = viv;
1157        sp.appendChild(el);
1158    }
1159
1160    if (tiflag) {
1161        var tiv;
1162        if (rtradein[0].checked) {
1163            tiv = rtradein[0].value;
1164        } else {
1165            tiv = rtradein[1].value;
1166        }
1167        el = document.createElement('input');
1168        el.type = 'hidden';
1169        el.name = 'p0_tradein';
1170        el.value = tiv;
1171        sp.appendChild(el);
1172    }
1173
1174    pel = document.getElementsByName("pre_p");
1175    for (i = 0; i < pel.length; i++) {
1176        el = document.createElement('input');
1177        el.type = 'hidden';
1178        el.name = pel[i].id;
1179        el.value = pel[i].value;
1180        sp.appendChild(el);
1181    }
1182}
1183
1184
1185function checkParam() {
1186    var msg;
1187    var temp;
1188    var dpname = new Array();
1189    var i, j, k, l;
1190    var mm = null;
1191    var replace_str;
1192
1193    for (i = 0; i < partslist.length; i++) {
1194        if (partslist[i].length == 0) {
1195            continue;
1196        }
1197        temp = rparts[i][sep[i]].value;
1198        if (temp == 'n' || temp == '') {
1199            continue;
1200        }
1201        if (!partslist[i][sep[i]].stock || partslist[i][sep[i]].eos) {
1202            try {
1203                spset[i].scrollIntoView();
1204                window.scrollBy(0, -100);
1205            } catch (x) {
1206                rparts[i][sep[i]].focus();
1207                window.scrollBy(0, -100);
1208            }
1209            // メッセージ表示
1210            var mno;
1211            mm = new ModelMessage();
1212            if (!partslist[i][sep[i]].stock) {
1213                mno = mm.STOCK_NG;
1214            } else {
1215                mno = mm.NOT_SELLING_PARTS;
1216            }
1217            mm.show(mno, [ partslist[i][sep[i]].name ]);
1218            return(false);
1219        }
1220        for (j = 0; j < errparts.length; j++) {
1221            if (temp != errparts[j].no) {
1222                continue;
1223            }
1224            for (k = 0; k < errparts[j].errno.length; k++) {
1225                for (l = 0; l < rparts.length; l++) {
1226                    if (!rparts[l]) {
1227                        continue;
1228                    }
1229                    if (errparts[j].errno[k] == rparts[l][sep[l]].value) {
1230                        try {
1231                            spset[l].scollIntoView();
1232                            window.scrollBy(0, -30);
1233                        } catch (x) {
1234                            rparts[l][sep[l]].focus();
1235                            window.scrollBy(0, -50);
1236                        }
1237                        // メッセージ表示
1238                        mm = new ModelMessage();
1239                        replace_str = [ partslist[i][sep[i]].name,
1240                                        partslist[l][sep[l]].name ];
1241                        mm.show(mm.ASSEM_NG_PAIR, replace_str);
1242                        updateAllErrParts();
1243                        return(false);
1244                    }
1245                }
1246            }
1247        }
1248        for (j = 0; j < dparts.length; j++) {
1249            if (temp != dparts[j].no) {
1250                continue;
1251            }
1252            var dpflag = false;
1253            for (k = 0; k < dparts[j].dno.length; k++) {
1254                for (l = 0; l < rparts.length; l++) {
1255                    if (!rparts[l]) {
1256                        continue;
1257                    }
1258                    if (rparts[l][sep[l]].value == dparts[j].dno[k]) {
1259                        dpflag = true;
1260                        break;
1261                    }
1262                }
1263                if (dpflag) {
1264                    break;
1265                }
1266            }
1267            if (!dpflag) {
1268                try {
1269                    spset[i].scrollIntoView();
1270                    window.scrollBy(0, -30);
1271                } catch (x) {
1272                    rparts[i][sep[i]].focus();
1273                    window.scrollBy(0, -50);
1274                }
1275                dpname.push(partslist[i][sep[i]].name);
1276            }
1277        }
1278    }
1279    if (dpname.length > 0) {
1280        // メッセージ表示
1281        mm = new ModelMessage();
1282        msg = '';
1283        for (i = 0; i < dpname.length; i++) {
1284            msg += '・' + dpname[i] + '\n';
1285        }
1286        mm.show(mm.DEMANT_NG, [ msg ]);
1287        updateDemandParts();
1288        return(false);
1289    }
1290
1291    if (viflag) {
1292        for (i = 0; i < rvinst.length; i++) {
1293            if (rvinst[i].checked) {
1294                if (rvinst[i].value.split(':')[0] != 'n' && !checkOSselected()) {
1295                    try {
1296                        vinstselected.scollIntoView();
1297                        window.scrollBy(0, -30);
1298                    } catch (x) {
1299                        rvinst[i].focus();
1300                        window.scrollBy(0, -50);
1301                    }
1302                    // メッセージ表示
1303                    mm = new ModelMessage();
1304                    mm.show(mm.OS_REQUIRED_VI);
1305                    updateDemandParts();
1306                    return(false);
1307                }
1308                break;
1309            }
1310        }
1311    }
1312
1313    return(true);
1314}
1315
1316
1317function submitp() {
1318    var sp = document.getElementById("sp");
1319    var nhost = document.getElementById("nhost").value;
1320
1321    if (!checkParam()) {
1322        return;
1323    }
1324    setParam(sp);
1325
1326    document.sp.action = "https://" + nhost + "/custom/order";
1327    document.sp.method = "post";
1328    document.sp.target = "_self";
1329    document.sp.submit();
1330}
1331
1332
1333function calc() {
1334    var i;
1335    var temp;
1336    var span;
1337    var extra_g = false;
1338    var select = document.getElementById('pc_num');
1339
1340    //台数
1341    priceset.num = parseInt(select.options[select.selectedIndex].value, 10);
1342
1343    // PC本体単価 および 付属品単価
1344    var parts = dprice;
1345    var aparts = 0;
1346    for (i = 0; i < partslist.length; i++) {
1347        if (partslist[i].length == 0) {
1348            continue;
1349        }
1350        if (partstype[i][2]) {
1351            parts += partslist[i][sep[i]].price;
1352        } else {
1353            aparts += partslist[i][sep[i]].price;
1354        }
1355    }
1356
1357    if (viflag) {
1358        // 訪問設置サービス
1359        for (i = 0; i < rvinst.length; i++) {
1360            if (rvinst[i].checked) {
1361                var viv = rvinst[i].value.split(':');
1362                if (viv[0] != 'n') {
1363                    aparts += parseInt(viv[1], 10);
1364                }
1365                break;
1366            }
1367        }
1368    }
1369
1370    // 商品単価
1371    priceset.unit = parts + aparts;
1372    sunit.innerHTML = conv.insertComma(String(priceset.unit));
1373
1374    // 障害者割引
1375    priceset.ddiscount = 0;
1376    var ddiscount_parts = 0;
1377    var ddiscount_sum = 0;
1378    if (ddflag) {
1379        var ratio = parseFloat(document.getElementById('ddiscount_ratio').value);
1380        priceset.ddiscount = Math.ceil((priceset.unit * ratio) / 10) * 10;
1381        ddiscount_parts = Math.floor(parts * ratio);
1382        span = document.getElementById('pc_ddiscount');
1383        span.innerHTML = '-' + conv.insertComma(String(priceset.ddiscount));
1384    }
1385
1386    // 延長保証料単価
1387    priceset.grt = 0;
1388    if (gflag) {
1389        var work = 0;
1390        var pstr;
1391        var base;
1392        if (gtp[3] != 0 || gtp[4] != 0 || gtp[5] != 0.0) {
1393            base = parts - ddiscount_parts;
1394            if (base > gtp[3]) {
1395                work = Math.floor((base * gtp[5]) / 10) * 10;
1396            } else {
1397                work = gtp[4];
1398            }
1399        }
1400        pstr = '+' + conv.insertComma(String(work)) + '円';
1401        for (i = 0; i < 2; i++) {
1402            if (rgrt[i].checked) {
1403                if (rgrt[i].value != '0') {
1404                    extra_g = true;
1405                }
1406                break;
1407            }
1408        }
1409        if (extra_g) {
1410            priceset.grt = work;
1411            sgrt.innerHTML = conv.insertComma(String(priceset.grt));
1412            grtselected.innerHTML = selectedHtml(nodeText(sgrtn[1]), pstr, false);
1413        } else {
1414            sgrt.innerHTML = "―";
1415        }
1416        sgrtp[1].innerHTML = pstr;
1417    }
1418
1419    // 商品金額
1420    priceset.price = priceset.unit * priceset.num;
1421    sprice.innerHTML = conv.insertComma(String(priceset.price));
1422
1423    // 障害者割引合計
1424    if (ddflag) {
1425        ddiscount_sum = priceset.ddiscount * priceset.num;
1426        span = document.getElementById('pc_ddiscount_sum');
1427        span.innerHTML = '-' + conv.insertComma(String(ddiscount_sum));
1428    }
1429
1430    // 延長保証金額
1431    priceset.grtsum = priceset.grt * priceset.num;
1432    if (gflag) {
1433        if (extra_g) {
1434            sgrtsum.innerHTML = conv.insertComma(String(priceset.grtsum));
1435        } else {
1436            sgrtsum.innerHTML = "―";
1437        }
1438    }
1439
1440    // 発送料
1441    var cship = 0;
1442    var ccnt = 0;
1443    for (i = 0; i < partstype.length; i++) {
1444        if (partstype[i][0].match(/^A4[01]\d$/)) {
1445            if (!rparts[i]) {
1446                continue;
1447            }
1448            if (rparts[i][sep[i]].value != 'n' && rparts[i][sep[i]].value != '') {
1449                ccnt++;
1450            }
1451        }
1452    }
1453    if (ccnt > 0) {
1454        cship = fc[1] * ccnt * priceset.num;
1455    }
1456    priceset.ship = (fc[0] * priceset.num) + cship;
1457    if (priceset.ship > 0) {
1458        sship.innerHTML = conv.insertComma(String(priceset.ship));
1459    } else {
1460        sship.innerHTML = "―";
1461    }
1462
1463    if (tiflag) {
1464        // 下取りキャンペーン
1465        var tiv;
1466        if (rtradein[0].checked) {
1467            tiv = rtradein[0].value;
1468        } else {
1469            tiv = rtradein[1].value;
1470        }
1471        if (tiv == '1') {
1472            priceset.tradein = tidiscount;
1473            stidcnt.innerHTML = "-" + conv.insertComma(String(priceset.tradein));
1474        } else {
1475            priceset.tradein = 0;
1476            stidcnt.innerHTML = "―";
1477        }
1478    }
1479
1480    if (discountflag) {
1481        // 特別割引
1482        priceset.discount = discount * priceset.num;
1483        sdiscount.innerHTML = '-' + conv.insertComma(String(priceset.discount));
1484    }
1485
1486    if (cdflag) {
1487        // クーポン割引
1488        var cdiscount = document.getElementById('p1_coupon').value.split("\t")[1];
1489        priceset.cdiscount = parseInt(cdiscount) * priceset.num;
1490        span = document.getElementById('coupon_discount');
1491        span.innerHTML = '-' + conv.insertComma(String(priceset.cdiscount));
1492    }
1493
1494    // 合計金額
1495    priceset.total = priceset.price + priceset.grtsum + priceset.ship;
1496    priceset.total -= ddiscount_sum + priceset.tradein + priceset.discount;
1497    stotal[0].innerHTML = conv.insertComma(String(priceset.total));
1498    if (stotal[1]) {
1499        stotal[1].innerHTML = conv.insertComma(String(priceset.total));
1500    }
1501}
1502
1503
1504function setPreData() {
1505    var el = document.getElementById("p0_parts");
1506    var i;
1507    var temp;
1508
1509    if (!el) {
1510        return(false);
1511    }
1512
1513    temp = el.value.split('\t');
1514    for (i = 0; i < temp.length; i++) {
1515        var work = temp[i].split(':');
1516        for (var j = 0; j < partstype.length; j++) {
1517            if (partstype[j][0] == work[0]) {
1518                if (partslist[j].length != 0) {
1519                    for (var k = 0; k < partslist[j].length; k++) {
1520                        if (partslist[j][k].no == work[1]) {
1521                            rparts[j][k].checked = true;
1522                            break;
1523                        }
1524                    }
1525                }
1526                break;
1527            }
1528        }
1529    }
1530
1531    if (gflag && (el = document.getElementById("p0_grt"))) {
1532        if (el.value == "1") {
1533            rgrt[1].checked = true;
1534        } else {
1535            rgrt[0].checked = true;
1536        }
1537    }
1538
1539    if (viflag && (el = document.getElementById('p0_vinst'))) {
1540        var viv = el.value.split(':');
1541        for (i = 0; i < rvinst.length; i++) {
1542            temp = rvinst[i].value.split(':');
1543            if (viv[0] == temp[0]) {
1544                rvinst[i].checked = true;
1545                break;
1546            }
1547        }
1548    }
1549
1550    if (tiflag && (el = document.getElementById('p0_tradein'))) {
1551        var tiv = el.value;
1552        if (tiv == rtradein[1].value) {
1553            rtradein[1].checked = true;
1554        } else {
1555            rtradein[0].checked = true;
1556        }
1557    }
1558
1559    if ((el = document.getElementById("p0_num"))) {
1560        var select = document.getElementById('pc_num');
1561        for (i = 0; i < select.options.length; i++) {
1562            if (select.options[i].value == el.value) {
1563                select.options[i].selected = true;
1564                break;
1565            }
1566        }
1567    }
1568
1569    return(true);
1570}
1571
1572
1573function partsset() {
1574    var temp;
1575    var work;
1576    var flag;
1577    var i, j, k, l;
1578
1579    partstype = new Array();
1580    temp = document.getElementById("ptype").value.split('\t');
1581    for (i = 0; i < temp.length; i++) {
1582        work = temp[i].split(':');
1583        if (work[0].match(/^A/)) {
1584            flag = false;
1585        } else {
1586            flag = true;
1587        }
1588        partstype.push([work[0], work[1], flag]);
1589    }
1590
1591    partslist = new Array();
1592    rparts = new Array();
1593    liset = new Array();
1594    pnset = new Array();
1595    ppset = new Array();
1596    spset = new Array();
1597    for (i = 0; i < partstype.length; i++) {
1598        var el = document.getElementById("parts_" + i);
1599        partslist.push(new Array());
1600        if (el.value != '') {
1601            var tli = new Array();
1602            var tpn = new Array();
1603            var tpp = new Array();
1604            temp = el.value.split('\n');
1605            for (j = 0; j < temp.length; j++) {
1606                var pd = { 'no': '',
1607                           'name': '',
1608                           'price': 0,
1609                           'discount': 0,
1610                           'dflag': false,
1611                           'stock': true,
1612                           'eos': false,
1613                           'ds_flag': false };
1614                l = document.getElementById("l_parts_" + i + "_" + j
1614);
1615                work = temp[j].split('\t');
1616                pd.no = work[0];
1617                pd.name = work[1];
1618                pd.price = parseInt(work[2], 10);
1619                pd.discount = parseInt(work[5], 10);
1620                if (work[3] == '0') {
1621                    pd.stock = false;
1622                }
1623                if (work[4] == '1') {
1624                    pd.dflag = true;
1625                }
1626                if (work[6] == '1') {
1627                    pd.ds_flag = true;
1628                }
1629                if (work[7] == '1') {
1630                    pd.eos = true;
1631                }
1632                partslist[i].push(pd);
1633                tpn.push(document.getElementById("parts_" + i + "_" + j + "_n"));
1634                tpp.push(document.getElementById("parts_" + i + "_" + j + "_p"));
1635                tli.push(l);
1636                if (document.addEventListener) {
1637                    l.addEventListener('click', function(evt) {
1638                        partsclick(evt.target);
1639                    }, false);
1640                } else {
1641                    l.attachEvent("onclick", function(evt) {
1642                        partsclick(evt.srcElement);
1643                    });
1644                }
1645            }
1646            var rs = document.getElementsByName("s_parts_" + i);
1647            var s = rs[0].parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
1648            rparts.push(rs);
1649            liset.push(tli);
1650            pnset.push(tpn);
1651            ppset.push(tpp);
1652            var sp = null;
1653            for (j = 0; j < s.childNodes.length; j++) {
1654                if (s.childNodes[j].className != 'partsColumn01') {
1655                    continue;
1656                }
1657                var cn = s.childNodes[j].childNodes;
1658                for (k = 0; k < cn.length; k++) {
1659                    if (cn[k].className != 'partsColRight01') {
1660                        continue;
1661                    }
1662                    for (l = 0; l < cn[k].childNodes.length; l++) {
1663                        if (cn[k].childNodes[l].className == 'selectProducts') {
1664                            sp = cn[k].childNodes[l];
1665                            break;
1666                        }
1667                    }
1668                    if (sp) {
1669                        break;
1670                    }
1671                }
1672                if (sp) {
1673                    break;
1674                }
1675            }
1676            spset.push(sp);
1677        } else {
1678            rparts.push(null);
1679            liset.push(null);
1680            pnset.push(null);
1681            ppset.push(null);
1682            spset.push(null);
1683        }
1684    }
1685}
1686
1687
1688function errpartsset() {
1689    var el = document.getElementById("eparts");
1690    var temp;
1691    var i, j;
1692    var pd;
1693    var work;
1694    var pno;
1695
1696    errparts = new Array();
1697    if (el.value != '') {
1698        temp = el.value.split('\t');
1699        for (i = 0; i < temp.length; i++) {
1700            pd = { 'no': '', 'errno': [] };
1701            work = temp[i].split(':');
1702            pno = work[1].split(',');
1703            pd.no = work[0];
1704            for (j = 0; j < pno.length; j++) {
1705                pd.errno.push(pno[j]);
1706            }
1707            errparts.push(pd);
1708        }
1709    }
1710
1711    el = document.getElementById("dparts");
1712    dparts = new Array();
1713    if (el.value != '') {
1714        temp = el.value.split("\t");
1715        for (i = 0; i < temp.length; i++) {
1716            pd = { 'no': '', 'dno': [] };
1717            work = temp[i].split(":");
1718            pno = work[1].split(",");
1719            pd.no = work[0];
1720            for (j = 0; j < pno.length; j++) {
1721                pd.dno.push(pno[j]);
1722            }
1723            dparts.push(pd);
1724        }
1725    }
1726}
1727
1728
1729function initialize() {
1730    var i;
1731    var el;
1732    var selling_flag = false;
1733
1734    if ((el = document.getElementById('customized_url_access')) &&
1735        el.value == '1') {
1736        customized_access = true;
1737    }
1738
1739    if (!(el = document.getElementById('selling_status')) ||
1740        el.value == '0') {
1741        var temp;
1742        var pricebox;
1743        var preselected = false;
1744        selling_flag = true;
1745
1746        priceset = {
1747            'num': 1,
1748            'unit': 0,
1749            'price': 0,
1750            'ship': 0,
1751            'total': 0,
1752            'grt': 0,
1753            'grtsum': 0,
1754            'tradein': 0,
1755            'discount': 0,
1756            'ddiscount': 0,
1757            'cdiscount': 0
1758        };
1759
1760        stotal = [ document.getElementById("pc_total"),
1761                   document.getElementById('pc_total_2') ];
1762        sunit = document.getElementById("pc_unit");
1763        sprice = document.getElementById("pc_price");
1764        sship = document.getElementById("pc_ship");
1765
1766        gtp = document.getElementById('gtype').value.split(':');
1767        gtp[3] = parseInt(gtp[3], 10);
1768        gtp[4] = parseInt(gtp[4], 10);
1769        gtp[5] = parseFloat(gtp[5]);
1770
1771        try {
1772            var bflag = document.getElementById('pc_num').hasAttribute("class");
1773        } catch (x) {
1774            oldie = true;
1775        }
1776
1777        if (document.getElementById("guarantee").value == "1") {
1778            gflag = true;
1779            sgrt = document.getElementById("pc_grt");
1780            sgrtsum = document.getElementById("pc_grtsum");
1781            rgrt = [document.getElementById("grt_0"),
1782                    document.getElementById("grt_1")];
1783            grtselected = document.getElementById("grt_selected");
1784            sgrtn = [document.getElementById("grt_n_0"),
1785                     document.getElementById("grt_n_1")];
1786            sgrtp = [document.getElementById("grt_p_0"),
1787                     document.getElementById("grt_p_1")];
1788            ligrt = [document.getElementById("l_grt_0"),
1789                     document.getElementById("l_grt_1")];
1790
1791            if (document.addEventListener) {
1792                for (i = 0; i < 2; i++) {
1793                    ligrt[i].addEventListener('click', function(evt) {
1794                        grtclick(evt.target);
1795                    }, false);
1796                }
1797            } else {
1798                for (i = 0; i < 2; i++) {
1799                    ligrt[i].attachEvent("onclick", function(evt) {
1800                        grtclick(evt.srcElement);
1801                    });
1802                }
1803            }
1804        } else {
1805            var pgrt = document.getElementById("pgrt");
1806            var grtbox = [document.getElementById("grt_unit"),
1807                          document.getElementById("grt_sum")];
1808            pricebox = [document.getElementById("price_upper"),
1809                        document.getElementById("price_lower")];
1810            pgrt.parentNode.removeChild(pgrt);
1811            pricebox[0].removeChild(grtbox[0]);
1812            pricebox[1].removeChild(grtbox[1]);
1813        }
1814        fc[0] = parseInt(document.getElementById("freight").value, 10);
1815        fc[1] = parseInt(document.getElementById("freightm").value, 10);
1816        dprice = parseInt(document.getElementById("dprice").value, 10);
1817
1818        if ((temp = document.getElementById("discount").value) != "" &&
1819            temp != "0") {
1820            discountflag = true;
1821            discount = parseInt(temp, 10);
1822            sdiscount = document.getElementById("pc_discount");
1823        } else {
1824            var dbox = document.getElementById("dst");
1825            pricebox = document.getElementById("price_lower");
1826            pricebox.removeChild(dbox);
1827        }
1828
1829        if (document.getElementById('visit_install').value == '1') {
1830            viflag = true;
1831            vinstselected = document.getElementById('vinst_selected');
1832            rvinst = new Array();
1833            livinst = new Array();
1834            svinstn = new Array();
1835            svinstp = new Array();
1836            for (i = 0; ; i++) {
1837                var vin = String(i);
1838                var lel = document.getElementById('l_vinst_' + vin);
1839                if (!lel) {
1840                    break;
1841                }
1842                livinst.push(lel);
1843                rvinst.push(document.getElementById('vinst_' + vin));
1844                svinstn.push(document.getElementById('vinst_n_' + vin));
1845                svinstp.push(document.getElementById('vinst_p_' + vin));
1846
1847                if (window.addEventListener) {
1848                    lel.addEventListener('click', function(e) {
1849                        vinstclick(e.target);
1850                    }, false);
1851                } else {
1852                    lel.attachEvent('onlick', function(e) {
1853                        vinstclick(e.srcElement);
1854                    });
1855                }
1856            }
1857        } else {
1858            var pvinst = document.getElementById('pvinst');
1859            if (pvinst) {
1860                pvinst.parentNode.removeChild(pvinst);
1861            }
1862        }
1863
1864        if (document.getElementById('trade_in_discount') &&
1865            document.getElementById('trade_in_discount').value != '') {
1866            tidiscount = parseInt(document.getElementById('trade_in_discount').value, 10);
1867            if (tidiscount) {
1868                tiflag = true;
1869                rtradein = [ document.getElementById("tradein_0"),
1870                             document.getElementById("tradein_1") ];
1871                tiselected = document.getElementById("tradein_selected");
1872                stradeinn = [ document.getElementById("tradein_n_0"),
1873                              document.getElementById("tradein_n_1") ];
1874                stradeinp = [ document.getElementById("tradein_p_0"),
1875                              document.getElementById("tradein_p_1") ];
1876                litradein = [ document.getElementById("l_tradein_0"),
1877                              document.getElementById("l_tradein_1") ];
1878                stidcnt = document.getElementById('ti_discount');
1879
1880                if (window.addEventListener) {
1881                    litradein[0].addEventListener('click', function(e) {
1882                        tradeinclick(e.target);
1883                    }, false);
1884                    litradein[1].addEventListener('click', function(e) {
1885                        tradeinclick(e.target);
1886                    }, false);
1887                } else {
1888                    litradein[0].attachEvent('onlick', function(e) {
1889                        tradeinclick(e.srcElement);
1890                    });
1891                    litradein[1].attachEvent('onlick', function(e) {
1892                        tradeinclick(e.srcElement);
1893                    });
1894                }
1895            }
1896        }
1897        if (!tidiscount) {
1898            var ptradein = document.getElementById('ptradein');
1899            var tidcnt = document.getElementById("tidcnt");
1900            if (ptradein) {
1901                ptradein.parentNode.removeChild(ptradein);
1902            }
1903            if (tidcnt) {
1904                pricebox = document.getElementById("price_lower");
1905                pricebox.removeChild(tidcnt);
1906            }
1907        }
1908
1909        if (!(el = document.getElementById('p1_disability')) || el.value != '1') {
1910            el = [ document.getElementById('ddiscount0'),
1911                   document.getElementById('ddiscount1') ];
1912            el[0].parentNode.removeChild(el[0]);
1913            el[1].parentNode.removeChild(el[1]);
1914        } else {
1915            ddflag = true;
1916        }
1917
1918        if (!(el = document.getElementById('p1_coupon')) || el.value == '') {
1919            el = document.getElementById('coupon');
1920            el.parentNode.removeChild(el);
1921        } else {
1922            cdflag = true;
1923        }
1924
1925        mpset = document.getElementById("mprice").value.split("\t");
1926
1927        partsset();
1928        errpartsset();
1929        preselected = setPreData();
1930
1931        sep = new Array(rparts.length);
1932        for (i = 0; i < rparts.length; i++) {
1933            if (rparts[i]) {
1934                sep[i] = checkedParts(i);
1935            } else {
1936                sep[i] = null;
1937            }
1938        }
1939
1940        updateAllErrParts();
1941        calc();
1942
1943        if (document.addEventListener) {
1944            if ((el = document.getElementById('pc_num')) && el.tagName == 'SELECT') {
1945                el.addEventListener('change', function() { calc(); }, false);
1946            }
1947        } else {
1948            if ((el = document.getElementById('pc_num')) && el.tagName == 'SELECT') {
1949                el.attachEvent('onchange', function() { calc(); });
1950            }
1951        }
1952
1953        var anchors = document.getElementsByTagName('a');
1954        for (i = 0; i < anchors.length; i++) {
1955            if (anchors[i].href == 'javascript:submitp()') {
1956                anchors[i].removeAttribute('href');
1957                if (selling_flag) {
1958                    anchors[i].style.cursor = 'pointer';
1959                    if (document.addEventListener) {
1960                        anchors[i].addEventListener('click', submitp, false);
1961                    } else {
1962                        anchors[i].attachEvent('onclick', submitp);
1963                    }
1964                } else {
1965                    anchors[i].tabIndex = -1;
1966                }
1967                break;
1968            }
1969        }
1970
1971        if ((el = document.getElementById('copy_to_clipboard'))) {
1972            if (document.addEventListener) {
1973                el.addEventListener('click', urlToClipBoard, false);
1974                document.getElementById('x_tweet').addEventListener('click', urlToX, false);
1975                document.getElementById('mail_send').addEventListener('click', urlToMail, false);
1976            } else {
1977                el.attachEvent('onclick', urlToClipBoard);
1978                document.getElementById('x_tweet').attachEvent('onclick', urlToX);
1979                document.getElementById('mail_send').attachEvent('onclick', urlToMail);
1980            }
1981        }
1982
1983        if (preselected || customized_access) {
1984            if (typeof tabchange == 'function') {
1985                setTimeout(function() {
1986                    tabchange(1);
1987                }, 300);
1988            } else if (typeof LeptonTabchange == 'function') {
1989                setTimeout(function() {
1990                    LeptonTabchange(1);
1991                }, 300);
1992            }
1993        }
1994
1995    } else if (customized_access) {
1996        setTimeout(function() {
1997            var mm = new ModelMessage();
1998            mm.show(mm.NOT_SELLING);
1999        }, 500);
2000    }
2001}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.