$(document).ready(function() { buy(); market_order(); refresh_tables(); tradeList(); tradersList(); checkLoginStatusJS(); //MyOrders(); MyTransactions(); load_messages(); }); function displayNotice(msg, _type) { var v = '
  • '+msg+'
  • '; switch (_type) { case 'success': $('#MsgModel').find('ul.msg-ul').removeClass('text-danger text-warning').addClass('text-info').html(v); break; case 'failure': $('#MsgModel').find('ul.msg-ul').removeClass('text-info text-warning').addClass('text-danger').html(v); break; case 'warning': $('#MsgModel').find('ul.msg-ul').removeClass('text-danger text-info').addClass('text-warning').html(v); break; default: $('#MsgModel').find('ul.msg-ul').removeClass('text-danger text-warning').addClass('text-info').html(v); } $('#MsgModel').modal('toggle'); } function buy() { $('.process').on('click', function() { var btn = $(this); var id = btn.attr('id'); var item_qty = null; var item_price = null; if($.trim(id)=="buy_btn") { item_qty = $('#buy_btc').val(); item_price = $('#buy_btc_price').val(); } else if($.trim(id)=="sell_btn") { item_qty = $('#sell_btc').val(); item_price = $('#sell_btc_price').val(); } else { return false; } if(item_qty !== '' && item_qty !== undefined && item_qty !== null) { if(item_price !== '' && item_price !== undefined && item_price !== null) { placeOrder(id, item_qty, item_price); } else { displayNotice('Please insert some price.', "warning"); } } else { displayNotice('Please insert some quantity.', "warning"); } }); } function placeOrder(id, item_qty, item_price) { var subject = 'placeOrder'; var btn_id = id; // buy or sell var qty = item_qty; var price = item_price; $.ajax({ method: 'post', url: 'ajax/pending_orders.php', data: { subject:subject, btn_id:btn_id, qty:qty, price:price }, error: function(xhr, status, error) { console.log(xhr.responseText); }, success: function(data) { var IS_JSON = true; try { var d = jQuery.parseJSON(data); } catch(err) { IS_JSON = false; } if(IS_JSON) { //console.log(d); if(d.error == true) { $msg = d.msg; displayNotice($msg, "failure"); } else if(d.order != null && d.order.error == true && d.order.message != null) { displayNotice(d.order.message, "failure"); } else if(d.user == '') { displayNotice('There was a problem in identifying the user.', "failure"); } else { $('#empty_msg').hide(); var trade = ""; if($.trim(btn_id)=="buy_btn") { trade = "buy"; } else if ($.trim(btn_id)=="sell_btn") { trade = "sell"; } displayNotice('You entered a '+trade+' order for '+qty+' token at $ '+price+'.', "success"); run_OrderMatcingAlgorithm(); MyOrders(); } } else { displayNotice('Something went wrong. Please contact the administrator.', "failure"); } } }); } function myTimeoutFunction() { run_OrderMatcingAlgorithm(); tradeList(); tradersList(); MyOrders(); MyTransactions(); load_messages(); setTimeout(myTimeoutFunction, 3000); } myTimeoutFunction(); function run_OrderMatcingAlgorithm() { $.ajax({ method:'post', url:'ajax/OrderMatcingAlgorithmAjax.php', data: { task : 'run_OrderMatcingAlgorithm'}, success: function(data) { //console.log(data); } }).error(function(xhr, status, error) { console.log(xhr.responseText); }).success(function(data) { load_fresh_table_data(); var IS_JSON = true; try { var d = jQuery.parseJSON(data); } catch(err) { IS_JSON = false; } if(IS_JSON) { //console.log(d); if (d.error == false && d.msg=="userLoggedIn") { if (isArray(d.order) && d.order.length != 0) { for (var k = 0; k <= d.order.length - 1; k++) { $.notify({ title: "Congrats!: ", message: d.order[k] },{ type: 'success' }); } } } } }); } function get_my_balance() { $.ajax({ method:'post', url:'ajax/get_my_balance.php', data: { task : 'get_my_balance'}, success: function(data) { // console.log(data); } }).error(function(xhr, status, error) { console.log(xhr.responseText); }).success(function(data) { var IS_JSON = true; try { var d = jQuery.parseJSON(data); } catch(err) { IS_JSON = false; } if(IS_JSON) { if(d.error == false) { $('#my_bit_balance').text(d.bit); $('#my_cash_balance').text(d.cash); } } }); } // function to check if JSON data is array or not function isArray(what) { return Object.prototype.toString.call(what) === '[object Array]'; } function load_fresh_table_data() { $.ajax({ method:'post', url:'ajax/refresh_table.php', data: { task : 'refresh'} }).error(function(xhr, status, error) { console.log(xhr.responseText); }).success(function(data) { if(data !== '') { var d = jQuery.parseJSON(data); get_my_balance(); var t = ''; if(isArray(d.buys) && d.buys.length !== 0) { for (var j=0; j<=d.buys.length-1 ; j++) { t += ''; t += ''; t += ' $ '+d.buys[j].Price+''; t += ''+d.buys[j].Quantity+''; t += ' $ '+d.buys[j].TOTAL_COST+''; t += ''; } } $('#buying-list').html(t); var v = ''; if(isArray(d.sells) && d.sells.length !== 0) { for (var k=0; k<=d.sells.length-1 ; k++) { v += ''; v += ''; v += ' $ '+d.sells[k].Price+''; v += ''+d.sells[k].Quantity+''; v += ' $ '+d.sells[k].TOTAL_COST+''; v += ''; } } $('#selling-list').html(v); } }); } /**Market Order JS*/ function market_order() { $('.market_submit_btn').on('click', function() { var market_order_qty = $('#market_order').val(); var market_order_type = $("input[name='marketOrder']:checked").val(); if(market_order_qty == '' || market_order_qty <= 0 || market_order_qty == undefined) { displayNotice('Please specify valid quantity!', "warning"); return; } if (market_order_type == 'market_buy_btn' || market_order_type == 'market_sell_btn') { $.ajax({ method: 'post', url: 'ajax/market_order-ajax.php', data: { job:'market_order', qty:market_order_qty, type:market_order_type }, success: function(data) { //console.log(data); } }).error(function(xhr, status, error) { console.log(xhr.responseText); }).success(function (data) { var IS_JSON = true; try { var d = jQuery.parseJSON(data); } catch(err) { IS_JSON = false; } if(IS_JSON) { if(d.error == true) { displayNotice('Oops! Something went wrong. Your order was cancelled. Please enter a valid quantity.', "failure"); } else{ var v = ''; if(isArray(d.order) && d.order.length != 0) { if(d.order[0] == 'empty_buy_list') { v += 'No buy orders available currently.'; $('#MsgModel').find('ul.msg-ul').removeClass('text-success').addClass('text-danger').html(v); $('#MsgModel').modal('toggle'); } else if(d.order[0] == 'empty_sell_list') { v += 'No sell orders available currently.'; $('#MsgModel').find('ul.msg-ul').removeClass('text-success').addClass('text-danger').html(v); $('#MsgModel').modal('toggle'); } else { for (var k=0; k<= d.order.length-1; k++) { v += '
  • '+d.order[k]+'
  • '; } $('#MsgModel').find('ul.msg-ul').removeClass('text-danger').addClass('text-info').html(v); $('#MsgModel').modal('toggle'); } } load_fresh_table_data(); MyOrders(); } } }); } }); } function refresh_tables() { $(document).on('click', '#refresh_link', function (e) { e.preventDefault(); load_fresh_table_data(); }); } function tradeList() { $.ajax({ method:'post', url:'ajax/tradeList.php', data: { task : 'loadTradeList'} }).error(function(xhr, status, error) { console.log(xhr.responseText); }).success(function(data) { var IS_JSON = true; try { var d = jQuery.parseJSON(data); } catch(err) { IS_JSON = false; } if(IS_JSON) { var v = ''; if(isArray(d.trade_list) && d.trade_list.length != 0) { for (var k=0; k<= d.trade_list.length-1; k++) { v += ''; v += ''; v += ''+d.trade_list[k].SELLER+''; v += ''+d.trade_list[k].BUYER+''; v += '$ '+d.trade_list[k].TRADE_PRICE+''; v += ''+d.trade_list[k].TRADED_QTY+''; v += '$ '+(d.trade_list[k].TRADED_QTY * d.trade_list[k].TRADE_PRICE).toFixed(5)+''; v += ''+my_date_format(d.trade_list[k].InsertDate)+''; v += ''; } } else { v += '

    No transactions.

    '; } $('#trade-list').html(v); } }); } /*My Transactions*/ function MyTransactions() { $.ajax({ method:'post', url:'ajax/myTransactions.php', data: { task : 'myTransactions'} }).error(function(xhr, status, error) { console.log(xhr.responseText); }).success(function(data) { var IS_JSON = true; try { var d = jQuery.parseJSON(data); } catch(err) { IS_JSON = false; } if(IS_JSON) { var v = ''; if(isArray(d.trade_list) && d.trade_list.length != 0) { for (var k=0; k<= d.trade_list.length-1; k++) { v += ''; v += ''; v += ''+d.trade_list[k].SELLER+''; v += ''+d.trade_list[k].BUYER+''; v += '$ '+d.trade_list[k].TRADE_PRICE+''; v += ''+d.trade_list[k].TRADED_QTY+''; v += '$ '+(d.trade_list[k].TRADED_QTY * d.trade_list[k].TRADE_PRICE).toFixed(5)+''; v += ''+my_date_format(d.trade_list[k].InsertDate)+''; v += ''; } } $('#my-transactions-list').html(v); } }); } function checkLoginStatusJS() { $(document).on('click drop', '.fb_log_in', function (e) { e.preventDefault(); $('#LoginModel').modal('toggle'); }); } var my_date_format = function(input){ var d = new Date(Date.parse(input.replace(/-/g, "/"))); var month = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; var date = d.getDate() + " " + month[d.getMonth()] + ", " + d.getFullYear(); var time = d.toLocaleTimeString().toLowerCase().replace(/([\d]+:[\d]+):[\d]+(\s\w+)/g, "$1$2"); return (date + " " + time); }; /*Rename market button name depending on radio btn*/ $(document).on("change", ".market_radio", function () { var btn_id = $(this).attr('id'); var btn_name = "Trade Instantly"; if($.trim(btn_id)=="buy") { btn_name = "Buy Instantly"; } else if($.trim(btn_id)=="sell") { btn_name = "Sell Instantly"; } $("#market_order_btn").prop("value",btn_name); }); /*Traders List*/ function tradersList() { $.ajax({ method:'post', url:'ajax/tradersList.php', data: { task : 'loadTradersList'} }).error(function(xhr, status, error) { console.log(xhr.responseText); }).success(function(data) { var IS_JSON = true; try { var d = jQuery.parseJSON(data); } catch(err) { IS_JSON = false; } if(IS_JSON) { var v = ''; if(isArray(d.traders_list) && d.traders_list.length != 0) { for (var k=0; k<= d.traders_list.length-1; k++) { v += ''; v += ''; v += ''+d.traders_list[k].Name+''; v += ''+d.traders_list[k].BTC+''; v += ' $ '+d.traders_list[k].CASH+''; v += ''; } } $('#traders-list').html(v); } }); } /*My Orders*/ function MyOrders() { $.ajax({ method:'post', url:'ajax/myOrders.php', data: { task : 'loadMyOrdersList'} }).error(function(xhr, status, error) { console.log(xhr.responseText); }).success(function(data) { if ($.trim(data) != '' && $.trim(data) != undefined && $.trim(data) != null) { $('#myOrdersTable').html(data); } }); } /*Delete Orders*/ $(document).on('click', '.del_order', function (e) { e.preventDefault(); var id = $(this).attr("id"); $.ajax({ method:'post', url:'ajax/delOrder.php', data: { task : 'delOrder', id:id} }).error(function(xhr, status, error) { console.log(error); }).success(function(data) { //console.log(data); if ($.trim(data) != '' && $.trim(data) != undefined && $.trim(data) != null) { $.notify({ title: "Order Deleted!: ", message: "You deleted the order successfully." },{ type: 'success' }); } else { displayNotice("The order could not be deleted. Try again later.", "failure"); } }); }); /*Messages*/ function load_messages() { $.ajax({ method:'post', url:'ajax/myMessages.php', data: { task : 'loadMyMessagesList'} }).error(function(xhr, status, error) { console.log(error); }).success(function(data) { if ($.trim(data) != '' && $.trim(data) != undefined && $.trim(data) != null) { var IS_JSON = true; try { var d = jQuery.parseJSON(data); } catch(err) { IS_JSON = false; } if (IS_JSON) { var v = '0 message'; if(isArray(d.msg) && d.msg.length != 0) { v = ''; var si = 0; for (var k=0; k<= d.msg.length-1; k++) { si = k+1; v += ''; v += ''+si+''; v += ''+d.msg[k].order_id+''; v += ''+d.msg[k].messages+''; v += ''+my_date_format(d.msg[k].datetime)+''; v += ''; } } $('#user_msg').html(v); } } }); }