PageSourceSearch

https://www.sbifxt.co.jp/js/contents_new.js?202008290000

js sbifxt.co.jp collected 2026-10-01 11:51:51 UTC 15,467 bytes, 447 lines download raw bytes

1//
2
3
4var bra = ''
5var rateTimer = -1;
6var priceBoardTime = -1
7
8// レート取得
9var rateUrl = API_URL + '/getRate.aspx';
10// 経済指標取得
11var marketCalenderUrl = API_URL + '/getMarketCalender.aspx';
12
13var xmlhttp_news = null;
14
15var curIdArray = CurId.split(','); 
16var digitsAdpArray = DigitsADP.split(',');
17xmlhttp_rate = new Array(GetRateCount);
18
19
20// httpオブジェクトの生成用
21function createObject() {
22    try {
23        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
24        bra = "IE";
25    }
26    catch (e) {
27        xmlhttp = false;
28    }
29    if (!xmlhttp && typeof window.XMLHttpRequest!='undefined') {
30        xmlhttp = new XMLHttpRequest();
31        bra = "etc";
32    }
33
34    return xmlhttp;
35}
36
37// レート表示の取得
38function rateViewString(rate) {
39    var returnHTML = '';
40
41    // レートの整数部分と小数部分を取得する
42    var rateStr = rate.split('.');
43
44    // 小数部分が存在する
45    if (rateStr.length > 1) {
46        // 対円と対ドルで表示を切り替える
47        if (rateStr[1].length == 4) {
48            returnHTML = '<span class="mtxt_1">' + toThousands(rateStr[0]) + '</span><span class="mtxt_2">.' + rateStr[1].substr(0, 2) + '</span><span class="mtxt_3">' + rateStr[1].substr(2, 2) + '</span>';
49        }
50        else {
51            returnHTML = '<span class="mtxt_1">' + toThousands(rateStr[0]) + '.' + rateStr[1].substr(0, 2) + '</span><span class="mtxt_2">' + rateStr[1].substr(2, 2) + '</span><span class="mtxt_3">' + rateStr[1].substr(4, 2) + '</span>';
52        }
53    }
54    else {
55        returnHTML = '<span class="mtxt_1">' + toThousands(rate) + '</span>'
56    }
57
58    return returnHTML;
59}
60
61//カンマを付与
62function toThousands(num) {
63    var s = String(num).split('.');
64    var ret = String(s[0]).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,');
65    if (s.length > 1) { ret += '.' + s[1]; }
66    return ret; 
67}
68
69// トップ画面生成
70function getFirstDataTop(PAGE_TYPE) {
71    
72    if (PAGE_TYPE == FXT_TOPPAGE) {
73        curIdArray = CurId_TOPPAGE.split(','); 
74        digitsAdpArray = DigitsADP_TOPPAGE.split(',');
75        xmlhttp_rate = new Array(GetRateCount_TOPPAGE);
76    }
77
78    // レート情報
79    for(var i=0; i<curIdArray.length; i++) {
80        getRateData(curIdArray[i], digitsAdpArray[i], i);
81    }
82
83    // レート情報のタイマーを起動
84    rateTimer = setInterval('mainLoop()', GetRateInterval);
85    
86    //getMultiNewsData();
87    // Market情報のタイマーを起動
88    //marketTimer = setInterval('getMultiNewsData()', GetMrkNwsInterval);
89
90}
91
92// レート情報取得ループ
93function mainLoop() {
94    for(var i=0; i<curIdArray.length; i++) {
95        getRateData(curIdArray[i], digitsAdpArray[i], i);
96    }  
97}
98
99// レートデータの取得
100function getRateData(curId, digitsADP, indexId) {
101
102    xmlhttp_rate[indexId] = createObject();
103
104    if (xmlhttp_rate[indexId]) {
105        xmlhttp_rate[indexId].open('POST', rateUrl +'?curId='+ curId +'&digitsADP=' +digitsADP);
106
107        xmlhttp_rate[indexId].onreadystatechange = function() {
108            if (xmlhttp_rate[indexId].readyState == 4 && xmlhttp_rate[indexId].status == 200) {
109                var returnArray = xmlhttp_rate[indexId].responseText.split(',');
110            
111                var joinStr = '';
112                
113                var curId = '';
114                var bid = '';
115                var ask = '';
116                var spread = '';
117                var curStamp = '';
118
119                if (returnArray.length > 0) {
120                    curId = returnArray[1];
121                    bid = returnArray[2];
122                    ask = returnArray[3];
123                    spread = returnArray[4];
124                    curStamp = returnArray[5];
125                    //document.getElementById('curId_'+indexId).innerHTML = curId;
126                    document.getElementById('bid_t_'+indexId).innerHTML = rateViewString(bid);
127                    document.getElementById('spread_'+indexId).innerHTML = spread;
128                    document.getElementById('ask_t_'+indexId).innerHTML = rateViewString(ask);
129                    //document.getElementById('time_'+indexId).innerHTML = createDateTimeString(curStamp);
130                }
131            }
132        }
133        
134        xmlhttp_rate[indexId].setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
135        xmlhttp_rate[indexId].send(null);
136    }
137}
138
139// ▼▼▼ リアルタイムレート画面 ▼▼▼
140
141// プライスボードデータの取得
142function getPriceBoardData() {
143
144    $.ajax({
145
146        type: "POST",
147        url: rateUrl + "?contract=1",
148        async: true,
149        timeout: 1000
150
151    }).done(function (data, textStatus, jqXHR) {
152		var returnArray = data.split('#');
153		
154		$("table.table01").empty();
155		
156		// ヘッダー	
157    	$("table.table01").append('<tr class="header">\n'
158	        + '<th rowspan="2" class="pct18">通貨ペア</th>\n'
159	        + '<th colspan="2" class="pct30">取引レート</th>\n'
160	        + '<th rowspan="2" class="pct13">スプレッド</th>\n'
161	        + '<th rowspan="2" class="pct13">前日比<br/>(仲値)</th>\n'
162	        + '<th rowspan="2" class="pct13">高値<br/>(仲値)</th>\n'
163	        + '<th rowspan="2" class="pct13">安値<br/>(仲値)</th>\n'
164	        + '</tr>\n'
165	        + '<tr class="">\n'
166	        + '<th class="pct15">BID売</th>\n'
167	        + '<th class="pct15">ASKè²·</th>\n'
168	        + '</tr>\n');
169		
170		// プライスボードの表示
171        var lineArray = returnArray[1].split('!');
172        if (lineArray.length > 0) {
173            for(var i=0; i<lineArray.length-1; i++) {
174                var priceBoardArray = lineArray[i].split(',');  
175                var meigaraName = priceBoardArray[0];
176                var bid = priceBoardArray[1];
177                var ask = priceBoardArray[2];
178                var spread = priceBoardArray[3];
179                var last = priceBoardArray[4];
180                var high = priceBoardArray[5];
181                var low = priceBoardArray[6];
182
183                $("table.table01").append('<tr class="cell">\n'
184                    + '<td nowrap class="cell_meigara">' + meigaraName + '</td>\n'
185                    + '<td class="blue cell_bid">' + rateViewString(bid) + '</td>\n'
186                    + '<td class="red cell_ask">' + rateViewString(ask) + '</td>\n'
187                    + '<td class="cell_sp"><span class="mtxt_1">' + spread + '</span></td>\n'
188                    + '<td class="cell_last"><span class="mtxt_1">' + last + '</span></td>\n'
189                    + '<td class="cell_rate">' + rateViewString(high) + '</td>\n'
190                    + '<td class="cell_rate">' + rateViewString(low) + '</td>\n'
191                    + '</tr>\n');
192            }
193		}
194
195    }).fail(function (data, textStatus, errorThrown) {
196        
197    }).always(function (data, textStatus, returnedObject) {
198        priceBoardTimerStart();
199    });  
200
201}
202
203function priceBoardTimerStart() {
204
205    // レート情報のタイマーを起動
206    priceBoardTime = setTimeout('getPriceBoardData()', GetRateInterval);
207}
208
209// ▲▲▲ リアルタイムレート画面の追加 ▲▲▲
210
211// マーケット情報生成
212function getFirstDataMarket()
213{
214
215    getMarketCalender();
216    //getMarketReport('1', null);
217
218}
219
220// 経済指標情報の取得
221function getMarketCalender() {
222
223   // 営業日を指定できるようにはしておく(夏冬時間設定が別途必要)
224   var eigyoubi = '';
225
226    $.ajax({
227
228        type: "POST",
229        url: marketCalenderUrl + "?date=" + eigyoubi,
230        async: true,
231        timeout: 1000
232
233    }).done(function (data, textStatus, jqXHR) {
234
235		$("table.table01").empty();
236
237		// ヘッダー	
238    	$("table.table01").append('<tr>\n'
239	        + '<th scope="col" class="pct10">日時</th>\n'
240	        + '<th scope="col" class="pct8">時刻</th>\n'
241	        + '<th scope="col" class="pct15">地域</th>\n'
242	        + '<th scope="col" class="pct20">指標</th>\n'
243	        + '<th scope="col" class="pct20">前回</th>\n'
244	        + '<th scope="col" class="pct10">予想</th>\n'
245	        + '<th scope="col" class="pct10">結果</th>\n'
246	        + '</tr>\n');
247
248	    var returnArray = data.split('#');
249        var lineArray = returnArray[1].split('!');
250
251        var marketCalender = '';
252        var calenderDate = '';
253        var calenderDOW = '';
254        var calenderTime = '';
255        var area = '';
256        var title = '';
257        var last = '';
258        var anti = '';
259        var result = '';
260
261        if (lineArray.length-1 > 0)
262        {
263            var newRows = '';
264            var nowDate = '';
265            var nowDOW = '';
266            var newTrTag = '';
267            var rowCount = 1;
268            for(var i=0; i<lineArray.length-1; i++)
269            {
270                var marketCalenderArray = lineArray[i].split(',');
271                calenderDate = marketCalenderArray[0];
272                calenderDOW = marketCalenderArray[1];
273                calenderTime = marketCalenderArray[2];
274                area = marketCalenderArray[3];
275                title = marketCalenderArray[4];
276                last = marketCalenderArray[5];
277                anti = marketCalenderArray[6];
278                result = marketCalenderArray[7];
279
280                if (nowDate != calenderDate)
281                {
282                    // 最初の1回はタグを作らない。
283                    if (i > 0)
284                    {
285                        newTrTag = '<tr>\n<td rowspan="' + rowCount + '" class="center middle first">' + createDateTimeString4(nowDate) + '(' + createDowStr(nowDOW) + ')</td>';
286                        marketCalender += newTrTag + newRows;
287                        // 本日分のみ表示させる。
288                        break;
289                    }
290                    nowDate = calenderDate;
291                    nowDOW = calenderDOW;
292                    rowCount = 1;
293                    newRows = '';
294
295                    // 本日日付の経済
296                    var d = new Date();
297                    nowMonth = ('00' + (d.getMonth()+1));
298                    nowDay = ('00' + (d.getDate()));
299                    if (d.getFullYear() + '/' + nowMonth.substr(nowMonth.length-2, 2) + '/' + nowDay.substr(nowDay.length-2, 2) < createDateTimeString3(nowDate))
300                    {
301                        marketCalender = '<tr><td colspan="7" class="center" style="font-size:12px;">本日発表の経済指標はございません。</td></tr>\n';
302                        break;
303                    }
304
305                }
306                else
307                {
308                    rowCount += 1;
309                }
310
311                var createTime = '';
312                if (calenderTime == '235900')
313                {
314                    createTime = '未定';
315                }
316                else
317                {
318                    createTime = createTimeString(calenderTime);
319                }
320
321                newRows += '<td class="center">' + createTime + '</td>\n'
322                    + '<td><span class="icon_text"><img src="../images/' + getImage(area) + '" alt="' + getCountryStr(area) + '">' + getCountryStr(area) + '</span></td>\n'
323                    + '<td>' + title + '</td>\n'
324                    + '<td>' + last + '</td>\n'
325                    + '<td>' + anti + '</td>\n'
326                    + '<td>' + result + '</td>\n'
327                    + '</tr>\n'
328            }
329
330        }
331        else
332        {
333            marketCalender = '<tr><td colspan="7" class="center" style="font-size:12px;">表示する情報はございません。</td></tr>\n';
334        }
335
336        $("table.table01").append(marketCalender);
337
338    }).fail(function (data, textStatus, errorThrown) {
339        
340    }).always(function (data, textStatus, returnedObject) {
341        
342    });  
343
344}
345
346// ログイントップ画面生成
347function getFirstLoginTop() {
348
349    // エラーメッセージの表示
350    var queryString = location.search.split('?');
351    if(queryString.length > 1)
352    {
353        var errorCd = queryString[1];
354        var errorString = '';
355        switch (errorCd) {
356            case 'RTN=120':
357                errorString = 'ただいまメンテナンス中の為、ログインできません。';
358                break;
359            case 'RTN=102':
360                errorString = 'ログインID若しくはパスワードをご確認ください。';
361                break;
362            case 'RTN=101':
363                errorString = 'アクセス制限中です。';
364                break;
365            case 'RTN=103':
366                errorString = 'ログインID若しくはパスワードをご確認ください。';
367                break;
368            default:
369                // その他のエラー
370                errorString = 'ログインID若しくはパスワードをご確認ください。';
371        }
372
373        $("#message p").text(errorString);
374    }
375
376}
377
378// ポップアップ表示
379function makefilepage(wURL,title){
380  var nwin = window.open(wURL, "title", "width=769, height=950,menubar=no, toolbar=no, scrollbars=yes");
381}
382
383function makefilepage02(wURL,title){
384  var nwin = window.open(wURL, "title", "width=1000, height=950,menubar=no, toolbar=no, scrollbars=yes");
385}
386
387// チャットポップアップ
388function OpenChat() {
389
390    var nowTime = new Date();
391    var target = "ChatBot" + nowTime;
392    window.open("", target, "width=600,height=775,menubar=no,toolbar=no,location=no,status=no,resizable=yes,scrollbars=no");
393
394    var form = document.createElement("form");
395    form.action = "https://www.sbifxt.co.jp/chatbot/";
396    form.target = target;
397    form.method = "post";
398
399    var qs = [{ type: "hidden", name: "DEVICE", value: "HP" }];
400    for (var i = 0; i < qs.length; i++) {
401        var ol = qs[i];
402        var input = document.createElement("input");
403        for (var p in ol) {
404            input.setAttribute(p, ol[p]);
405        }
406        form.appendChild(input);
407    }
408
409    var body = document.getElementsByTagName("body")[0];
410    body.appendChild(form);
411    form.submit();
412    body.removeChild(form);
413
414}
415
416// 口座開設の提出書類チェッカー
417$(function(){
418  $('[name=radio01]').on('click',function(){
419    $('.first_condition .answerBox').removeClass('current');
420    $('.second_condition').removeClass('current');
421    var target_id = $(this).val();
422    $(target_id).addClass('current');
423  });
424  $('[name=radio02]').on('click',function(){
425    $('.second_condition .answerBox').removeClass('current');
426    var target_id = $(this).val();
427    $(target_id).addClass('current');
428  });
429});
430
431// WEB版取引ツールマニュアルページのイメージマップ処理
432$(function(){
433  $('.clickToolTip').click(function(e){
434    e.preventDefault();
435    var targetNote = $(this).attr('data-target');
436
437    // ツールチップの class="invisible" を削除
438    $('div'+targetNote).removeClass('invisible');
439    return false;
440  });
441    
442  // 表示されたツールチップを隠す処理(マウスクリックで全て隠す)
443  $('html').mousedown(function(){
444    $('div.toolTip').addClass('invisible');
445  });
446    
447});

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.