
// Функции для юзера
//

function showLoginForm()
{
	//$("#login_form_div").remove();
	
	/*
	form = $("<div style='width: 320px; margin-left: auto; margin-right: auto;'>"
		+"<div class='box_e_lite'>"
		+"<b>Войти как пользователь</b><br/>"
		+"<form action='/user/openidlogin' method='POST' id='login_form'>"
		+"<select name='provider' id='provider'>"
		+"    <option value='yandex'>Яндекса</option>"
		+"    <option value='lj' selected='selected'>Живого Журнала</option>"
		+"    <option value='openid'>Другой Open Id</option>"
		+"</select>"
		+"<input type='text' name='openid' class='openid_input' id='openid_input' /><br />"
		+"<input type='hidden' name='go_to' value='"+window.location+"' />"
		+"<input type='submit' value='Войти' />"
		+"</form>"
		+"</div>"
		+"<hr class='space' />"
		+"<div class='box_e_lite'>"
		+"<b>Или ввести логин и пароль</b><br/>"
		+"<form action='/user/login' method='POST' id='login_form'>"
		+"<label>Логин:</label><br />"
		+"<input type='text' name='login' id='login_input' class='title' /><br />"
		+"<label>Пароль:</label><br />"
		+"<input type='password' name='password' class='title' /><br />"
		+"<input name='rememberme' id='rememberme' type='checkbox' checked='1' value='1' /><label for='rememberme'>Запомнить меня</label>"
		+"<br/><br/>"
		+"<input type='hidden' name='go_to' value='"+window.location+"' />"
		+"<input type='submit' value='Войти' />"
		+"</form>"
        +"<br/>"
		+"<a href='/user/forgetpass'>Забыли пароль?</a>"
		+"</div>"
		+"</div>"
		+"");
		*/
	
	/*form = $("<div style='width: 330px; margin-left: auto; margin-right: auto;'>"
		
		+"<div class='box_e_lite'>"
		+"<form action='/user/login' method='POST' id='login_form'>"
		+"<label>Логин:</label><br />"
		+"<input type='text' name='login' id='login_input' class='title' /><br />"
		+"<label>Пароль:</label><br />"
		+"<input type='password' name='password' class='title' /><br />"
		+"<input name='rememberme' id='rememberme' type='checkbox' checked='1' value='1' /><label for='rememberme'>Запомнить меня</label>"
		+"<br/><br/>"
		+"<input type='hidden' name='go_to' value='"+window.location+"' />"
		+"<input type='submit' value='Войти' />"
		+"</form>"
        +"<br/>"
		+"<a href='/user/forgetpass'>Забыли пароль?</a>"
		+"</div>"
		
		+"<hr class='space' />"
		
		+"<div class='box_e_lite'>"
		+"<b>Войти, используя OpenID</b><br/>"
		+"<form action='/user/openidlogin' method='POST' id='login_form'>"
		+"<input type='text' name='openid' class='title openid' id='openid_input' /><br />"
		+"<input type='hidden' name='go_to' value='"+window.location+"' />"
		+"<input type='submit' value='Войти' />"
		+"</form>"
		+"</div>"
		
		+"</div>"
		+"");
	
	div = $("<div id='login_form_div'></div>");
	div.hide();
	div.append(form);
	
	div.appendTo($("body"));
	divId = "login_form_div";
	
	$("#provider").change(function(){
		         var v = $("#provider").val();
				 $('#openid_input').attr('value', '');
				 if (v == 'lj' || v == 'openid') {
					$('#openid_input').show();
					$('#openid_input').focus();
				 }
				 else $('#openid_input').hide();
		     });
				  */
	
	//tb_show('Вход','#TB_inline?height=410&width=380&inlineId='+divId);
	
	//$("#login_input").focus();
	
	divId = "login";
	$("#"+divId).hide();
	tb_show('Вход','#TB_inline?height=480&width=500&inlineId='+divId);
	
}

