$(function()
{
	loadFirst();
	loadData();	
});

function loadFirst()
{
	current_tip = ''; // для голосавания, аттача и т.д. (убрать tip)
	current_drop = ''; // для выпадающего меню
		
	$(".categories .category").eq(-2).addClass("noborder");
	$(".categories .category:last").addClass("noborder");
	$(".comment .border:last").removeClass("border");
	$(".table1 #odd:odd").addClass("odd");
	
	$("#top_pubs .thumb").eq(-4).addClass("noborder");
	$("#top_pubs .thumb").eq(-3).addClass("noborder");
	$("#top_pubs .thumb").eq(-2).addClass("noborder");
	$("#top_pubs .thumb:last").addClass("noborder");
	
	$("#warning_photo_show").addClass("info_red").css('margin-top', '5px').html('Для полноценного просмотра, Вам нужно <a href="/login/">авторизироваться</a>');
	$("#warning_video_show").addClass("info_red").css('margin-top', '5px').html('Что бы скачать видео или посмотреть его онлайн, Вы должны <a href="/login/">авторизироваться</a>');
}

function closeInfo()
{
	$(".info_popup").hide();	
	$.post('/close_info');
}

function loadData()
{
	$('.tip_text').tip();
	$('.tip_image').tip();
	$('.tip_link').tip();
	$('.left_column .menu li a').dropMenu();
	$('.comment #actions_menu').dropMenu({'type': 'actions'});
	$('.user #actions_menu').dropMenu({'type': 'actions'});
}

function postForm(id)
{
	var loadingElement = $('#' + id + '_form #loading');
	var loadingCode = '';
	
	if (loadingElement.length)
	{
		var loadingCode = loadingElement.html();
		loadingElement.html('<img src="/images/loading.gif" />');
	}
	
	$.post('/' + id, $('#' + id + '_form').serialize(), function(res)
	{
		if (!res) return;
		var obj = $.evalJSON(res);
		
		if (obj.status == 'error')
		{
			if (id == 'login_header')
			{
				displayStatusMessage('error', obj.errors['login']);
			}
			
			else
			{
				loadingElement.html(loadingCode);
				
				for (var key in obj.errors)
				{
					var val = obj.errors[key];
					$('#' + key + '_status').html(val);
				}
			}
		}

		else if (obj.status == 'ok')
		{
			if (id == 'login_header') displayStatusMessage('success', 'Авторизация прошла успешно, идет загрузка...');
			
			else if (id == 'settings' || id == 'feedback')
			{
				if (id == 'settings') displayStatusMessage('success', 'Данные успешно сохранены!');
				else if (id == 'feedback') displayMessage('ok', obj.message);
				loadingElement.html(loadingCode);
				if (obj.errors) for (var key in obj.errors) $('#' + key + '_status').html('');
			}
			
			if (obj.id) $('#' + obj.id).html(obj.content);
			else if (obj.location) window.location = obj.location;
		}
	});
}

function displayStatusMessage(status, msg)
{
	$("#status_message")
	.css({
		opacity: '0.8',
		top: document.documentElement.scrollTop > 0 ? '0': '5px',
		width: '215px'
	})
	.empty()
	.append('<div class="' + status + '">' + msg + '</div>');

	if ($("#status_message").css("position") == "absolute" && document.documentElement.scrollTop > 0)
	{
		$("#status_message").css({
			top: (document.documentElement.scrollTop).toString()
		});
	}

	setTimeout(function()
	{
		$("#status_message").animate({width: 0}, function()
		{
			$("#status_message").css({opacity: '0'}).css({width: "215px"});
		});
	}, 5000);
}

function refreshCaptcha()
{
	$("#captcha").attr('src', '/captcha.jpg?' + Math.floor(999999 * Math.random()));
}

function displayLoading(status)
{
	message = 'Загрузка. Пожалуйста, подождите...';
	
	if (status == 'on')
	{
		$("#status_loading").css({
			left: ($(window).width() - $("#status_loading").width()) / 2 + "px",
			top: ($(window).height() - $("#status_loading").height()) / 2 + "px",
			position: "fixed",
			zIndex: "9999"
		})
		.html(message)
		.fadeTo("slow", 0.6);
	}
	
	else
	{
		$("#status_loading").fadeOut("slow");
	}
}

