/**
 * Check for global kuco namespace
 */
if(!$chk(kuco)) {
	var kuco = {}; 
}

kuco.Slideshow = new Class({
	slideshowNodes: new Array(),
	currentSlide: null,
	mainNodeid: null,
	
	initialize: function(mainNodeid) {
		this.mainNodeid = mainNodeid;
		
		this.collectSlideshowNodes(mainNodeid);
		
		$('prev' + mainNodeid).addEvent('click', this.previousSlide.bind(this));
		$('next' + mainNodeid).addEvent('click', this.nextSlide.bind(this));
		
		$$('#thumbs' + mainNodeid + ' img').each(function(item, index) {
			$(item).addEvent('click', function() {
				this.updateSlideshow(item.id);
			}.bind(this));
		}.bind(this));
	},

	previousSlide:  function() {
		var len = this.slideshowNodes.length;
		var curIndex = this.slideshowNodes.indexOf(this.currentSlide);
		
		if (curIndex > 0) {
			if (len > (curIndex-1)){ 
				this.updateSlideshow(this.slideshowNodes[curIndex-1]);
			}
		}
		return false;
	},
	
	nextSlide: function() {
		var len = this.slideshowNodes.length;
		var curIndex = this.slideshowNodes.indexOf(this.currentSlide);
		
		if (curIndex < len-1) {
			this.updateSlideshow(this.slideshowNodes[curIndex+1]);
		}
		return false;
	},

	updateSlideshow: function(slideid) {
		slideid = slideid.replace('thumb', '');
	
		this.updateSlideshowMain(slideid);
		this.setThumbSelected(slideid);
		this.currentSlide = slideid;
		return false;
	},

	collectSlideshowNodes : function(nodeid) {
		var postObject = {
			action:'EOSGetSlideshowNodes',
			nodeid: nodeid};
		var request = new Json.Remote('/sbeos/ajax/JsonCall.php', {onComplete:this.collectSlideshowNodesComplete.bindAsEventListener(this)}).send(postObject);
	},

	collectSlideshowNodesComplete : function(JsonResponse) {
		this.slideshowNodes = JsonResponse.nodes;
		
		this.updateSlideshow(this.slideshowNodes[0]);
	},
	
	setThumbSelected : function(nodeid) {
			$$('#thumbs' + this.mainNodeid + ' img').each(function(thumb) {
			thumb.removeClass('selectedImage');
		});
		
		$('thumb' + nodeid).addClass('selectedImage');
	},

	updateSlideshowMain: function(nodeid) {
		var postObject = {
			action:'EOSGetSlideshowImage',
			nodeid: nodeid};
		var request = new Json.Remote('/sbeos/ajax/JsonCall.php', {onComplete:this.updateSlideshowMainComplete.bindAsEventListener(this, [nodeid])}).send(postObject);
	},
	
	updateSlideshowMainComplete: function(JsonResponse, nodeid) {
		var tmpContainer = new Element('div');
		tmpContainer.setHTML(JsonResponse.template);
		
		imgnode = tmpContainer.getFirst();
		imgnode.id = 'slideshowmain' + this.mainNodeid;

		$(imgnode.id).replaceWith(imgnode);
	}
	
});