function imageControlsSmall()
{
	// init product page thumbnails
	if($('imageNavigatorSmall')) {
		var thumbnails = $$('#imageNavigatorSmall a.thumbnail');
		if(thumbnails[0]) {
			for (var i = 0; i < thumbnails.length; i++) {
				thumbnails[i].addEvent('click', function(e){
					e = new Event(e);
					var productImageSmall = $('productImageSmall');
					var largerImageButtonSmall = $('largerImageButtonSmall');
					var thumbLink = this.getProperty('href');
					var thumbLinkURL = thumbLink.split('?');
					var s7params = productImageSmall.getProperty('src').split('?')[1];
					
					var oldSmoothboxLink = largerImageButtonSmall.getProperty('href').split('curProdImg=');
					var oldSmoothbox = oldSmoothboxLink[1].substring(0, oldSmoothboxLink[1].indexOf('&'));
					
					var newSmoothBox = thumbLinkURL[0].substring(thumbLinkURL[0].lastIndexOf('/') + 1);
					
					largerImageButtonSmall.setProperty('href', oldSmoothboxLink[0] + "curProdImg=" + oldSmoothboxLink[1].replace(oldSmoothbox, newSmoothBox));
					
					s7params = s7params.replace(oldSmoothbox, newSmoothBox);
					thumbLinkURL[0] = thumbLinkURL[0].substring(0, thumbLinkURL[0].lastIndexOf('/'));
					
					productImageSmall.fade('hide');
					productImageSmall.setProperty('src', thumbLinkURL[0] + "?" + s7params)
					productImageSmall.fade('in');
					
					e.stop();
				});
			}
		}
	}	
}

function imageControls() {

	// init image navigation controls
	
	if($('zoomOutButton')) {
		$('zoomOutButton').addEvent('click', function(e){
			e = new Event(e);
			s7zoom.zoomOut();
			e.stop();
		});
	}
	
	if($('zoomInButton')) {
		$('zoomInButton').addEvent('click', function(e){
			e = new Event(e);
			s7zoom.zoomIn();
			e.stop();
		});
	}
	
	if($('panLeftButton')) {
		$('panLeftButton').addEvent('click', function(e){
			e = new Event(e);
			s7zoom.pan('left',1);
			e.stop();
		});
	}
	
	if($('panRightButton')) {
		$('panRightButton').addEvent('click', function(e){
			e = new Event(e);
			s7zoom.pan('right',1);
			e.stop();
		});
	}
	
	if($('panUpButton')) {
		$('panUpButton').addEvent('click', function(e){
			e = new Event(e);
			s7zoom.pan('up',1);
			e.stop();
		});
	}
	
	if($('panDownButton')) {
		$('panDownButton').addEvent('click', function(e){
			e = new Event(e);
			s7zoom.pan('down',1);
			e.stop();
		});
	}
	
	if($('resetButton')) {
		$('resetButton').addEvent('click', function(e){
			e = new Event(e);
			s7zoom.reset();
			e.stop();
		});
	}

	// init image slider controls 		
	
	if($('imageSlide') && $('openButton') && $('closeButton')) {
	
		var mySlide2 = new Fx.Slide('imageSlide', {
			mode: 'horizontal',
			duration: 600,
			transition: Fx.Transitions.linear
		});
		
		var state = 'ready';
		
		$('openButton').addEvent('click', function(e){
			e = new Event(e);
			state = 'opening';
			mySlide2.slideIn();
			this.setStyles("position:absolute;");
			e.stop();
		});
		$('closeButton').addEvent('click', function(e){
			e = new Event(e);
			state = 'closing';
			mySlide2.slideOut();
			$('openButton').setStyles("position:static;");
			e.stop();
		});
	}
	
	if (typeof(s7zoom) != 'undefined' && s7zoom != null) {
	
		s7zoom.zviewer.addEventListener('endZoom', function(o) {
			var minScale = o.target.defaultScl / Math.pow(o.target.zoom_factor , o.target.max_zoom);

			if (o.target.zoom_factor_limit != 0) {
				minScale = Math.max(minScale, 1 / o.target.zoom_factor_limit);
			}
			
			if (Math.abs(o.target.defaultScl - o.target.currentScl) < 1e-6) {
				//viewer reached reset state
				$('imageController').removeClass('zoomedIn');
			} else {
				$('imageController').addClass('zoomedIn');
			}
			if (Math.abs(minScale - o.target.currentScl) < 1e-6) {
				//viewer reached maximum zoom
				$('zoomInButton').addClass('maxZoom')
			} else {
				$('zoomInButton').removeClass('maxZoom');
			}
			if ($('panLeftButton') && $('panRightButton') && $('panUpButton') && $('panDownButton')) {
			
				if (o.target.currentX == parseInt(o.target.checkPosition(o.target.currentX + 1, o.target.currentY, o.target.currentScl).nx)) {
					//viewer reached left border
					$('panLeftButton').addClass('maxPan');
				} else {
					$('panLeftButton').removeClass('maxPan');
				}
				if (o.target.currentX == parseInt(o.target.checkPosition(o.target.currentX - 1, o.target.currentY, o.target.currentScl).nx)) {
					//viewer reached right border
					$('panRightButton').addClass('maxPan');
				} else {
					$('panRightButton').removeClass('maxPan');
				}
				if (o.target.currentY == parseInt(o.target.checkPosition(o.target.currentX, o.target.currentY + 1, o.target.currentScl).ny)) {
					//viewer reached up border
					$('panUpButton').addClass('maxPan');
				} else {
					$('panUpButton').removeClass('maxPan');
				}
				if (o.target.currentY == parseInt(o.target.checkPosition(o.target.currentX, o.target.currentY - 1, o.target.currentScl).ny)) {
					//viewer reached down border
					$('panDownButton').addClass('maxPan');
				} else {
					$('panDownButton').removeClass('maxPan');
				}
			}
		});
	}
}

window.addEvent('domready', function(){
	imageControlsSmall();
	imageControls();
});