function displayMessage(type, message)
{
	var form = '<div>' + message + '</div>';
	
	if (type == 'error' || type == 'ok') prefix = type + 'jqi';
	else prefix = '';
	
	$.prompt(form,
	{
		prefix: prefix,
		buttons: { 'Закрыть': false },
		
		submit: function(v, m, f)
		{
			return true;
		}
	});	
}

function addFriend(id)
{
	displayLoading('on');
	
	$.post('/add_friend/', { 'type': 'check', 'id': id }, function(res)
	{
		displayLoading('off');
		
		if (!res) return;
		var obj = $.evalJSON(res);
		
		if (obj.status == 'error')
		{
			displayMessage('error', obj.message);
			return;
		}

		var form = '<div>Вы хотите добавить пользователя <a href="/user/' + id + '/">' + obj.message + '</a> ' +
		'в Ваши друзья?<br>Мы оповестим его об этом, и он должен будет подтвердить Ваш запрос</div>';
		
		$.prompt(form,
		{
			buttons: { 'Отправить': true, 'Отмена': false },
			submit: function(v, m, f)
			{
				if (!v) return true;

				$.post('/add_friend/', { 'type': 'add', 'id': id }, function(res)
				{					
					if (!res) return;
					var obj = $.evalJSON(res);

					if (obj.status == 'error')
					{
						$.prompt.close();
						displayMessage('error', obj.message);
						return;
					}

					else if (obj.status == 'ok')
					{
						$.prompt.close();
						displayMessage('ok', obj.message);
					}
				});

				return false;
			}
		});
		
		displayLoading('off');
	});
}

function setFriend(id, type)
{	
	form = '<div>Вы уверены?</div>';
	
	$.prompt(form,
	{
		buttons: { 'Подтвердить': true, 'Отмена': false },
		submit: function(v, m, f)
		{
			if (!v) return true;

			$.post('/set_friend/', { 'type': type, 'id': id }, function(res)
			{
				if (!res) return;
				var obj = $.evalJSON(res);

				if (obj.status == 'error')
				{
					$.prompt.close();
					displayMessage('error', obj.message);
					return;
				}

				else if (obj.status == 'ok')
				{
					$('#user_id_' + id).remove();
					$.prompt.close();
					displayMessage('ok', obj.message);
				}
			});

			return false;
		}
	});
}

function newMessage(id)
{
	displayLoading('on');
	
	$.post('/new_message/', { 'type': 'check', 'id': id }, function(res)
	{
		displayLoading('off');
		
		if (!res) return;
		var obj = $.evalJSON(res);
		
		if (obj.status == 'error')
		{
			displayMessage('error', obj.message);
			return;
		}

		var form = '<div class="table">' +
		'<table>' +
		'<tr><td class="left">Кому</td><td><a href="/user/' + id + '/">' + obj.message + '</a></td></tr>' +
		'<tr><td class="left">Заголовок</td><td><input type="text" name="title" style="width: 300px;" /></td></tr>' +
		'<tr><td class="left">Сообщение</td><td><textarea name="text" style="width: 300px; height: 100px;"></textarea></td></tr>' +
		'</table>' +
		'<div id="errors"></div>' +
		'</div>';
		
		$.prompt(form,
		{
			buttons: { 'Отправить': true, 'Отмена': false },
			submit: function(v, m, f)
			{
				if (!v) return true;

				$.post('/new_message/', { 'type': 'send', 'id_user': id, 'title': f.title, 'text': f.text }, function(res)
				{
					if (!res) return;
					var obj = $.evalJSON(res);
					
					if (obj.status == 'error')
					{
						$('#errors').html('');
						
						for (var key in obj.errors)
						{
							var val = obj.errors[key];
							$('#errors').append('<div style="color: red;">' + val + '</div>');
						}
					}

					else if (obj.status == 'ok')
					{
						$.prompt.close();
						displayMessage('ok', obj.message);
					}
				});

				return false;
			}
		});
		
		displayLoading('off');
	});
}

