var support = {};
fireOn = Window.ie ? 'load' : 'domready';
window.addEvent(fireOn, function(){
    
    // Open external links in a new window
    $$('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'
                });
            }
        }
    });
    
    // Placeholder for input and textarea
    $$('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');
            }
        });
    });
    
    
    // Fancy menu stuff
    var menu = document.getElements('.main-nav > 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(typeof(currentActive) != "undefined"){   
                    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');
    }
    //fetch lang
	var urlParts = window.location.href.split("//").pop().split('/');
	var DOMAIN    = urlParts.shift();
	var LANG    = urlParts.shift();
	if(!LANG){
		LANG = 'nl';
	}
    
    // Start Newsletter subscription
	if($('form_newsletter')){		
		var element = $('form_newsletter').getElement('div');
		var label	= $('form_newsletter').getElement('label');
		var input	= $('form_newsletter').getElement('input');
		var clickEl = $$('#form_newsletter button[name=newsletter_submit]');
		var span = new Element('span', {text:''}).injectAfter(input);
		
		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
    
    test = document.createElement('input');
    if(! 'placeholder' in test) {
        new NS.Placeholder({
            ccsClass: 'hasPlaceholder'
        });
    }
});

var NS=NS||{};
NS.Placeholder=new Class({Implements:[Options],options:{elements:"input[type=text]",cssClass:"placeholder",color:null},initialize:function(b){this.setOptions(b);switch($type(this.options.elements)){case "string":b=$$(this.options.elements);break;case "element":b=[this.options.elements];break;default:b=this.options.elements}b.each(function(a){var c=a.get("placeholder");if(c){a.store("ns-placeholder-text",c);a.store("ns-placeholder-color",a.getStyle("color"));this.blur(a);a.addEvents({focus:function(){this.focus(a)}.bind(this),blur:function(){this.blur(a)}.bind(this)});
var d=a.getParent("form");d&&d.addEvent("submit",function(){a.value==c&&a.set("value","")})}}.bind(this))},focus:function(b,a){a=a==undefined||a;var c=b.retrieve("ns-placeholder-text"),d=b.get("value");if(d==""||d==c){if(this.options.cssClass)b[a?"removeClass":"addClass"](this.options.cssClass);if(this.options.color)b.setStyle("color",a?b.retrieve("ns-placeholder-color"):this.options.color);b.set("value",a?"":c)}},blur:function(b){this.focus(b,false)}});
