var CurrentColour = '0c6bab';
var DynamicColor = '#searchBox,.dynamicColor,.post a,.pagination a,.comment h3 a,.comment h3';
var DynamicBackground = '.dynamicBackground,.form_element input[type=submit]';
var DynamicBorder = '.dynamicBorder';

function c(hex){
    changeFavicon(hex);
    changeDynamicItems(hex,true);
}

function changeFavicon(hex){
    $('link[rel=icon]').remove();
    $('head').append('<link rel="icon" type="image/png" href="/generate/favicon/' + hex +'" />');
}

function changeDynamicItems(hex,animate){
    if(animate){
        $(DynamicColor).animate({'color':'#' + hex});
        $(DynamicBackground).animate({'backgroundColor':'#' + hex});
    }else{
        $(DynamicColor).css({'color':'#' + hex});
        $(DynamicBackground).css({'backgroundColor':'#' + hex});
    }
    $(DynamicBorder).css({'borderColor':'#' + hex});
    $('#searchBox').css({'backgroundImage':'url(/generate/magnifier/' + hex + ')'});
    $.cookie('customColour', hex, { expires: 360, path: '/' });
    CurrentColour = hex;
}

$(document).ready(function(){
    if(document.location.hash.match('hex=')){
        changeFavicon(document.location.hash.replace('#hex=',''));
        changeDynamicItems(document.location.hash.replace('#hex=',''));
    }
    else{
        if($.cookie('customColour')){
            hex = $.cookie('customColour');
        }else{
            hex = CurrentColour;
        }
        changeFavicon(hex);
        changeDynamicItems(hex);
    }
    $('#picker-custom').ColorPicker({
        onBeforeShow: function () {
            $(this).ColorPickerSetColor(CurrentColour);
        },
        onShow: function (colpkr) {
            $(colpkr).fadeIn(300);
            return false;
        },
        onHide: function (colpkr) {
            $(colpkr).fadeOut(300);
            changeFavicon(CurrentColour);
            return false;
        },
        onChange: function (hsb, hex, rgb) {
            if(rgb['r'] > 200 && rgb['g'] > 200 && rgb['b'] > 200){
                return false;
            }
            changeDynamicItems(hex);
        }
    });
});