﻿var varImageUrl = "/";
function Folder(folderDescription, hreference,folderTreeId,noneExpand) 
{
  this.desc = folderDescription;
  this.fTreeId = folderTreeId; 
  this.hreference = hreference;
  this.id = -1;
  this.navObj = 0;
  this.iconImg = 0;
  this.nodeImg = 0;
  this.isLastNode = 0;
  this.isOpen = true;
  this.iconSrc = varImageUrl+"images/expanded.gif";
  this.children = new Array;
  this.nChildren = 0;
  this.initialize = initializeFolder;
  this.setState = setStateFolder;
  this.addChild = addChild;
  this.createIndex = createEntryIndex;
  this.hide = hideFolder;
  this.display = display;
  this.renderOb = drawFolder;
  this.totalHeight = totalHeight;
  this.subEntries = folderSubEntries;
  this.outputLink = outputFolderLink;
  this.opennodeicon=varImageUrl+"images/expanded.gif";
  this.closenodeicon=varImageUrl+"images/collapsed.gif";
  this.noneExpand=noneExpand;
}
function setStateFolder(isOpen) {
  var subEntries;
  var totalHeight;
  var fIt = 0;
  var i=0;
  if (isOpen == this.isOpen) { return; }
  if (browserVersion == 2) {
    totalHeight = 0;
    for (i=0; i < this.nChildren; i++) totalHeight = totalHeight + this.children[i].navObj.clip.height;
    subEntries = this.subEntries();
    if (this.isOpen) totalHeight = 0 - totalHeight;
    for (fIt = this.id + subEntries + 1; fIt < nEntries; fIt++) indexOfEntries[fIt].navObj.moveBy(0, totalHeight);
  }
  this.isOpen = isOpen;
  propagateChangesInState(this);
}
function propagateChangesInState(folder) {
	openicon=varImageUrl+"images/expanded.gif";
	closeicon=varImageUrl+"images/collapsed.gif"
  var i=0;  
  if (folder.isOpen) 
  {
  if(!folder.noneExpand)
  {
    if (folder.nodeImg)
    {
      if (folder.isLastNode)
      {
		folder.nodeImg.src = openicon;
	  }
      else
      {
		folder.nodeImg.src = this.openicon;
	  }
	}
	
    folder.iconImg.src = varImageUrl+"images/expanded.gif";
   
    for (i=0; i<folder.nChildren; i++) folder.children[i].display();
    }
  }
   else 
   {
    if (folder.nodeImg)
    {
		if (folder.isLastNode)
		{
			folder.nodeImg.src = closeicon;
		}
		else
		{
			folder.nodeImg.src = closeicon;
		}
     }     
    folder.iconImg.src = varImageUrl+"images/collapsed.gif";
    for (i=0; i<folder.nChildren; i++) folder.children[i].hide();
  }
}
function hideFolder() 
{
  if (browserVersion == 1) 
  {
    if (this.navObj.style.display == "none") 
		return;
    this.navObj.style.display = "none";
  } 
  else 
  {
    if (this.navObj.visibility == "hiden")
		return;
    this.navObj.visibility = "hiden";
  }
  this.setState(0);
}

