//configuration values
var imageX = 1000;
var imageY = 692;
var zoomPercent = 167;

//init
var zoom = zoomPercent/100;
var xOffset = (imageX - imageX/zoom)/2;
var yOffset = (imageY - imageY/zoom)/2;
document.getElementById('img_view').style.width=imageX/zoom;
document.getElementById('img_view').style.height=imageY/zoom;
document.getElementById('main_img').style.width=imageX/zoom;
document.getElementById('main_img').style.height=imageY/zoom;
var zoomedIn = false;
var mydrag;

//functions
function zoomIn() {
	document.getElementById('main_img').style.display='inline';
	document.getElementById('main_img_small').style.display='none';
	new Effect.Parallel([new Effect.Scale('main_img', zoomPercent, {}), new Effect.Move('main_img', {x: -xOffset, y:-yOffset}) ], { });
	
	if (Prototype.Browser.Gecko) { 
		setCursor('-moz-grab');	
	} else if (Prototype.Browser.IE) {
		setCursor('images/grab.cur');
	} else {
		setCursor('move');
	}
	
	mydrag = new Draggable('main_img',{starteffect: function() {}, endeffect: function() {}});
	document.getElementById('zoomOutLink').style.display = 'inline';
	document.getElementById('zoomInLink').style.display = 'none';
	zoomedIn = true;
}

function zoomOut() {
	//calculate target position
	var xCurrent = parseInt(document.getElementById('main_img').style.left);
	var yCurrent = parseInt(document.getElementById('main_img').style.top);
	var xTarget = -xCurrent;
	var yTarget = -yCurrent;

	new Effect.Parallel([new Effect.Scale('main_img', 100/zoom, {}), new Effect.Move('main_img', {x:xTarget, y:yTarget}) ], { });
	
	if (Prototype.Browser.Gecko) { 
		setCursor('-moz-zoom-in');	
	} else if (Prototype.Browser.IE) {
		setCursor('images/zoom-in.cur');
	} else {
		setCursor('pointer');
	}
	
	mydrag.destroy();
	mydrag = null;
	document.getElementById('zoomOutLink').style.display = 'none';	
	document.getElementById('zoomInLink').style.display = 'inline';	
	zoomedIn = false;
	setTimeout("document.getElementById('main_img').style.display='none';document.getElementById('main_img_small').style.display='inline';", 1200);
}

function setCursor(cursorName) {
	document.getElementById('img_view').style.cursor = cursorName;
}

function handle() {
	if (!zoomedIn) {
		zoomIn();
	}
}

function switchImage(imageSrc, imageSrcSmall, isMain) {
	if (zoomedIn) {
		zoomOut();
	}
	
	document.getElementById('main_img').src=imageSrc;
	document.getElementById('main_img_small').src=imageSrcSmall;
	
	if (isMain) {
		document.getElementById('showMainLink').style.display = 'none';	
	} else {
		document.getElementById('showMainLink').style.display = 'inline';	
	}
}