﻿///<reference path="jquery-1.4.1.min-vsdoc.js" />
///<reference path="stock/jQuery.Hashtable.js" />

/**
* @author	wangzp
* @date    2010-11-05
**/

(function($) {
    jQuery.RecentStock = function() {
    }
    jQuery.RecentStock.allStock = function() {
        var stocks = jQuery.cookie("recentStock");
        if (stocks == null || stocks == "") {
            return [];
        } else {
            return jQuery.RecentStock.stockData = stocks.split("|");
        }
    };
    jQuery.RecentStock.stock = function(code, options) {
        stockData = jQuery.RecentStock.allStock();
        if (code == null) {
            return false;
        }
        code = code.split(",");
        if (options == null) {
            options = {};
            options.expires = 12;
        }
        var count = stockData.length;
        for (var i = 0; i < count; i++) {
            if (stockData[i] == code) {
                return code;
            }
        }

        stockData.push(code);
        if (stockData.length > 10) {
            stockData = stockData.reverse().splice(0, 10);
            stockData = stockData.reverse();
        }
        jQuery.cookie("recentStock", stockData.join('|'), options);
        return code;
    };
    jQuery.RecentStock.clear = function(name) {
        if (name == null) {
            name = "recentStock";
        }
        var options = {};
        options.expires = -1;
        jQuery.cookie(name, "", options);
    }
    /*
    测试demo
    jQuery.RecentStock.stock("asdf");
    jQuery.RecentStock.allStock();
    jQuery.RecentStock.clear();
    */

    /*
    url:数据请求的路径
    rUrl:静态页面跳转根目录
    options:其他属性，包括callTime
    *
    */
    var opts = {};
    //刷新最近股票
    $.fn.UpdateRecentStock = function(url, rurl, options) {
        opts = $.extend({ callTime: 6 * 1000 }, { url: url }, { rurl: rurl }, options)
        opts["elem"] = $(this);
        Update(opts, UpdateHandler);
    }

    function Update(options, fun) {
        var codes = $.RecentStock.allStock();
        if (codes.length > 0) {
            $.getJSON(options.url + "&codelist=" + codes.reverse().join('|') + "&callback=?", fun);
        }
        setTimeout(function() { Update(opts, fun) }, opts.callTime)
    }

    function UpdateHandler(data) {
        opts["recentStock"] = data["zuijinfangwen"];
        var stocks = opts["recentStock"];
        var divs = opts["elem"];
        divs.html("");

        for (var i = 0; i < stocks.length; i++) {
            var stock = stocks[i];
            var div = $("<div>").addClass('reli');
            //var direct = $("<a>").attr("href","test");//.text(stocks["StockName"]);
            var direct = $("<a>").attr("href", opts["rurl"] + stock["StockCode"]).text(stock["StockName"]);
            var stockName = $("<span>").append(direct);
            var nPrice = parseFloat(stock["NewPrice"]);
            var oPrice = parseFloat(stock["LastClosePrice"]);
            var priceClass = "fontblue";
            if (nPrice > oPrice) {
                priceClass = "fontred";
            } else if (nPrice < oPrice) {
                priceClass = "fontgreen";
            }
            nPrice = (nPrice == 0 ? '-' : nPrice);
            var newPrice = $("<span>").text(nPrice).addClass(priceClass);
            var perentPrice = $("<span>").text(stock["ChangeRates"]).addClass(priceClass);
            div.append(stockName, newPrice, perentPrice);
            divs.append(div);
        }
    }
})(jQuery);
