var tickers = null;
var period = null;

function getHotStocks(page) {
    if (page == 0) {
         $('hotStocksPrev').href='javascript:getHotStocks(' + (page + 1) + ');';
         $('hotStocksNext').href='javascript:getHotStocks(' + (page + 1) + ');';            
         $('hotStocksPrev').hide();
         $('hotStocksNext').show(); 
    } else {
         $('hotStocksPrev').href='javascript:getHotStocks(' + (page - 1) + ');';
         $('hotStocksNext').href='javascript:getHotStocks(' + (page + 1) + ');';            
         $('hotStocksPrev').show();
         $('hotStocksNext').hide();
    }

    new Ajax.Request('/ticker/hotstocks.aspx', {
      method:'get',
      onSuccess: function(transport){
        hotStocks = transport.responseText;
        
        var tickerArray = [];
        hotStocks.scan(/(\w|-|\.)+/, function(match){ tickerArray.push({symbol: match[0]})}); 
        var maxStocks = tickerArray.length;
        var jsonrequest = $H({'tickersrequest': tickerArray.slice((page * 5), ((page * 5) + 5))}).toJSON();
        new Ajax.Request('/ticker/ticker.aspx', {
            method:'post',
            postBody:jsonrequest,
            requestHeaders: {Accept: 'application/json'},
            onSuccess: function(transport){
                var tickers = transport.responseText.evalJSON();
                var tickercount = 1;
                var symbolElements = $$('.hotStocksCol1');
                 //var nameElements = $$('.hotStocksCol1');
                var priceElements = $$('.hotStocksCol2');
                var changeElements = $$('.hotStocksCol3');
                var j = 0;
                for (i = 0; i < tickers.tickersdata.length; i++) {
                    if(tickers.tickersdata[i].symbol) { 
                        updateSelectedStockChart('hs_chart' + tickercount, tickers.tickersdata[i].symbol, $H({period: '1YRD', chart_size: 'medium', chart_width: '300', chart_height: '150'}))
                         symbolElements[j].innerHTML = tickers.tickersdata[i].symbol;
                         priceElements[j].innerHTML = tickers.tickersdata[i].last;
                         var changeText = "";
                        if(tickers.tickersdata[i].netChange < 0) {
                            changeText += "<span class=\"down\">"+tickers.tickersdata[i].netChange+"</span>"
                        } else {
                            changeText += "<span class=\"up\">"+tickers.tickersdata[i].netChange+"</span>"
                         }
                          changeElements[j].innerHTML = changeText;
                        //outputtext2 += "<td class=\"hotStocksCol4\"><img src=\"images/arrow.gif\" width=\"12\" height=\"12\" alt=\"\" onclick=\"window.location='stock.aspx?stock=" + tickers.tickersdata[i].symbol + "\" /></td>";
                     }
                    tickercount++;
                    j++;
                }
            }
        });
        
      }, onException: function (transport) {
      }, onFailure: function (transport) {    
      }
    });
}
function populateStockData(tickers, classNames)
{
    var tickerArray = []
    tickers.scan(/(\w|-|\.)+/, function(match){ tickerArray.push({symbol: match[0]})}); 
    var jsonrequest = $H({'tickersrequest': tickerArray}).toJSON();
    new Ajax.Request('/ticker/ticker.aspx', {
      method:'post',
      postBody:jsonrequest,
      requestHeaders: {Accept: 'application/json'},
      onSuccess: function(transport){
            var tickers = transport.responseText.evalJSON();
            var symbolElements = $$(classNames.symbolClass);
            var nameElements = $$(classNames.nameClass);
            var priceElements = $$(classNames.priceClass);
            var changeElements = $$(classNames.changeClass);
            var pcentChangeElements = $$(classNames.percentChangeClass);
            var priceChartElements = $$(classNames.priceChartClass);
            var volumeChartElements = $$(classNames.volumeChartClass);
            var j = 0;
            for (i=0; i < tickers.tickersdata.length; i++) {
                if (nameElements.length > 0)
                    nameElements[j].innerHTML = tickers.tickersdata[i].companyName;
                if (priceElements.length > 0)
                    priceElements[j].innerHTML = tickers.tickersdata[i].last;
                if (changeElements.length > 0) {
                    var changeText = "";
                    if(tickers.tickersdata[i].netChange < 0) {
                        changeText += "<span class=\"down\">"+tickers.tickersdata[i].netChange+"</span>"
                    } else {
                        changeText += "<span class=\"up\">"+tickers.tickersdata[i].netChange+"</span>"
                    }
                    changeElements[j].innerHTML = changeText;
                }
                
                if (pcentChangeElements.length > 0) {
                    var changeText = "";
                    if(tickers.tickersdata[i].netChange < 0) {
                        changeText += "<span class=\"down\">"+(tickers.tickersdata[i].percentChange).truncate(5, '')+"</span>"
                    } else {
                        changeText += "<span class=\"up\">"+(tickers.tickersdata[i].percentChange).truncate(4, '')+"</span>"
                    }
                    pcentChangeElements[j].innerHTML = changeText;
                }
                
                if (priceChartElements.length > 0) {
                    updateSelectedStockChart('pricechart' + (j+1), tickers.tickersdata[i].symbol, $H({period: 'INTRA', chart_size: 'medium', chart_width: '310', chart_height: '230'}));
                }
                
                if (volumeChartElements.length > 0) {
                    updateSelectedVolumeChart('volumechart' + (j+1), tickers.tickersdata[i].symbol, $H({period: 'INTRA', chart_size: 'medium', chart_width: '310', chart_height: '92'}))
                }
                
                j++;
            }
        }
     });
}
function updateSelectedStockChart(chartid, symbol, options) {
    
    var defaultoptions = $H({chart_type: 'png', chart_style: 'stock_price', chart_plot_type: 'area', lang: 'en', close_line: 'true', line_colour: 'cc0000', chart_grid: 'CCCCCC', chart_fg: 'dadada', chart_bg: 'FFFFFF', img_bg: 'FFFFFF', img_fg: '9e9e9e', x_scale: 'true', showTitle: 'true', showDate: 'true', border: 'false', copyright: 'true'});
    options = options.merge(defaultoptions);
    
    var uri = 'http://chart.globeinvestor.com/servlet/charting/bnnx?'+ options.toQueryString() + '&symbol=' + symbol 
    
    $(chartid).src = uri;
}
function updateSelectedVolumeChart(chartid, symbol, options) {
    
    var defaultoptions = $H({chart_type: 'png', chart_style: 'stock_volume', lang: 'en', close_line: 'true', line_colour: 'cc0000', chart_grid: 'CCCCCC', chart_fg: 'dadada', chart_bg: 'FFFFFF', img_bg: 'FFFFFF', img_fg: '9e9e9e', x_scale: 'true', showTitle: 'true', showDate: 'true', border: 'false', copyright: 'true'});
    options = options.merge(defaultoptions);
   
    var uri = 'http://chart.globeinvestor.com/servlet/charting/bnnx?'+ options.toQueryString() + '&symbol=' + symbol 
    
    $(chartid).src = uri;
}
function getTicker()
{
    // from content
    var tickers = "TSX-I, DJIA-I,SPX-I,COMP-I,JX-I";
    new Ajax.PeriodicalUpdater('tickercomponent', '/ticker/tickercomponent.aspx',
    {
        method: 'post',
        postBody: tickers,
        frequency: 15,
        decay: 2
    });
    
}
function changeStyle() {
    
    if ($F('chart_style') != 'stock_price') {
        $('section_compare_index').hide();
    } else {
    //    $F('compare_index')
        $('section_compare_index').show();
    }
    updateStockChart();
}
function changePeriod() {
    if ($F('period') == 'INTRA') {
        $('section_avg_1').hide();        
        $('section_avg_2').hide();
    } else {
        $('section_avg_1').show();
        $('section_avg_2').show();
    }
    
    updateStockChart();
                
    var volumeOptions = $H({period: $F('period')});
    updateVolumeChart(volumeOptions);
}
function changeCompareIndex() {
    updateStockChart();
}
function changeAverage1() {
    updateStockChart();
}
function changeAverage2() {
    updateStockChart();
}
 