function picsTransfer(id)
{
	displayLoading('on');
	
	$.post('/pics_transfer/', { 'type': 'check', 'id_user': id }, function(res)
	{
		displayLoading('off');
		
		if (!res) return;
		var obj = $.evalJSON(res);
		
		if (obj.status == 'error')
		{
			displayMessage('error', obj.message);
			return;
		}

		var form = '<div class="table">' +
		'<table>' +
		'<tr><td class="left">Кому</td><td><a href="/user/' + id + '/">' + obj.login + '</a></td></tr>' +
		'<tr><td class="left">Сколько пик</td><td><input type="text" name="pics" style="width: 300px;" /></td></tr>' +
		'<tr><td class="left">Сообщение</td><td><textarea name="text" style="width: 300px; height: 100px;"></textarea></td></tr>' +
		'<tr><td class="left">&nbsp;</td><td class="warning">Система берет ' + obj.percent + '% от суммы перевода</td></tr>' +
		'</table>' +
		'<div id="errors"></div>' +
		'</div>';
		
		$.prompt(form,
		{
			buttons: { 'Перевести': true, 'Отмена': false },
			submit: function(v, m, f)
			{
				if (!v) return true;
				
				$.post('/pics_transfer/', { 'type': 'transfer', 'id_user': id, 'pics': f.pics, 'text': f.text }, function(res)
				{
					if (!res) return;
					var obj = $.evalJSON(res);
							
					if (obj.status == 'error')
					{
						$('#errors').html('<div style="color: red;">' + obj.message + '</div>');
					}

					else if (obj.status == 'ok')
					{
						$.prompt.close();
						displayMessage('ok', obj.message);
					}
				});

				return false;
			}
		});
				
		displayLoading('off');
	});
}

function checkAll(el)
{
	var inp = document.getElementsByTagName('input');

	for (var i = 0; i < inp.length; i++)
	{
		if (inp[i].id == el.id && inp[i].getAttribute('type') == 'checkbox')
		{
			inp[i].checked = el.checked;
		}
	}
}

function abuse(id, type)
{
	var form = 'Напишите причину Вашей жалобы' +
	'<div><textarea name="message" style="width: 300px; height: 100px"></textarea></div>' +
	'<div id="errors"></div>';
	
	$.prompt(form,
	{
		buttons: { 'Отправить': true, 'Отмена': false },
		submit: function(v, m, f)
		{
			if (!v) return true;

			$.post('/abuse/', { 'id': id, 'type': type, 'message': f.message }, function(res)
			{
				if (!res) return;
				var obj = $.evalJSON(res);

				if (obj.status == 'error')
				{
					$('#errors').html('<div style="color: red;">' + obj.message + '</div>');
				}

				else if (obj.status == 'ok')
				{
					$.prompt.close();
					displayMessage('ok', obj.message);
				}
			});

			return false;
		}
	});
}

function search()
{
	displayLoading('on');
	
	$.post('/search/', $('#search_header_form').serialize(), function(res)
	{
		displayLoading('off');
		
		if (!res) return;
		var obj = $.evalJSON(res);
		
		if (obj.status == 'error') displayMessage('error', obj.message);
		else if (obj.status == 'ok') window.location = obj.location;
	});
}

