var initDOM = false;

function rateUp(message_id)
{
    if (initDOM)
    {
        $.ajax({
            type: "POST", 
            url: "processing.php", 
            data: {
                'page': 'Wall',
                'action': 'rate_up',         
                'message_id': message_id,
				'wall_state': wall_state,
                'rnd': Math.random(100)
            },
            dataType: "json",
            beforeSend: function(xhr) 
            {
                xhr.setRequestHeader("Cookie", document.cookie);
            },
            success: function(data)
            {
                if (data.success == 1)
                {
                        if (data.rate > 0)
                        {
                            $("#message_rate_"+message_id)
                            .removeClass()
                            .addClass("plus");
                        }
                        else if (data.rate == 0)
                        {
                            $("#message_rate_"+message_id)
                            .removeClass()
                            .addClass("zero");
                        }
                        else if (data.rate < 0)
                        {
                            $("#message_rate_"+message_id)
                            .removeClass()
                            .addClass("minus")
                            .prev()
                            .removeClass()
                            .addClass("minus");
                            data.rate = data.rate * (-1);
                        }                    
                    $("#message_rate_"+message_id).html(data.rate);
                    //Первое голование пользователя
                    if (data.alreadyVoted == 0)
                    {
                        var temp = $("#rate_"+message_id).html();
                        $("#rate_"+message_id)
                        .html("<span>Спасибо за участие.</span>")
                        .fadeOut(1000, function()
                        {
                              $("#rate_"+message_id)
                              .html(temp)
                              .show();
                        });                                               
                    }
                    else
                    {
                        var temp = $("#rate_"+message_id).html();
                        $("#rate_"+message_id)
                        .html("<span>Вы уже голосовали.</span>")
                        .fadeOut(1000, function()
                        {
                              $("#rate_"+message_id)
                              .html(temp)
                              .show();
                        });                        
                    }
                }
                else
                {
                    
                }
            },
            error: function(XMLHttpRequest, textStatus, errorThrown)
            {
            }
        });
    }
}

function rateDown(message_id)
{
    if (initDOM)
    {
        $.ajax({
            type: "POST", 
            url: "processing.php", 
            data: {
                'page': 'Wall',
                'action': 'rate_down',    
                'message_id': message_id,
				'wall_state': wall_state,
                'rnd': Math.random(100)
            },
            dataType: "json",
            beforeSend: function(xhr) 
            {
                xhr.setRequestHeader("Cookie", document.cookie);
            },
            success: function(data)
            {
                if (data.success == 1)
                {                    
                    //Первое голование пользователя
                    if (data.alreadyVoted == 0)
                    {
                        if (data.rate > 0)
                        {
                            $("#message_rate_"+message_id)
                            .removeClass()
                            .addClass("plus");
                        }
                        else if (data.rate == 0)
                        {
                            $("#message_rate_"+message_id)
                            .removeClass()
                            .addClass("zero");
                        }
                        else if (data.rate < 0)
                        {
                            $("#message_rate_"+message_id)
                            .removeClass()
                            .addClass("minus")
                            .prev()
                            .removeClass()
                            .addClass("minus");
                            data.rate = data.rate * (-1);
                        }      
                        $("#message_rate_"+message_id).html(data.rate);                  
                        var temp = $("#rate_"+message_id).html();
                        $("#rate_"+message_id)
                        .html("<span>Спасибо за участие.</span>")
                        .fadeOut(1000, function()
                        {
                              $("#rate_"+message_id)
                              .html(temp)
                              .show();
                        });
                        
                    }
                    else
                    {
                        var temp = $("#rate_"+message_id).html();
                        $("#rate_"+message_id)
                        .html("<span>Вы уже голосовали.</span>")
                        .fadeOut(1000, function()
                        {
                              $("#rate_"+message_id)
                              .html(temp)
                              .show();
                        });                        
                    }                    
                }
                else
                {
                    
                }
            },
            error: function(XMLHttpRequest, textStatus, errorThrown)
            {
            }
        });
    }
}

