function ajax_get_quote(symbol) {
  $.post("/quotes.pl", { symbols: symbol },
    function(data) {
      var last_price = data[0].last_price;
      var previous_close = data[0].previous_close;
      
      last_price = last_price - 0;
      
      var today_change     = (last_price - previous_close);
      var today_pct_change = (last_price - previous_close) / last_price * 100; 
      
      var change_color = 'green';
      var change_indicator = '+';
      if (today_change < 0) {
        change_color = 'red';
        change_indicator = '';
      }
      $('#' + 'quote-widget-change').css('color', change_color);
      $('#' + 'quote-widget-pct-change').css('color', change_color);
      
      $('#' + 'quote-widget-price').html('$' + last_price.toFixed(2));
      $('#' + 'quote-widget-change').html(change_indicator + '$' + today_change.toFixed(2));
      $('#' + 'quote-widget-pct-change').html(change_indicator + today_pct_change.toFixed(2) + '%');
  }, "json");
}

function ajax_get_portfolio_quotes(symbols, mode) {
  $url = (mode == 'watchlist') ? "/quotes_hist.pl" : "/quotes.pl";
  $.post($url, { symbols: symbols },
    function(data){
      if (mode == 'buys') {
	       _update_buys(data);
      } else if (mode == 'sells') {
	       _update_sells(data);
      } else if (mode == 'watchlist') {
	       _update_watchlist(data);
      }
    }, "json");
}

function _update_buys(data) {
  for(var row in data) {
    var result         = data[row];
    var previous_close = result.previous_close;
    var symbol         = result.symbol;
    var symbol_clean   = symbol.replace('.','-');
    var last_price     = result.last_price;
    last_price = last_price - 0;

    var today_change   = last_price - previous_close;
    var purchase_price = $('#' + symbol_clean + '-purchase-price').html();
    purchase_price = purchase_price.replace('$','');
    
    var jubak_gain     = (last_price - purchase_price) / purchase_price * 100;

    var today_change_color = (today_change < 0) ? 'red' : 'green';
    var jubak_gain_color = (jubak_gain < 0) ? 'red' : 'green';

    $('#' + symbol_clean + '-last-price').html('$' + last_price.toFixed(2));
    $('#' + symbol_clean + '-today-change').html('$' + today_change.toFixed(2));
    $('#' + symbol_clean + '-jubak-gain').html(jubak_gain.toFixed(2) + '%');
          
    $('#' + symbol_clean + '-today-change').css('color', today_change_color);
    $('#' + symbol_clean + '-jubak-gain').css('color', jubak_gain_color);      
  }
}

function _update_sells(data) {
  for(var row in data) {
    var result         = data[row];
    var previous_close     = result.previous_close;
    var symbol         = result.symbol;
    var symbol_clean   = symbol.replace('.','-');
    var last_price     = result.last_price;
    last_price = last_price - 0;

    var today_change   = last_price - previous_close;
    var sell_price = $('#' + symbol_clean + '-sell-price').html();
    sell_price = sell_price.replace('$','');
    
    var jubak_gain     = (last_price - sell_price) / sell_price * 100;

    var today_change_color = (today_change < 0) ? 'red' : 'green';
    var jubak_gain_color = (jubak_gain < 0) ? 'red' : 'green';

    $('#' + symbol_clean + '-last-price').html('$' + last_price.toFixed(2));
    $('#' + symbol_clean + '-today-change').html('$' + today_change.toFixed(2));
    $('#' + symbol_clean + '-jubak-gain').html(jubak_gain.toFixed(2) + '%');
          
    $('#' + symbol_clean + '-today-change').css('color', today_change_color);
    $('#' + symbol_clean + '-jubak-gain').css('color', jubak_gain_color);      
  }
}

function _update_watchlist(data) {
  for(var row in data) {
    var result         = data[row];
    var company_name   = result.company_name;
    var previous_close = result.previous_close;
    var symbol         = result.symbol;
    var symbol_clean   = symbol.replace('.','-');
    var last_price     = result.last_price;
    last_price = last_price - 0;

    var watch_date     = (result.watch_date) ? result.watch_date : 'Today';
    var watch_price    = (result.watch_price) ? result.watch_price : result.last_price;
    watch_price = watch_price - 0;

    var today_change   = last_price - previous_close;
    
    var jubak_gain     = (last_price - watch_price) / watch_price * 100;

    var today_change_color = (today_change < 0) ? 'red' : 'green';
    var jubak_gain_color = (jubak_gain < 0) ? 'red' : 'green';

    $('#' + symbol_clean + '-name').html(company_name);
    $('#' + symbol_clean + '-watch_price').html('$' + watch_price.toFixed(2));
    //$('#' + symbol_clean + '-watch_date').html(watch_date);
    
    $('#' + symbol_clean + '-last-price').html('$' + last_price.toFixed(2));
    $('#' + symbol_clean + '-today-change').html('$' + today_change.toFixed(2));
    $('#' + symbol_clean + '-jubak-gain').html(jubak_gain.toFixed(2) + '%');
          
    $('#' + symbol_clean + '-today-change').css('color', today_change_color);
    $('#' + symbol_clean + '-jubak-gain').css('color', jubak_gain_color);      
  }
}

