(function(){
    $.colorChoices = function(o){
        
        // Gives custom settings precendence:
        var s = $.extend({
            colors: [],
            appliedEls: '',
            cookieName: 'ColorChoice',
            linkTitle: 'Choose your Color!',
            animationSpeed: 1000
        },o);
        
        // Function used to build list items:
        function buildColorList() {
            var list = '';
            $(s.colors).each(function(){
                list += ('<li><a href="#" style="background:' + this + '">&nbsp;</a></li>');
            });
            return list;
        }
        
        // Function used to apply selected color:
        function applyColor(color) {
            return color && $(s.appliedEls).animate({backgroundColor:color},s.animationSpeed);
        }
        
        // Function used to slide up/down cc controls:
        function slideCC() {
            var CC = $('#cc');
            if(CC.data('state') === 'down') {
                CC.animate({top:'-'+(CC.height())}) && CC.data('state','up');
            } else {
                CC.animate({top:0}) && CC.data('state','down');
            }
            return false;
        }
        
        // Prepare, build DOM elements:
        var structure = '<div id="cc"><ul class="colors">' + buildColorList() + '</ul></div>';
        $(structure).appendTo('div#cc');
        
        $('#cc').data('state','up').css({
            top: '-' + ($('#cc').height()) + 'px'
        });
        
        // Attach events
        $('#ccbutton').click(slideCC);
        $('#cc ul a').click(function(){
            var color = $(this).css('backgroundColor');
            applyColor(color);
            // Wipe cookie:
            $.cookie('cc',null,{domain:'izhr.net',path:'/'});
            // Set cookie:
            $.cookie('cc',color,{domain:'izhr.net',path:'/'});
            return false;
        });
        
    }
    /* Initiate: */
    $(function(){
        $.colorChoices({
            colors: ['#a4bb2d','#8eb35f','#ff0099','#f5b316','#0f5d9e','#119fcc','#7c01ad','#ff5d3b','#b2d40a','#c4bfa1','#232323','#3e3f3c','#d81212','#d94645','#ffffff','#01aef0','#49599e'],
            appliedEls: 'body',
            cookieName: 'cc'
        });
    });
})();