function _top3_a(topic_id, topic_c) { // apply different layout style for top three hotest star in topic list
    var diff = 0;
    for(var i=1;i<topic_c.length;i++) if(topic_c[i]!=topic_c[i-1]) diff++;
    if(diff < 5) return;    // too few different
    var _top3 = 0;
    var _aa = function(o) { o.className="top3_star"; _top3++; }
    for(var i=1;i<=12;i++) {
        var o = $("_d"+topic_id+"_"+i);
        var c = parseInt(o.innerHTML);
        if(_top3<12 && c == topic_c[0]) { _aa(o); continue; }
        if(_top3<3 && (c >= topic_c[1])) { _aa(o); continue; }
        if(_top3<3 && (c >= topic_c[2])) { _aa(o); continue; }
    }
    return;
}

// pager
var _current_pager_start_page = 1;
var _current_pager_end_page = total_page;
var _roll_back_timeout = null;

function _draw_pager() {
    var pageStr = "";
    for(var i=_current_pager_start_page;i<=_current_pager_end_page;i++) 
        if(i==current_page)
            pageStr += "<div class=\"curpage\"><a href=\"#\" onclick=\"javascript: return false;\" style=\"color: #fff;\">"+i+"</a></div>"; 
        else
            pageStr += "<a href=\"#\" onclick=\"javascript: return change_page("+i+");\">"+i+"</a>";
    $("pager1").innerHTML = $("pager2").innerHTML = pageStr;
}

function refresh_pager() {
    var startPage;
    var endPage;
    if(total_page < 10) {
        startPage = 1;
        endPage = total_page;
    } else {
        startPage = ((current_page - 5) < 1) ? 1 : current_page - 5;
        if(startPage == 1)
            endPage = (total_page - current_page > 10) ? 10 : total_page;
        else
            endPage = ((current_page + 5) > total_page) ? total_page : current_page + 5;
    }
    _current_pager_start_page = startPage;
    _current_pager_end_page = endPage;
    _draw_pager();
    if(startPage == 1) { hide($("rollup_page1")); hide($("rollup_page2")); } else { inline($("rollup_page1")); inline($("rollup_page2")); }
    if(endPage == total_page) { hide($("rolldown_page1")); hide($("rolldown_page2"));} else { inline($("rolldown_page1")); inline($("rolldown_page2"));}
    if(current_page == 1) { hide($("prev_page1")); hide($("prev_page2")); hide($("first_page1")); hide($("first_page2")); } else { inline($("prev_page1")); inline($("prev_page2")); inline($("first_page1")); inline($("first_page2")); }
    if(current_page == total_page) { hide($("next_page1")); hide($("next_page2")); hide($("last_page1")); hide($("last_page2")); } else { inline($("next_page1")); inline($("next_page2")); inline($("last_page1")); inline($("last_page2")); }
    
    return false;
}

function roll_pager(is_up) {
    if(_roll_back_timeout != null)
        clearTimeout(_roll_back_timeout);
    _roll_back_timeout = null;
    if(is_up) {
        if(_current_pager_start_page - 1 < 1) return false; 
        _current_pager_end_page = --_current_pager_start_page;
        _current_pager_start_page = (_current_pager_end_page - 10 < 1) ? 1 : _current_pager_end_page - 10;
    } else {
        if(_current_pager_end_page + 1 > total_page) return false;
        _current_pager_start_page = ++_current_pager_end_page;
        _current_pager_end_page = (_current_pager_start_page + 9 > total_page) ? total_page : _current_pager_start_page + 9;
    }
    _draw_pager();
    if(_current_pager_start_page == 1) { hide($("rollup_page1")); hide($("rollup_page2")); } else { inline($("rollup_page1")); inline($("rollup_page2")); }
    if(_current_pager_end_page == total_page) { hide($("rolldown_page1")); hide($("rolldown_page2"));} else { inline($("rolldown_page1")); inline($("rolldown_page2"));}
    if( current_page > _current_pager_end_page || current_page < _current_pager_start_page)
        _roll_back_timeout = setTimeout("refresh_pager()", 4000);
    return false;
}

function change_page(p) {
    if(p == current_page || p > total_page || p < 1) return false;
    current_page = p;
    load_topic_list();
    refresh_pager();
    return false;
}

function change_sort(s) {
    s = s.toUpperCase();
    if(s==current_sort_type||(s!="NEW" && s!="UPDATE" && s!="HOT")) return false;
    current_page = 1;
    current_sort_type = s;
    load_topic_list();
    refresh_pager();
    return false;
}

function load_topic_list() {
    hide($("p1")); hide($("p2")); $o($("index_topic_list"),40); inline($("loading"));
    ajax_load("index_topic_list.php?p="+current_page+"&type="+current_sort_type,"get","", 
        function(res) {
            $("index_topic_list").innerHTML = res;
            eval($("script").innerHTML);
            show($("p1")); show($("p2")); $o($("index_topic_list"),100); hide($("loading"));
        }
    );
}

// hot topic list
var _goal_height = new Array(12);
var _update_bar_t = null;
var _roll_bar_t = null;

function refresh_hot_topic() {
    if(_update_bar_t != null) clearTimeout(_update_bar_t); _update_bar_t = null;
    if(hot_topics.length <= 0)  return false;
    $("hot_topic_title").innerHTML = "<a href=\"topicall.php?t=" + hot_topics[current_hot_topic].tid + "\">" + hot_topics[current_hot_topic].title + "</a>";
    var c_max = 0;
    for(var i=0;i<12;i++) if(parseInt(hot_topics[current_hot_topic].c[i]) > c_max) c_max = parseInt(hot_topics[current_hot_topic].c[i]);
    c_max *= 1.1;
    for(var i=0;i<12;i++) _goal_height[i] = (c_max == 0) ? 0 : Math.floor(100 * (parseInt(hot_topics[current_hot_topic].c[i]) / c_max));
    $("hot_topic_"+current_hot_topic).className = "curtopic";
    $s($("hot_topic_link"), "href", "topic.php?t="+hot_topics[current_hot_topic].tid);
    _update_bar();
    return false;
}

function _update_bar() {
    var ok = 0;
    for(var i=0;i<12;i++) {
        var o = $("bar"+i);
        var ohs = o.style.height;
        var oh = parseInt(ohs.substr(0,ohs.length-2)); 
        var gh = _goal_height[i];
/*
        if(oh==gh) { ok++; continue; }
        if(oh > gh)
            o.style.height = --oh;
        else 
            o.style.height = ++oh;
        o.style.top = (152 - oh);
*/
        o.style.height = gh; 
        o.style.top = (152 - gh);

    }
/*
    if(ok<12)
        _update_bar_t = setTimeout("_update_bar()", 50);
*/
    return;
}


function change_hot_topic(n) {
    if(_roll_bar_t != null) { clearTimeout(_roll_bar_t); _roll_bar_t = null; }
    if(n == current_hot_topic || n < 0 || n > hot_topics.length || hot_topics.length <= 0) return false;
    $("hot_topic_"+current_hot_topic).className = "";
    current_hot_topic = n;
    refresh_hot_topic();
    return false;
}

function roll_bar() {
    change_hot_topic( (current_hot_topic + 1) % hot_topics.length );
    _roll_bar_t = setTimeout("roll_bar()", 10000);
    return;
}
