menu

/*Common Code*/


function createXmlDom(E) {
if (window.ActiveXObject) {
var B = ["MSXML2.DOMDocument.5.0", "MSXML2.DOMDocument.4.0", "MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument", "Microsoft.XmlDom"];
for (var D = 0; D < B.length; D++) {
try {
var A = new ActiveXObject(B[D]);
if (E) A.loadXML(E);
return A;
} catch (C) {}
}
throw new Error("MSXML is not installed on your system.")
} else if (document.implementation && document.implementation.createDocument) {
A = document.implementation.createDocument("", "", null);
A.parseError = {
valueOf: function() {
return this.errorCode
},
toString: function() {
return this.errorCode.toString()
}
};
//A.__initError__();
A.addEventListener("load", function() {
this.__checkForErrors__();
this.__changeReadyState__(4)
}, false);
var oParser = new DOMParser(); 
if (E) {
A = oParser.parseFromString(E,"text/xml"); 
}
return A;
} else throw new Error("Your browser doesn't support an XML DOM object.")
}


/*Common Code end.....*/


var dataset =[];
var lastSelectedMenu = null;
function getDataSet(A){
var B = createXmlDom(A.innerHTML);
//B.loadXML(A.innerHTML);
var D = B.firstChild.firstChild.childNodes;
if (D.length == 1) {
var E = D[0].getAttribute("__isNullOrEmpty");
if (E == "empty" || E == "null") return;
}
for (var A = 0; A < D.length; A++) {
var B = D[A];
if (!B.tagName) continue;
var item = {};
var menulabel,menulevel,menuseq,subcount,isleaf,funccode,appid,menuid,menuaction,parentsid;


menulabel = B.getElementsByTagName("menulabel")[0].text;
menulevel = B.getElementsByTagName("menulevel")[0].text;
//menuseq = B.getElementsByTagName("menuseq")[0].text;
subcount = B.getElementsByTagName("subcount")[0].text;
isleaf = B.getElementsByTagName("isleaf")[0].text;
funccode = B.getElementsByTagName("funccode")[0].text;
menuid = B.getElementsByTagName("menuid")[0].text;
appid = B.getElementsByTagName("appid")[0].text;
menuaction = B.getElementsByTagName("menuaction")[0].text;
parentsid = B.getElementsByTagName("PARENTSID")[0].text;




item.menulabel = menulabel;
item.menulevel = menulevel;
//item.menuseq = menuseq;
item.subcount = subcount;
item.isleaf = isleaf;
item.funccode = funccode;
item.appid = appid;
item.menuid = menuid;
item.menuaction = menuaction;
item.parentsid = parentsid;


dataset.push(item);


}
}


function init(){
window.getDataSet(document.getElementById("menutree_menu"));
buildMenuTree();
//jsScroll(document.getElementById('divscroll'), 8, 'divScrollBar');
}


function buildMenuTree(){
var roots = getRootMenus();
var _HTML = "<ul class='root'>";
for(var i=0;i<roots.length;i++){
_HTML += "<li><div class='rootmenu' >" + roots[i].menulabel + "</div>" ;
_HTML += "<ul style='display:none'>";
_HTML += buildSubMenus(roots[i]);
_HTML += "</ul>";
_HTML += "</li>"
}
_HTML += "</ul>";
document.getElementById("divMenu").innerHTML = _HTML;
}


function getRootMenus(){
var list = [];
for(var i=0;i<dataset.length;i++){
if(dataset[i].menulevel == "1"){
list.push(dataset[i]);
}
}
return list;
}


function buildSubMenus(pnode){
var _HTML = "";
var parentsid  = pnode.menuid;
var list = getSubMenus(parentsid);
for(var i=0;i<list.length;i++){
var node = list[i];
if(node.isleaf=="y"){
_HTML += "<li><div class='leaf' id=menu" + node.menuid+ " nid='" + node.menuid + "'><span class='none'>";
if(node.menuaction == ""){
_HTML += "<span class='empty'>×</span>";
}
_HTML += "</span>" + node.menulabel + "<span class='favor'/></span></li>"
}else{
_HTML += "<li><div class='folder'><span class='opened'></span>" + node.menulabel + "</div>";
_HTML += "<ul>"
_HTML += buildSubMenus(node);
_HTML += "</ul>";
_HTML += "</li>";
}
}
return _HTML;
}


function getSubMenus(pid){
var list = [];
for(var i=0;i<dataset.length;i++){
if(dataset[i].parentsid == pid){
list.push(dataset[i]);
}
}
return list;
}
function getMenuNode(nid){
var node = null;
for(var i=0;i<dataset.length;i++){
if(dataset[i].menuid == nid){
node = dataset[i];
break;
}
}
return node;
}


function menuControlClick(){
var sub = window.event.srcElement ;
if(sub.className && (sub.className.indexOf("rootmenu") >= 0
|| sub.className.indexOf("folder") >= 0
|| sub.className.indexOf("opened") >= 0
|| sub.className.indexOf("closed") >= 0
)){
if( sub.className.indexOf("opened") >= 0
|| sub.className.indexOf("closed") >= 0){
sub = sub.parentElement;
}
var ul = sub.parentElement.children[1];
if(ul.tagName.toLowerCase() == "ul"){
if(ul.style.display != "none"){
ul.style.display = "none";
if(sub.className.indexOf("folder") >=0){
sub.children[0].className = "closed";
}
}else{
ul.style.display = "";
if(sub.className.indexOf("folder") >=0){
sub.children[0].className = "opened";
}
}
}
}else if(sub.className.indexOf("leaf") >= 0){
menuClick(sub);
}else if(sub.className.indexOf("favor") >=0 ){
favorClick(sub);
}


}


function menuClick(sub){
var nid = sub.getAttribute("nid");
var node = getMenuNode(nid);
if(node == null)
return;
var target = 'bodyFrame';
var url = node.menuaction;
var appid = node.appid;
var appname = node.menulabel;
var menuid  = node.menuid;


if(lastSelectedMenu != null){
lastSelectedMenu.className = lastSelectedMenu.className.replace(/ selected/,"");
}
sub.className += " selected";
lastSelectedMenu = sub;


if(url!=null){
if(url.indexOf('?')==-1)
url+='?';
else
url+="&";
url+="MENU_ID="+menuid;
parent.frames[target].location=getpath()+"/"+url;
}
}


function favorClick(sub){
if(sub.className.indexOf(" selected") < 0){
sub.className += " selected";
}else{
sub.className = sub.className.replace(/ selected/,"");
}
}


function STree(){
this.addDataset = function(){};
this.addRelation = function(){};
this.addEntityInfo = function(){};
this.init = function(){};
}
window.$id = window.document.getElementById;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值