$(function(){
    $("#frmTag").submit(function(){
        addtag($("#tag-input").val(),$("#title_id").html(),$("#nanapi_ajax_token").html());
        return false;
    });

    $("#comment_submit").click(function(){
        addcomment($("#comment-input").val(),$("#title_id").html(),$("#nanapi_ajax_token").html(),$("#userinfo_user_id").html());
        return false;
    });

    $("#showComment").click(function(){
        $("#ajax_loader_comment").show();
        showcomment($("#title_id").html(),$("#nanapi_ajax_token").html());
        return false;
    });

    $("#report").click(function(){
        report($("#userinfo_user_id").html(),$("#title_id").html(),$("#nanapi_ajax_token").html());
        return false;
    });

    $("#add_favorite").click(function(){
        addFavorite($("#userinfo_user_id").html(),$("#title_id").html(),$("#nanapi_ajax_token").html());
    });

    $("#add_favorite_bottom").click(function(){
        addFavorite($("#userinfo_user_id").html(),$("#title_id").html(),$("#nanapi_ajax_token").html());
    });

    $(document).ready(function(){
        $("#vote_g_submit").click(function(){
            vote($("#title_id").html(),0,$("#nanapi_ajax_token").html());
            return false;
        });
        
        $("#vote_b_submit").click(function(){
            vote($("#title_id").html(),1,$("#nanapi_ajax_token").html());
            return false;
        });
    })

    $(document).ready(function(){
        pv($("#title_id").html());
        rate($("#title_id").html());
        checkFavoriteStatus($("#title_id").html());
        checkFavoriteCount($("#title_id").html());
        userinfo($("#userinfo_user_id").html());
        gettoken();
        showcomment($("#title_id").html(),$("#nanapi_ajax_token").html(),$("#userinfo_user_id").html());
        return false;
    })

});

function deleteComment(userinfo_user_id,title_id,comment_id,line_id){
    if(window.confirm('コメントを削除してもよろしいですか？')){
        $.ajax({
            dataType: "jsonp",
            callback: "callback",
            data: {
                "userinfo_user_id" : userinfo_user_id,
                "title_id" : title_id,
                "comment_id" : comment_id
            },
            url: "http://nanapi.jp/comments/delete",

            success: function (data) {

                switch (data.status){
                    case "0":
                        alert("コメントを削除しました！");
                        $("#cid-" + line_id).fadeOut("slow");
                        break;
                    case "1":
                        alert("すでに削除されています！");
                        break;
                    case "8":
                        if(window.confirm('ログインが必要です。ログインしますか？')){
                            location.href = "http://nanapi.jp/login/?u=http://r.nanapi.jp/" + title_id + "/";
                        }
                        break;
                    default:
                        alert("システムエラーです");
                        break;
                }
            }
        });
    }
}

function addFavorite(userinfo_user_id,title_id,nanapi_ajax_token){
    $.ajax({
        dataType: "jsonp",
        callback: "callback",
        data: {
            "title_id" : title_id,
            "userinfo_user_id" : userinfo_user_id,
            "nanapi_ajax_token" : nanapi_ajax_token
        },
        url: "http://nanapi.jp/favorites/add",

        success: function (data) {
            switch (data.status){
                case "0":
                    alert("お気に入りへ追加しました！");
                    $("#favorite_area").addClass("favorite favorite-active");
                    $("#add_favorite_bottom_message_area").addClass("favorite favorited");

                    /* */
                    $("#add_favorite").removeAttr("title").attr("title","お気に入りから外す");
                    $("#add_favorite_bottom").removeAttr("title").attr("title","お気に入りから外す");
                    break;
                case "1":
                    alert("お気に入りから削除しました！");
                    $("#favorite_area").removeClass().addClass("favorite");
                    $("#add_favorite_bottom_message_area").removeClass().addClass("favorite");

                    /* */
                    $("#add_favorite").removeAttr("title").attr("title","お気に入りに追加");
                    $("#add_favorite_bottom").removeAttr("title").attr("title","お気に入りに追加");
                    break;
                case "8":
                    if(window.confirm('ログインが必要です。ログインしますか？')){
                        location.href = "http://nanapi.jp/login/?u=http://r.nanapi.jp/" + title_id + "/";
                    }
                    break;
                case "2":
                    alert("登録数の上限に達しています！");
                    break;
                default:
                    alert("システムエラーです");
                    break;
            }
        }
    });
}

function checkFavoriteStatus(title_id){
    $.ajax({
        dataType: "jsonp",
        callback: "callback",
        data: {
            "title_id" : title_id
        },
        url: "http://nanapi.jp/favorites/status",
        success: function (data) {
            if (data.status == 1){
                $("#favorite_area").addClass("favorite favorite-active");
                $("#add_favorite").removeAttr("title").attr("title","お気に入りから外す");                
                $("#add_favorite_bottom").removeAttr("title").attr("title","お気に入りから外す");
                $("#add_favorite_bottom_message_area").addClass("favorite favorited");
            }
        }
    });
}

