var fckEditors = new Array();
var fckEditorNames = new Array();
var publicationDate;

function deletePost()
{
    document.getElementById("delete").style.display = "none";
    document.getElementById("deleteConfirm").style.display = "block";
}

function deleteNo()
{
    document.getElementById("delete").style.display = "block";
    document.getElementById("deleteConfirm").style.display = "none";
}

function sourceFocus(ctrl)
{
    edCanvas = ctrl;
}

function showSource(prefix)
{
    Element.show($(prefix + 'SourceToolbar'));
    initHtmlEditor(prefix + '_sourceField',
                   false,
                   prefix + 'SourceBar',
                   prefix + 'EditorBar')
}

function showEditor(prefix)
{
    Element.hide($(prefix + 'SourceToolbar'));
    initHtmlEditor(prefix + '_sourceField',
                   true,
                   prefix + 'SourceBar',
                   prefix + 'EditorBar')
}

function beforeSubmit()
{
    var div = document.getElementById('content_source');
    var ctrl = document.getElementById('content_sourceField');
    if (ctrl != null && div.style.display == 'none')
    {
        ctrl.value = getEditor('content').GetXHTML(true);
    }
    
    div = document.getElementById('excerpt_source');
    ctrl = document.getElementById('excerpt_sourceField');
    if (ctrl != null && div.style.display == 'none')
    {
        ctrl.value = getEditor('excerpt').GetXHTML(true);
    }
}

function deselectAll(selectBox)
{
    var options = selectBox.options;
    for (var i=0;options!=null && i<options.length; i++)
    {
       options[i].selected=false;
    }

   return false;
}

function selectNone(selectBox)
{
    if(selectBox.options[selectBox.selectedIndex].value=="")
        deselectAll(selectBox);
}

function storyFormOnload() 
{
   // Topics
    var dl = document.getElementById("topicsBoxes");
    
    if (dl != null)
    {
        var ddBoxes = dl.getElementsByTagName("dd");
        for (var i = 0; i < ddBoxes.length; i++)
        {
            if (ddBoxes[i].className == "boxContent")
            {
                //alert(ddBoxes[i].id);
                var id = ddBoxes[i].id.substring(5);
                var infoId = "ddInfo" + id;
                var ddInfo = document.getElementById(infoId);
                var hasSel = showInfo(ddBoxes[i], ddInfo, id);

                if (hasSel)
                {
                    toggleBox(id);
                }
            }
        }
    }

    // Publication Date
    publicationDate = document.getElementById("ddInfoDate").innerHTML;

    // Options
    var ddBoxOptions = document.getElementById("ddBoxOptions");
    ddInfo = document.getElementById("ddInfoOptions");
    id = "Options";
    showInfo(ddBoxOptions, ddInfo, id);
}

function toggleBox(id) 
{
    var img = document.getElementById("imgBox" + id);
    var ddBox = document.getElementById("ddBox" + id);
    var ddInfo = document.getElementById("ddInfo" + id);
    var imgFoot = document.getElementById("imgBoxFoot" + id);

    if (img.getAttribute("src").indexOf("arrowUp.gif") > 0) {
        img.setAttribute("src", "/webshare/images/arrowDown.gif");        
        imgFoot.setAttribute("src", "/webshare/images/arrowNone.gif"); 
        ddBox.style.display = "none";
        
        showInfo(ddBox, ddInfo, id);
    } 
    else 
    {
        img.setAttribute("src", "/webshare/images/arrowUp.gif");
        imgFoot.setAttribute("src", "/webshare/images/arrowUp.gif"); 
        ddBox.style.display = "block";  
        if (ddInfo != null)
        {
            ddInfo.style.display = "none"; 
        }
    }
    return false;
}

function showInfo(ddBox, ddInfo, id)
{
    var sels = getSelections(ddBox);
    if (ddInfo == null && sels.length > 0)
    {
        ddInfo = document.createElement("dd");
        ddInfo.className = "boxInfo";
        ddInfo.id = "ddInfo" + id;
        ddBox.parentNode.insertBefore(ddInfo,ddBox);
    }
    if (ddInfo != null && sels.length != 0)
    {
        ddInfo.style.display = "block";         
        ddInfo.innerHTML = sels;
        return true;
    }
    else
    {
        return false;
    }
}

function getNodeText(elem)
{
    var result = "";
    var nodes = elem.childNodes;
    for (var i = 0; i < nodes.length; i++)
    {
        if (nodes[i].nodeValue != null)
        {
            result += nodes[i].nodeValue;
        }
    }
    return result;
}

function getSelections(root)
{
    if (root.id == "ddBoxDate")
    {
        if (document.getElementById("dateAuto").checked)
        {
            return publicationDate;
        }
        else
        {
            var mon = document.getElementById("postMonth");
            var hr = document.getElementById("postHour");
            var min = document.getElementById("postMinute");
            var am = document.getElementById("postAmPm");
            return "<div>" + 
                   mon.options[mon.selectedIndex].text + " " +
                   document.getElementById("postDay").value + ", " +
                   document.getElementById("postYear").value + " " +
                   hr.options[hr.selectedIndex].text + ":" +
                   min.options[min.selectedIndex].text + " " +
                   am.options[am.selectedIndex].text +
                   "</div>";
        }                   
    }
    else
    {
        var ul = root.getElementsByTagName("ul");
        return getListSelections(ul[0],"");
    }
}

function anyChecked(inputs)
{
    if (inputs != null)
    {
        for (var i = 0; i < inputs.length; i++)
        {
            if (inputs[i].checked)
            {
                return true;
            }
        }
    }
    return false;
}

function getListSelections(ul)
{
    var result = "";
    var inputs;
    var nested;
    var li = ul.firstChild;

    for (var i = 0; i < ul.childNodes.length; i++)
    {
        li = ul.childNodes[i];
        if (li.nodeType == ul.nodeType)
        {
            inputs = li.getElementsByTagName("input");
            if (anyChecked(inputs))
            {
                if (inputs[0].type == "checkbox")
                {
                    result += "<li class='multiple'>"
                }
                else
                {
                    result += "<li>"
                }
                
                if (inputs[0].checked)
                {
                    // this node checked
                    result += getNodeText(inputs[0].parentNode) + "</li>";
                }
                else
                {
                    // descendent checked
                    result += "<span class='unselected'>" + getNodeText(inputs[0].parentNode) + "</span></li>";
                }
                
                nested = li.getElementsByTagName("ul");
                if (nested != null && nested.length > 0)
                {
                    result += getListSelections(nested[0]);
                }
            }
        }
    }
    if (result.length > 0)
    {
        return "<ul>" + result + "</ul>";
    }
    else
    {
        return "";
    }
}

