PageSourceSearch

https://www.marukome-shop.jp/js/sys/common.js

js marukome-shop.jp collected 2026-10-04 16:24:07 UTC 17,821 bytes, 477 lines download raw bytes

1var ecblib = ecblib || {};
2ecblib.common = ecblib.common || {};
3
4(function () {
5
6    /*  半角->全角変換の実行可否変数 */
7    var ENABLE_HanToZen = true;
8    /*  全角->半角変換の実行可否変数 */
9    var ENABLE_ZenToHan = true;
10    /*  default charsetの設定 */
11    jQuery.ajaxSetup({
12        contentType: 'application/x-www-form-urlencoded; charset=utf-8'
13    });
14    /*  IMEの入力判定変数 */
15    var isInputtingValue = false;
16    window.addEventListener("compositionstart", function() {
17      isInputtingValue = true;
18    });
19    window.addEventListener("compositionend", function() {
20      isInputtingValue = false;
21    });
22    /*  IME入力中のフォーカスアウト時の入力キャンセル処理 */
23    jQuery(document).on("click", "input", function() {
24      if (isInputtingValue == false) return;
25      var mouseEvent = document.createEvent('MouseEvent');
26      var relatedTarget = mouseEvent.relatedTarget || document.activeElement;
27      if (relatedTarget && relatedTarget instanceof HTMLInputElement) {
28        relatedTarget.addEventListener("beforeinput", function handler (inputEvent) {
29          inputEvent.preventDefault();
30          relatedTarget.removeEventListener("beforeinput", handler);
31          setTimeout(function(){
32              relatedTarget.select();
33          }, 0);
34        });
35      }
36    });
37    /*  common */
38    function _common() {
39        /*  ダブルクリック禁止処理 */
40        this.ignoreDblClickFlag = null;
41        /*  郵便番号検索 */
42        var timerId_lookupzip_ = null;
43        var zipcache_lookupzip_ = '';
44        var timerId_zipcache_ = null;
45        /*  配送先自動化 */
46        var timeId_RewriteDateSpec = null;
47        /*  全角半角変換 */
48        this.hanMap = {};
49        this.zenMap = {
50            'a': 'a',
51            'b': 'b',
52            'c': 'c',
53            'd': 'd',
54            'e': 'e',
55            'f': 'f',
56            'g': 'g',
57            'h': 'h',
58            'i': 'i',
59            'j': 'j',
60            'k': 'k',
61            'l': 'l',
62            'm': 'm',
63            'n': 'n',
64            'o': 'o',
65            'p': 'p',
66            'q': 'q',
67            'r': 'r',
68            's': 's',
69            't': 't',
70            'u': 'u',
71            'v': 'v',
72            'w': 'w',
73            'x': 'x',
74            'y': 'y',
75            'z': 'z',
76            'A': 'A',
77            'ï¼¢': 'B',
78            'ï¼£': 'C',
79            'D': 'D',
80            'ï¼¥': 'E',
81            'F': 'F',
82            'ï¼§': 'G',
83            'H': 'H',
84            'I': 'I',
85            'J': 'J',
86            'K': 'K',
87            'L': 'L',
88            'ï¼­': 'M',
89            'ï¼®': 'N',
90            'O': 'O',
91            'ï¼°': 'P',
92            'ï¼±': 'Q',
93            'ï¼²': 'R',
94            'ï¼³': 'S',
95            'ï¼´': 'T',
96            'ï¼µ': 'U',
97            'ï¼¶': 'V',
98            'ï¼·': 'W',
99            'X': 'X',
100            'ï¼¹': 'Y',
101            'Z': 'Z',
102            '0': '0',
103            '1': '1',
104            '2': '2',
105            '3': '3',
106            '4': '4',
107            '5': '5',
108            '6': '6',
109            '7': '7',
110            '8': '8',
111            '9': '9',
112            '!': '!',
113            'ï¼ ': '@',
114            '#': '#',
115            '$': '$',
116            '%': '%',
117            'ï¼¾': '^',
118            '&': '&',
119            '*': '*',
120            '(': '(',
121            ')': ')',
122            '_': '_',
123            '+': '+',
124            '|': '|',
125            'ï¿£': '~',
126            '-': '-',
127            '=': '=',
128            'ï¿¥': '\\',
129            '`': '`',
130            '{': '{',
131            '}': '}',
132            'ï¼»': '[',
133            'ï¼½': ']',
134            ':': ':',
135            '”': '"',
136            ';': ';',
137            '’': '\'',
138            '<': '<',
139            '>': '>',
140            '?': '?',
141            ',': ',',
142            '.': '.',
143            '/': '/',
144            '。': '。',
145            '「': '「',
146            '」': '」',
147            '、': '、',
148            '・': '・',
149            'ヲ': 'ヲ',
150            'ァ': 'ァ',
151            'ィ': 'ィ',
152            'ゥ': 'ゥ',
153            'ェ': 'ェ',
154            'ォ': 'ォ',
155            'ャ': 'ャ',
156            'ュ': 'ュ',
157            'ョ': 'ョ',
158            'ッ': 'ッ',
159            'ー': 'ー',
160            'ア': 'ア',
161            'イ': 'イ',
162            'ウ': 'ウ',
163            'エ': 'エ',
164            'オ': 'オ',
165            'カ': 'カ',
166            'キ': 'キ',
167            'ク': 'ク',
168            'ケ': 'ケ',
169            'コ': 'コ',
170            'サ': 'サ',
171            'シ': 'シ',
172            'ス': 'ス',
173            'セ': 'セ',
174            'ソ': 'ソ',
175            'タ': 'タ',
176            'チ': 'チ',
177            'ツ': 'ツ',
178            'テ': 'テ',
179            'ト': 'ト',
180            'ナ': 'ナ',
181            'ニ': 'ニ',
182            'ヌ': 'ヌ',
183            'ネ': 'ネ',
184            'ノ': 'ノ',
185            'ハ': 'ハ',
186            'ヒ': 'ヒ',
187            'フ': 'フ',
188            'ヘ': 'ヘ',
189            'ホ': 'ホ',
190            'マ': 'マ',
191            'ミ': 'ミ',
192            'ム': 'ム',
193            'メ': 'メ',
194            'モ': 'モ',
195            'ヤ': 'ヤ',
196            'ユ': 'ユ',
197            'ヨ': 'ヨ',
198            'ラ': 'ラ',
199            'リ': 'リ',
200            'ル': 'ル',
201            'レ': 'レ',
202            'ロ': 'ロ',
203            'ワ': 'ワ',
204            'ン': 'ン',
205            'ガ': 'ガ',
206            'ギ': 'ギ',
207            'グ': 'グ',
208            'ゲ': 'ゲ',
209            'ゴ': 'ゴ',
210            'ザ': 'ザ',
211            'ジ': 'ジ',
212            'ズ': 'ズ',
213            'ゼ': 'ゼ',
214            'ゾ': 'ゾ',
215            'ダ': 'ダ',
216            'ヂ': 'ヂ',
217            'ヅ': 'ヅ',
218            'デ': 'デ',
219            'ド': 'ド',
220            'バ': 'バ',
221            'パ': 'パ',
222            'ビ': 'ビ',
223            'ピ': 'ピ',
224            'ブ': 'ブ',
225            'プ': 'プ',
226            'ベ': 'ベ',
227            'ペ': 'ペ',
228            'ボ': 'ボ',
229            'ポ': 'ポ',
230            'ヴ': 'ヴ',
231            '゛': '゙',
232            '゜': '゚',
233            ' ': ' '
234        };
235        /*  半角->全角マップ */
236        for (var key in this.zenMap) {
237            if (!this.hanMap[this.zenMap[key]]) {
238                this.hanMap[this.zenMap[key]] = key;
239            }
240        }
241        /*  半角<->全角変換 */
242        this.strConvert = function (obj, isHanToZen) {
243            if (obj.value == obj.getAttribute("title")) {
244                return true;
245            }
246            if ((isHanToZen == true) && (ENABLE_HanToZen == false)) {
247                return true;
248            }
249            if ((isHanToZen == false) && (ENABLE_ZenToHan == false)) {
250                return true;
251            }
252            var str = obj.value;
253            var conv = '';
254            var map = isHanToZen ? this.hanMap : this.zenMap;
255            for (var i = 0; i < str.length; i++) {
256                var tmp = '';
257                if (i < str.length - 1) {
258                    tmp = str.substring(i, i + 2);
259                }
260                if (map[tmp]) {
261                    conv += map[tmp];
262                    i++;
263                    continue;
264                } else {
265                    tmp = str.substring(i, i + 1);
266                    conv += map[tmp] ? map[tmp] : tmp;
267                }
268            }
269            obj.value = conv;
270            return true;
271        };
272        /*  ダブルクリック(連続ポスト)の制御 */
273        this.ignoreDblClick = function () {
274            if (this.ignoreDblClickFlag == null) {
275                this.ignoreDblClickFlag = 1;
276                return true;
277            } else {
278                return false;
279            }
280        };
281        /*  htmlタグの置き換え */
282        this.htmlspecialchars = function (str) {
283            if (!str || str == '') {
284                return '';
285            }
286            return ecblib.sys.escapeHtml(str);
287        };
288        /*  配送希望日自動切換え */
289        this.RewriteDateSpec = function (dest) {
290            dest = '#dest_r' + dest;
291            var timerOffset = 300;
292            var lp_goods = (jQuery('.js-landingpage-change-order-form').val() != undefined) ? jQuery('.js-landingpage-change-order-form').val() : '';
293            var qty = (jQuery('#select_qty').val() != undefined) ? jQuery('#select_qty').val() : '';
294            clearTimeout(timeId_RewriteDateSpec);
295            timeId_RewriteDateSpec = setTimeout(function () {
296                if (!jQuery(dest).val().match(/^[0-9]+$/)) {
297                    return true;
298                }
299                jQuery.get('../js/destajax.aspx', {
300                    dest: jQuery(dest).val(),
301                    lp_goods: lp_goods,
302                    qty: qty,
303                    charset: 'shift_jis'
304                }, function (data, status) {
305                    var val = jQuery('select[name=date_detail_spec] :selected').val();
306                    jQuery('select[name=date_detail_spec]').children().remove();
307                    jQuery('select[name=date_detail_spec]').html(data);
308                    jQuery('select[name=date_detail_spec]').val(val);
309                    if (jQuery('select[name=date_detail_spec] :selected').text() == '') {
310                        jQuery('select[name=date_detail_spec] option:first').prop('selected', true);
311                    }
312                    jQuery('select[name=date_detail_spec]').change();
313                }, 'html');
314            }, timerOffset);
315        };
316        /*  配送希望日自動切換え(ゲスト)  */
317        this.RewriteDateSpecGuest = function () {
318            var chkother = '#chkother';
319            var s_zip = '#s_zip';
320            var d_zip = '#d_zip';
321            var s_pref = '#s_pref';
322            var d_pref = '#d_pref';
323            var chkother_val = '';
324            var s_zip_val = '';
325            var s_pref_val = '';
326            var d_zip_val = '';
327            var d_pref_val = '';
328            var lp_goods = (jQuery('.js-landingpage-change-order-form').val() != undefined) ? jQuery('.js-landingpage-change-order-form').val() : '';
329            var qty = (jQuery('#select_qty').val() != undefined) ? jQuery('#select_qty').val() : '';
330            var timerOffset = 300;
331            if (jQuery(chkother).prop('checked')) {
332                jQuery(".js-block-order-method--dest-input").show();
333                jQuery(".js-block-landingpage-other--dest-input").show();
334            } else {
335                jQuery(".js-block-order-method--dest-input").hide();
336                jQuery(".js-block-landingpage-other--dest-input").hide();
337            }
338            clearTimeout(timeId_RewriteDateSpec);
339            timeId_RewriteDateSpec = setTimeout(function () {
340                if (jQuery(chkother).prop('checked') && (jQuery(d_pref).val() != '' || jQuery(d_zip).val() != '')) {
341                    if (jQuery(d_zip).val() != '' && !jQuery(d_zip).val().match(/^[0-9]{3}[\-]{0,1}[0-9]{0,4}$/)) {
342                        return true;
343                    }
344                    d_zip_val = jQuery(d_zip).val();
345                    d_pref_val = jQuery(d_pref).val();
346                    chkother_val = jQuery(chkother).val();
347                } else if (!jQuery(chkother).prop('checked') && (jQuery(s_pref).val() != '' || jQuery(s_zip).val() != '')) {
348                    if (jQuery(s_zip).val() != '' && !jQuery(s_zip).val().match(/^[0-9]{3}[\-]{0,1}[0-9]{0,4}$/)) {
349                        return true;
350                    }
351                    s_zip_val = jQuery(s_zip).val();
352                    s_pref_val = jQuery(s_pref).val();
353                    chkother_val = '';
354                } else {
355                    s_zip_val = '';
356                    s_pref_val = '';
357                    d_zip_val = '';
358                    d_pref_val = '';
359                    chkother_val = '';
360                }
361                jQuery.get('../js/destajax.aspx', {
362                    chkother: chkother_val,
363                    s_zip: s_zip_val,
364                    s_pref: s_pref_val,
365                    d_zip: d_zip_val,
366                    d_pref: d_pref_val,
367                    lp_goods: lp_goods,
368                    qty: qty,
369                    charset: 'shift_jis'
370                }, function (data, status) {
371                    var val = jQuery('select[name=date_detail_spec] :selected').val();
372                    jQuery('select[name=date_detail_spec]').children().remove();
373                    jQuery('select[name=date_detail_spec]').html(data);
374                    jQuery('select[name=date_detail_spec]').val(val);
375                    if (jQuery('select[name=date_detail_spec] :selected').text() == '') {
376                        jQuery('select[name=date_detail_spec] option:first').prop('selected', true);
377                    }
378                    jQuery('select[name=date_detail_spec]').change();
379                }, 'html');
380            }, timerOffset);
381        };
382
383        /*  汎用入力チェック */
384        this.confirmInputCheck = function () {
385            /*  メールアドレスチェック */
386            var ADDRESS_MISMATCH = ecblib.msg.common.MAIL_ADDRESS_MISMATCH;
387            if (jQuery('#mail').length == 1 && jQuery('#cmail').length == 1) {
388                if (jQuery('#mail').val() != jQuery('#cmail').val()) {
389                    showAlert(ADDRESS_MISMATCH);
390                    ecblib.common.ignoreDblClickFlag = false;
391                    return false;
392                }
393            }
394            /*  メールアドレスチェック2 */
395            if (jQuery('#newmail1').length == 1 && jQuery('#newmail2').length == 1) {
396                if (jQuery('#newmail1').val() != jQuery('#newmail2').val()) {
397                    showAlert(ADDRESS_MISMATCH);
398                    ecblib.common.ignoreDblClickFlag = false;
399                    return false;
400                }
401            }
402            /*  IDチェック */
403            var ID_MISMATCH = ecblib.msg.common.ID_MISMATCH;
404            if (jQuery('#newid1').length == 1 && jQuery('#newid2').length == 1) {
405                if (jQuery('#newid1').val() != jQuery('#newid2').val()) {
406                    showAlert(ID_MISMATCH);
407                    ecblib.common.ignoreDblClickFlag = false;
408                    return false;
409                }
410            }
411            /*  IDとPASSの不一致確認 */
412            var SAME_ID_PASSWORD = ecblib.msg.common.SAME_ID_PASSWORD;
413            if (jQuery('#uid').length == 1 && jQuery('#pwd').length == 1) {
414                if (jQuery('#uid').val() != "" && jQuery('#pwd').val() != "") {
415                    if (jQuery('#uid').val() == jQuery('#pwd').val()) {
416                        showAlert(SAME_ID_PASSWORD);
417                        jQuery('#pwd').val('');
418                        ecblib.common.ignoreDblClickFlag = false;
419                        return false;
420                    }
421                }
422            }
423            return true;
424        };
425
426        /*  入力桁数制限 */
427        this.limitInputLength = function (obj) {
428            if(obj.value.length > obj.maxLength) {
429                obj.value = obj.value.slice(0, obj.maxLength);
430                return true;
431            }
432        };
433    }
434    ecblib.common = new _common();
435
436    function showAlert(message) {
437        jQuery('.balloontip').each(function () {
438            jQuery(this).hide();
439        });
440        ecblib.ui.alert(ecblib.msg.modal_title.CONFIRM, message);
441    }
442
443    /* コンテンツ全体の高さからエラー位置を取得 */
444    function getShowInputErrorTop() {
445        const inputErrorElements = [...document.querySelectorAll('.js-input-error-disp-position')];
446        if (inputErrorElements.length > 0 ) {
447            const target = inputErrorElements.reduce((x,y) => x.getBoundingClientRect().top < y.getBoundingClientRect().top ? x : y);
448            return target.getBoundingClientRect().top + window.pageYOffset;
449        }
450        return null;
451    };
452
453    function getShowInputErrorTopCorrection() {
454        if (ecblib.sys.isModeSmartPhone() === true) {
455            const headerNav = document.querySelector('.block-header-nav');
456            if (headerNav !== null) {
457                /* スマホの場合に限りヘッダー部分の高さを差し引いて調整しています。
458                   基本はheaderNav.getBoundingClientRect().heightの分の値で、リテラル値で微調整を行います。 */
459                return headerNav.getBoundingClientRect().height + 50;
460            }
461        }
462        return 0;
463    };
464
465    ecblib.showInputError = function() {
466        const top = getShowInputErrorTop();
467        if (top !== null ) {
468            const correction = getShowInputErrorTopCorrection();
469            $(window).scrollTop(top - correction);
470        }
471    };
472
473    window.addEventListener('load', function() {
474        /* ブラウザ間の互換性のため遅らせて処理させている*/
475        window.setTimeout(ecblib.showInputError,300);
476    });
477}());

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.