	function explode(seperator, string) {
		
		var return_array = new Array;
			if (!empty(string)) {
				return_array = string.split(seperator);
			}
	
		return return_array;
	}
	
	function strtolower(string) {
			if (empty(string)) {
				return '';
			}
		return string.toLowerCase();
	}
	
	function empty(string) {
			if ((string == null) || (!string) || (string.length < 1)) {
				return true;
			} else {
				return false;	
			}
	}
	
	function strlen(string) {
			if ((string == null) || (!string)) {
				string = '';
			}
		return string.length;
	}
	
	function strpos(string, findString) {
			if ((string == null) || (!string)) {
				string = '';
			}
			if (string.indexOf(findString) != -1) {
				return true;	
			} else {
				return false;	
			}
	}
	
	function count(array) {
		return array.length;
	}


var imagesArray = new Array;
var selectedImage = 0;
var zoomStatus = false;

	function swapMain(type) {
		document.getElementById('mainImageContent').innerHTML = imagesArray[selectedImage][type];
	}
									
	function showImage(id) {
			if (id == selectedImage) return;
		selectedImage = id;
		swapMain('largeImage');
		stopZoom();
	}
									
	function switchZoom() {
			if (!zoomStatus) {
				startZoom();
			} else {
				stopZoom();
			}
	}
											
	function startZoom() {
		swapMain('full');
		zoomStatus = true;
		document.getElementById('zoomText').innerHTML = 'ZOOM OUT';
		
		addEvent(document.getElementById('mainImageContent'), 'mousedown', function (evt) {
				if (evt.preventDefault) {
					evt.preventDefault();
				} 
			startDrag();
			return false;
		});
		addEvent(document.getElementById('mainImageContent'), 'dragstart', function (evt) {
				if (evt.preventDefault) {
					evt.preventDefault();
				}
			return false;
		});
		addEvent(document, 'mouseup', function (evt) {
			stopDrag();
		});

	}

	function stopZoom() {
		swapMain('largeImage');
		zoomStatus = false;
		document.getElementById('zoomText').innerHTML = 'ZOOM';
		document.getElementById('mainImageContent').style.top = '0px';
		document.getElementById('mainImageContent').style.left = '0px';
	}
	
	function addEvent( obj, type, fn ) {
	  if ( obj.attachEvent ) {
		obj['e'+type+fn] = fn;
		obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
		obj.attachEvent( 'on'+type, obj[type+fn] );
	  } else {
		obj.addEventListener( type, fn, false );
	  }
	}
	
	function removeEvent( obj, type, fn ) {
	  if ( obj.detachEvent ) {
		obj.detachEvent( 'on'+type, obj[type+fn] );
		obj[type+fn] = null;
	  } else {
		obj.removeEventListener( type, fn, false );
	  }
	}
	
var startPosX = '';
var startPosY = '';
var bufferX = 0;
var mousePos = false;
var dragStatus = false;
	function startDrag() {
		
			if (!zoomStatus) {
				return;
			}
		document.body.style.cursor = 'move';
		document.getElementById('mainImageContent').firstChild.ondrag = 'return false';
		
		//Set the left as the offset left in case the image was centered.
		bufferX = parseInt(document.getElementById('mainImageContent').firstChild.offsetLeft);
		
		startPosX = mousePos.x;
		startPosY = mousePos.y;
		
		

		dragStatus = true;
	}
	
	function stopDrag() {
		dragStatus = false;
		document.body.style.cursor = '';
	}

		function updateDrag() {
			if (!dragStatus) {
				return;
			}

		var parentWidth = parseInt(document.getElementById('mainImage').offsetWidth-2);
		var width = parseInt(document.getElementById('mainImageContent').firstChild.offsetWidth);
		var parentHeight = parseInt(document.getElementById('mainImage').offsetHeight-2);
		var height = parseInt(document.getElementById('mainImageContent').firstChild.offsetHeight);
		var top = parseInt(document.getElementById('mainImageContent').style.top);
		var left = parseInt(document.getElementById('mainImageContent').style.left);
			if (isNaN(top)) {
				top = 0;
			}
			if (isNaN(left)) {
				left = 0;
			}
			
		var differenceLeft = mousePos.x-startPosX;
		startPosX = mousePos.x;
		var differenceTop = mousePos.y-startPosY;
		startPosY = mousePos.y;
		
		var ratioX = ((width-parentWidth)/parentWidth);
		
		var ratioY = ((height-parentHeight)/parentHeight);

		top += parseInt(differenceTop*ratioY);
		
		left += parseInt(differenceLeft*ratioX);

			if (top > 0) {
				top = 0;
			}
			if (left > 0) {
				left = 0;
			}
		var minX = 0 - (width-parentWidth);
		var minY = 0 - (height-parentHeight);
			if (left < minX) {
				left = minX;
			}
			if (top < minY) {
				top = minY;
			}
		
			if (ratioY > 0.1) document.getElementById('mainImageContent').style.top = top+'px';
			if (ratioX > 0.1) document.getElementById('mainImageContent').style.left = left+'px';
	}
	
	function trackMouse(ev){ 
		ev = ev || window.event; 
		
		mousePos = getMouseCoords(ev);
			if (dragStatus) {
				updateDrag();
			}
	} 
	
	function getMouseCoords(ev){ 
			if(ev.pageX || ev.pageY){ 
				return {x:ev.pageX, y:ev.pageY}; 
			}
		return { x:ev.clientX + document.body.scrollLeft - document.body.clientLeft, y:ev.clientY + document.body.scrollTop  - document.body.clientTop }; 
	}
	
document.onmousemove = trackMouse;

