(function($){
	
	
	
	$.fn.FEBeauty = function(settings) {
		var defaults = {
						selectObr: 'need',
						select: 'select',
						selectList: 'list',
						selB: 'selB',
						classNM:''
					};
		var resetElements = new Array();
		settings = $.extend(defaults, settings);
		
		
		/***Select replacement***/
		selectReplacement = function(elm) {
			selectObr	 = $('<div class="' + defaults.selectObr + '"></div>');
			select		 = $('<div class="' + defaults.select + '"></div>');
			selectList	 = $('<div class="' + defaults.selectList + '"></div>');
			clearer		 = $('<div class="clearer"></div>');
			
			input		 = $('<div class="input"></div>');
			input2		 = $('<div>---</div>');
			selectButton = $('<div class="' + defaults.selB + '"></div>');
						
			selectObr
			.after(clearer.clone())
			.append(
				select
				.append(input.append(input2))
				.append(selectButton)
			)
			.append(selectList);
			
			$('>option', elm).each(function(i) {
			 if($(this).attr('selected')) {defaults.classNM=" selected";input2.text($(this).text());}
			 else defaults.classNM="";
				selectList.append(
					$('<div class="list_item'+defaults.classNM+'"></div>')
					.append($(this).text())
				)
			});
			
			$('div.list_item', selectList)
			.hover(function() {$(this).addClass('hover');}, function() { $(this).removeClass('hover'); })
			.bind('click', function() {
				selectList = $(this).parent();						
				input2 = $('div.input>div', selectList.prev());
				list_items = $('div.list_item', selectList)
				
				i = $.inArray(this, $('div.list_item', selectList));
				
				if (i != -1) {
					var opt = $('>option', elm);
					opt.attr('selected', '');
					opt.eq(i).attr('selected', 'selected');
					list_items.removeClass('selected');
					$(this).addClass('selected');
					
					input2.text($(this).text());
					selectList.slideUp('slow');
				   }
				elm.change();
			     });
			     var emmm=$('>option', elm)[0];
			     
//			for (n in emmm) console.log(n);
//			console.log(emmm.text);

			/*
			b = $.inArray($('>option:selected', elm)[0], $('>option', elm));
			
			$('div.list_item:eq('+b+')', selectList).click();*/
			
			elm.bind('change', function() {

			});
			
	/*		if(selectList.attr('class') == 'list2') {
				$('div.list_item', selectList).width(149);
			} else {
				$('div.list_item', selectList).width(45);
			};*/
			
			selectButton
			.mousedown(function() {
				$(this)
				.removeClass('mouseup')
				.addClass('mousedown');
			})
			.mouseup(function() {
				$(this)
				.removeClass('mousedown')
				.addClass('mouseup');
			})
			.mouseout(function() {
				$(this)
				.removeClass('mousedown')
				.removeClass('mouseup');
			})
			.bind('click', function() {
				var list = $(this).parent().next();
				list.is(':hidden') ? list.slideDown('slow') : list.slideUp('slow');
			});
			
			input
			.mousedown(function() {
				$(this).next()
				.removeClass('mouseup')
				.addClass('mousedown');
			})
			.mouseup(function() {
				$(this).next()
				.removeClass('mousedown')
				.addClass('mouseup');
			})
			.mouseout(function() {
				$(this).next()
				.removeClass('mousedown')
				.removeClass('mouseup');
			})
			.bind('click', function() {
				var list = $(this).parent().next();
				list.is(':hidden') ? list.slideDown('slow') : list.slideUp('slow');
			});
			
			resetElements.push(selectList);
			elm
			.hide()
			.after(selectObr)	;			
		}
		/*** END ***/
		
		/***Checkbox replacement***/
		checkboxReplacement = function(elm) {
			thisSpan = $('<span class="checkbox"></span>');
			if (elm.parent().hasClass('subcheck')) thisSpan.addClass('checkboxadd');
			
			if (jQuery.browser.msie) {
			//	$('#brands span.checkbox').css('margin-right', '3px');
				$('#brands label').css('margin-top', '-5px');
			}
			
			elm
//			.css('visibility', 'hidden')
			.hide()
			.after(thisSpan);
			
			/*if (elm.is(':checked')) thisSpan.addClass('checked');
			else thisSpan.removeClass('checked');*/
			
			elm.is(':checked') ? thisSpan.addClass('checked') : thisSpan.removeClass('checked');
			
			elm
			.hover(function() { $(this).next().addClass('hover'); }, function() { $(this).next().removeClass('hover'); })
			.bind('change', function(){
				thisSpan = $(this).next();
				$(this).is(':checked') ? thisSpan.addClass('checked') : thisSpan.removeClass('checked');				
			});
			
			Span = elm.next();
			Label = elm.next().next();			
			
			Span
			.hover(function() { $(this).addClass('hover'); }, function() { $(this).removeClass('hover'); })
			.bind('click', function() { elm.click().change(); });
			
			Label
			.hover(function() { elm.next().addClass('hover'); }, function() { elm.next().removeClass('hover'); })
			.bind('click', function() { if (jQuery.browser.msie) elm.click().change(); });
		}
		/*** END ***/
		
		/***Radio replacement***/
		radioReplacement = function(elm) {
			thisSpan = $('<span class="radio"></span>');
			if (elm.parent().hasClass('subcheck')) thisSpan.addClass('radioadd');
			if (elm.attr('id') == 'blond') thisSpan.addClass('radiospecial');
			
			elm
			.css('visibility', 'hidden')
			.after(thisSpan);
			
			elm.is(':checked') ? thisSpan.addClass('checked') : thisSpan.removeClass('checked');
			
			elm
			.hover(function() { $(this).next().addClass('hover'); }, function() { $(this).next().removeClass('hover'); })
			.bind('change', function(){
				thisSpan = $(this).next();
				if ($(this).is(':checked')) {
					$('~span:eq(0)', $('input[type="radio"][name="'+$(this).attr('name')+'"]')).removeClass('checked');
					thisSpan.addClass('checked');
				} else thisSpan.removeClass('checked');
			});
			
			Span = elm.next();
			Label = elm.next().next();	
			
			
			Span
			.hover(function() { $(this).addClass('hover'); }, function() { $(this).removeClass('hover'); })
			.bind('click', function() { elm.click().change(); });
			
			Label
			.hover(function() { elm.next().addClass('hover'); }, function() { elm.next().removeClass('hover'); })
			.bind('click', function() { if (jQuery.browser.msie) elm.click().change(); });
		}
		/*** END ***/
		
		/***createBlock***/
		scroller = function() { console.log(1);return false; }
		
		createBlock = function(e) {
			var block = $('<div class="fb_block_m"></div>').insertBefore($('#sending'));
			var scrollbar = $('<div class="scrollbar"></div>');
			var scroll = $('<div class="scroll"></div>');
						
			e
			.width(e.width()-20)
			.addClass('fb_block')
			.appendTo(block)
			.after(
				scrollbar
				.append(scroll)
			);
			
			et = e.offset().top; //386 - 484 = 98
			st = scroll.offset().top; //484 - 682 = 198
			
			e_max_scroll = $('#brands').height()+parseInt($('#brands').css('padding-top'))+parseInt($('#brands').css('padding-bottom')) - block.height();
//			e_max_scroll = 149;
			s_max_scroll = scrollbar.height()-scroll.height();
			
		
			scrollbar.slider({
				handle:'.scroll',
				axis: 'vertical',
				slide: function() {
					sct = scroll.offset().top;
					cp = sct - st;
					ep = (cp* e_max_scroll) / s_max_scroll;
					e.css('top', -ep);
					
					/*$('#filter>h3')
					.html(sct + ' / ' + cp + ' / ' + ep + ' / ' +  e_max_scroll + ' / '+ e.offset().top);*/
				}
			});
			
			block
			.hover(
			function(e) {
//				var ws = window.scrollY;
//				$(document).bind('scroll', function () { window.scrollTo(0, ws);} );
//			//	$(document).unbind('scroll');
//				console.log(123)
/*				$(document).bind('scroll', scroller);*/
			},
			function(e) {
//				$(document).bind('scroll');
			});
			
		}
		/*** END ***/
		
		$.each(this, function() {
			switch ($(this)[0].type) {
				case 'select-one':
					selectReplacement($(this));
					break;
				case 'checkbox':
					checkboxReplacement($(this));
					break;
				case 'radio':
					radioReplacement($(this));
					break;
				default:
					if ($(this)[0].nodeName == 'DIV' && $(this).hasClass('fb_block')) {
						createBlock($(this));
					}
					break;
			}
		});	
		
	/*	$(':not(div.need2,div.need2 *,div.need,div.need *)').click(function() {
			console.log(this);
			$.each(resetElements, function() {
				if (!$(this).is(':hidden')) {
					$(this).slideUp();
				}
			})
		});*/
	};
})(jQuery);



