// JavaScript Document
var mm_over = false;
var melement = null;
var hover = "_hover";
var allMenuImages = new Array();
var allHoverMenuImages = new Array();
var timeout	= 500;
var overdelay	= 1500;
var closetimer	= 0;
var subM = "_sub";
var ddmenuitem	= null;
var ddmenuitem_intervalID = null;
var ddmenuitem_over = false;
var subMenusId = new Array();
var menuID = '';

 var agt=navigator.userAgent.toLowerCase();
 var is_major = parseInt(navigator.appVersion);
 var is_minor = parseFloat(navigator.appVersion);
 var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
 var isIE =  (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) );
 
 function _getElementsByTagName(el,_tagName){
   	if (el.childNodes.length>0){
	 var Elements = new Array();
	 for(i=0;i<el.childNodes.length;i++){
		if(el.childNodes[i].tagName == _tagName){
		  Elements.push(el.childNodes[i]);
		}
	 }
	 if(Elements.length>1){
	 return Elements;
	 } else {
		if(Elements.length>0)
		{return Elements[0];} else {return null}
	 }
	} 
	else {
	 return null;	
	}
}

function init(menu_id){
	menuID = menu_id;
	var menu = document.getElementById(menu_id);
	if(menu!=null&&menu!=undefined){
	var LIElements =  _getElementsByTagName(menu,'LI');
	if(LIElements.length>0){
	var i=0;
	for (i=0;i<LIElements.length;i++){
		var Link = _getElementsByTagName(LIElements[i],'A');
		if(Link){
		var innerIMG = _getElementsByTagName(Link,'IMG');
		var SRC = '';
		if(innerIMG.style.filter){
		   SRC = getFilePathFromFilter(innerIMG.style.filter);	
		} else {
		   SRC = innerIMG.src;	
		}
        allMenuImages.push(SRC);
	    allHoverMenuImages.push(setHoverImage(SRC));		
	}}
	}
	}
	var loader = new ImagePreloader(setupmenu);
}

function setupmenu(){
	var menu = document.getElementById(menuID);
	if(menu!=null&&menu!=undefined){
	var LIElements =  _getElementsByTagName(menu,'LI');
	if(LIElements.length>0){
	var i=0;
	for (i=0;i<LIElements.length;i++){
	   var 	Link = _getElementsByTagName(LIElements[i],'A');
	   if(Link!=null){
	     Link.onmouseover = function(){
	     mm_over = true;
	     melement = this;
	     
	     setTimeout('if(mm_over)mouseOver(melement);', overdelay);
		
		}
		 Link.onmouseout = function(){
			   mm_over = false;
			   mouseOut(this);  
		  }
		 if (Link.id.length>0){
			 subMenusId.push(Link.id+subM);
		 }
	   }
	}
  }	
  if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
  subMenuFixIEWidth();} else {}
}
}


function setHoverImage(old){
var ext=old.substring(old.lastIndexOf("."),old.length);
var path = old.substring(0,old.lastIndexOf("."));
var newName = path+hover+ext;
return newName;	
}
function menuFromThisElement(element){
	var result = false;
	if(ddmenuitem){
	var id = String(element.id);
	if (id.length==0)return false;
	var menu_id = String(ddmenuitem.id);
	var Index = menu_id.indexOf(id);
	if (Index>=0) result = true;
	}
	return result;
}
function getHoverImage(old){
  for(i=0;i<allMenuImages.length;i++){
	if(old == allMenuImages[i])return allHoverMenuImages[i];  
  }
  return null;
}
function getOutImage(old){
  for(i=0;i<allHoverMenuImages.length;i++){
	if(old == allHoverMenuImages[i])return allMenuImages[i];  
  }
  return null;
}
function menu_closetime()
{
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}
function menu_close()
{
   if(ddmenuitem!=null&&!ddmenuitem_over){
     clearSubEvents();
     clearTimeout(ddmenuitem_intervalID);
	 var tString = String(ddmenuitem.id);
	 tString = tString.substr(0,tString.indexOf(subM));
	 var buttonID =  tString;
	 ddmenuitem.style.display = 'none';	
	 ddmenuitem=null;
	 var element = document.getElementById(buttonID);
	 if (element!=null){
	 var innerIMG = _getElementsByTagName(element,'IMG');
	 var fName = getFilePathFromFilter(innerIMG.style.filter); 
	 var newImage =null;
	 if(fName!='' && fName!=null){
				 newImage = getOutImage(fName);
				 if (newImage!=null) innerIMG.style.filter  = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+newImage+'",sizingMethod="crop")';
	 }else {
		newImage = getOutImage(innerIMG.src);
		if (newImage!=null) innerIMG.src = newImage;
	 }
	 }
   }
}

