var currentCiteLink = null;
var busyCiting = false;

$(function(){
	// When sender or recipient name is clicked:
	$("a.openMessageLink").click(
        function(event){
            var event = event || window.event;
			var eventElement = event.target || event.srcElement;
            addPopup(event);
            var elementNumber = eventElement.id.substr(eventElement.id.lastIndexOf("_"));
            $("#replyMsgId").val("");
            $.getJSON(
				contextRoot + "/secure/showUserInfo?membernumber=" + $("#" + eventElement.id + " ~ input").val(),
				function(data){
                    var JSONCommentResult = eval(data);
                    if (JSONCommentResult.msgSendUserId == "null") {
                        popupWin.text(1, "Det går inte att skicka meddelande till användaren", "300", "Användaren finns inte kvar i systemet");
						popupWin.showWin();
					} else {
						$("#recipientUserId").val(JSONCommentResult.msgSendUserId);
						$("#msgSendUsername").html(JSONCommentResult.msgSendUsername);
						if(JSONCommentResult.msgSendPortalComment == null){
							$("#msgSendPortalComment").html("Det finns ingen beskrivning för " + JSONCommentResult.msgSendUsername);
						} else {
							$("#msgSendPortalComment").html(JSONCommentResult.msgSendPortalComment);
						}
						showFormPopup(event, 'sendMessagePopupDiv');
					}
				}
			)
			return false
		}
	)

    $(".citeBox").css("display", "");
    $(".citeBox").hide();

    parseCommentToCiteBox($("dd[id^='commentDataText']"));
    
    //$("dd[id^='bookableDD_" + memberNr + "']")
    $(".citeLink").click(
        function(event){
            var event = event || window.event;
			var eventElement = event.target || event.srcElement;
            if(!busyCiting){
                busyCiting = true;
                if(currentCiteLink != null){
                    if(currentCiteLink.id == eventElement.id){
                        stopCitingMessage(eventElement, false);
                    } else {
                        stopCitingMessage(eventElement, true);
                    }
                } else {
                    citeMessage(eventElement);
                }
            }
        }
    )

});

function parseCommentToCiteBox(commentElements){
    var tmpId;
    var tmpText;
    var tmpIndex;
    var comment;
    var cite;
    for(var i = 0; i < commentElements.length; i ++){
        tmpId = (commentElements[i].id).substr("commentDataText".length);
        tmpText = jQuery.trim($("#commentDataText" + tmpId).html());
        tmpIndex = tmpText.indexOf("[/citat]");
        if(tmpIndex > -1){
            comment = tmpText.substr(tmpIndex + "[/citat]".length);
            cite = tmpText.substr(0, tmpIndex + "[/citat]".length);
            parseCiteMessage(cite, "commentCiteBox" + tmpId);
            $("#commentCiteBox" + tmpId).show();
            $("#commentDataText" + tmpId).html(comment);
        }
    }
}

function stopCitingMessage(element, citeNew){
    $("#" + currentCiteLink.id).html("Citera");
    $("#citeInputHidden").val("");
    $("#commentEditCiteBox").slideUp("fast", function(){
        $("#commentEditCiteBox").html("&nbsp;");
        if(citeNew){
            citeMessage(element);
        } else {
            currentCiteLink = null;
            busyCiting = false;
        }
    });
}

function citeMessage(eventElement){
    //document.getElementById("formTextInputComment").scrollIntoView();
    //$("#" + eventElement.id).css("text-decoration","underline");
    $("#" + eventElement.id).css("text-decoration","underline");
    $("#" + eventElement.id).css("color","#166fb4");
    $("html, body").animate({scrollTop: $("#formTextInputComment").offset().top-250}, 500, function(){
        currentCiteLink = eventElement;
        $("#" + eventElement.id).html("Citera ej");
        var sourceId = eventElement.id;
        var commentId = sourceId.substr(("cite_".length));
        var comment = jQuery.trim($("#commentDataText" + commentId).html());
        var commenter = jQuery.trim($("#openMessageLink_" + commentId).html());
        comment = "[citat='" + commenter + "']" + comment + "[/citat]"
        $("#citeInputHidden").val(comment);
        parseCiteMessage($("#citeInputHidden").val(), "commentEditCiteBox");
        $("#commentEditCiteBox").slideDown("fast", function(){
            busyCiting = false;
        });
    });
    //$("#" + eventElement.id).toggleClass("citeLink");
    //$("#" + eventElement.id).toggleClass("citeLink2");
}

function parseCiteMessage(citeText, targetCiteBoxId){
    var match1 = citeText.match(new RegExp("\\[citat='(.*)'\\](.*)\\[\\/citat\\]"));
    $("#" + targetCiteBoxId).html(getCiteHTML(match1[1],  match1[2]));
}

function getCiteHTML(poster, text){
    return "<p><b>Citat</b> (ursprungligen postat av <b>" + poster + "</b>)</p>" + "<p>" + text + "</p>";
}
