var ok_ids = new Array;
var fdata = new Object();
var hide = false;

function moveShowComments (where, old, full) {

	if (old != 'top' && old != 'bottom') {
		var oldoffset = document.getElementById('sub-' + old).offsetTop;
		var skoko = document.getElementById('place-' + old).offsetHeight;
		skoko += document.getElementById('sub-' + old).offsetHeight;
		document.getElementById('sub-' + old).style.display = 'none';
		skoko += document.getElementById('new_comments-' + old).offsetHeight;
		document.getElementById('new_comments-' + old).style.display = 'none';
	}

	document.getElementById('place-' + where).appendChild(document.getElementById('form-content'));
	document.getElementById('form-content').style.display = 'block';
	cl();
	if (fdata.auth_method == 1) {
		document.getElementById('r1').checked = true;
	} else {
		document.getElementById('r2').checked = true;
	}
	if (document.getElementById('li')) {
		document.getElementById('li').checked = (fdata.log_in == 1) ? true : false;
	}
	document.getElementById('c1').checked = (fdata.show_email == 1) ? true : false;
	document.getElementById('c3').checked = (fdata.notify_me == 1) ? true : false;
	document.getElementById('regc').checked = (fdata.register == 1) ? true : false;
	if (full) {
		document.getElementById('sub-' + where).style.display = 'block';
		document.getElementById('new_comments-' + where).style.display = 'block';
	}

	var specialtest = false;
	if (where != 'top' && where != 'bottom') {
		specialtest = (oldoffset < document.getElementById('sub-' + where).offsetTop);
	}
	else if (where == 'bottom') {
		specialtest = true;
	}

	if (old != 'top' && old != 'bottom' && oldoffset > 0 && specialtest) {
        	window.scrollBy(0, -skoko);
	}

}

function toggleHideBlock (where) {
	hide = !hide;
	disp = hide ? 'none' : 'block';
	if (where != 'top' && where != 'bottom' && lastfull) {
		document.getElementById('sub-' + where).style.display = disp;
		document.getElementById('new_comments-' + where).style.display = disp;
	}
	document.getElementById('form-content').style.display = disp;
}

function showForm(where, full)
{
	fdata = xajax.getFormValues('values');
	if (where == currForm && lastfull == full) {
		toggleHideBlock(where);
		return false;
	}
	if(full && !ok_ids[where]) {
 			showLoader (where);
 			ajax_get_comments_block(where, currForm);
			hide = false;
	 		ok_ids[where] = 1;
	}
	else {
		moveShowComments (where, currForm, full);
		hide = false;
	}

 	if(where != 'top' && where != 'bottom') {
 		document.getElementById('comment_id').value = where;
 	}
 	else {
 		document.getElementById('comment_id').value = "0";
 	}
 	currForm = where;
 	lastfull = full;
// 	document.location.replace("#c" + where);
	return false;
}

var currState = 'user';
function showState(state)
{
	document.getElementById("add-" + currState).className = "add-select";
	document.getElementById("form-" + currState).style.display = "none";
	document.getElementById("add-" + state).className = "add-select add-curr";
	document.getElementById("form-" + state).style.display = "block";
	currState = state;
}

function toggleReg()
{
	if(document.getElementById("regc").checked == true)
	{
		document.getElementById("regp").style.display = "block";
	}
	else
	{
		document.getElementById("regp").style.display = "none";
	}
}

function logout () {
	showLoader ('form');
	wf = document.getElementById("comment_id").value;
	ajax_logout (wf);
	arr = document.getElementsByName('modify');
	i = 0;
	while (arr[i]) {
		arr[i].style.display = 'none';
		i++;
	}
	return false;
}

