	function sl_zl_enter(id,fromX,toX,fromY,toY,imgurl) {
		obj = document.getElementById(id);
		if (!obj) return;

		if(!fromY) fromY = fromX;
		if(!toY) toY = toX;
		
		//alert("sl_zl_enter" + fromY);
		
		var data = obj.data;
		if (!data) data = "";
		var a=data.split(";");
		if (!a[0]) a[0]=0;
		if (!a[1]) a[1]=fromX;
		if (!a[2]) a[2]=0;
		if (!a[3]) a[3]=fromY;
		a[4] = imgurl;

		if (a[4] && a[4]!="undefined") obj.src = a[4];

		a[0]++;		// increase handler-num
		a[1]++;		// increase step
		a[2]++;		// increase handler-num
		a[3]++;		// increase step

		sizeX = a[1];		
		sizeY = a[3];
		obj.style.width = sizeX +"px"; 
		obj.style.height = sizeY +"px";

		obj.data = a[0]+";"+a[1]+";"+a[2]+";"+a[3]+";"+a[4];

		window.setTimeout("__sl_zl_zoom('"+id+"','"+a[0]+"','"+toX+"','"+a[2]+"','"+toY+"')",10);
	}



	function sl_zl_leave(id,fromX,toX,fromY,toY,imgurl) {
		obj = document.getElementById(id);
		if (!obj) return;

		if(!fromY) fromY = fromX;
		if(!toY) toY = toX;

		//alert("sl_zl_leave" + fromY);

		var data = obj.data;
		if (!data) data = "";
		var a=data.split(";");
		if (!a[0]) a[0]=0;
		if (!a[1]) a[1]=fromX;
		if (!a[2]) a[2]=0;
		if (!a[3]) a[3]=fromY;
		a[4] = imgurl;


		a[0]++;		// increase handler-num
		a[1]--;		// decrease step
		a[2]++;		// increase handler-num
		a[3]--;		// decrease step

		sizeX = a[1];		
		sizeY = a[3];
		obj.style.width = sizeX +"px"; 
		obj.style.height = sizeY +"px";

		obj.data = a[0]+";"+a[1]+";"+a[2]+";"+a[3]+";"+a[4];

		window.setTimeout("__sl_zl_zoom('"+id+"','"+a[0]+"','"+toX+"','"+a[2]+"','"+toY+"')",10);
	}



	function __sl_zl_zoom(id,numX,toX,numY,toY) {
		obj = document.getElementById(id);
		if (!obj) return;

		var data = obj.data;
		if (!data) data = "";
		var a=data.split(";");

		// a[0] = handler-num X
		// a[1] = step X
		// a[0] = handler-num Y
		// a[1] = step Y
		// a[2] = alternate finish imgurl

		// tout va bien?
		if (!a[0] || !a[1] || !a[2] || !a[3] || !a[4]) return;
		// darf ich ?
		if (a[0]!=numX && a[2]!=numY) return;
		//alert("__sl_zl_zoom|" + data + " - " + numX + ":" + toX + ":" + numY + ":" + toY)

		var finishX = false;
		var finishY = false;
		
		toX = parseInt(toX);
		iX = parseInt(a[1]);
		speed = 5;
		if (iX < toX) {
			iX+=3;
			finishX = iX>=toX;
		} else {
			iX-=1;
			finishX = iX<=toX;
			speed = 10;
		}
		if (finishX) iX=toX;

		toY = parseInt(toY);
		iY = parseInt(a[3]);
		speed = 5;
		//alert("__sl_zl_zoom|iY:" + iY + "|toY:" + toY);
		if (iY < toY) {
			iY+=3;
			finishY = iY>=toY;
		} else {
			iY-=1;
			finishY = iY<=toY;
			speed = 10;
		}
		if (finishY) iY=toY;



		sizeX = iX;
		sizeY = iY;
		obj.style.width = sizeX+"px";
		obj.style.height = sizeY+"px";
		obj.data = a[0]+";"+iX+";"+a[2]+";"+iY+";"+a[4];
//		defaultStatus = data;

		//alert("__sl_zl_zoom|" + iX + "|" + iY + " - " + finishX + "|" + finishY)

		if (finishX && finishY) {
			if (a[4] && a[4]!="undefined") obj.src = a[4];
			return;
		}
		window.setTimeout("__sl_zl_zoom('"+id+"','"+numX+"','"+toX+"','"+numY+"','"+toY+"')",speed);
	}