function showFeedbakForm(need_auth)
{
	$("#feedback_form_div").remove();
	form = $("<form action='/user/feedback' id='feedback_form' method='POST'>"
		+"<hr class='space' />"
		+"<h2>Сообщение администрации сайта</h2>"
        +"<div class='hint'>Не забывайте указывать свои контакты, если ждете от нас ответа</div>"
		+"<textarea id='feedbak_content' name='content'>"
		+"</textarea>"
		+"<br/>"
		+"<input type='submit' id='feedback_submit' value='Отправить' />"
		+"</form>");
	
	div = $("<div id='feedback_form_div' class='feedback_form'></div>");
	div.hide();
	div.append(form);
	
	div.appendTo($("body"));
	divId = "feedback_form_div";
	
	$("#feedback_submit").click(function(){
		a = srlzForm("feedback_form");
	
		subm = $("#feedback_submit");
		subm.attr("value", "Идет загрузка...");
		subm.attr("disabled","disabled");
		
		$.post("/user/feedback", a, function(data) {
			
			//alert(data);
			
			// если форма принята, уведомим юзера
			if ($("result", data).text() == "Ok") {
				
				//$("#TB_ajaxContent").html("<div class='large'>Сообщение отправлено<br/>Спасибо!</div>");
				//$("#TB_ajaxContent").click(tb_remove);
				tb_remove();
				$.jGrowl('Сообщение отправлено', { life: 1500, glue: 'before' });
				
			}
			
			subm.attr("value", "Отправить");
			subm.attr("disabled","");
			
		});
		
		return false;
	});
	
	tb_show('Форма обратной связи','#TB_inline?height=400&width=410&inlineId='+divId);
	
	$("#feedbak_content").focus();
	
}

function setReadMessage(id)
{
	var a = [];
	a.push({name: 'id', value: id});
	
	link = $("#message_"+id+"_setread_link");
	link.replaceWith("<i id='message_"+id+"_setread_link'>Обработка...</i>");
	
	$.post("/messages/setread", a, function(data) {
		
		//alert(data.text());
		
		// форма принята
		if ($("result", data).text() == "Ok") {
			
			$("#message_"+id).addClass('old_message');
			$("#message_"+id+"_setread_link").remove();
			
			//count = $("#unread_messages_count").html();
			//$("#unread_messages_count").html(count-1);
			count = $("unread_messages_count", data).text();
			$("#unread_messages_count").html(count);
			
		}
		else {
			$("#message_"+id+"_setread_link").html("Ошибка!");
		}
		
	});
	
}

function deleteMessage(id)
{
	if (!confirm('Вы уверены, что хотите удалить сообщение?'))
		return;
	
	var a = [];
	a.push({name: 'id', value: id});
	
	link = $("#message_"+id+"_remove_link");
	link.replaceWith("<i id='message_"+id+"_remove_link'>Обработка...</i>");
	
	$.post("/messages/remove", a, function(data) {
		
		//alert(data.text());
		
		// форма принята
		if ($("result", data).text() == "Ok") {
			
			//$("#message_"+id).hide(300);
			$("#message_"+id).remove();
			
			count = $("unread_messages_count", data).text();
			$("#unread_messages_count").html(count);
			
		}
		else {
			$("#message_"+id+"_remove_link").html("Ошибка!");
		}
		
	});
	
}

function deleteCheckedMessages()
{
	var idstring = "";
	var ids = [];
	
	$(".message_checkbox_control").each(function(i){
		if (this.checked) {
		    //alert(this.id+"="+this.value);
			idstring=idstring+this.value+'|';
			ids.push(this.value);
		}
	});
	
	var a = [];
	a.push({name: 'id', value: idstring});
	
	s = $("#message_delete_button");
	s.attr('value', 'Обработка...');
	s.attr('disabled', 'disabled');
	
	$.post("/messages/remove", a, function(data) {
		
		//alert(data.text());
		
		// форма принята
		if ($("result", data).text() == "Ok") {
			
			for(var i=0; i<ids.length; i++) {
				
				id = ids[i];
				
				$("#message_"+id).remove();
				
			}
			
			//count = $("#unread_messages_count").html();
			//$("#unread_messages_count").html(count-1);
			count = $("unread_messages_count", data).text();
			$("#unread_messages_count").html(count);
			
		}
		else {
			alert("Ошибка!");
		}
		
		s.attr('value', 'Удалить');
		s.removeAttr('disabled');
		
	});
	
}

