﻿var SwitchHtmlEditorClientID;
var txtMessageBodyClientID;
var FrameClientID;
var ReplyBlockID;
var DefaultSubjectText = '';
var txtSubjectID;
var btnPostID;
var ReplyToID;
var pagePreViewUrl;
var forumBrowser = new TestBrowser();

var orginalUpdateLinkedField;
function EditorPresent()
{
    return (typeof FCKeditorAPI != "undefined" && document.getElementById('txtMessageBody2') != null)
}
function MyOnLoad()
{
    if(EditorPresent()) 
    {
        document.getElementById('HtmlEditorSwitcher').style.display="inline";
        var obj = document.getElementById(SwitchHtmlEditorClientID);
        var oEditor = FCKeditorAPI.GetInstance(txtMessageBodyClientID);
        orginalUpdateLinkedField = oEditor.UpdateLinkedField;
        oEditor.UpdateLinkedField = EmptyFunction;
        if(obj.checked)
        {
            document.getElementById('txtMessageBody2').value = oEditor.LinkedField.value;
            HtmlSwitch(obj);
        }
    }
}

function EmptyFunction()
{
    return;
}

function HtmlSwitch(obj)
{

    if(!EditorPresent()) return;
    var oEditor = FCKeditorAPI.GetInstance(txtMessageBodyClientID);
	var editor=document.getElementById(FrameClientID);
	var field2=document.getElementById("SimpleEditor");
	 
	if(obj.checked)
	{
	    //orginalUpdateLinkedField = oEditor.UpdateLinkedField;
	    //oEditor.UpdateLinkedField = EmptyFunction;
	    orginalUpdateLinkedField();
	    
	    document.getElementById('txtMessageBody2').value = oEditor.LinkedField.value;
		editor.style.display = "none";
		field2.style.display = "block";
		document.getElementById('txtMessageBody2').focus();
	}
	else
	{
	    //oEditor.UpdateLinkedField = orginalUpdateLinkedField;
	    oEditor.SetHTML(document.getElementById('txtMessageBody2').value);
	    editor.style.display = "block";
		field2.style.display = "none";
		oEditor.Focus();
	}
}
function SetMessageValue()
{
    if(!EditorPresent()) return;
    
    var oEditor = FCKeditorAPI.GetInstance(txtMessageBodyClientID);
    var chkBox = document.getElementById(SwitchHtmlEditorClientID);
    
    if(chkBox.checked)
    {
        oEditor.LinkedField.value = document.getElementById('txtMessageBody2').value;
    }
    else
    {
        //oEditor.UpdateLinkedField();
        orginalUpdateLinkedField();
        oEditor.LinkedField.value = oEditor.LinkedField.value.replace(/&quot;/gi, '"');
    }
}

AttachEvent(window, 'load', MyOnLoad);

function AskDelete(subject)
{
    if(window.confirm("Do you want to delete message '" + subject + "'?"))
	{
		return true;
	}
	else
	{
		return false;
	}
}

function ExpandCollaps(objectName)
{
    var obj = document.getElementById(objectName);
    if(obj == null) return;
    obj = FirstChild(obj);
    if(obj == null) return;
    if(obj.style.display == 'none')
    {
        obj.style.display = 'block';
    }
    else
    {
        obj.style.display = 'none';
    }
}

function CollapseExpandAll(obj)
{
    var table = document.getElementById("MessagesTable");
    if(table == null) return;
    var visibility, row, td, div;
    
    if(obj.innerHTML.trim() =='Collapse All')
    {
        obj.innerHTML ='Expand All';
        visibility = 'none';
    }
    else
    {
        obj.innerHTML ='Collapse All';
        visibility = 'block';
    }
    
    row = FirstChild(FirstChild(table)); 
    row = NextSibling(NextSibling(row));
    do
    {
        td = FirstChild(row);
        div = FirstChild(FirstChild(td));
        div.style.display = visibility;
        row = NextSibling(row);
        if(row) row = NextSibling(row);
    }
    while(row)
}