function deletePub(id, type)
{
	if (type == 'admin')
	{
		var txt = '<b>Выберите шаблоны или введите свой текст</b><br>' + 
		'<div><input type="text" id="delete_message" name="delete_message" size="55"/></div>';		
		
		var form = '<div class="table">' +
		'<table>' +
		'<tr><td class="left">Штраф (рейтинг)</td><td><input type="text" name="penalty_rating" style="width: 300px;" /></td></tr>' +
		'<tr><td class="left">Штраф (пик)</td><td><input type="text" name="penalty_pics" style="width: 300px;" /></td></tr>' +
		'<tr><td class="left">Шаблоны</td><td>' +
		'<a href="javascript://" onClick="document.getElementById(\'delete_message\').value = \'Нарушение правил: на фотографиях присутствует логотип или копирайт\'; ">Копирайт</a>, ' +
		'<a href="javascript://" onClick="document.getElementById(\'delete_message\').value = \'Нарушение правил: выбрана не верная категория\';">Категория</a>, ' +
		'<a href="javascript://" onClick="document.getElementById(\'delete_message\').value = \'Нарушение правил: на фотографиях присутствуют несовершеннолетние\';">Молодые</a>, ' +
		'<a href="javascript://" onClick="document.getElementById(\'delete_message\').value = \'Нарушение правил: повторная публикация\';">Повтор</a>, ' +
		'<a href="javascript://" onClick="document.getElementById(\'delete_message\').value = \'Нарушение правил: не нужный контент для сайта\';">Мусор</a>, ' +
		'<a href="javascript://" onClick="document.getElementById(\'delete_message\').value = \'Нарушение правил: плохое описание\';">Описание</a>, ' +
		'<a href="javascript://" onClick="document.getElementById(\'delete_message\').value = \'Нарушение правил: скрин не по стандарту сайта\';">Скрин</a>' +
		'</td></tr>' +
		'<tr><td class="left">Сообщение</td><td><textarea id="delete_message" name="message" style="width: 300px; height: 100px;"></textarea></td></tr>' +
		'<tr><td colspan="2"><div class="warning">Штрафы и сообщение не обязательно, будет взято из настроек<br />Если указать штраф, будет приплюсованно к настройкам по умолчанию</div></td></tr>' +
		'</table>' +
		'<div id="errors"></div>' +
		'</div>';
	}
	
	else if (type == 'moderator')
	{
		var txt = '<b>Выберите шаблоны или введите свой текст (причина удаления)</b><br>' + 
		'<div><input type="text" id="delete_message" name="delete_message" size="55"/></div>';		
		
		var form = '<div class="table">' +
		'<table>' +
		'<tr><td class="left">Шаблоны</td><td>' +
		'<a href="javascript://" onClick="document.getElementById(\'delete_message\').value = \'Нарушение правил: на фотографиях присутствует логотип или копирайт\'; ">Копирайт</a>, ' +
		'<a href="javascript://" onClick="document.getElementById(\'delete_message\').value = \'Нарушение правил: выбрана не верная категория\';">Категория</a>, ' +
		'<a href="javascript://" onClick="document.getElementById(\'delete_message\').value = \'Нарушение правил: на фотографиях присутствуют несовершеннолетние\';">Молодые</a>, ' +
		'<a href="javascript://" onClick="document.getElementById(\'delete_message\').value = \'Нарушение правил: повторная публикация\';">Повтор</a>, ' +
		'<a href="javascript://" onClick="document.getElementById(\'delete_message\').value = \'Нарушение правил: не нужный контент для сайта\';">Мусор</a>, ' +
		'<a href="javascript://" onClick="document.getElementById(\'delete_message\').value = \'Нарушение правил: плохое описание\';">Описание</a>, ' +
		'<a href="javascript://" onClick="document.getElementById(\'delete_message\').value = \'Нарушение правил: скрин не по стандарту сайта\';">Скрин</a>' +
		'</td></tr>' +
		'<tr><td class="left">Сообщение</td><td><textarea id="delete_message" name="message" style="width: 300px; height: 100px;"></textarea></td></tr>' +
		'</table>' +
		'<div id="errors"></div>' +
		'</div>';
	}
	
	else
	{
		var form = 'Вы уверены, что хотите удалить публикацию?';
	}
	
	$.prompt(form,
	{
		buttons: { 'Удалить': true, 'Отмена': false },
		submit: function(v, m, f)
		{
			if (!v) return true;

			$.post('/delete_pub/', { 'id_pub': id, 'message': f.message, 'penalty_rating': f.penalty_rating, 'penalty_pics': f.penalty_pics }, function(res)
			{
				if (!res) return;
				var obj = $.evalJSON(res);

				if (obj.status == 'error')
				{
					$.prompt.close();
					displayMessage('error', obj.message);
					return;
				}

				else if (obj.status == 'ok')
				{
					$('#pub_id_' + id).remove();
					$.prompt.close();
				}
			});

			return false;
		}
	});
}

function backPub(id)
{
	$.post('/back_pub/', { 'id_pub': id }, function(res)
	{
		if (!res) return;
		var obj = $.evalJSON(res);
		
		if (obj.status == 'ok')
		{
			window.location = obj.location;
		}
	});
}

function movePub(id, old_id)
{
	value = $('#move_category').val();
	if (value == old_id) return;

	$.post('/move_pub/', { 'id_pub': id, 'id_category': value }, function(res)
	{
		if (!res) return;
		var obj = $.evalJSON(res);
		
		if (obj.status == 'ok')
		{
			window.location = obj.location;
		}
	});
}

