(function(jQuery){
    jQuery.sepetUygulama = function(nesne, ayar) {
    
    var ayar = jQuery.extend({
        durum: "pasif",
        sepetimdiv: ".sepetim",
        ekleinput: "input#sepet_ekle",
        urunresim: ".resim",
        sepetenalt: ".enalt",
        urunsildiv: ".sepetim-urun-sil",
        urundiv: ".sepetim-urun",
        cart: "#cart a",
        ekleniyorclass: "sepete-ekleniyor",
        ekleniyoryazi: "Ekleniyor...",
        eklendiclass: "sepete-eklendi",
        eklendiyazi: "Eklendi!",
        kactane: [".cart a"],
        toplamfiyat: false,
        fiyatTutucu: "",
        countCart: false,
        countCartDiv: ""
    }, ayar);



    //Nesneler 
    sepetim = jQuery(ayar.cart);
    sepetimNesne = jQuery(ayar.sepetimdiv);
    sepetEkleInput = jQuery(ayar.ekleinput);
    urunResim = jQuery(ayar.urunresim);
    sepetEnalt = jQuery(ayar.sepetenalt);
    urunSilDiv = jQuery(ayar.urunsildiv);

    ufacicik = new ufak_tefek;

    var AKTIFLIK =  {};
    AKTIFLIK.durum = (function(){
        return {
            aktif: function(){
                //################################
                var islemler = new islem_ana();//#
                //################################

               //SEPET EKLE
                sepetEkleInput.live("click", function(){
                    islemler.sepetEkle(this);
                });
                //SEPET AÇ
                sepetim.live("click", function(event){
                    event.preventDefault();
                    islemler.sepetGoster(this, "goster"); 
                });
               
                //ürün REsmine  tıklandığında ürüne git
                urunResim.live('click', function(){
                    urunLink = jQuery(this).parents(ayar.urundiv).attr("urunslug");
                    sepetim.fadeOut('fast', function(){
                        document.location.href = urunLink;
                    })        
                });

                //ÜRÜN sill
                urunSilDiv.live("click", function(){
                    sil = jQuery(this);
                    urunTamdiv = jQuery(this).parent();
                    
                    if (sil.text() == "sil") {
                        urunId = urunTamdiv.attr("urunid");
                        urunTamdiv.fadeOut('fast', function(){
                            //ÜRÜN SİL AJAX
                            var ajax = new islem_ajax;
                            ajax.ajaxUrunSil(this, urunId);
                        });
                    } 
                    else {
                        jQuery(ayar.urunsildiv).removeClass("deletegui").find("a").text("X");
                        sil.addClass("deletegui").find("a").text("sil");
                    }//if
                });

            },//aktif
            pasif: function(){
               alert("sd"); 
            },//pasif

            uyari: function(){
                alert("Sepetim lightbox seçenekleri belirtiniz! 1: aktif, 2: pasif ");
            }//uyari
        }//return 
            
    })();

    //Cekirdek :)
    switch (ayar.durum) {
        //aktif ise!
        case "aktif":
           AKTIFLIK.durum.aktif(); 
        break;
        //pasif ise
        case "pasif":
            AKTIFLIK.durum.pasif();
        break;
        default: AKTIFLIK.durum.uyari();
    };

    function islem_ana() {
        return { 
            sepetEkle: function(nesne){
                nesnem = jQuery(nesne);
                form = nesnem.parents("form");

                var ufaktefek = new ufak_tefek;
                ufaktefek.sepetInputAni(nesnem, "ekleniyor");
                ekleniyor = jQuery(".sepete-ekleniyor");


                ekleniyor.animate({"margin-top": "-=50px"}, 'slow', function(){
                    jQuery(this).fadeOut(); 
                });

                //tıkladığında tüm inputların fade'ini %20 yap
                var ufaktefek = new ufak_tefek;
                    ufaktefek.sepetInputFade(ayar.ekleinput, 0.20);
                
                //###############################
                var ajaxlar = new islem_ajax;//##
                    ajaxlar.ajaxUrunEkle(nesnem);//####
                //###############################
    
            },//SEPETE EKLE

            sepetGoster: function(nesne, islem){
                //Static ayarlar..
                var ayarlar = {
                    sepetLink: "/lightbox-cart/",
                    silLink: "/lightbox-cart-sil/" ,  
                    sepetClass: "sepetim",
                    urunClass: "sepetim-urun",
                    tiklananClass: "cart-cart",
                    resimClass: "resim",
                    ozelliklerClass: "ozellikler",
                    divSon: "</div>",
                    SEPET: "",
                    YUKLENIYOR: ""
                };
               

                nesnem = jQuery(nesne);
                //bidaha tıklamaması  için;
                if (jQuery(nesne).attr("acilmasin") != "evet") {
                    bodyy = jQuery("body");
                    ayarlar.SEPET += "<div class='" + ayarlar.sepetClass + "'>";
                
                    //ayarlar.SEPET += "<div class='enust'></div>";
                    //ayarlar.SEPET += "<div class='enalt'><a href='#sepet'> Sepete git </a></div>";
                    ayarlar.SEPET += ayarlar.divSon;
                    ayarlar.YUKLENIYOR += "<span class='sepet-yukleniyor' style='position:absolute; margin:25px 0 0 -50px;' class='yukleniyor'>açılıyor....</span>";
                
                    //sepeti yarat
                    bodyy.prepend(ayarlar.SEPET);
                    sepetim = jQuery(".sepetim");
                    sepetim.hide();
                    //yukleniyoru yarat.
                    nesnem.prepend(ayarlar.YUKLENIYOR);
                    sepetYukleniyor = jQuery("span.sepet-yukleniyor");

                    //işlem burdan gidiyor ona göre ekle, goster değişkeni olarak ayarlandı!
                    //##########################################
                    var ajax = new islem_ajax;//################
                    ajax.ajaxSepetGoster(ayarlar, islem);//##
                    //##########################################
                    
                    jQuery(ayar.cart).attr("acilmasin", "evet");
                };

                bodyy.click(function(event){
                    tiklanan =  jQuery(event.target);
                    tiklanan2 = jQuery(event.target).parents("div").attr("class");

                    
                    if (tiklanan2 != ufacicik.staticId()  && tiklanan.is(".sepetim *") == false ) {
                        jQuery(ayar.sepetimdiv).fadeOut(function(){
                            jQuery(this).remove();
                            jQuery(ayar.cart).removeAttr("acilmasin");

                        });
                    };
               });
                
                //sepetin body kisminda scroll edildiginde oynarlat 
                jQuery(window).scroll(function(){
                    jQuery(".sepetim").css({"margin-top": (jQuery(window).scrollTop()) + "px"});
                });

             }//SEPET GÖSTER
        }
    }//İŞLEM_ANA
    
    function islem_ajax() {
        return {
            ajaxUrunEkle: function(nesnem){
                sepetimdegis = this.sepetimDegis;
				var fiyatguncelle = this.fiyatDegis;

                //ÇOKLU Bir ekleme aktif olayı 
                if (ayar.countCart == true ) {
                    if (ayar.countCartDiv == "") { 
                        return false;
                    } else {
                        var adet = jQuery(ayar.countCartDiv, form).val();

                        if (adet === undefined ) { var adet = 1; }
                        var url = '/sepete_ekle/?adet=' + adet + "&productname" + jQuery("input#productname, input#urunlername ").val();
                    }
                } else { url  = '/sepete_ekle/?productname='+ jQuery("input#urunlername, input#productname", form).val() + "&quantity=" + jQuery("input#quantity", form).val(); }


                jQuery.ajax({
                    type: "GET",
                    url: "" + url + "",
                    dataType: "json",
                    success: function(bilgi){
                        if (bilgi["errors"]) {
                            
                            ekleniyor.fadeIn(function(){
                                fadein = jQuery(this);
                                var ufaktefek = new ufak_tefek;
                                ufaktefek.sepetInputAni(nesnem, "eklendi");
                                var eklendi = jQuery(".sepete-eklendi");
                                eklendi.html("bu üründe stok yok!").css({"color": "red"});

                                eklendi.animate({"margin-top": "-=50px"}, 'slow' , function(){
                                    jQuery(this).fadeOut(function(){
                                        jQuery(this).remove();
                                        fadein.remove();
                                        ufaktefek.sepetInputFade("input#sepet_ekle", 99, "evet");    
                                    });
                                }); 


                            });

                                                 
                        } else if (!bilgi["errors"]) {
                            //yükleniyor değişkenini söndür!
                                sepetimdegis(bilgi["cart_count"]);
                                ekleniyor.fadeIn(function(){
                                    fadein = jQuery(this);
                                    setTimeout(function(){
                                        fadein.fadeOut(function(){
                                            jQuery(this).remove();
                                            //tıkladığında tüm inputların fade'ini %20 yap
                                            var ufaktefek = new ufak_tefek;
                                            ufaktefek.sepetInputFade("input#sepet_ekle", 99, "evet");
                                            //SEPETİ GÖSTER 
                                            var sepetgoster = new islem_ana;
                                             sepetgoster.sepetGoster("", "ekle");
											 
                                            ufaktefek.sepetInputAni(nesnem, "eklendi");
                                            eklendi = jQuery(".sepete-eklendi");
                                            
                                            if (ayar.toplamfiyat == true ) {
                                    			var fiyat = bilgi.cart_total_normalize[0];
                                    			if (fiyat) {
                                    				fiyatguncelle( fiyat + " TL");					    
                                    			} else {
                                    				throw new Error("Fiyat yok! Gelmedi!!");
                                    			}
                                            		
                                            }
                                            
                                            eklendi.animate({"margin-top": "-=50px"}, 'slow' , function(){
                                                jQuery(this).fadeOut(function(){
                                                    jQuery(this).remove();
                                                });
                                            }); 
                                     });
                                    }, 500);
									
                                });
                        }
                    }
                });
               
            },//SEPET ÜRÜN EKLE
            ajaxSepetGoster: function(ayarlar, islem){
                goster = this.goster;

                jQuery.ajax({        
                    type: "POST",
                    url: ayarlar.sepetLink,
                    errorr: function(){ alert("HATA"); },
                    success: function(Html){
                        jQuery(ayar.cart).attr("acilmasin", "evet"); 
                        var sepet = jQuery(ayar.sepetimdiv);
                        sepet.prepend(Html);

                        var urunlerSay = jQuery(".sepetim-over "+ ayar.urundiv).length;
                        if (islem == "ekle" && urunlerSay >= 4 ) {

                            goster(sepet, true);
                            urunler = jQuery(".sepetim-over");
                            ilkUrun = jQuery(ayar.urundiv ,urunler).first();
                            sonUrun = jQuery(ayar.urundiv, urunler).last();
                            sonUrun.hide();

                            ilkUrunHeight = ilkUrun.height() + 10;
                            ilkUrun.animate({"margin-top" : "-" + ilkUrunHeight + "px"}, function(){
                                jQuery(this).hide();
                                sonUrun.fadeIn('fast');
                            });
                            
                        } else if (islem == "ekle" && urunlerSay < 4 ){
                            goster(sepet, true);
                        } else if (islem == "goster") {
                            goster(sepet, false);

                        }
                        sepetYukleniyor.fadeOut('fast', function(){
                            jQuery(this).remove();
                        });
                    }//successs
                });
            },//SEPET GÖSTER
            goster: function(sepet, gitsin) {
			   if (gitsin == true){
                       sepet.css({"margin-top": jQuery(window).scrollTop() + "px"}).fadeIn();
                       kapat = setTimeout(function(){
                           sepet.fadeOut(function(){
                               jQuery(ayar.cart).attr("acilmasin", "hayir");
				 	           jQuery(ayar.sepetimdiv).remove();
                           });
                       }, 4800);
                       
					jQuery(ayar.sepetimdiv).hover(function(){
                        window.clearTimeout(kapat); 
                    });

			   } else	{
			       sepet.css({"margin-top": jQuery(window).scrollTop() + "px"}).fadeIn(); 
			   }
	   
            },
            ajaxUrunSil: function(urunTamDiv, urunId){
                ajaxurunler = this.ajaxUrunler;
                sepetimdegis = this.sepetimDegis;
				var fiyatguncelle = this.fiyatDegis;	
                jQuery.ajax({
                    type: "POST",
                    url: "/lightbox-cart-sil/" + urunId + "/",
                    dataType: "json",
                    errorr: function(){ alert("Hata"); },
                    success: function(Bilgi){

                        urunTamdiv.remove();
                        htmlUrun = jQuery(ayar.sepetimdiv + " "+ ayar.urundiv +":not(:hidden)").length;
                        htmlUrun2 =  jQuery(ayar.sepetimdiv +" "+ ayar.urundiv).length;
                        if (Bilgi.kactane >= 0 && htmlUrun == 0) { 
                            urunler = jQuery(ayar.urundiv);
                            urunheight = urunler.first().show().animate({"margin-top" : "0px"});
                            if (Bilgi.kactane >= 0 && htmlUrun2 == 0 ) { 
                                ajaxurunler(); 
                            };
                        };
                      
                        sepetimdegis(Bilgi.kactane);

                        
                        if (ayar.toplamfiyat == true ) {
                            //jQuery(ayar.fiyatTutucu).html(Bilgi["toplam"]);
                            fiyatguncelle(Bilgi.toplam);
                        }
                    }
                });//ajax
            },//ajaxUrunSil
			ajaxUrunler: function(){
                jQuery.ajax({
                    type: "POST",
                    url: "/lightbox-cart/",
                    success: function(html){
                        var sepet = jQuery(ayar.sepetimdiv);
                        sepet.fadeOut('fast', function(){
                            jQuery(this).html(html);
                            sepet.fadeIn("slow");
                        });//fadeOut
                    }//success
                });//ajax
            },//ajax Urunler
            sepetimDegis: function(sayi){
                for (i=0; i < ayar.kactane.length; i++) {
                        var sepet = jQuery(ayar.kactane[i]);
                        var sepette = sepet.html();
                        var yeni = sepette.replace(/\d+/, sayi);
                        sepet.html(yeni);
                }

            },//sepetim degis
			
			fiyatDegis: function(fiyat){
		        if (ayar.fiyatTutucu == "" && ayar.toplamfiyat == true) { throw new Error("Fiyat tutucu yok!"); } else {
                    var fiyatli = jQuery(ayar.fiyatTutucu);
                    fiyatli.html(fiyat);
                }   
            }
			
        }// işlem ajax Return  
    }//işlem ajax

    function ufak_tefek() {
        return {
            sepetInputFade: function( nesneSecici, fadeT, defaultt){
                turu = typeof fadeT;
                if (turu == "number") {
                    sepetInputlar = jQuery(nesneSecici);
                    sepetInputlar.attr("id", "sepet_ekle_iptal");
                    yeniInput = jQuery("input#sepet_ekle_iptal");
                    yeniInput.css({"cursor": "none"});//geçiciliği kaldır'ki tekrar basmasın!
                    yeniInput.fadeTo("slow", fadeT);
                    if (defaultt) {
                        yeniInput.css({"cursor": "pointer"});
                        yeniInput.fadeTo('fast', fadeT);
                        yeniInput.attr("id", "sepet_ekle");
                    } 
                }
            },//fadeToNesne;
            sepetInputAni: function(nesnem, islem){
                if (islem == "ekleniyor") {
                    nesnem.after("<div class='"+ ayar.ekleniyorclass +"'>"+ ayar.ekleniyoryazi +"</div>");
                } else if (islem == "eklendi") {
                    nesnem.after("<div class='"+ ayar.eklendiclass +"'>"+ ayar.eklendiyazi +"</div>");
                } 
           },//sepeInputAni
           staticId: function(){
               var a = ayar.cart.replace(".", "");
               var aa = a.replace(" a", "");
               return aa;
           }
        }// ufat teke işler RETURN 
    }//Ufak TTefek İşler

}//sepet Uygulama
})(jQuery);



