// #require mootools.js

// HEADER NAVIGATION MENU
window.addEvent('domready', function () {
	var hnavi = $('head-navi');
	if (!hnavi)	return;
	hnavi.getElements('ul.head-navi-list li a').each(function (link) {
		link.getElements('img').each(function (img) {
			if (img.src.test(/^.+-(act|on)\.(gif|jpg|jpeg|xbm|png)(\?.*)?$/))	return;
			var sw_img = img.clone().set('src', img.src.replace(
				/^(.+)(?:-on)?(\.(gif|jpg|jpeg|xbm|png)(\?.*)?)$/,
				"$1-on$2")
			).setOpacity(0).inject(this);
			if (window.IEPNGFIX && (img.filters[IEPNGFIX.filter] || (/\.png(\?.*)?$/i).test(img.src))) {
				IEPNGFIX.fix(img);
				sw_img.setOpacity(1);
				sw_img.src = img.filters[IEPNGFIX.filter].src.replace(
					/^(.+)(?:-on)?(\.(gif|jpg|jpeg|xbm|png)(\?.*)?)$/,
					"$1-on$2");
				IEPNGFIX.fix(sw_img);
				img = new Element('span', { 'styles': {
					'display': 'block',
					'position': 'absolute',
					'top': img.getStyle('top'),
					'left': img.getStyle('left'),
					'width': img.offsetWidth,
					'height': img.offsetHeight
				}}).wraps(img);
				sw_img = new Element('span', {'styles':{
					'display': 'block',
					'opacity': 0,
					'position': 'absolute',
					'top': img.getStyle('top'),
					'left': img.getStyle('left'),
					'width': img.offsetWidth,
					'height': img.offsetHeight
				}}).wraps(sw_img);
//				if (Browser.Engine.trident4) {	// for IE6
					var self = this;
					this.addEvent('click', function (evt) {
//						evt = new Event(evt).stop();
						if (self.target && self.target != '_self') {
							evt = new Event(evt).stop();
							window.open(self.href, self.target);
						} else {
							window.location.href = self.href;
						}
					}).setStyle('cursor', 'pointer');
//				}
			}
			var fx = new Fx.Elements(
				$$([img, sw_img]),
				{ duration: 200, link: 'cancel'/*, transition: 'sine:in:out'*/ }
			);
			this.addEvent('mouseenter', function () {
				fx.start({
					'0': {
						opacity: [1, 0]
					},
					'1': {
						opacity: [0, 1]
					}
				});
			}).addEvent('mouseleave', function () {
				fx.start({
					'0': {
						opacity: [0, 1]
					},
					'1': {
						opacity: [1, 0]
					}
				});
			});
		}, link);
	});
});

// GRAND-NAVIGATION MENU
window.addEvent("domready", function () {
	var gnavi = $('grand-navi');
	var ul = gnavi.getElement('ul.grand-navi-list');
	var links = $$('#grand-navi ul.grand-navi-list li a');
	var lis = $$(links.map(function (el) { return el.getParent('li'); }));
	var defaultCoordinates = {
		'left': ul.offsetWidth - 1,
		'top': 30,
		'width': 20,
		'height': 6,
		'right': ul.offsetWidth + 19,
		'bottom': 36
	};
	var current = gnavi.getElement('ul.grand-navi-list li.current');
	var curCoordinates;
	if (current) {
		curCoordinates = current.getCoordinates(ul);
	} else {
		curCoordinates = defaultCoordinates;
	}
	var redbg = new Element('div', {
		'id': 'redbg',
		'styles': {
			'background-color': '#d70c18',
			'position': 'absolute',
			'left': (curCoordinates.left + 1),
			'top': 30,
			'width': (curCoordinates.width - 1),
			'height': 6
		}
	});
	if (Browser.Engines.trident) {
		redbg.setStyle('overflow-y', 'hidden');
	}
	redbg.inject(gnavi, 'top');
	if (current) {
		current.setStyles({
			'background-image': 'none',
			'background-color': 'transparent'
		});
	}
	redbg.set('morph', {
		'duration': 'short',
		'transition': 'expo:out'
	});
	//
	links.each(function (link) {
		link.addEvent('mouseenter', function (evt) {
//			evt = new Event(evt).stop();
			var coordinates = link.getParent('li').getCoordinates(ul);
			redbg.morph({
				'left': (coordinates.left + 1),
				'width': (coordinates.width - 1)
			});
		}).addEvent('mouseleave', function (evt) {
//			evt = new Event(evt).stop();
			redbg.morph({
				'left': (curCoordinates.left + 1),
				'width': (curCoordinates.width - 1)
			});
		});
	});
});

// SEARCH-BOX
function initSearchBox (input, options) {
	options = options || {};
	input = $(input);
	var placeholder = (options.placeholder ? options.placeholder : '');
	if (Browser.Engine.webkit && Browser.Engine.version < 420) {
		input.setAttribute('type', 'search');
		input.setAttribute('placeholder', placeholder);
		input.setStyles({
			'position': 'relative',
			'top': 3,
			'font-size': 12,
			'background-image': 'none'
		});
	} else {
		var width = input.offsetWidth;
		var searchbox_left = new Element('span', {
			'class': 'gsearch_text_left'
		});
		var searchbox_right = new Element('span', {
			'class': 'gsearch_text_right'
		});
		var searchbox_wrapper = new Element('div', {
			'class': 'gsearch_text_wrapper',
			'styles': {
				'width': width
			}
		});
		input.setStyles({
			'margin-left': 25,
			'margin-right': 5,
			'width': width - 25 - 5,
			'background-position': (input.value == '') ? '0 0' : '-100px 0'
		});
		searchbox_wrapper.inject(input, 'after').adopt([searchbox_left, input, searchbox_right]);
		if (Browser.Engine.trident) {
			input.setStyle('margin-top', -1);
		}
		//
		input.addEvent('focus', function() {
			input.setStyle('background-position', '-100px 0');
		}).addEvent('blur', function() {
			input.setStyle('background-position', input.value == '' ? '0 0' : '-100px 0');
		});
	}
}
window.addEvent('domready', function () {
	var gsearch_text = $('gsearch-text');
	if (!gsearch_text)	return;
	var options = {};
	if(gsearch_text.getParent().get('tag') == 'label') {
		var placeholderText = "";
		var labelElement = gsearch_text.getParent().getElement('.gsearch-placeholder');
		//either grab text in a classed element
		if(labelElement) {
			placeholderText = labelElement.get('text');
		//or grab text from right inside the label
		} else {
			placeholderText = gsearch_text.parentNode.firstChild.nodeValue;
			gsearch_text.parentNode.firstChild.nodeValue = '';
		}
		placeholderText = placeholderText.split('\n')[0];
		options.placeholder = placeholderText;
	}
	initSearchBox(gsearch_text, options);
});
