var AppPath='http://www.prizebonds.ie/'
var foldersTree

function generateTree() { 
var aux1; var aux2; var aux3; var aux4; var aux5; var aux6; var aux7

foldersTree = folderNode('AnPost',1)
aux1 = appendChild(foldersTree, leafNode('Winners',1,0,0,'AnPost','http://www.prizebonds.ie/winning/index.html','http://www.prizebonds.ie/images/winners.gif','Y',0))
aux2=appendChild(aux1, leafNode('Search',1,0,1,'Winners','http://www.prizebonds.ie/winning/winning.html','null','Y',0))
aux3=appendChild(aux2, leafNode('Search Winning',0,0,1,'Search','http://www.prizebonds.ie/winning/winning.asp','null','Y',0))
aux2=appendChild(aux1, leafNode('Most Recent',1,0,1,'Winners','http://www.prizebonds.ie/winning/recent.asp','null','Y',0))
aux2=appendChild(aux1, leafNode('Previous',1,0,1,'Winners','http://www.prizebonds.ie/winning/previous.asp','null','Y',0))

aux3=appendChild(aux2, leafNode('Archive',0,0,1,'Previous','http://www.prizebonds.ie/winning/archive.asp','null','Y',0))
aux2=appendChild(aux1, leafNode('Monthly Prize',1,0,1,'Winners','http://www.prizebonds.ie/winning/jackpot.asp','null','Y',0))
aux2=appendChild(aux1, leafNode('Unclaimed Prizes',1,0,1,'Winners','http://www.prizebonds.ie/winning/unclaimed.html','null','Y',0))
aux3=appendChild(aux2, leafNode('All Unclaimed Prizes ',0,0,1,'Winners','http://www.prizebonds.ie/winning/unclaimed_all.asp','null','Y',0))
aux3=appendChild(aux2, leafNode('Search Unclaimed',0,0,1,'Unclaimed prizes','http://www.prizebonds.ie/winning/unclaimed.asp','null','Y',0))
aux1 = appendChild(foldersTree, leafNode('How to Purchase',1,0,0,'AnPost','https://www.prizebonds.ie/online/purchasing/index.html','http://www.prizebonds.ie/images/howtopurchase.gif','Y',0))
aux2=appendChild(aux1, leafNode('Online',1,0,1,'How to purchase','https://www.prizebonds.ie/online/purchasing/online.html','null','Y',0))
aux3=appendChild(aux2, leafNode('OrderSubmitted',0,0,1,'Online','https://www.prizebonds.ie/online/purchasing/ordersubmitted.asp','null','Y',0))
aux2=appendChild(aux1, leafNode('Offline',1,0,1,'How to purchase','https://www.prizebonds.ie/online/purchasing/buyoffline.html','null','Y',0))
aux3=appendChild(aux2, leafNode('Agents',0,0,1,'Offline','https://www.prizebonds.ie/online/purchasing/bankagents.html','null','Y',0))
aux1 = appendChild(foldersTree, leafNode('Bond Tracker',1,0,0,'AnPost','https://www.prizebonds.ie/online/register/num.asp','http://www.prizebonds.ie/images/bondtracker.gif','Y',0))
aux2=appendChild(aux1, leafNode('Your Numbers',1,0,1,'Bond Tracker','https://www.prizebonds.ie/online/register/num.asp','null','Y',0))
aux3=appendChild(aux2, leafNode('Maintain Numbers',0,0,1,'Your Numbers','https://www.prizebonds.ie/online/register/maintain.asp','null','Y',0))
aux2=appendChild(aux1, leafNode('Your Profile',1,0,1,'Bond Tracker','https://www.prizebonds.ie/online/register/profile.asp','null','Y',0))
aux2=appendChild(aux1, leafNode('Check Winning Numbers',1,0,1,'Bond Tracker','https://www.prizebonds.ie/online/register/numbers_win.asp','null','Y',0))
aux2=appendChild(aux1, leafNode('Check Unclaimed Prizes',1,0,1,'Bond Tracker','https://www.prizebonds.ie/online/register/numbers_unclaimed.asp','null','Y',0))
aux2=appendChild(aux1, leafNode('Logout',1,0,1,'Bond Tracker','https://www.prizebonds.ie/online/register/logout.asp','null','Y',0))
aux1 = appendChild(foldersTree, leafNode('Prize Bond Draw',1,0,0,'AnPost','http://www.prizebonds.ie/livedraw/drawoptions.html','http://www.prizebonds.ie/images/livedraw.gif','Y',0))
aux1 = appendChild(foldersTree, leafNode('Frequently Asked Questions',1,0,0,'AnPost','http://www.prizebonds.ie/about/faqs.html','http://www.prizebonds.ie/images/faq.gif','Y',0))
aux1 = appendChild(foldersTree, leafNode('Why Prize Bonds?',1,0,0,'AnPost','http://www.prizebonds.ie/about/index.html','http://www.prizebonds.ie/images/whyprizebonds.gif','Y',0))
aux2=appendChild(aux1, leafNode('Prizes',1,0,1,'Why Prize Bonds?','http://www.prizebonds.ie/about/prizes.html','null','Y',0))
aux2=appendChild(aux1, leafNode('Investment',1,0,1,'Why Prize Bonds?','http://www.prizebonds.ie/about/invest.html','null','Y',0))
aux2=appendChild(aux1, leafNode('Gift',1,0,1,'Why Prize Bonds?','http://www.prizebonds.ie/about/gift.html','null','Y',0))
aux1 = appendChild(foldersTree, leafNode('Corporate Information',1,0,0,'AnPost','http://www.prizebonds.ie/corpinfo.html','http://www.prizebonds.ie/images/corpinformation.gif','Y',0))
//aux1 = appendChild(foldersTree, leafNode('Prize Bonds Promotion',1,0,0,'AnPost','http://www.prizebonds.ie/promotion/promotion.html','http://www.prizebonds.ie/images/promotion.gif','Y',0))
aux1 = appendChild(foldersTree, leafNode('Press Releases',1,0,0,'AnPost','http://www.prizebonds.ie/pressrelease.html','https://www.prizebonds.ie/images/press_releases.gif','Y',0))

}



