function LayerMenu(x,y,width,numBlocks,name,openStyle) {
	this.name = (name!=null)? name : "layerMenu"
	this.x = x
	this.y = y
	this.w = width
	this.numBlocks = numBlocks
	this.bgColor = '#ffffff'
	this.openStyle = openStyle  // move or openClose
	this.contentIndent = 0
	this.inc = 5
	this.speed = 20
	this.active = false
	this.obj = this.name + "Object"
	eval(this.obj + "=this")
	this.buildStyleSheets = dynamicallyCreateStyleSheets
	this.activate = MenuActivate
	this.switchIt = switchOpenClose
	this.switchArrow = switchImageArrowEnabled
	this.switchDot = switchImageDotEnabled
	this.unSwitchAll = switchImageAllDisabled
	this.getXpos = getXposition
	this.getYpos = getYposition
	this.open = showContent
	this.close = hideContent
}

function MenuActivate() {
	// Create blocks Array
	this.blocks = new Array()
	// Initialize totalHeightOfLayers To 0
	totalHeightOfLayers = 0
	
	for (var i=0;i<this.numBlocks;i++) {
		this.blocks[i] = new Object()
		this.blocks[i].open = false
		
		//create image rollovers here
		// Create images
		this.blocks[i].imgOrig = new Image()
		this.blocks[i].imgDown = new Image()
		this.blocks[i].imgUp = new Image()
		this.blocks[i].imgDot = new Image()
		
		// Assign sources
		if (eval('layerMenuImageSources'+i)[0]) {this.blocks[i].imgOrig.src = eval('layerMenuImageSources'+i)[0]}
		if (eval('layerMenuImageSources'+i)[1]) {this.blocks[i].imgDown.src = eval('layerMenuImageSources'+i)[1]}
		if (eval('layerMenuImageSources'+i)[2]) {this.blocks[i].imgUp.src = eval('layerMenuImageSources'+i)[2]}
		if (eval('layerMenuImageSources'+i)[3]) {this.blocks[i].imgDot.src = eval('layerMenuImageSources'+i)[3]}
		//end create image rollovers here
		
		// Create New Dynlayer Object For Each layerMenuLink
		this.blocks[i].link = new DynLayer(this.name+"Link"+i)
		// Create New Dynlayer Object For Each layerMenuLinkContent
		this.blocks[i].linkContent = new DynLayer(this.name+"LinkContent"+i)
		// Get Height Of Each layerMenuLink
		this.blocks[i].linkHeight = this.blocks[i].link.getContentHeight()
		// Get Height Of Each layerMenuLinkContent
		this.blocks[i].linkContentHeight = this.blocks[i].linkContent.getContentHeight()
		// Get Total Height Of Link And Content
		this.blocks[i].linkTotalHeight = this.blocks[i].linkHeight + this.blocks[i].linkContentHeight
		// Calculate Total Height Of All Layers
		totalHeightOfLayers += this.blocks[i].linkHeight + this.blocks[i].linkContentHeight
		// Calculate The Postion For Each layerMenuLink and layerMenuLinkContent
		if (i == 0) {
			this.blocks[i].nextLink = this.y
			this.blocks[i].nextLinkContent = this.y + this.blocks[i].linkHeight
		} else {
			this.blocks[i].nextLink = this.blocks[i-1].nextLink + this.blocks[i-1].linkHeight
			this.blocks[i].nextLinkContent = this.blocks[i-1].nextLink + this.blocks[i-1].linkHeight + this.blocks[i].linkHeight
			//alert("current Position for layer number "+i+" is "+this.blocks[i].nextLink)
		} // End If
		// Move Each layerMenuLink And layerMenuLinkContent Into Position
		if (i == 0) {
			this.blocks[i].link.moveTo(this.x,this.y)
			this.blocks[i].linkContent.moveTo(this.x,this.blocks[i].nextLinkContent)
		} else {
			this.blocks[i].link.moveTo(this.x,this.blocks[i].nextLink)
			this.blocks[i].linkContent.moveTo(this.x,this.blocks[i].nextLinkContent)
		} // End If
		// Clip Each Layer To Fit Into Width Provided By User
		//this.blocks[i].link.clipInit()
		//alert(this.blocks[i].link.clipValues('r'))
		//this.blocks[i].link.clipTo(10,10,10,10)
		//this.blocks[i].linkContent.clipTo(20,100,null,null)
		// Show Each layerMenuLink After They Are Moved Into Place
		this.blocks[i].link.show()
	} // End For Loop
	// Add totalHeightOfLayers To layerMenuBuffer To Deal With IE On Mac Problems
	if (is.ie) document.all.layerMenuBuffer.style.height = totalHeightOfLayers

} // End MenuActivate

