var dob, ind, xm, xmb, ov;
var M = true;

function dock(dock, sMin, sMax) {
	this.icons = document.getElementById(dock).getElementsByTagName('img');
	this.N = this.icons.length;
	this.s = sMin;
	this.ovk = 0;
	this.pxLeft = function(o) {
		for (var x=-document.documentElement.scrollLeft; o != null; o = o.offsetParent) { x+=o.offsetLeft; }
		return x;
	}
	for(var i=0;i<this.N;i++) {
	   with(this.icons[i]) {
			style.width = sMin+"px";
			style.height = sMin+"px";
			className = "dockicon";
	   }
	}
	this.run = function() {
	   with(this) {
	       for(var i=0;i<N;i++) {
	           var o = icons[i];
	           if (o == null) { /*for IE*/continue; } 
	           var W = parseInt(o.style.width);
	           if (ov && ov.className == "dockicon") {
	               if (ov != ovk && s >= sMax -5 && W >= sMax - 5) {
	                   if (ovk) { ovk.parentNode.getElementsByTagName('span')[0].style.display = 'none'; }
	                   ov.parentNode.getElementsByTagName('span')[0];
	                   ovk = ov;
	                   ov.parentNode.getElementsByTagName('span')[0].style.display = 'block';
	               }
		           if (M) W = Math.max((s*Math.cos(((pxLeft(o)+W/2)-xm)/sMax)), sMin);
		           s = Math.min(sMax,s+1);
	           } else {
	               s = Math.max(s-1, sMin);
				   W = Math.max(W-N, sMin);
	               if (ovk && s < sMax - 5 && W < sMax - 5) {
	                  ovk.parentNode.getElementsByTagName('span')[0].style.display = 'none';  
	                  ovk = 0;
	               }
			   }
			   o.style.width = W+"px";
			   o.style.height = W+"px";
	       }
	       if(s >= sMax) M = false;
	   }
	}
}

document.onmousemove = function(e) {
   if(window.event) e=window.event;
   xm = (e.x || e.clientX);
   if (xm!=xmb) { M = true; xmb = xm; }
   ov = (e.target) ? e.target : ((e.srcElement) ? e.srcElement : null);
}