var anav = Array();
var anavMove = 5;
var anavTime = 20;
var anavOffsetCorrector = -2;

function anavInit(anavId, open) {
	anav[anavId] = new Array();
	anav[anavId]['ul'] = document.getElementById(anavId);
	anav[anavId]['onMove'] = 0;
	anav[anavId]['maxHeight'] = anav[anavId]['ul'].offsetHeight + anavOffsetCorrector;
	anav[anavId]['lis'] = anav[anavId]['ul'].getElementsByTagName("li");
	anav[anavId]['numLIs'] = anav[anavId]['lis'].length;
	
	disableLIs(anavId);

	anav[anavId]['minHeight'] = anav[anavId]['ul'].offsetHeight + anavOffsetCorrector;
	anav[anavId]['status'] = "closed";
	anav[anavId]['blocked'] = false;
	
	anav[anavId]['ul'].anavId = anavId;
	anav[anavId]['ul'].onmouseover = anavOpen;
	anav[anavId]['ul'].onmouseout = anavClose;
	
	for(var lc = 0; lc < anav[anavId]['numLIs']; lc++) {
		if(anav[anavId]['lis'][lc].className == "title" ) {
			anav[anavId]['lis'][lc].anavId = anavId;
			anav[anavId]['lis'][lc].onclick = anavBlock;
		}
	}
	
	if(open) {
		anav[anavId]['status'] = "opened";
		anav[anavId]['blocked'] = true;
		enableLIs(anavId);
	}
}

function disableLIs(anavId) {	
	for(var lc = 0; lc < anav[anavId]['numLIs']; lc++) {
		if(anav[anavId]['lis'][lc].className != "title" ) {
			anav[anavId]['lis'][lc].style.display = "none";
		}
	}
}

function enableLIs(anavId) {	
	for(var lc = 0; lc < anav[anavId]['numLIs']; lc++) {
		if(anav[anavId]['lis'][lc].className != "title" ) {
			anav[anavId]['lis'][lc].style.display = "block";
		}
	}
}

function anavOpen() {	
	var anavId = this.anavId;
	
	anav[anavId]['onMove']++;
	
	var height = anav[anavId]['ul'].offsetHeight + anavOffsetCorrector + anavMove;
	var time = anavTime;
	while(height < anav[anavId]['maxHeight']) {
		setTimeout("anavChangeHeigth(\"" + anavId + "\", " + height + ", \"" + anav[anavId]['onMove'] + "\");", time);
		time += anavTime;
		height += anavMove;
	}
	
	setTimeout("anavFinalOpen(\"" + anavId + "\", \"" + anav[anavId]['onMove'] + "\");", time);
}

function anavBlock() {
	var anavId = this.anavId;
	
	if(anav[anavId]['blocked']) anav[anavId]['blocked'] = false;
	else anav[anavId]['blocked'] = true;
	
	return false;
}

function anavClose() {
	var anavId = this.anavId;

	if(!anav[anavId]['blocked']) {
		anav[anavId]['onMove']++;
		
		var height = anav[anavId]['ul'].offsetHeight + anavOffsetCorrector;
		var time = 1000 + anavTime;
		var firstTime = true;
		while(height > anav[anavId]['minHeight']) {
			setTimeout("anavChangeHeigth(\"" + anavId + "\", " + height + ", \"" + anav[anavId]['onMove'] + "\", " + firstTime + ");", time);
			time += anavTime;
			height -= anavMove;
			firstTime = false;
		}
		
		setTimeout("anavFinalClose(\"" + anavId + "\", \"" + anav[anavId]['onMove'] + "\");", time);
	}
}

function anavChangeHeigth(anavId, height, onMove, firstTime) {
	if(anav[anavId]['onMove'] == onMove) {
		if(firstTime) disableLIs(anavId);
		anav[anavId]['status'] = "changing";
		anav[anavId]['ul'].style.height = height + "px";
	}
}

function anavFinalOpen(anavId, onMove) {
	if(anav[anavId]['onMove'] == onMove) {
		anav[anavId]['ul'].style.height = anav[anavId]['maxHeight'] + "px";
		//anav[anavId]['onMove'] = 0;
		anav[anavId]['status'] = "opened";
		enableLIs(anavId);
	}
}

function anavFinalClose(anavId, onMove) {
	if(anav[anavId]['onMove'] == onMove) {
		anav[anavId]['ul'].style.height = anav[anavId]['minHeight'] + "px";
		//anav[anavId]['onMove'] = 0;
		anav[anavId]['status'] = "closed";
	}
}
