var small=338,bor=1,hfsm=small/2,bminx,bminy,sf,bx,hfbx;
var ph_img,zoombox,spy,mag,zoomimg,zp;
var re=navigator.userAgent.match("Firefox")?0:.5;

function chColor(col)
{
	var i=new Image();
	zoombox.href=src[col];
	
	i.onload=function()
	{
		ph_img.src=cols[col];
		ph_img.style.height=i.height+"px";
		zp.src=src[col];
		zp.style.width=lw[col]+'px';
		zp.style.height=lh[col]+'px';
		
		sf=lw[col]/small;
		bminx=small-lw[col];
		bminy=small-lh[col];
		bx=(small/sf)+re-(bor*2);
		hfbx=bx/2;
		zoombox.style.width=bx+'px';
		zoombox.style.height=bx+'px';
	};
	
	i.src=cols[col];
}

function rsColor()
{
	var i=new Image();

	zoombox.href=dsrc;

	i.onload=function()
	{
		ph_img.src=reset;
		ph_img.style.height=i.height+"px";
		zp.src=dsrc;
		zp.style.width=dw+'px';
		zp.style.height=dh+'px';
		
		sf=dw/small;
		bminx=small-dw;
		bminy=small-dh;
		bx=(small/sf)+re-(bor*2);
		hfbx=bx/2;
		zoombox.style.width=bx+'px';
		zoombox.style.height=bx+'px';
	};

	i.src=reset;
}

document.observe("dom:loaded", function() {
	ph_img=$$("#photos img")[0];
	zoombox=$('zoombox');
	mag=$$('.price select.magnification');
	zoomimg=$('zoomimg');
	zp=$('zoomphoto');
	
	zoombox.hide();
	Event.observe(ph_img, "mousemove", mouseMove, false);
	Event.observe(zoombox, "mousemove", mouseMove, false);
	
	sf=dw/small;
	bminx=small-dw;
	bminy=small-dh;
	bx=(small/sf)+re-(bor*2);
	hfbx=bx/2;
	zoombox.style.width=bx+'px';
	zoombox.style.height=bx+'px';
	zoombox.setOpacity(0.5);
	
	zoombox.href=dsrc;
	
	try{
	initLightbox();}catch(err){}
});

function mouseOver()
{
	zoombox.style.display="block";
	mag.each(Element.hide);
	zoomimg.style.display="block";
}

function mouseOut()
{
	zoombox.style.display="none";
	mag.each(Element.show);
	zoomimg.style.display="none";
}

function mouseMove(e)
{
	var element=Event.element(e);
	var mouseX=Event.pointerX(e),mouseY = Event.pointerY(e);
	Event.stop(e);
	var co=Element.cumulativeOffset(ph_img);
	var lx=bound(bminx,0,hfsm-((mouseX-co["left"]-.5)*sf)),ly=bound(bminy,0,hfsm-((mouseY-co["top"]-.5)*sf));
	zp.style.left=lx+"px";
	zp.style.top=ly+"px";
	zoombox.style.left=((-lx/sf)+re)+"px";
	zoombox.style.top=((-ly/sf)+re)+"px";
}

function bound(lb,ub,i)
{
	return Math.max(lb,Math.min(ub,i));
}