function addBlacklist(id)
{
	displayLoading('on');
	
	$.post('/add_blacklist/', { 'type': 'check', 'id': id }, function(res)
	{
		displayLoading('off');
		
		if (!res) return;
		var obj = $.evalJSON(res);
		
		if (obj.status == 'error')
		{
			displayMessage('error', obj.message);
			return;
		}

		var form = '<div>Вы хотите добавить пользователя <a href="/user/' + id + '/">' + obj.login + '</a> ' +
		'в черный список?<br>После этого он не сможет писать Вам сообщения, комментировать Ваши публикации,<br>' +
		'голосовать за Ваши публикации и комментарии и т.д.<br />Стоимость услуги ' + obj.pics + ' пик</div>';
		
		$.prompt(form,
		{
			buttons: { 'Отправить': true, 'Отмена': false },
			submit: function(v, m, f)
			{
				if (!v) return true;

				$.post('/add_blacklist/', { 'id': id, 'type': 'add' }, function(res)
				{					
					if (!res) return;
					var obj = $.evalJSON(res);

					if (obj.status == 'error')
					{
						$.prompt.close();
						displayMessage('error', obj.message);
						return;
					}

					else if (obj.status == 'ok')
					{
						$.prompt.close();
						displayMessage('ok', obj.message);
					}
				});

				return false;
			}
		});
		
		displayLoading('off');
	});
}

function deleteBlacklist(id)
{	
	form = '<div>Вы уверены?</div>';
	
	$.prompt(form,
	{
		buttons: { 'Подтвердить': true, 'Отмена': false },
		submit: function(v, m, f)
		{
			if (!v) return true;

			$.post('/delete_blacklist/', { 'id': id, 'type': 'delete' }, function(res)
			{
				if (!res) return;
				var obj = $.evalJSON(res);

				if (obj.status == 'error')
				{
					$.prompt.close();
					displayMessage('error', obj.message);
					return;
				}

				else if (obj.status == 'ok')
				{
					$('#user_id_' + id).remove();
					$.prompt.close();
					displayMessage('ok', obj.message);
				}
			});

			return false;
		}
	});
}

function setUserStatus(id)
{
	displayLoading('on');
	
	$.post('/add_status/', { 'type': 'check', 'id_user': id }, function(res)
	{
		displayLoading('off');
		
		if (!res) return;
		var obj = $.evalJSON(res);
		
		if (obj.status == 'error')
		{
			displayMessage('error', obj.message);
			return;
		}

		var form = obj.message;
		
		$.prompt(form,
		{
			buttons: { 'Установить': true, 'Отмена': false },
			submit: function(v, m, f)
			{
				if (!v) return true;
				
				$.post('/add_status/', { 'type': 'set', 'id_user': id, 'pics': f.pics, 'text': f.text, 'anonymous': f.anonymous, 'color': f.color }, function(res)
				{
					if (!res) return;
					var obj = $.evalJSON(res);
							
					if (obj.status == 'error')
					{
						$('#errors').html('<div style="color: red;">' + obj.message + '</div>');
					}

					else if (obj.status == 'ok')
					{
						$.prompt.close();
						displayMessage('ok', obj.message);
					}
				});

				return false;
			}
		});
				
		displayLoading('off');
	});
}

function setProtectUserStatus()
{
	displayLoading('on');
	
	$.post('/protect_status/', { 'type': 'check' }, function(res)
	{
		displayLoading('off');
		
		if (!res) return;
		var obj = $.evalJSON(res);
		
		if (obj.status == 'error')
		{
			displayMessage('error', obj.message);
			return;
		}

		var form = obj.message;
		
		$.prompt(form,
		{
			buttons: { 'Защитить': true, 'Отмена': false },
			submit: function(v, m, f)
			{
				if (!v) return true;
				
				$.post('/protect_status/', { 'type': 'set' }, function(res)
				{
					if (!res) return;
					var obj = $.evalJSON(res);
							
					if (obj.status == 'error')
					{
						$('#errors').html('<div style="color: red;">' + obj.message + '</div>');
					}

					else if (obj.status == 'ok')
					{
						$.prompt.close();
						displayMessage('ok', obj.message);
					}
				});

				return false;
			}
		});
				
		displayLoading('off');
	});
}