function checkFavoriteCount(title_id){
    $.ajax({
        dataType: "jsonp",
        callback: "callback",
        data: {
            "title_id" : title_id
        },
        url: "http://a.nanapi.jp/favoriteinfo/",
        success: function (data) {
            $("#favorite_count").empty().append(data.favorite_count);
        }
    });
}

function gettoken(){
    $.ajax({
        dataType: "jsonp",
        callback: "callback",
        url: "http://a.nanapi.jp/createtoken/",
        success: function (data) {
            $("#nanapi_ajax_token").empty().append(data.nanapi_ajax_token);
        }
    });
}

function report(userinfo_user_id,title_id){
    $.ajax({
        dataType: "jsonp",
        callback: "callback",
        data: {
            "title_id" : title_id,
            "userinfo_user_id" : userinfo_user_id
        },
        url: "http://nanapi.jp/reports/post",

        success: function (data) {
            $("#report_area").empty().fadeIn("slow").append(data.message);
        }
    });    
}

function userinfo(userinfo_user_id){
    $.ajax({
        dataType: "jsonp",
        callback: "callback",
        data: {
            "userinfo_user_id" : userinfo_user_id
        },
        url: "http://a.nanapi.jp/userinfo/",
        success: function (data) {
            $("#user-icon").show().append("<img onerror='this.src=\"http://s.nanapi.jp/c/img/noimage/small.png\"' src='" + data.usericon + "'>");
            $("#user-name").show().append("<a href='http://nanapi.jp/member/'>" + data.nickname + "</a>");
        }
    });
}

function pv(title_id){
    $.ajax({
        dataType: "jsonp",
        callback: "callback",
        data: {
            "title_id" : title_id
        },
        url: "http://a.nanapi.jp/pv/",

        success: function (data) {
            $("#pv").empty().append(data.pv);
        }
    });
}

function rate(title_id){
    $.ajax({
        dataType: "jsonp",
        callback: "callback",
        data: {
            "title_id" : title_id
        },
        url: "http://a.nanapi.jp/rate/",

        success: function (data) {
            $("#rate").show().append(data.rate);
            $("#good_rate").show().append(data.good);
            $("#bad_rate").show().append(data.bad);
        }
    });
}

/*
 * 投票機能
 */
function vote(title_id,type,token){
    $.ajax({
        dataType: "jsonp",
        callback: "callback",
        data: {
            "type": type,
            "title_id" : title_id,
            "token" : token
        },
        url: "http://nanapi.jp/rates/post/",

        success: function (data) {
            $("#votes").empty();
            if (data.status == 0 ){
                $("#vote_message_area").fadeIn("slow").append("投票しました");
            } else if (data.status == 2){
                $("#vote_message_area").fadeIn("slow").append("2重投稿はできません");
            } else if (data.status == 8){
                $("#vote_message_area").fadeIn("slow").append("<a href='http://nanapi.jp/login/?http://r.nanapi.jp/ " + title_id + "/'>ログイン</a>してください");
            }
        }
    });
    
}

/*
 * コメント表示
 */
function showcomment(title_id,token,userinfo_user_id){
    $.ajax({
        dataType: "jsonp",
        callback: "callback",
        data: {
            "title_id" : title_id,
            "token" : token
        },
        url: "http://nanapi.jp/comments/show/",

        success: function (data) {
            $("#showComment").hide();
            $("#show_message").empty();
            $("#cid-new").hide();

            if (data.message){
                $("#show_message").append(data.message);
            } else {
                $("#comments").append();
                var count = 1 ;
                for (var i in data.comments){
                    var userdata = (data.comments[i].username) ? data.comments[i].username : data.comments[i].user_id ;
                    
                    var commentid   = '<li id="cid-' + count + '" class="item clearfix nanapi">';
                    var id = '<span id="comment-id-' + count + '" style="display:none">' + data.comments[i].id + '</span>'
                    var userimage   = '<div class="user-image"><div><a href="http://nanapi.jp/member/' +  userdata + '"><img onerror=this.src="http://s.nanapi.jp/c/img/noimage/medium2.png" src="' +  data.comments[i].image +'" alt="" /></a>';
                    if (data.comments[i].user_id == userinfo_user_id) {
                        userimage   += '<a href="javascript:void(0)" onclick="deleteComment(' + userinfo_user_id + ',' + title_id + ',' + data.comments[i].id + ',' + count + ')" style="font-size:11px">[x]</a>';
                    }
                    userimage += '</div></div>';
                    var comment     = '<div class="content"><div class="comment"><p><span class="comment-id">#' + count + '</span>' + data.comments[i].comment + '</p></div>' ;
                    var username = (data.comments[i].sex == 0) ?
                        '<ul class="meta"><li class="user-name male"><a href="http://nanapi.jp/member/'  + userdata + '">' + data.comments[i].nickname + '</a></li>' :
                        '<ul class="meta"><li class="user-name female"><a href="http://nanapi.jp/member/'  + userdata + '">' + data.comments[i].nickname + '</a></li>';
                    var datetime    = '<li class="datetime">' + data.comments[i].created ;
                    datetime   += '</li></ul></div></li>';
                    $("#show_message").append(commentid + id + userimage + comment + username + datetime);
                    count ++ ; 
                }
            }
        }
    });
}

