/**
 * Created by IntelliJ IDEA.
 * User: chris
 * Date: Jun 17, 2010
 * Time: 11:21:23 AM
  */

function clear(id)
{
        $('#j_comment_testarea'+id).removeClass('comment_expand_textarea');
        $('#j_comment_testarea'+id).val('');
        $('#danger').addClass('comment_display_none');
        $('.j_comment_container').show();
        $('.comment_form_container').removeClass('danger_area');
}
function clear_all()
{
    $('div[id^=j_form]').each(function(){
            $(this).text('');
    });
    clear('');
}

$(function() {
    $('#toggle_replies').click(function(event){
        event.preventDefault();
        $('div[id^=replies]').toggleClass('comment_display_none');
    });
    $('.comment_box').live('click', function(event) {
        clear_all();
        var id = $(this).attr('id');
        var commentid = $(event.target).parents(".comment").attr("id").split('_');
        var threadid = $(event.target).parents(".j_threadid").attr("id");
        var entryid = $('#comment_entryid').val();
        var userid = $('#comment_userid').val();

        var at_username = '@'+$('#username'+id).text()+': ';
        $('<div class="comment_form_container" id="j_comment_form_container'+id+'">'+
            '<div class="comment_form_label">Enter Comments</div>'+
            '<div id="j_at_username'+id+'"></div>'+
            '<form id="j_form" method="post" action="" class="form">'+
                '<input type="hidden" value="'+commentid[1]+'" name="commentid" />'+
                '<input type="hidden" value="'+entryid+'" name="entryid" />'+
                '<input type="hidden" value="'+userid+'" name="userid" />'+
                '<input type="hidden" value="'+at_username+'" name="at_username" />'+
                '<input type="hidden" id="threadid" value="'+threadid+'" name="threadid">'+
                '<input type="hidden" id="parentid" value="'+id+'" name="parentid">'+
                '<div class="comment_area_background">'+
                    '<textarea id="j_comment_testarea'+id+'" class="comment_textarea j_comment_textarea" name="comments"></textarea>'+
                    '<div class="comment_button_container">'+
                        '<input type="submit" value="Submit" class="comment_submit j_comment_submit" />'+
                        '<input id="'+id+'" class="reset" type="reset" value="Cancel" class="" />'+
                    '</div>'+
                '</div>'+
            '</form>'+
        '</div>').fadeIn(500).appendTo("#j_form_placeholder"+id);

        $('<div id="danger" class="j_danger'+id+' grid_16 comment_display_none margins">'+
          '<div id="warning" class="block">'+
              '<div id="j_comment_error" class="error j_comment_error'+id+'"></div>'+
          '</div>'+
        '</div>').appendTo("#j_form_placeholder"+id);

        $('.j_comment_container').hide();
        $('#j_at_username'+id).text(at_username);
        $('#j_comment_testarea'+id).addClass('comment_expand_textarea').focus();
        event.stopImmediatePropagation();
        return false;
    });
    $('.j_comment_textarea').live('click', function(event) {
       $(this).addClass('comment_expand_textarea');
    });
    $('#reset').click(function() {
        clear('');
    });
    $('.reset').live('click', function() {
        var id = $(this).attr('id');
        $('#j_comment_form_container'+id).fadeOut(200, function(){ $(this).remove(); clear_all();});
    });
    $(".remove").live('click', function(event) {
        event.preventDefault();
        var keys = $(this).attr('id');
        var key = keys.split('_');
        var data = "id="+key[2]+"&threadid="+key[0]+"&parentid="+key[1];
        $.ajax({
                type: "POST",
                url: "comment/del/",
                dataType:"html",
                data: data,
                cache: false,
                success: function(ret) {
                    var data = JSON.parse(ret);

                    if (data.error==undefined) {
                        if (key[1]==0)
                        {
                            $('#thread_'+key[0]).fadeOut(1500);
                        }
                        else
                        {
                            $('#comment_'+key[2]).fadeOut(1500);
                        }
                    }
                }
//                ,
//                error:function (xhr, ajaxOptions, thrownError){
//                    alert(xhr.status);
//                    alert(thrownError);
//                }
			});
    });
	$(".form").livequery('submit', function(event) {
        
        var dataString = $(this).serialize();
        var id = $('#parentid').val();

		if(dataString=='')
		{
			alert('Your Internet just crashed! Leave for the future immediately.');
		}
		else
		{
			$.ajax({
                type: "POST",
                url: "comment/add/",
                dataType:"html",
                data: dataString,
                cache: false,
                success: function(ret){
                    var data = JSON.parse(ret);

                    if (data.error==undefined)
                    {
                        if (data.parentid==0)
                        {
                            $('#new0').after($(data.comment).fadeIn(2500));
                        }
                        else
                        {
                            $('#replies_'+data.threadid).append($(data.comment).fadeIn(2500));
                        }

                        $("#no_comments").remove();
                        clear_all();
                        $('html, body').animate({scrollTop: ($('#added'+data.commentid).offset().top)-10},1000);
                    }
                    else
                    {
                        if (id==undefined)
                        {
                            $('.comment_form_container').addClass('danger_area');
                            $('#j_comment_error').text(data.error);
                            $('#danger').removeClass('comment_display_none');
                        }
                        else
                        {
                            $('#j_comment_form_container'+id).addClass('danger_area');
                            $('.j_comment_error'+id).text(data.error);
                            $('.j_danger'+id).removeClass('comment_display_none');
                        }
                    }
                }
//                ,
//                error:function (xhr, ajaxOptions, thrownError){
//                    alert(xhr.status);
//                    alert(thrownError);
//                }
			});
		}

        event.preventDefault();
        event.stopImmediatePropagation();
        return false;
	});
});