function dynamicallyCreateStyleSheets() {
	// Initialize Style Sheets
	this.css=""
	
	for (var i=0;i<this.numBlocks;i++) {
		// Create Style Sheets For Div Tags
		this.css += css(this.name+"Link"+i,null,null,this.w)
		this.css += css(this.name+"LinkContent"+i,null,null,this.w)
		//alert(this.css)
	} // End For
} // End dynamicallyCreateStyleSheets


function switchImageArrowEnabled(i) {
	if (!this.blocks[i].open) {
		if (is.ns4) {
			eval('document.layerMenuLink'+i+'.document.layerMenuImage'+i).src = this.blocks[i].imgDown.src
		} else {
			eval('document.images["layerMenuImage'+i+'"]').src = this.blocks[i].imgDown.src
		} // End IF
	} else {
		if (is.ns4) {
			eval('document.layerMenuLink'+i+'.document.layerMenuImage'+i).src = this.blocks[i].imgUp.src
		} else {
			eval('document.images["layerMenuImage'+i+'"]').src = this.blocks[i].imgUp.src
		} // End IF
	} // End If
} // End switchImageArrownEnabled

function switchImageDotEnabled(i) {
		if (is.ns4) {
			eval('document.layerMenuLink'+i+'.document.layerMenuImage'+i).src = this.blocks[i].imgDot.src
		} else {
			eval('document.images["layerMenuImage'+i+'"]').src = this.blocks[i].imgDot.src
		} // End IF
} // End switchImageDotEnabled

function switchImageAllDisabled(i) {
	if (is.ns4) {
		eval('document.layerMenuLink'+i+'.document.layerMenuImage'+i).src = this.blocks[i].imgOrig.src
	} else {
		eval('document.images["layerMenuImage'+i+'"]').src =  this.blocks[i].imgOrig.src
	} // End IF
} // End switchImageAllDisabled

function switchOpenClose(i) {
	if (!this.blocks[i].open) {
		this.blocks[i].open = true
		this.open(i)
	} else {
		this.blocks[i].open = false
		this.close(i)
	} // End If
} // End switchOpenClose

function showContent(i) {
	// Set layerMenuLinkContent Status Equal To True When Open
	
	// Set Position Initially To Y Offset
	var Position = this.y
	
		for (blockIndex=0;blockIndex < this.numBlocks;blockIndex++) {
		
			if (this.openStyle == "openClose") {
				if (blockIndex == i) {
					this.blocks[blockIndex].link.moveTo(this.x,Position)
					Position = Position + this.blocks[blockIndex].linkHeight
					this.blocks[blockIndex].linkContent.moveTo(this.x,Position)
					Position = Position + this.blocks[blockIndex].linkContentHeight
				} else {
					
					if (this.blocks[blockIndex].open) {
						this.blocks[blockIndex].open = false
						this.blocks[blockIndex].linkContent.hide()
						if (is.ns4) document.height -= this.blocks[i].linkTotalHeight	
					} // End If
					
					this.blocks[blockIndex].link.moveTo(this.x,Position)
					Position = Position + this.blocks[blockIndex].linkHeight
					
					
				} // End If
			} else {
				if (this.blocks[blockIndex].open) {
					this.blocks[blockIndex].link.moveTo(this.x,Position)
					Position = Position + this.blocks[blockIndex].linkHeight
					this.blocks[blockIndex].linkContent.moveTo(this.x,Position)
					Position = Position + this.blocks[blockIndex].linkContentHeight
				} else {
					this.blocks[blockIndex].link.moveTo(this.x,Position)
					Position = Position + this.blocks[blockIndex].linkHeight
				} // End If	
			} // End If
			
		} // End For Loop

	// Adjust Netscapes Document Size To Size Of Visible Layers
	 if (is.ns4) document.height += this.blocks[i].linkTotalHeight

	// Show layerMenuLinkContent After Links And Content Below It Move Out Of The Way
	this.blocks[i].linkContent.show()
} // End Show Content

function hideContent(i) {
	// Set Position Initially To Y Offset
	var Position = this.y
	
		for (blockIndex=0;blockIndex < this.numBlocks;blockIndex++) {
			if (this.blocks[blockIndex].open) {
				this.blocks[blockIndex].link.moveTo(this.x,Position)
				Position = Position + this.blocks[blockIndex].linkHeight
				this.blocks[blockIndex].linkContent.moveTo(this.x,Position)
				Position = Position + this.blocks[blockIndex].linkContentHeight
			} else {
				this.blocks[blockIndex].link.moveTo(this.x,Position)
				Position = Position + this.blocks[blockIndex].linkHeight
			} // End If
		} // End For Loop

	// Adjust Netscapes Document Size To Size Of Visible Layers
	 if (is.ns4) document.height -= this.blocks[i].linkTotalHeight		
	 
	// Show layerMenuLinkContent After Links And Content Below It Move Out Of The Way
	this.blocks[i].linkContent.hide()
} // End Hide Content

function getXposition(i) {
	return this.blocks[i].link.x;
} // END getXposition

function getYposition(i) {
	return this.blocks[i].link.y;
} // END getYposition
