
/**
 * DOMready
 *
 * this is similar to the bodies onload event handler
 */
window.addEvent('domready', function() {
	if (location.pathname.indexOf('qurwara') > -1) {
		var flyout = new Flyout($('nav'));
		var pngfix = new Pngfix({
			elements: [$('keyvisual').getFirst('div').getFirst('div')]
		});
	}
	if (location.pathname.indexOf('eira') > -1) {
		var pngfix = new Pngfix({
			elements: $$('h1 a', '#nav li strong', '#breadcrumb', '#content .slogan', '#content .slogan img', '#content #text')
		});
	}
});

/**
 * Flyout Navigation
 *
 * enables flyout for ie 6 and adds mouseleave delay
 */
var Flyout = new Class({
	initialize: function(list) {
		this.list = list;
		this.listItems = this.list.getChildren('li');
		this.attachEvents();
	},
	attachEvents: function() {
		this.listItems.each(function(li) {
			li.addEvents({
				'mouseenter': this.showFlyout.bindWithEvent(li),
				'mouseleave': this.hideFlyout.bindWithEvent(li)
			});
		}, this);
	},
	showFlyout: function() {
		this.addClass('hover');
	},
	hideFlyout: function() {
		this.removeClass('hover');
	}
});

/**
 * png fix
 *
 * enables png transparency for ie 6
 */
var Pngfix = new Class({
	Implements: [Options, Events],
	options: {
		elements: []
	},
	initialize: function(options) {
		if (!(Browser.Engine.trident && Browser.Engine.version < 5)) {
			return;
		}
		this.setOptions(options);
		this.fixPngs();
	},
	fixBgPng: function(element) {
		var mode = 'scale';
		var bg = element.getStyle('background-image');
		var src = bg.substring(5, bg.length - 2);
		if (element.currentStyle.backgroundRepeat == 'no-repeat') {
			mode = 'crop';
		}
		element.setStyles({
			backgroundImage: 'none',
			filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + src + '", sizingMethod="' + mode + '")',
			zoom: 1
		});
		/* however, it does not work
		element.getElements('a, input').setStyles({
			position: 'relative',
			zIndex: 999999999
		});
		*/
	},
	fixElPng: function(element) {
		var src = element.src;
		var width = element.width;
		var height = element.height;
		var wrap = new Element('div', {
			'styles': {
				'width': width,
				'height': height,
				'filter': 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + src + '", sizingMethod="scale")',
				'zoom': 1
			}
		});
		wrap.wraps(element);
		element.setStyle('visibility', 'hidden');
	},
	fixPngs: function() {
		this.options.elements.each(function(element) {
			if (element.match('img[src$=".png"]')) {
				this.fixElPng(element);
			} else {
				this.fixBgPng(element);
			}
		}.bind(this));
	}
});

