visitedMenu=new Array();
function inArray(item,value){var i;for(i=0;i<item.length;i++)if(item[i]==value)return true;return false;}
function HDWFisheyeMenu(menuNode){if(document.getElementsByTagName&&menuNode)if(!inArray(visitedMenu,menuNode)){var menuInstance=new HDWFisheye(menuNode);visitedMenu.push(menuNode);}}
function HDWFisheye(menuContainer){this.init(menuContainer);}HDWFisheye.prototype={growIn:1.07,steps:20,power:0.300,interval:10,init:function(menuContainer){var me=this;var menuOptions=menuContainer.getElementsByTagName("img");for(var i=0;i<menuOptions.length;i++){var dimObj={w:menuOptions[i].offsetWidth,h:menuOptions[i].offsetHeight,bw:menuOptions[i].offsetWidth*me.growIn,bh:menuOptions[i].offsetHeight*me.growIn};menuOptions[i].onmouseover=function(){me.optionOver(this,dimObj);};menuOptions[i].onmouseout=function(){me.optionOut(this,dimObj);};}me.optionOver(menuOptions[0],dimObj);},optionOver:function(menuOption,dimObj){var captionAttr=menuOption.attributes.getNamedItem("caption");if(captionAttr!=null&&captionAttr.value!="")this.captionInsert(menuOption,captionAttr.value,dimObj.bw);this.changeSize(menuOption,dimObj,true);},optionOut:function(menuOption,dimObj){var captionAttr=menuOption.attributes.getNamedItem("caption");if(captionAttr!=null&&captionAttr.value!="")this.captionRemove(menuOption.parentNode,captionAttr.value);this.changeSize(menuOption,dimObj,false);},captionInsert:function(insertAfter,captionText,spanWidth){var captionSpan=document.createElement('span');captionSpan.style.display='block';captionSpan.style.width=spanWidth+"px";captionSpan.appendChild(document.createTextNode(captionText));insertAfter.parentNode.insertBefore(captionSpan,insertAfter.nextSibling);},captionRemove:function(removeFrom,captionText){var spanNodes=removeFrom.getElementsByTagName("span");for(var i=0;i<spanNodes.length;i++)if(spanNodes[i].firstChild.nodeValue==captionText)removeFrom.removeChild(spanNodes[i]);},changeSize:function(elemNode,dimObj,sTOb){var me=this,actStep=0;var stWidth,stHeight,toWidth,toHeight;if(elemNode.intervalId)window.clearInterval(elemNode.intervalId);if(sTOb){stWidth=dimObj.w;stHeight=dimObj.h;toWidth=dimObj.bw;toHeight=dimObj.bh;}else{stWidth=dimObj.bw;stHeight=dimObj.bh;toWidth=dimObj.w;toHeight=dimObj.h;}elemNode.intervalId=window.setInterval(function(){elemNode.style.width=me.nextDim(stWidth,toWidth,actStep)+"px";elemNode.style.height=me.nextDim(stHeight,toHeight,actStep)+"px";actStep++;if(actStep>me.steps)window.clearInterval(elemNode.intervalId);},me.interval);},nextDim:function(dimStart,dimEnd,actualStep){var diff=dimEnd-dimStart;return Math.ceil(dimStart+(Math.pow(((1/this.steps)*actualStep),this.power)*diff));}};