function initializeFolder(level, lastNode, leftSide) 
{
  var j=0;
  var i=0;
  var numberOfFolders;
  var numberOfDocs;
  var nc;
  nc = this.nChildren;
  
  this.createIndex();
  
  var auxEv = "";
  
  if (browserVersion > 0) auxEv = "<a href='javascript:clickOnNode("+this.id+")' class='linkLeft'>";
  else auxEv = "</a>";
  if (browserVersion > 0) auxEv = "<a href='javascript:clickOnNode("+this.id+")' id=\"linkLeft"+this.fTreeId+"\" class=\"linkLeft\">";
  else auxEv = "<a>";
  if (level>0) 
  {
    if (lastNode) 
    {
      this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='"+varImageUrl+"images/expanded.gif' width='10' height='10' border='0'></a>");
      leftSide = leftSide + "<img src='"+varImageUrl+"images/mblank.gif' alt='img2'  width='0' height='0'>";
      this.isLastNode = 1;
    } 
    else 
    {
      this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='"+varImageUrl+"images/expanded.gif' width='10' height='10' border='0'></a>");
      leftSide = leftSide + "<img src='"+varImageUrl+"images/mvertline.gif' alt='img0' width='0' height='0'>";
      this.isLastNode = 0;
    }
  } 
  else this.renderOb("");
  
  if (nc > 0) 
  {
    level = level + 1;
    for (i=0 ; i < this.nChildren; i++) 
    {
      if (i == this.nChildren-1) this.children[i].initialize(level, 1, leftSide);
      else this.children[i].initialize(level, 0, leftSide);
      this.children[i].display();
    }
  }
 
}
function drawFolder(leftSide) {

  if (browserVersion == 2) {
    if (!doc.yPos) doc.yPos=8;
    doc.write("<layer class='folder' id='folder"+this.id+"' top="+doc.yPos+" visibility='hiden' style='position:block;BACKGROUND: #eae8e8 ;FONT-WEIGHT: normal; FONT-SIZE: 10pt; BACKGROUND: url("+varImageUrl+"images/title.gif) #fff repeat-x; PADDING-BOTTOM: 5px; COLOR: #5d5d5d; PADDING-TOP: 5px; FONT-FAMILY: Arial, Helvetica, sans-serif; LETTER-SPACING: 3px'>\n");
  }
  doc.write("<table ");
  if (browserVersion == 1) doc.write(" id='folder"+this.id +"' style='position:block' ");
  doc.write(" border='0' cellspacing='0' cellpadding='0'>\n");
  
  if(this.hreference!="")
  {
	this.desc='<a href=\"'+this.hreference+'\" target=\"_self\" class=\"arrow1\">'+this.desc+'</a>';
  }
  
  if(this.id==1)
  {
  	 doc.write("<tr id='tr"+this.fTreeId+"'> \n");
	 doc.write(" <td colspan='2' id='"+this.fTreeId+"' style=\"cursor:text;\" class='sdmenu2' width='150' height='25' onclick='javascript:clickOnNode("+this.id+")' valign=middle nowrap bgcolor=\"#eae8e8\" \n>");
	 doc.write("&nbsp;<img name='folderIcon"+this.id+ "' ");
	 doc.write("src='"+varImageUrl+"images/mm_spacer.gif' border=0 style='margin:0 2px 0 0;'>&nbsp;");
	 
	 doc.write(this.desc);
	 doc.write("</td></tr>\n");
  }
  else
  {
	 doc.write("<tr id='tr"+this.fTreeId+"'><td id=\"td_img"+this.fTreeId+"\" align=\"center\" width=\"28\" class=\"sdmenuLeft1\" >\n");
	 doc.write(leftSide+"\n");
	 this.outputLink();
	 doc.write("<div style=\"display:none\"><img name=\"folderIcon"+this.id + "\" src=\"/images/mm_spacer.gif\" border=\"0\">&nbsp;</div> \n");
	 doc.write("</td><td id='"+this.fTreeId+"' style=\"cursor:text;\" class='sdmenu1' width='122' height='25' onclick='javascript:clickOnNode("+this.id+")' valign=middle nowrap bgcolor=\"#eae8e8\" \n>");
	 doc.write(this.desc);
	 doc.write("</td></tr>\n");
  }
  doc.write("</table>\n");
  if (browserVersion == 2) { doc.write("</layer>\n"); }
  if (browserVersion == 1) {
    this.navObj = doc.all["folder"+this.id];
    this.iconImg = doc.all["folderIcon"+this.id];
    this.nodeImg = doc.all["nodeIcon"+this.id];
  } else if (browserVersion == 2) {
    this.navObj = doc.layers["folder"+this.id];
    this.iconImg = this.navObj.document.images["folderIcon"+this.id];
    this.nodeImg = this.navObj.document.images["nodeIcon"+this.id];
    doc.yPos=doc.yPos+this.navObj.clip.height;
  }
}

