var ImgScrollLoader = new Class({
	
	initialize: function(options){
		this.options = $merge(options, {
			container: 'gallery',
			interval: 200
		});
		this.container = $(this.options.container);
		if(!this.container) return;
		this.imgs = this.container.getElements('img');
		this.imgsCache = $H();
		this.addImgs();
		this.timer = this.match.periodical(this.options.interval, this);
	},
	
	addImgs: function(el){
		var offset = 0;
		this.imgs.each(function(img){
			var imgOffset = img.getPosition().y;
			this.imgsCache[imgOffset] =	this.imgsCache[imgOffset] || [];
			this.imgsCache[imgOffset].push(img);
		},this);
		return this;
	},
	
	match: function(h){
		if(this.imgsCache.getKeys().length == 0){
			$clear(this.timer);
			return;
		}
		var imgs = this.imgsCache,
			scrollY = window.getScroll().y,
			windowY = window.getSize().y;
		imgs.each(function(img, h){
			if(h - scrollY > windowY) return;
			var temp = [];
			imgs[h].each(function(img){
				img.set('src', img.get('init_src'));
				img.getParent('.item').addClass('item-loaded');
				temp.push(img.get('init_src'));
			});
			this.log(temp.join('<br/>')+'<hr/>');
			imgs.erase(h);
		},this);
	},
	
	log: function(html){
		$('log-box').innerHTML += html;
	}
	
});

window.addEvent('domready',function(){

	new ImgScrollLoader();

});