function NextSibling(obj)
{
    var retVal = obj.nextSibling;
    while (retVal && retVal.nodeType != 1) 
    {
        retVal = retVal.nextSibling;
    }
    return retVal;
}
function PreviousSibling(obj)
{
    var retVal = obj.previousSibling;
    while (retVal && retVal.nodeType != 1) 
    {
        retVal = retVal.previousSibling;
    }
    return retVal;
}
function LastChild(obj)
{
    var retVal = obj.lastChild;
    while (retVal && retVal.nodeType != 1) 
    {
        retVal = retVal.previousSibling;
    }
    return retVal;
}
function FirstChild(obj)
{
    var retVal = obj.firstChild;
    while (retVal && retVal.nodeType != 1) 
    {
        retVal = retVal.nextSibling;
    }
    return retVal;
}

function restoreFunction()
{
    oEditor = FCKeditorAPI.GetInstance(txtMessageBodyClientID);
    if(oEditor == null)
    {
        window.setTimeout("restoreFunction()", 100);
        return;
    }
    orginalUpdateLinkedField = oEditor.UpdateLinkedField;
    oEditor.UpdateLinkedField = EmptyFunction;
}

function MoveReplyBlock(subject, obj, id)
{
    var oEditor;
    if(EditorPresent() && forumBrowser.Firefox) 
    {
        var oEditor = FCKeditorAPI.GetInstance(txtMessageBodyClientID);
        oEditor.UpdateLinkedField = orginalUpdateLinkedField;
    }
    
    var replyBlock = document.getElementById(ReplyBlockID);
    var holder;
    if(obj != null)
    {
        holder = obj.parentNode.parentNode.parentNode;
    }
    if(holder == null || replyBlock.parentNode == holder)
    {
        document.getElementById("DefaultReplyBlock").appendChild(replyBlock);
        document.getElementById(txtSubjectID).value = DefaultSubjectText;
        document.getElementById(ReplyToID).value = 0;
    }
    else
    {
        holder.appendChild(replyBlock);
        document.getElementById(txtSubjectID).value = subject;
        document.getElementById(ReplyToID).value = id;
    }

    if(EditorPresent() && forumBrowser.Firefox) 
    {
        restoreFunction();
    }
    
    document.getElementById(btnPostID).focus();
}

function PreviewMessage()
{
    var messageBody = '';
    if(EditorPresent()) 
    {
        var oEditor = FCKeditorAPI.GetInstance(txtMessageBodyClientID);
        
        var chkBox = document.getElementById(SwitchHtmlEditorClientID);
        if(chkBox.checked)
        {
            messageBody = document.getElementById('txtMessageBody2').value;
        }
        else
        {
            //oEditor.UpdateLinkedField();
            orginalUpdateLinkedField();
    
            messageBody = oEditor.LinkedField.value.replace(/&quot;/gi, '"');
        }
    }
    else
    {
        messageBody = document.getElementById(txtMessageBodyClientID).value;
    }
    if(messageBody.trim().length == 0)
    {
        window.alert('Message body is empty.');
        return;
    }
    var preview=window.open('','ForumPreview','location=no,menubar=no,toolbar=no,height=500,width=725,resizable=yes, scrollbars=yes');
    if(preview == null || preview.document == null)
    {
        window.alert("Pop-up window was blocked.");
        return;
    }
    preview.document.open();
    preview.document.write('<form id="PreviewForm" action="' + pagePreViewUrl + '" method="post"><input type="hidden" id="MessageToView" name="MessageToView" value=""></form>');
    preview.document.close();
    preview.document.getElementById("MessageToView").value=messageBody;
    preview.document.forms[0].submit();
}

function MakeSearch()
{
    var obj = document.getElementById("txtSearchText");
    if(obj == null) return;
    if(obj.value.trim().length == 0)
    {
        alert('Search string is empty.');
        return;
    }
    var url = window.location.href;
    var index = url.indexOf('?');
    if(index > 0)
    {
        url = url.substr(0, index);
    }
    else
    {
        index = url.indexOf('#');
        if(index > 0)
        {
            url = url.substr(0, index);
        }
    }
    window.location.href = url + '?search=' + escape(obj.value.trim());
}
function ClearSearch()
{
    var url = window.location.href;
    var index = url.indexOf('?');
    if(index > 0)
    {
        url = url.substr(0, index);
    }
    window.location.href = url;
}

