var jzoom = function(obj,args){
	this.args=args;
	this.zoomsrc=obj;	
	this.little=$("#small");
	this.mover=$("#mover");
	this.large=$("#large");	
}

jzoom.prototype={	
	init:function(){
		//alert($(this.little).attr("id"));	
		var me=this;
		$(this.little).width($("img",$(this.little)).width());
		$(this.little).height($("img",$(this.little)).height());				
		$(this.little).mouseenter(function(e){me.showIt(e,me)});		
		$(this.little).mouseleave(function(e){me.hideIt(e,me)});				
		$(this.mover).mouseenter(function(e){me.little.trigger("mouseenter")});
		$(this.mover).mousemove(function(e){me.moveIt(e,me)})
	}
	,
	checkLimits:function(e,src){		
		var scrpos=$(src).offset();
		var topLimit=scrpos.top;
		var bottomLimit=scrpos.top+$(src).height();
		var leftLimit=scrpos.left;
		var rightLimit=scrpos.left+$(src).width();
		var valid=true;
		if(e.pageY < topLimit || e.pageY > bottomLimit)
			valid=false	
		if(e.pageX < leftLimit || e.pageX > rightLimit)
			valid=false;
		return valid;
	}
	,
	showIt:function(e,parent){				
		$(parent.mover).css("display","block");
		this.scale=$("img",$(this.mover)).width()/$(this.little).width();		
		var pos=$(parent.zoomsrc).offset();		
		pos.top=e.pageY-pos.top-$(parent.mover).height()/2;
		pos.left=e.pageX-pos.left-$(parent.mover).width()/2;
		$(parent.mover).css({"top":pos.top+"px","left":pos.left+"px"})
	},
	hideIt:function(e,parent){						
		$(parent.mover).css("display","none");
	},
	moveIt:function(e,parent){			
		if(parent.checkLimits(e,parent.little)){			
			var pos=$(parent.zoomsrc).offset();		
			pos.top=e.pageY-pos.top-$(parent.mover).height()/2;
			pos.left=e.pageX-pos.left-$(parent.mover).width()/2;
			$(parent.mover).css({"top":pos.top+"px","left":pos.left+"px"});				
			$(parent.large).css({"top":-(pos.top)*parent.scale-$(parent.mover).height()/2+"px","left":-(pos.left)*parent.scale-$(parent.mover).width()/2+"px"});
		}
		else{
			parent.hideIt(e,parent);
		}
	},
	closeIt:function(e){
	}
}
