/*This Common Library is for my only cute wife Demi, 22/Jul/2010 There are 2 main functions 1. fnTree, it is for items on Left Menu, with their sub items. Expand sub items for selected item, and unfold others. It need 9 parameters (1)nameMainItem1: Name of Main items (2)nameMainItem2: Name of Main items (3)nameSubItem: Name of Main items (4)classMainItemSelect1: Name of the class, when Main Item is selected. (5)classMainItemUnselect1: Name of the class, when Main Item is unselected. (6)classMainItemSelect2: Name of the class, when Main Item is selected. (7)classMainItemUnselect2: Name of the class, when Main Item is unselected. (8)classSubItemSelect: Name of the class, when Sub Item is selected. (9)classSubItemUnselect: Name of the class, when Sub Item is unselected. Original Function: function fnTree(nameMainItem1, nameMainItem2, nameSubItem, classMainItemSelect1, classMainItemUnselect1, classMainItemSelect2, classMainItemUnselect2, classSubItemSelect, classSubItemUnselect) 2. fnTab, it is for tabs on the Top, with their Menus. Display related Menu for selected tab, and hide others. It need 6 parameters (1)nameTabMenu: Name of Tabs (2)nameTabContent: Name of the content, which contains related Menu. (3)classMenuSelect: Name of the class for Tabs, when it is selected. (4)classMenuUnselect: Name of the class for Tabs, when it is unselected. (5)classContentSelect: Name of the class for related container of the Tab, when it is selected. (6)classContentUnselect: Name of the class for related container of the Tab, when it is unselected. Original Function: function fnTab(nameTabMenu, nameTabContent, classMenuSelect, classMenuUnselect, classContentSelect, classContentUnselect) */ var constN = 0; var constTab = 0; window.onload = function() { //fnTab("TabMenu", "TabContent", "TabMenu_Select", "TabMenu_Unselect", "TabContent_Select", "TabContent_Unselect"); fnTree("TreeMenu", "TreeContent", "TreeSub", "TreeMenu_Select", "TreeMenu_Unselect", "TreeContent_Expand", "TreeContent_Collapse", "TreeSub_Select", "TreeSub_Unselect"); fnOpenFrame("main", ""); }; function fnTree(nameMainItem1, nameMainItem2, nameSubItem, classMainItemSelect1, classMainItemUnselect1, classMainItemSelect2, classMainItemUnselect2, classSubItemSelect, classSubItemUnselect) { var objItem1 = fixedGetElementsByName(document, "p", nameMainItem1); if (!objItem1) { var objItem1 = fixedGetElementsByName(document, "div", nameMainItem1); } if (!objItem1) { var objItem1 = fixedGetElementsByName(document, "table", nameMainItem1); } var objItem2 = fixedGetElementsByName(document, "div", nameMainItem2); if (!objItem2) { var objItem2 = fixedGetElementsByName(document, "p", nameMainItem2); } if (!objItem2) { var objItem2 = fixedGetElementsByName(document, "table", nameMainItem2); } if (!objItem1) return false; for (var i = 0; i < objItem1.length; i++) { objItem1[i].value = i; objItem1[i].onclick = function() { selectMainItem(this, this.value, objItem1, objItem2, nameMainItem1, nameMainItem2, nameSubItem, classMainItemSelect1, classMainItemUnselect1, classMainItemSelect2, classMainItemUnselect2, classSubItemSelect, classSubItemUnselect) }; if (objItem1.length == objItem2.length) { var objSubs = fixedGetElementsByName(objItem2[i], "div", nameSubItem); for (var j = 0; j < objSubs.length; j++) { objSubs[j].value = i + "," + j; objSubs[j].onclick = function() { selectSubItem(this, this.value, objItem1, objItem2, nameMainItem1, nameMainItem2, nameSubItem, classMainItemSelect1, classMainItemUnselect1, classMainItemSelect2, classMainItemUnselect2, classSubItemSelect, classSubItemUnselect) }; } } } //Set default Item and Sub Item var defaultItem = getRefvalue(location.href, "Item="); var defaultSub = getRefvalue(location.href, "Sub="); if (defaultItem != "" && !isNaN(defaultItem)) { var tmpn = parseInt(defaultItem) - 1; selectMainItem(objItem1[tmpn], tmpn, objItem1, objItem2, nameMainItem1, nameMainItem2, nameSubItem, classMainItemSelect1, classMainItemUnselect1, classMainItemSelect2, classMainItemUnselect2, classSubItemSelect, classSubItemUnselect); if (defaultSub != "" && !isNaN(defaultSub)) { var subn = parseInt(defaultSub) - 1; selectSubItem(objItem1[tmpn], tmpn + "," + subn, objItem1, objItem2, nameMainItem1, nameMainItem2, nameSubItem, classMainItemSelect1, classMainItemUnselect1, classMainItemSelect2, classMainItemUnselect2, classSubItemSelect, classSubItemUnselect) } } else { selectMainItem(objItem1[0], 0, objItem1, objItem2, nameMainItem1, nameMainItem2, nameSubItem, classMainItemSelect1, classMainItemUnselect1, classMainItemSelect2, classMainItemUnselect2, classSubItemSelect, classSubItemUnselect); } } function selectMainItem(obj, num, objItem1, objItem2, nameMainItem1, nameMainItem2, nameSubItem, classMainItemSelect1, classMainItemUnselect1, classMainItemSelect2, classMainItemUnselect2, classSubItemSelect, classSubItemUnselect) { var agbln = (objItem1.length == objItem2.length); for (var i = 0; i < objItem1.length; i++) { if (i != num) { objItem1[i].className = classMainItemUnselect1; if (agbln) { objItem2[i].className = classMainItemUnselect2; } } } if (objItem1[num].className == classMainItemSelect1) { objItem1[num].className = classMainItemUnselect1; if (agbln) { objItem2[num].className = classMainItemUnselect2; } } else { if (agbln) { var objSub = fixedGetElementsByName(objItem2[num], "div", nameSubItem); if (constN != num) for (var j = 0; j < objSub.length; j++) { if (objSub[j].className == classSubItemSelect) { objSub[j].className = classSubItemUnselect } } objItem2[num].className = classMainItemSelect2; } objItem1[num].className = classMainItemSelect1; } constN = num; } function selectSubItem(obj, num, objItem1, objItem2, nameMainItem1, nameMainItem2, nameSubItem, classMainItemSelect1, classMainItemUnselect1, classMainItemSelect2, classMainItemUnselect2, classSubItemSelect, classSubItemUnselect) { var arrn = num.split(","); var objClass = fixedGetElementsByName(document, "div", nameMainItem2); var objSub = fixedGetElementsByName(objClass[arrn[0]], "div", nameSubItem); for (var i = 0; i < objSub.length; i++) { if (i != arrn[1]) { objSub[i].className = classSubItemUnselect; } } if (objSub[arrn[1]]) { objSub[arrn[1]].className = classSubItemSelect; } } function fnTab(nameTabMenu, nameTabContent, classMenuSelect, classMenuUnselect, classContentSelect, classContentUnselect) { var objTabMenu = fixedGetElementsByName(document, "p", nameTabMenu); if (!objTabMenu) { var objTabMenu = fixedGetElementsByName(document, "div", nameTabMenu); } if (!objTabMenu) { var objTabMenu = fixedGetElementsByName(document, "table", nameTabMenu); } var objTabContent = fixedGetElementsByName(document, "table", nameTabContent); if (!objTabContent) { var objTabContent = fixedGetElementsByName(document, "div", nameTabContent); } if (!objTabContent) { var objTabContent = fixedGetElementsByName(document, "p", nameTabContent); } if (!objTabMenu) return false; for (var i = 0; i < objTabMenu.length; i++) { objTabMenu[i].value = i; objTabMenu[i].onclick = function() { selectTab(this, this.value, objTabMenu, objTabContent, nameTabMenu, nameTabContent, classMenuSelect, classMenuUnselect, classContentSelect, classContentUnselect) }; } //Set default tab var defaultTab = getRefvalue(location.href, "Tab="); if (defaultTab != "" && !isNaN(defaultTab)) { var tmpn = parseInt(defaultTab) - 1; selectTab(objTabMenu[tmpn], tmpn, objTabMenu, objTabContent, nameTabMenu, nameTabContent, classMenuSelect, classMenuUnselect, classContentSelect, classContentUnselect) } else { selectTab(objTabMenu[0], 0, objTabMenu, objTabContent, nameTabMenu, nameTabContent, classMenuSelect, classMenuUnselect, classContentSelect, classContentUnselect) } } function selectTab(obj, num, objTabMenu, objTabContent, nameTabMenu, nameTabContent, classMenuSelect, classMenuUnselect, classContentSelect, classContentUnselect) { var agbln = (objTabMenu.length == objTabContent.length); if (objTabMenu[num] && objTabMenu[num].className == classMenuSelect) return true; for (var i = 0; i < objTabMenu.length; i++) { if (i != num) { objTabMenu[i].className = classMenuUnselect; if (agbln) { objTabContent[i].className = classContentUnselect } } } objTabMenu[num].className = classMenuSelect; if (agbln) { objTabContent[num].className = classContentSelect } } function fnOpenFrame(frameID, strDefaultUrl) { var strFrameUrl = strDefaultUrl; if (strFrameUrl == "") strFrameUrl = getRefvalue(location.href, "frame="); if (strFrameUrl != "" && document.getElementById(frameID)) { document.getElementById(frameID).contentWindow.location.replace(strFrameUrl); } } function fixedGetElementsByName(obj, tag, name) { var tagArr = obj.getElementsByTagName(tag); var elements = []; var j = 0; for (var i = 0; i < tagArr.length; i++) { var att = tagArr[i].getAttribute("name"); if (att == name) { elements[j] = tagArr[i]; j++; } } if (elements == "") { return false; } else { return elements; } } function getRefvalue(str1, key) { if (str1.toLowerCase().indexOf(key.toLowerCase()) < 0) return ""; var iPos = str1.toLowerCase().lastIndexOf(key.toLowerCase()); var tmpstr = str1.substring(iPos + key.length, str1.length); if (tmpstr.indexOf("&") > 0) tmpstr = tmpstr.substring(0, tmpstr.indexOf("&")); return (tmpstr); }