function setReadCheckedMessages()
{
	var idstring = "";
	var ids = [];
	
	$(".message_checkbox_control").each(function(i){
		if (this.checked) {
		    //alert(this.id+"="+this.value);
			idstring=idstring+this.value+'|';
			ids.push(this.value);
		}
	});
	
	var a = [];
	a.push({name: 'id', value: idstring});
	
	s = $("#message_read_button");
	s.attr('value', 'Обработка...');
	s.attr('disabled', 'disabled');
	
	$.post("/messages/setread", a, function(data) {
		
		//alert(data.text());
		
		// форма принята
		if ($("result", data).text() == "Ok") {
			
			for(var i=0; i<ids.length; i++) {
				
				id = ids[i];
				
				$("#message_"+id).addClass('old_message');
				$("#message_"+id+"_setread_link").remove();
				
				$("#message_"+id+"_check").removeAttr('checked');
				
			}
			
			//count = $("#unread_messages_count").html();
			//$("#unread_messages_count").html(count-1);
			count = $("unread_messages_count", data).text();
			$("#unread_messages_count").html(count);
			
		}
		else {
			alert("Ошибка!");
		}
		
		s.attr('value', 'Пометить как прочитанные');
		s.removeAttr('disabled');
		
	});
	
}

function ajaxSubmitMessage(formId)
{
	a = srlzForm(formId);
	
	subm = $("#"+formId+" input[type='submit']");
    subm.attr("value", "Идет загрузка...");
    subm.attr("disabled","disabled");
	
	$.post($("#"+formId).attr("action"), a, function(data) {
		
		//alert(data);
		
		// если форма принята, уведомим юзера
		if ($("result", data).text() == "Ok") {
			
			//$("#TB_ajaxContent").html("<div class='large'>Сообщение отправлено</div>");
			//$("#TB_ajaxContent").click(tb_remove);
			tb_remove();
			$.jGrowl('Сообщение отправлено', { life: 1500, glue: 'before' });
			
		}
		
		if ($("result", data).text() == "ValidErrors") {
			
			err_div = $("#"+formId+" div.error");
			
			$("error", data).each(function(){
			
				err_text = $(this).text();
				$.jGrowl(err_text, { life: 1500, glue: 'before', theme: 'error_theme' });
				//$("#TB_ajaxContent").html("<div class='error'>"+err_text+"</div>");
				//$("#TB_ajaxContent").click(tb_remove);
				
			});
		
		}
		
		subm.attr("value", "Отправить");
		subm.attr("disabled","");
		
	});
}

function ajaxSubmitMessageFromHistory(formId, userName, userLogin)
{
	a = srlzForm(formId);
	
	subm = $("#"+formId+" input[type='submit']");
    subm.attr("value", "Идет загрузка...");
    subm.attr("disabled","disabled");
	
	$.post($("#"+formId).attr("action"), a, function(data) {
		
		//alert(data);
		
		// если форма принята, уведомим юзера
		if ($("result", data).text() == "Ok") {
			
			// ДОбавим в список новое сообщение
			var id = $("id", data).text();
			var content = $("content", data).text();
			var post_time = $("post_time", data).text();
			
			tr = $("<tr class='message' id='message_"+id+"'></tr>")
			.append($("<td class='message_user'><a href='/profiles/"+userLogin+"'>"+userName+"</a></td>"))
			.append($("<td class='message_date'><i>"+post_time+"</i></td>"))
			//.append($("<td class='message_content'><a href='/messages/view/id/"+id+"'>"+content+"</a></td>"))
			.append($("<td class='message_content'>"+content+"</td>"))
			.appendTo($("table.messages"))
			.effect("highlight", {}, 1000);
			
			$("#message_textarea").val("");
			
		}
		
		subm.attr("value", "Отправить");
		subm.attr("disabled","");
		
	});
}