function getAllSecondlayer(strLayers)
{
	var sLayer = strLayers.split(',');
	for(var cnt= 0; cnt < sLayer.length;cnt ++)
	{
		if(sLayer[cnt])
		{
			var firstLayer = document.getElementById("tr"+sLayer[cnt]);
			firstLayer.deleteCell(0);
			var layer = document.getElementById(sLayer[cnt]);
			layer.colSpan="2";
			layer.className = "layer";
			layer.width = "150px";
		}		
	}
}
function hideAllFolder()
{
	var menu = getElementsByClassName("sdmenu", "div", document)[0];	
}
function outputFolderLink() {
  if (this.hreference) {
    doc.write("<a href='" + this.hreference + "'");
    if (browserVersion > 0) doc.write("onClick='javascript:clickOnFolder("+this.id+")'");
    doc.write(">\n");
  } else doc.write("<a>\n");
}
function addChild(childNode) {
  this.children[this.nChildren] = childNode;
  this.nChildren++;
  return childNode;
}
function folderSubEntries() {
  var i = 0;
  var se = this.nChildren;
  for (i=0; i < this.nChildren; i++) {
    if (this.children[i].children) se = se + this.children[i].subEntries();
  }
  return se;
}
function Item(itemDescription, itemLink, classifydata) { 
  this.desc = itemDescription;
  this.link = itemLink;
  this.id = -1;
  this.navObj = 0;
  this.iconImg = 0;
  this.iconSrc = varImageUrl+"images/mdoc.gif";
  this.initialize = initializeItem;
  this.createIndex = createEntryIndex;
  this.hide = hideItem;
  this.display = display;
  this.renderOb = drawItem;
  this.totalHeight = totalHeight;
  this.itemID = classifydata;
}
function hideItem() {
  if (browserVersion == 1) {
    if (this.navObj.style.display == "none") return;
    this.navObj.style.display = "none";
  } else {
    if (this.navObj.visibility == "hiden") return;
    this.navObj.visibility = "hiden";
  }
}

function initializeItem(level, lastNode, leftSide) {
  this.createIndex();
  if (level>0) {
    if (lastNode) {
      this.renderOb(leftSide + "");
      leftSide = leftSide + "";
    } else {
     
      this.renderOb(leftSide + "");
      leftSide = leftSide + "";
    }
  } else this.renderOb("");
}
function drawItem(leftSide) {
  if (browserVersion == 2) doc.write("<layer id='item" + this.id + "' top=" + doc.yPos + " visibility=hiden>\n");
  doc.write("<table ");
  if (browserVersion == 1) doc.write(" id='item" + this.id + "' class='sdmenu' ");
  doc.write(" border='0' cellspacing='0' cellpadding='0'>\n");
  doc.write("<tr rowSpan='2'>");
  doc.write("<td id='"+this.itemID+"' colspan='2' valign='middle nowrap' width='150' align='left' class='submenu' >\n");
  doc.write("<a href=" + this.link + " >"+this.desc+"</a></td></tr>");
  doc.write("</table>\n");

  if (browserVersion == 1) {
	 this.navObj = doc.all["item"+this.id];
	 this.iconImg = doc.all["itemIcon"+this.id];
  } else if (browserVersion == 2) {
    this.navObj = doc.layers["item"+this.id];
    this.iconImg = this.navObj.document.images["itemIcon"+this.id];
    doc.yPos=doc.yPos+this.navObj.clip.height;
  }
}

