182 lines
4.9 KiB
JavaScript
182 lines
4.9 KiB
JavaScript
/*
|
|
* 노드 , 트리 구성 정보 선언
|
|
*/
|
|
var treeNodes = new Array();;
|
|
var openTreeNodes = new Array();
|
|
var treeIcons = new Array(6);
|
|
var imgpath = "/images/egovframework/com/cmm/utl/";
|
|
var treeYeobu = false;
|
|
var chkValue = "";
|
|
var vHtmlCode = "";
|
|
|
|
/*
|
|
* 노드 , 트리 구성 이미지 정보
|
|
*/
|
|
function preloadIcons() {
|
|
treeIcons[0] = new Image();
|
|
treeIcons[0].src = imgpath+"menu_plus.gif";
|
|
treeIcons[1] = new Image();
|
|
treeIcons[1].src = imgpath+"menu_plusbottom.gif";
|
|
treeIcons[2] = new Image();
|
|
treeIcons[2].src = imgpath+"menu_minus.gif";
|
|
treeIcons[3] = new Image();
|
|
treeIcons[3].src = imgpath+"menu_minusbottom.gif";
|
|
treeIcons[4] = new Image();
|
|
treeIcons[4].src = imgpath+"menu_folder.gif";
|
|
treeIcons[5] = new Image();
|
|
treeIcons[5].src = imgpath+"menu_folderopen.gif";
|
|
}
|
|
/*
|
|
* 트리생성함수
|
|
*/
|
|
function createTree(arrName, vYeobu, checkValue) {
|
|
var startNode, openNode;
|
|
treeNodes = arrName;
|
|
treeYeobu = vYeobu;
|
|
chkValue = checkValue;//"2000000"
|
|
startNode = chkValue;
|
|
if (treeNodes.length > 0) {
|
|
preloadIcons();
|
|
if (startNode == null) startNode = 0;
|
|
if (openNode != 0 || openNode != null) setOpenTreeNodes(openNode);
|
|
if (startNode !=0) {
|
|
var _getTreeArrayId = getTreeArrayId(startNode)
|
|
var nodeValues = treeNodes[getTreeArrayId(startNode)].split("|");
|
|
} else {
|
|
}
|
|
var recursedNodes = new Array();
|
|
addTreeNode(startNode, recursedNodes);
|
|
document.write(vHtmlCode);
|
|
}
|
|
}
|
|
/*
|
|
* 노드위치 확인
|
|
*/
|
|
function getTreeArrayId(node) {
|
|
for (i=0; i<treeNodes.length; i++) {
|
|
var nodeValues = treeNodes[i].split("|");
|
|
if (nodeValues[0]==node) return i;
|
|
}
|
|
return 0;
|
|
}
|
|
/*
|
|
* 트리 노드 열기
|
|
*/
|
|
function setOpenTreeNodes(openNode) {
|
|
for (i=0; i<treeNodes.length; i++) {
|
|
var nodeValues = treeNodes[i].split("|");
|
|
if (nodeValues[0]==openNode) {
|
|
openTreeNodes.push(nodeValues[0]);
|
|
setOpenTreeNodes(nodeValues[1]);
|
|
}
|
|
}
|
|
}
|
|
/*
|
|
* 트리노드 오픈 여부 확인
|
|
*/
|
|
function isTreeNodeOpen(node) {
|
|
if (treeYeobu){ return true; }
|
|
for (i=0; i<openTreeNodes.length; i++){
|
|
if (openTreeNodes[i]==node){ return true; }
|
|
}
|
|
return false;
|
|
}
|
|
/*
|
|
* 하위 트리노드 존재여부 확인
|
|
*/
|
|
function hasChildTreeNode(parentNode) {
|
|
for (i=0; i< treeNodes.length; i++) {
|
|
var nodeValues = treeNodes[i].split("|");
|
|
if (nodeValues[1] == parentNode) return true;
|
|
}
|
|
return false;
|
|
}
|
|
/*
|
|
* 트리노드 최하위 여부 확인
|
|
*/
|
|
function lastTreeSibling (node, parentNode) {
|
|
var lastChild = 0;
|
|
for (i=0; i< treeNodes.length; i++) {
|
|
var nodeValues = treeNodes[i].split("|");
|
|
if (nodeValues[1] == parentNode)
|
|
lastChild = nodeValues[0];
|
|
}
|
|
if (lastChild==node) return true;
|
|
return false;
|
|
}
|
|
/*
|
|
* 신규 트리노드 추가
|
|
*/
|
|
function addTreeNode(parentNode, recursedNodes) {
|
|
|
|
for (var i = 0; i < treeNodes.length; i++) {
|
|
|
|
var nodeValues = treeNodes[i].split("|");
|
|
if (nodeValues[1] == parentNode) {
|
|
|
|
var lastSibling = lastTreeSibling(nodeValues[0], nodeValues[1]);
|
|
var hasChildNode = hasChildTreeNode(nodeValues[0]);
|
|
var isNodeOpen = isTreeNodeOpen(nodeValues[0]);
|
|
vHtmlCodeBg ="<li class='left_li1'>";
|
|
vHtmlCodeBgList ="<li class='left_sub_li'>";
|
|
|
|
vHtmlCodeEmpty = "";
|
|
// Write out line | empty treeIcons
|
|
for (g=0; g<recursedNodes.length; g++) {
|
|
vHtmlCodeEmpty +="<img src='"+imgpath+"menu_empty.gif' border='0' align='absbottom' alt='' >";
|
|
}
|
|
|
|
if (lastSibling) recursedNodes.push(0);
|
|
else recursedNodes.push(1);
|
|
|
|
if (hasChildNode) {
|
|
vHtmlCode +="<div class='body_top_head'>"+"<a href='#'>"+nodeValues[2]+"</a>";
|
|
} else{
|
|
// Start link
|
|
if(recursedNodes.length==1){
|
|
vHtmlCode +="<div class='body_top_head' style='background:none;'>"+"<a id='body_top_head_"+i+"' href=javascript:fn_MovePage('" + i + "');>"+nodeValues[2]+"</a>";
|
|
//vHtmlCode +=vHtmlCodeBg+"<a href=javascript:fn_MovePage('" + i + "');>"+nodeValues[2]+"</a></li>";
|
|
}else{
|
|
if(sessionStorage.getItem("leftItemNo") == nodeValues[0]){
|
|
vHtmlCode +="<li><a id='leftSelLink' href=\"#\" onclick=\"fn_MovePage('" + i + "');\">"+nodeValues[2]+"</a></li>";
|
|
}else{
|
|
vHtmlCode +="<li><a href=\"#\" onclick=\"fn_MovePage('" + i + "');\">"+nodeValues[2]+"</a></li>";
|
|
//vHtmlCode +="<li><a href=\"#\">ddd</a></li>";
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
if (hasChildNode) {
|
|
vHtmlCode +="</div>";
|
|
vHtmlCode +="<ul class='left_ul'>";
|
|
addTreeNode(nodeValues[0], recursedNodes);
|
|
vHtmlCode +="</ul>";
|
|
}else{
|
|
if(recursedNodes.length==1){
|
|
vHtmlCode +="</div>";
|
|
}
|
|
}
|
|
recursedNodes.pop();
|
|
}
|
|
}
|
|
}
|
|
|
|
if(!Array.prototype.push) {
|
|
function fnArrayPush() {
|
|
for(var i=0;i<arguments.length;i++)
|
|
this[this.length]=arguments[i];
|
|
return this.length;
|
|
}
|
|
Array.prototype.push = fnArrayPush;
|
|
}
|
|
if(!Array.prototype.pop) {
|
|
function fnArrayPop(){
|
|
lastElement = this[this.length-1];
|
|
this.length = Math.max(this.length-1,0);
|
|
return lastElement;
|
|
}
|
|
Array.prototype.pop = fnArrayPop;
|
|
}
|
|
|