﻿//禁用回车
function disableEnterKey(e) {
    var key;
    if (window.event)
        key = window.event.keyCode; //IE
    else
        key = e.which; //firefox      
    return (key != 13);
}
//初始化指数,广播
$(document).ready(function () {
    //Init market index
    refreshMarketIndex();
    if (isTrading) {
        $(".market-index").everyTime(10000, refreshMarketIndex, 0);
    }
    //Init broadcast
    if (typeof (broadcastItemCount) != 'undefined' && typeof (broadcasts) != 'undefined') {
        for (var i = 0; i < broadcastItemCount - broadcasts.length; i++)
            $('#broadcast_list').prepend("<li></li>");
        for (; broadcastIndex < broadcasts.length && broadcastIndex < broadcastItemCount; broadcastIndex++)
            $('#broadcast_list').prepend("<li>" + broadcasts[broadcastIndex] + "</li>");
        $("#broadcast_list").everyTime(8000, refreshBroadcast, 0);
    }
    //nav
    var moreTabsVisible = false;
    $('#nav_more').mouseenter(function () {
        showMoreTabs();
    }).mouseleave(function () {
        hideMoreTabs();
    });
    $("#nav_more_tabs").mouseenter(function () {
        moreTabsVisible = true;
        showMoreTabs();
    }).mouseleave(function () {
        moreTabsVisible = false;
        hideMoreTabs();
    });
    var showMoreTabs = function () {
        if ($("#nav_more_tabs").css("display") == 'none') {
            var pos = $("#nav_more").offset();
            var height = $("#nav_more").height();
            var width = $("#nav_more_tabs").width();
            $("#nav_more_tabs").css({ "left": (pos.left - width + 20) + "px", "top": (pos.top + height + 6) + "px" });
            $("#nav_more_tabs").fadeIn();
        }
    };
    var hideMoreTabs = function () {
        setTimeout(function () {
            if ($("#nav_more_tabs").css("display") == 'block' && !moreTabsVisible) {
                $("#nav_more_tabs").fadeOut();
            }
        }, 500);
    };
});
// Market Index
var marketIndexUrlFormat = "http://hq.sinajs.cn/rn={ticks}&list=sh000001,sz399001";
//刷新指数
function refreshMarketIndex() {
    var url = marketIndexUrlFormat.replace("{ticks}", (new Date()).getTime());
    $.ajax({
        dataType: 'script',
        url: url,
        cache: true,
        success: function () {
            updateIndex($("#sh_index"), $("#sh_index_percentage"), hq_str_sh000001);
            updateIndex($("#sz_index"), $("#sz_index_percentage"), hq_str_sz399001);
        }
    });
}
//更新指数
function updateIndex(oIndex, oIndexPercentage, sinaQuote) {
    var last = oIndex.text();
    var elements = sinaQuote.split(',');
    var close = elements[2];
    var current = elements[3];
    if (close != NaN && current != NaN) {
        var percentage = (current - close) / close;
        if (percentage != NaN) {
            oIndex.text(Math.round(current * 100) / 100);
            oIndexPercentage.text(Math.round(percentage * 10000) / 100 + "%");
            if (current - close > 0) {
                oIndex.attr("class", "price-red");
                oIndexPercentage.attr("class", "price-red");
            }
            else if (current - close < 0) {
                oIndex.attr("class", "price-green");
                oIndexPercentage.attr("class", "price-green");
            }
            splash(oIndex, last);
        }
    }
}
//设置指数颜色
function splash(oIndex, last) {
    current = oIndex.text();
    if (last == "" || last == current)
        return;
    var bgClass;
    if (current > last)
        bgClass = "price-up-bg";
    else
        bgClass = "price-down-bg";
    oIndex.addClass(bgClass);
    setTimeout(function () { oIndex.removeClass(bgClass); }, 800);
}
//Broadcast
var lastBroadcastContent;
var broadcastIndex = 0;
//刷新广播
function refreshBroadcast() {
    try {
        $.ajax({
            dataType: 'script',
            url: broadcastUrl + "?Uid=" + uid,
            cache: false,
            success: function () {
                try {
                    getBroadcastComplete(eval("broadcastContent"));
                }
                catch (error) { }
            }
        });
    }
    catch (error) { }
}
//设置广播
function getBroadcastComplete(broadcastContent) {
    if (broadcastContent && broadcastContent.length > 0) {
        if (broadcastContent != lastBroadcastContent) {
            smoothAdd("broadcast_list", broadcastContent);
            lastBroadcastContent = broadcastContent;
            return;
        }
    }
    if (broadcasts.length > broadcastItemCount) {
        if (broadcastIndex >= broadcasts.length)
            broadcastIndex = 0;
        smoothAdd("broadcast_list", broadcasts[broadcastIndex]);
        broadcastIndex++;
    }
}
//???
function smoothAdd(id, text) {
    var el = $('#' + id);
    var h = el.height();
    el.css({
        height: h,
        overflow: 'hidden'
    });
    var ulPaddingTop = el.css('padding-top');
    if (ulPaddingTop == 'auto')
        ulPaddingTop = 0;
    var ulPaddingBottom = el.css('padding-bottom');
    if (ulPaddingBottom == 'auto')
        ulPaddingBottom = 0;
    el.prepend('<li>' + text + '</li>');
    var first = $('li:first', el);
    var last = $('li:last', el);
    var foh = first.outerHeight();
    var heightDiff = foh - last.outerHeight();
    var oldMarginTop = first.css('margin-top');
    if (oldMarginTop == 'auto')
        oldMarginTop = 0;
    first.css({
        marginTop: 0 - foh,
        position: 'relative',
        top: 0 - ulPaddingTop
    });
    last.css('position', 'relative');
    el.animate({ height: h + heightDiff }, 1000);
    first.animate({ top: 0 }, 200, function () {
        first.animate({ marginTop: oldMarginTop }, 600, function () {
            last.animate({ top: ulPaddingBottom }, 200, function () {
                last.remove();
            });
        });
    });
}
//验证码
function refreshCode(imgId) {
    var img = document.getElementById(imgId);
    if (img != null) {
        img.src = "/Account/ValidationImage?r=" + (new Date()).getMilliseconds();
    }
}
