/*
 * iSelectBox
 * Examples and documentation at: http://
 * Version: 1.0.0 (05/01/2011)
 * Copyright Â© 2011 
 * Licensed under the MIT License: http://en.wikipedia.org/wiki/MIT_License
 * Requires: jQuery v1.4.4+
*/
;(function($) {

	$.fn.iSelectBox = function( options ){
		
		var _this = this;
		
		var defaults = {
			maxViewLine : 3,
			deltaWeight : 27
		};
		
		_this.options = $.extend( {}, defaults, options );
		
		this.each(function(){
		
			var place = $(this).hide();
			var margintop = 0;

			var options = $.extend( {}, defaults, _this.options );

			options.place = {};
			
			options.place.option = $( "option", place );
			options.place.options_first = $( "option:eq(0)", place );

			options.place.main = $("<div class='iselectbox'><div class='iselectbox_face'><strong>"+options.place.options_first.text()+"</strong><span></span></div><div class='iscrollbar'><ul class='iscrollbar_box'><ul class='isbc'></ul></ul></div></div>");
			
			options.place.iscrollbar_box = $( ".iscrollbar_box", options.place.main );
			options.place.isbc = $( ".isbc", options.place.iscrollbar_box).css({"padding":0});
			
			options.place.iscrollbar = $( ".iscrollbar", options.place.main );
			options.place.iselectbox_face = $( ".iselectbox_face", options.place.main ).click(function(){
				$(this).hide();
				$(this).next().show();
			});

			options.place.option.each(function(i,v){
				$("<li>"+$(v).text()+"</li>").click(function(){
					
					var main = $(this).parent().parent().parent().parent();
					var option = $("option:eq("+i+")",place);
					var lis = $("li",$(this).parent());
					
					main.animate( { backgroundColor: 'pink' }, 1000);

					$("option",place).attr('selected','');
					option.attr('selected','selected');
					
					lis.removeClass('selected');
					$(this).addClass('selected');
					
					$(".iselectbox_face strong",main).text( option.text() );
					
					$(".iscrollbar",main).hide();
					$(".iselectbox_face",main).show();
					
					option.parent().trigger('change');
					
				}).appendTo( options.place.isbc );
			});
			
			var maxViewLine = options.maxViewLine;
			
			if( options.place.option.length > options.maxViewLine )
			{
				maxViewLine = options.maxViewLine;
				options.scrollBar = true;
			}
			else
			{
				maxViewLine = options.place.option.length;
				options.scrollBar = false;
			}
			
			place.before( options.place.main );

			if( options.maxViewLine < options.place.option.length )
			options.place.iscrollbar.css( { height: (maxViewLine * options.deltaWeight) }).iScrollBar({'deltaWeight':options.deltaWeight,'viewScrollButtons':true,'scrollBar':options.scrollBar,'fixWidth':true});
			
			options.place.iscrollbar.hide();
		
		});
		
		function setDV( v, d ){return isset(v)? v : d }
		function isset( varname ){return ( typeof( varname ) != 'undefined' )}
		function getMaxLiWidth( obj )
		{
			var m = 0;
			obj.each(function(i,o){
				if( $(o).outerWidth(true) > m ) m = $(o).outerWidth(true);
			});
			return m;
		}

	};
})(jQuery);
