﻿GScript=Object.extend({
	SlideShow: null
}, window.GScript || {});

var SlideShow=Class.create({

	prefix: '_slideShow_slide_',
	num: 0,

	run: function(layer){
		var param = Utility.getParam($(layer), 'slideShow');
		var dimensions = $(layer).getDimensions();
		
		$(layer).appendChild(Builder.node('div', {id: this.prefix + 'container', style:'position:absolute; top:0px; left:0px;'}));
		
		var slides = param.slides.split(',');
		var content = "";
		var begin = this.num;
		for(var $i=0; $i<slides.length; $i++){
			slides[$i] = Utility.trim(slides[$i]);
			content += '<img id="' + this.prefix + this.num + '" src="' + slides[$i] + '" style="display: none; position: absolute; top: 0px; left: 0px; width: ' + dimensions.width + 'px; height: ' + dimensions.height + 'px; border: 0px" />';
			this.num++;
		} // end for $i
		var end = this.num - 1;
		
		$(this.prefix + 'container').update(content);
		new PeriodicalExecuter((function(pe){
			if($(layer) == null){
				pe.stop();
			}
			if(Utility.isAllImgLoaded(layer)){
				pe.stop();
				var current = begin;
				$(this.prefix + current).appear({duraton: param.appear});
				
				if(begin != end){
					new PeriodicalExecuter((function(pe){
						if($(this.prefix + 'container') == null){
							pe.stop();
						}
						else{
							$(this.prefix + current).fade({duration: param.appear});
							current = current == end ? begin : current + 1;
							$(this.prefix + current).appear({duraton: param.appear});
						}
					}).bind(this), param.speed);
				}
			}
		}).bind(this), 0.5);
	} // end run
	
})

if(!GScript.SlideShow){
	GScript.SlideShow = new SlideShow();
}
