jQuery(function(){
	// add drag and drop functionality
	jQuery("DIV.zoom_image").easydrag();
 
	// set a function to be called on a drop event
	jQuery("DIV.zoom_image").ondrop(function(e, element){ 
		return false;
	});
});




var zoom_levels=new Array();
function Zoom(obj_id,zoomin)
{
	//list of images
	var zoom_images=jQuery("#"+obj_id+" DIV.zoom_image");
	
	//current (last) zoom level)
	var zoom_level=zoom_levels[obj_id]?zoom_levels[obj_id]:0;	
	var last_zoom_level=zoom_level;
	
	//zoom in or out
	if(zoomin)	zoom_level++;
	else		zoom_level--;		

	//zoomed beyond capabilities?
	if(zoom_level>=zoom_images.length)	zoom_level=zoom_images.length-1;
	else if(zoom_level<0)				zoom_level=0;
	
	if(zoom_level<=0)	document.getElementById("zoom_out_image").src='/images/zoom-out-disabled.gif';
	else				document.getElementById("zoom_out_image").src='/images/zoom-out.gif';

	if(zoom_level>=(zoom_images.length-1))	 document.getElementById("zoom_in_image").src='/images/zoom-in-disabled.gif';
	else				 					document.getElementById("zoom_in_image").src='/images/zoom-in.gif';


	//move to last spot...
	if(zoom_level>0)
	{	
		var last=jQuery(zoom_images.get(last_zoom_level));
		var cur=jQuery(zoom_images.get(zoom_level));
		var ratio_x=jQuery(cur).width()/jQuery(last).width();
		var ratio_y=jQuery(cur).height()/jQuery(last).height();


		var newleft=ratio_x*parseInt(last[0].style.left);
		var newtop=ratio_y*parseInt(last[0].style.top);
		
//		var newleft=ratio_x*(parseInt(last[0].style.left)+(jQuery(last).width()/2))-(jQuery(cur).width()/2);
//		var newtop=ratio_y*(parseInt(last[0].style.top)+(jQuery(last).height()/2))-(jQuery(cur).height()/2);


		var parent_node=jQuery(cur).parent();		
		if(parent_node)
			parent_node=parent_node[0];		
		if(parent_node)
		{
		  	var minl=0-($(cur).width()-$(parent_node).width());
		  	if(newleft<minl)	newleft=minl;
		  	if(newleft>0)		newleft=0;

		  	var minh=0-($(cur).height()-$(parent_node).height());
		  	if(newtop<minh)	newtop=minh;
		  	if(newtop>0)	newtop=0;
		  
		}		

	
		cur[0].style.left=newleft+"px";
		cur[0].style.top=newtop+"px";
	}

	//hide last, show current, save zoom level
    zoom_images.get(last_zoom_level).style.display='none';
    zoom_images.get(zoom_level).style.display='block';
	zoom_levels[obj_id]=zoom_level;		
}

