var current_effect = false;
	
function ismobilesafari(){
    if(navigator.userAgent.indexOf('iPod') != -1){return true;}
    if(navigator.userAgent.indexOf('iPhone') != -1){return true;}
    if(navigator.userAgent.indexOf('iPad') != -1){return true;}
    else{return false;}
}

var m = new Element('featureDetect');
m.style.cssText = "-webkit-animation: 'animate' 2s ease 2;";
var hasAnimation = $defined(m.style['webkitAnimationName']);

function hideCurrent() {
	if (current_effect) {
	
		if (hasAnimation) {		
			current_effect.style.top = current_effect.originalTop;
			current_effect.style.left = current_effect.originalLeft;
			current_effect.style.width = current_effect.img_elem.thumb_width+"px";
			current_effect.style.height = current_effect.img_elem.thumb_height+"px";
			current_effect.img_elem.width = current_effect.img_elem.thumb_width;
			current_effect.img_elem.height = current_effect.img_elem.thumb_height;
		} else {
			current_effect.style.MozTransform = current_effect.originalMozTransform;
			var fx = new Fx.Morph(current_effect, {duration:700});
			fx.start({
				'left': current_effect.originalLeft,
				'top': current_effect.originalTop,
				'width': current_effect.img_elem.thumb_width,
				'height': current_effect.img_elem.thumb_height
			});
			var fx = new Fx.Morph(current_effect.img_elem, {duration:700});
			fx.start({
				'width': current_effect.img_elem.thumb_width,
				'height': current_effect.img_elem.thumb_height,
			});
		}
		
		$each($('effectsPreview').getElementsByTagName('div'), function(elem){
			elem.removeClass('disabled');
			elem.removeClass('active');
		});
		current_effect = false;
	}
}

var maxZindex = 1000;
var lightBoxAuto = false;
var lightBoxX = 0;
document.addEvent('domready', function() {
	window.addEvent('scroll', function() {
		var top = window.pageYOffset;
		var bottom = top + (window.innerHeight ? window.innerHeight : document.body.clientHeight);
		var y = $('previewLightbox').offsetTop;
		
		if (y > top && y < bottom) {
			window.removeEvents('scroll');
			lightBoxAuto = setInterval(function() {
				var effects = $('effectsPreview').getElements('.effect');
				effects[lightBoxX].fireEvent('click');
				lightBoxX = (lightBoxX+1)%effects.length;
				effects[lightBoxX].doPreload();
			}, 5000);
		} /*else if (lightBoxAuto) {
			clearInterval(lightBoxAuto);
			lightBoxAuto = false;
		}*/
		
	});
	
	$('effectsPreview').getElements('.effect').each(function(effect_elem) {
		
		effect_elem.originalTransform = effect_elem.style.webkitTransform;
		effect_elem.originalMozTransform = effect_elem.style.MozTransform;
		effect_elem.originalTop = effect_elem.style.top;
		effect_elem.originalLeft = effect_elem.style.left;
		
		effect_elem.doPreload = function() {
			if (!effect_elem.getElements('.fullimage').length) {
				var thumb_elem = effect_elem.getElements('.thumbimage')[0];
				var img_elem = document.createElement('img');
				img_elem.src = thumb_elem.src.replace('_thumb','_full');
				img_elem.className = 'fullimage';
/*					img_elem.style.display = 'none'; */ 
				img_elem.width = thumb_elem.width;
				img_elem.height = thumb_elem.height;
				img_elem.thumb_width = thumb_elem.width;
				img_elem.thumb_height = thumb_elem.height;
				img_elem.full_width = widths[effect_elem.id.substr(1)-1];
				img_elem.full_height = heights[effect_elem.id.substr(1)-1];
				if (!hasAnimation) img_elem.style.display = 'none'; /* ugly firefox workaround */
				effect_elem.img_elem = img_elem;
				effect_elem.appendChild(img_elem);
			}
		}
	
		effect_elem.addEvent('click', function(e) {
			effect_elem.style.webkitTransform = effect_elem.originalTransform;
			effect_elem.style.MozTransform = 'rotate(0deg)';//effect_elem.originalMozTransform;
			effect_elem.removeClass('hover');
			
			var was_effect = current_effect;
			hideCurrent();
			
			if (effect_elem != was_effect) {
				effect_elem.doPreload();
				
				$each($('effectsPreview').getElementsByTagName('div'), function(elem){
					elem.addClass('disabled');
					elem.removeClass('active');
				});
				
				effect_elem.addClass('active');
				effect_elem.removeClass('disabled');
				
				if (hasAnimation) {		
					effect_elem.style.left = (440-effect_elem.img_elem.full_width/2)+"px";
					effect_elem.style.top = (260-effect_elem.img_elem.full_height/2)+"px";
					effect_elem.style.width = effect_elem.img_elem.full_width+"px";
					effect_elem.style.height = (effect_elem.img_elem.full_height+27)+"px";
					effect_elem.img_elem.width = effect_elem.img_elem.full_width;
					effect_elem.img_elem.height = effect_elem.img_elem.full_height;
				} else { /* lol firefox lmao */
					effect_elem.img_elem.style.display = 'block'
					effect_elem.style.zIndex = ++maxZindex;
					var fx = new Fx.Morph(effect_elem, {duration:700});
					fx.start({
						'left': (440-effect_elem.img_elem.full_width/2),
						'top': (260-effect_elem.img_elem.full_height/2),
						'width': effect_elem.img_elem.full_width,
						'height': (effect_elem.img_elem.full_height+27)
					});
					var fx = new Fx.Morph(effect_elem.img_elem, {duration:700});
					fx.start({
						'width': effect_elem.img_elem.full_width,
						'height': effect_elem.img_elem.full_height,
					});
				}
				current_effect = effect_elem;
			}
			
			if (e) {
				clearInterval(lightBoxAuto);
				e.stopPropagation();
			}
		});
		
		if (!ismobilesafari()) { /* cheap workaround for safari's event model. android webkit doesn't have the problem */
			effect_elem.addEvent('mouseover', function(e) {
				clearInterval(lightBoxAuto);
				if (effect_elem.hasClass('active'))
					return;
				
				effect_elem.addClass('hover');
				effect_elem.style.webkitTransform = effect_elem.originalTransform + ' scale(1.3)';
				effect_elem.style.MozTransform = effect_elem.originalMozTransform + ' scale(1.1)';
				effect_elem.doPreload();
			});
		}
		
		
		effect_elem.addEvent('mouseout', function(e) {
			if (effect_elem.hasClass('active'))
				return;

			effect_elem.style.webkitTransform = effect_elem.originalTransform;
			effect_elem.style.MozTransform = effect_elem.originalMozTransform;
			effect_elem.removeClass('hover');
		});
	});
	
	$('effectsPreview').addEvent('click', function() {
		hideCurrent(); 
		clearInterval(lightBoxAuto);
	});
	
	var num_quotes = 0;
	var cur_quote = 0;
	$('quotes').getElements('li').each(function(quote) {
		quote.id = 'quote_' + num_quotes;
		num_quotes++;
	});
	
	setInterval(function() {
		for(var i = 0;i < num_quotes;i++) {
			$('quote_' + i).style.opacity = 0;
			$('quote_' + i).style.visibility = 'hidden';
		}
		
		cur_quote++;
		if(cur_quote >= num_quotes) { cur_quote = '0'; }
		$('quote_' + cur_quote).style.opacity = 1;
		$('quote_' + cur_quote).style.visibility = 'visible';
	}, 4000);
});
