/*
Copyright by m.a.x. Informationstechnologie AG, 2010
http://www.max-it.de  info@max-it.de
*/

var oldServiceA = '';

EAG = {


    activateService: function (serviceId) {
        //alert(serviceId);
        $("#svcmenu-" + serviceId).addClass("active");
    },

    deactivateService: function (serviceId) {
        $("#svcmenu-" + serviceId).removeClass("active");
    },

    cssBackgroundFade: function (layer1Name, layer2Name, layer1Selector, layer2Selector, imageUrl, duration, transparencyFade) {
        // move the image from the front layer (b) to the back layer (a)
        $(layer1Selector).css('background-image', $(layer2Selector).css('background-image'));

        // hide the front layer, show the back layer
        $(layer1Name).stop().fadeIn(0); // fade to reduce flicker in IE
        $(layer2Name).stop().fadeOut(0); // fade to reduce flicker in IE

        // pre-load next image, if there's more than one picture in the queue



        // put the next image on the hidden front layer
        $(layer2Selector).css('background-image', 'url(' + imageUrl + ')');

        // fade in the front layer. if the image didnt change, dont fade - just show
        if ($(layer2Selector).css('background-image') == $(layer1Selector).css('background-image')) {
            $(layer2Name).stop().fadeIn(0);
            $(layer1Name).stop().fadeOut(0);
        } else {
            if (transparencyFade) {
                $(layer2Name).stop().fadeIn(duration);
                $(layer1Name).stop().fadeOut(duration);
            } else {
                $(layer2Name).css('opacity', 0);
                //$(layer2Name).animate({ opacity: ['0', 'linear'] }, 0).show().delay(10).animate({ opacity: ['1', 'easeInOutCubic'] }, duration);
                $(layer2Name).show().delay(10).stop().animate({ opacity: ['1', 'easeInOutCubic'] }, duration);
                //$(layer1Name).delay(5).hide();
            }
        }

    },

    cssColorFade: function (layerName, color, delay) {
        $(layerName).animate({ color: [color, 'easeOutCubic'], 'border-bottom-color': [color, 'easeOutCubic'], 'border-top-color': [color, 'easeOutCubic'] }, delay);
    },

    fadeBackgrounds: function (backgroundImages) {
        if (true) {
            var loop = {
                delay: 6000,
                index: 0,
                first: true,
                actions: [],
                parameters: [],
                preLoadImage: function (imageUrl) {
                    var img = new Image();
                    img.src = imageUrl;
                },
                run: function () {
                    // run function
                    loop.actions[loop.index](loop.parameters[loop.index]);

                    if (loop.first && (loop.first = (loop.index + 1) % loop.actions.length > 0)) {
                        // pre-load image for the next slide
                        loop.preLoadImage(loop.parameters[(loop.index + 1) % loop.actions.length].url);
                        loop.preLoadImage(loop.parameters[(loop.index + 1) % loop.actions.length].slogan);
                    }

                    // prepare next run
                    setTimeout(loop.run, loop.parameters[loop.index].showNews=='0'?loop.delay:10000);

                    // increase index
                    loop.index = (loop.index + 1) % loop.actions.length;
                }
            };
            var colourtable = {
                'white': '#ffffff',
                'default': '#000000'
            };

            loop.parameters = backgroundImages;

            loop.preLoadImage(loop.parameters[0].url);
            loop.preLoadImage(loop.parameters[0].slogan);


            for (var i = 0; i < backgroundImages.length; i++) {
                loop.actions.push(function (parameters) {
                    EAG.cssBackgroundFade("#background-slide-a", "#background-slide-b", "#background-slide-a", "#background-slide-b", parameters.url, 1200, false);
                    EAG.cssBackgroundFade("#slogan", "#background-slide-slogan", "#slogan", "#background-slide-slogan", parameters.slogan, 1000, true);
                    EAG.cssBackgroundFade("#regions", "#background-slide-regions", "#regions ul li a", "#background-slide-regions ul li a", parameters.regions, 1000, true);
                    EAG.cssColorFade("#sitemenu *, #facebook *", colourtable[parameters.sitemenu], 1200);
                    EAG.cssColorFade("#mainmenu *, ul.languages *, div.search *", colourtable[parameters.mainmenu], 1200);
                    EAG.cssColorFade("#latestnews *", colourtable[parameters.news], 1200);

                    if (parameters.service != '')
                        $('#a-' + parameters.service).addClass('active');

                    if (oldServiceA != '')
                        $(oldServiceA).removeClass();

                    if (parameters.showNews == '0')
                        $('#latestnews').hide(1200);
                    else
                        $('#latestnews').show(1200);

                    oldServiceA = '#a-' + parameters.service;

                });
            }

            // delay start of animation
            setTimeout(loop.run, loop.parameters[loop.parameters.length - 1].showNews == '0' ? loop.delay : 10000);
        }
    }
}




