//BROWSER CHECKS...
var ie = false;
var ns = false;

if(document.all)
	ie = true;
else if(document.getElementById)
	ns = true;

//-- END OF BROWSER CHECKS --

//this function hides a given menu.
function hideMenu(menu_id){
	var reference = "";
	//alert (fade);
//	if (fade) {
		//opacity(menu_id,100,0, 500);
		//alert("hello");
	//}
	if(ie) {
		reference = document.all[menu_id];
		changeOpac(0, menu_id);
	}
	else if(ns) {
		reference = document.getElementById(menu_id);
	}
	reference.style.visibility = "hidden";
}

function test () {
	alert ("hello");
}
function displayMenu(fade, menu, id){
	var caller;
	
	if(ie){
		caller = document.all[id];
	}
	else if(ns){
		caller = document.getElementById(id);
	}
	
	var coords = getCoordinates(caller);
	if (coords){
		var x = coords[0];	//get x coordinate.
		var y = coords[1];	// get y coordinate.
		//set the new y coordinate.
		var new_y = y + 25;
		var callee;
		if(ie)
			callee = document.all[menu];
		else if(ns) {
			callee = document.getElementById(menu);
		}
		
		var numX = x+18;
		var numY = new_y;
		
		callee.style.left = numX + "px";
		callee.style.top = numY + "px";	
		var vis = callee.style.opacity;
		callee.style.visibility = "visible";
		if (fade) 
			opacity(id + "Menu",0,100, 500);
		else if (vis == 0) 
			changeOpac(100, id + "Menu");
	}
	else{
		return;	
	}
}

function displaySubMenu(fade, menu, id){
	//alert (id + "   " + menu);
	var caller;
	
	if(ie){
		caller = document.all[id];
	}
	else if(ns){
		caller = document.getElementById(id);
	}
	
	var coords = getCoordinates(caller);
	if (coords){
		var x = coords[0];	//get x coordinate.
		var y = coords[1];	// get y coordinate.
		//set the new y coordinate.
		var new_y = y;
		var callee;
		if(ie)
			callee = document.all[menu];
		else if(ns)
			callee = document.getElementById(menu);
		
		var numX = x+158;
		var numY = new_y;
		
		callee.style.left = numX + "px";
		callee.style.top = numY + "px";	
		callee.style.visibility = "visible";
		if (fade) {
			opacity(id + "Menu",0,100, 500);
		}
		else
			changeOpac(100, id + "Menu");
	}
	else{
		return;	
	}
}

//This function gets the coordinates of the parameter object.
function getCoordinates(obj){
	var x = 0;
	var y = 0;
	var width = 0;
	
	if(obj != null){
		while(obj.tagName != "BODY" && obj.tagName != "body"){
			
			x += obj.offsetLeft;
			y += obj.offsetTop;
			/*if(obj.parentNode)
				obj = obj.parentNode;
			else if(obj.parentElement)*/
				obj = obj.offsetParent;
			//else return;
			
		}
		return new Array(x,y);
	}
	else{
		return false;
	}
}

/*************
  Fade in/out effect
 *************/
 function opacity(id, opacStart, opacEnd, millisec) {
	//speed for each frame
	var speed = Math.round(millisec / 100);
	var timer = 0;

	//determine the direction for the blending, if start and end are the same nothing happens
	if(opacStart > opacEnd) {
		for(i = opacStart; i >= opacEnd+1; i--) {
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	} else if(opacStart < opacEnd) {
		for(i = opacStart; i <= opacEnd-1; i++)
			{
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	}
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
	var object = document.getElementById(id).style;
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
	object.opacity = (opacity / 100);
}

function shiftOpacity(id, millisec) {
	//if an element is invisible, make it visible, else make it ivisible
	if(document.getElementById(id).style.opacity == 0) {
		opacity(id, 0, 100, millisec);
	} else {
		opacity(id, 100, 0, millisec);
	}
}

function blendimage(divid, imageid, imagefile, millisec) {
	var speed = Math.round(millisec / 100);
	var timer = 0;
	
	//set the current image as background
	document.getElementById(divid).style.backgroundImage = "url(" + document.getElementById(imageid).src + ")";
	
	//make image transparent
	changeOpac(0, imageid);
	
	//make new image
	document.getElementById(imageid).src = imagefile;

	//fade in image
	for(i = 0; i <= 100; i++) {
		setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
		timer++;
	}
}

function currentOpac(id, opacEnd, millisec) {
	//standard opacity is 100
	var currentOpac = 100;
	
	//if the element has an opacity set, get it
	if(document.getElementById(id).style.opacity < 100) {
		currentOpac = document.getElementById(id).style.opacity * 100;
	}

	//call for the function that changes the opacity
	opacity(id, currentOpac, opacEnd, millisec)
}
