var loadingIndicator = false;
var commsBlock = false;
var replyto = false;

var init = function() {

	led = new LED();

	var loginButton = $('loginbutton');
	var loginBack = $('loginback');	
	var logoutButton = $('logoutbutton');
	
	if (loginBack) {
		makeLoginForm();
	}
	
	if (loginButton) {
		loginButton.addEvent('click', makeLoginForm);
		$('registerbutton').addEvent('click', makeRegisterForm);
	} else if (logoutButton) {
		logoutButton.addEvent('click', logout);
	}

	commsBlock = $('main_block');
	
	try { activateButtons(); } catch (e) {}
}

var checkKeymg = function() {
	var keymg = $('keymgcode');
	if (keymg) {
		keymg = keymg.value;
		var itsAjax = new Ajax(ROOT_PATH + 'php/processor.php', {
			method: 'post',
			postBody: 'keymgv=' + keymg + '&sid=' + Cookie.get('PHPSESSID') + '&exec=checkkeymg',
			onComplete: checkKeymgProcess
		});
		itsAjax.request();
	}
	else
		submitComment();
}

var checkKeymgProcess = function(responseText) {
	if (badResult(responseText))
		return;
	
	try {
		//var itsSlider1 = new Fx.Slide('keymgimage');
		var itsSlider = new Fx.Slide($('keymgimage').parentNode, {onComplete: function() {
			$('keymgimage').parentNode.remove();
			//$('keymgcode').parentNode.remove();
		}});
		
		itsSlider.toggle();
		//itsSlider2.toggle();
		
	} catch (e) {
		$('keymgimage').parentNode.style.display = 'none';
		$('keymgcode').remove();
		$('keymgimage').remove();
	}	
	submitComment();
}

var submitComment = function() {
	var inpLogin = $('comlogin');
	if (inpLogin)
		inpLogin = inpLogin.value;
	if ($('comreplyto'))
		replyto = $('comreplyto').value;
	
	var itsAjax = new Ajax(ROOT_PATH + 'php/processor.php', {
		method: 'post',
		postBody: authString() + '&inplogin=' + postEscape(inpLogin) + '&text=' + postEscape($('comtext').value) + '&sid=' + Cookie.get('PHPSESSID') + '&exec=submitcomment&replyto=' + replyto,
		onComplete: submitCommentProcess
	});
	
	led.on();
	itsAjax.request();
}

var submitCommentProcess = function(responseText) {
	led.off();
	
	if (badResult(responseText))
		return;	
	
	var newComCont = new Element('div');
	newComCont.addClass('ccontcont');
	
	newComCont.innerHTML = responseText.substring(0, responseText.length); /* what does that symbol mean?.. */

	var newComFormCont = $('newcomformcontainer');

	newComCont.style.display = 'none';
	
	newComFormCont.getElementsByTagName('textarea')[0].value = '';
	
	var inps = newComFormCont.getElementsByTagName('input');
	for (var zap = 0; zap < inps.length; zap++) {
		if (inps[zap].getAttribute('id') == 'comlogin' && inps[zap].getAttribute('id').value != '') {
			Cookie.set('login', inps[zap].value, {duration: 365, path: ROOT_PATH});
		}
	}
	
	var recentComCont = commsBlock.firstChild.nodeName == 'DIV' ? commsBlock.firstChild : commsBlock.firstChild.nextSibling;
	
	var replytodiv = $('comreplyto');
	
	var injected = false;
	
	if (replytodiv) {
		var repId = $('comreplyto').value;
		if (repId) {
			newComCont.addClass('reply');
			newComCont.injectAfter($('c_' + $('comreplyto').value).parentNode);
			injected = true;
			$('comreplyto').value = '';
		}
		$('replyinfo').innerHTML = '';
	}

	if (!injected) newComCont.injectBefore(recentComCont);
	
	try { activateButtons(newComCont); } catch (e) {}	
	
	var itsSlider = new Fx.Slide(newComCont.getFirst());
	itsSlider.hide();
	newComCont.style.display = 'block';
	itsSlider.slideIn();
}
