﻿var cellStatus; var cellTime; var cellIndices; var change_cells; var change_cells1; var cells; var cells1; var xchanges; var ychanges; var prices; var items; var index; var market; var marketStatus = [STATUS_MARKET_UNSTARTED, STATUS_MARKET_OPEN, STATUS_MARKET_CLOSE]; var onmouse_menu = false; var current_category_tab = ''; var current_category = 0; var current_sort_by = ''; var current_sort_type = 'none'; var current_sort_index = 0; var key_status_edit = false; var current_symbols = ''; var current_tabmenu_quantity = 0; var current_targeted_row = null; var current_menu = null; var current_submenu = null; var current_color_mode = 5; var bid_show = true; var ask_show = true; var history_show = true; var foreign_show = true; var timeoutId; var keyOldTime; var keyList = ''; var menuInitPos = 0; var UP_COLOR = '#32cd32'; var DOWN_COLOR = '#f70033'; var NOCHANGE_COLOR = '#eefb00'; var CEILING_COLOR = '#d600d6'; var FLOOR_COLOR = '#66ccff'; var UP_RGB = 'rgb(50, 205, 50)'; var DOWN_RGB = 'rgb(247, 0, 51)'; var NOCHANGE_RGB = 'rgb(238, 251, 0)'; var CEILING_RGB = 'rgb(214, 0, 214)'; var FLOOR_RGB = 'rgb(102, 204, 255)'; var TABMENU_LIMIT = 7; var FAVOURITE_LIMIT = 5; var KEY_INTERVAL = 700; var REFRESH_INTERVAL = 3000; function switchColorMode(num) { if (num == 3) { CEILING_COLOR = UP_COLOR; FLOOR_COLOR = DOWN_COLOR } else if (num == 5) { CEILING_COLOR = '#d600d6'; FLOOR_COLOR = '#66ccff' } } var keyFocusing = false; function keyFocus(e) { if (key_status_edit) return; var duration = 0; var now = new Date(); if (keyOldTime != null) duration = now - keyOldTime; keyOldTime = now; var code = e.charCode ? e.charCode : e.keyCode; if ((code >= 48 && code <= 57) || (code >= 65 && code <= 90)) { var rows = document.getElementById('tblPrice').tBodies[0].getElementsByTagName('tr'); var key = String.fromCharCode(code); if (duration <= KEY_INTERVAL) { if (keyList.length > 3) keyList = keyList.substring(1, 3); keyList += key } else { keyList = '' + key } var pos = -1; for (var i = 0; i < rows.length; i++) { var symbol = rows[i].id.substring(3, rows[i].id.length); if (symbol.indexOf(keyList) == 0) { pos = findPosY(rows[i]); if (current_targeted_row != null) current_targeted_row.style.backgroundColor = ''; rows[i].style.backgroundColor = '#424542'; current_targeted_row = rows[i]; keyFocusing = true; break } } if (pos >= 0) { window.scrollTo(0, pos - 50 - 200) } } } function showSetting() { onmouse_menu = false; hideMenu(); $('#divSetting').dialog({ modal: true, resizable: false, draggable: false, title: SETTING_DIALOG_TITLE, width: 450, buttons: { "OK": function() { $(this).dialog('destroy'); applySetting() } }, beforeclose: function() { $(this).dialog('destroy'); return false } }); loadSetting() } function loadSetting() { var radColor3 = document.getElementById('radSettingColor3'); var radColor5 = document.getElementById('radSettingColor5'); var chkBid = document.getElementById('chkSettingBid'); var chkAsk = document.getElementById('chkSettingAsk'); var chkHistory = document.getElementById('chkSettingHistory'); var chkForeign = document.getElementById('chkSettingForeign'); var cookie = GetCookie('upcom_setting'); if (cookie == '' || cookie == null) { radColor3.checked = false; radColor5.checked = true; chkBid.checked = true; chkAsk.checked = true; chkHistory.checked = true; chkForeign.checked = true } else { eval('var setting=' + cookie); if (setting.colorMode == 3) radColor3.checked = true; else radColor5.checked = true; chkBid.checked = setting.chkBid; chkAsk.checked = setting.chkAsk; chkHistory.checked = setting.chkHistory; chkForeign.checked = setting.chkForeign; current_color_mode = setting.colorMode; bid_show = chkBid.checked; ask_show = chkAsk.checked; history_show = chkHistory.checked; foreign_show = chkForeign.checked } switchColorMode(current_color_mode) } function applySetting() { var radColor3 = document.getElementById('radSettingColor3'); var radColor5 = document.getElementById('radSettingColor5'); var chkBid = document.getElementById('chkSettingBid'); var chkAsk = document.getElementById('chkSettingAsk'); var chkHistory = document.getElementById('chkSettingHistory'); var chkForeign = document.getElementById('chkSettingForeign'); switchColorMode(current_color_mode); bid_show = chkBid.checked; ask_show = chkAsk.checked; history_show = chkHistory.checked; foreign_show = chkForeign.checked; var setting = '{'; setting += '"colorMode":' + current_color_mode + ','; setting += '"chkBid":' + bid_show + ','; setting += '"chkAsk":' + ask_show + ','; setting += '"chkHistory":' + history_show + ','; setting += '"chkForeign":' + foreign_show; setting += '}'; SetCookie('upcom_setting', setting, 30); buildPriceBoard() } function showMenu() { var scrollTop = document.body.scrollTop; if (scrollTop == 0) { if (window.pageYOffset) scrollTop = window.pageYOffset; else scrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0 } var option = document.getElementById('divPriceBoard'); var divMenu = document.getElementById('divMenu'); var pos = getPos(option) - scrollTop; divMenu.style.top = pos + 'px'; if (divMenu.style.display != 'none') return; else divMenu.style.display = ''; if (BrowserDetect.browser == "Explorer" && BrowserDetect.version == "6") { var top = scrollTop + pos; divMenu.style.top = top + 'px' } } function hideMenu() { if (onmouse_menu) return; var divMenu = document.getElementById('divMenu'); divMenu.style.display = 'none'; if (current_submenu != null) current_submenu.style.display = 'none' } function showSubMenu(parent, subname) { if (current_submenu != null) current_submenu.style.display = 'none'; if (subname == '') return; var sub = document.getElementById(subname); current_submenu = sub; var divMenu = document.getElementById('divMenu'); var top = getPos(parent); sub.style.top = top + 'px'; sub.style.display = '' } function viewByCategory(catid, name) { onmouse_menu = false; hideMenu(); if (catid == current_category) return; var tab = document.getElementById('tdCatTab' + catid); if (current_tabmenu_quantity >= TABMENU_LIMIT && catid != 0 && tab == null) { alert(TABMENU_ERROR_EXCEEDED); return } onmouse_menu = false; current_category = catid; if (current_category_tab != '') { var cur_tab = document.getElementById(current_category_tab); cur_tab.style.color = '#ffffff' } if (catid != 0) { if (tab == null) { var tr = document.getElementById('trMenuTab'); var td = document.createElement('td'); td.id = 'tdCatTab' + catid; td.style.cursor = 'pointer'; td.style.paddingLeft = '1px'; td.style.color = '#ffff00'; var html = '<table border="0" cellpadding="0" cellspacing="0">'; html += '<tr>'; html += '<td><img src="images/tab_left.gif" width="7" height="24" /></td>'; html += '<td id="' + td.id + '_name" class="tab_center" style="font-weight:bold;" onclick="viewByCategory(' + catid + ", '" + name + "');\">" + name + '</td>'; html += '<td onclick="closeTab(\'' + td.id + '\');"><img src="images/bt_del.gif" width="25" height="24" border="0" /></td>'; html += '</tr>'; html += '</table>'; td.innerHTML = html; tr.appendChild(td); current_tabmenu_quantity++; current_category_tab = td.id } else { tab.style.color = '#ffff00'; current_category_tab = tab.id } } timeoutId = clearTimeout(timeoutId); UPCOM.GetPrice(-1, current_category, 0, '', initPageCallback) } function closeTab(id) { var tr = document.getElementById('trMenuTab'); var td = document.getElementById(id); if (td != null) tr.removeChild(td); current_tabmenu_quantity--; var curTab = document.getElementById(current_category_tab); if (curTab == null) { current_category_tab = ''; current_symbols = ''; viewByCategory(0, '') } } function initFavourite() { var cookie = GetCookie('upcom_favourite'); if (cookie == null || cookie == '') return; eval('var favs=' + cookie + ';'); var sel = document.getElementById('selFavourite'); sel.innerHTML = ''; var tbl = document.getElementById('tblFavourite').tBodies[0]; var rows = tbl.getElementsByTagName('tr'); for (var i = 0; i < rows.length; i++) { if (rows[i].id.indexOf('favourite') >= 0) { tbl.removeChild(rows[i]); i-- } } for (var i = 0; i < favs.length; i++) { var values = '['; for (var j = 0; j < favs[i].values.length; j++) { if (j > 0) values += ','; values += "'" + favs[i].values[j] + "'" } values += ']'; var opt = document.createElement('option'); opt.value = values; opt.innerHTML = favs[i].name; sel.appendChild(opt); var tr = document.createElement('tr'); tr.id = 'menu_favourite_' + favs[i].name; var td = document.createElement('td'); td.innerHTML = "<div class=\"menu_item\" onclick=\"viewByFavourite('" + favs[i].name + "');\" onmouseout=\"this.className='menu_item';\" onmouseover=\"this.className='menu_item_hightlight';\">&nbsp;" + favs[i].name + "</div>"; tr.appendChild(td); tbl.appendChild(tr) } } function showFavourite() { onmouse_menu = false; hideMenu(); $('#divFavourite').dialog({ modal: true, resizable: false, draggable: false, title: FAVOURITE_DIALOG_TITLE, width: 850, beforeclose: function() { $(this).dialog('destroy'); return false } }); loadFavourite() } function saveFavourite() { var name = document.getElementById('txtFavourite').value.replace(' ', ''); if (name != null || name != '') { var sel = document.getElementById('selFavourite'); if (sel.options.length > FAVOURITE_LIMIT) { alert(FAVOURITE_ERROR_EXCEEDED); return } var symbols = buildFavourite(); if (symbols == '[]') { alert(FAVOURITE_ERROR_NOSELECTED); return } var pos = findPredefined(name); if (pos > -1) { var opt = sel.options[pos]; opt.value = symbols; sel.selectedIndex = pos; if (current_category_tab == ('tdCatTab' + name)) { current_symbols = '(' + symbols.substring(1, symbols.length - 1) + ')'; clearTimeout(timeoutId); UPCOM.GetPrice(-1, -1, 0, current_symbols, initPageCallback) } } else { var opt = document.createElement('option'); opt.value = symbols; opt.innerHTML = name; sel.appendChild(opt); sel.selectedIndex = sel.options.length - 1; var tbl = document.getElementById('tblFavourite').tBodies[0]; var tr = document.createElement('tr'); tr.id = 'menu_favourite_' + name; var td = document.createElement('td'); td.innerHTML = "<div id=\"div_favourite_" + name + "\" class=\"menu_item\" onclick=\"viewByFavourite('" + name + "');\" onmouseout=\"this.className='menu_item';\" onmouseover=\"this.className='menu_item_hightlight';\">&nbsp;" + name + "</div>"; tr.appendChild(td); tbl.appendChild(tr) } saveCookie_Favourite('upcom_favourite'); alert(FAVOURITE_SAVE_SUCCESS) } } function viewByFavourite(name) { onmouse_menu = false; hideMenu(); var tab = document.getElementById('tdCatTab' + name); if (current_tabmenu_quantity >= TABMENU_LIMIT && tab == null) { alert(TABMENU_ERROR_EXCEEDED); return } onmouse_menu = false; current_category = -1; if (current_category_tab != '') { var cur_tab = document.getElementById(current_category_tab); cur_tab.style.color = '#ffffff' } if (name != '') { if (tab == null) { var tr = document.getElementById('trMenuTab'); var td = document.createElement('td'); td.id = 'tdCatTab' + name; td.style.cursor = 'pointer'; td.style.paddingLeft = '1px'; td.style.color = '#ffff00'; var html = '<table border="0" cellpadding="0" cellspacing="0">'; html += '<tr>'; html += '<td><img src="images/tab_left.gif" width="7" height="24" /></td>'; html += '<td id="' + td.id + '_name" class="tab_center" style="font-weight:bold;" onclick="viewByFavourite(\'' + name + "');\">" + name + '</td>'; html += '<td onclick="closeTab(\'' + td.id + '\');"><img src="images/bt_del.gif" width="25" height="24" border="0" /></td>'; html += '</tr>'; html += '</table>'; td.innerHTML = html; tr.appendChild(td); current_tabmenu_quantity++; current_category_tab = td.id } else { tab.style.color = '#ffff00'; current_category_tab = tab.id } } timeoutId = clearTimeout(timeoutId); var sel = document.getElementById('selFavourite'); var pos = findPredefined(name); if (pos >= 0) { var value = sel.options[pos].value; current_symbols = '(' + value.substring(1, value.length - 1) + ')' } else current_symbols = ''; UPCOM.GetPrice(-1, -1, 0, current_symbols, initPageCallback) } function loadFavourite() { var sel = document.getElementById('selFavourite'); var txt = document.getElementById('txtFavourite'); var chks = document.getElementById('divSymbol').getElementsByTagName('input'); if (sel.options.length == 0) { txt.value = ''; for (var i = 0; i < chks.length; i++) { chks[i].checked = false } return } if (sel.selectedIndex < 0) sel.selectedIndex = 0; var opt = sel.options[sel.selectedIndex]; txt.value = opt.innerHTML; for (var i = 0; i < chks.length; i++) { if (opt.value.indexOf(chks[i].value) >= 0) chks[i].checked = true; else chks[i].checked = false } } function removeFavourite() { var sel = document.getElementById('selFavourite'); if (sel.options.length == 0) return; var name = sel.options[sel.selectedIndex].innerHTML; sel.removeChild(sel.options[sel.selectedIndex]); saveCookie_Favourite('upcom_favourite'); var tbl = document.getElementById('tblFavourite').tBodies[0]; var tr = document.getElementById('menu_favourite_' + name); if (tr != null) tbl.removeChild(tr); closeTab('tdCatTab' + name) } function buildFavourite() { var strSelectList = "["; var chks = document.getElementById("divSymbol").getElementsByTagName('input'); for (var i = 0; i < chks.length; i++) { var chk = chks[i]; if (chk.checked) { if (strSelectList == '[') strSelectList += "'" + chk.value + "'"; else strSelectList += ",'" + chk.value + "'" } } strSelectList += ']'; return strSelectList } function saveCookie_Favourite(name) { var sel = document.getElementById('selFavourite'); var values = '['; for (var i = 0; i < sel.options.length; i++) { if (i > 0) values += ','; var value = '{"name":"' + sel.options[i].innerHTML + '","values":' + sel.options[i].value + '}'; values += value } values += ']'; document.cookie = name + '=' + escape(values) + ";EXPIRES=" + GetExpiryDate(30) + ';path=/' } function findPredefined(name) { var sel = document.getElementById('selFavourite'); for (var i = 0; i < sel.options.length; i++) { if (sel.options[i].innerHTML == name) return i } return -1 } function alphabetSelectSymbol(key) { var tbl = document.getElementById('tblSymbols'); var tds = tbl.getElementsByTagName('td'); for (var i = 0; i < tds.length; i++) { var input = tds[i].getElementsByTagName('input')[0]; if (input.value.charAt(0) == key) tds[i].style.color = '#ff0000'; else tds[i].style.color = '#ffffff' } } function deselectAllFavourite() { var div = document.getElementById('divSymbol'); var cks = div.getElementsByTagName('input'); for (var i = 0; i < cks.length; i++) { cks[i].checked = false } } function sortBy(by, index) { var col = 'col' + by; var col1 = col + '_1'; current_sort_index = index; if (current_sort_by != '') { var old = document.getElementById(current_sort_by); var div = old.getElementsByTagName('div')[0]; if (div != null) old.removeChild(div); var old1 = document.getElementById(current_sort_by + '_1'); var div1 = old1.getElementsByTagName('div')[0]; if (div1 != null) old1.removeChild(div1) } if (current_sort_by == '') { current_sort_type = 'ascent'; current_sort_by = col } else if (col == current_sort_by) { if (current_sort_type == 'none') current_sort_type = 'ascent'; else if (current_sort_type == 'ascent') current_sort_type = 'descent'; else { current_sort_by = ''; current_sort_type = 'none' } } else { current_sort_by = col } var sign = ''; if (current_sort_type == 'ascent') sign = '<div>▲</div>'; else if (current_sort_type == 'descent') sign = '<div>▼</div>'; var target = document.getElementById(col); if (target != null) target.innerHTML += sign; var target1 = document.getElementById(col1); if (target1 != null) target1.innerHTML += sign; var divHeader = document.getElementById('divHeader'); if (current_sort_type == 'none') divHeader.style.height = '47px'; else divHeader.style.height = '62px'; if (current_sort_type == 'ascent') ascentSort(index); else if (current_sort_type == 'descent') descentSort(index); else ascentSort(0) } function resort() { var col = current_sort_by; var col1 = col + '_1'; var sign = ''; if (current_sort_type == 'ascent') sign = '<div>▲</div>'; else if (current_sort_type == 'descent') sign = '<div>▼</div>'; var target = document.getElementById(col); if (target != null) target.innerHTML += sign; var target1 = document.getElementById(col1); if (target1 != null) target1.innerHTML += sign; var divHeader = document.getElementById('divHeader'); if (current_sort_type == 'none') divHeader.style.height = '47px'; else divHeader.style.height = '62px'; if (current_sort_type == 'ascent') ascentSort(current_sort_index); else if (current_sort_type == 'descent') descentSort(current_sort_index); else ascentSort(0) } function convertHTML(obj, index) { if (index == 0 || index == 10) { var value = obj.getElementsByTagName('span')[0].innerHTML; if (index == 0) { return value } else { if (value == '' || value == '&nbsp;') value = '0'; if (obj.style.color == DOWN_COLOR || obj.style.color == DOWN_RGB || obj.style.color == FLOOR_COLOR || obj.style.color == FLOOR_RGB) value = '-' + value; return parseFloat(value) } } if (obj.innerHTML == '' || obj.innerHTML == '&nbsp;') return -999999999.0; var text = obj.innerHTML; while (text.indexOf(',') >= 0) text = text.replace(',', ''); return parseFloat(text) } function ascentSort(index) { var table = document.getElementById('tblPrice'); var rows = table.tBodies[0].getElementsByTagName('tr'); var selectedVals = new Array(); var selectedRows = new Array(); var i; for (i = 0; i < rows.length; i++) { var chk = rows[i].getElementsByTagName('img')[0]; if (chk.className == 'checked') { var td = rows[i].getElementsByTagName('td')[index]; selectedVals[i] = convertHTML(td, index); selectedRows[i] = rows[i] } else { break } } var unselectedVals = new Array(); var unselectedRows = new Array(); var count = 0; for (i = i; i < rows.length; i++) { var td = rows[i].getElementsByTagName('td')[index]; unselectedVals[count] = convertHTML(td, index); unselectedRows[count] = rows[i]; count++ } for (i = 0; i < selectedVals.length - 1; i++) { for (var j = i + 1; j < selectedVals.length; j++) { if (selectedVals[i] > selectedVals[j]) { var val = selectedVals[i]; selectedVals[i] = selectedVals[j]; selectedVals[j] = val; var row = selectedRows[i]; selectedRows[i] = selectedRows[j]; selectedRows[j] = row } } } for (i = 0; i < unselectedVals.length - 1; i++) { for (var j = i + 1; j < unselectedVals.length; j++) { if (unselectedVals[i] > unselectedVals[j]) { var val = unselectedVals[i]; unselectedVals[i] = unselectedVals[j]; unselectedVals[j] = val; var row = unselectedRows[i]; unselectedRows[i] = unselectedRows[j]; unselectedRows[j] = row } } } var tbody = document.createElement('tbody'); for (i = 0; i < selectedRows.length; i++) { tbody.appendChild(selectedRows[i]) } for (i = 0; i < unselectedRows.length; i++) { tbody.appendChild(unselectedRows[i]) } table.removeChild(table.tBodies[0]); table.appendChild(tbody); for (var i = 0; i < selectedRows.length; i++) { var tds = selectedRows[i].getElementsByTagName('td'); if (tds[0].style.borderBottom != '') { for (var j = 0; j < tds.length; j++) { tds[j].style.borderBottom = '' } } } if (selectedRows.length > 0) { var tds = selectedRows[selectedRows.length - 1].getElementsByTagName('td'); for (var j = 0; j < tds.length; j++) { tds[j].style.borderBottom = '#c6c3c6 2px ridge' } } } function descentSort(index) { var table = document.getElementById('tblPrice'); var rows = table.tBodies[0].getElementsByTagName('tr'); var selectedVals = new Array(); var selectedRows = new Array(); var i; for (i = 0; i < rows.length; i++) { var chk = rows[i].getElementsByTagName('img')[0]; if (chk.className == 'checked') { var td = rows[i].getElementsByTagName('td')[index]; selectedVals[i] = convertHTML(td, index); selectedRows[i] = rows[i] } else { break } } var unselectedVals = new Array(); var unselectedRows = new Array(); var count = 0; for (i = i; i < rows.length; i++) { var td = rows[i].getElementsByTagName('td')[index]; unselectedVals[count] = convertHTML(td, index); unselectedRows[count] = rows[i]; count++ } for (i = 0; i < selectedVals.length - 1; i++) { for (var j = i + 1; j < selectedVals.length; j++) { if (selectedVals[i] < selectedVals[j]) { var val = selectedVals[i]; selectedVals[i] = selectedVals[j]; selectedVals[j] = val; var row = selectedRows[i]; selectedRows[i] = selectedRows[j]; selectedRows[j] = row } } } for (i = 0; i < unselectedVals.length - 1; i++) { for (var j = i + 1; j < unselectedVals.length; j++) { if (unselectedVals[i] < unselectedVals[j]) { var val = unselectedVals[i]; unselectedVals[i] = unselectedVals[j]; unselectedVals[j] = val; var row = unselectedRows[i]; unselectedRows[i] = unselectedRows[j]; unselectedRows[j] = row } } } var tbody = document.createElement('tbody'); for (i = 0; i < selectedRows.length; i++) { tbody.appendChild(selectedRows[i]) } for (i = 0; i < unselectedRows.length; i++) { tbody.appendChild(unselectedRows[i]) } table.removeChild(table.tBodies[0]); table.appendChild(tbody); for (var i = 0; i < selectedRows.length; i++) { var tds = selectedRows[i].getElementsByTagName('td'); if (tds[0].style.borderBottom != '') { for (var j = 0; j < tds.length; j++) { tds[j].style.borderBottom = '' } } } if (selectedRows.length > 0) { var tds = selectedRows[selectedRows.length - 1].getElementsByTagName('td'); for (var j = 0; j < tds.length; j++) { tds[j].style.borderBottom = '#c6c3c6 2px ridge' } } } function refreshHeader() { var tblPricePos = getPos(document.getElementById('tblPrice')); var divHeader = document.getElementById('divHeader'); var scrollTop = document.body.scrollTop; if (scrollTop == 0) { if (window.pageYOffset) scrollTop = window.pageYOffset; else scrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0 } if (BrowserDetect.browser == "Explorer" && BrowserDetect.version == "6") { if (scrollTop > tblPricePos) { divHeader.style.display = ''; divHeader.style.top = scrollTop + 'px' } else divHeader.style.display = 'none'; var divMenu = document.getElementById('divMenu'); if (divMenu.style.display != 'none') { var top = menuInitPos + scrollTop; divMenu.style.top = top + 'px' } if (current_submenu != null) { if (current_submenu.style.display != 'none') { var top = findPosY(current_menu); current_submenu.style.top = top + 'px' } } } else { if (scrollTop > tblPricePos) divHeader.style.display = ''; else divHeader.style.display = 'none'; var divMenu = document.getElementById('divMenu'); if (divMenu.style.display != 'none') { divMenu.style.top = menuInitPos + 'px' } if (current_submenu != null) { if (current_submenu.style.display != 'none') { var top = findPosY(current_menu); current_submenu.style.top = top + 'px' } } } } function initPage() { var divMenu = document.getElementById('divMenu'); var option = document.getElementById('divPriceBoard'); menuInitPos = getPos(option); divMenu.style.top = menuInitPos + 'px'; if (BrowserDetect.browser == "Explorer" && BrowserDetect.version == "6") { divMenu.style.position = 'absolute'; var divHeader = document.getElementById('divHeader'); divHeader.style.position = 'absolute'; document.getElementById('divMenuFavourite').style.position = 'absolute'; document.getElementById('divMenuCat').style.position = 'absolute'; document.getElementById('divMenuPut').style.position = 'absolute' } current_sort_by = ''; current_sort_type = 'none'; cellStatus = document.getElementById('spanStatus'); cellTime = document.getElementById('spanTime'); cellIndices = new Array(4); cellIndices[0] = document.getElementById('spanIndex'); cellIndices[1] = document.getElementById('spanChange'); cellIndices[2] = document.getElementById('spanVol'); cellIndices[3] = document.getElementById('spanVal'); loadSetting(); initFavourite(); UPCOM.GetPrice(-1, 0, 0, '', initPageCallback) } function clearResources() { if (market != null) delete market; if (index != null) delete index; if (change_cells != null) delete change_cells; if (change_cells1 != null) delete change_cells1; if (cells != null) { for (var i = 0; i < cells.length; i++) { if (cells[i] != null) delete cells[i] } delete cells } if (cells1 != null) { for (var i = 0; i < cells1.length; i++) { if (cells1[i] != null) delete cells1[i] } delete cells1 } if (xchanges != null) delete xchanges; if (ychanges != null) delete ychanges; if (items != null) { for (var i = 0; i < items.length; i++) { if (items[i] != null) delete items[i] } delete items } if (prices != null) { for (var i = 0; i < prices.length; i++) { if (prices[i] != null) delete prices[i] } delete prices } } function initPageCallback(res) { if (res.value == null) return; var results = eval(res.value); var new_items = results[0]; var new_index = results[1]; var new_market = results[2]; clearResources(); if (new_index != null) { if (new_index.length > 0) { index = new_index; var index_status_class = NOCHANGE_COLOR; var index_status_pre = '■'; if (index[2] > 0) { index_status_class = UP_COLOR; index_status_pre = '▲' } if (index[2] < 0) { index_status_class = DOWN_COLOR; index_status_pre = '▼' } cellIndices[0].innerHTML = index[1] + ''; cellIndices[0].style.color = index_status_class; cellIndices[1].innerHTML = index_status_pre + index[2] + ' (' + index[3] + '%)'; cellIndices[1].style.color = index_status_class; cellIndices[2].innerHTML = index[4]; cellIndices[2].style.color = index_status_class; cellIndices[3].innerHTML = index[5] + STATUS_CURRENCY; cellIndices[3].style.color = index_status_class } } if (new_market != null) { if (new_market.length > 0) { market = new_market; cellStatus.innerHTML = marketStatus[market[0]]; cellTime.innerHTML = market[1] } } if (items != null) delete items; if (prices != null) delete prices; items = new Array(new_items.length); prices = new Array(new_items.length); for (var i = 0; i < new_items.length; i++) { items[i] = new Array(21); prices[i] = new Array(3); prices[i][0] = new_items[i][1]; prices[i][1] = new_items[i][2]; prices[i][2] = new_items[i][3]; items[i][0] = new_items[i][0]; for (var j = 4; j <= 23; j++) { items[i][j - 3] = new_items[i][j] } } buildPriceBoard(); refreshPrice() } function buildPriceBoard() { var display_bid = bid_show ? '' : 'display:none;'; var display_ask = ask_show ? '' : 'display:none;'; var display_history = history_show ? '' : 'display:none;'; var display_foreign = foreign_show ? '' : 'display:none;'; var html = new StringBuffer(); var html1 = new StringBuffer(); html.append('<table class="table_outer" cellpadding="0" cellspacing="0" width="100%"><tr><td>'); html.append('<table id="tblPrice" class="table_price" width="100%" cellspacing="0">'); html.append('<thead class="table_header">'); html.append('<tr>'); html.append('<td id="colCode" style="border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Code\', 0);" rowspan="2">' + HEADER_CODE + '</td>'); html.append('<td id="colCeiling" style="border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Ceiling\', 1);" rowspan="2">' + HEADER_CEILING + '</td>'); html.append('<td id="colFloor" style="border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Floor\', 2);" rowspan="2">' + HEADER_FLOOR + '</td>'); html.append('<td id="colPrior" style="border-bottom: #c6c3c6 2px ridge; border-right: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Prior\', 3);" rowspan="2">' + HEADER_PRIOR + '</td>'); html.append('<td id="colBuy" colspan="6" style="' + display_bid + 'border-right: #c6c3c6 2px ridge;">' + HEADER_BUY + '</td>'); html.append('<td id="colImp" colspan="4" style="border-right: #c6c3c6 2px ridge;">' + HEADER_MATCH + '</td>'); html.append('<td id="colSell" colspan="6" style="' + display_ask + 'border-right: #c6c3c6 2px ridge;">' + HEADER_SELL + '</td>'); html.append('<td id="colPhase2" colspan="2" style="' + display_history + '">' + HEADER_SESSION2 + '</td>'); html.append('<td colspan="2" style="' + display_foreign + '">' + HEADER_FOREIGN + '</td>'); html.append('</tr><tr>'); html.append('<td id="colBid3" style="' + display_bid + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Bid3\', 4);">' + HEADER_BUY_PRICE3 + '</td>'); html.append('<td id="colBVol3" style="' + display_bid + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'BVol3\', 5);">' + HEADER_BUY_VOL3 + '</td>'); html.append('<td id="colBid2" style="' + display_bid + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Bid2\', 6);">' + HEADER_BUY_PRICE2 + '</td>'); html.append('<td id="colBVol2" style="' + display_bid + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'BVol2\', 7);">' + HEADER_BUY_VOL2 + '</td>'); html.append('<td id="colBid1" style="' + display_bid + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Bid1\', 8);">' + HEADER_BUY_PRICE1 + '</td>'); html.append('<td id="colBVol1" style="' + display_bid + 'border-bottom: #c6c3c6 2px ridge; border-right: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'BVol1\', 9);">' + HEADER_BUY_VOL1 + '</td>'); html.append('<td id="colChange" style="border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Change\', 10);">' + HEADER_MATCH_CHANGE + '</td>'); html.append('<td id="colLast" style="border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Last\', 11);">' + HEADER_MATCH_PRICE + '</td>'); html.append('<td id="colVol" style="border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Vol\', 12);">' + HEADER_MATCH_VOL + '</td>'); html.append('<td id="colTotalVol" style="border-bottom: #c6c3c6 2px ridge; border-right: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'TotalVol\', 13);">' + HEADER_TOTALVOL + '</td>'); html.append('<td id="colOff1" style="' + display_ask + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Off1\', 14);">' + HEADER_SELL_PRICE1 + '</td>'); html.append('<td id="colOVol1" style="' + display_ask + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'OVol1\', 15);">' + HEADER_SELL_VOL1 + '</td>'); html.append('<td id="colOff2" style="' + display_ask + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Off2\', 16);">' + HEADER_SELL_PRICE2 + '</td>'); html.append('<td id="colOVol2" style="' + display_ask + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'OVol2\', 17);">' + HEADER_SELL_VOL2 + '</td>'); html.append('<td id="colOff3" style="' + display_ask + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Off3\', 18);">' + HEADER_SELL_PRICE3 + '</td>'); html.append('<td id="colOVol3" style="' + display_ask + 'border-bottom: #c6c3c6 2px ridge; border-right: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'OVol3\', 19);">' + HEADER_SELL_VOL3 + '</td>'); html.append('<td id="colHighest" style="' + display_history + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Highest\', 21);">' + HEADER_HIGHEST + '</td>'); html.append('<td id="colLowest" style="' + display_history + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Lowest\', 22);">' + HEADER_LOWEST + '</td>'); html.append('<td id="colForeignBuy" style="' + display_foreign + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'ForeignBuy\', 23);">' + HEADER_FOREIGN_BUY + '</td>'); html.append('<td id="colForeignSell" style="' + display_foreign + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'ForeignSell\', 24);">' + HEADER_FOREIGN_SELL + '</td>'); html.append('</tr>'); html.append('</thead><tbody>'); html1.append('<table class="table_outer" cellpadding="0" cellspacing="0" width="100%"><tr><td>'); html1.append('<table id="tblPrice_1" class="table_price" width="100%" cellspacing="0">'); html1.append('<thead class="table_header">'); html1.append('<tr>'); html1.append('<td id="colCode_1" style="border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Code\', 0);" rowspan="2">' + HEADER_CODE + '</td>'); html1.append('<td id="colCeiling_1" style="border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Ceiling\', 1);" rowspan="2">' + HEADER_CEILING + '</td>'); html1.append('<td id="colFloor_1" style="border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Floor\', 2);" rowspan="2">' + HEADER_FLOOR + '</td>'); html1.append('<td id="colPrior_1" style="border-bottom: #c6c3c6 2px ridge; border-right: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Prior\', 3);" rowspan="2">' + HEADER_PRIOR + '</td>'); html1.append('<td id="colBuy_1" colspan="6" style="' + display_bid + 'border-right: #c6c3c6 2px ridge;">' + HEADER_BUY + '</td>'); html1.append('<td id="colImp_1" colspan="4" style="border-right: #c6c3c6 2px ridge;">' + HEADER_MATCH + '</td>'); html1.append('<td id="colSell_1" colspan="6" style="' + display_ask + 'border-right: #c6c3c6 2px ridge;">' + HEADER_SELL + '</td>'); html1.append('<td id="colPhase2_1" colspan="3" style="p' + display_history + '">' + HEADER_SESSION2 + '</td>'); html1.append('<td colspan="2" style="' + display_foreign + '">' + HEADER_FOREIGN + '</td>'); html1.append('</tr><tr>'); html1.append('<td id="colBid3_1" style="' + display_bid + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Bid3\', 4);">' + HEADER_BUY_PRICE3 + '</td>'); html1.append('<td id="colBVol3_1" style="' + display_bid + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'BVol3\', 5);">' + HEADER_BUY_VOL3 + '</td>'); html1.append('<td id="colBid2_1" style="' + display_bid + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Bid2\', 6);">' + HEADER_BUY_PRICE2 + '</td>'); html1.append('<td id="colBVol2_1" style="' + display_bid + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'BVol2\', 7);">' + HEADER_BUY_VOL2 + '</td>'); html1.append('<td id="colBid1_1" style="' + display_bid + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Bid1\', 8);">' + HEADER_BUY_PRICE1 + '</td>'); html1.append('<td id="colBVol1_1" style="' + display_bid + 'border-bottom: #c6c3c6 2px ridge; border-right: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'BVol1\', 9);">' + HEADER_BUY_VOL1 + '</td>'); html1.append('<td id="colChange_1" style="border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Change\', 10);">' + HEADER_MATCH_CHANGE + '</td>'); html1.append('<td id="colLast_1" style="border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Last\', 11);">' + HEADER_MATCH_PRICE + '</td>'); html1.append('<td id="colVol_1" style="border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Vol\', 12);">' + HEADER_MATCH_VOL + '</td>'); html1.append('<td id="colTotalVol_1" style="border-bottom: #c6c3c6 2px ridge; border-right: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'TotalVol\', 13);">' + HEADER_TOTALVOL + '</td>'); html1.append('<td id="colOff1_1" style="' + display_ask + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Off1\', 14);">' + HEADER_SELL_PRICE1 + '</td>'); html1.append('<td id="colOVol1_1" style="' + display_ask + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'OVol1\', 15);">' + HEADER_SELL_VOL1 + '</td>'); html1.append('<td id="colOff2_1" style="' + display_ask + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Off2\', 16);">' + HEADER_SELL_PRICE2 + '</td>'); html1.append('<td id="colOVol2_1" style="' + display_ask + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'OVol2\', 17);">' + HEADER_SELL_VOL2 + '</td>'); html1.append('<td id="colOff3_1" style="' + display_ask + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Off3\', 18);">' + HEADER_SELL_PRICE3 + '</td>'); html1.append('<td id="colOVol3_1" style="' + display_ask + 'border-bottom: #c6c3c6 2px ridge; border-right: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'OVol3\', 19);">' + HEADER_SELL_VOL3 + '</td>'); html1.append('<td id="colHighest_1" style="' + display_history + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Highest\', 21);">' + HEADER_HIGHEST + '</td>'); html1.append('<td id="colLowest_1" style="' + display_history + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'Lowest\', 22);">' + HEADER_LOWEST + '</td>'); html1.append('<td id="colForeignBuy_1" style="' + display_foreign + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'ForeignBuy\', 23);" rowspan="2">' + HEADER_FOREIGN_BUY + '</td>'); html1.append('<td id="colForeignSell_1" style="' + display_foreign + 'border-bottom: #c6c3c6 2px ridge; cursor:pointer;" onclick="javascript:sortBy(\'ForeignSell\', 24);" rowspan="2">' + HEADER_FOREIGN_SELL + '</td>'); html1.append('</tr>'); html1.append('</thead><tbody style="visibility:hidden;">'); for (var i = 0; i < items.length; i++) { var toggle_class = NOCHANGE_COLOR; var status_class = NOCHANGE_COLOR; var item = items[i]; var price = prices[i]; var change = item[7] > 0 ? (item[7] - price[0]) : 0; var symbol_show = '<span>' + item[0]; if (change < 0) { status_class = item[7] == price[2] ? FLOOR_COLOR : DOWN_COLOR } else if (change > 0) { status_class = item[7] == price[1] ? CEILING_COLOR : UP_COLOR } else { status_class = NOCHANGE_COLOR } symbol_show += '</span>'; var change_show = ''; if (current_color_mode == 3) { change_show = '<div style="float:left; font-weight:bold;">'; change_show += item[0] + '</div><div style="float:right;">'; if (item[7] == price[1]) change_show += 'CE&nbsp;'; else if (item[7] == price[2]) change_show += 'FL&nbsp;'; change_show += '<span>' + roundNumber2(Math.abs(change)) + '<span></div>' } else { change_show = '<div style="float:left; font-size:12px; font-weight:bold;">' + item[0] + '</div>'; if (change != 0) change_show += '<div style="float:right;"><span>' + roundNumber2(Math.abs(change)) + '</span></div>'; else change_show += '<div style="float:right;"><span></span></div>' } html.append('<tr id="row' + item[0] + '" onmouseout="this.style.backgroundColor=\'\';" onmouseover="if(keyFocusing){keyFocusing=false;return;}if(current_targeted_row!=null){current_targeted_row.style.backgroundColor=\'\';}current_targeted_row=this;this.style.backgroundColor=\'#424542\';">'); html.append('<td style="font-size:12px; font-weight:bold; color:' + status_class + '" align="left"><img title="' + item[0] + '" class="unchecked" src="images/check1.gif" style="cursor: pointer;" onclick="javascript:toggleSymbolSelection(this);">&nbsp;' + symbol_show + '</td>'); html.append('<td style="color:' + CEILING_COLOR + '">' + price[1] + '</td>'); html.append('<td style="color:' + FLOOR_COLOR + '">' + price[2] + '</td>'); html.append('<td style="border-right: #c6c3c6 2px ridge; color:' + NOCHANGE_COLOR + '">' + price[0] + '</td>'); if (item[1] > price[0]) toggle_class = item[1] == price[1] ? CEILING_COLOR : UP_COLOR; else if (item[1] < price[0]) toggle_class = item[1] == price[2] ? FLOOR_COLOR : DOWN_COLOR; else toggle_class = NOCHANGE_COLOR; html.append('<td style="' + display_bid + 'color:' + toggle_class + '">' + (item[1] > 0 ? item[1] : '&nbsp;') + '</td>'); html.append('<td style="' + display_bid + 'color:' + toggle_class + '">' + (item[2] > 0 ? volumeFormat(item[2]) : '&nbsp;') + '</td>'); if (item[3] > price[0]) toggle_class = item[3] == price[1] ? CEILING_COLOR : UP_COLOR; else if (item[3] < price[0]) toggle_class = item[3] == price[2] ? FLOOR_COLOR : DOWN_COLOR; else toggle_class = NOCHANGE_COLOR; html.append('<td style="' + display_bid + 'color:' + toggle_class + '">' + (item[3] > 0 ? item[3] : '&nbsp;') + '</td>'); html.append('<td style="' + display_bid + 'color:' + toggle_class + '">' + (item[4] > 0 ? volumeFormat(item[4]) : '&nbsp;') + '</td>'); if (item[5] > price[0]) toggle_class = item[5] == price[1] ? CEILING_COLOR : UP_COLOR; else if (item[5] < price[0]) toggle_class = item[5] == price[2] ? FLOOR_COLOR : DOWN_COLOR; else toggle_class = NOCHANGE_COLOR; html.append('<td style="' + display_bid + 'color:' + toggle_class + '">' + (item[5] > 0 ? item[5] : '&nbsp;') + '</td>'); html.append('<td style="' + display_bid + 'border-right: #c6c3c6 2px ridge; color:' + toggle_class + '">' + (item[6] > 0 ? volumeFormat(item[6]) : '&nbsp;') + '</td>'); if (change > 0) status_class = item[7] == price[1] ? CEILING_COLOR : UP_COLOR; else if (change < 0) status_class = item[7] == price[2] ? FLOOR_COLOR : DOWN_COLOR; else status_class = NOCHANGE_COLOR; html.append('<td style="color:' + status_class + ';">' + change_show + '</td>'); html.append('<td style="color:' + status_class + ';">' + (item[7] > 0 ? item[7] : '&nbsp;') + '</td>'); html.append('<td style="color:' + status_class + ';">' + (item[8] > 0 ? volumeFormat(item[8]) : '&nbsp;') + '</td>'); html.append('<td style="border-right: #c6c3c6 2px ridge; color:' + status_class + '">' + (item[9] > 0 ? numberFormat(item[9]) : '&nbsp;') + '</td>'); if (item[10] > price[0]) toggle_class = item[10] == price[1] ? CEILING_COLOR : UP_COLOR; else if (item[10] < price[0]) toggle_class = item[10] == price[2] ? FLOOR_COLOR : DOWN_COLOR; else toggle_class = NOCHANGE_COLOR; html.append('<td style="' + display_ask + 'color:' + toggle_class + '">' + (item[10] > 0 ? item[10] : '&nbsp;') + '</td>'); html.append('<td style="' + display_ask + 'color:' + toggle_class + '">' + (item[11] > 0 ? numberFormat(item[11]) : '&nbsp;') + '</td>'); if (item[12] > price[0]) toggle_class = item[12] == price[1] ? CEILING_COLOR : UP_COLOR; else if (item[12] < price[0]) toggle_class = item[12] == price[2] ? FLOOR_COLOR : DOWN_COLOR; else toggle_class = NOCHANGE_COLOR; html.append('<td style="' + display_ask + 'color:' + toggle_class + '">' + (item[12] > 0 ? item[12] : '&nbsp;') + '</td>'); html.append('<td style="' + display_ask + 'color:' + toggle_class + '">' + (item[13] > 0 ? numberFormat(item[13]) : '&nbsp;') + '</td>'); if (item[14] > price[0]) toggle_class = item[14] == price[1] ? CEILING_COLOR : UP_COLOR; else if (item[14] < price[0]) toggle_class = item[14] == price[2] ? FLOOR_COLOR : DOWN_COLOR; else toggle_class = NOCHANGE_COLOR; html.append('<td style="' + display_ask + 'color:' + toggle_class + '">' + (item[14] > 0 ? item[14] : '&nbsp;') + '</td>'); html.append('<td style="' + display_ask + 'border-right: #c6c3c6 2px ridge; color:' + toggle_class + '">' + (item[15] > 0 ? numberFormat(item[15]) : '&nbsp;') + '</td>'); if (item[17] > price[0]) toggle_class = item[17] == price[1] ? CEILING_COLOR : UP_COLOR; else if (item[17] < price[0]) toggle_class = item[17] == price[2] ? FLOOR_COLOR : DOWN_COLOR; else toggle_class = NOCHANGE_COLOR; html.append('<td style="' + display_history + 'color:' + toggle_class + '">' + (item[17] > 0 ? item[17] : '&nbsp;') + '</td>'); if (item[18] > price[0]) toggle_class = item[18] == price[1] ? CEILING_COLOR : UP_COLOR; else if (item[18] < price[0]) toggle_class = item[18] == price[2] ? FLOOR_COLOR : DOWN_COLOR; else toggle_class = NOCHANGE_COLOR; html.append('<td style="' + display_history + 'color:' + toggle_class + '">' + (item[18] > 0 ? item[18] : '&nbsp;') + '</td>'); html.append('<td style="' + display_foreign + 'color:' + status_class + '">' + (item[19] > 0 ? numberFormat(item[19]) : '&nbsp;') + '</td>'); html.append('<td style="' + display_foreign + 'color:' + status_class + '">' + (item[20] > 0 ? numberFormat(item[20]) : '&nbsp;') + '</td>'); html.append('</tr>'); html1.append('<tr>'); html1.append('<td style="font-size:12px; font-weight:bold;"><img src="images/check1.gif">&nbsp;' + symbol_show + '</td>'); html1.append('<td>' + price[1] + '</td>'); html1.append('<td>' + price[2] + '</td>'); html1.append('<td style="border-right: #c6c3c6 2px ridge;">' + price[0] + '</td>'); html1.append('<td style="' + display_bid + '">' + (item[1] > 0 ? item[1] : '&nbsp;') + '</td>'); html1.append('<td style="' + display_bid + '">' + (item[2] > 0 ? numberFormat(item[2]) : '&nbsp;') + '</td>'); html1.append('<td style="' + display_bid + '">' + (item[3] > 0 ? item[3] : '&nbsp;') + '</td>'); html1.append('<td style="' + display_bid + '">' + (item[4] > 0 ? numberFormat(item[4]) : '&nbsp;') + '</td>'); html1.append('<td style="' + display_bid + '">' + (item[5] > 0 ? item[5] : '&nbsp;') + '</td>'); html1.append('<td style="' + display_bid + 'border-right: #c6c3c6 2px ridge;">' + (item[6] > 0 ? numberFormat(item[6]) : '&nbsp;') + '</td>'); html1.append('<td>' + change_show + '</td>'); html1.append('<td>' + item[7] + '</td>'); html1.append('<td>' + numberFormat(item[8]) + '</td>'); html1.append('<td style="border-right: #c6c3c6 2px ridge;">' + (item[9] > 0 ? numberFormat(item[9]) : '&nbsp;') + '</td>'); html1.append('<td style="' + display_ask + '">' + (item[10] > 0 ? item[10] : '&nbsp;') + '</td>'); html1.append('<td style="' + display_ask + '">' + (item[11] > 0 ? numberFormat(item[11]) : '&nbsp;') + '</td>'); html1.append('<td style="' + display_ask + '">' + (item[12] > 0 ? item[12] : '&nbsp;') + '</td>'); html1.append('<td style="' + display_ask + '">' + (item[13] > 0 ? numberFormat(item[13]) : '&nbsp;') + '</td>'); html1.append('<td style="' + display_ask + '">' + (item[14] > 0 ? item[14] : '&nbsp;') + '</td>'); html1.append('<td style="' + display_ask + 'border-right: #c6c3c6 2px ridge;">' + (item[15] > 0 ? numberFormat(item[15]) : '&nbsp;') + '</td>'); html1.append('<td style="' + display_history + '">' + (item[17] > 0 ? item[17] : '&nbsp;') + '</td>'); html1.append('<td style="' + display_history + '">' + (item[18] > 0 ? item[18] : '&nbsp;') + '</td>'); html1.append('<td style="' + display_foreign + '">' + (item[19] > 0 ? numberFormat(item[19]) : '&nbsp;') + '</td>'); html1.append('<td style="' + display_foreign + '">' + (item[20] > 0 ? numberFormat(item[20]) : '&nbsp;') + '</td>'); html1.append('</tr>') } html.append('</tbody></table></td></tr></table>'); html1.append('</tbody></table></td></tr></table>'); var div = document.getElementById('divPriceBoard'); div.innerHTML = html.toString(); var div1 = document.getElementById('divHeader'); div1.innerHTML = html1.toString(); cells = new Array(items.length); change_cells = new Array(items.length); var table = document.getElementById('tblPrice'); var rows = table.tBodies[0].getElementsByTagName('tr'); for (var i = 0; i < rows.length; i++) { var cols = rows[i].getElementsByTagName('td'); cells[i] = new Array(21); cells[i][0] = cols[0]; change_cells[i] = cols[10]; for (var j = 4; j <= 9; j++) cells[i][j - 3] = cols[j]; for (var j = 11; j <= 24; j++) cells[i][j - 4] = cols[j] } cells1 = new Array(items.length); change_cells1 = new Array(items.length); var table1 = document.getElementById('tblPrice_1'); var rows1 = table1.tBodies[0].getElementsByTagName('tr'); for (var i = 0; i < rows1.length; i++) { var cols1 = rows1[i].getElementsByTagName('td'); cells1[i] = new Array(21); cells1[i][0] = cols1[0]; change_cells1[i] = cols1[10]; for (var j = 4; j <= 9; j++) cells1[i][j - 3] = cols1[j]; for (var j = 11; j <= 24; j++) cells1[i][j - 4] = cols1[j] } LoadSelectList('upcom_stocksymbol_seletedlist'); if (current_sort_by != '') resort() } function refreshPrice() { if (xchanges != null) { for (var i = 0; i < xchanges.length; i++) { cells[xchanges[i]][ychanges[i]].style.backgroundColor = '' } delete xchanges; delete ychanges } UPCOM.GetPrice(0, current_category, market[0], current_symbols, getPriceCallback); timeoutId = setTimeout('refreshPrice()', REFRESH_INTERVAL) } function getPriceCallback(res) { if (res.value == null) return; var results = eval(res.value); var new_items = results[0]; var new_index = results[1]; var new_market = results[2]; if (new_market != null) { if (new_market.length > 0) { if (market[0] > 1 && new_market[0] <= 1) { delete market; market = new_market; timeoutId = clearTimeout(timeoutId); UPCOM.GetPrice(-1, current_category, market[0], current_symbols, initPageCallback); return } delete market; market = new_market; cellStatus.innerHTML = marketStatus[market[0]]; cellTime.innerHTML = market[1] } } if (new_index != null) { if (new_index.length > 0) { delete index; index = new_index; var index_status_class = NOCHANGE_COLOR; var index_status_pre = '■'; if (index[2] > 0) { index_status_class = UP_COLOR; index_status_pre = '▲' } if (index[2] < 0) { index_status_class = DOWN_COLOR; index_status_pre = '▼' } cellIndices[0].innerHTML = index[1] + ''; cellIndices[0].style.color = index_status_class; cellIndices[1].innerHTML = index_status_pre + index[2] + ' (' + index[3] + '%)'; cellIndices[1].style.color = index_status_class; cellIndices[2].innerHTML = index[4]; cellIndices[2].style.color = index_status_class; cellIndices[3].innerHTML = index[5] + STATUS_CURRENCY; cellIndices[3].style.color = index_status_class } } if (new_items == null) return; if (new_items.length == 0) return; var count = 0; xchanges = new Array(); ychanges = new Array(); var i = 0; for (var m = 0; m < new_items.length; m++) { for (i = i; i < items.length; i++) { if (items[i][0] == new_items[m][0]) { for (var j = 1; j < items[i].length; j++) { if (items[i][j] != new_items[m][j]) { if ((items[i][j] != new_items[m][j]) && new_items[m][j] != 0 && ((j >= 1 && j <= 6) || (j >= 10 && j <= 15))) { xchanges[count] = i; ychanges[count] = j; count++; cells[i][j].style.backgroundColor = '#636763' } items[i][j] = new_items[m][j]; if (j == 7) { var new_css = NOCHANGE_COLOR; if (items[i][j] < prices[i][0]) { new_css = items[i][j] == prices[i][2] ? FLOOR_COLOR : DOWN_COLOR } else if (items[i][j] > prices[i][0]) { new_css = items[i][j] == prices[i][1] ? CEILING_COLOR : UP_COLOR } if (cells[i][0].style.color != new_css) { cells[i][0].style.color = new_css; cells[i][7].style.color = new_css; cells[i][8].style.color = new_css; cells[i][9].style.color = new_css; cells[i][19].style.color = new_css; cells[i][20].style.color = new_css; change_cells[i].style.color = new_css } cells[i][j].innerHTML = items[i][j] + ''; cells1[i][j].innerHTML = items[i][j] + ''; var change = items[i][j] - prices[i][0]; var change_show = ''; if (current_color_mode == 3) { if (items[i][j] == prices[i][1]) change_show += 'CE&nbsp;'; else if (items[i][j] == prices[i][2]) change_show += 'FL&nbsp;'; change_show += '<span>' + roundNumber2(Math.abs(change)) + '</span>' } else { if (change != 0) change_show += '<span>' + roundNumber2(Math.abs(change)) + '</span>'; else change_show += '<span></span>' } change_cells[i].getElementsByTagName('div')[1].innerHTML = change_show; change_cells1[i].getElementsByTagName('div')[1].innerHTML = change_show } else { var value; if (j == 2 || j == 4 || j == 6 || j == 8 || j == 9 || j == 11 || j == 13 || j == 15 || j == 19 || j == 20) { value = items[i][j] > 0 ? numberFormat(items[i][j]) : '&nbsp;' } else { value = items[i][j] > 0 ? items[i][j] : '&nbsp;' } cells[i][j].innerHTML = value; cells1[i][j].innerHTML = value; var new_class = NOCHANGE_COLOR; if (j == 1 || j == 3 || j == 5 || j == 10 || j == 12 || j == 14) { if (items[i][j] > prices[i][0]) new_class = items[i][j] == prices[i][1] ? CEILING_COLOR : UP_COLOR; else if (items[i][j] < prices[i][0]) new_class = items[i][j] == prices[i][2] ? FLOOR_COLOR : DOWN_COLOR; if (cells[i][j].style.color != new_class) { cells[i][j].style.color = new_class; cells[i][j + 1].style.color = new_class } } else if (j == 16 || j == 17 || j == 18) { if (items[i][j] > prices[i][0]) new_class = items[i][j] == prices[i][1] ? CEILING_COLOR : UP_COLOR; else if (items[i][j] < prices[i][0]) new_class = items[i][j] == prices[i][2] ? FLOOR_COLOR : DOWN_COLOR; if (cells[i][j].style.color != new_class) cells[i][j].style.color = new_class } } } } break } } } for (var i = 0; i < new_items.length; i++) { delete new_items[i] } delete new_items } function selectionAssignPos(row) { var table = row.parentNode; var rows = table.getElementsByTagName('tr'); var selectedVals = new Array(); var selectedRows = new Array(); var last = 0; var m; for (m = 0; m < rows.length; m++) { var chk = rows[m].getElementsByTagName('img')[0]; if (chk.className == 'checked' && row.id != rows[m].id) { var td = rows[m].getElementsByTagName('td')[current_sort_index]; selectedVals[m] = convertHTML(td, current_sort_index); selectedRows[m] = rows[m] } else { break } } last = m; if (selectedRows.length == 0) { table.insertBefore(row, table.firstChild) } else { var value = convertHTML(row.getElementsByTagName('td')[current_sort_index], current_sort_index); for (var i = 0; i < selectedRows.length; i++) { if (current_sort_type == 'descent') { if (value > selectedVals[i]) { table.insertBefore(row, selectedRows[i]); break } } else { if (value < selectedVals[i]) { table.insertBefore(row, selectedRows[i]); break } } } if (i == selectedRows.length) { table.insertBefore(row, rows[last]) } } } function deselectionAssignPos(row) { var table = row.parentNode; var rows = table.getElementsByTagName('tr'); var unselectedVals = new Array(); var unselectedRows = new Array(); var m; for (m = 0; m < rows.length; m++) { var chk = rows[m].getElementsByTagName('img')[0]; if (chk.className == 'unchecked' && row.id != rows[m].id) { break } } var count = 0; for (m = m; m < rows.length; m++) { if (row.id != rows[m].id) { var td = rows[m].getElementsByTagName('td')[current_sort_index]; unselectedVals[count] = convertHTML(td, current_sort_index); unselectedRows[count] = rows[m]; count++ } } if (unselectedRows.length == 0) { table.appendChild(row) } else { var value = convertHTML(row.getElementsByTagName('td')[current_sort_index], current_sort_index); for (var i = 0; i < unselectedRows.length; i++) { if (current_sort_type == 'descent') { if (value > unselectedVals[i]) { table.insertBefore(row, unselectedRows[i]); break } } else { if (value < unselectedVals[i]) { table.insertBefore(row, unselectedRows[i]); break } } } if (i == unselectedRows.length) { table.appendChild(row) } } } function toggleSymbolSelection(chk) { var row = chk.parentNode.parentNode; var table = row.parentNode; var childs = table.getElementsByTagName('tr'); row.style.backgroundColor = ''; for (var i = 0; i < childs.length; i++) { var tds = childs[i].getElementsByTagName('td'); if (tds[0].style.borderBottom != '') { for (var j = 0; j < tds.length; j++) { tds[j].style.borderBottom = '' } } } if (chk.className == 'unchecked') { chk.className = 'checked'; chk.src = 'images/check2.gif'; if (row.id != childs[0].id) { selectionAssignPos(row) } } else { chk.className = 'unchecked'; chk.src = 'images/check1.gif'; deselectionAssignPos(row) } for (var i = 0; i < childs.length; i++) { var chk = childs[i].getElementsByTagName('img')[0]; if (chk.className == 'unchecked') { if (i > 0) { var tds = childs[i].previousSibling.getElementsByTagName('td'); for (var j = 0; j < tds.length; j++) { tds[j].style.borderBottom = '#c6c3c6 2px ridge' } } break } } SaveSelectList('upcom_stocksymbol_seletedlist') } function BuildSelectList() { var strSelectList = "["; var rows = document.getElementById("tblPrice").tBodies[0].getElementsByTagName('tr'); for (var i = 0; i < rows.length; i++) { var row = rows[i]; var td = row.getElementsByTagName('td')[0]; var chk = td.getElementsByTagName('img')[0]; if (chk.className == 'checked') { if (strSelectList == "[") strSelectList += "'" + chk.title + "'"; else strSelectList += ",'" + chk.title + "'" } } strSelectList += "]"; return strSelectList } function SaveSelectList(CookieName) { SetCookie(CookieName, BuildSelectList(), 30) } function LoadSelectList(CookieName) { var str = GetCookie(CookieName); var rows = document.getElementById("tblPrice").tBodies[0].getElementsByTagName('tr'); var count = 0; for (var i = rows.length - 1; i >= count; i--) { var row = rows[i]; var td = row.getElementsByTagName('td')[0]; var chk = td.getElementsByTagName('img')[0]; if (str.indexOf(chk.title) >= 0) { chk.className = 'checked'; chk.src = 'images/check2.gif'; moveSymbol2Top(chk); count++; i++ } } } function moveSymbol2Top(chk) { var row = chk.parentNode.parentNode; var table = row.parentNode; if (table.firstChild.getElementsByTagName('img')[0].className == 'unchecked') { var tds = row.getElementsByTagName('td'); for (var i = 0; i < tds.length; i++) { tds[i].style.borderBottom = '#c6c3c6 2px ridge' } } table.insertBefore(row, table.firstChild) }