/*
 * コメント追加
 */
function addcomment(comment,title_id,token,userinfo_user_id){
    $.ajax({
        dataType: "jsonp",
        callback: "callback",
        data: {
            "comment": comment,
            "title_id" : title_id,
            "token" : token,
            "userinfo_user_id" : userinfo_user_id
        },
        url: "http://nanapi.jp/comments/post/",

        success: function (data) {
            if ( data.status == 0 ){
                $("#comment-input").hide();
                $("#no_comment_message").hide();
                $("#label_message").hide();
                
                var commentid   = '<li id="cid-new" class="item clearfix nanapi">';
                var userimage   = '<div class="user-image"><div><a href="#"><img onerror=this.src="http://s.nanapi.jp/c/img/noimage/medium2.png" src="' +  data.comments.image +'" alt="" /></a></div></div>';
                var comment     = '<div class="content"><div class="comment"><p>' + data.comments.comment + '</p></div>' ;
                var userlink = (data.comments.username) ? data.comments.username : data.comments.user_id ;
                var username = (data.comments.sex == 0) ? 
                    '<ul class="meta"><li class="user-name male"><a href="http://nanapi.jp/member/'  + userlink + '">' + data.comments.nickname + '</a></li>' :
                    '<ul class="meta"><li class="user-name female"><a href="http://nanapi.jp/member/'  + userlink + '">' + data.comments.nickname + '</a></li>';
                var datetime    = '<li class="datetime">' + data.comments.created  + '</li></ul></div></li>';
                $("#show_message_return").fadeIn("slow").append(commentid + userimage + comment + username + datetime);
                $("#comment_button").empty();
                $("#comment_submit_message_area").empty().fadeIn("slow").append(data.message);
            } else if (data.status == 1){
                $("#comment_submit_message_area").empty().fadeIn("slow").append(data.message);
            }
        }
    });
}

/*
 * タグ追加
 */
function addtag(tag,title_id,token) {
    $.ajax({
        dataType: "jsonp",
        callback: "callback",
        data: {
            "tag": tag,
            "title_id" : title_id,
            "token" : token
        },
        url: "http://nanapi.jp/tags/post/",
        
        success: function (data) {
            if (data.status == 0){
                $("#tag-input").hide();
                $("#tag_submit").hide();
                $("#tag_sumit_message_area").empty();

                var append_message = "" ;
                if ( 0 in data.submit_tags){
                    for (var i in data.submit_tags){
                        append_message += '<p><a href="http://nanapi.jp/search/keyword:' + data.submit_tags[i] + '">' + data.submit_tags[i] + '</a>を追加しました！</p>';
                    }
                }
                
                if ( 0 in data.error_tags){
                    for (var i in data.error_tags){
                        append_message += '<p><a href="http://nanapi.jp/search/keyword:' + data.error_tags[i] + '">' + data.error_tags[i] + '</a>はすでに登録されています！</p>';
                    }
                }
                
                $("#tag_sumit_message_area").fadeIn("slow").append(append_message);
            } else if (data.status == 2){
                $("#tag_sumit_message_area").empty().fadeIn("slow").append('同時に登録できるタグは10個までです。');
            } else if (data.status == 3){
                $("#tag_sumit_message_area").empty().fadeIn("slow").append('タグの長さは最大で30文字までです');
            } else if (data.status == 4){
                $("#tag_sumit_message_area").empty().fadeIn("slow").append('タグに不正な文字がふくまれています');
            } else if (data.status == 8){
                $("#tag_sumit_message_area").empty().fadeIn("slow").append('<a href="http://nanapi.jp/login/?u=http://r.nanapi.jp/' + title_id + '/">ログイン</a>してください');
            }
        }
    });
}

function selectTab(tabid){
    $("#tabmenu").children().removeClass("current");
    $("#tab-"+tabid).addClass("current");
    $("#recipe-lists").children().hide();
    $("#"+tabid).show();
}

function selectAll(){
    $("#tabmenu").children().removeClass("current");
    $("#tab-recent-recipe-list_01").addClass("current");
    $("#recipe-lists").children().hide();
    $("#tab-recent-recipe-list_01").html('<strong>最近の投稿</strong>');
    $("#tab-recent-recipe-list_02").html('<a href="javascript:void(0)">このカテゴリーの投稿</a>');
    $("#recent-recipe-list_01").fadeIn("fast");
}

function selectCategory(){
    $("#tabmenu").children().removeClass("current");
    $("#tab-recent-recipe-list_02").addClass("current");
    $("#recipe-lists").children().hide();
    $("#tab-recent-recipe-list_01").html('<a href="javascript:void(0)">最近の投稿</a>');
    $("#tab-recent-recipe-list_02").html('<strong>このカテゴリーの投稿</strong>');
    $("#recent-recipe-list_02").fadeIn("fast");
}

function check(radio) {
    form = radio.form;
    form.val.value = radio.value;
}

function checkradio( disp ) {
  document.getElementById('action-area').style.display = disp;
}

