//document.getElementById("d1").className = "dock-item span";
jQuery.iFisheye={build:function(options)
{
	return this.each(function()
	{
		var el=this;
		el.fisheyeCfg=
		{
			items:jQuery(options.items,this),
			container:jQuery(options.container,this),
			pos:jQuery.iUtil.getPosition(this),
			itemWidth:options.itemWidth,
			itemHeight:options.itemHeight,
			textStyleIn:options.textStyleIn,
			textStyleOut:options.textStyleOut,
			itemsText:options.itemsText,
			proximity:options.proximity,
			valign:options.valign,
			halign:options.halign,
			maxWidth:options.maxWidth};
			
			jQuery.iFisheye.positionContainer(el,0);
			jQuery(window).bind('resize',function()
			{
				el.fisheyeCfg.pos=jQuery.iUtil.getPosition(el);
				jQuery.iFisheye.positionContainer(el,0);
				jQuery.iFisheye.positionItems(el);
			});
			jQuery.iFisheye.positionItems(el);
			el.fisheyeCfg.items.bind('mouseover',function()
				{
				jQuery(el.fisheyeCfg.itemsText,this).get(0).className = el.fisheyeCfg.textStyleOut /*'mainMenuItem2'*/;
				}
			).bind('mouseout',function()
			{
				jQuery(el.fisheyeCfg.itemsText,this).get(0).className = el.fisheyeCfg.textStyleIn /*'mainMenuItem'*/;
			});
			
			jQuery(document).bind('mousemove',function(e)
			{
				var pointer=jQuery.iUtil.getPointer(e);
				var toAdd=0;
				if(el.fisheyeCfg.halign&&el.fisheyeCfg.halign=='center')
					var posx=pointer.x-el.fisheyeCfg.pos.x-(el.offsetWidth-el.fisheyeCfg.itemWidth*el.fisheyeCfg.items.size())/2-el.fisheyeCfg.itemWidth/2;
				else if(el.fisheyeCfg.halign&&el.fisheyeCfg.halign=='right')
					var posx=pointer.x-el.fisheyeCfg.pos.x-el.offsetWidth+el.fisheyeCfg.itemWidth*el.fisheyeCfg.items.size();
				else
					var posx=pointer.x-el.fisheyeCfg.pos.x;
					var posy=Math.pow(pointer.y-el.fisheyeCfg.pos.y-el.offsetHeight/2,2);
					el.fisheyeCfg.items.each(function(nr)
					{
						
						distance=Math.abs(posx-(nr+0.5)*el.fisheyeCfg.itemWidth)
						//distance=Math.sqrt(Math.pow(posx-nr*el.fisheyeCfg.itemWidth,2)+posy);
						//distance=Math.sqrt(	Math.mod(posx-nr*el.fisheyeCfg.itemWidth)+Math.mod(posy-el.fisheyeCfg.itemHeight) );
						//distance-=el.fisheyeCfg.itemWidth/2;
						distance=distance<0?0:distance;
						distance=distance>el.fisheyeCfg.proximity?el.fisheyeCfg.proximity:distance;
						distance=el.fisheyeCfg.proximity-distance;
						extraWidth=el.fisheyeCfg.maxWidth*distance/el.fisheyeCfg.proximity;
						
						this.style.width=el.fisheyeCfg.itemWidth+extraWidth+'px';
						this.style.left=el.fisheyeCfg.itemWidth*nr+toAdd+'px';
						toAdd+=extraWidth;
					});
					jQuery.iFisheye.positionContainer(el,toAdd);
			});
			})},positionContainer:function(el,toAdd)
					{
						if(el.fisheyeCfg.halign)
						if(el.fisheyeCfg.halign=='center')
							el.fisheyeCfg.container.get(0).style.left=(el.offsetWidth-el.fisheyeCfg.itemWidth*el.fisheyeCfg.items.size())/2-toAdd/2+'px';
						else if(el.fisheyeCfg.halign=='left')
							//position tweak
							el.fisheyeCfg.container.get(0).style.left=toAdd/el.fisheyeCfg.items.size()+'px';
						else if(el.fisheyeCfg.halign=='right')
							el.fisheyeCfg.container.get(0).style.left=(el.offsetWidth-el.fisheyeCfg.itemWidth*el.fisheyeCfg.items.size())-toAdd/2+'px';
						el.fisheyeCfg.container.get(0).style.width=el.fisheyeCfg.itemWidth*el.fisheyeCfg.items.size()+toAdd+'px';
					},
			positionItems:function(el)
			{
				el.fisheyeCfg.items.each(function(nr)
				{
					this.style.width=el.fisheyeCfg.itemWidth+'px';
					this.style.left=el.fisheyeCfg.itemWidth*nr+'px';
				});
			}
		};
		jQuery.fn.Fisheye=jQuery.iFisheye.build;
		jQuery.iUtil={getPosition:function(e)
		{
			var x=0;
			var y=0;
			var es=e.style;
			var restoreStyles=false;
			if(jQuery(e).css('display')=='none')
			{
				var oldVisibility=es.visibility;
				var oldPosition=es.position;restoreStyles=true;
				es.visibility='hidden';
				es.display='block';
				es.position='absolute';
			}
			var el=e;
			while(el)
			{
				x+=el.offsetLeft+(el.currentStyle&&!jQuery.browser.opera?parseInt(el.currentStyle.borderLeftWidth)||0:0);
				y+=el.offsetTop+(el.currentStyle&&!jQuery.browser.opera?parseInt(el.currentStyle.borderTopWidth)||0:0);
				el=el.offsetParent;
			}
			el=e;
			while(el&&el.tagName&&el.tagName.toLowerCase()!='body')
			{
				x-=el.scrollLeft||0;
				y-=el.scrollTop||0;
				el=el.parentNode;
			}
			if(restoreStyles==true)
			{
				es.display='none';
				es.position=oldPosition;
				es.visibility=oldVisibility;
			}
			return	{x:x,y:y};
		}
			
			,getPositionLite:function(el)
			{
				var x=0,y=0;
				while(el)
				{
					x+=el.offsetLeft||0;y+=el.offsetTop||0;el=el.offsetParent;
				}
				return{x:x,y:y};
			}
			,getSize:function(e)
			{
				var w=jQuery.css(e,'width');
				var h=jQuery.css(e,'height');
				var wb=0;var hb=0;
				var es=e.style;
				if(jQuery(e).css('display')!='none')
				{
					wb=e.offsetWidth;hb=e.offsetHeight;
				}
				else
				{
					var oldVisibility=es.visibility;
					var oldPosition=es.position;es.visibility='hidden';
					es.display='block';
					es.position='absolute';
					wb=e.offsetWidth;
					hb=e.offsetHeight;
					es.display='none';
					es.position=oldPosition;
					es.visibility=oldVisibility;
				}
				return{w:w,h:h,wb:wb,hb:hb};
			}
			,getSizeLite:function(el)
			{
				return{wb:el.offsetWidth||0,hb:el.offsetHeight||0};
			}
			,getClient:function(e)
			{
				var h,w,de;
				if(e)
				{
					w=e.clientWidth;
					h=e.clientHeight;
				}
				else
				{
					de=document.documentElement;
					w=window.innerWidth||self.innerWidth||(de&&de.clientWidth)||document.body.clientWidth;h=window.innerHeight||self.innerHeight||(de&&de.clientHeight)||document.body.clientHeight;
				}
				return{w:w,h:h};
			}
			,getScroll:function(e)
			{
				var t=0,l=0,w=0,h=0,iw=0,ih=0;
				if(e&&e.nodeName.toLowerCase()!='body')
				{
					t=e.scrollTop;
					l=e.scrollLeft;
					w=e.scrollWidth;
					h=e.scrollHeight;
					iw=0;
					ih=0;
				}
				else
				{
					if(document.documentElement)
					{
						t=document.documentElement.scrollTop;
						l=document.documentElement.scrollLeft;
						w=document.documentElement.scrollWidth;
						h=document.documentElement.scrollHeight;
					}
					else if(document.body)
					{
						t=document.body.scrollTop;
						l=document.body.scrollLeft;
						w=document.body.scrollWidth;
						h=document.body.scrollHeight;
					}
					iw=self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth||0;ih=self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0;
				}
				return{t:t,l:l,w:w,h:h,iw:iw,ih:ih};
			}
			,getMargins:function(e,toInteger)
			{
				var el=jQuery(e);
				var t=el.css('marginTop')||'';
				var r=el.css('marginRight')||'';
				var b=el.css('marginBottom')||'';
				var l=el.css('marginLeft')||'';
				if(toInteger)
					return{t:parseInt(t)||0,r:parseInt(r)||0,b:parseInt(b)||0,l:parseInt(l)};
				else
					return{t:t,r:r,b:b,l:l};
			}
			,getPadding:function(e,toInteger)
			{
				var el=jQuery(e);
				var t=el.css('paddingTop')||'';
				var r=el.css('paddingRight')||'';
				var b=el.css('paddingBottom')||'';
				var l=el.css('paddingLeft')||'';
				if(toInteger)
					return{t:parseInt(t)||0,r:parseInt(r)||0,b:parseInt(b)||0,l:parseInt(l)};
				else
					return{t:t,r:r,b:b,l:l};
			}
			,getBorder:function(e,toInteger)
			{
				var el=jQuery(e);
				var t=el.css('borderTopWidth')||'';
				var r=el.css('borderRightWidth')||'';
				var b=el.css('borderBottomWidth')||'';
				var l=el.css('borderLeftWidth')||'';
				if(toInteger)
					return{t:parseInt(t)||0,r:parseInt(r)||0,b:parseInt(b)||0,l:parseInt(l)||0};
				else
					return{t:t,r:r,b:b,l:l};
			}
			,getPointer:function(event)
			{
				//position tweak
				var x=event.pageX||(event.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft))||0;
				var y=event.pageY||(event.clientY+(document.documentElement.scrollTop||document.body.scrollTop))||0;
				return{x:x,y:y};
			}
			,traverseDOM:function(nodeEl,func)
			{
				func(nodeEl);
				nodeEl=nodeEl.firstChild;
				while(nodeEl)
				{
					jQuery.iUtil.traverseDOM(nodeEl,func);nodeEl=nodeEl.nextSibling;
				}
			}
			,purgeEvents:function(nodeEl)
			{
				jQuery.iUtil.traverseDOM(nodeEl,function(el)
				{
					for(var attr in el)
					{
						if(typeof el[attr]==='function')
						{
							el[attr]=null;
						}
					}
				});
			}
			,centerEl:function(el,axis)
			{
				var clientScroll=jQuery.iUtil.getScroll();
				var windowSize=jQuery.iUtil.getSize(el);
				if(!axis||axis=='vertically')
					jQuery(el).css({top:clientScroll.t+((Math.max(clientScroll.h,clientScroll.ih)-clientScroll.t-windowSize.hb)/2)+'px'});
				if(!axis||axis=='horizontally')
					jQuery(el).css({left:clientScroll.l+((Math.max(clientScroll.w,clientScroll.iw)-clientScroll.l-windowSize.wb)/2)+'px'});
			}
			,fixPNG:function(el,emptyGIF)
			{
				var images=jQuery('img[@src*="png"]',el||document),png;
				images.each(function()
				{
					png=this.src;
					this.src=emptyGIF;
					this.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+png+"')";
				});
			}
		};
		[].indexOf||(Array.prototype.indexOf=function(v,n){n=(n==null)?0:n;
		var m=this.length;
		for(var i=n;i<m;i++)
			if(this[i]==v)
				return i;
			return-1;
		});
