CHAT_URL = '/lib/sk_web_chat.php?a=';

function toggle_loading( l_title, hide ){
	var out = '';
	var target = $('features_toolbar'); 
	
	if (hide == null) {
		out = '<img src="/wp-content/plugins/mocha/images/ajax_01.gif" style="width: 16px; height: 16px; float: left;" ' +
			'title="Ждите... Идет загрузка..." alt="Загрузка.." />';
		if(l_title)	out += '<span> ' + l_title + ' </span>';
		
		
		if (target) target.set("html", out + target.get('html'));
	} else {
		if (target) target.set("html", "");
	}
		
	return true;
}

function show_status( message ) {
	var target = $('features_toolbar'); 
	if (target) target.set("html", message);
}

function nl2br( str ) {
    return str.replace(/([^>])\n/g, '$1<br />');
}

function chat_sc_bottom(){
	var myFx = new Fx.Scroll('wch_content', {duration: 200})
									.toBottom()
									.chain(function(){ /* this.toTop.delay(1000, this); */ });		
}

function chat_show(){
	if (__CAN_SEE_CHAT == 0) {		
		alert('Что бы воспользоватся чатом, Вам необходимо задать вопрос на сайте.');
		return;
	}
	
	if(__CHAT_SHOW == 1) return;
	
	var req = new Request.JSON({
		url: CHAT_URL + 'chat_show&show=1', 
		onComplete: function(q){
			toggle_loading(null, true);
			if(q && q.s && q.s == 1){
				//все ОК
			}else{
			}
		},
		onFailure: function() {
			toggle_loading(null, true);
		}
	});
	
	req.send();
	MochaUI.featuresWindow();
}

function chat_hide(){
	auto_reload_chat_stop();
	
	var req = new Request.JSON({
		url: CHAT_URL + 'chat_show&show=0', 
		onComplete: function(q){
			//все ОК
			//if(q && q.s && q.s == 1){}
		},
		onFailure: function() {}
	});
	
	req.send();
	__CHAT_SHOW = 0;
	MochaUI.closeWindow($('features'));
}

function auto_reload_chat_start(){
	__ID_TIMER = setInterval("reload_chat()", __CHAT_RELOAD);
	document.getElementById('wch_for_content').setStyle('height', 
		document.getElementById('features_contentWrapper').clientHeight - 60 + 'px');
}

function auto_reload_chat_stop(){
	if(__ID_TIMER != false){
		clearInterval(__ID_TIMER);
	}
}

function reload_chat(){
	if (__CAN_SEE_CHAT == 0) return;
	
	toggle_loading('Идет загрузка...');
	
	var req = new Request.JSON({
		url: CHAT_URL + 'get_answers' + '&ajax=1', 
		method: 'get',
		onComplete: function(q){
			toggle_loading(null, true);
			
			if(q && q.d){
				if($('wch_content')){
					$('wch_content').set('html', q.d);
					$('wch_field').disabled = false;
					$('wch_button').disabled = false;
					chat_sc_bottom();
				}else{
					auto_reload_chat_stop();
				}
			}else{
				show_status('Ошибка на сервере');
			}
		},
		onFailure: function() {
			show_status('Нет связи с сервером');
		}
	});		
	
	req.send();
}

function send_msg(){
	if (__CAN_SEE_CHAT == 0) return;
	
	v = $('wch_field').value;
	v = v.replace(/^\s+/, '');
	v = v.replace(/\s+$/, '');
	
	if(v.length > 0){
		auto_reload_chat_stop();
		
		$('wch_field').style.border = '#cccccc 1px solid';			
		toggle_loading('Данные отправляются...');
		
		$('wch_field').disabled = true;
		$('wch_button').disabled = true;
		
		var req = new Request.JSON({
			url: CHAT_URL + 'add_question',
			method: 'post',
			onComplete: function(q){
				toggle_loading(null, true);
				
				if(q && q.s){
					$('wch_field').value = '';
					if(q.s == 1){
						show_status('Данные успешно отправлены');
						setTimeout('reload_chat()', '1500');
						auto_reload_chat_start();
					}else{
						$('wch_content').set('html', q.d);
					}
				}else{
					show_status('Ошибка на сервере');
				}
			},
			onFailure: function() {
				show_status('Нет связи с сервером');
			}
		});
		
		req.post({'data': v});
		
	}else{
		$('wch_field').style.border = '#ff9999 1px solid';
		$('wch_field').focus();
	}
}

initializeWindows = function(){

	// View
	if ($('sidebarLinkCheck')){
		$('sidebarLinkCheck').addEvent('click', function(e){	
			new Event(e).stop();
			MochaUI.Desktop.sidebarToggle();
		});
	}

	MochaUI.featuresWindow = function(){
		new MochaUI.Window({
			id: 'features',
			title: 'Веб-чат',
			loadMethod: 'xhr',
			contentURL: CHAT_URL + 'get_answers',
			width: 600,
			height: 400,
			closable: true,
			resizable: true,
			minimizable: false,
			shape: 'box',
			x: 140,
			y: 100,
			resizeLimit: {'x': [400, 2500], 'y': [200, 2000]},
			onClose : function(){chat_hide();},			
			onResize: function(){
				document.getElementById('wch_for_content')
					.setStyle('height', document.getElementById('features_contentWrapper').clientHeight - 60 + 'px');
			},
			toolbar: true,
			toolbarURL: CHAT_URL + 'get_toolbar'
		});
		if($('features_content')){$('features_content').style.height='100%';}
	}
	
	
	// Deactivate menu header links
	$$('a.returnFalse').each(function(el){
		el.addEvent('click', function(e){
			new Event(e).stop();
		});
	});
	
	// Build windows onDomReady
	if(__CAN_SEE_CHAT == 1 && __CHAT_SHOW != 0) MochaUI.featuresWindow();	
}

// Initialize MochaUI when the DOM is ready
window.addEvent('domready', function(){									 
	MochaUI.Modal = new MochaUI.Modal();
	initializeWindows();
});

// This runs when a person leaves your page.
window.addEvent('unload', function(){
	if (MochaUI) MochaUI.garbageCleanUp();
});