/*
---

name: Koggeschip.Various

description: Various Koggeschip-specific scripts, for Koggeschip magazine websites.

authors: [BlueBear]

Requires: [Core/*, More/*]

Provides: [koggeschip.menu, koggeschip.newsright, koggeschip.addthis]

...
*/

var koggeschip = {};

window.addEvent('domready', function() {
	var scrollPage = new Fx.SmoothScroll();
	var newsRight = new koggeschip.newsright();
	if (Browser.Engine.trident4) {
		koggeschip.menu('ul.menu .submenu');
		$('footer').getElements('img.logo').set('src', '/skin/koggeschip_8bit.png');
	} else {
		koggeschip.menu('ul.menu div.submenu');
	}
}.bind(window));

koggeschip.menu = function(selector) {
	$$(selector).each(function(menu) {
		menu.setStyle('display', 'none').getParent('li').addEvents({
			'mouseenter': function() {
				menu.setStyle('display', 'block');
			},
			'mouseleave': function() {
				menu.setStyle('display', 'none');
			}
		});
	});
};

koggeschip.newsright = new Class({
	initialize: function() {
		this.right = $('right');
		if (this.right) {
			this.tabs = this.right.getElements('a.newstab');
			this.blocks = this.right.getElements('div.news');
			if (this.tabs && this.blocks) {
				this.applyTabSwitch(this.tabs, this.blocks);
				this.blocks.each(function(b) {
					if (b.getElement('div.video')) {
						this.applyVideoSwitch(b);
					}
				}, this);
			}
		}
	},
	applyTabSwitch: function(tabs, blocks) {
		tabs.each(function(t, i) {
			if (t.getNext('a.newstab') || t.getPrevious('a.newstab')) {
				t.addEvent('click', function(e) {
					if (e) e.stop();
					if (!t.hasClass('active')) {
						$$(t.getAllNext('a.newstab'), t.getAllPrevious('a.newstab')).removeClass('active');
						t.addClass('active');
						if (blocks[i] && blocks[i].hasClass('hidden')) {
							blocks[i].removeClass('hidden');
							$$(blocks[i].getAllNext('div.news'), blocks[i].getAllPrevious('div.news')).addClass('hidden');
						}
					}
				});
			} else {
				t.addEvent('click', function(e) {
					if (e) e.stop();
				});
			}
		});
	},
	applyVideoSwitch: function(block) {
		if (Browser.Plugins.Flash.version >= 6) {
			var videoContainer = block.getElement('div.video');
			if (videoContainer) {
				var videoElement = videoContainer.getFirst();
				if (videoElement) {
					var moreContainer = videoContainer.getNext('div.more');
					var moreLink = moreContainer.getElement('a');
					var videoStyles = {};
					videoStyles.height = videoElement.style.height;
					videoStyles.width = videoElement.style.width;
					var videoLinks = block.getElements('ul a.show-video');
					videoLinks.each(function(v) {
						v.addEvent('click', function(e) {
							if (e) e.stop();
							var video = v.getProperty('id').substr(2);
							videoContainer.empty();
							var flash = new Swiff('http://www.youtube.com/v/'+video+'?showinfo=0&showsearch=0&fs=1', {
								'container': videoContainer,
								'height': videoStyles.height,
								'width': videoStyles.width,
								'params': {
									'allowScriptAccess': 'sameDomain',
									'allowFullScreen': 'true',
									'quality': 'high',
									'wmode': 'transparent'
								}
							});
							moreLink.setProperties({
								'title': v.getProperty('title'),
								'href': v.getProperty('href')
							});
						});
					});
				}
			}
		}
	}
});

koggeschip.addthis = new Class({
	initialize: function(container) {
		this.container = $$(container);
		this.valid = Array('email', 'favorites', 'more');
		this.links = this.container.getElements('a').flatten();
		this.links.each(function(l) {
			var linkClass = l.getProperty('class');
			if (this.valid.contains(linkClass)) {
				this.applyEvent(l, linkClass);
			}
		}, this);
	},
	applyEvent: function(link, linkClass) {
		link.addEvent('click', function(e) {
			if (e) e.stop();
			addthis_sendto(linkClass);
		});
	}
});

