var gallery_cache = new Array;						// Array holding preloaded images
var loaded = false;

function galleryLoadPackages( list ) {
	// Preload first image for each id in list
	if (!loaded) {
		var i=0;
		list = list.split(','); // Convert string to array
		for (i=0;i < list.length;i=i+1) {
			gallery_cache[i] = new Image();
			gallery_cache[i].src = '/data/products/photos/large/1/'+list[i]+'.jpg';
			//alert(gallery_cache[i].src);
		}
		loaded = true;
	}
}

function galleryLoadPhotos( id, list ) {
	// Preload all images in list for given id
	if (!loaded) {
		var i=0;
		list = list.split(','); // Convert string to array
		for (i=1;i <= list.length;i=i+1) {
			if (list[i-1] == '1') {
				gallery_cache[i] = new Image();
				gallery_cache[i].src = '/data/products/photos/large/'+i+'/'+id+'.jpg';
				//alert(gallery_cache[i].src);
			}
		}
		loaded = true;
	}
}

/* Thumbnail Scroller Gallery 
** An inline gallery with scrolling thumbnails. 
** (c.) Arc.Net.Au 2009
*/
var scroller_timer = null;
var scroller_div = null;
var scroller_div_content = null;
var scroller_div_last_node = null;
var scroller_nav_left = null;
var scroller_nav_right = null;
var scroller_active_thumbnail = null;
var scroller_thumbnails = null;
var scroller_ready = false;
var scroller_speed = 0;

var main_image = null;

function setThumbScrollSpeed(speed) {
	scroller_speed = speed;
}
function setThumbScrollOffset(x,y) {
	if (scroller_ready) {
		var y = y || 0;
		setThumbScroll(scroller_div.scrollLeft+x, scroller_div.scrollTop+y);
	}
}
function setThumbScroll(x,y) {
	if (scroller_ready) {
		var y = y || 0;
		if (x==0 && y==0) return;
		if (x <= 0) {
			// the scroll should not go past 0 (or Image 1)
			x = 0;
			cssjs('add', scroller_nav_prev, 'invisible');
		} else {
			cssjs('remove', scroller_nav_prev, 'invisible');
			// the maximum scroll is the virtual position of the last photo minus the width of the scroll area. Extra 10 for glow/shadows
			var max_x = (scroller_div_last_node.offsetLeft + scroller_div_last_node.offsetWidth) - scroller_div.offsetWidth +10;
			if (x >= max_x) {
				x = max_x;
				cssjs('add', scroller_nav_next, 'invisible');
			} else {
				// show right arrow
				cssjs('remove', scroller_nav_next, 'invisible');
			}
		}
		scroller_div.scrollLeft = x;
	}
}
function setMainImage(num) {
	if (scroller_ready) {
		var thumbnail_el = scroller_thumbnails[num-1];
		main_image.src = thumbnail_el.src;
		main_image.alt = thumbnail_el.alt;
		scroller_active_thumbnail = num;
		// set the scroll to center the clicked thumbnail
		setThumbScroll(thumbnail_el.parentNode.offsetLeft - (scroller_div.offsetWidth/2) + (thumbnail_el.parentNode.offsetWidth/2));
	}
}
function skipImage(count) {
	var count = count || 1;
	var next_image_num = scroller_active_thumbnail + count;
	if ( next_image_num > scroller_thumbnails.length ) {
		next_image_num = 1;
	} else if (next_image_num <= 0) {
		next_image_num = scroller_thumbnails.length;
	}
	setMainImage(next_image_num);
}
function ThumbScrollInterval() {
	setThumbScrollOffset(scroller_speed);
}
function startGallery() {
	
	// scroller globals
	main_image = obj('main_image'); // where images are enlarged
	
	scroller_div = obj('thumbnail_scroller', true); // the window with thumbnails
	scroller_div_content = obj('thumbnail_scroller_content');
	scroller_nav_prev = obj('thumbnail_scroller_prev');
	scroller_nav_next = obj('thumbnail_scroller_next');
	scroller_div_last_node = getLastElement(scroller_div_content);
	scroller_thumbnails = scroller_div_content.getElementsByTagName('img');
	// end globals
	
	if (scroller_thumbnails.length != 0) {
		scroller_div.onmouseover=function(){ setThumbScrollSpeed(0); };
		
		// Recursive script to update the scroll
		scroller_timer = window.setInterval('ThumbScrollInterval()',100);
		scroller_ready = true;
		
		// Jump to first image
		cssjs('add', main_image, "pointer noselect");
		main_image.onmousedown=function(){ skipImage(1); };
		setMainImage(1);
		
		// Add hand/pointer Cursors
		cssjs('add', main_image, 'pointer');
		
		// Set Prev / Next arrows
		scroller_nav_prev.onmouseover	= function(){ setThumbScrollSpeed(-4) }; // Rewind
		scroller_nav_prev.onclick		= function(){ setThumbScrollOffset(-200) }; // Fast Backwards
		scroller_nav_prev.onmouseout	= function(){ setThumbScrollOffset(0) }; // Stop on leave
		cssjs('add', scroller_nav_prev, "pointer noselect");
		
		scroller_nav_next.onmouseover	= function(){ setThumbScrollSpeed(4) }; // Play
		scroller_nav_next.onclick		= function(){ setThumbScrollOffset(200) }; // Fast Forward on click
		scroller_nav_next.onmouseout	= function(){ setThumbScrollOffset(0) }; // Stop on leave
		cssjs('add', scroller_nav_next, "pointer noselect");
	}
};
/* End Thumbnail Scroller Gallery */