function menu_timer()
{
	closetimer = window.setTimeout(menu_close, timeout);
}
function  getTopPos(el,fromel){
 	var top =fromel.offsetHeight;
	var obj = fromel;    
    while (obj.offsetParent)
    {
        top += obj.offsetTop;
        obj = obj.offsetParent;
    }
	return top;
}
function getLeftPos(el,fromel){
 	var left = 0;
    var obj = fromel;    
    while (obj.offsetParent)
    {
        left += obj.offsetLeft;
        obj = obj.offsetParent;
    }
	return left;
}
function mouseOut(element){
			 if(!menuFromThisElement(element)){		
				var innerIMG = _getElementsByTagName(element,'IMG');			 
			    var fName = getFilePathFromFilter(innerIMG.style.filter); 
				var newImage = null; 
			    if(fName !='' && fName!=null){			   
					newImage = getOutImage(fName);
					if (newImage!=null) innerIMG.style.filter  = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+newImage+'",sizingMethod="crop")';
		    	} else {
					newImage = getOutImage(innerIMG.src);
					if (newImage!=null) innerIMG.src = newImage;
				}
			 } else {

			 }
}
function mouseOver(element){
			 var innerIMG = _getElementsByTagName(element,'IMG');
			 var filterVal = innerIMG.style.filter
			 var fName = '';
			 if(filterVal){fName = getFilePathFromFilter(filterVal); }
			 var newImage =null; 
			 if(fName!='' && fName!=null){
				 newImage = getHoverImage(fName);
				
				if (newImage!=null) innerIMG.style.filter  = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+newImage+'",sizingMethod="crop")';
			 }else {
			  newImage = getHoverImage(innerIMG.src);
			  if (newImage!=null) innerIMG.src = newImage;
			 }
			 //menu_closetime();
			 if((!menuFromThisElement(element)) && (ddmenuitem!=null)){
				  ddmenuitem_over = false;
				 menu_close();
			 }
			 
			 //setTimeout('if(ddmenuitem_over)alert("Yahoooooo");', 2000);
			 
			 if (element.id!=null&&element.id.length>0){ 
			        var subMenuId = element.id+subM;
					ddmenuitem = document.getElementById(subMenuId);
					ddmenuitem.style.top = getTopPos(ddmenuitem,element)+'px';
					ddmenuitem.style.left = getLeftPos(ddmenuitem,element)+'px';
					ddmenuitem.style.display = 'block';	
					setupSubEvents();
			 }	else {}
}
function subMenuOver(element){
   	ddmenuitem_over = true;
}
function subMenuOut(element){
    if(ddmenuitem_over){
	
	//	 menu_timer();
	} else {}
}
function subMenuFixIEWidth(){
  for(var j=0;j<subMenusId.length;j++){
	var subMenu = document.getElementById(subMenusId[j]);
	var LI = _getElementsByTagName(subMenu,'LI');
	var _max = 0;
	if(LI.length>0){
		for(var i=0;i<LI.length;i++){
		  var a = _getElementsByTagName(LI[i],'A');
		  if(a!=null){
			  var k = a.innerHTML.length*6+10;
			  if(_max<k){_max = k} else {};	   
	  	  }	
	    }
		for(var i=0;i<LI.length;i++){
		  LI[i].style.width = _max+'px';
		}
    }
  }
}
function setupSubEvents(){
	var ollLI = _getElementsByTagName(ddmenuitem,'LI');
		for(k=0;k<ollLI.length;k++){
			var Link = _getElementsByTagName(ollLI[k],'A');
				Link.onmouseover = function(){
					    ddmenuitem_over = true;
						clearTimeout(ddmenuitem_intervalID);
				}
				Link.onmouseout = function(){
					 ddmenuitem_over = false;
				     ddmenuitem_intervalID = window.setTimeout(menu_close, 1000);
				}
			}
}
function clearSubEvents(){
var ollLI = _getElementsByTagName(ddmenuitem,'LI');
		for(k=0;k<ollLI.length;k++){
			var Link = _getElementsByTagName(ollLI[k],'A');
				Link.onmouseover = null;
				Link.onmouseout = null;
			}
}
function getFilePathFromFilter(filter){
if(filter!=undefined)
  {
   var paramsStr = filter.substring(filter.indexOf("(")+1,filter.indexOf(")"));
   var params = paramsStr.split(",");
   var src = params[0];
   var fParams = src.split("="); 
   var fPath = fParams[1];
   while(fPath.indexOf("'")!=-1){
   fPath = fPath.replace("'","");
   }
   while(fPath.indexOf("\"")!=-1){
   fPath = fPath.replace("\"","");
   }
   return fPath;
   }
 else 
   {
	return null; 
   }
}
//------------------------------------ Preload Images for Menu--------------------------
function ImagePreloader(callBack)
{
   this.callBack = callBack;
   this.nLoaded = 0;
   this.nProcessed = 0;
   this.aImages = new Array;
   this.nImages = allMenuImages.length + allHoverMenuImages.length;
   for ( var i = 0; i < allMenuImages.length; i++ )
      this.preload(allMenuImages[i]);
   for ( var i = 0; i < allHoverMenuImages.length; i++ )
      this.preload(allHoverMenuImages[i]);	  
}
ImagePreloader.prototype.preload = function(image)
{
   var oImage = new Image;
   this.aImages.push(oImage);
   oImage.onload = ImagePreloader.prototype.onload;
   oImage.onerror = ImagePreloader.prototype.onerror;
   oImage.onabort = ImagePreloader.prototype.onabort;
   oImage.oImagePreloader = this;
   oImage.bLoaded = false;
   oImage.src = image;
}
ImagePreloader.prototype.onComplete = function()
{
   this.nProcessed++;

   if ( this.nProcessed == this.nImages )
   {
      this.callBack();
   } else {
	   //alert( this.nProcessed + " Complete " +this.nImages + " "+this.aImages[this.nProcessed].src);   
   }
}

ImagePreloader.prototype.onload = function()
{
   this.bLoaded = true;
   this.oImagePreloader.nLoaded++;
   this.oImagePreloader.onComplete();
}

ImagePreloader.prototype.onerror = function()
{
   this.bError = true;
   this.oImagePreloader.onComplete();
}

ImagePreloader.prototype.onabort = function()
{
   this.bAbort = true;
   this.oImagePreloader.onComplete();
}