/**
 * Hide Entry Body.
 *
 *
 * Usage:
 *
 *
 * @author Alex Zhang <http://www.aiview.com/>
 * @version 0.2
 */

// Configuration
Hidebody = {
    body: "entrybody",

    summary: "entrysummary",

    info: "entryinfo",

    footer: "entryfooter",

    bar: "hidebodybar",

    allflag: 1,

    anchor_prefix: "a"

};

Hidebody.setAppear = function(entryid) {
    var i, a, id;

    /* Switch appearance of entry body and summary.
     */
    for (i=0; (a = document.getElementsByTagName("div")[i]); i++) {
        if (id = a.getAttribute("id")) {
            if (id.indexOf(Hidebody.body) != -1) {
                if (id == Hidebody.body + entryid)
                    a.style.display = a.style.display == "none" ? "" : "none";
                else if (Hidebody.allflag == 0)
                    a.style.display = "none";
            } else if (id.indexOf(Hidebody.info) != -1) {
                if (id == Hidebody.info+ entryid) {
                    a.style.display = a.style.display == "none" ? "" : "none";
                } else if (Hidebody.allflag == 0)
                    a.style.display = "none";
            } else if (id.indexOf(Hidebody.footer) != -1) {
                if (id == Hidebody.footer + entryid) {
                    a.style.display = a.style.display == "none" ? "" : "none";
                } else if (Hidebody.allflag == 0)
                    a.style.display = "none";
            } else if (id.indexOf(Hidebody.summary) != -1) {
                if (id == Hidebody.summary + entryid) {
                    a.style.display = a.style.display == "none" ? "" : "none";
                } else if (Hidebody.allflag == 0)
                    a.style.display = "";
            }
        }
    }

    /* Re-draw the text bar.
     */
    Hidebody.DrawBar();
};

Hidebody.setAllAppear = function(flag) {
    var i, a;

    for (i=0; (a = document.getElementsByTagName("div")[i]); i++) {
        if (id = a.getAttribute("id")) {
            if (id.indexOf(Hidebody.body) != -1) {
                    a.style.display = (flag == 1) ? "" : "none";
            } else if (id.indexOf(Hidebody.info) != -1) {
                    a.style.display = (flag == 1) ? "" : "none";
            } else if (id.indexOf(Hidebody.footer) != -1) {
                    a.style.display = (flag == 1) ? "" : "none";
            } else if (id.indexOf(Hidebody.summary) != -1) {
                    a.style.display = (flag == 1) ? "none" : "";
            }
        }
    }
    Hidebody.allflag = flag;

    /* Re-draw the text bar.
     */
    Hidebody.DrawBar();
};

Hidebody.DrawBar = function() {
    var i, a, id, link, text, entryid;


    if (Hidebody.allflag == 0)
        link = "<a href='#' onclick='javascript:Hidebody.setAllAppear(1); return false;'>展开所有</a>";
    else
        link = "<a href='#' onclick='javascript:Hidebody.setAllAppear(0); return false;'>折叠所有</a>";

    document.getElementById(Hidebody.bar).innerHTML = link;

    for (i=0; (a = document.getElementsByTagName("div")[i]); i++) {
        if (id = a.getAttribute("id")) {
            if (id.indexOf(Hidebody.body) != -1) {
                text = a.style.display == "" ? "关闭" : "展开";

                // "entrybody000875" to "000875"
                entryid = id.replace(Hidebody.body, "");

                link = "<a href='#" + Hidebody.anchor_prefix + entryid + "' id='" + entryid + "' onclick='javascript:Hidebody.setAppear(this.id); return true;'>" + text + "</a>";
                document.getElementById(Hidebody.bar + entryid).innerHTML = link;
            }
        }
    }
};

Hidebody.run = function() {
    var i, j, a;
    var dfthide = "searchresult-container";
    //var dftshow = new Array("alpha", "category-alpha", "date-based-alpha");

    for (i=0; (a = document.getElementsByTagName("div")[i]); i++) {
        if (id = a.getAttribute("id")) {
            if (id == dfthide) {
                Hidebody.setAllAppear(0);
                return;
            }
            /*for (j=0; j < dftshow.length; j++) {
                if (id == dftshow[j]) {
                    Hidebody.setAllAppear(1);
                    return;
                }
            }
*/
         }
    }
    Hidebody.setAllAppear(1);
};

// Only for Mozila/Firefox Browser
if (document.addEventListener) {
    document.addEventListener("DOMContentLoaded", Hidebody.run, false);
}

// Only for IE
   /*@cc_on @*/
   /*@if (@_win32)
       document.write("<script defer src=/ie_onload.js><"+"/script>");
   /*@end @*/

// For all other Browsers
if (window.onload) {
    Hidebody._old_onload = window.onload;
    window.onload = function(e) {
        Hidebody._old_onload(e);
        Hidebody.run();
    }
} else {
    window.onload = function(e) {
        Hidebody.run();
    }
}

