var AUTOCOMPLETE_COMMA_CACHE = '';

$(function() {
    
    $("#nav a[href='/trader/']").addClass('sel');
    
    // 
    // /////* any tag :hover support for IE6 */
    // $('.hover_menu').hover(function() {
    //     $('.popup', this).bgiframe();
    // }, function() {
    //     $('iframe', this).remove();
    // });

    /* AUTOCOMPLETE */
    $("#id_stock_codes").autocomplete("/trader/codes/", {
        minChars:1,
        resultsClass:'trader_suggestions',
        cacheLength :1,
        maxItemsToShow:15,
        delay:1,
        width:230,
        padCommas:true,
        autoFill:false,
        onItemSelect:function() { $("#id_stock_codes").focus();}
    });
    
    $("#id_stock_codes").keypress(function(e) {
        if (!((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13))) {
            this.autocompleter.flushCache();
            AUTOCOMPLETE_COMMA_CACHE = $(this).val();
            return true;   
        }
    });

    $("#id_chart_type").change(function(){
        var chartObj = getChartFromId("flashchartobj");
        update_chart(chartObj);
        })
    
    $("#id_company_from, #id_company_to, #id_company").autocomplete("/trader/codes/", {
        minChars:1,
        resultsClass:'trader_suggestions',
        maxItemsToShow:15
    });

    $("#id_director").autocomplete("/trader/directors/", {
        minChars:3,
        resultsClass:'trader_suggestions',
        maxItemsToShow:15
    });
    
    /* DATE PICKERS */
    var $dates = $('form .date_fields input');
    if ($dates.length > 0) {
        $dates.datePicker({'clickInput':true, 'createButton':false});
        $dates.dpSetPosition($.dpConst.POS_TOP, $.dpConst.POS_LEFT);
        $dates.dpSetOffset(17, 0);
        $dates.dpSetStartDate('01/01/2008');
        $dates.dpSetEndDate(new Date().asString());
    }
    
});


/* PRICES */
$(function() {
    if ($("#trader_tbl").length > 0) {
        $("#trader_tbl").tablesorter();
    }
});

//
///* ANNOUNCEMENTS */
//$(function() {
//    $('#trader_ann .ann_row').click(function() {
//        var id = this.id.replace('ann_', '');
//        var slider = $('.ann_slide', this);
//        if (slider.children().length == 0) {
//            slider.load('/announcement/' + id + '/', function() {
//                $(this).slideToggle();
//            });
//        } else {
//            slider.slideToggle();
//        }
//    });
//});


/* BOARDROOM */
$(function() {
    if ($('#constellation_roamer').length > 0) {
        update_choose();
        $("form input[name='choose']").click(update_choose);
    }
});
function update_choose() {
    var f = $('form input:checked').val();
    $('form .choose').hide();
    if (f!='') {
        $('form .choose_' + f)[0].style.display = 'inline';
    }
}
function constellationRoamer_onClick(nodeID){
    $('#trader_news').load('/latest/news/' + nodeID + '/');
    $('#trader_ann').load('/latest/ann/' + nodeID + '/');
}



/* CHARTS */
var chart_width;
var chart_height;
$(function() {
    if ($('#trader_charts_form').length > 0) {
        chart_width = $('#flashchart').width();
        chart_height = $('#flashchart').height();
        var fc = new FusionCharts("/media/FusionCharts/MSLine.swf", "flashchartobj", chart_width, chart_height, "0", "1"); 
        update_chart(fc);
        fc.render('flashchart');
        // Uncomment to allow chart refresh without page refresh
        //$('#trader_charts_form').submit(function() {
        //  update_chart(fc);
        //  return false;
        //});
    }
});
function update_chart(fc) {
    var t = $('#id_chart_type').val();
    var data = {
        chart_orgs: $('#id_stock_codes').val(),
        chart_height: chart_height,
        chart_width: chart_width,
        chart_type: 'line',
        chart_date: $('#id_price_date').val(),
        chart_mode: t == 'volume' | t == 'news' ? 'volume': 'market_price',
        chart_news: t == 'news' ? '1' : '0',
        normalized: t == 'asx' | t == 'news' ? '1' : '0',
        chart_index: t == 'asx'  ? '1' : '0'
    };
    var params = '';
    $.each(data, function(n, v) {
        params += n + '=' + v + '&';
    });
    fc.setDataURL('/ajax/price_chart/flash/?' + escape(params));
}