﻿/* Author: Dan Kjær Jessen */


CMS.contact = (function($){
    var id,
        submit = function(in_id) {
            id = in_id;
            submitForm();
            return false;
        },

        submitForm = function() {
            var theForm = document.getElementById(id),
                values = {};

            for (var i=0; i < theForm.elements.length; i++) {
                values[theForm.elements[i].name] = theForm.elements[i].value;
            }

            $(id).ajaxError(handleErrors);
            $.post(theForm.action, values, formResponse);
        },

        formResponse = function(response)
        {
            if (response.indexOf("Tak for din henvendelse") == -1 || response.indexOf("E-mail sendt.") == -1) {
                alert(response);
            } else {
                alert("E-mail sendt.");
            }
        },

        handleErrors = function(event, request, settings, err) {
            alert(err + 'Error requesting page: ' + settings.url);
        };

    return {submit:submit};
}(window.jQuery));

 /**
 * LightBox LSS Aviva CMS modul
 *
 * @module lightBox
 * @namespace CMS
 * @param   {Object}              $   jQuery object
 * @return  {Object}              {}  returns the public functions
 */
CMS.lightBox = (function($){ 

    var params, 

        applyLightBox = function() {
            $.each(
                params, 
                function(index,value){
                    $(value).lightBox();
                }
            );
        },

        init = function(inparams) {
            params = inparams;
            // check if lightbox plugin is loaded
            if(typeof $.fn.lightBox !== 'function') {
                $.getScript('templates/top-side/media/js/libs/jquery.lightbox-0.5.min.js', applyLightBox);
            } else {
                applyLightBox();
            }
        };

    // hook up on init event
    $.subscribe("/cms/lightBox/init", function(params) {
        init(params);
    });
}(window.jQuery));


 /**
 * Et modul, der sørger for, at starter en billed- fader/cycler.
 * funktionaliteten har knapper, så det er muligt at bladre mellem
 * billederne
 *  
 * @module LSS_slider
 * @namespace CMS
 * @param   {Object}              $   jQuery object
 * @return  {Object}              {}  returns the public functions
 */
CMS.LSS_slider = (function($){

    var $wrap,
        $navContainer,
        $descriptions,
        $slider,
        $pagerCount,

        navBuilder = function(idx, elem) {
            var $link = $(elem)
                            .find('.link')
                            .detach()
                            .appendTo($navContainer)
                            .wrap("<li class='png_bg' />");

            return '.slider_wrap .navigation li:eq(' + idx + ')'; 
        },

        resizeImage = function() {
            var img_height,
                desc_height;

            // 43 = pager height in pixel
            // 2 = margin in pixel between pager links
            img_height = ($pagerCount * 43) - 4;

            $wrap
                .find(".img_wrap")
                .each(
                    function(idx,elem) {
                        desc_height = 2 + $descriptions.eq(idx).actual('height');
                        $(elem).css({"width":671, "height":299 - desc_height});
                    }
                );
        },

        applyCycle = function() {
            // define variables
            $wrap         = $(".slider_wrap");
            $navContainer = $wrap.find('.navigation');
            $descriptions = $wrap.find('.description_link');
            $slider       = $wrap.find('.slider');
            $pagerCount   = $slider.find('.link').length;

            // resize images to proper height
            resizeImage();

            // define cycle
            $slider.cycle({
                fx: 'fade', 
                speed: "fast", 
                timeout: 0,
                activePagerClass: "active",
                allowPagerClickBubble: true,
                pager: '.navigation',
                pagerEvent: 'mouseover',
                pagerAnchorBuilder: navBuilder
                }
            );    
        },
        
        init = function(param) {
            // check if cycle plugin is loaded
            if(typeof $.fn.cycle !== 'function') {
                $.getScript('templates/top-side/media/js/libs/jquery.cycle.all.min.js', applyCycle);
            } else {
                applyCycle();
            }            
        };

    // hook up on init event
    $.subscribe("/cms/LSS_slider/init", function(params) {
        init(params);
    });

}(window.jQuery));


/**
 * Et modul, der ansvarlig for, at starte andre moduler op, så
 * funktionalitet kommer ind på siden
 *  
 * @module init
 * @namespace CMS
 * @param   {Object}              $   jQuery object
 * @return  {Object}              {}  returns the public functions
 */

CMS = CMS || {};
CMS.init = (function($){
    var init = function() {
        // check if any modules are needed
        if(!CMS.modules) return

        // loop all modules and start them
        $.each(
            CMS.modules,
            function(key,value) {
                if(typeof value === 'function') { 
                    value(); 
                } else {
                    $.publish("/cms/"+key+"/init", [value]);
                }
            }
        );
    };

    ///////////////////////////////////////////////////////////
    // run the modules
    init();
})(window.jQuery);


