// The Pukkelpop Core Javascript File
// Created by David Candreva <david@inventis.be>

fireOn = Window.ie ? 'load' : 'domready';
window.addEvent(fireOn, function(){

	/*
	 * Check if Cufon is loaded? Quite useless but who cares..
	 */
	if(Cufon){
		
		/*
		 * Add if's for speeding things up. MooTools is much faster than Cufon
		 */
		if($$('div.dashboard div.content h3 a')){
			Cufon.replace('div.dashboard div.content h3 a', { fontFamily:'futura-bold' });
		}
		
		if($$('div#navigation form legend')) {
			Cufon.replace('div#navigation form label', {fontFamily:'komika'});
		}
		
		if($$('div#navigation > ul > li > a')) {
			Cufon.replace('div#navigation > ul > li > a', {fontFamily:'futura-bold', hover:true, letterSpacing: '0'});
		}
		
		if($$('div#navigation ul ul li a')) {
			Cufon.replace('div#navigation ul ul li a', {fontFamily:'futura', hover:true, letterSpacing: '0'});
		}
		
		if($$('#soldout a')){
			Cufon.replace('#soldout a', {fontFamily:'futura', hover:true});
		} 
		
		if($$('.cfn-futura')){
			Cufon.replace('.cfn-futura', {fontFamily:'futura'});
		}
		
		if($$('h1')){
			Cufon.replace('h1', {fontFamily:'futura'});
		}
		
		if($$('h2')){
			Cufon.replace('h2', {fontFamily:'futura'});
		}
		
		if($$('h3')){
			Cufon.replace('h3', {fontFamily:'futura'});
		}
		
		if($$('div#tabs h3')){
			Cufon.replace('div#tabs h3', {fontFamily:'futura', hover:true});
		}
		
		if($$('a.print')){
			Cufon.replace('a.print', {fontFamily:'futura', hover:true});
		}
		
		/*
		if($$('h3')){
			Cufon.replace('h3', {fontFamily:'futura', hover:true});
		}
		
		if($$('div.rows div.col div.content h3')){
			Cufon.replace('div.rows div.col div.content h3', {fontFamily:'futura'});
		}*/
		
		if($$('ul.arrowList li')){
			Cufon.replace('ul.arrowList li', {fontFamily:'futura', hover:true});
		}
		
		if($$('h4')){
			Cufon.replace('h4', {fontFamily:'futura'});
		}
		
		if($$('#sitemap ul li span')){
			Cufon.replace('#sitemap ul li span', {fontFamily:'futura'});	
		}
		
		if($$('h5')){
			Cufon.replace('h5', { fontFamily:'futura', hover:true});
		}
		
		if($$('div#breadcrumbs ol li')){
			Cufon.replace('div#breadcrumbs ol li', { fontFamily:'futura', hover:true});
		}
		
		
		if($$('span.yeartitle')){
			Cufon.replace('span.yeartitle', {fontFamily:'futura'});
		}
		
		if($$('ul.sociallinks li')){
			Cufon.replace('ul.sociallinks li', { fontFamily:'futura', hover:true});
		}
		
		if($$('ul.niceList li')){
			Cufon.replace('ul.niceList li', { fontFamily:'futura'});
		}
		
		if($$('div#topbar div.content div.options ul.option')){
			Cufon.replace('div#topbar div.content div.options ul.languages li', {fontFamily:'futura', hover:true});
			//Cufon.replace('div#topbar div.content div.options ul.option li.register', {fontFamily:'futura', hover:true});
			//Cufon.replace('div#topbar div.content div.options ul.option li.welcome', {fontFamily:'futura', hover:true});
			Cufon.replace('div#topbar div.content div.options ul.option li.logout', {fontFamily:'futura', hover:true});
			Cufon.replace('div#topbar div.content div.options ul.option li.login', {fontFamily:'futura', hover:true});
		}
		
		if($$('#lbBottom a')){
			Cufon.replace('#lbBottom a', { fontFamily:'futura', hover:true});
		}
		
		if($$('#lbCaption span')){
			Cufon.replace('#lbCaption span', {fontFamily:'futura'});
		}
		
		if($$('#lbCaption a')){
			Cufon.replace('#lbCaption a', {fontFamily:'futura'});
		}
		
		if($$('div#main .title h2,div#main  .title h3')){
			Cufon.replace('div#main .title h2,div#main  .title h3', {fontFamily:'futura-bold'});
		}
		
		if($$('ul.actions li.button')){
			Cufon.replace('ul.actions li.button', { fontFamily:'komika', hover:{textShadow:'-1px -1px #333'}, textShadow:'-1px -1px #77c2cc'});
		}
		
		if($$('div.buttons button, ul.actions li.button button')){
			Cufon.replace('div.buttons button, ul.actions li.button button', { fontFamily:'komika', hover:{ hoverables:{a:false, button:true} } });
		}
		
		if($$('#credits a')){
			Cufon.replace('#credits a', { fontFamily:'futura-bold', hover:true });
		}
		
		if($$('ul.contenttabs li')){
			Cufon.replace('ul.contenttabs li', {fontFamily:'futura', hover:true});
		}
		
		if($$('.header_homepage .title')){
			Cufon.replace('.header_homepage .title', {fontFamily:'futura-bold'});
			Cufon.replace('.header_homepage .button', { fontFamily:'komika', hover:{textShadow:'-1px -1px #333'}, textShadow:'-1px -1px #77c2cc'});
		}
		
		if($$('.header_threecol .title')){
			Cufon.replace('.header_threecol .title', {fontFamily:'futura-bold'});
			Cufon.replace('.header_threecol .button', { fontFamily:'komika', hover:{color:'#000'}});
		}
		
		if($$('.grid .title')){
			Cufon.replace('.grid .title', {fontFamily:'futura-bold'});
		}
		
		if($$('#shopheader .title')){
			Cufon.replace('#shopheader .title', {fontFamily:'futura-bold'});
		}
		
	}
	
	if($$('ul.showActionOnfocus li')){
		$$('ul.showActionOnfocus li').addEvents({
			'mouseenter': function(){
				if(this.getElement('ul.actions')){
					this.getElement('ul.actions').setStyle('display','block');
				}
			},
			'mouseleave': function(){
				if(this.getElement('ul.actions')){
					this.getElement('ul.actions').setStyle('display','none');
				}
			}
		});
	}
	
	$$('a[href^=http]').each(function(a) {
		if (window.location.hostname) {
			var hostname = window.location.hostname.replace("www.", "").toLowerCase();
			if (!a.get('href').contains(hostname)) {
				a.set({
					'target': '_blank'
				});
			}
		}
	});
	
	/*
	 * If alternate text is set we use it as default value
	 */
	$$('input, textarea').each(function(el){
		el.addEvents({
			'click': function(){
				if(el.get('value') == el.get('alt')){
					el.set('value', '');
				}
				el.addClass('focus');
			},
			'blur': function(){
				el.removeClass('focus');
				if(el.get('value') == '' && el.get('alt')){
					el.set('value', el.get('alt'));
				}
			},
			'focus': function(){
				if(el.get('value') == el.get('alt')){
					el.set('value', '');
				}
				el.addClass('focus');
			}
		});
	});
	

	//fetch lang
	var urlParts = window.location.href.split("//").pop().split('/');
	var DOMAIN    = urlParts.shift();
	var LANG    = urlParts.shift();
	if(!LANG){
		LANG = 'nl';
	}		
	
	// End Search Form Search Events
	
	
	// Start Submenu effect
	var currentActive = document.getElement('div#navigation > ul > li > a.active');
	var menu = document.getElements('div#navigation > ul > li');
	
	menu.each(function(el){
		
		var subMenu = el.getElement('ul');
		var width = 0;
		
		if(subMenu){
			var listItems = subMenu.getElements('li');
			listItems.each(function(li){
				width += li.getSize().x;
			});
			
			width = width + (subMenu.getElements('li').length * 6) 
			
			subMenu.setStyle('width', width + 20);
			subMenu.setStyle('marginLeft', -(width/2));
			subMenu.setStyle('left', '50%');
			
			// check if the submenu is to wide and overflows the navigation
			var diff = subMenu.getCoordinates().left - $('navigation').getCoordinates().left;
			if(diff < 0) {
				// align the submenu with the left of the navigation
				// add an extra 10px for better alignment
				subMenu.setStyle('marginLeft', subMenu.getStyle('marginLeft').replace('px', '').toInt() + Math.abs(diff) + 10);
				
				// fix the alignment of the hover-arrow
				backgroundPositionX = subMenu.getStyle('width').replace('px', '').toInt()/2; // 50%
				backgroundPositionX += diff; // add (negative) diff
				backgroundPositionX -= 10; // remove the 10px for better better alignment
				
				subMenu.setStyle('background-position', ''+backgroundPositionX+'px 0');
			};
		}
		
		
		var linkEl = el.getElement('a');
		
		el.addEvents({
			'mouseover': function(el){
				hideAllSubmenus();
				linkEl.addClass('hover');
				if(subMenu && !subMenu.hasClass('submenu'))subMenu.addClass('submenu');
			},
			'mouseleave': function(el){
				hideAllSubmenus();
				if(currentActive){	
					var currentSubMenu = currentActive.getParent().getElement('ul');
				 	currentActive.addClass('hover');
				}
				if(currentSubMenu)currentSubMenu.addClass('submenu');
			}
		});
		
	});
	
	function hideAllSubmenus(){
		var btn = $$('div#navigation ul li a.hover');
		btn.removeClass('hover');

		var menus = $$('div#navigation ul li ul.submenu');
		menus.removeClass('submenu');
	}
	
	// End Search Form Search Events
	
	// Start Newsletter subscription
	if($('form_newsletter')){		
		
		var element = $('form_newsletter').getElement('div');
		var label	= $('form_newsletter').getElement('label');
		var clickEl = $$('#form_newsletter button[name=newsletter_submit]');
		var span = new Element('span', {text:''}).injectAfter(label);
		
		clickEl.addEvent('click', function(el){
			el = new Event(el).stop();
			el = el.target;
			
			var emailValue = $('form_newsletter').getElement('input[name=frm_email]').get('value');
			
			var jsonRequest = new Request.JSON({
				method: 'post',
				url: '/'+LANG+'/newsletter/home/'+LANG,
				data: {'email' : emailValue, 'language': LANG},
				onComplete: function(data){
					if(data.validation){
						element.addClass('error');
						span.addClass('error')
						span.set('text', data.validation.errors.email.message);
					} else {
						var div = new Element('div', {text:data.message}).addClass('success');
						div.inject($('form_newsletter').getParent(), 'inside');
						$('form_newsletter').dispose();
					}
				}
			}).send();
			
		});
		
	}
	// End Newsletter subscription
	
	// Animations
	var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;
	if(!IE6) {
		$$('.hover').each(function(el) {
			hover.delay(Math.random()*2000, this, [$(el.id), el.getStyle('top').replace('px', '').toInt()]);
		});
		/*if($$('.home #pos3').length) {
			oval($('pos3'), 0);
		}*/
	}
});
