(function(jQuery){
    jQuery.ARA = function(nesne, c, b, ayarlar){
    
    $this = jQuery(nesne);
    var ayarlar = jQuery.extend({
	        funcSecildi: function(){},
	        width:0
	    }, ayarlar);
    
    var x;
    var j = [];
    var k = false;
    var v = -1;
    var i = 0;
    var e;
    var h = "#"+ b;
    var d = jQuery(h);

    KLAVYE = {
        yukari: 38,
        assagi: 40,
        sil: 46,
        tab: 9,
        devam: 13,
        esc: 27,
        et: 64 //@ işareti
    };

    jQuery("#MightyContainer").prepend("<div id='search-result'></div>");

    $this.attr("autocomplete","off");
    jQuery(nesne).focus(function(){ timeoutAyarla(); });
    jQuery(window).resize(function(){ positionAyarla(); });


    jQuery("html").click(function(y){
        if (k){
            var z= jQuery(y.target,h);
            if(z.attr("class")!=="bulunan" && z.attr("id") !== nesne.substr(1)){
                l();
            }
        }
    });

    jQuery(nesne).live(
        jQuery.browser.opera ? "keypress" : "keydown" ,function(y){
        switch(y.keyCode){
            case KLAVYE.yukari:
                if(k){
                    y.preventDefault();
                    s();
                }else{
                    timeoutAyarla();
                    positionAyarla();
                }
            break;

           case KLAVYE.assagi:
               if(k){
                   y.preventDefault();
                   w();
               }else{
                   timeoutAyarla();
                   positionAyarla();
               }
               break;
  
           case KLAVYE.tab:
           case KLAVYE.devam:
               if(k){
                   y.preventDefault();
                   u();
               }
               break;

           case KLAVYE.esc:
               y.preventDefault();
               if(k){
                   positionAyarla();
                   l();
               }
               break;
           default:
               timeoutAyarla();
               positionAyarla();
           break;
        }
    });

    function positionAyarla() {
        var searchKutu = $("#search-result");
		var searchbar = $("#searchform");
        posi =  jQuery(nesne).offset();
        var inpleft =  parseInt(searchbar.offset().left);
        var inpwidth =  parseInt(searchbar.outerWidth());
        var inpsonucwidth =  0;
		posic = (inpleft+inpwidth);
        searchKutu.css({"left": (posic-inpsonucwidth) + "px", "top": (posi.top + jQuery(nesne).height() + 9) + "px" });
    }


    function timeoutAyarla(){
        clearTimeout(x);
        x=setTimeout(n,400)
    }

    function n(){
        e = $this.val();
        l();
        if(e!=""){
            m()
        }
    }

    function m(){
        ajax();
        k = true;
    }

    function l(){
        d.remove();
        k = false;
        v =-1;
        i=0;

    }

    function ajax(){
        j=[];
        jQuery.ajax({
            type:"GET",
            url:"/ajax/?action=arama_tamamla",
            data:"term="+ e,
            dataType:"json",
            async:true,
            cache:false,
            error:function(z,y,A){},
            success:function(y){
                if(y != null && y != ""){
                    j = y;
                    //nn = jQuery(nesne).val();
                    //j.splice(0, 0, {"url": "yasaricli", "label": nn});
                    if(j.length > 0){
                        p(y);
                        v = -1;
                        i = j.length;
                        t();       
                    }
                }
             }
        })
    }

    function p(y){
        jQuery(c).html("<ul id='"+b+"' class=''></ul>");
        d = jQuery(h);
        if(ayarlar.width > 0){
			var wi = ayarlar.width;
            d.css("width",wi);
        }

        bilgi = jQuery(nesne).val();

        for(var y in j){
            var z = j[y].label;

                //d.append("<li class='bulunan' liste-id='"+y+"'> <b>"+z+"</b> kelimesini ürünlerde ara</li>");
                d.append("<li class='bulunan' liste-id='"+y+"'>"+z+"</li>");
            var searchkutu = $("#search-result");
		    var searchbar = $("#searchform");
            
            jQuery("#search-result").css({"width": "auto"}); 
            if (searchkutu.width() < searchbar.width() ) {
                searchkutu.width(searchbar.width());
                searchkutu.css({"margin-left": "-" + searchbar.width() + "px"});
                
            } else if ( searchkutu.width() > searchbar.width() )  {
                searchkutu.css({"margin-left": "-" + searchkutu.width() + "px"});
            }
            
            jQuery(".bulunan").bind("click",function(){
                v = jQuery(this).attr("liste-id");
                u();

            })

        }
    }

    function u(){
        if (v <= 0) {
            window.location = "/ara/?q=" + jQuery(nesne).val() +  "&siralama=a-z&view=katalog&siralama=fiyat";
        } else {
            ayarlar.funcSecildi.call(this,j[v]);
            //seçim yaptıktan sonra inputa seçileni yaz ve git!
            jQuery(nesne).val(j[v].label);
            ///////////////////////////////////////
            l();
        }
    
    }
    function s(){
        if(v == -1){
            v = i;
        }
        else {
            v--;
        }
       t();
    }

    function w(){
        if(v == i){
            v = 0;
        }else{
            v++;
        }
        t();
    }

    function t(){
        jQuery(".bulunan",h).removeClass("secili");
        jQuery(".bulunan:eq("+v+")",h).addClass("secili");
    }

}})(jQuery);

