﻿
var SelectconfigArray="";
function initDropDownList(configArray,selectIndex) {
    if (SelectconfigArray == "")
        SelectconfigArray = configArray;
    else
        SelectconfigArray += "|" + configArray;
    var DefTitle;
    var parentContainer = document.getElementById(configArray);
    var selectObj = parentContainer.getElementsByTagName("select");
    if (selectIndex >= 0)
        selectObj[0].selectedIndex = selectIndex;
    else
        selectIndex = selectObj[0].selectedIndex;
    if (selectObj.length < 1) { return; }
    var optionArray = selectObj[0].getElementsByTagName("option");
    //获取option，并分别添加到各个li
    var optionLength = optionArray.length;
    for (var j = 0; j < optionLength; j++) {
        //获取ul，以便能够添加项目
        var ulObj = parentContainer.getElementsByTagName("ul");
        if (ulObj.length < 1) { return; }
        //获取span，以便能显示当前选择的项目
        var spanObj = parentContainer.getElementsByTagName("span");
        if (spanObj.length < 1) { return; }
        var liObj = document.createElement("li");
        var textNode = document.createTextNode(optionArray[j].firstChild.nodeValue)
        liObj.appendChild(textNode);
        liObj.setAttribute("currentIndex", j);
        //给每个liObj添加事件
        liObj.onclick = function () {
            selectCurrentItem(this.parentNode, this);
        }
        if (j == selectIndex) {
            DefTitle = optionArray[j].firstChild.nodeValue;
        }
        liObj.onmouseover = function () { this.className = "over"; }
        liObj.onmouseout = function () { this.className = ""; }
        ulObj[0].appendChild(liObj);
        spanObj[0].onclick = function (event) {
            //如果当前是显示的，就隐藏，反之亦然
            showHiddenUl(this);
        }
        spanObj[0].innerHTML = DefTitle;
        spanObj[0].onmouseover = function () { this.className = 'over'; }
        spanObj[0].onmouseout = function () { this.className = ""; };
        ulObj[0].onclick = function () { this.style.display = "none"; }
    }
    parentContainer.onclick = function (event) {
        if (!event) { event = window.event; }
        //阻止事件冒泡
        event.cancelBubble = true;
        var eventUlObj = this.getElementsByTagName("ul")[0];
        bodyClickHiddenUl(eventUlObj);
    }
}

function selectCurrentItem(ulObj, currentObj) {
    var parentObj = ulObj.parentNode;
    var spanObj = parentObj.getElementsByTagName("span")[0];
    spanObj.firstChild.nodeValue = currentObj.firstChild.nodeValue;
    var selectObj = parentObj.getElementsByTagName("select")[0];
    selectObj.selectedIndex = parseInt(currentObj.getAttribute("currentIndex"));
}
function showHiddenUl(currentObj) {
    var parentNode = currentObj.parentNode;
    var ulObj = parentNode.getElementsByTagName("ul")[0];
    if (ulObj.style.display == "block") {
        ulObj.style.display = "none";
    } else {
        ulObj.style.display = "block";
    }
}
//点击body区域（非“下拉菜单”）隐藏菜单
function addBodyClick(func) {
    var bodyObj = document.getElementsByTagName("body")[0];
    var oldBodyClick = bodyObj.onclick;
    if (typeof bodyObj.onclick != 'function') {
        bodyObj.onclick = func;
    } else {
        bodyObj.onclick = function () {
            oldBodyClick();
            func();
        }
    }
}

//隐藏所有的UL
function bodyClickHiddenUl(eventUlObj) {
    var existArray = SelectconfigArray.split("|");
    for (var i = 0; i < existArray.length; i++) {
        if (existArray[i].length < 1) { return; }
        //寻找所有UL并且隐藏
        var parentContainer = document.getElementById(existArray[i]);
        if (!parentContainer) { return; }
        var ulObj = parentContainer.getElementsByTagName("ul");
        if (eventUlObj != ulObj[0]) {
            ulObj[0].style.display = "none";
        }
    }
}

function bookmarkit(url, title) 
{
    var ctrl = (navigator.userAgent.toLowerCase()).indexOf('mac') != -1 ? 'Command/Cmd' : 'CTRL';
    try {
        if (document.all) { //IE类浏览器
            try {
                window.external.toString(); //360浏览器不支持window.external，无法收藏
                window.alert("国内开发的360浏览器等不支持主动加入收藏。\n您可以尝试通过浏览器菜单栏 或快捷键 ctrl+D 试试。");
            }
            catch (e) {
                try {
                    window.external.addFavorite(url, title);
                }
                catch (e) {
                    window.external.addToFavoritesBar(url, title);  //IE8
                }
            }
        }
        else if (window.sidebar) { //firfox等浏览器
            window.sidebar.addPanel(url, title, "");
        }
        else {
            alert('您可以尝试通过快捷键' + ctrl + ' + D 加入到收藏夹~');
        }
    }
    catch (e) {
        window.alert("因为IE浏览器存在bug，添加收藏失败！\n解决办法：在注册表中查找\n HKEY_CLASSES_ROOT\\TypeLib\\{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}\\1.1\\0\\win32 \n将 C:\\WINDOWS\\system32\\shdocvw.dll 改为 C:\\WINDOWS\\system32\\ieframe.dll ");
    }

}