function updateStockChart() {
    
    var qs = new Querystring();
    
    var defaultoptions = $H({chart_type: 'png', chart_plot_type: 'line', lang: 'en', close_line: 'true', line_colour: 'cc0000', chart_grid: 'CCCCCC', chart_fg: 'dadada', chart_bg: 'FFFFFF', img_bg: 'FFFFFF', img_fg: '9e9e9e', chart_size: 'medium', chart_width: '620', chart_height: '175', x_scale: 'true', showTitle: 'true', showDate: 'true', border: 'false', copyright: 'true'});
        
    var options = getStockChartOptions();
    options = options.merge(defaultoptions);
    
    var uri = 'http://chart.globeinvestor.com/servlet/charting/bnnx?symbol='+ qs.get("pi_symbol") + '&' + options.toQueryString() + '&' + getStockCompareOptions().toQueryString()  + '&' +  getAverage1Options().toQueryString() + '&' + getAverage2Options().toQueryString();
    
    $('stockpricechart').src = uri;
    
}
function getStockChartOptions() {
    var style = $F('chart_style');
    var period = $F('period');
            
    var options = $H({chart_style: style, period: period});
    
    return options;
}
function getStockCompareOptions() {
    var index = $F('compare_index');
    var options = $H();
    if (index != '')  {
        options = options.merge($H({symbol: index, line_colour: '0000cc'}));
    }
    return options;
}
function getAverage1Options() {
    var avg_1 = $F('avg_1');
    var options = $H();
    if (avg_1 != '0')  {
        options = options.merge($H({avg_1: avg_1, line_colour: '00cc00'}));
    }
    return options;
}
function getAverage2Options() {
    var avg_2 = $F('avg_2');
    var options = $H();
    if (avg_2 != '0')  {
        options = options.merge($H({avg_2: avg_2, line_colour: 'cccc00'}));
    }
    return options;
}

