var REFERRER_ID = "21e5"; var LANGUAGE = "en"; var COUNTRY = "US"; var CURRENCY = "USD"; var DECIMAL_SEP = "."; var THOUSAND_SEP = ","; var ERR_NO_OFFERS = "No counter-offers are available at this time. Please try again later."; var ERR_INSUFFICIENT_LIQUIDITY = "There are not enough counter-offers at this time. Please enter a smaller amount."; var FEE_FIXED_EUR = 50; var FEE_PERCENT_EUR = 0.025; var BUY_DEPTH_EUR = new Array(); BUY_DEPTH_EUR[0] = {price:353, volume:986}; BUY_DEPTH_EUR[1] = {price:353.4, volume:757}; BUY_DEPTH_EUR[2] = {price:353.9, volume:290}; BUY_DEPTH_EUR[3] = {price:354, volume:533}; BUY_DEPTH_EUR[4] = {price:354.5, volume:700}; BUY_DEPTH_EUR[5] = {price:355, volume:605}; BUY_DEPTH_EUR[6] = {price:355.1, volume:4}; BUY_DEPTH_EUR[7] = {price:356, volume:500}; BUY_DEPTH_EUR[8] = {price:356.4, volume:6}; BUY_DEPTH_EUR[9] = {price:357, volume:500}; BUY_DEPTH_EUR[10] = {price:358, volume:1457}; BUY_DEPTH_EUR[11] = {price:358.5, volume:3}; BUY_DEPTH_EUR[12] = {price:359, volume:505}; BUY_DEPTH_EUR[13] = {price:359.5, volume:500}; BUY_DEPTH_EUR[14] = {price:359.8, volume:25}; BUY_DEPTH_EUR[15] = {price:360, volume:1547}; BUY_DEPTH_EUR[16] = {price:360.7, volume:8}; BUY_DEPTH_EUR[17] = {price:360.8, volume:92}; BUY_DEPTH_EUR[18] = {price:361, volume:19}; BUY_DEPTH_EUR[19] = {price:361.2, volume:150}; BUY_DEPTH_EUR[20] = {price:361.3, volume:223}; BUY_DEPTH_EUR[21] = {price:361.4, volume:3}; BUY_DEPTH_EUR[22] = {price:361.6, volume:2}; BUY_DEPTH_EUR[23] = {price:362, volume:51}; BUY_DEPTH_EUR[24] = {price:363, volume:10}; BUY_DEPTH_EUR[25] = {price:364, volume:100}; BUY_DEPTH_EUR[26] = {price:364.1, volume:10}; BUY_DEPTH_EUR[27] = {price:364.9, volume:698}; BUY_DEPTH_EUR[28] = {price:365, volume:131}; BUY_DEPTH_EUR[29] = {price:366, volume:10}; BUY_DEPTH_EUR[30] = {price:368, volume:3}; BUY_DEPTH_EUR[31] = {price:369, volume:3}; BUY_DEPTH_EUR[32] = {price:370, volume:99}; BUY_DEPTH_EUR[33] = {price:370.1, volume:6}; BUY_DEPTH_EUR[34] = {price:370.5, volume:20}; BUY_DEPTH_EUR[35] = {price:372.5, volume:10}; BUY_DEPTH_EUR[36] = {price:375, volume:50}; BUY_DEPTH_EUR[37] = {price:380, volume:93}; BUY_DEPTH_EUR[38] = {price:381.2, volume:3}; BUY_DEPTH_EUR[39] = {price:385, volume:20}; BUY_DEPTH_EUR[40] = {price:387, volume:15}; BUY_DEPTH_EUR[41] = {price:387.1, volume:1}; BUY_DEPTH_EUR[42] = {price:390, volume:40}; BUY_DEPTH_EUR[43] = {price:400, volume:530}; BUY_DEPTH_EUR[44] = {price:403, volume:10}; BUY_DEPTH_EUR[45] = {price:409, volume:29}; BUY_DEPTH_EUR[46] = {price:410, volume:27}; BUY_DEPTH_EUR[47] = {price:410.6, volume:5}; BUY_DEPTH_EUR[48] = {price:415, volume:8}; BUY_DEPTH_EUR[49] = {price:420, volume:25}; var SELL_DEPTH_EUR = new Array(); SELL_DEPTH_EUR[0] = {price:342.2, volume:614}; SELL_DEPTH_EUR[1] = {price:342.1, volume:172}; SELL_DEPTH_EUR[2] = {price:342, volume:300}; SELL_DEPTH_EUR[3] = {price:341.5, volume:172}; SELL_DEPTH_EUR[4] = {price:341.4, volume:300}; SELL_DEPTH_EUR[5] = {price:341, volume:800}; SELL_DEPTH_EUR[6] = {price:340.2, volume:422}; SELL_DEPTH_EUR[7] = {price:340.1, volume:112}; SELL_DEPTH_EUR[8] = {price:340, volume:181}; SELL_DEPTH_EUR[9] = {price:339, volume:1}; SELL_DEPTH_EUR[10] = {price:338.7, volume:500}; SELL_DEPTH_EUR[11] = {price:338, volume:2}; SELL_DEPTH_EUR[12] = {price:335.1, volume:200}; SELL_DEPTH_EUR[13] = {price:335, volume:1000}; SELL_DEPTH_EUR[14] = {price:334, volume:1}; SELL_DEPTH_EUR[15] = {price:333, volume:1}; SELL_DEPTH_EUR[16] = {price:332, volume:300}; SELL_DEPTH_EUR[17] = {price:331.7, volume:1}; SELL_DEPTH_EUR[18] = {price:331.5, volume:1}; SELL_DEPTH_EUR[19] = {price:331.3, volume:500}; SELL_DEPTH_EUR[20] = {price:331, volume:500}; SELL_DEPTH_EUR[21] = {price:330.9, volume:1}; SELL_DEPTH_EUR[22] = {price:330, volume:54}; SELL_DEPTH_EUR[23] = {price:329.9, volume:2}; SELL_DEPTH_EUR[24] = {price:328.4, volume:1}; SELL_DEPTH_EUR[25] = {price:325.3, volume:500}; SELL_DEPTH_EUR[26] = {price:323.5, volume:301}; SELL_DEPTH_EUR[27] = {price:321.2, volume:500}; SELL_DEPTH_EUR[28] = {price:320.2, volume:500}; SELL_DEPTH_EUR[29] = {price:320, volume:1000}; SELL_DEPTH_EUR[30] = {price:317, volume:84}; SELL_DEPTH_EUR[31] = {price:316.3, volume:1000}; SELL_DEPTH_EUR[32] = {price:310, volume:15}; SELL_DEPTH_EUR[33] = {price:301.2, volume:1000}; SELL_DEPTH_EUR[34] = {price:295.2, volume:2}; SELL_DEPTH_EUR[35] = {price:20, volume:20}; SELL_DEPTH_EUR[36] = {price:1, volume:2}; var BUY_MAX_EUR = 11422; var SELL_MAX_EUR = 11062; var FEE_FIXED_USD = 50; var FEE_PERCENT_USD = 0.015; var BUY_DEPTH_USD = new Array(); BUY_DEPTH_USD[0] = {price:290, volume:68}; BUY_DEPTH_USD[1] = {price:300, volume:97}; var SELL_DEPTH_USD = new Array(); SELL_DEPTH_USD[0] = {price:276, volume:210}; SELL_DEPTH_USD[1] = {price:274.5, volume:100}; SELL_DEPTH_USD[2] = {price:274.4, volume:279}; SELL_DEPTH_USD[3] = {price:274.3, volume:448}; SELL_DEPTH_USD[4] = {price:274.2, volume:6}; SELL_DEPTH_USD[5] = {price:274.1, volume:370}; SELL_DEPTH_USD[6] = {price:274, volume:481}; SELL_DEPTH_USD[7] = {price:273.7, volume:250}; SELL_DEPTH_USD[8] = {price:273.3, volume:163}; SELL_DEPTH_USD[9] = {price:272, volume:300}; SELL_DEPTH_USD[10] = {price:270, volume:300}; SELL_DEPTH_USD[11] = {price:268, volume:300}; SELL_DEPTH_USD[12] = {price:266, volume:400}; SELL_DEPTH_USD[13] = {price:241.9, volume:380}; SELL_DEPTH_USD[14] = {price:240, volume:12}; SELL_DEPTH_USD[15] = {price:202, volume:5}; SELL_DEPTH_USD[16] = {price:201, volume:5}; SELL_DEPTH_USD[17] = {price:200, volume:5}; SELL_DEPTH_USD[18] = {price:150.5, volume:2000}; SELL_DEPTH_USD[19] = {price:150.3, volume:5}; SELL_DEPTH_USD[20] = {price:150.2, volume:5}; var BUY_MAX_USD = 165; var SELL_MAX_USD = 6024; var FEE_FIXED_GBP = 50; var FEE_PERCENT_GBP = 0.025; var BUY_DEPTH_GBP = new Array(); BUY_DEPTH_GBP[0] = {price:450, volume:57}; BUY_DEPTH_GBP[1] = {price:452, volume:95}; BUY_DEPTH_GBP[2] = {price:454, volume:102}; BUY_DEPTH_GBP[3] = {price:455, volume:52}; BUY_DEPTH_GBP[4] = {price:456, volume:90}; BUY_DEPTH_GBP[5] = {price:458, volume:90}; var SELL_DEPTH_GBP = new Array(); SELL_DEPTH_GBP[0] = {price:442, volume:183}; SELL_DEPTH_GBP[1] = {price:440, volume:242}; SELL_DEPTH_GBP[2] = {price:438, volume:240}; SELL_DEPTH_GBP[3] = {price:436, volume:240}; SELL_DEPTH_GBP[4] = {price:434, volume:240}; SELL_DEPTH_GBP[5] = {price:430, volume:11}; var BUY_MAX_GBP = 486; var SELL_MAX_GBP = 1156; var FEE_FIXED_CHF = 50; var FEE_PERCENT_CHF = 0.025; var BUY_DEPTH_CHF = new Array(); BUY_DEPTH_CHF[0] = {price:272.9, volume:97}; BUY_DEPTH_CHF[1] = {price:277.9, volume:96}; BUY_DEPTH_CHF[2] = {price:278, volume:315}; BUY_DEPTH_CHF[3] = {price:279, volume:300}; BUY_DEPTH_CHF[4] = {price:280, volume:300}; BUY_DEPTH_CHF[5] = {price:281, volume:300}; BUY_DEPTH_CHF[6] = {price:300, volume:50}; var SELL_DEPTH_CHF = new Array(); SELL_DEPTH_CHF[0] = {price:268, volume:305}; SELL_DEPTH_CHF[1] = {price:267, volume:350}; SELL_DEPTH_CHF[2] = {price:266, volume:400}; SELL_DEPTH_CHF[3] = {price:265, volume:400}; SELL_DEPTH_CHF[4] = {price:264, volume:400}; SELL_DEPTH_CHF[5] = {price:263.1, volume:147}; SELL_DEPTH_CHF[6] = {price:250, volume:50}; var BUY_MAX_CHF = 1458; var SELL_MAX_CHF = 2052; var operation = "SELL"; // calculate estimated cost or proceeds function calcEstimate(operation, amount, currency) { var mkt_depth = eval(operation + "_DEPTH_" + currency); var FEE_PERCENT = eval("FEE_PERCENT_" + currency); var FEE_FIXED = eval("FEE_FIXED_" + currency); var matched_amount = 0; if (mkt_depth.length == 0) throw ERR_NO_OFFERS; for (var i=0; i < mkt_depth.length; i++) { if (amount <= mkt_depth[i].volume) // we can match the entire (remaining) order with this offer { matched_amount += amount * mkt_depth[i].price; fee = matched_amount * FEE_PERCENT + FEE_FIXED; total = (operation == "BUY") ? matched_amount + fee : matched_amount - fee; return total.toFixed(2); } else // partial match: { matched_amount += mkt_depth[i].volume * mkt_depth[i].price; amount -= mkt_depth[i].volume; } } throw ERR_INSUFFICIENT_LIQUIDITY + " Maximum = " + eval(operation + "_MAX_" + currency) + "."; } // update estimated proceeds and average exchange function estimateMarketOrder() { var amtElement = document.getElementById("vwx_amt"); var curElement = document.getElementById("vwx_cur"); var amt = parseInt(amtElement.value); var currency = curElement.value; var instrument = curElement.value + "/SLL"; if (isNaN(amt) || amt < 0) amt = ""; amtElement.value = amt; try { output = 0; if (amt > 0) output = calcEstimate(operation, amt, currency); if (output <= 0) output = "0"; } catch(e) { alert(e); output = "0"; amtElement.value = ""; } document.getElementById('vwx_display').innerHTML = format_number(output); } // format a number (with two fixed-point decimals) using THOUSAND_SEP and DECIMAL_SEP function format_number(number) { var s = String(parseInt(number)); if (s == "NaN") return ""; if (s.length > 3) s = s.substring(0, s.length-3) + THOUSAND_SEP + s.substring(s.length-3); if (s.length > 7) s = s.substring(0, s.length-7) + THOUSAND_SEP + s.substring(s.length-7); return "" + s + ""; } function vwxToggle(sell) { var width = 180; var buy = 1 - sell; var buyElem = document.getElementById("vwx_tab_buy"); var sellElem = document.getElementById("vwx_tab_sell"); var tableElem = document.getElementById("vwx_table"); tableElem.className = buy ? "vwx_calc_buy" + width : "vwx_calc_sell" + width; buyElem.className = buy ? "vwx_active" + width : "vwx_off" + width ; sellElem.className = sell ? "vwx_active" + width : "vwx_off"+ width ; operation = sell ? 'BUY' : 'SELL'; // inverse for server estimateMarketOrder(); } function defineStyle() { var normal = 10; medium = 11; large = 12; width = 180; head = document.getElementsByTagName('head')[0], style = document.createElement('style'), rules = document.createTextNode(".vwx_calc_buy" + width + " { font-family:'Verdana'; font-size: " + normal + "pt; background-color:#FFE0E0; " + "border-collapse:collapse; color:black; padding:3px; } " + ".vwx_calc_sell" + width + " { font-family:'Verdana'; font-size: " + normal + "pt; background-color:#E0E0FF; " + "border-collapse:collapse; color:black; padding:3px; } " + "table.vwx_border" + width + " { font-family:'Verdana'; font-size: " + normal + "pt; background-color: #F2F2F2; " + "border-width:medium; border-color:#F0F0F0; border-style:outset; padding:3px; } " + "td.vwx_calc_spacer { padding-top:1ex; padding-bottom:1ex; } " + ".vwx_calc" + width + " { font-size:" + normal + "pt; } " + ".vwx_active" + width + ":link { font-size: " + medium + "pt; color:black; text-decoration:none; }" + ".vwx_active" + width + ":visited { font-size: " + medium + "pt; color:black; text-decoration:none; }" + ".vwx_off" + width + ":link { font-size: " + normal + "pt; color:#888; text-decoration:none; }" + ".vwx_off" + width + ":visited { font-size: " + normal + "pt; color:#888; text-decoration:none; }"); style.type = 'text/css'; if(style.styleSheet) style.styleSheet.cssText = rules.nodeValue; else style.appendChild(rules); head.appendChild(style); } function showHTML() { html = "
Buy Linden$Sell Linden$
=
 
 Linden$
"; document.writeln(html); } defineStyle(); showHTML(); // initialize currency based on user's country: var curElement = document.getElementById("vwx_cur"); for (i = 0; i < curElement.length; i++) if (curElement.options[i].value == CURRENCY) curElement.options[i].selected = true;