function qipsmiles_showlist(list_id, textarea_id){
	var list_div = $(list_id);
	if(!list_div.hasClass('qipsmiles-hide')){
		return qipsmiles_hidelist(list_div);
	}
	list_div
	.setStyles({
		'width': ($(textarea_id).offsetWidth-4)+'px'
	})
	.removeClass('qipsmiles-hide')
	.inject(textarea_id, 'before');
	list_div.getElements('.qipsmiles-insert-button')
	.each(function(button){
		button.removeEvents('click');
		button.addEvent('click', function(event){
			event.preventDefault();
			lsPanel.putText(textarea_id,this.get('_smile'));
			//qipsmiles_hidelist(list_div)
		});
	});
}

function qipsmiles_hidelist(list_id){
	$(list_id).addClass('qipsmiles-hide');
}

document.addEvent('domready', function() {
	var i = 0;
	$$('.panel_form').each(function(panel_form){
		var list_id = 'qipsmiles-list-'+i;
		new Element('a', {
			'href': '#',
			'class': 'button',
			'_list_id': list_id,
			'html': '<img src="'+DIR_WEB_ROOT+'/plugins/qipsmiles/templates/skin/off/images/panel/qipsmiles.gif" width="20" height="20" title="QIP Smiles">',
			'events': {
				'click': function(event){
					event.preventDefault();
					var texareas = [];
					var textarea_container = panel_form;
					var out = 0;
					do{
						var textarea_container = panel_form.getParent();
						var textareas = textarea_container.getElements('textarea[id$=_text]');
					}while(!textareas.length && out < 4);
					if(!textareas.length){
						alert('Не могу найти texarea рядом с панелью =(');
					}
					textarea_id = textareas[0].get('id');
					qipsmiles_showlist(this.get('_list_id'), textarea_id);
		        }
			}
		}).inject(panel_form);
		new Element('div', {
			'class': 'qipsmiles-list qipsmiles-hide',
			'id': list_id
		}).inject(panel_form);
		i++;
	});
	
	new Request.JSON({url: DIR_WEB_ROOT+'/qipsmiles/list/', onSuccess: function(data){
	    $$('.qipsmiles-list').each(function(list){
	    	data.aSmiles.each(function(smile){
	    		new Element('a', {
	    			'href': '#',
	    			'class': 'qipsmiles-insert-button',
	    			'_smile': smile.list[0],
	    			'title': smile.list.join(', '),
	    			'html': '<img src="'+smile.src+'" align="middle">'
	    		}).inject(list);
	    	});
	    });
	}}).get({security_ls_key: LIVESTREET_SECURITY_KEY});
	
	if($chk(window['lsCmtTree'])){
		window['lsCmtTree'].toggleCommentForm = function(idComment) {
			if (!$('reply_'+this.iCurrentShowFormComment) || !$('reply_'+idComment)) {
				return;
			} 
			divCurrentForm=$('reply_'+this.iCurrentShowFormComment);
			divNextForm=$('reply_'+idComment);
					
			var slideCurrentForm = new Fx.Slide(divCurrentForm);
			var slideNextForm = new Fx.Slide(divNextForm);
			
			$('comment_preview_'+this.iCurrentShowFormComment).set('html','').setStyle('display','none');
			if (this.iCurrentShowFormComment==idComment) {
				slideCurrentForm.toggle();			
				slideCurrentForm.addEvent('complete', function() {
		    		$('form_comment_text').focus();
				});
				return;
			}
			
			slideCurrentForm.slideOut();
			
			divCurrentForm.getChildren().each(function(element){
				element.inject(divNextForm);
			});
			$$('.qipsmiles-list').each(qipsmiles_hidelist);
			
			divNextForm.setStyle('display','block');
			slideNextForm.hide();
			slideNextForm.slideIn();
			
			$('form_comment_text').setProperty('value','');
			$('form_comment_reply').setProperty('value',idComment);
			this.iCurrentShowFormComment=idComment;
			slideNextForm.addEvent('complete', function() {
		    	$('form_comment_text').focus();
			});
		};
	}
});


function ajaxTextPreview(textId,save,divPreview) { 
	var text;    
	if (BLOG_USE_TINYMCE && tinyMCE && (ed=tinyMCE.get(textId))) {
		text = ed.getContent();
	} else {
		text = $(textId).value;	
	}
	var qipsmiles_disable = $chk($('qipsmiles_disable')) && $('qipsmiles_disable').checked;
	JsHttpRequest.query(
    	'POST '+DIR_WEB_ROOT+'/include/ajax/textPreview.php',                       
        { text: text, save: save, security_ls_key: LIVESTREET_SECURITY_KEY, qipsmiles_disable: qipsmiles_disable },
        function(result, errors) {  
        	if (!result) {
                msgErrorBox.alert('Error','Please try again later');           
        	}
            if (result.bStateError) {
            	msgErrorBox.alert('Error','Please try again later');
            } else {    	
            	if (!divPreview) {
            		divPreview='text_preview';
            	}            	
            	if ($(divPreview)) {
            		$(divPreview).set('html',result.sText).setStyle('display','block');
            	}
            }                               
        },
        true
    );
}