function updateVolumeChart(options) {
    
    var qs = new Querystring();
    
    var defaultoptions = $H({chart_style: 'stock_volume', chart_type: 'png', chart_plot_type: 'line', lang: 'en', close_line: 'true', line_colour: 'cc0000', chart_grid: 'CCCCCC', chart_fg: 'dadada', chart_bg: 'FFFFFF', img_bg: 'FFFFFF', img_fg: '9e9e9e', chart_size: 'medium', chart_width: '620', chart_height: '90', x_scale: 'true', showTitle: 'true', showDate: 'true', border: 'false', copyright: 'true'});
    
    options = options.merge(defaultoptions);
    
    var uri = 'http://chart.globeinvestor.com/servlet/charting/bnnx?symbol='+ qs.get("pi_symbol") + '&' + options.toQueryString();
    
    $('stockvolumechart').src = uri;
    
}
function changeNaMarketPeriod(tickers) {
    var tickerArray = [];
    tickers.scan(/(\w|-|\.)+/, function(match){tickerArray.push(match[0])}); 
    
    period = $F('period');
    var priceChartElements = $$('.namarketPriceChart');
    var volumeChartElements = $$('.namarketVolumeChart');
    for (i=0; i < priceChartElements.length; i++) {
        updateSelectedStockChart('pricechart' + (i+1), tickerArray[i], $H({period: period, chart_size: 'medium', chart_width: '310', chart_height: '230'}));
        updateSelectedVolumeChart('volumechart' + (i+1), tickerArray[i], $H({period: period, chart_size: 'medium', chart_width: '310', chart_height: '92'}))
    }
}
function updateNaMarketStockChart(stock) {
    var defaultoptions = $H({chart_type: 'png', chart_plot_type: 'line', lang: 'en', close_line: 'true', line_colour: 'cc0000', chart_grid: 'CCCCCC', chart_fg: 'dadada', chart_bg: 'FFFFFF', img_bg: 'FFFFFF', img_fg: '9e9e9e', chart_size: 'medium', x_scale: 'true', showTitle: 'true', showDate: 'true', chart_width: '310', chart_height: '96', chart_style: 'stock_price', border: 'false', copyright: 'true'});
       var period = $F('period');
    var options = $H({period: period});
    options = options.merge(defaultoptions);
    var uri = 'http://chart.globeinvestor.com/servlet/charting/bnnx?symbol='+ stock + '&' + options.toQueryString();
    $('stockpricechart').src = uri;
}
function updateNaMarketVolumeChart(options) {
    
    var qs = new Querystring();
    
    var defaultoptions = $H({chart_style: 'stock_volume', chart_type: 'png', chart_plot_type: 'line', lang: 'en', close_line: 'true', line_colour: 'cc0000', chart_grid: 'CCCCCC', chart_fg: 'dadada', chart_bg: 'FFFFFF', img_bg: 'FFFFFF', img_fg: '9e9e9e', chart_size: 'medium', x_scale: 'true', showTitle: 'true', showDate: 'true', border: 'false', copyright: 'true'});
    
    options = options.merge(defaultoptions);
    
    var uri = 'http://chart.globeinvestor.com/servlet/charting/bnnx?symbol='+ qs.get("pi_symbol") + '&' + options.toQueryString();
    
    $('stockvolumechart').src = uri;
    
}