jQuery.fn.initJsEditor = function() {
	var $this = this;
	var $buttonsBox = $this.before('<div class="je-buttons"></div>').prev('.je-buttons');
	var $smilesBox = $this.after('<div class="je-smiles"></div>').next('.je-smiles');
		$smilesBox.hide();

	$this.addClass('js-textarea').wrap('<div class="js-textarea-wrap-outer"></div>').wrap('<div class="js-textarea-wrap-inner"></div>');
	$('.search-label input')
	
	$this
		.focus(function() { 
			$(this).parents('.js-textarea-wrap-outer').andSelf().stop().animate({ backgroundColor:'#ffffff' }, "normal"); 

		})
		.blur(function() { $(this).parents('.js-textarea-wrap-outer').andSelf().stop().animate({ backgroundColor:'#e7e7e7' }, "normal"); });


	var pathToButtons = '/js_editor/icons/';
	var buttons = {
		'separate0': {
			type:'separate',
			html:'&nbsp;&nbsp;'
		},
		'b': {
			alt:'ïîëóæèðíûé',
			img:'bold.gif',
			action: ['<b>', '</b>']
		},
		'i': {
			alt:'êóðñèâ',
			img:'italic_es.gif',
			action: ['<i>', '</i>']
		},
		's': {
			alt:'çà÷åðêíóòûé',
			img:'strikethrough.gif',
			action: ['<s>', '</s>']
		},
		'line': {
			alt:'ñëýø',
			img:'longdash.gif',
			action: ['—']
		},
		'smiles': {
			alt:'ñìàéëû',
			img:'smiles.gif',
			exec: function(button) {
				var $commentdiv = false;
				var $smilesBox = $(button).parents('.je-buttons').eq(0).next().next();
				
				if ($(button).parent().parent().parent().parent().is('.comment-full')) {
					$commentdiv =$(button).parent().parent().parent();
					$commentdiv.css("height", "auto");
					var height = $commentdiv.height();
				}
				$(button).toggleClass('active-button').not('.active-button').css('opacity', 0.7);
				$smilesBox.toggle();
				if ($commentdiv!==false) {
					height = height - $commentdiv.height();
					$commentdiv.parent().height( $commentdiv.parent().height() - height );
					$commentdiv.css("height", $commentdiv.height());
				}
			}
		},
//		'file': {
//			alt:'ïðèñîåäèíèòü ôàéë',
//			img:'link.gif',
//			exec: function(button) {
//				$("#dialog").dialog({ autoOpen: false });
//				$("#dialog").dialog("open");
//			}
//		}
	};
	
	jQuery.each(buttons, function(name, data) {
		if (data.type && data.type=='separate') {
			$('<span class="separate separate-'+name+'">'+(data.html || '')+'</span>').appendTo($buttonsBox);
		} else {
			$('<span class="button1"></span>').append('<img alt="'+name+'" style="cursor: pointer;" src="'+pathToButtons+data.img+'" />').css('opacity', 0.7).click(function(){
				var $this = $(this).parents('.je-buttons').eq(0).next().find('textarea');																																		
				if (data.action) {																																								
					$this.replaceSelection(data.action[0], data.action[1] ? data.action[1] : false);
				}
				if (data.exec) {
					data.exec(this);	
				}
			}).hover(
				function(){ $(this).not('.active-button').css('opacity', 1); },
				function(){ $(this).not('.active-button').css('opacity', 0.7); }									
			).appendTo($buttonsBox);
		}
	});	
	
	var pathToSmiles = '/img/smiles/';
	var smiles = {':-)': 'smile-1.gif', ':-(': 'smile-2.gif',':)': 'smile-1.gif', ':(': 'smile-2.gif', ':-o': 'smile-3.gif', ':-D': 'smile-4.gif', ':-P': 'smile-5.gif', ':-I': 'smile-6.gif', ':-S': 'smile-7.gif', ';-)': 'smile-8.gif', ':-O': 'smile-9.gif', ':-*': 'smile-10.gif', '>:-0': 'smile-11.gif', '8-)': 'smile-12.gif', '$-D': 'smile-13.gif', ':-!': 'smile-14.gif', ':-<<': 'smile-15.gif', ':-\\': 'smile-16.gif', ':\'-(': 'smile-17.gif', ':-X': 'smile-18.gif', '(y)': 'smile-19.gif', '(n)': 'smile-20.gif', '(l)': 'smile-21.gif', '(u)': 'smile-22.gif', '(k)': 'smile-23.gif', '(g)': 'smile-24.gif', '(f)': 'smile-25.gif', '(b)': 'smile-26.gif', '(d)': 'smile-27.gif', '(t)': 'smile-28.gif', '(xx)': 'smile-29.gif', ':-/': 'smile-30.gif', ':&quot;->': 'smile-31.gif', ':->': 'smile-32.gif', ':-))': 'smile-33.gif', ':x': 'smile-34.gif', 'X-(': 'smile-35.gif', ':-((': 'smile-36.gif', ':-B': 'smile-37.gif', 'I-)': 'smile-38.gif', ':-]': 'smile-39.gif', ':-[': 'smile-40.gif', ':-T': 'smile-41.gif', ':-J': 'smile-42.gif', ':-L': 'smile-43.gif', ':-C': 'smile-44.gif', ':-Z': 'smile-45.gif', ':-?': 'smile-46.gif', ';-P': 'smile-47.gif', ':-9': 'smile-48.gif', 'X-D': 'smile-49.gif', 'X-S': 'smile-50.gif', 'X-O': 'smile-51.gif', 'X-P': 'smile-52.gif', '8-O': 'smile-53.gif', ':-U': 'smile-54.gif', ':-,': 'smile-55.gif', ':-.': 'smile-56.gif', ':-\'': 'smile-57.gif', '(find)': 'smile-58.gif', ':\'-)': 'smile-59.gif', ':~)': 'smile-60.gif', ':~9': 'smile-61.gif', ':-Y': 'smile-62.gif', 'B:-)': 'smile-63.gif', 'I:-)': 'smile-64.gif', 'LMAO': 'smile-65.gif', ':\'S': 'smile-66.gif', ':\'C': 'smile-67.gif', 'X-)': 'smile-68.gif', 'X\'D': 'smile-69.gif', 'B-P': 'smile-70.gif', 'I-()': 'smile-71.gif', '>:-)': 'smile-72.gif', '>:-D': 'smile-73.gif', ':((': 'smile-74.gif', 'B-D': 'smile-75.gif', ':@)': 'smile-76.gif', ':(|)': 'smile-77.gif', '(~~)': 'smile-78.gif', '>-(': 'smile-79.gif', '%-)': 'smile-80.gif', ':-^': 'smile-81.gif', ';-^': 'smile-82.gif', 'X-^': 'smile-83.gif', ':\'D': 'smile-84.gif', 'O.O': 'smile-85.gif', 'O.o': 'smile-86.gif', '-.-': 'smile-87.gif', '-_-': 'smile-88.gif', '(victory)': 'smile-89.gif', '(ok)': 'smile-90.gif', '(five)': 'smile-91.gif'};
	
	jQuery.each(smiles, function(name, file) {
		$('<span class="smile"></span>').append('<img alt="'+name+'" style="cursor: pointer;" src="'+pathToSmiles+file+'" />').css('opacity', 0.7).click(function(){
			var $this = $(this).parents('.je-smiles').eq(0).prev().find('textarea');																																						
			$this.replaceSelection(name);																																																																													
		}).hover(
			function(){ $(this).css('opacity', 1); },
			function(){ $(this).css('opacity', 0.7); }									
		).appendTo($smilesBox);
	});
}