/* DOM tree ready */
$(document).ready(function () {

    $("body").addClass("js");

    $("#mainmenubox #mainmenu li.item.languages a").click(function () {
        $("#mainmenubox #mainmenu ul").hide();
        $("#mainmenubox .box.languages").show();
    });
    $("#mainmenubox .box.languages a.close").click(function () {
        $("#mainmenubox .box.languages").hide();
        $("#mainmenubox #mainmenu ul").show();
    });

    $("#mainmenubox #mainmenu li.item.search a, #sitemap li.search a").click(function () {
        $("#mainmenubox #mainmenu ul").hide();
        $("#mainmenubox .box.search").show();
        $("#mainmenubox .box.search form input#searchterm").focus();
    });
    $("#mainmenubox .box.search a.close").click(function () {
        $("#mainmenubox .box.search").hide();
        $("#mainmenubox #mainmenu ul").show();
    });


    /* // pulse effects for region pages
    function jsEffectPulse() {
    $(".js-effect-pulse").animate({ opacity: ['1', 'easeOutCubic'] }, 1000).delay(300).animate({ opacity: ['0.1', 'easeOutCubic'] }, 1000, jsEffectPulse);
    };
    function regionEffects() {
    $(".region-map-a").animate({ opacity: ['1', 'easeOutQuad'] }, 1000).delay(30).animate({ opacity: ['0.01', 'easeOutQuad'] }, 500);
    $(".region-map-b").delay(300).animate({ opacity: ['1', 'easeOutQuad'] }, 1000).delay(60).animate({ opacity: ['0.01', 'easeOutQuad'] }, 500);
    $(".region-map-c").delay(600).animate({ opacity: ['1', 'easeOutQuad'] }, 1000).delay(90).animate({ opacity: ['0.01', 'easeOutQuad'] }, 500, regionEffects);
    };

    jsEffectPulse();

    regionEffects();
    */

    // if viewing a service main page ...
    function setShowTabHandler() {
        $('#servicetab').unbind('click', hideTab);
        $('#servicetab').bind('click', showTab);
    };
    function setHideTabHandler() {
        $('#servicetab').unbind('click', showTab);
        $('#servicetab').bind('click', hideTab);
    };
    function showTab() {
        $('.service-main #leftnav').css('opacity', 0);
        $('#maincontent').css('left', '19px');
        $('#submenu').css('left', '156px');
        $('#servicetab').animate({ left: ['175px', 'easeOutQuint'] }, 500, showTab_b);
    };
    function showTabInitial() {
        //$('.service-main #servicetab').show().delay(500).animate({ left: ['973px', 'easeOutCubic'] }, 700);
        setTimeout(showTabInitial_a, 1100);
    };
    function showTabInitial_a() {
        $('.service-main #leftnav').css('opacity', 0);
        $('.service-main #maincontent').css('left', '19px');
        $('.service-main #submenu').css('left', '156px');
        $('.service-main #servicetab').animate({ left: ['175px', 'easeOutQuint'] }, 700, showTabInitial_b);
    };
    function showTab_b() {
        $('#submenu').fadeIn(500);
        $('#maincontent').fadeIn(200);
        $('#servicetab .tabGrip').fadeOut(300);
        $('.service-main #leftnav.strong').animate({ opacity: ['0.89', 'easeOutCubic'] }, 500);
        $('.service-main #leftnav.weak').animate({ opacity: ['0.39', 'easeOutCubic'] }, 500);
    };
    function showTabInitial_b() {
        $('.service-main #submenu').fadeIn(500);
        $('.service-main #maincontent').fadeIn(200);
        $('.service-main #servicetab .tabGrip').fadeOut(300);
        $('.service-main #leftnav.strong').animate({ opacity: ['0.89', 'easeOutCubic'] }, 500);
        $('.service-main #leftnav.weak').animate({ opacity: ['0.39', 'easeOutCubic'] }, 500);
    };
    function hideTab() {
        $('#servicetab').css('left', '175px');
        $('#submenu').fadeOut(500);
        $('#maincontent').fadeOut(500);
        $('#servicetab .tabGrip').fadeIn(500);

        $('.service-main #leftnav').animate({ opacity: ['0.0', 'easeOutCubic'] }, 500);
        setTimeout(hideTab_b, 500);
    };
    function hideTab_b() {
        $('#submenu, #maincontent').css('left', '1001px');
        $('#servicetab').animate({ left: ['973px', 'easeOutQuint'] }, 700);
    };

    // ... add click handler to service tab. open the tab on click
    setShowTabHandler();

    // ... partially slide in the service tab from the right
    //
    setTimeout(showTabInitial, 200);

    $('#servicetab-close').bind('click', hideTab);


    function columnize() {
        $('.service-main #maincontent').show();
        /*$('.columns-wide').columnize({ width: 310, ignoreImageLoading: false, lastNeverTallest: true, buildOnce: false });*/
        $('.service-main #maincontent').hide();
    };
    columnize();

    $("a.popup-common").bind('click', function () {
        var win = window.open(this.href, "common", "width=890,height=590,resizable=yes,toolbar=no,location=yes,status=no,menubar=no", true);
        win.focus();
        return false;
    });

    $("a.popup-pressrelease").bind('click', function () {
        var win = window.open(this.href, "pressrelease", "width=750,height=730,resizable=yes,toolbar=no,location=yes,status=no,menubar=no", true);
        win.focus();
        return false;
    });

    $("a.popup-clipping").bind('click', function () {
        var win = window.open(this.href, "mediaclipping", "width=750,height=730,resizable=yes,toolbar=no,location=yes,status=no,menubar=no", true);
        win.focus();
        return false;
    });

    $("a.new-window").bind('click', function () {
        var win = window.open(this.href);
        return false;
    });

    // Datepickers
    var datepickerCssSelector = "form .sta input, form .std input";
    var datepickerLanguage = "en-GB";

    if (document.URL.match(/\/ar\//)) {
        datepickerLanguage = "ar";
    } else if (document.URL.match(/\/en\//)) {
        datepickerLanguage = "en-GB";
    } else if (document.URL.match(/\/ru\//)) {
        datepickerLanguage = "ru";
    } else if (document.URL.match(/\/zh\//)) {
        datepickerLanguage = "zh-CN";
    }

    $(datepickerCssSelector).datepicker($.datepicker.regional[datepickerLanguage]);

    $('.ellipsis').dotdotdot();
});  


