function d(a) {console.log(a);}

function byId(id) {return document.getElementById(id);}
function gid(id) {return document.getElementById(id);}
function showHide(id) {byId(id).style.display = (byId(id).style.display)?'':'none';}
function show(id) {byId(id).style.display = '';}
function hide(id) {byId(id).style.display = 'none';}

// For register pages
function mayRegister(obj)
{
    if($(obj).is(':checked')) {
        $("#regButt").removeAttr('disabled');
    } else {
        $("#regButt").attr('disabled', 'disabled');
    }
}
// End for register pages


function add2favour(commId) {
    $.post('/post/add_to_favourites', {post_id:commId}, function(res, status) {
		if("ok" != res.status) return false;
		if ("minus" == res.type) {
			$("#favAdd" + res.postId).parent().removeClass("fav_del").addClass("fav_add");
//			sMessage = ("events" == res.mode)?"Пойти на встречу":"Добавить в избранное";
			sMessage = "Добавить в избранное";
		} else if ("plus" == res.type) {
			$("#favAdd" + res.postId).parent().removeClass("fav_add").addClass("fav_del");
//			sMessage = ("events" == res.mode)?"Не идти на встречу":"Удалить из избранного";
			sMessage = "Удалить из избранного";
		} else {
			return false;
		}
		$("#favAdd" + res.postId).html(sMessage + " <span>" + res.count + "</span>");
	});
}

User = {friend: false};
User.toggleFriend = function(el, friendId)
{
	if(User.friend) return false;
    User.friend = $(el);
    var type = (User.friend.hasClass("remove")?'del':'add');

    $.post("/user/friendship", {friendId: friendId, type: type},
		function(res, status) {
			if(1 == res.result && "success" == status) {
				if('add' == res.type) {
					User.friend.text("Удалить из друзей");
					User.friend.addClass('remove');
				} else {
					User.friend.text("Добавить в друзья");
					User.friend.removeClass('remove');
				}
			}
            User.friend = false;
		}, "json");
	return false;
}

User.unfriend = function(el, friendId)
{
	if(User.friend) return false;
    if(!confirm("Вы уверены что хотите удалить пользователя из списка друзей?")) {
        return false;
    }

    User.friend = $(el);

    $.post("/user/friendship", {friendId: friendId, type: "del"},
		function(res, status) {
			if(1 != res.result || "success" != status) return false;
            User.friend.parent().remove();
            User.friend = false;
		}, "json");
	return false;
}

User.ban = function(userId, anchor)
{
    var link = anchor;
    $.post('/user/ban', {user_id:userId}, function(res){
        var elm = byId('userBan' + res.userId);
        if (res.mode) {
            if(!link) {
                byId('userBan' + res.userId).innerHTML = "<span>разбанить автора</span>";
            } else {
                $("a.userBan" + res.userId + " span").html("разбанить автора");
            }
        } else {
            if(!link) {
                byId('userBan' + res.userId).innerHTML = "<span>забанить автора</span>";
            } else {
                $("a.userBan" + res.userId + " span").html("забанить автора");
            }
        }
    }, 'json');
    return false;
};


Preferences = {}
Preferences.save = function(formEl)
{
    var $formEl = $(formEl);
    $formEl.find('input[type="submit"]').attr("disabled", "disabled");
    $.post($formEl.attr("action"), $formEl.formSerialize(), function(res, status){
        if(res.errors) {
//            var str = "";
//            for(key in res.errors) {
//                str += key + " - " + res.errors[key] + "\n";
//            }
            alert("Ошибка. Не все параметры выбраны.");
        } else {
            alert("Изменения успешно сохранены.");
        }
        $formEl.find('input[type="submit"]').removeAttr("disabled");
    }, 'json');
    return false;
}

Preferences.changePassword = function(formEl)
{
    var $formEl = $(formEl);
    $formEl.find('input[type="submit"]').attr("disabled", "disabled");
    $.post($formEl.attr("action"), $formEl.formSerialize(), function(res, status){
        $formEl.find('input[type="submit"]').removeAttr("disabled");
        if("ok" == res.status) {
            alert(res.text);
        } else {
            var str = "";
            for(key in res.errors) {
                str += res.errors[key] + "\n";
            }
            alert(str);
        }
    }, 'json');
    return false;
}


