(function($){
//jQuery version check
    var arr = $.fn.jquery.split('.'); //["1", "10", "2"]
    if(arr[0] == 1 && arr[1] < 7)
    {
        //jQuery older than 1.7
        var oldJquery = true;
    }


// Our namespace
    $.DKMCOOKIECONSENT = {}; // This is our namespace ALLWAYS create functions and vars inside.
    $.DKMCOOKIECONSENT.func = {}; // for all the functions
    $.DKMCOOKIECONSENT.data = {   // for all global vars
        //buttonClicked or boxShownOnce
        hideBoxWhen : 'buttonClicked',
        delayBeforeShowingBox : 500,
        animationTime : 500,
        //slide or fade
        boxShowEffect : 'slide',
        boxHideEffect : 'fade'
    };

    $(document).ready(function() {
        $.DKMCOOKIECONSENT.func.overrideDefaultSettings($.DKMCOOKIECONSENT.data);
        $.DKMCOOKIECONSENT.func.cookieConsent();
        $.DKMCOOKIECONSENT.func.cookieConsentListener();
    });

    $.DKMCOOKIECONSENT.func.overrideDefaultSettings = function(dataVar) {
        if(typeof DKMCOOKIECONSENT_OVERRIDE !== 'undefined') {
            $.each(dataVar, function(varName, varValue){
                if(typeof DKMCOOKIECONSENT_OVERRIDE[varName] !== 'undefined') {
                    $.DKMCOOKIECONSENT.data[varName] = DKMCOOKIECONSENT_OVERRIDE[varName];
                }
            });
        }
    };

    $.DKMCOOKIECONSENT.func.cookieConsentListener = function () {
        if(!oldJquery) {
            $('#closeCookieConsentBox').on('click', function() {
                $.DKMCOOKIECONSENT.func.closeCookieConsent();
            });
        } else {
            $('#closeCookieConsentBox').live('click', function() {
                $.DKMCOOKIECONSENT.func.closeCookieConsent();
            });
        }
    };

    $.DKMCOOKIECONSENT.func.cookieConsent = function() {
        var cookie = $.cookie('cookieConsent');
        if(!cookie) {
            //set cookie if boxShownOnce is set
            if($.DKMCOOKIECONSENT.data.hideBoxWhen == 'boxShownOnce') {
                $.DKMCOOKIECONSENT.func.setCookieConsentCookie();
            }

            setTimeout(function() {
                if($.DKMCOOKIECONSENT.data.boxShowEffect == 'slide') {
                    $('#cookieConsent').slideDown( $.DKMCOOKIECONSENT.data.animationTime );
                } else {
                    $('#cookieConsent').fadeIn( $.DKMCOOKIECONSENT.data.animationTime );
                }
            }, $.DKMCOOKIECONSENT.data.delayBeforeShowingBox);
        }

    };

    $.DKMCOOKIECONSENT.func.closeCookieConsent = function() {
        if($.DKMCOOKIECONSENT.data.hideBoxWhen == 'buttonClicked') {
            $.DKMCOOKIECONSENT.func.setCookieConsentCookie();
        }
        if($.DKMCOOKIECONSENT.data.boxHideEffect == 'slide') {
            $('#cookieConsent').slideUp( $.DKMCOOKIECONSENT.data.animationTime );
        } else {
            $('#cookieConsent').fadeOut( $.DKMCOOKIECONSENT.data.animationTime );
        }
    };

    $.DKMCOOKIECONSENT.func.setCookieConsentCookie = function() {

        var date = new Date();
        date.setTime(date.getTime() + (60 * 60 * 1000 * 24 * 365));

        $.cookie("cookieConsent", "true", { expires: date, path: '/' });
    }


})(jQuery);