/**
 * plugin pozwala zamienia wywolanie linku na wywolanie ajaxowe
 */
;
(function($) {
    $.fn.ajaxlink = function(options) {
        options = $.extend({
        target: null,
        force: true,
        tabbed: false,
        spinner: true,
        removeParentSelector: false,
        replaceableImage:".replaceable",
        replacementImageClass:".replaceImage",
        ajaxLinkOnce: false,
        onBeforeSend: function(){}
    }, options);
        return this.each(function() {
            if (options.force) {
                $(this).unbind('click');
            }
            $(this).data("ajaxized",true);
            $(this).bind('click', function(event) {
                event.preventDefault();
                var $this = $(this);
                var target = $this.data('target');
                if(options.ajaxLinkOnce){
                    if($this.data('ajaxLinkWasOnceCliked')){
//                        console.log($this.data('ajaxLinkWasOnceCliked'));
                        return;       
                    }else{
                        $this.data('ajaxLinkWasOnceCliked', true);
//                        console.log("Ustawiam:  "+'ajaxLinkWasOnceCliked');
                    }
                }
                if(target==null){
                    if(options.target!=null){
                        target=options.target;
                    } else{
                        target = this.href;
                        var href = target.split("#");
                        this.href = href[0];
                        if(href.length>1){
                            target = '#'+href[1];
                        }
                        else{
                            target =null;
                        }
                    }
                    $this.data('target',target);
                }
                $(target).html("<div class=\"ajax-spinner\"></div>");
                var selectCurrentTab = function(){
                    if($this.is(".notTab")){
                        return;
                    }
                    if(options.tabbed ){
                        var $parent = $this.parent();
                        var $grandParent = $parent.parent();
                        $grandParent.find('.tabBarItem').removeClass('tabBarItemSelected');
                        $parent.addClass('tabBarItemSelected');
                    }
                }
                selectCurrentTab();
                options.onBeforeSend();
                $.post(this.href, {}, function(response) {
                    selectCurrentTab();
                    $(target).html(response);
                    if(options.removeParentSelector){
                      $this.parents(options.removeParentSelector).fadeOut("slow");
                    }
                    var $images = $this.find(options.replaceableImage);
                    var $replace = $(options.replacementImageClass);
                    $images.each(function(){
                      $(this).attr('src',$replace.attr('src'));
                    });
//                    if(options.replacementImage)
                });
            });
        });
    };
})(jQuery);

