(function(jQuery){
    jQuery.tacirAjaxtab = function(nesne, ayarlar) {
        $this = jQuery(nesne);
        
        var ayarlar = jQuery.extend({
            ekfunction: [false]
        }, ayarlar);
       
	   //ilkini aktif yap
	   jQuery("li", $this).eq(0).addClass("current");

        var maincore = Core(); //anası :)
        maincore.init();

        function Core() {
            var tablar = jQuery("li", $this);
            var tablarA = jQuery("a", tablar);
            var urunlertab = jQuery("div.tabContentC");

            return {
                init: function(){
                    //TABLARIN URL VE ONCLİCK ÖZELLİKELRİNİ SİL
                    jQuery.each(tablarA, function(){
                        var oncekiUrl = jQuery(this).val("url");
                        var kampanyaId = oncekiUrl.attr("href").split("=");

                        jQuery(this).attr("href", "#" + oncekiUrl.attr('href')).attr("kampanya_id", kampanyaId[1]);
                        jQuery(this).attr("onclick", "return false;");
                    });
                    //////////////////
                    this.start();////
                    /////////////////
                },
                start: function(){
                   var ajx = this.ajax;
                   var yukleniyor = this._yukleniyor();


                   if (document.location.hash) {
                        //this.hashlink(yukleniyor, ajx); 
                   }

                    tablar.live("click", function(event){
                        tablar.removeClass("current");
                        jQuery(this).addClass("current");
                        
                        if (jQuery(this).attr("id") == "tablartumu") {
                            var kategori = jQuery(this).attr("data-kategori") + "/?" || "/?";
                            var link = "/kategori/" + kategori +  jQuery("form#filtreleme").serialize();
                            
                            ///////////////////
                            var args = {
                                "link": link,
                                "yukleniyor": yukleniyor,
                                "type": "json"
                            }

                            yukleniyor.goster(event.pageX, event.pageY);
                            ajx(args);

                        } else {
                            var kampanyaId = jQuery("a", this).attr("kampanya_id");
                            var hashG = jQuery("a", this).attr("href").split("?")[1];
                        
                            //hash olayını url'e ekle 
                            document.location.hash = hashG;
                            yukleniyor.goster(event.pageX, event.pageY);

                            
                            var kategori = jQuery("#tablartumu").attr("data-kategori");
                            var kategorisi = (kategori === undefined ? "" : "&kategori="+ kategori );

                            var link = "/ajax-kampanya-urunler/?kampanya=" + kampanyaId + kategorisi;
                            
                            var args = {
                                "link": link,
                                "yukleniyor": yukleniyor,
                                "type": ""
                            }
                                
                            ///////////////////
                            ajx(args);///
                            ///////////////////
                      }
                   }) 
                },
                
                hashlink: function(yukleniyor, ajx){
                        var kampanyaId = document.location.hash.split("=")[1]
                        jQuery("li", $this).removeClass();
                        jQuery("a[kampanya_id='"+ kampanyaId +"']").parent().addClass("current");

                        
                        var kategori = jQuery("li#tablartumu").attr("data-kategori") + "/?" || "?/";
                        var link = "/kategori/" + kategori +  jQuery("form#filtreleme").serialize();
                        
                        ///////////////////
                        ajx(link, yukleniyor);///
                        ///////////////////
                },
                _yukleniyor: function(){
					if	($("html").hasClass("no-svg"))	{
						var yukleniyorImg = jQuery("<img/>", {"id": "yukleniyor", "src": "/skeleton_media/images/usermenu/yukleniyor.gif"});
					}	else	{
						var yukleniyorImg = jQuery("<img/>", {"id": "yukleniyor", "src": "/skeleton_media/images/usermenu/yukleniyor.svg"});
					}
                    return {
                        goster: function(x, y){
                           jQuery("body").append(yukleniyorImg);
                           yukleniyorImg.css({"top": (y + 20) + "px", "left": (x + 8) + "px"}).fadeIn();
                           jQuery(document).mousemove(function(event){
                                yukleniyorImg.css({"top": (event.pageY + 20) + "px", "left": (event.pageX + 8) + "px"});
                           });
                        },
                        gosterme: function(){
                            yukleniyorImg.fadeOut(function(){
                                    jQuery(this).remove();
                            });
                        }
                    } 
                },

                ajax: function(args){
                    jQuery.ajax({
                        type: "GET",
                        url: args.link,
                        dataType: args.type,
                        error: function(){},
                        success: function(html){
                            var urunlermain = jQuery("div.tabC");
                            args.yukleniyor.gosterme();

                            if (args.type == "json") {
                                urunlermain.html(html["ajax_filtreleme"]);
                                jQuery("div#ajax-gelen").html(jQuery("div#ajax-gelen", jQuery(html["filtreleme"])));

                                if (ayarlar.ekfunction[0]) {
                                    //masonry aktif et
                                    for (functionn in ayarlar.ekfunction) {
                                        if (functionn != 0) {
                                            ayarlar.ekfunction[functionn].call(this) 
                                        } 
                                    }
                                }

                            } else {
                                //gelen html'de tabProductlist olmadığı için bu ul 'yi yaratıp html içersine koymamız lazım!
                                var tabproductlist = jQuery("<ul/>", {"class": "tabProductList", "html": html});
                                urunlermain.html(tabproductlist);

                                if (ayarlar.ekfunction[0]) {
                                    //masonry aktif et
                                    for (functionn in ayarlar.ekfunction) {
                                        if (functionn != 0) {
                                            ayarlar.ekfunction[functionn].call(this) 
                                        } 
                                    }
                                }
                            }
                        }
                    })
                }
            } 
        }
    }
})(jQuery)

