/**
 * @author Ray.Zhu
 */
if (document.addEventListener) {
    document.addEventListener("DOMContentLoaded", onDOMContentLoaded, false);
}

//  (Safari)
if (/WebKit/i.test(navigator.userAgent)) { // sniff
    var _timer = setInterval(function() {
        if (/loaded|complete/.test(document.readyState)) {
            clearInterval(_timer);
            onDOMContentLoaded(); // call the onload handler
        }
    }, 10);
}
//  (Internet Explorer (using conditional comments))
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
	if (this.readyState == "complete") {
		onDOMContentLoaded(); // call the onload handler
	}
};
/*@end @*/
window.onload = onDOMContentLoaded;
function onDOMContentLoaded(){
    // quit if this function has already been called
    if (arguments.callee.done) return;
    // flag this function so we don't do the same thing twice
    arguments.callee.done = true;
    ondomload();
}

function hasClass( element, className )
{
    if( !element.className )
    {
        return false;
    }
    else
    {
        var reg = new RegExp( "\\b" + className + "\\b", "gi" );
        return reg.test(element.className);
    }
}

function addClass( element, className )
{
    if( !hasClass(element, className) )
    {
        element.className += " " + className;
    }
}

function removeClass( element, className )
{
    if( element.className )
    {
        var reg = new RegExp( "\\b" + className + "\\b", "gi" );
        element.className = element.className.replace( reg, "" );
    }
}


function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all) ? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for (var i = 0; i < arrElements.length; i++) {
        oElement = arrElements[i];
        if (oRegExp.test(oElement.className)) {
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements)
}

function clearfix(){
    var oNode = getElementsByClassName(document.body, "*", "clearfix");
    var oElem;
    for (var i = 0; i < oNode.length; i++) {
        oElem = document.createElement("div");
        oElem.className = "clear";
        oNode[i].appendChild(oElem);
    }
}

function activateMenu() {
    var oMenuLinks = document.getElementById("menu").getElementsByTagName("a");
    for (var i=0; i<oMenuLinks.length; i++) {
        if (location.href.indexOf(oMenuLinks[i].href) != -1) {
            addClass(oMenuLinks[i], "activated");
        }
    }
}

function activateAdminMenu() {
    var oMenuLinks = document.getElementById("sidebar").getElementsByTagName("a");
    for (var i in oMenuLinks) {
        if (location.href.indexOf(oMenuLinks[i].href) != -1) {
            addClass(oMenuLinks[i], "activated");
        }
    }
}

function loginBehavior(){
    if (!document.getElementById("loginLink")) return;
    var oLink = document.getElementById("loginLink");
    oLink.onclick = function(){
        var oLogin = document.getElementById("login");
        oLogin.style.display = "block";
    }
    oLink = document.getElementById("loginClose");
    oLink.onclick = function(){
        var oLogin = document.getElementById("login");
        oLogin.style.display = "none";
    }
}