/**
 *
 * Script for Showing divs on roll over
 *
 */


var divs = new Array();
var elementsToHide = new Array();
var elementToShow = "";

function init(){
   //get divs which show/hide
   divs = getElementsByClassName(document,"div","nav-main-sub");
}


function mouseOver(elementId,object,xoffset,yoffset){

	//Menu is disabled for Mac IE
   if(BrowserDetect.browser == "Explorer" && BrowserDetect.OS == "Mac"){
   		return;
   }

   if(!xoffset) xoffset = 0;
   if(!yoffset) yoffset = 52;

   if(BrowserDetect.browser == "Safari"){
   		if(xoffset) xoffset = -107;
   }

    if(BrowserDetect.browser == "Firefox" && BrowserDetect.OS == "Mac"){
   		if(xoffset) xoffset = -107;
   }


   //get position of the callee object
   var pos = findPos(object);
   //reference our object
   var targetingObject = document.getElementById(elementId);
   //show object
   elementToShow = elementId;
   showTimeOut = window.setTimeout('showObject()',50);
   //set position of the showed object
   targetingObject.style.left = pos[0]+xoffset+'px';
   targetingObject.style.top = pos[1]+yoffset+'px';

   //alert(targetingObject.style.left);

   //hide other divs
   for(i=0; i < divs.length; i++){
      if(divs[i] != targetingObject){
         divs[i].style.display = "none";
      }
   }
}

function showObject(){
   document.getElementById(elementToShow).style.display = "block";
}


function mouseOut(elementId){

	//Menu is disabled for Mac IE
   if(BrowserDetect.browser == "Explorer" && BrowserDetect.OS == "Mac"){
   		return;
   }


   elementsToHide.push(document.getElementById(elementId));
   hideTimeOut = window.setTimeout(hideObject,100);

   if(BrowserDetect.browser == "Explorer" && BrowserDetect.OS == "Mac"){
   		//document.getElementById(elementId).style.display = "none";
   }

}


function divMouseOver(element){
   for(i=0;i<elementsToHide.length;i++){
      if(elementsToHide[i] == element){
         elementsToHide[i] = "isShown"; //it would be nicer to remove this element form array...
         break;
      }
   }
}

function divMouseOut(element){
   elementsToHide.push(element);

   if(hideTimeOut) window.clearTimeout(hideTimeOut);
   hideTimeOut = window.setTimeout(hideObject,1000);
}



function hideObject(){

   for ( i = elementsToHide.length-1; i>= 0; i--){
		if(elementsToHide[i]!="isShown"){
			elementsToHide[i].style.display = "none";
			         //alert("hide");

		}
   }
   elementsToHide = new Array();
}



//------------------------------------------------------------------------------
// FINDING OBJECT POSITION
//------------------------------------------------------------------------------
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
	}
	return [curleft,curtop];
}


/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
*/

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/-/g, "\-");
	var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}