function display() {
  if (browserVersion == 1) this.navObj.style.display = "block";
  else this.navObj.visibility = "show";
}
function createEntryIndex() {
  this.id = nEntries;
  indexOfEntries[nEntries] = this;
  nEntries++;
}
function totalHeight() {
  var h = this.navObj.clip.height;
  var i = 0;
  if (this.isOpen)
    for (i=0 ; i < this.nChildren; i++)
      h = h + this.children[i].totalHeight();
  return h;
}
function clickOnFolder(folderId) {
  var clicked = indexOfEntries[folderId];
  if (!clicked.isOpen) clickOnNode(folderId);
  return;
  if (clicked.isSelected) return;
}
function clickOnNode(folderId) {
  var clickedFolder = 0;
  var state = 0;
  clickedFolder = indexOfEntries[folderId];
  state = clickedFolder.isOpen;
  clickedFolder.setState(!state);
}
function initializeDocument() {
	if (doc.all)
	{
		browserVersion = 1;
	}
	else if (doc.layers)
	{
		browserVersion = 2;
	}
	else
	{
		browserVersion = 0;
	}
	//調整“展開/縮起選單位置”
	//zhangke Add -- Y70914
	CreateFirstLayer();
	foldersTree.initialize(0, 1, "");
	CreateLastLayer();
	if (browserVersion > 0) 
	{
		doc.write("<layer top="+indexOfEntries[nEntries-1].navObj.top+">&nbsp;</layer>\n");
	}
}

//zhangke Add -- Y70914
function CreateFirstLayer()
{
	doc.write("<table ");
	doc.write(" border=0 cellspacing=0 cellpadding=0 align=center>\n");
	doc.write("<tr height=\"30\" valign=\"middle\"><td align=\"center\"><A class=\"s1\" hideFocus=\"true\" href=\"javascript:ChangeMenu('display')\">展開選單</A>");
	doc.write("<A class=\"s1\" hideFocus=\"true\" href=\"javascript:ChangeMenu('hide')\">縮起選單</A>&nbsp;");	
	doc.write("</td></tr></table>\n");
}

//zhangke Modify -- Y70914
function CreateLastLayer()
{
  doc.write("<table ");
  doc.write(" border=0 cellspacing=0 cellpadding=0>\n");
  doc.write("<tr>\n");
  doc.write(" <td class='submenu3' width='150' valign=middle nowrap bgcolor=\"#eae8e8\" \n>");
  doc.write("<img ");
  doc.write("src='"+varImageUrl+"images/bottom.gif' border='0' height='10' width='150'>");
  doc.write("</td></tr>\n");
  doc.write("<tr><td>&nbsp;</td></tr>\n");
  doc.write("</table>\n");
 }
function gFld(description, hreference,folderTreeId,noneExpand) {
  folder = new Folder(description, hreference,folderTreeId,noneExpand);
  return folder;
}
function gLnk(target, description, linkData, classifydata) {
  fullLink = "";
  if (target==0) { fullLink = "'"+linkData+"' target=_self"; }
  else {
    if (target==1) fullLink = "'"+linkData+"' target=_blank";
    else fullLink = "'"+linkData+"' target=mail";
  }
  linkItem = new Item(description, fullLink, classifydata);
  return linkItem;
}
function insFld(parentFolder, childFolder) {
  return parentFolder.addChild(childFolder);
}
function insDoc(parentFolder, document) {
  parentFolder.addChild(document);
}

function AllHide(folder)
{
	for (i=0; i<folder.nChildren; i++)
	{
		if(folder.children[i].setState)
		{
			folder.children[i].setState(0)
		}
		for(j=0; j<folder.children[i].nChildren;j++)
		{
			if(folder.children[i].children[j].setState)
			{
				folder.children[i].children[j].setState(0);
			}
			folder.children[i].children[j].hide();
			for(var k=0;k<folder.children[i].children[j].nChildren;k++)
			{
				if(folder.children[i].children[j].children[k].setState)
				{
					folder.children[i].children[j].children[k].setState(0);
				}
				folder.children[i].children[j].children[k].hide();
			}
		}
	}
}

