// Blur anchors on focus
window.addEvent('domready', function(){
    $$('a, button').each(function(el){
        el.addEvent('focus', function(){
            $(this).blur();
        });
    });
});

// Fix some MSIE CSS-probs
window.addEvent('domready', function(){
    $$('#header #mainmenu_container .submenu .submenu_inner .submenu_strecher .submenu_arrow ul:first-child').each(function(el){
        el.setStyle('width', 208);
        el.setStyle('padding-left', 12);
    });
    $$('#header #mainmenu_container .submenu .submenu_inner .submenu_strecher .submenu_arrow ul:last-child').each(function(el){
        el.setStyle('border', 'none');
    });
    $$('#header #mainmenu_container .submenu .submenu_inner .submenu_strecher .submenu_arrow ul li ul li a').each(function(el){
        el.set('html', '+ ' + el.get('html'));
    });
});

// Shrink footer, if there is no supplement text
window.addEvent('domready', function(){
    var st = $$('div.supplement_text');
    if(st.length == 0){
        $('footer').addClass('no_supplement');
    }
});

// Submenu toggle
window.addEvent('domready', function(){
    // Tween preferences
    $('submenu_container').set('tween', {'duration':300});

    // Add hide submenu event
    $('mainmenu_container').addEvent('mouseleave', function(){
        $('submenu_container').tween('height', 0);
        $$('#mainmenu li.item a.link').each(function(el){
            el.removeClass('hover');
        });
    });

    // Center arrow in relation to mainnavigation item 
    $$('div#submenu_container div.submenu').each(function(subitem){
        // Find related mainnavigation items
        var subid = subitem.getProperty('id').substr(subitem.getProperty('id').indexOf('_') + 1);
        var mainitem = $('main_' + subid);
        var subarrow = subitem.getFirst('div.submenu_inner').getFirst('div.submenu_strecher').getFirst('div.submenu_arrow');
        var maindim = mainitem.getCoordinates($('header'));
        var subdim = subarrow.getCoordinates($('header'));
        subarrow.setStyle('background-position', (maindim.left - subdim.left + maindim.width / 2 - 5) + 'px 1px');
        if(Browser.ie && Browser.version < 9 && subitem.getElements('input').length > 0){
            subitem.getElements('input').each(function(input){
                input.value = input.value;
            });
        }
    });
    $('submenu_container').setStyle('height', 0);

    // Add show submenu events
    $$('#mainmenu li.item a.link').each(function(mainitem){
        mainitem.addEvent('mouseenter', function(){
            $$('#mainmenu li.item a.link').each(function(el){
                el.removeClass('hover');
            });
            $(this).addClass('hover');
            // Find related subnavigation items
            if($(this).getProperty('id') != null){
                var subid = $(this).getProperty('id').substr($(this).getProperty('id').indexOf('_') + 1);
                var subitem = $('sub_' + subid);
                if(subitem != null){
                    // Hide all subnavigation items
                    $$('div#submenu_container div.submenu').each(function(subitem){
                        subitem.setStyle('visibility', 'hidden');
                        subitem.setStyle('z-index', '1');
                    });
                    // Show related subnavigation item
                    subitem.setStyle('z-index', '2');
                    subitem.setStyle('visibility', 'visible');
                    $('submenu_container').tween('height', 136);
                }else{
                    $('submenu_container').tween('height', 0);
                }
            }else{
                $('submenu_container').tween('height', 0);
            }
        });
    });
});

// Editmode stuff
function toggleEditContainer(a){
    var container = a.parentNode.parentNode.parentNode;
    if(container.className.indexOf('closed') >= 0){
        container.className = 'container_edit_only open';
    }else{
        container.className = 'container_edit_only closed';
    }
}

