 //using binary search
 (function($) {
	$.fn.textfill = function(options) {
		var defaults = {
			maxFontPixels: 40,
			innerTag: 'span'
		};
		var Opts = jQuery.extend(defaults, options);
		return this.each(function() {
                        //var padding = 5;
			var fontSize = Opts.maxFontPixels;
			var ourText = $(Opts.innerTag + ':visible:first', this);
                        //alert(this.style.backgroundColor);
                        //alert(Opts.innerTag);
                        $(this).parent().css('background-color',this.style.backgroundColor);
                       // $(this).css('height',($(this).height()-2));
                       // $(this).css('width',($(this).width()-2));
                        //$(this).css('border', '0.1em').css('border-style', 'solid').css('border-color','#333333');
			var divHeight = $(this).height();
                            //divHeight = (divHeight-(divHeight*1.5/100));
                            //$(this).css('padding-top', (divHeight*1.5/100));
                            //$(this).css('height', (divHeight-(divHeight*1.5/100)));
                            
			var divWidth = $(this).width();
                            //divWidth = (divWidth -(divWidth*1.5/100));
                            //$(this).css('padding-left', (divWidth*1.5/100));
                           // $(this).css('width', (divWidth -(divWidth*1.5/100)));
                           // $(this).css('border', 'none');
                            //$(this).parent().css('border', '0.1em').css('border-style','solid').css('border-color','#333333');
                        var f = font_size(divHeight, divWidth, ourText, fontSize);
                        //alert("f = "+f);
                        ourText.css('font-size', f);
                        
                        
		});
	};

        function font_size(divHeight, divWidth, ourText, fontSize)
        {
            var max = fontSize;
            var min = 3;
            var mid = (max + min)/2;
            ourText.css('font-size', mid);
            var textHeight = ourText.height();
            var textWidth = ourText.width();
            var myArray = new Array();
            var i = 0;
            while(mid <= max || mid >= min)
                {
                   if(textHeight > divHeight || textWidth > divWidth )
                   {
                       //alert('inside >')
                        max = mid - 1;//alert(maxFontSize)
                   }
                   else  if(textHeight < divHeight || textWidth < divWidth )
                   {
                       //alert('inside <')
                       myArray[i] = mid;//alert(myArray[i]);
                       min = mid +1;
                       i++;
                   }
                   else
                   {
                       //alert('inside =');
                        myArray[i] = mid;
                        i++;
                        return mid;
//                       myArray.sort(function(a,b){return b - a});  alert(myArray); alert(myArray[0]);
//                       return myArray[0];
                   }
                   
                   mid = (max + min)/2;
                   ourText.css('font-size', mid);
                   textHeight = ourText.height();
                   textWidth = ourText.width();                   
                }
                   //alert(myArray)
                   myArray.sort();
                   //alert("after sort "+myArray);alert(myArray[myArray.length-1]);
                   return myArray[myArray.length-1];
        }
})(jQuery);