function AllDisplay(folder)
{
	for (var i=0; i<folder.nChildren; i++)
	{	
		folder.children[i].display();
		if(folder.children[i].setState)
		{
			folder.children[i].setState(1)
		}
		
		for(var j=0; j<folder.children[i].nChildren;j++)
		{
			if(folder.children[i].children[j].setState)
			{
				folder.children[i].children[j].setState(1);
			}
			folder.children[i].children[j].display();
			for(var k=0;k<folder.children[i].children[j].nChildren;k++)
			{
				if(folder.children[i].children[j].children[k].setState)
				{
					folder.children[i].children[j].children[k].setState(1);
				}
				folder.children[i].children[j].children[k].display();
			}
		}
	}
}

//初始化顯示層數
function InitDisplay(folder)
{
	for (var i=0; i<folder.nChildren; i++)
	{		
		folder.children[i].display();
		if(folder.children[i].setState)
		{
			folder.children[i].setState(1)
		}
		for(var j=0; j<folder.children[i].nChildren;j++)
		{
			if(folder.children[i].children[j].setState)
			{
				folder.children[i].children[j].setState(0);
			}
			folder.children[i].children[j].display();
			
			for(var k=0;k<folder.children[i].children[j].nChildren;k++)
			{
				if(folder.children[i].children[j].children[k].setState)
				{
					folder.children[i].children[j].children[k].setState(0);
				}
				folder.children[i].children[j].children[k].hide();
			}
		}
	}

}

function HideRootLayer(ClassifyData)
{
	switch(ClassifyData)
	{
		case "02386":
		case "02296":
		case "02297":
		case "02298":
		case "02368":
		case "02387":
		case "02608":
			var ClassData = document.getElementById("folder0");
			ClassData.deleteRow(0)
			
			break;
	}
}

function ShowCurrentItem(classifydata,parentid)
{
	var currentItem = document.getElementById(classifydata);
	
	if(IsProductParent(parentid))
	{
		currentItem.className = "submenuFolder";
		document.getElementById("td_img"+classifydata).className = "sdmenuLeft";
		document.getElementById("linkLeft"+classifydata).className = "linkLeft1";
		document.getElementById("linkLeft"+classifydata).innerHTML="<img src='/images/collapsed_white.gif' border=0>";
	}
	else
	{
		currentItem.className = "submenuItem";
	}
}

//判斷是否爲産品館六大類
function IsProductParent(parentid)
{
	var isparent = false;
	switch(parentid)
	{
		case "02386":
		case "02296":
		case "02297":
		case "02298":
		case "02368":
		case "02387":
		case "02608":
			isparent = true;
			break;
		default:
			isparent = false;
			break;
	}
	return isparent;
}

function ShowCurrentLayer(folder,strClassifyIDLayer,strParentLayer)
{
	if(strParentLayer.length >0)
	{
		AllHide(folder);
		var arrList = strParentLayer.split(',');
		for (var i=0; i<folder.nChildren; i++)
		{	
			if(folder.children[i].fTreeId == strClassifyIDLayer)
			{
				folder.children[i].display();
				folder.children[i].setState(1)
			}
			for(var j=0; j<folder.children[i].nChildren;j++)
			{	
				for(var s = 0;s<arrList.length;s++)
				{
					if(folder.children[i].children[j].fTreeId == arrList[s])
					{
						folder.children[i].children[j].display();
						if(folder.children[i].children[j].fTreeId == strClassifyIDLayer)
						{
							folder.children[i].children[j].setState(1);
						}
					}
				}
			}
		}
	}
	else
	{
		AllHide(folder);
		for (var i=0; i<folder.nChildren; i++)
		{
			if(folder.children[i].fTreeId == strClassifyIDLayer)
			{
				folder.children[i].display();
				folder.children[i].setState(1)
			}
		}
	}
}