// FAQ
window.addEvent('domready', function(){
    if( idart != 100 ){
        return;
    }
    $('content').getElements('h5').each(function(head){
        head.addClass('faq_question');
        var container = new Element('div');
        container.addClass('faq_answer');
        var followers = head.getAllNext();
        for(var f=0; f<followers.length; f++){
            if( followers[f] == null || followers[f].nodeName.toLowerCase() == 'h5' ){
                break;
            }
            followers[f].inject(container, 'bottom');
        }
        container.inject(head, 'after')
        head.store('answer', container);
        head.addEvent('click', function(){
            var c = $(this).retrieve('answer');
            if(c.getStyle('display') == 'none'){
                c.setStyle('display', 'block');
            }else{
                c.setStyle('display', 'none');
            }
        });
    });
});

// gMap stuff
var gmap_data = false;
function gmap_loadMap(){
    if(!gmap_data || gmap_data == null || gmap_data == undefined) return;
    if(GBrowserIsCompatible()){
        var map = new GMap2($(gmap_data.container));
        var topRight = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,10));
        var topLeft = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(10,10));
        map.addControl(new GSmallMapControl(), topLeft);
        map.addControl(new GMapTypeControl(), topRight);
        map.setCenter(new GLatLng(gmap_data.lat, gmap_data.lon), gmap_data.zoom);
        var infoTabs = new Array();
        if(gmap_data.marker && gmap_data.marker.length > 0){
            for(var m=0; m<gmap_data.marker.length; m++){
                if(gmap_data.marker[m]['icon']){
                    var icon = new GIcon(G_DEFAULT_ICON);
                    icon.image = gmap_data.marker[m]['icon_src'];
                    icon.iconSize = new GSize(gmap_data.marker[m]['icon_width'], gmap_data.marker[m]['icon_height']);
                    if(gmap_data.marker[m]['icon_hide_shadow']){
                        icon.iconAnchor = new GPoint(gmap_data.marker[m]['icon_width'] / 2, gmap_data.marker[m]['icon_height'] / 2);
                        icon.shadow = false;
                    }else{
                        icon.iconAnchor = new GPoint(gmap_data.marker[m]['icon_width'] / 2, gmap_data.marker[m]['icon_height']);
                    }
                    var markerOptions = {'icon':icon};
                    var marker = new GMarker(new GLatLng(gmap_data.marker[m]['lat'], gmap_data.marker[m]['lon']), markerOptions);
                }else{
                    var marker = new GMarker(new GLatLng(gmap_data.marker[m]['lat'], gmap_data.marker[m]['lon']));
                }
                if(gmap_data.marker[m]['bubble']){
                    marker.id = m;
                    GEvent.addListener(marker, "click", function(){
                        var bubble_html = '<h4>' + gmap_data.marker[this.id]['bubbletitle'] + '</h4>';
                        if(gmap_data.marker[this.id]['bubbletext']){
                            bubble_html += '<p>' + gmap_data.marker[this.id]['bubbletext'] + '</p>';
                        }
                        this.openInfoWindowHtml(bubble_html);
                    });
                }else if(gmap_data.marker[m]['function'] && typeof(gmap_data.marker[m]['function']) == 'function'){
                    marker.id = m;
                    GEvent.addListener(marker, "click", function(){
                        gmap_data.marker[this.id]['function'].attempt(this.id);
                    });
                }
                map.addOverlay(marker);
            }
        }
        if(gmap_data.polygons && gmap_data.polygons.length > 0){
            for(var p=0; p<gmap_data.polygons.length; p++){
                var poly = gmap_data.polygons[p];
                if(poly && poly.poly.length > 0){
                    var polygon = new GPolygon(poly.poly, poly.poly_properties.bordercolor, poly.poly_properties.bordersize, poly.poly_properties.borderalpha, poly.poly_properties.backgroundcolor, poly.poly_properties.backgroundalpha);
                    map.addOverlay(polygon);
                }
            }
        }
    }
    if(navigator.appName != "Microsoft Internet Explorer"){
        window.onunload = function(){
            GUnload();
        }
    }
}

function gmap_highlightAddress(id){
    var shops = $$('.shopaddress');
    for(var s=0; s<shops.length; s++){
        shops[s].removeClass('highlight');
    }
    if( $('shop_' + id) == null ){
        return;
    }
    $('shop_' + id).addClass('highlight');
}

window.addEvent('load', function(){
    if(gmap_data) gmap_loadMap();
});