function friendAddRemove(friendId)
{
	var type = ($("#friendManipulate").attr('class') == "add_friend"?"add":"del");

	$.post("/user/friendship", {friendId: friendId, type: type},
		function(res, status) {
			if(1 == res.result && "success" == status) {
				$object = $("#friendManipulate");
				if('add' == res.type) {
					$object.text("Удалить из друзей");
					$object.addClass('remove');
				} else {
					$object.text("Добавить в друзья");
					$object.removeClass('remove');
				}
			}
		}, "json");
	return false;
}

function showTexts(mode)
{
	if('full' == mode) {
		$(".postText").show();
		$(".post_social").show();
		$(".filtermenu li.first").removeClass("active");
		$(".filtermenu li.last").addClass("active");
	} else if('small' == mode) {
		$(".postText").hide();
		$(".post_social").hide();
		$(".filtermenu li.last").removeClass("active");
		$(".filtermenu li.first").addClass("active");
	}
}


function ctrlEnter(event, formElem)
{
    if(((event.ctrlKey)||(event.metaKey)) && ((event.keyCode == 0xA)||(event.keyCode == 0xD)))
    {
        comment.add();
        return false;
    }
}

function ctrlEnterSubmit(event, formEl)
{
    if(((event.ctrlKey)||(event.metaKey)) && ((event.keyCode == 0xA)||(event.keyCode == 0xD)))
    {
        formEl.submit();
        return false;
    }
}



function initForm(id)
{
    self = gid(id);

    for(i = 0; i < self.elements.length; i++) {
        var element = self.elements[i];
        $(element).blur(function(){
            if('' == this.value) this.value = $(this).attr('title');
        }).focus(function(){
            if($(this).attr('title') == this.value) this.value = '';
        });
        if('' == element.value) element.value = $(element).attr('title');
    }
}

function beforeSubmitForm(id, onlyClear, types)
{
    if(typeof(types) == "undefined") {
        types = new Array();
    }
    types.push('text');
    self = gid(id);
    for(i = 0; i < self.elements.length; i++) {
        var element = self.elements[i];
        if(-1 === types.indexOf(element.type)) continue;
        //if('text' != element.type) continue;
        if('' == element.value || $(element).attr('title') == element.value) {
            if(!onlyClear) {
                $(element).focus();
                return false;
            } else {
                element.value = '';
            }
        };
    }
    return true;
}

Post = {};
Post.rssApply = function(postId) 
{
    $.post('/post/rss', {post_id: postId}, function(data) {
        if (1 == data) {
            $("a[post='"+postId+"'] span").text('убрать из rss');
        } else {
            $("a[post='"+postId+"'] span").text('добавить в rss');
        }
    });
    return false;
}


Blogs = {el: false};
Blogs.subscribe = function(nBlogId, el)
{
    if(false != Blogs.el) return false;
    Blogs.el = $(el);
    $.post("/blogs/subscribe/" + nBlogId, {}, function(res) {
        if("ok" != res.status) return false;
        if(Blogs.el.hasClass("sb_on")) {
            Blogs.el.removeClass("sb_on").addClass("sb_off").find("span").html("Отписаться");
        } else {
            Blogs.el.removeClass("sb_off").addClass("sb_on").find("span").html("Подписаться");
        }
        Blogs.el = false;
    }, "json");
    return false;
}

Anons = {id: false};
Anons.next = function(id)
{
    $.post("/blogs/view_anons/next", {id:Anons.id}, function(res) {
        if("ok" != res.status) return false;
        byId("anonsText").innerHTML = res.text;
        Anons.id = res.id;
        show("aLPrev");
        if(res.last) hide("aLNext");
    }, 'json');
    return false;
}

Anons.prev = function(id)
{
    $.post("/blogs/view_anons/prev", {id:Anons.id}, function(res) {
        if("ok" != res.status) return false;
        byId("anonsText").innerHTML = res.text;
        Anons.id = res.id;
        show("aLNext");
        if(res.last) hide("aLPrev");
    }, 'json');
    return false;
}

Anons.close = function()
{
    if(!confirm("Вы уверены?")) return false;
    $.post("/blogs/view_anons/close", {}, function(res) {
        if("ok" != res.status) return false;
        hide("anonsBlock");
    }, 'json');
    return false;
}
