// JavaScript Document
function Zoom(id){
	var obj=document.getElementById(id);
	var t1,t2,t3,width;
	this.id=id;
	var x3=obj.offsetWidth;
	//obj.onclick=function(){onclick(this);};
 	this.getOffsetRect= function(elem) {  
       var box = elem.getBoundingClientRect()  
       var body = document.body  
       var docElem = document.documentElement  
       var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop  
       var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft  
       var clientTop = docElem.clientTop || body.clientTop || 0  
       var clientLeft = docElem.clientLeft || body.clientLeft || 0  
       var top  = box.top +  scrollTop - clientTop  
       var left = box.left + scrollLeft - clientLeft  
       return { top: Math.round(top), left: Math.round(left) }  
    } 
	
	this.GetLeft= function () {
        var curNode = obj;
        var left    = 0;
        do {
            left += curNode.offsetLeft;
            curNode = curNode.offsetParent;

        } while(curNode.tagName.toLowerCase() != 'body');
        return left;
    }
	
    this.GetTop=function () {
        var curNode = obj;
        var top    = 0;
        do {
            top += curNode.offsetTop;
            curNode = curNode.offsetParent;
        } while(curNode.tagName.toLowerCase() != 'body');
        return top;
    }
	//alert(this.GetTop(obj))
	if (obj.style.position!='absolute'){
		obj.style.position='absolute';
		//obj.style.top=this.GetTop();
		//alert(GetTop());
		//obj.style.left=this.GetLeft();
		}
	this.onClick=function(xUp, xDown, speed){
		if (obj.offsetWidth>xDown){this.Down(xDown,speed);}
				 else {this.Up(xUp,speed);}		
		}
	
	this.Down=function(widthDown, speed){
		clearInterval(t1);
		
		var width=obj.offsetWidth;
		var height=obj.offsetHeight;
		var prop=height/width;
		var z = widthDown||x3
		t2=setInterval(function(){
							       
							 	   if ((width-25)>z){
									// alert(width+' '+z);
									 width-=50;
									 obj.style.width=width+'px';
									 obj.style.height=Math.round(prop*obj.offsetWidth)+'px';
								   	}else {clearInterval(t2);obj.style.zIndex=1; obj.parentNode.style.zIndex=1;} 
							   },speed);
		
		}
	this.Up=function(widthUp,speed){
		clearInterval(t2);
		obj.style.zIndex=99;
		obj.parentNode.style.zIndex=99;
		var width=obj.offsetWidth;
		var height=obj.offsetHeight;
		var prop=height/width;
		t1=setInterval(function(){
							       if (width<widthUp){
								   //alert(op+' '+x);
								   //obj.style.opacity = op;   
								   width+=50;
								   obj.style.width=width+'px';
									obj.style.height=prop*obj.offsetWidth+'px';
								   
								   }else {clearInterval(t1);} 
							   },speed);
		}
	this.move=function(dX,dY,speed){
		clearInterval(t3);
		var top=obj.offsetTop;
		var left=obj.offsetLeft;
		var i=0;
		var toX=top+dX;
		var toY=left+dY;
		var ig=Math.sqrt(Math.abs(dX*dX)+Math.abs(dY*dY));
		var k=Math.abs(dY/dX);
		var g=50;
		//var step=Math.sqrt(100/(k+1));
		var step=Math.abs(dX*g/ig);
		//lert(dX+' '+ig+' '+step);
		t3=setInterval(function(){
								
							  //   if ((Math.abs(dX)>i)||(Math.abs(dY)>iy)){
								   if (Math.abs(ig)>=i){
								   
								   //obj.style.opacity = op;   
								    //if (Math.abs(dY)>iy) {if (toY>left) {left=left+(10*k);} else  {left=left-(10*k);}}
									
									if (toX>top) {top+=step;} else {top-=step;}
									if (toY>left) {left=left+k*step;} else  {left=left-k*step;}
								    obj.style.top=top+'px';
									obj.style.left=left+'px';
								    i+=g;
									//iy=iy+10*k;
								    }else {clearInterval(t3);} 
							   },speed);
		
		
		}
}