var tmpval, tmpcnt;
$(document).ready(function(){
	$('#SearchInput').click(function(){
		if (this.value == 'Поиск') {
			$(this).removeClass('NoActiveInput').addClass('ActiveInput').val('');
		}
	}).blur(function(){
		if (this.value.length < 1) {
			$(this).removeClass('ActiveInput').addClass('NoActiveInput').val('Поиск');
		}
	});
	$('#SubmitLogin').click(function(){
		Login();
		return false;
	});
	$('.close').click(function(){
		HideOverlay();
		$('.preview').css('background', '#FFFFFF').html('<p>Просмотр</p>');
		return false;
	});
	$('#FormAddBookmark').submit(function(){
		AddBookmark();
		return false;
	});
	$('#AddBookmarkButton').click(function(){
		AddBookmark();
		return false;
	});
	$('#FormMoveCategory').submit(function(){
		SetCategory();
		return false;
	});
	$('#MoveCategoryButton').click(function(){
		SetCategory();
		return false;
	});
	$('#addcategory').click(function(){
		ShowOverlay('WindowAddCategory');
	});
	$('#FormAddCategory').submit(function(){
		AddCategory();
		return false;
	});
	$('#AddCategoryButton').click(function(){
		AddCategory();
		return false;
	});
	$('#AddBookmarkUrl').blur(function(){
		if ( $('#AddBookmarkUrl').val().length > 4 ) {
			$('.preview').css('background', 'url(http://open.thumbshots.org/image.aspx?url='+$('#AddBookmarkUrl').val()+')').html('');
		} else {
			$('.preview').css('background','White').html('<p>Просмотр</p>');
		}
	});
	$('#FormLogin').submit(function(){
		Login();
		return false;
	});
	$('.note').mouseover(function(){
		$(this).removeClass('note').addClass('anote');
	}).mouseout(function(){
		$(this).removeClass('anote').addClass('note');
	});
	Autorise();
});
function LoadBookmark () {
	$('#Bookmarks').html('<h3>Закладки</h3>');
	$.getJSON("bookmarks/"+GetID($('.BCat-a').attr('id'))+".json", function(data){
		$.each(data.bookmarks, function(i,bookmark){
			$('<div id="bdrop-'+bookmark.id+'" class="bdrop noempty"><div class="BookmarkTitle"><a href="/go/'+bookmark.url+'">'+bookmark.stitle+'</a></div><div id="preview-'+bookmark.id+'" class="BookmarkPreview"><a href="/go/'+bookmark.url+'"><img src="http://open.thumbshots.org/image.aspx?url='+bookmark.url+'" alt="'+bookmark.url+'" title="'+bookmark.title+'" width="120" height="90" /></a><div id="options-'+bookmark.id+'" class="options corner"><a href="#" id="delete-'+bookmark.id+'" class="delete" title="Удалить" onclick="DeleteBookmark('+bookmark.id+');return false;">X</a></div><div id="BookmarkCat-'+bookmark.id+'" class="bookmarkcats corner" title="Переместить" onclick="MoveBookmark('+bookmark.id+')">&harr;</div></div>').appendTo('#Bookmarks');
			$('#options-'+bookmark.id).hide();
			$('#BookmarkCat-'+bookmark.id).hide();
			$('#bdrop-'+bookmark.id).mouseover(function(){
				$('#options-'+bookmark.id).show();
				$('#BookmarkCat-'+bookmark.id).show();
			}).mouseout(function(){
				$('#options-'+bookmark.id).hide();
				$('#BookmarkCat-'+bookmark.id).hide();
			});
		});
		astart();
	});
}
function astart () {
	$('<div id="bdrop-astart" class="bdrop empty"><h2>+</h2></div>').appendTo('#Bookmarks');
	$(".empty").click(function(){ShowOverlay('WindowAddBookmark', $(this).attr('id'));});
}
function Autorise () {
	$.post("response.json", {'action': 'auth'},  function(data){
		if (data.auth == 'yes') {
			$('#Panel').html('<a href="#" class="PanelLink" onclick="ShowOverlay(\'WindowHelp\');return false;" id="Help">Помощь</a> | <a href="#" onclick="Logout();return false;" class="PanelLink">Выход</a>');
		} else {
			$('#Panel').html('<a href="#" class="PanelLink" onclick="ShowOverlay(\'WindowHelp\');return false;" id="Help">Помощь</a> | <a href="#" onclick="ShowOverlay(\'WindowLogin\');return false;" class="PanelLink">Вход/Регистрация</a>');
		}
	}, "json");
	LoadBookmark();
	LoadCategory();
}
function Login () {
	var email = $('#LoginFormEmail').val();
	var passwd = $('#LoginFormPasswd').val();
	var repasswd = $('#LoginFormRePasswd').val();
	var formaction = $('#LoginFormAction').val();
	if (formaction == 'login') {
		if (email.length < 1) {
			$('#info').html('Введи свой e-mail.');
		} else if (passwd.length <1 ) {
			$('#info').html('Введи свой пароль.');
		} else {
			$('#info').html('<img src="load.gif" /> Загрузка...');
			$.post("response.json", { 'email': email, 'passwd': passwd, 'action': 'login' },
				function(data){
					if (data.login == 'error') {
						$('#info').html('Неверный пароль. <a href="#" onclick="RecoverPasswd();return false;">Вспомнить</a>');
					} else if (data.login == 'no') {
						$('#LoginFormTitle').html('Регистрация');
						$('#LoginFormRePasswdDiv').show();
						$('#LoginFormAction').val('reg');
						$('#info').html('Неизвестный e-mail. Зарегистрируй его.');
					} else if (data.login == 'wrong') {
						$('#info').html('Неверный формат e-mail.');
					} else {
						$('#info').html('Вход выполнен.');
						HideOverlay();
						Autorise();
					}
			}, "json");
		}
	} else {
		if (email.length < 1) {
			$('#info').html('Введи свой e-mail.');
		} else if (passwd.length <1 ) {
			$('#info').html('Введи свой новый пароль.');
		} else if ( passwd != repasswd ) {
			$('#info').html('Проверь, пароли не совпадают.');
		} else {
			$('#info').html('<img src="load.gif" /> Загрузка...');
			$.post("response.json", { 'email': email, 'passwd': passwd, 'action': 'reg' },
				function(data){
					if (data.reg == 'error') {
						$('#info').html('Эта почта уже зарегистрирована.');
					} else if (data.reg == 'no') {
						$('#info').html('Неверный формат почтового адреса.');
					} else {
						$('#info').html('Регистрация завершена.');
						HideOverlay();
						Autorise();
					}
			}, "json");
		}
	}
}
function Logout () {
	$.post("response.json", {'action': 'logout'},  function(data){
		if (data.logout == 'yes') {
			Autorise();
		}
	}, "json");
}
function RecoverPasswd () {
	var email = $('#LoginFormEmail').val();
	$('#info').html('<img src="load.gif" /> Загрузка...');
	$.post("response.json", { 'action': 'recoverpasswd' },
		function(data){
			if (data.recover == 'error') {
				$('#info').html('Ты читер! Такой ящик не зарегистрирован!');
			} else if (data.recover == 'no') {
				$('#info').html('Востановление пароля запрещено!');
			} else {
				$('#info').html('Пароль выслан на твой почтовый ящик.');
			}
	  }, "json");
}
function HideOverlay () {
	$('#Overlay').css('display', 'none');
	$('.windows').css('display', 'none');
}
function ShowOverlay ( wnd, id ) {
	$('#Overlay').css('display', 'inline');
	$('#'+wnd).css('display', 'inline');
	tmpval = id;
	$('#LoginFormAction').val('login');
	$('#LoginFormRePasswdDiv').hide();
	$('#LoginFormTitle').html('Вход');
	$('#info').html('');
	$('#AddBookmarkUrl').val('');
	$('#AddBookmarkTitle').val('');
	$('#CategoryError').html('');
	$('#AddCategoryName').val('');
	$('#AddError').html('');
}
function AddBookmark () {
	var url = $('#AddBookmarkUrl').val();
	var titles = $('#AddBookmarkTitle').val();
	if (url.length < 1){
		$('#AddError').html('Адрес сайта не введен.');
	} else if (titles.length < 1) {
		$('#AddError').html('Заголовок не введен.');
	} else {
		$('#AddError').html('<img src="load.gif" /> Загрузка...');
		$.post("response.json", { 'url': url, 'category': GetID($('.BCat-a').attr('id')), 'title': titles, 'action': 'bookmark-add' }, function(data){
			if (data.add == 'error') {
				$('#AddError').html('У тебя уже есть такая закладка.');
			} else if (data.add == 'no') {
				$('#info').html('Зайди или зарегистрируйся.');
				HideOverlay();
				ShowOverlay('WindowLogin');
			} else {
				$('#AddError').html('Закладка добавлена.');
				LoadBookmark();
				HideOverlay();
			}
		}, "json");
	}
}
function DeleteBookmark ( id ) {
	if ( confirm("Хочешь удалить закладку?\nВостановить ее можно будет только по твоей памяти...") ) {
		$.post("response.json", { 'id': id, 'action': 'bookmark-del' }, function(data){
			if (data.del == 'yes') {
				$('#bdrop-'+id).fadeOut('slow');
			} else {
				ShowOverlay('WindowLogin');
			}
		}, "json");
	}
}
function LoadCategory () {
	$('#Category-container').html('');
	$.getJSON("category.json", function(data){
		$.each(data.categories, function(i,category){
			$('<div id="CCat-'+category.id+'" class="tabs"><div class="BCat-na corner" id="BCat-'+category.id+'" onclick="LoadThisTab('+category.id+');">'+category.title+'</div><div id="DelCat-'+category.id+'" class="delcategory corner" onclick="DelCategory('+category.id+');" title="Удалить">x</div></div>').appendTo('#Category-container');
			$('#DelCat-'+category.id).hide();
			$('#CCat-'+category.id).mouseover(function(){
				$('#DelCat-'+category.id).show();
			}).mouseout(function(){
				$('#DelCat-'+category.id).hide();
			});
		});
	});
}
function AddCategory () {
	var CategoryName = $('#AddCategoryName').val();
	if (CategoryName.length < 2) {
		$('#CategoryError').html('Название вкладки не может быть пустым');
	} else {
		$('#CategoryError').html('<img src="load.gif" /> Загрузка...');
		$.post("response.json", { 'category': CategoryName, 'action': 'category-add' }, function(data){
			if (data.addcat == 'error') {
				$('#CategoryError').html('У тебя уже есть такая вкладка.');
			} else if (data.addcat == 'no') {
				$('#CategoryError').html('Зайди или зарегистрируйся.');
				HideOverlay();
				ShowOverlay('WindowLogin');
			} else {
				$('#AddError').html('Вкладка добавлена.');
				LoadCategory();
				HideOverlay();
			}
		}, "json");
	}
}
function DelCategory ( id ) {
	if ( confirm("Хочешь удалить вкладку?\nВсе закладки этой вкладки будут перенесены во вкладку \"Без категории\"") ) {
		$.post("response.json", { 'id': id, 'action': 'category-del' }, function(data){
			if (data.delcat == 'yes') {
				$('#CCat-'+id).fadeOut('slow');
			}
		}, "json");
	}
}
function MoveBookmark ( id ) {
	$('#MoveCatSelect').html('<option value="0">Без категории</option>');
	$.getJSON("category.json", function(data){
		$.each(data.categories, function(i,category){
			$('<option value="'+category.id+'">'+category.title+'</option>').appendTo('#MoveCatSelect');
		});
	});
	$('#setcat').val(id);
	ShowOverlay('WindowMoveCategory');
}
function SetCategory () {
	var bookmarknum = $('#setcat').val();
	var categorynum = $('#MoveCatSelect').val();
	$.post("response.json", { 'bookmark': bookmarknum, 'category': categorynum, 'action': 'set-category' }, function(data){
		if (data.move == 'yes') {
			LoadBookmark();
			HideOverlay();
		}
	}, "json");
}

function LoadThisTab ( id ) {
	$('.BCat-a').removeClass('BCat-a').addClass('BCat-na');
	$('#BCat-'+id).removeClass('BCat-na').addClass('BCat-a');
	LoadBookmark();
}

function GetID ( str ) {return str.replace(/\D/gi,'')}