function showMessageForm(rec_id, name, login, message_id)
{
	$("#comment_"+rec_id+"_div").remove();
	
	link = $("#user_"+rec_id+"_mail");
	
	form = $("<form action='/messages/post' id='form_"+rec_id+"' method='POST'>"
		+"<input type='hidden' name='recipient_id' value='"+rec_id+"' />"
		+"<input type='hidden' name='message_id' value='"+message_id+"' />"
		+"<b>Личное сообщение для пользователя "
		+"<a href='/profiles/"+login+"'>"+name+"</a>"
		+"</b>"
		+"<br/>"
		+"<textarea id='comment_"+rec_id+"_textarea' class='comment_answer_content' name='content'>"
		+"</textarea>"
		+"<br/>"
		+"<input type='submit' id='subm_"+rec_id+"' onclick=\"ajaxSubmitMessage('"+"form_"+rec_id+"'); return false; \" value='Отправить' />"
		+"</form>");
	
	div = $("<div id='comment_"+rec_id+"_div' class='comment_answer_form_div'></div>");
	div.hide();
	div.append(form);
	
	//div.insertAfter(link);
	div.appendTo($("body"));
	divId = "comment_"+rec_id+"_div";
	
	//openNiceForm(link, divId);
	
	// Вместо этого откроем thickbox-окошко
	tb_show('Сообщение','#TB_inline?height=210&width=400&inlineId='+divId);
	
	$("#comment_"+rec_id+"_textarea").focus();
	
}

