//@NAME: Asquith Girls High School Drop Down Menus
//@VERS: 2.2
//@DATE: 24/05/2005 6:14PM
//@AUTH: precarious_panther (Wildtribe)

//Copyright 2005 - This script may not be used without prior written permission from 
//the author (precarious_panther(Wildtribe))

//Created for Asquith Girls High School

iW = document.body.clientWidth;

var openMenus = new Array();
var hidetime;
var fading = new Array();
var isFading = false;
var lastOpen;

function showMenu(menulink,submenu,parentdiv){
	var menudiv=document.getElementById(submenu);
	var mEx=false;
	if(menudiv != lastOpen){
		menudiv.parent=parentdiv;
		menudiv.menulink=menulink;
		
		for(var x=0;x<openMenus.length;x++){
			if (openMenus[x] == menudiv){
				mEx=true;
			} 
		
		}
		
		if(!mEx){ //if not in the list, close all up to parent
			closeTrees(parentdiv);
		} else {
			closeTrees(submenu);
		}
		
		
		
		if (findPosX(menulink) + (menulink.offsetWidth*2) > iW){
			menudiv.style.top=findPosY(menulink) + 20;
			menudiv.style.left=findPosX(menulink) - menulink.offsetWidth;
		}else {
			menudiv.style.top=findPosY(menulink) - 10;
			menudiv.style.left=findPosX(menulink) + menulink.offsetWidth;
		}
		menudiv.menulink.style.backgroundImage="url('images/menu2h.png')"; 
		openMenus[openMenus.length]=menudiv;
		fadeIn(menudiv);
		lastOpen=menudiv;
	} else {
		cTimer();
	}
}


function closeTrees(parentdiv){
	//hide all other trees
	lastOpen=null;
	var curLevel = false;
	var newOpens = new Array();
	for(var x=0;x<openMenus.length;x++){
	
		if(openMenus[x].parent==parentdiv){
			curLevel=true;	
		}
		
		if(curLevel){
			fadeOut(openMenus[x]);
			openMenus[x].menulink.style.backgroundImage="url('images/menu2.png')";
		} else {
			newOpens[newOpens.length] = openMenus[x];
			openMenus[x].menulink.style.backgroundImage="url('images/menu2h.png')"; 
		}

	}
	openMenus=newOpens;
}

function menuhide(){
	lastOpen=null;
	for(var x=0;x<openMenus.length;x++){
		openMenus[x].menulink.style.backgroundImage="url('images/menu2.png')";
		fading[fading.length] = openMenus[x];
	}
	if(!isFading){
		isFading=true;
		setTimeout("hideSub()", 100);
	}	
	openMenus = new Array();
}

function fadeIn(menudiv){
	//Removed Fade In Routine - Only fade out.
	if (document.all){
		menudiv.filters.alpha.opacity=100;
	} else {
		menudiv.style.opacity=1;
	}
	menudiv.style.visibility="visible";
}


function fadeOut(menudiv){
	//Removed fadeout for menu change - only fade on collapse
	if (document.all){
		menudiv.filters.alpha.opacity=100;
	} else {
		menudiv.style.opacity=1;
	}
	//fading[fading.length] = menudiv;
	menudiv.style.visibility="hidden";
	//if(!isFading){
	//	isFading=true;
	//	setTimeout("hideSub()", 100);
	//}	
}

function hideSub(){
	for(var x=0;x<fading.length;x++){
		menudiv=fading[x];
		if (document.all){
			curTrans=menudiv.filters.alpha.opacity;
		} else {
			curTrans=menudiv.style.opacity*100;
		}
		
		if (curTrans>10){
			curTrans = curTrans - 10;
			if (document.all){
				menudiv.filters.alpha.opacity=curTrans;
			} else {
				menudiv.style.opacity=curTrans/100;
			}
		} else {
			menudiv.style.visibility="hidden";
			fading.splice(x,1);
			x--;
		}
	}
	if (fading.length > 0){
		setTimeout("hideSub()", 10);
		isFading=true;
	} else {
		isFading=false;
	}
}




function menuOut() {
  hidetime = setTimeout("menuhide()", 1000);
}

function cTimer() {
	clearTimeout(hidetime);
}




function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}