(function($) {
	$.fn.winfriend = function (setting){		
		var options = $.extend({
			wrapper_id: 'win-wrapper',
			window_id: 'js-window',
			speed: 600
		}, setting);
		
		var html = '<div class="win-wrapper" id="' + options.wrapper_id + '">' + 
			'</div>' + 
			'<div class="js-window" id="' + options.window_id + '">' + 
				'<h2>Посоветовать другу</h2>' + 
				'<div class="content">' + 
					'<a href="#" class="close"></a>' +
					'<ul>' + 
						'<li>Ваше имя' + 
							'<input type="text" class="text" name="name" /></li>' + 
						'<li>E-mail получателя' + 
							'<input type="text" class="text" name="email" /></li>' + 
					'</ul>' + 
					'<textarea class="etext"></textarea>' + 
					'<input type="submit" class="botton" value="Отправить" />' + 
				'</div>' + 
			'</div>';
			
		var window_id, wrapper_id, name, email;
		
		$(this).click(function(){
			if(!$('#' + options.wrapper_id).length)
			{
				$('body').append(html);
				
				window_id = $('#' + options.window_id);
				wrapper_id = $('#' + options.wrapper_id);
				name = $('input[name="name"]', window_id);
				email = $('input[name="email"]', window_id);
				
				wrapper_id.css('height', $('body').height());
				
				$('a.close', window_id).click(function(){
					window_id.hide(options.speed, function(){
						wrapper_id.animate({
							opacity: 0
						}, options.speed, '', function(){
							wrapper_id.hide()
						})
					})
				});
				
				name.bind('change keyup', function(){					
					if($(this).val().length < 3)
						$(this).addClass('failed').removeClass('ok');
					else
						$(this).addClass('ok').removeClass('failed');
				});
				
				email.bind('change keyup', function(){
					var reg = /[0-9a-z_]+@[0-9a-z_^.]+\.[a-z]{2,3}/i;
					
					if(reg.test($(this).val()) == false)
						$(this).addClass('failed').removeClass('ok');
					else
						$(this).addClass('ok').removeClass('failed');
				});
			}
			
			name.val('').attr('class', 'text');
			email.val('').attr('class', 'text');
			
			window_id.hide();
			wrapper_id
				.css('opacity', 0)
				.show()
				.animate({
					opacity: .3
				}, options.speed, '', function(){
					window_id.show(options.speed);
				});
			return false;
		});
	}
})(jQuery);

$(function(){
	$('#show-friend').winfriend();
});
