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

});



function imagePreloader(imgsrc) {
	if(!window.__imagePreloader) window.__imagePreloader = [];
	var i = window.__imagePreloader.length;
	window.__imagePreloader[i] = new Image();
	window.__imagePreloader[i].src = imgsrc;
}


Overlay = new Class({
	Implements: Options,
	options: {
		color: '#000000',
		opacity: 0.5,
		duration: 750,
		zIndex: 90
	},

	initialize: function(options, show) {

		this.setOptions(options);
		this.el = new Element('div', {
			styles: {
				position: 'absolute',
				top: 0,
				left: 0,
				display: 'none',
				background: this.options.color
			}
		}).inject( $(document.body) );

		window.addEvent('resize', this.resize.bind(this));

		if(show !== false) this.show();
	},
	show: function() {
		this.el.setStyles({
			top: 0,
			left: 0,
			opacity: 0,
			display: 'block',
			zIndex: this.options.zIndex
		});
		this.resize();

		new Fx.Tween(this.el, {
			duration: this.options.duration
		}).start('opacity', this.options.opacity);
	},

	hide: function() {
		new Fx.Tween(this.el, {
			duration: this.options.duration
		}).start('opacity', 0);

	},

	resize: function() {
		var b = $(document.body);
		this.el.setStyles({ width: b.getWidth(), height: b.getHeight() });
		this.el.setStyles({
			width: (b.getScrollWidth() > b.getWidth()) ? b.getScrollWidth() : b.getWidth(),
			height: (b.getScrollHeight() > b.getHeight()) ? b.getScrollHeight() : b.getHeight()
		});
	}


});



window.addEvent('domready', function() {
	$$('a.iconlink').each(function(el) {
		imagePreloader( el.getElement('img').src.replace(/-off/, '') );

		el.addEvent('mouseover', function() {
			var img = $(this).getElement('img');
			img.src = img.src.replace(/-off/, '');
		});
		el.addEvent('mouseout', function() {
			var img = $(this).getElement('img');
			var bits = img.src.split(/\./);
			var ext = bits.pop();
			var tmp = bits.pop();
			bits.push(tmp + '-off'); bits.push(ext);
			img.src = bits.join('.');
		});
	});
});

window.addEvent('load', function() {
	$$('img.rollover').each(function(el) {
		var r = new Image();
		r.src = el.src.replace(/\.([^\.]+)$/, '-over.$1');

		el.addEvents({
			mouseover: function() { this.src = this.src.replace(/\.([^\.]+)$/, '-over.$1'); },
			mouseout: function() { this.src = this.src.replace(/-over/, ''); }
		});
	});

	$$('.youtubePlayer').each(function(el) {
		el.addEvents({
			'mouseenter': function() {
				$(this).getElement('img.play-button').setStyle('display', 'block');
			},
			'mouseleave': function() {
				$(this).getElement('img.play-button').setStyle('display', 'none');
			},
			'click': function() {
				var o = new Overlay();
				var sz = { x: 640, y: 390 };

				var div = new Element('div', {
					'class': 'rounded shadow',
					styles: {
						position: 'absolute',
						zIndex: 95,
						width: sz.x,
						height: sz.y,
						background: '#819924',
						border: 'solid #808285 1px',
						opacity: 0,
						padding: 20,
						top: $(document.body).getScroll().y + ($(document.body).getHeight() / 2) - (sz.y/2),
						left: $(document.body).getScroll().x + ($(document.body).getWidth() / 2) - (sz.x/2)
					}
				}).inject($(document.body));

				var vframe = new Element('iframe', {
					src: 'http://www.youtube.com/embed/' + this.getAttribute('media') + '?autoplay=1',
					frameborder: 0,
					styles: {
						border: 0,
						width: sz.x,
						height: sz.y,
						display: 'none'
					}
				}).inject(div);

				var dclose = new Element('div', {
					styles: {
						color: '#fff',
						cursor: 'pointer',
						position: 'absolute',
						fontWeight: 'bold',
						whiteSpace: 'nowrap',
						left: div.getWidth() - 75,
						top: 1
					},
					events: {
						click: function() {
							vframe.destroy();
							o.hide();
							new Fx.Tween(div, {
								duration: 750,
								onComplete: function() {
									div.destroy();
								}
							}).start('opacity', 0);
						}
					}
				}).set('html', 'close').inject(div);

				new Fx.Tween(div, {
					duration: 750,	
					onComplete: function() {
						vframe.setStyle('display', 'block');
					}
				}).start('opacity', 1);
			}
		});
	});
});

















function test(v) {
	try{
		console.log(v);
	} catch(e) {};
}


