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 = "
 |
|
";
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;