
/*
örnek yapı ;
 <div id="sscroll-1" class="swrapper">
 <div class="ssearch"><input type="text" value=""  /></div>
    <div class="spanel">
    	<ul>
        	<li><a>xxxx</a></li>
            <li><a>xxxx</a></li>
            <li><a>xxxx</a></li>
            <li><a>xxxx</a></li>
            <li><a>xxxx</a></li>
            <li><a>xxxx</a></li>
            <li><a>xxxx</a></li>
            <li><a>xxxx</a></li>
            <li><a>xxxx</a></li>
            <li><a>xxxx</a></li>
            <li><a>xxxx</a></li>
            <li><a>xxxx</a></li>
            <li><a>xxxx</a></li>
		</ul>              
    </div>
    <div class="sscroll"><span></span></div>
</div>

<script type="text/javascript">
$(function(){ $('#sscroll-1').sscroll(); });
</script>


*/
(function($) {

    $.fn.sscroll = function(options){

        // default configuration properties
        var defaults = { change: true  }; 

        var options = $.extend(defaults, options);  
		
		function destroy(){ };
		var obj = $(this);
		
		function Init(){
		
					obj.each(function() {  
						
						var obj = $(this); 
						
						var sp = obj.find(".spanel").height();
						var ul = obj.find(".spanel ul").height();
						
						//içerik kabına sığmıyorsa scroll başlat
						if( ul > sp){							
							
							//sıfırla
							obj.find(".sscroll").removeClass("active");
							obj.find(".spanel").children(':first').css("top",0);
							obj.find(".sscroll span").css("top",0);							
							
							// ".sscroll span" draggable
							obj.find(".sscroll span").draggable({ containment: '.sscroll' , drag: function(event, ui) {  							
								var i = $(this);
								var p = i.parents(".sscroll");							
								var s = p.parent().find(".spanel"); 
								var u = s.children(':first'); 			
								var z = (parseInt(i.css("top"))*100)/(p.height()-i.height()); 								
								var o = (u.height()-p.height())/p.height();
								u.css("top",-(z*o)+"%");
						
							}}).addClass("active");
							
						}else{							
							//scroll gizle
							obj.find(".sscroll").removeClass("active");											
							}
						
				
				//içerik değişimi kontrol isteniyorsa
				if(options.change){		
							
				   var previous = obj.find(".spanel ul li").not(".hide").size();			 
				
				   $check = function() {
					   
					var val = obj.find(".ssearch input[type=text]").val();
					
					obj.find(".spanel ul li").removeClass("hide");

					if(val != "" || val != undefined){
						
						//listeden arama				
						obj.find(".spanel ul li").not(":containsi('"+val+"')").addClass("hide");	
						
						}
											   
					   			
						if ( obj.find(".spanel ul li").not(".hide").size() != previous) { 
						
							obj.find(".sscroll span").draggable("destroy").removeClass("active");					
						 	Init(); 
						 	obj.find(".ssearch input[type=text]").unbind('keyup',$check);				  
						   }					
					
						previous = obj.find(".spanel ul li").not(".hide").size();        
					
					}
					
					obj.find(".ssearch input[type=text]").keyup($check);				
					//setInterval(function() { $check(); }, 500);		
				
				}
			
					});
					
		};
					
			
			Init();		
					

    };

})(jQuery);


//jquery fonksiyonuna ek olarak : contains'e harf duyarlılığı eklendi 
$.extend($.expr[':'], {
  'containsi': function(elem, i, match, array)
  {
    return (elem.textContent || elem.innerText || '').toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0;
  }
});
