var WdRotator = new Class
({
	options:
	{
		shapes:
		[
			{ top: 60, left: 0, width: 200, height: 100, opacity: 1 }, 
			{ top: 40, left: 300, width: 100, height: 50, opacity: .8 },
			{ top: 200, left: 250, width: 100, height: 50, opacity: .8 }
		],
		
		delay: 5600,
		morphDuration: 1000
	},
	
	initialize: function(el)
	{
		this.element = $(el);
		
		var shapes = this.options.shapes;
		var children = this.element.getChildren();
		
		if (!children.length)
		{
			return;
		}
		
		children.setStyle('position', 'absolute');
		
		children.each
		(
			function(el, i)
			{
				el.setStyles(shapes[i]);
				el.set('morph', { duration: this.options.morphDuration, transition: 'sine:out' });
				
				el.$p = el.getElement('p');
				el.$pTween = el.$p.get('tween', { property: 'opacity', duration: 'short' });
				
				if (i)
				{
					el.$pTween.set(0);
				}
				
				var a = el.getElement('a');
				
				if (a)
				{
					el.setStyle('cursor', 'pointer');
					el.addEvent('click', function() { document.location = a.href; });
				}
			},
			
			this
		);
		
		children.addClass('mini');
		children[0].removeClass('mini');
		
		var roundAbout = function()
		{
			children.push(children.shift());
			children.toggleClass('mini');
			
			children.each
			(
				function(el, i)
				{
					el.morph(shapes[i]);
					
					i ? el.addClass('mini') : el.removeClass('mini');
					
					if (i)
					{
						el.$pTween.start(0);
					}
					else
					{
						(function() { el.$pTween.start(1); }).delay(this.options.morphDuration);
					}
				},
				
				this
			);
		};
		
		roundAbout.periodical(this.options.delay, this);
	}
});

window.addEvent
(
	'domready', function()
	{
		$$('.viewport').each
		(
			function(el)
			{
				var vp = new WdViewport(el, { adjustHeight: false, delay: 6000, browse: 'before' });
				
				vp.start();
			}
		);
		
		new WdRotator('stickers');
	}
);

window.addEvent
(
	'load', function()
	{
		$$('a[rel^=nonver]').each
		(
			function(el)
			{
				var object = new Element
				(
					'object',
					{
						'width': 260,
						'height': 180,
						'type': 'application/x-shockwave-flash',
						'data': '/public/NonverBlaster.swf'
					}
				);
				
				var fv = el.href.split('?')[1];
				
				var params = 
				{
					wmode: 'opaque',
					allowscriptaccess: 'always',
					allownetworking: 'all',
					allowfullscreen: 'true',
					flashvars: fv
				};
				
				for (key in params)
				{
					object.appendChild(new Element('param', { 'name': key, 'value': params[key] }));
				}
				
				object.replaces(el);
			}
		);
	}
);


window.addEvent
(
	'domready', function()
	{
		$$('table.foldable').each
		(
			function(table)
			{
				var togglers = table.getElements('a.fold-toggler');
				var folds = table.getElements('tr.fold');
				
				togglers.addEvent
				(
					'click', function(ev)
					{
						ev.stop();
						
						var i = togglers.indexOf(this);
						var fold = folds[i];
						
						fold.toggleClass('folded');
						fold.toggleClass('highlight');
						
						this.getParent('tr').toggleClass('highlight');
					}
				);
			}
		);
	}
);


window.addEvent
(
	'domready', function()
	{
		$$('div.menu ol.lv2').each
		(
			function(el,i)
			{
				var padding = 5;
				
				el.setStyle('visibility', 'hidden');
				el.setStyle('display', 'block');
				
				var size = el.getSize().y - padding * 2;
				
				el.setStyle('display', '');
				el.setStyle('visibility', '');
				
				var morph = new Fx.Morph(el, { 'duration': 'short', 'link': 'cancel' });
				
				var reset =
				{
					'padding-top': 0,
					'padding-bottom': 0,
					'height': 0
				};
				
				var opened =
				{
					'padding-top': padding,
					'padding-bottom': padding,
					'height': size
				};

				morph.set(reset);
		
				var parent = el.getParent();
				
				parent.addEvent('mouseenter', function() { morph.start(opened); });
				parent.addEvent('mouseleave', function() { morph.start(reset); });
			}
		);
	}
);