$.fn.fakeCheckbox = function(option)
{	
    /* option */
    option = jQuery.extend({
        inactiveClass: 'no-js',
        CheckClass: 'fake-checkbox',
        CheckActiveClass: 'fake-checkbox-active',
        CheckHoverClass: 'fake-checkbox-hover',
        CheckActiveHoverClass: 'fake-checkbox-active-hover',
        ajaxFunction: function(){}
    }, option);
    
    /* function */
    
    if($(this).is(':checkbox') == true){
        $(this).not('.'+option.inactiveClass).each(function(){
            $(this).after('<span class="'+option.CheckClass+'"></span>');
            var fakeCheckBg = $(this).next().css('background-image');
            /* Funkce nahrazení se vykoná jen když je načten obrázek pozadí */
            if(fakeCheckBg != 'none'){
                $(this).addClass('out');
                if($(this).attr('checked')==true){$(this).next().addClass(option.CheckActiveClass)}
                $(this).bind('click', function(){
                    if($(this).attr('checked')==true){
                        $(this).next().addClass(option.CheckActiveClass);
                    }
                    else{
                        $(this).next().removeClass(option.CheckActiveClass);
                        $(this).next().removeClass(option.CheckActiveHoverClass);
                        $(this).next().removeClass(option.CheckHoverClass);
                    }
                    option.ajaxFunction();
                });
                /* Zjištění rodiče */
                var getParent = $(this).next().parent();
                if(getParent[0].nodeName != 'LABEL'){
                    $(this).next().click(function(){
                        $(this).prev().trigger('click');
                        if($(this).prev().attr('checked')==true){
                            $(this).addClass(option.CheckActiveClass); 
                        }
                        else{
                            $(this).removeClass(option.CheckActiveClass);
                        }
                        option.ajaxFunction();
                    });
                }
                /* Pokud se rodič rovná LABEL doplníme funkci pro IE */
                else{
                    if($.browser.msie && $.browser.version == '6.0' && getParent[0].htmlFor == ''){
                        getParent.click(function(){
                            $('input', this).trigger('click');
                            if($('input', this).attr('checked')==true){
                                $('input', this).next().addClass(option.CheckActiveClass); 
                            }
                            else{
                                 $('input', this).next().removeClass(option.CheckActiveClass);
                            }
                            option.ajaxFunction();
                        });
                    }
                }
                /* Hover fake Checkboxu */
                $(this).next().hover(function(){
                    if($(this).is('.'+option.CheckActiveClass) == true){
                        $(this).addClass(option.CheckActiveHoverClass);
                    }
                    else{
                        $(this).addClass(option.CheckHoverClass);
                    }
                },function(){
                    if($(this).is('.'+option.CheckActiveClass) == true){
                        $(this).removeClass(option.CheckActiveHoverClass);
                    }
                    else{
                        $(this).removeClass(option.CheckHoverClass);
                    }
                });
            }
            else{
                $(this).next().remove();
            }
        });
    }
};