function ch(f)
{
	if((document.getElementById('r1').checked && f.login && !f.login.value) || (document.getElementById('r2').checked && !f.name.value))
	{
		document.getElementById("add_error").style.display = "block";
		document.getElementById("add_error").childNodes[0].nodeValue = "Представьтесь, пожалуйста";
		return false;
	}

	if ((document.getElementById('r1').checked && f.passwd && !f.passwd.value) || (document.getElementById('r2').checked && document.getElementById('regc').checked  && !f.reg_passwd.value))
	{
		document.getElementById("add_error").style.display = "block";
		document.getElementById("add_error").childNodes[0].nodeValue = "Введите пароль";
		return false;
	}

	if (document.getElementById('r2').checked && document.getElementById('regc').checked && (f.reg_passwd.value != f.reg_passwd1.value)) {
		document.getElementById("add_error").style.display = "block";
		document.getElementById("add_error").childNodes[0].nodeValue = "Введенные пароли не совпадают";
		return false;
	}

	var reEmail = /^[0-9a-z-_.]*@[0-9a-z -_.]*.[a-z]*$/i;

	if (document.getElementById('r2').checked && document.getElementById('c3').checked && (!f.email.value || !reEmail.test(f.email.value))) {
		document.getElementById("add_error").style.display = "block";
		document.getElementById("add_error").childNodes[0].nodeValue = "А куда будем уведомления присылать?";
		return false;
	}

	if(document.getElementById('r2').checked && !document.getElementById('regc').checked && f.email.value && !reEmail.test(f.email.value))
	{
		document.getElementById("add_error").style.display = "block";
		document.getElementById("add_error").childNodes[0].nodeValue = "Если не хотите оставлять адрес e-mail, то поле можно и не заполнять";
		return false;
	}
	if (document.getElementById('regc').checked && !reEmail.test(f.email.value)) {
		document.getElementById("add_error").style.display = "block";
		document.getElementById("add_error").childNodes[0].nodeValue = "Нужно оставить адрес e-mail для регистрации";
		return false;
	}
/*	if(!f.content.value)
	{
		document.getElementById("add_error").style.display = "block";
		document.getElementById("add_error").childNodes[0].nodeValue = "А комментарий?";
		return false;
	}
*/
	if(document.getElementById('r2').checked && !f.str.value)
	{
		document.getElementById("add_error").style.display = "block";
		document.getElementById("add_error").childNodes[0].nodeValue = "Код подтверждения обязательно надо написать";
		return false;
	}

	return true;
}

function check_form() {
	if (document.getElementById('r2').checked) {
		showState ('anonym');
	}
	else {
		showState ('user');
	}
	toggleReg();
}

function cl()
{
	document.getElementById("add_success").style.display = "none";
	document.getElementById("add_error").style.display = "none";
	document.getElementById("add_success").childNodes[0].nodeValue = "";
	document.getElementById("add_error").childNodes[0].nodeValue = "";
}

function addComment()
{
	data = xajax.getFormValues('values');

	parent_id = data.comment_id;

	if (!ch(document.getElementById('values'))) {
		return false;
	}

	if (document.getElementById('passwd')) {
		document.getElementById('passwd').value = '';
	}

	document.getElementById('rpasswd').value = '';

	document.getElementById('rpasswd1').value = '';

	if (new_ids[parent_id]) {
		new_ids[parent_id] = new_ids[parent_id] + 1;
	}
	else {
		new_ids[parent_id] = 1;
	}

	new_id = new_ids[parent_id] - 1;

	showLoader('form');

	var get_comments = 0;
	if (parent_id != 0 && !lastfull) {
		if(!ok_ids[parent_id]) {
			get_comments = 1;
 			ok_ids[parent_id] = 1;
		} else {
			moveShowComments (parent_id, currForm, true);
		}
		lastfull = true;
	}

	ajax_put_answer(data, parent_id, new_id, get_comments);

	return false;
}

function addCommentFromNews()
{
	data = xajax.getFormValues('values');

	parent_id = data.comment_id;

	if (!ch(document.getElementById('values'))) {
		return false;
	}

	if (document.getElementById('passwd')) {
		document.getElementById('passwd').value = '';
	}

	document.getElementById('rpasswd').value = '';

	document.getElementById('rpasswd1').value = '';

	if (new_ids[parent_id]) {
		new_ids[parent_id] = new_ids[parent_id] + 1;
	}
	else {
		new_ids[parent_id] = 1;
	}

	new_id = new_ids[parent_id] - 1;

	showLoader('form');

	var get_comments = 0;
	if (parent_id != 0 && !lastfull) {
		if(!ok_ids[parent_id]) {
			get_comments = 1;
 			ok_ids[parent_id] = 1;
		} else {
			moveShowComments (parent_id, currForm, true);
		}
		lastfull = true;
	}

	ajax_put_answer(data, parent_id, new_id, get_comments);
	// для страницы новости на регионах перекидываем после удсного отправления комента на список коментов к новости
	if (document.getElementById('add_success').innerHTML !=='') {
		document.location = '/comments/'+data.article_id+'/?success';
	} 
	
	//return false;
}

function authUser() {
	data = xajax.getFormValues('values');
	showLoader('form');
	ajax_auth_user(data);
	return false;
}

function editComment(id)
{
	showLoader(id);
	ajax_edit_comment (id);
	return false;
}

function deleteComment(id) {
	if (confirm ('Вы действительно хотите удалить этот комментарий?')) {
		showLoader(id);
		ajax_delete_comment(id);
	}
	return false;
}

function editCommentApply(id) {
	data = xajax.getFormValues('values');
	showLoader(id);
	ajax_edit_comment_apply (id, data.content);
	return false;
}

function showLoader(id)
{
	document.getElementById ('loader-'+id).style.display = 'block';
}

function hideLoader(id)
{
	document.getElementById ('loader-'+id).style.display = 'none';
}