//InNode[0]=name
//InNode[1]=menu/page/header			
//InNode[2]=open/close
//InNode[3]=level
//InNode[4]=parent
//InNode[5]=link
//InNode[6]=menu gif/header divider gif
//InNode[7]=enabled
//InNode[8]=Header id
//InNode[9]=child


var pageURL; var menuName; var found=false;
var UpDir=""; 
var HeadSpace="";

generateTree()
//When using absolute URL's uncomment the next line and comment out the following 2 lines
GetBranch(document.URL)
//pageURL=ParseUrl(document.URL)
//GetBranch(pageURL)
OpenLevels(menuName)
redrawTree()

function folderNode(name) {
	var arrayAux =new Array
    	
	arrayAux[0] = name  			
	arrayAux[1] = 9	
	arrayAux[2] = 0
	//arrayAux[3] = 1
	
    	return arrayAux
}

function leafNode(name, menu, open, level, parent, link, image, enabled, headid) {
	var arrayAux = new Array
    
	arrayAux[0] = name
	arrayAux[1] = menu
	arrayAux[2] = open
	arrayAux[3] = level
	arrayAux[4] = parent
	arrayAux[5] = link
	arrayAux[6] = image    
	arrayAux[7] = enabled
	arrayAux[8] = headid
	
	return arrayAux
}

//this way the generate tree function becomes simpler and less error prone
function appendChild(parent, child) {
       parent[parent.length] = child
       return child
}

function ParseUrl(docName) {
	var offset; var dotPos;	
	var pageName; var tmpPage;
	
	pageName=docName.substr(AppPath.length)		
	tmpPage=pageName	
	
	//for each sub dir of the URL create a path UpDir. This is appended to the image SRC
	//to locate the images dir.
	offset=tmpPage.indexOf("/")	
	while (offset != -1) {
		UpDir = "../"
		tmpPage=tmpPage.substr(offset+1)
		offset=tmpPage.indexOf("/")	
	}
		
	return pageName
}

function GetBranch(page) {
	var m=3; var leng; var OffSet;
	
	leng=foldersTree.length-1		
	while (m <= leng && found==false) {
		FindPage(foldersTree[m], page)				
		m=m+1
	}	
	found=false
}

function FindPage(branchNode,pageName) {	
	var i; var offset;
	var page; var tmpPage;
	
	//Remove any variables being passed along with the url page name	
	tmpPage=pageName;
	offset=pageName.indexOf("?")	
	if (offset != -1) {		
		tmpPage=pageName.substring(0, offset)				
	}
		
	//Remove any variables being passed along with the sidebar page name 	
	page=branchNode[5]
	offset=page.indexOf("?")	
	if (offset != -1) {				
		page=page.substring(0, offset)						
	}
		
	//page=ParseUrl(branchNode[5])	
	page=branchNode[5]
	for (i=9; i<branchNode.length; i++) {  									
		if (page != tmpPage) {			
			FindPage(branchNode[i], tmpPage)
		}
		else {				
			break;
		}
	}	
	
	//When we find the node corresponding to the page name set the open/close node to open 
	//and set the menuName to the parent. The parent nodes are then set to open.
	if (page == tmpPage ) {
		branchNode[2]=1		
		menuName=branchNode[4]		
		found=true			
	}	
}

