/*

    Javascript voor Intereffektfunds.nl
    Maakt gebruik van MooTools 1.1.2 met alle classes en plugins

*/

// Lees query string uit en plaats deze in een array
function query_string() {
    var qsParm = new Array();
    var query = window.location.search.substring(1);
    //alert(query);
    var parms = query.split('&');
    for (var i=0; i<parms.length; i++) {
        var pos = parms[i].indexOf('=');
        if (pos > 0) {
            var key = parms[i].substring(0,pos);
            var val = parms[i].substring(pos+1);
            qsParm[key] = val;
        }
    }
    return qsParm;
}

// Uit te voeren nadat document geladen is
window.addEvent('domready', function() {
    // Scroll de verschillende indices blokken op de Koersinformatie pagina
    if($('content_left_indices')) {
        var scroller = new Fx.Scroll('content_left_indices',{
            wait: false,
             transition: Fx.Transitions.Quad.easeInOut,
             duration: 3000
         });
        // De elementen waar naar toe gescrolled moet worden
        var scroller_array = Array('indices_afrika','indices_china','indices_india_japan','indices_vietnam','indices_brazil');
        var scroller_position = 0;
        var start_repeat = false;
        var pause_indice_scroller = false;
        // Periodiek uit te voeren functie
        (function() {
            // Alleen volgende indices tonen als de scroller niet is gepauzeerd
            if(!pause_indice_scroller) {
                var current_position = scroller_position;
                // Kies het volgende element
                if(!scroller_array[++scroller_position]) {
                    scroller_position = 0;
                }
                if(current_position == scroller_array.length - 1) {
                    start_repeat = true;
                }
                
                // Plaats een leeg element voor het huidige
                if(start_repeat) {
                    new Element('div',{'class': 'empty_indice_blok'}).injectBefore($(scroller_array[current_position]));
                    $(scroller_array[scroller_position]).injectAfter($(scroller_array[current_position]));
                }
                // Scroll naar element toe
                scroller.toElement($(scroller_array[scroller_position]));
                
                // Verwijder de lege elementen om te voorkomen dat er teveel
                // geheugen gebruikt wordt. Resetten zorgt er voor dat het blok direct verspringt
                // naar het eerste blok toe. Om die reden wordt er pas gereset nadat er 40 / 4 = 10 keer
                // de blokken voorbij zijn geweest.
                if($('content_left_indices').getElementsBySelector('div[class=empty_indice_blok]').length >= 40 && scroller_position == 0) {
                    $('content_left_indices').getElementsBySelector('div[class=empty_indice_blok]').each(function(el) {
                        $(el).remove();
                    });
                }
            }
        }).periodical(6000);
        
        // Pauzeer de indices scroller als de gebruiker z'n muis er op heeft staan
        $('content_left_indices').addEvents({
            'mouseover': function() {
                pause_indice_scroller = true;
            },
            'mouseout': function() {
                pause_indice_scroller = false;
            }
        });
    }

    // Maak een slide effect voor het sub sub menu
    if($('subsubmenu')) {
        // Herstel display:none uit stylesheet
        $('subsubmenu_underlay').setStyle('display','block');
        $('subsubmenu_underlay').setOpacity(0);
        // Als er menu opties aanwezig zijn dan transparantie instellen
        if($('subsubmenu_underlay') && $('subsubmenu').getElement('ul')) {
            $('subsubmenu_underlay').setOpacity(0.6);
        }
        
        // Slide effect maken
        var subsubmenu_slide = new Fx.Slide('subsubmenu',{duration: 300, mode: 'vertical', wait: false});
        // Menu verbergen
        subsubmenu_slide.hide();

        var slidemenu = true;
        // Als er een subsubmenu optie is gekozen dan hoeft het menu niet meer te sliden
        $('subsubmenu').getElements('a').each(function(el) {
            if($(el).getProperty('class') == 'selected') {
                slidemenu = false;
            }
        });
        
        // Slide effect uitvoeren
        if(slidemenu) {
            subsubmenu_slide.slideIn();
        } else {
            subsubmenu_slide.show();
        }                   
    }

    // Maak submenu_container nu pas weer zichtbaar
    // De submenu's hebben allemaal de tijd gehad om te tonen of te verbergen
    // Dit mag niet zichtbaar zijn tijdens het laden van de pagina
    if($('submenu_container')) {
        $('submenu_container').setStyle('visibility','visible');
    }
    
    // Maak zoek afbeelding clickable
    $('search_submit').addEvent('click', function() {
        $('search_form').submit();
    });
    // Maak een print functie
    $('print_page').addEvent('click', function() {
        var window_titel = $ES('title').getText();
        var titel = $('pagetitle').innerHTML;
        var txt = $('content_main').innerHTML;
        
        // Open nieuw venster en kopieer de content daar in
        OpenWindow=window.open("", "newwin", "height=600,width=800,menubar=yes,scrollbars=yes,toolbar=yes,resizable=yes");
        OpenWindow.document.write("<html><head><title>"+window_titel+"</title>");
        OpenWindow.document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"/layout/css/print.css\">");
        OpenWindow.document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"/layout/css/nieuws.css\">");
        OpenWindow.document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"/layout/css/koersinformatie.css\">");
        OpenWindow.document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"/layout/css/contact.css\">");
        OpenWindow.document.write("</head>");
        OpenWindow.document.write("<body onload=\"window.print();\"><div id=\"container\">");
        OpenWindow.document.write(titel);
        OpenWindow.document.write(txt);
        OpenWindow.document.write("</div></body>");
        OpenWindow.document.write("</html>");
        OpenWindow.document.close()
    });
    // Maak CMS link op copyright logo
    $('cmslink').addEvent('click', function() {
        window.open('http://cms.depoort.nl/index.php?id=11','CMS','status=no,toolbar=no,width=300,height=120');
    });
    
    // Zorg voor de mouseovers in het hoofdmenu
    $('nav_main').getElements('img').each(function(obj) {
        // Vervang off met on OF on met off
        $(obj).addEvents({
            'mouseover': function() {
                this.setProperty('src', this.getProperty('src').replace('-off','-on'));
                this.fireEvent('slidemenu');
            },
            'mouseout': function() {
                this.setProperty('src', this.getProperty('src').replace('-on','-off'));
            },
            'slidemenu':function() {
            }
        });
    });
    
    var static_slide_menu = false;
    // Zorg voor de mouseover in de submenu's
    $('submenu_container').getElements('li').each(function(el) {
        $(el).addEvents({
            'mouseover':function() {
                this.setProperty('class', 'hover');
            },
            'mouseout': function() {
                this.setProperty('class', '');
            }
        });
        
        var href = $(el).getElement('a').getProperty('href');
        // Haal de .html extensie uit de url
        href = href.substr(0,href.length - 5);
        // Kijk of de hoofdmenu optie matched met die uit het subsubmenu
        // Zo ja, selecteer de optie uit het hoofdmenu
        if(location.pathname.match(href)) {
            $(el).fireEvent('mouseover');
            $(el).removeEvents();
            static_slide_menu = true;
        }
    });
         
    // Ga de hoofdmenu knoppen bij langs om te kijken welke geselecteerd moet worden
    $('nav_main').getElements('a').each(function(el) {
        if($(el).getProperty('href')) {
            var href = $(el).getProperty('href');
            var href2 = href;
            // Haal de .html extensie uit de url
            href = href.substr(0,href.length - 5);
            // Kijk of de hoofdmenu optie matched met die uit het subsubmenu
            // Zo ja, selecteer de optie uit het hoofdmenu
            if(location.pathname.match(href + '/') || location.pathname.match(href2)) {
                //alert(location.pathname);alert(href);
                $(el).getElement('img').fireEvent('mouseover');
                $(el).getElement('img').removeEvents();
            }
            
            // Als het een optie uit een submenu is geselecteerd
            // dan het slide menu statisch maken en niet verbergen met een mouseover
            if(static_slide_menu) {
                $(el).getElement('img').removeEvents('slidemenu');
            }
        }
    });
    
    // Zorg voor mouseover effecten bij het linker menu op index.html (Actueel)
    $$('#content_left_actueel div.actueel_item').each(function(el) {
        $(el).addEvents({
            'mouseover': function() {
                this.setProperty('class','hover');
            },
            'mouseout': function() {
                 this.setProperty('class','actueel_item');
            }
        });
    });
    
    // Zorg voor mouseover effecten bij het rechter menu op index.html (Onze fondsen)
    $$('#content_right_fonds_menu div.fonds,#content_right_fonds_menu div.fonds2').each(function(el) {
        var img = $(el).getElement('img');
        if($(img)) {
            $(img).addEvents({
                'mouseover': function() {
                    this.setProperty('src', this.getProperty('src').replace('-off','-on'));
                },
                'mouseout': function() {
                    this.setProperty('src', this.getProperty('src').replace('-on','-off'));
                }
            });
        }
    });
    
    // Zorg voor doorlink actie wanneer er op de DIV van een Actueel blokje geklikt wordt
    $$('#content_left_actueel div.actueel_item').each(function(el) {
        $(el).addEvent('click', function() {
            location.href = $(el).getElement('a').getProperty('href');
        });
    });
    
    // Contactformulier validatie
    if($('contactformulier') && $('required') && $('submit')) {
        $('submit').addEvent('click', function(e) {
            e = new Event(e);
            
            var required = new Array();
            var els = $('contactformulier').getElementsBySelector('input,select');
            $each($('required').getProperty('value').split(','), function(item) {
                $each(els, function(el) {
                    if(el.getProperty('name') == item) {
                        var value = new String();
                        switch(el.getTag()) {
                            case 'input':
                                switch(el.getProperty('type')) {
                                    case 'text':
                                        value = el.getProperty('value');
                                    break;
                                }
                            break;
                            case 'select':
                                var value = el.options[el.selectedIndex].value;
                            break;
                        }
                        
                        if(value.length == 0) {
                            required.push(item);
                        }
                    }
                });
            });
            
            var emailCheck0 = $('contactformulier').getElement('input.emailcheck0');
            var emailCheck1 = $('contactformulier').getElement('input.emailcheck1');
            if(emailCheck0 && emailCheck1 && (emailCheck0.getProperty('value') != emailCheck1.getProperty('value'))) {
                alert("De opgegeven e-mail adressen komen niet overeen!");
                e.stop();
            }
            else if(required.length > 0) {
                e.stop();
                alert("De volgende velden dient u verplicht in te vullen: \n\n - " + required.join("\n - "));
            }
        });
    }

    var blog_items = $$('div.blog_item');
    if(blog_items.length > 0) {
        var default_blog_item_bg = blog_items[0].getStyle('background-color');
        blog_items.addEvents({
            mouseenter: function() {
                this.setStyle('background-color', '#e9e9e9');
            },
            mouseleave: function() {
                this.setStyle('background-color', default_blog_item_bg);
            },
            click: function() {
                location.href = this.getElement('h3 a').getProperty('href');
            }
        });
    }

    // Contact formulier - Kopie naar afzender
    var contact_email_copy = $('contact_email_copy');
    var contact_recipients = $(document.body).getElement('input[name=recipient]');
    if(contact_email_copy && contact_recipients) {
        var original_recipient = contact_recipients.getProperty('value');
        contact_email_copy.addEvent('change', function() {
            var email = this.getProperty('value').length > 0 ? ',' + this.getProperty('value') : '';
            contact_recipients.setProperty('value', original_recipient + email);
        });
    }
/*
    // Header banner alleen op homepage en actueel
    if(location.hostname.match(/\.nl$/) && location.pathname.match(/^(\/|\/index\.html|\/actueel\.html)$/)) {
        $('header-banner-container').setStyle('display', 'block');
        
        var banner = $('header-banner');
        if(banner) {
            banner.addEvent('click', function() {
                window.open('http://dagvandebelegger.solvec.nl/intereffekt');
            });
            var items = $$('div#header-banner-items div.item');
            if(items.length > 0) {
            
                var container = $('header-banner-items-container');
                container.setStyle('position', 'relative');
                var size = 0;
                items.each(function(el) {
                    size += el.getSize().size.y;
                    var clone = el.clone();
                    clone.inject(container);
                });

                var tickerFx = new Fx.Style(container, 'top', {
                    duration: 2000,
                    //transition: Fx.Transitions.linear,
                    transition: Fx.Transitions.Sine.easeOut,
                    onComplete: function() {
                        container.getElement('div.item').injectInside(container);
                        container.setStyle('top', 0);
                        ticker();
                    }
                });
                var ticker = function() {
                    (function(){
                        tickerFx.start(0, -(size / items.length));
                    }).delay(500);
                };
                ticker();
            }
        }
    }
*/
});