function reportSpam(message_id)
{
    if (initDOM)
    {
        $.ajax({
            type: "POST", 
            url: "processing.php", 
            data: {
                'page': 'Wall',
                'action': 'report_spam',    
                'message_id': message_id,
				'wall_state': wall_state,
                'rnd': Math.random(100)
            },
            dataType: "json",
            beforeSend: function(xhr) 
            {
                xhr.setRequestHeader("Cookie", document.cookie);
            },
            success: function(data)
            {
                if (data.success == 1)
                {
                    $("#message_"+message_id).html("Сообщение помечено как спам. Спасибо за участие.");
                    $("#all_message_"+message_id)
                    .animate({
                        opacity:"hide", height:"hide"
                    }, 1000);
                }
                else
                {
                    
                }
            },
            error: function(XMLHttpRequest, textStatus, errorThrown)
            {
            }
        }); 
    }
}


function deleteMessage(message_id)
{
    if (initDOM)
    {
        $.ajax({
            type: "POST", 
            url: "processing.php", 
            data: {
                'page': 'Wall',
                'action': 'delete_message',    
                'message_id': message_id,
				'wall_state': wall_state,
                'rnd': Math.random(100)
            },
            dataType: "json",
            beforeSend: function(xhr) 
            {
                xhr.setRequestHeader("Cookie", document.cookie);
            },
            success: function(data)
            {
                if (data.success == 1)
                {
                    $("#delete_message_"+message_id)
                    .html("Отменить удаление.")
                    .attr("href", "javascript:restoreMessage("+message_id+")");
                }
                else
                {
                    
                }
            },
            error: function(XMLHttpRequest, textStatus, errorThrown)
            {
            }
        });        
    }
}

function answer(message_id)
{
    if (initDOM)
    {
        $("#answer_text").val("");
        $("#sendAnswer").attr("href", "javascript:sendAnswer("+message_id+")");
        $("#answer_box").slideDown(700, function()
        {
			if (message_id != 0)
				addQuote(message_id);
            $("#answer_text").focus();
			if ($("#answer_text").val() != "")
				$("#answer_text").val($("#answer_text").val()+"\r\n");
        }); 
    }
}

function addQuote(message_id)
{
    if (initDOM)
    {
        var currText = $("#answer_text").val();
        var quoteText = "";
        
        quoteText += prepareTags($("#message_"+message_id));
        $("#answer_text").val(quoteText + currText);

    }
}

function addQuote_old(message_id)
{
    if (initDOM)
    {
        var currText = $("#answer_text").val();
        var quoteText = "[quote]";
        $("#message_"+message_id).children().each(function()
        {
            quoteText += "[quote]" + $(this).text();
            quoteText += prepareTags($(this));
            quoteText += "[/quote]";
        });
        var elem = $("#message_"+message_id);
        elem = elem.clone();
        elem.children().remove();
        quoteText += elem.text() + "[/quote]";
        $("#answer_text").val(quoteText + currText);

    }
}

function prepareTags($elem)
{
    var tagName = $elem.get(0).tagName;
    if (tagName != "DIV")
        return "";
        
    var quoteText = "";
    $kids = $elem.children();
    var kidsLegth = $kids.length;
    quoteText += "[quote]"; 
               
    $kids.each(function()
    {
        quoteText += prepareTags($(this));
    });
    
    $elem = $elem.clone();
    $elem.children().remove();
    quoteText += $elem.text();
    quoteText += "[/quote]";
    return quoteText; 
}