function OpenLevels(branchName) {
	var m=3; var leng;
	
	leng=foldersTree.length-1
	while (m <= leng) {				
		OpenNode(foldersTree[m],branchName)					
		m=m+1
	}		
}

function OpenNode(branchNode,branchName) {	
	var i; var nodeName;
		
	for (i=9; i<branchNode.length; i++) {  		
		if (branchNode[0] != branchName) {					
			OpenNode(branchNode[i], branchName)
		}
		else {			
			break;
		}
	}	
	
	if (branchNode[0] == branchName) {		
		branchNode[2]=1
		OpenLevels(branchNode[4])
	}	
}


function redrawTree() {
	var leng; var m=3;
	
	document.write("<style type='text/css'>	A{text-decoration:none}A:hover{color:red;}</style>")
	document.write("<table border='0' cellspacing=0 cellpadding=0>")  
	
	leng=foldersTree.length-1
	while (m<=leng) {					
		redrawNode(foldersTree[m])			
		m=m+1			
	}
	
	document.write("</td></tr></table>")  	
}

function redrawNode(InNode) {
	var space; var imgDir; 
	var i; var j;
	var RefLink; var ImgLink; var DirLink;
			


	if (InNode[1]< 9 && InNode[7]=='Y')	{	//don't display 'AnPost' node
		space=""		
		//The spaces are used to indent the menu for child nodes
		for (j=0; j<=InNode[3]; j++) {
			space = HeadSpace + space + "&nbsp;&nbsp;"			
		}
		
		OffSet=InNode[5].indexOf("http")			    
		if (OffSet==-1) {			
			if (InNode[5]!='null'){ 
				RefLink = UpDir + InNode[5] 
			}
			
			if (InNode[6]!='null'){ 			
				ImgLink = UpDir + InNode[6] 
			}
			
			DirLink = UpDir
		}
		else {  	
			RefLink = InNode[5] 
			ImgLink = InNode[6] 
			DirLink = ""
		}	
		
		if (InNode[1]==1 || InNode[1]==2)	{	//only display menu/header items and not pages in menu				
			if (InNode[1]==2) {	//Header
				document.write("<tr><td height=5></td></tr>")									
				HeadSpace=""
				for (j=1; j<=InNode[3]; j++) {
					HeadSpace = HeadSpace + "&nbsp;"
				}
				
				if (InNode[6]!='null') {	//Display divider images before headers
					document.write("<tr><td><IMG SRC='" + ImgLink + "' border=0></img></td></tr>")	
				}
								
				if (InNode[3]==0) { 	//Header 1
				  	document.write("<tr><td style='font-size:13px; font-family: color:black; arial; text-decoration:none'>" + HeadSpace + InNode[0] + "</td></tr>")
				}
				else {	//Sub Headers
				  	document.write("<tr><td style='font-size:11px; font-family: color:black; arial; text-decoration:none'>" + HeadSpace + InNode[0] + "</td></tr>")
				}				
			}
			else if (InNode[6]!="" && InNode[6]!='null') {	//parent menu items with associated images
				if (InNode[3]==0) { //Display space when parent node 
					document.write("<tr><td height=5></td></tr>")				
				}								
				document.write("<tr><td><a href='" + RefLink + "'><IMG SRC='" + ImgLink + "' ALT='" + InNode[0] + "' border=0></img></a></td></tr>")					                        				
			}
			else if (InNode[3]==0) {	//parent menu items which have no associated images
				
				document.write("<tr><td height=5></td></tr>")				
				if (InNode[2]==0) {	//when parent is closed display a blank jif to create a space										
					document.write("<tr><td align=center><img src='" + DirLink + "images/curve_left.jpg' width='10' height='18'></img><a href='" + RefLink + "' style='BACKGROUND-COLOR: #00026a; COLOR: white; width=100px;'>" +  InNode[0] + "</a><img src='" + DirLink + "images/curve_right.jpg' width='10' height='18'></img></td></tr>")
				}
				else {	//otherwise display a yellow dot jif indicating the open menu item					
					document.write("<tr><td align=center><img src='" + DirLink + "images/g_curve_left.jpg' width='10' height='18'></img><a href='" + RefLink + "' style='BACKGROUND-COLOR: #00026a; COLOR: yellow; width=100px;'>" +  InNode[0] + "</a><img src='" + DirLink + "images/curve_right.jpg' width='10' height='18'></img></td></tr>")	
				}				
			}
			else {	//child items
				document.write("<tr><td><a href='" + RefLink + "' style='font-size:12px; font-family: color:black; arial; text-decoration:none'>" + space + InNode[0] + "</a></td></tr>")
			}
		}
	}
	
	for (i=9; i<InNode.length; i++)	{	
		if (InNode[2]==1 && InNode[7]=='Y')	{	//open and enabled
			redrawNode(InNode[i])				
		}
	}
}	
