/**/
var imagesList = new Class ({
	images: [],
	loaded: [],
	numElements: 0,
	initialize: function (sliderObj, container, div, scrollSpeed, delimeter, slide_mode, numImgs, imagesByStep) {
		this.sliderObj = sliderObj;
		this.container = container;		
		this.bgLine = div;
		this.scrollSpeed = scrollSpeed;
		this.delimeter = delimeter;
		this.slide_mode = slide_mode;
		this.images = this.bgLine.getElements('.bgimg');
		this.numElements = numImgs;
		this.scrollRange = Math.round((slide_mode == 'horizontal' ? div.getSize().x - container.getSize().x : div.getSize().y - container.getSize().y) / delimeter);
//		this.Morph = new Fx.Morph(div, {duration: scrollSpeed, transition: Fx.Transitions.Linear});
//		this.morphMode = (slide_mode == 'horizontal' ? 'left' : 'top');
//		this.step = -Math.round(div.getStyle(morphMode).toInt() / delimeter);
		this.step = div.get('rel').toInt();
		this.steps = 1;
		this.imagesByStep = imagesByStep ? imagesByStep : 1;
		this.moved = false;
		this.initScroll();
	},	
	setPos: function (num) {		
		this.images.filter(function (el) {return el.hasClass('show')}).removeClass('show').addClass('hide');
		num = num.toInt();
		if(num >= 0 && num < this.images.length - this.numElements) {
			for (i = 0; i < this.numElements; i++) {
				this.showImage(num + i);
			}
		} else {
			for (i = this.images.length - this.numElements + 1; i < this.images.length; i++) {
				this.showImage(i);
			}
		}
	},
	showImage: function (num) {
		var image = this.images[num];
		if(!this.loaded.contains(num)) {
			var bgimage = image.getStyle('background-image');
			//alert(bgimage);
			var regExp = new RegExp('"', 'g');
			bgimage = bgimage.substr(4, bgimage.lastIndexOf(')') - 4).replace(regExp, '');
			image.setStyle('background-image', '');
			image.removeClass('hide').addClass('load');
			var img = new Asset.image(bgimage, {'onload': function() {
				image.setStyle('background-image', 'url(' + bgimage + ')');
				image.removeClass('load').addClass('show');			
			}//, 'onerror': function() {alert("error loading image \n" + bgimage);}			
			});
			this.loaded.push(num);
		} else {
			image.removeClass('hide').addClass('show');
		}
	},
	hideImage: function (num) {
		this.images[num].removeClass('show').addClass('hide');
	},
	initScroll: function() {		
		if(this.scrollRange > 0) {			
			this.sliderObj.show();
			var thisObject = this;
			this.slider = new Slider(this.sliderObj.getElement('.slider_cont'), this.sliderObj.getElement('.slider_cont').getElement('.slider'), {
				steps:	this.scrollRange,	
				range:	[0, this.scrollRange],
				mode:	this.slide_mode ? this.slide_mode : 'vertical',
				wheel:	false,
				onChange: function(value) {
					thisObject.setPos(value * thisObject.imagesByStep);
				}
			}).set(this.step);
			
			this.container.addEvent('mousewheel', function(e) {
				e = new Event(e).stop();
				if(!thisObject.moved) {
					thisObject.moved = true;
					var step = thisObject.slider.step - e.wheel * thisObject.steps; 
					thisObject.slider.set(step);
					(function() {thisObject.moved = false}).delay(thisObject.scrollSpeed);
				}
			});
			this.sliderObj.getElement('.slider_up').addEvent('click', function() {
				if(thisObject.slider.step > 0) {
					if(thisObject.sliderObj.getElement('.slider_down').getStyle('cursor') == 'default') {
						thisObject.sliderObj.getElement('.slider_down').setStyle('cursor', 'pointer');
					}
					if(thisObject.slider.step - 1 == 0) {
						thisObject.sliderObj.getElement('.slider_up').setStyle('cursor', 'default');
					}
					thisObject.slider.set(thisObject.slider.step - 1);
				}
			});
			this.sliderObj.getElement('.slider_down').addEvent('click', function() {
				if(thisObject.slider.step < thisObject.scrollRange) {
					if(thisObject.sliderObj.getElement('.slider_up').getStyle('cursor') == 'default') {
						thisObject.sliderObj.getElement('.slider_up').setStyle('cursor', 'pointer');
					}
					if(thisObject.slider.step + 1 == thisObject.scrollRange) {
						thisObject.sliderObj.getElement('.slider_down').setStyle('cursor', 'default');
					}
					thisObject.slider.set(thisObject.slider.step + 1);					
				}
			});
		} else {
			this.sliderObj.hide();
		}
	}	
});

window.addEvent('domready', function() {	
	if($('effect-in')) {		
		var effScroll = new imagesList($('effects_slider_container'), $('effect-box'), $('effect-in'), 250, 160, 'vertical', 4, 4);
	}
	if($('frames-box')) {		
		var frScroll = new imagesList($('frames_slider_container'), $('frames-box'), $('frames-in'), 250, 160, 'vertical', 4, 4);
	}
	if($('frame_pictures-in')) {		
		var ptScroll = new imagesList($('frame_pictures_slider_container'), $('frame_pictures-box'), $('frame_pictures-in'), 250, 100, 'vertical', 2, 2);
	}
});
/**/