/* work.js */

var spy;
var set = 1;


/* initial actions */
window.addEvent('domready', function() {

	// projects
	$$('.project.unprepared .project-window').each(function(item, i) {
		item.fade('hide');
		//prepareProject(item);
	});
		
});
window.addEvent('load', function() {
	
	// load more work
	if ($('load')) doSpy();
	
	// projects
	$$('.project.unprepared').each(function(item, i) {
		prepareProject(item);
	});
		
});


// set up project
function prepareProject(project) {
	var rel = project.get('rel');
	var pw = $$('.project-window[rel='+rel+']')[0];
	pw.fade('hide');
	project.store('tabs', new SlidingTabs(null, pw, {
		animateHeight: false
	}));
	project.addEvent('click', function(e) {
		//e.stop();
		this.retrieve('tabs').next();
	});
	if (images = $$('img[rel='+rel+']')) {
		var image_paths = [];
		images.each(function(item, index) {
			image_paths.push(item.get('src'));
		});
		new Asset.images(image_paths, {
			onComplete: function() {
				project.removeClass('unshown');
				pw.fade('in');
			}
		});
	}
	var tips = new Tips('.tipped', {text: false});
	project.removeClass('unprepared');
}

// load more work
function doSpy() {
	var pixels = window.getScrollSize().y - window.getSize().y - 100;
	if (!spy) {
		spy = new ScrollSpy({
			min: pixels,
			onEnter: function(position, state, enters) {
				if (state == 1) loadWork();
			}/*,
			onLeave: function(position, state, leaves) {
				//console.log(position.y);
			}*/
		});
	} else {
		spy.setOptions({
			min: pixels
		});
	}
}
function loadWork() {
	spy = null;
	set ++;
	new Request.HTML({
		append: 'content',
		onSuccess: function() {
			var load = load = $('load');
			if (load) { // more records found
				$('content').grab(load);
				doSpy();
			} else { // no more records; load destroyed by script
				spy = null;
			}
			$$('.project.unprepared').each(function(item, i) {
				prepareProject(item);
			});
		}
	}).get('/work.php?s='+set);
}