// Отправляем имя или "о себе" /ajax
function ajaxSubmitUserEdit(field)
{
	var formId = "user_edit"+field+"_form";
	a = srlzForm(formId);
    
	div = $("#user_"+field); 
    divc = $("#user_edit"+field);
	subm = $("#"+formId+" input[type='submit']");
    subm.attr("value", "Идет загрузка...");
    subm.attr("disabled","disabled");
     
     $.post($("#"+formId).attr("action"), a, function(data) {
     	
		//alert(data);
		
     	// если форма принята, уведомим юзера
     	if ($("result", data).text() == "Ok") {
     		
			// Обновим значение поля
			if ($("newvalue", data).length > 0) {
				
				var str = $("newvalue", data).text();
				
				// Избавляемся от экранирования :-\
				str = str.replace(/\\'/g, '\'');
				str = str.replace(/\\"/g, '\"');
				
				div.html(str);
			}
			
     	}
		
		subm.attr("value", "Отправить");
		subm.attr("disabled","");
		
		divc.hide(300);
     	
	});
}

// Смена пароля юзером /ajax
function ajaxSubmitChangePassword()
{
	var formId = "user_changepassword_form";
	a = srlzForm(formId);
     
    divc = $("#user_changepassword");
	subm = $("#"+formId+" input[type='submit']");
    subm.attr("value", "Идет загрузка...");
    subm.attr("disabled","disabled");
     
     $.post("/user/changepassword", a, function(data) {
     	
		//alert($("response", data).text());
		
		var fields = $("#"+formId).serializeArray();
		
		// очищаем ошибки
     	$.each(fields, function(i, field){
			$("#"+field.name+"_err").empty();
     	});
		
     	// если форма принята, уведомим юзера
     	if ($("result", data).text() == "Ok") {
     		
			alert("Пароль изменен!");
			
			divc.hide(300);
			
     	}
		
		// если пришли ошибки валидации - выводим
		if ($("result", data).text() == "ValidErrors") {
		
			// выводим новые ошибки
			// ошибки выводятся в div-ы с id имяполя_err
			$("error", data).each(function(){
			
				err_text = $(this).text();
				err_field = $(this).attr("field");
				
				//alert(err_field + ": " + err_text);
				
				var field = $("#"+formId+" input[name="+err_field+"]");
				if (!field.length) {
					var field = $("#"+formId+" select[name="+err_field+"]");
				}
				
				var div_err = $("#"+err_field+"_err");
				
				// если div-а для ошибки нет, создаем его
				if (!div_err.length) {
					div_err = $("<div id="+err_field+"_err style='color:#FF0000;display:none'></div>");
					field.after(div_err);
				}  				
				
				div_err.html(err_text);
				div_err.show('slow'); // покажем с эффектом
			
			});
		}
		
		subm.attr("value", "Отправить");
		subm.attr("disabled","");
     	
	});
}

function addFriend(id)
{
	if (!confirm('Добавить пользователя в друзья?'))
		return;
	
	var a = [];
	a.push({name: 'id', value: id});
	
	link = $("#user_"+id+"_addfriend");
	link.replaceWith("<img id='user_"+id+"_addfriend' src='/images/indicator.gif' />");
	
	link = $("#user_"+id+"_addfriend");
	
	$.post("/user/addfriend", a, function(data) {
		
		//alert(data.text());
		
		// форма принята
		if ($("result", data).text() == "Ok") {
			
			link.replaceWith("<div class='success'>Друг!</div>");
			
		}
		else {
			link.replaceWith("<div class='error'>Ошибка!</div>");
		}
		
	});
	
}

function removeFriend(id)
{
	if (!confirm('Удалить пользователя из друзей?'))
		return;
	
	var a = [];
	a.push({name: 'id', value: id});
	
	link = $("#user_"+id+"_addfriend");
	link.replaceWith("<img id='user_"+id+"_addfriend' src='/images/indicator.gif' />");
	
	link = $("#user_"+id+"_addfriend");
	
	$.post("/user/removefriend", a, function(data) {
		
		//alert(data.text());
		
		// форма принята
		if ($("result", data).text() == "Ok") {
			
			link.replaceWith("<div class='success'>Больше не друг!</div>");
			
		}
		else {
			link.replaceWith("<div class='error'>Ошибка!</div>");
		}
		
	});
	
}


function removeFriendFromList(id)
{
	if (!confirm('Удалить пользователя из друзей?'))
		return;
	
	var a = [];
	a.push({name: 'id', value: id});
	
	link = $("#user_"+id+"_removefriend");
	link.replaceWith("<img id='user_"+id+"_addfriend' src='/images/indicator.gif' />");
	
	link = $("#user_"+id+"_removefriend");
	
	$.post("/user/removefriend", a, function(data) {
		
		//alert(data.text());
		
		// форма принята
		if ($("result", data).text() == "Ok") {
			
			$("#friend_"+id).remove();
			
		}
		else {
			link.replaceWith("<span>Ошибка!</span>");
		}
		
	});
	
}

var friendsNews = {

    _div: '',
	_login: '',
	_page: 1,
    
    init: function(div, login)
    {
		friendsNews._div = div;
		friendsNews._login = login;
		friendsNews._page = 1;
        friendsNews.load();
    },
    
    load: function()
    {
        friendsNews._div.load('/user/friendsnews/login/'+friendsNews._login+'?p='+friendsNews._page,
			function(){
				/*if (!$('#friends_news_empty', friendsNews._div).length)
					friendsNews.pagination();*/
			});		
    }
	
	/*this.pagination = function()
	{
		var friendsNews = this;
	
		$("<div class='paginator_small' id='friends_news_paginator'></div>").appendTo(this._div);
		
		if (friendsNews._page > 1) {
			$("<a href='#'>Назад</a>")
			.click(function(){
				friendsNews._page -= 1;
				friendsNews.load();
				return false;
			})
			.appendTo($("#friends_news_paginator"))
			.wrap("<span></span>");
		}
		
		$("<a href='#'>Вперед</a>")
			.click(function(){
				friendsNews._page += 1;
				friendsNews.load();
				return false;
			})
			.appendTo($("#friends_news_paginator"))
			.wrap("<span></span>");
		
	}*/
	
	//this.init();
	
} 

// Активация контролов френдов в профиле
$(document).ready(function() {
    
    $(".friend").hover(
    function() {
	$(".friend_control", $(this)).show();
    },
    function() {
	$(".friend_control", $(this)).hide();
    }
    );
    
}
);