var is_sending = false;
function sendAnswer(message_id)
{
    if (!initDOM)
		return;
	if (is_sending)
		return;
	
	is_sending = true;
	
	$("#wall_mess_ajax").show();
	
	var message = $("#answer_text").val();
	message = $.trim(message);
	if (message.length == 0)
	{
		//TODO: popup error window
		alert("Введите сообщение.");
		return;
	}
	var send_data;
	//Стена фотографии
	if (wall_state == 4)
		send_data = {'page': 'Wall',
			'action': 'add',    
			'text': message,
			'prev_message': message_id,
			'wall_state': wall_state,
			'photo_id': glob_photo_id,
			'rnd': Math.random(100)};
    //Компания            
    else if (wall_state == 5)
        send_data = {'page': 'Wall',
            'action': 'add',    
            'text': message,
            'prev_message': message_id,
            'wall_state': wall_state,
            'company_id': company_data.company_id,
            'rnd': Math.random(100)};   
//События            
    else if (wall_state == 8)
        send_data = {'page': 'Wall',
            'action': 'add',    
            'text': message,
            'prev_message': message_id,
            'wall_state': wall_state,
            'event_id': event_data.event_id,
            'rnd': Math.random(100)};   
	//фото new            
    else if (wall_state == 9)
        send_data = {'page': 'Wall',
            'action': 'add',    
            'text': message,
            'prev_message': message_id,
            'wall_state': wall_state,
            'photo_id': photo_data.photo_id,
            'rnd': Math.random(100)};   
    //Товар
    else if (wall_state == 6)
        send_data = {'page': 'Wall',
            'action': 'add',    
            'text': message,
            'prev_message': message_id,
            'wall_state': wall_state,
            'item_id': company_data.item_id,
            'rnd': Math.random(100)};                      
	else
		send_data = {'page': 'Wall',
			'action': 'add',  
			'receiver': $("#wall").attr("userid"),				
			'text': message,
			'prev_message': message_id,
			'wall_state': wall_state,
			'rnd': Math.random(100)};
	$.ajax({
		type: "POST", 
		url: "processing.php", 
		data: send_data,
		dataType: "json",
		beforeSend: function(xhr) 
		{
			xhr.setRequestHeader("Cookie", document.cookie);
		},
		success: function(data)
		{
			cancelAnswer();
            data = eval(data);
			if (data.success == 1)
			{
				$("#wall_items").html(data.content);
                $("#no_message_on_the_wall").html("Написать сообщение");
			}
			else
			{
				
			}
		},
		error: function(XMLHttpRequest, textStatus, errorThrown)
		{
			is_sending = false;
			$("#wall_mess_ajax").hide();
		}
	});
}

function cancelAnswer()
{
    if (initDOM)
    {
        $("#answer_text").val("");
        $("#answer_box").slideUp(700);         
		is_sending = false;
		$("#wall_mess_ajax").hide();
    }
}

function restoreMessage(message_id)
{
    if (initDOM)
    {
		$("#wall_ajax_loader").show();
		
        $.ajax({
            type: "POST", 
            url: "processing.php", 
            data: {
                'page': 'Wall',
                'action': 'restore_message',    
                'message_id': message_id,
				'wall_state': wall_state,
                'rnd': Math.random(100)
            },
            dataType: "json",
            beforeSend: function(xhr) 
            {
                xhr.setRequestHeader("Cookie", document.cookie);
            },
            success: function(data)
            {
				$("#wall_ajax_loader").hide();
                
				if (data.success == 1)
                {
                    $("#delete_message_"+message_id)
                    .html("Удалить.")
                    .attr("href", "javascript:deleteMessage("+message_id+")");
                }
                else
                {
                }
            },
            error: function(XMLHttpRequest, textStatus, errorThrown)
            {
				$("#wall_ajax_loader").hide();
            }
        });          
    }
}

function wallContentLoaded(content)
{
	$("#wall_ajax_loader").hide();
	$("#wall_items").html(content);
}

$(document).ready(function()
{
    //Enable all functions
    initDOM = true;

    var hash = window.location.hash;
    hash = hash.substring(1);
    if (hash != "wall")
      $("#answer_box").hide();
    else
      $("#answer_box").focus();
    
    $("div .sorting > a").live('click', function()
    {
		$("#wall_ajax_loader").show();
		
        var index = $("div .sorting > *[id]").index(this);
        index %= 4;
        
        var elem = $("div .sorting > span[id]");
        var id = elem.get(0).id;
        elem.outerHTML('<a href ="#'+id+'" id="'+id+'">'+elem.html()+'</a>');
       
        var clicked_id = $(this).attr("id");
        $(".sorting a[id='"+clicked_id+"']").outerHTML('<span class="sel" id="'+clicked_id+'">'+$(this).html()+'</span>');
   
        $.cookie("ifly_wall_sort", index);
        
        $.ajax({
            type: "POST", 
            url: "processing.php", 
            data: {
                'page': 'Wall',
                'action': 'get',    
                'sort_type': index,
                'wall_state': wall_state,   
                'receiver': $("#wall").attr("userid"),
                'rnd': Math.random(100)
            },
            //dataType: "json",
            beforeSend: function(xhr) 
            {
                xhr.setRequestHeader("Cookie", document.cookie);
            },
            success: function(data)
            {
				$("#wall_ajax_loader").hide();
                $("#wall_items").html(data);
            },
            error: function(XMLHttpRequest, textStatus, errorThrown)
            {
				$("#wall_ajax_loader").hide();
            }
        });
        
        return false;
    });
});
