// Copyright (C) 1999 Dan Steinman, Distributed under the terms of the GNU Library General Public License
// Available at http://www.dansteinman.com/dynapi/
// Updated to support Netscape 6 by dhamilton@agency.com
var agt=navigator.userAgent.toLowerCase();
var is_mac    = (agt.indexOf("mac")!=-1);
var is_AnyIE   = (agt.indexOf("msie") != -1);
function CollapseMenu(x,y,width,numBlocks,name) {
	this.name = (name!=null)? name : "CollapseMenu"+(CollapseMenu.count++)
	this.x = x
	this.y = y
	this.w = width
	this.numBlocks = numBlocks
	this.bgColor = '#ffffff'
	this.openStyle = "slide"  // or 'glide' or 'move' or 'slide'
	this.contentIndent = 1     // Changed 17 to 1
	this.inc = 200
	this.speed = 200
	this.active = false
	this.obj = this.name + "Object"
	eval(this.obj + "=this")
	this.build = CollapseMenuBuild
	this.activate = CollapseMenuActivate
	this.toggle = CollapseMenuToggle
	this.open = CollapseMenuOpen
	this.close = CollapseMenuClose
	this.finish = CollapseMenuFinish
	this.onToggle = new Function()
}
function CollapseMenuBuild() {
	this.css = css(this.name,this.x,this.y,this.w,0)
	for (var i=0;i<this.numBlocks;i++) {
		this.css += css(this.name+'Block'+i,0,0,this.w)
		this.css += css(this.name+'Block'+i+'Item',0,0,this.w,null,this.bgColor)
		this.css += css(this.name+'Block'+i+'Content',0,0,this.w,null,this.bgColor,null,null,'margin-left:'+this.contentIndent+"px")
	}
	this.css += css(this.name+'Block'+this.numBlocks,0,0,this.w,0,this.bgColor)
	this.divStart = '<div id="'+this.name+'" class="mediaScreen">'
	this.divEnd = ''
	this.divEnd += '<div id="'+this.name+'Block'+this.numBlocks+'">'
	for (var i=0;i<this.numBlocks;i++) {
		this.divEnd += '</div>'
	}
	this.divEnd += '</div></div>'
}
function CollapseMenuActivate() {
	this.lyr = new DynLayer(this.name)
	this.blocks = new Array()
	this.itemTotal = 0
	this.contentTotal = 0
	for (var i=0;i<this.numBlocks;i++) {
		this.blocks[i] = new Object()
		this.blocks[i].open = false
		this.blocks[i].lyr = new DynLayer(this.name+'Block'+i)
		this.blocks[i].itemlyr = new DynLayer(this.name+'Block'+i+'Item')
		this.blocks[i].itemHeight = this.blocks[i].itemlyr.getContentHeight()
		this.itemTotal += this.blocks[i].itemHeight
		this.blocks[i].itemlyr.clipTo(0,this.w,this.blocks[i].itemHeight,0)
		this.blocks[i].contentlyr = new DynLayer(this.name+'Block'+i+'Content')
		this.blocks[i].contentHeight = this.blocks[i].contentlyr.getContentHeight()
		this.contentTotal += this.blocks[i].contentHeight
		this.blocks[i].contentlyr.clipTo(0,this.w,this.blocks[i].contentHeight,0)
		this.blocks[i].contentlyr.moveTo(null,this.blocks[i].itemHeight)
		if (i!=0)this.blocks[i].lyr.moveTo(null,this.blocks[i-1].itemHeight);
		this.blocks[i].h = this.blocks[i].itemHeight + this.blocks[i].contentHeight
	}
	this.h = this.contentTotal + this.itemTotal
	for (var i=this.numBlocks-1;i>=0;i--) {
		this.blocks[i].lyr.clipInit()
		this.blocks[i].lyr.clipTo(0,this.w,this.h-this.blocks[i].lyr.y,0)
	}
	this.blocks[this.numBlocks] = new Object()
	this.blocks[this.numBlocks].lyr = new DynLayer(this.name+'Block'+this.numBlocks)
	this.blocks[this.numBlocks].lyr.clipTo(0,this.w,this.h-this.itemTotal,0)
	this.blocks[this.numBlocks].lyr.css.height = this.h-this.itemTotal + "px";
	this.blocks[this.numBlocks].lyr.moveTo(null,this.blocks[this.numBlocks-1].itemHeight)
	this.lyr.clipTo(0,this.w,this.h,0)
}
function GetImage(j) {
	var whichEl = document.layers[0].document.layers[0].document;
	var findEl = j + "Item";
	whichEl = GetLayer(whichEl, findEl);
	return whichEl;
}
function GetLayer(whichEl, findEl) {
	for (i=0;i < whichEl.layers.length; i++) {
		if (whichEl.layers[i].name.indexOf(findEl) != -1) {
			whichEl = whichEl.layers[i];
			return whichEl;
		}
	}
	whichEl = whichEl.layers[2];
	if (whichEl.document.layers.length == 3 ) {
		whichEl = GetLayer(whichEl, findEl);
	}
	return whichEl;	
}
function CollapseMenuToggle(i) {
	var img ="arrow" + i;
	var imgDotLine ="dot" + i;
	
	if (is.ns) {
		var Arrow_Img = GetImage(i);
		Arrow_Img = Arrow_Img.document[img];
		var dotLine = GetImage(i);
		dotLine = dotLine.document[imgDotLine];
	}
	else if (is.ie && !ns6){
		var Arrow_Img = document[img];
		var dotLine = document[imgDotLine];
		
	}
	
	else if (is.ie && ns6){
		var Arrow_Img = document.getElementById([img]);
		var dotLine = document.getElementById([imgDotLine]);
	}
	
	if (this.active) {
		return this.active = true
	}
	if (!this.blocks[i].open) { 
		this.open(i);
		Arrow_Img.src = eval("arrow_ON.src");
		if (is_mac && is_AnyIE){}
		else {dotLine.src = dotLine_ON.src;}
		
		
	}
	else { 
		this.close(i);
		Arrow_Img.src = arrow_OFF.src;
		if (is_mac && is_AnyIE){}
		else{dotLine.src = dotLine_OFF.src;}
	}	
	
}
function CollapseMenuOpen(i) {
	if (!this.blocks[i].open) {
		var h = this.blocks[i].contentHeight + this.blocks[i].itemHeight
		this.blocks[i].open = true
		if (this.openStyle == 'slide') this.blocks[i+1].lyr.slideTo(null,h,this.inc,this.speed,this.obj+'.finish()')
		else if (this.openStyle == 'glide') this.blocks[i+1].lyr.glideTo('slow','slow',null,h,this.inc,this.speed,this.obj+'.finish()')
		else if (this.openStyle == 'move') {this.blocks[i+1].lyr.moveTo(null,h); this.finish();}
	}
}
function CollapseMenuClose(i) {
	if (this.blocks[i].open) {
		var h = this.blocks[i].itemHeight
		this.blocks[i].open = false
		if (this.openStyle == 'slide') this.blocks[i+1].lyr.slideTo(null,h,this.inc,this.speed,this.obj+'.finish()')
		else if (this.openStyle == 'glide'){ this.blocks[i+1].lyr.glideTo('slow','slow',null,h,this.inc,this.speed,this.obj+'.finish()')
}
else if (this.openStyle == 'move') {this.blocks[i+1].lyr.moveTo(null,h); this.finish();}
	}
}
function CollapseMenuFinish() {
	this.active = false
	this.onToggle()
}
CollapseMenu.count = 0

