﻿// <!CDATA[
var Chars = new Array({ Match: /&middot;/gi, Repl: '<li>' }, { Match: /•/gi, Repl: '<li>' }, { Match: /·/gi, Repl: '<li>' }, { Match: /Ú/gi, Repl: 'e' }, { Match: /÷/gi, Repl: 'o' }, { Match: /Ó/gi, Repl: 'a' }, { Match: /û/gi, Repl: '&amp;' }, { Match: /Íl³deniz/gi, Repl: 'Olu Deniz' }, { Match: /¶/gi, Repl: '0' }, { Match: /Æ/gi, Repl: '\'' }, { Match: /ú/gi, Repl: '&pound;' }, { Match: /¾/gi, Repl: 'o' }, { Match: /Þ/gi, Repl: 'e' }, { Match: /ß/gi, Repl: 'a' }, { Match: /Ç/gi, Repl: '&euro;' }, { Match: /€/gi, Repl: '&euro;' }, { Match: /±/gi, Repl: 'n' }, { Match: /²/gi, Repl: 'y' }, { Match: /&rsquo;/gi, Repl: '\'' });
var AllowedTags = new Array('<h1>', '</h1>', '<h2>', '</h2>', '<h3>', '</h3>', '<h4>', '</h4>', '<h5>', '</h5>', '<h6>', '</h6>', '<br/>', '<br />', '<p>', '</p>', '<ul>', '<ol>', '</ul>', '</ol>', '<li>', '</li>', '<b>', '</b>', '<i>', '</i>', '<u>', '</u>');
var ArticleBreak = '{Article Divider}';
var Editor = null;
var SectionIDs = new Array();
var SectionTypes = new Array();
var SelectedSectionTypes = new Array();
var ContentChanged = false;
var HasContent = false;
var SaveButton = null;
var winXML = null;
var SkipCheck = false;
var ContentSectionsType = -1;
var PreviewCall = false;

function TrimString(str) {
    try {
        return str.replace(/^\s*/, "").replace(/\s*$/, "");
    }
    catch (e) { return ''; }
}
function ApplyEvent(index) {
    index = 0;
}

function ArticleXml(ArticleID) {
    if ((winXML) && (!winXML.closed))
        winXML.open("http://tcv.travelinnovations.co.uk/xml.aspx?id=" + ArticleID, "XML", "width=880,height=700,scroll=0", false);
    else
        winXML = window.open("http://tcv.travelinnovations.co.uk/xml.aspx?id=" + ArticleID, "XML", "width=880,height=700,scroll=0", false);
}

function NewArticle() {
    if (window.confirm('You will lose any unsaved changes to the current Article.\nDo you want to continue?')) {
        var divArticleSections = document.getElementById('divArticleSections');
        if (divArticleSections != null)
            divArticleSections.innerHTML = '';
        return true;
    }
    else
        return false;
}

function CheckChanges(saveButton) {
    if (SkipCheck)
        return true;
    if (ContentChanged) {
        ContentChanged = false;
        if (window.confirm('Do you want to save your changes?\nClick "OK" to save or "Cancel" to ignore changes.')) {
            SkipCheck = true;
            saveButton.click();
            return false;
        }
    }
    return true;
}

function CleanSectionsHtml() {
    var divArticleSections = document.getElementById('divArticleSections');
    if (divArticleSections != null) {
        var ArticleDivs = GetArticleSections(divArticleSections);
        if ((ArticleDivs != null) && (ArticleDivs != undefined)) {
            for (mu = 0; mu < ArticleDivs.length; mu++) {
                var BodyHtml = GetElementByID(ArticleDivs[mu], 'textarea', 'txtSectionBody');
                CleanHtml(BodyHtml);
            }
        }
    }
    return true;
}

function GetPreview(div) {
    div.innerHTML = GetPreviewString();
    return true;
}
function GetPreviewString() {
    var divArticleSections = document.getElementById('divArticleSections');
    var div = document.createElement('div');
    var IncludeSection = false;
    div.innerHTML = '';
    if (divArticleSections != null) {
        var ArticleDivs = GetArticleSections(divArticleSections);
        if ((ArticleDivs != null) && (ArticleDivs != undefined)) {
            for (mu = 0; mu < ArticleDivs.length; mu++) {
                var HeaderField = GetElementByID(ArticleDivs[mu], 'input', 'txtHeader');
                var BodyHtml = GetElementByID(ArticleDivs[mu], 'textarea', 'txtSectionBody');
                if (ContentSectionsType > 0) {
                    if (GetElementByTypeAndValue(ArticleDivs[mu], 'input', 'checkbox', ContentSectionsType.toString()))
                        IncludeSection = true;
                    else
                        IncludeSection = false;
                }
                else
                    IncludeSection = true;
                if (IncludeSection) {
                    var newHeader = null;
                    var newBody = null;
                    var AddHBreak = false;
                    var AddBBreak = false;
                    CleanHtml(BodyHtml);
                    // Header
                    if (TrimString(HeaderField.value).length > 0) {
                        newHeader = document.createElement('b');
                        newHeader.innerHTML = HeaderField.value;
                        if ((BodyHtml.value.toLowerCase().substring(0, 4) != '<ul>')
                                            && (BodyHtml.value.toLowerCase().substring(0, 3) != '<p>'))
                            AddHBreak = true;
                        else
                            AddHBreak = false;
                    }
                    // Body
                    if (BodyHtml.value.length > 0) {
                        newBody = document.createElement('p');
                        newBodyDiv = document.createElement('div');
                        newBodyDiv.innerHTML = BodyHtml.value.replace(/\r/g, '').replace(/\n/g, '<br/>');
                        if ((BodyHtml.value.toLowerCase().substring(BodyHtml.value.length - 5) != '</ul>')
                                            && (BodyHtml.value.toLowerCase().substring(BodyHtml.value.length - 4) != '</p>'))
                            AddBBreak = true;
                        else
                            AddBBreak = false;
                        for (n = 0; name < newBodyDiv.childNodes.length; n++)
                            newBody.appendChild(newBodyDiv.childNodes[n]);
                    }
                    // Adding header
                    if (newHeader != null) {
                        div.appendChild(newHeader);
                        if (AddHBreak) {
                            div.appendChild(document.createElement('br'));
                            div.appendChild(document.createElement('br'));
                        }
                    }
                    // Adding Body
                    if (newBody != null) {
                        div.appendChild(newBody);
                        if (AddBBreak) {
                            div.appendChild(document.createElement('br'));
                            div.appendChild(document.createElement('br'));
                        }
                    } 
                }
            }
        }
    }
    return div.innerHTML;
}

function CleanHtml(Control) {
    var Html = '';
    if (Control.getContent != undefined)
        Html = Control.getContent();
    else if (Control.tagName.toUpperCase() == 'TEXTAREA')
        Html = Control.value;
    else
        Html = Control.innerHTML;
    Html = Html.replace(/<strong>/gi, '<b>');
    Html = Html.replace(/<\/strong>/gi, '</b>');
    while (Html.substring(0, 2) == '</') {
        Html = Html.substring(Html.indexOf('>') + 1);
    }
    if ((Html.length == 0) || ((Html.trim) && (TrimString(Html).length == 0)))
        return;

    // Replace Chars
    for (i = 0; i < Chars.length; i++) {
        Html = Html.replace(Chars[i].Match, Chars[i].Repl);
    }

    var parts = Html.match(/<[^>]*>/g);
    if ((parts != null) && (parts.length > 0) && (Html.match(/<[^>]*>.*?<\/[^>]*>/g) == null)) {
        for (p = 0; p < parts.length; p++) {
            Html = Html.replace(parts[p], '');
        }
        parts = Html.match(/<[^>]*>/g);
    }
    if (parts != null) {
        for (p = 0; p < parts.length; p++) {
            var Replaced = false;
            var ReplacedByBold = false;
            var ReplacedByBoldCount = 0;
            if (!Contains(AllowedTags, parts[p])
            && (parts[p].toLowerCase().indexOf('<table') == -1)
            && (parts[p].toLowerCase().indexOf('</table') == -1)
            && (parts[p].toLowerCase().indexOf('<tr') == -1)
            && (parts[p].toLowerCase().indexOf('</tr') == -1)
            && (parts[p].toLowerCase().indexOf('<td') == -1)
            && (parts[p].toLowerCase().indexOf('</td') == -1)) {
                for (a = 0; a < AllowedTags.length; a++) {
                    var tag = AllowedTags[a];
                    if ((parts[p].substring(0, tag.replace('>', ' ').length).toLowerCase() == tag.replace('>', ' '))
                                    || (parts[p].substring(0, tag.replace('/>', '>').length).toLowerCase() == tag.replace('/>', '>'))) {
                        Html = Html.replace(parts[p], tag);
                        Replaced = true;
                        break;
                    }
                    else if ((parts[p].toLowerCase().indexOf('<span ') != -1) && (parts[p].toLowerCase().indexOf('bold') > -1)) {
                        Html = Html.replace(parts[p], '<b>');
                        ReplacedByBold = true;
                        Replaced = true;
                        ReplacedByBoldCount++;
                        break;
                    }
                    else if ((parts[p].toLowerCase().indexOf('</span') != -1) && ReplacedByBold) {
                        Html = Html.replace(parts[p], '</b>');
                        ReplacedByBoldCount--;
                        if (ReplacedByBoldCount <= 0)
                            ReplacedByBold = false;
                        Replaced = true;
                        break;
                    }
                }
                if (!Replaced) {
                    if ((parts[p].toLowerCase().indexOf('<div') > -1) && ((p > 0) && (parts[p - 1].toLowerCase().indexOf('<br') == -1)))
                        Html = Html.replace(parts[p], '<br/>');
                    else
                        Html = Html.replace(parts[p], ' ');
                }
            }
        }
    }
    // Replace Empty <B> tags
    Html = Html.replace(/<b><p>/gi, '<p><b>');
    Html = Html.replace(/<\/p><\/b>/gi, '</b></p>');
    Html = Html.replace(/<b><\/b>/gi, '');
    if (Control.getContent != undefined)
        Control.setContent(Html);
    else if (Control.tagName.toUpperCase() == 'TEXTAREA')
        Control.value = Html;
    else
        Control.innerHTML = Html;
}

function Contains(objArray, item) {
    var found = false;
    for (i = 0; i < objArray.length; i++)
        if (objArray[i].toLowerCase() == item.toLowerCase()) {
        found = true;
        break;
    }
    return found;
}

function CheckKey(Editor, e) {
    if ((e != null) && e.ctrlKey && e.keyCode == 86) {
        CleanHtml(Editor);
    }
}

function MouseDown(Editor, e) {
    if ((e != null) && (e.button <= 1) && e.ctrlKey) {
        var Skip = false;
        var SelectedElement = null;
        if (e.explicitOriginalTarget) {
            if (e.explicitOriginalTarget.nodeName == '#text')
                SelectedElement = e.explicitOriginalTarget.parentNode;
            else
                SelectedElement = e.explicitOriginalTarget;
        }
        else {
            if (e.srcElement.nodeName == '#text')
                SelectedElement = e.srcElement.parentElement;
            else
                SelectedElement = e.srcElement;
        }
        if ((SelectedElement.nodeValue == ArticleBreak)
            || (SelectedElement.previousSibling && (SelectedElement.previousSibling.nodeValue == ArticleBreak))
            || (SelectedElement.nextSibling && (SelectedElement.nodeValue == ArticleBreak)))
            Skip = true;


        if (!Skip) {
            if (SelectedElement.id != 'tmEditor')
                SelectedElement.parentNode.insertBefore(document.createTextNode(ArticleBreak + ' '), SelectedElement);
            else if ((SelectedElement.firstChild) && (SelectedElement.firstChild.nodeValue != ArticleBreak))
                SelectedElement.insertBefore(document.createTextNode(ArticleBreak + ' '), SelectedElement.firstChild);
        }
        ContentHasChanged()
    }
}
function GetElementByID(Container, tagName, id) {
    var Elements = Container.getElementsByTagName(tagName);
    var Element = null;
    for (c = 0; c < Elements.length; c++) {
        if (Elements[c].id.toLowerCase() == id.toLowerCase()) {
            Element = Elements[c];
            break;
        }
    }
    return Element;
}
function GetElementByTypeAndValue(Container, tagName, tagType, value) {
    var Elements = Container.getElementsByTagName(tagName);
    var Element = null;
    for (c = 0; c < Elements.length; c++) {
        if ((Elements[c].value) && (Elements[c].type.toLowerCase() == tagType.toLowerCase()) && (Elements[c].value.toLowerCase() == value.toLowerCase()) && (Elements[c].checked)) {
            Element = Elements[c];
            break;
        }
    }
    return Element;
}
function GetElementByIndex(Container, tagName, index) {
    var Elements = Container.getElementsByTagName(tagName);
    var Element = null;
    if (Elements.length > index) {
        Element = Elements[index];
    }
    return Element;
}
function CreateArticleSections(html) {
    var HasSections = false;
    // Clean Html
    var divClean = document.createElement('div');
    divClean.innerHTML = html;
    CleanHtml(divClean);
    html = divClean.innerHTML;

    // Container DIV
    var divContainer = document.createElement('div');
    divContainer.id = "ArticlesContainer";
    if (divContainer.all)
        divContainer.setAttribute('class', 'ArticleContainer');
    else
        divContainer.className = 'ArticleContainer';

    // Splitting by ArticleBreak
    html = html.replace(/\n/gi, '');
    html = html.replace(/\r/gi, '');
    html = html.replace(/{Article Divider}([ ]*)<\/p>/gi, '</p>{Article Divider}');
    html = html.replace(/<B>([ ]*){Article Divider}/gi, '{Article Divider}<B>');
    html = html.replace(/<P>([ ]*){Article Divider}/gi, '{Article Divider}<P>');
    html = html.replace(/<P>([ ]*)<b>/gi, '<B>');
    html = html.replace(/<\/b>([ ]*)<\/p>/gi, '</B>');
    html = html.replace(/<P><\/P>/gi, '');
    html = html.replace(/<H1>([ ]*){Article Divider}/gi, '{Article Divider}<H1>');
    html = html.replace(/<H2>([ ]*){Article Divider}/gi, '{Article Divider}<H2>');
    html = html.replace(/<H3>([ ]*){Article Divider}/gi, '{Article Divider}<H3>');
    html = html.replace(/<H4>([ ]*){Article Divider}/gi, '{Article Divider}<H4>');
    html = html.replace(/<H5>([ ]*){Article Divider}/gi, '{Article Divider}<H5>');
    html = html.replace(/<H6>([ ]*){Article Divider}/gi, '{Article Divider}<H6>');
    var Articles = html.split(ArticleBreak);
    var Counter = 1;

    var SectionsList = document.createElement('ul');
    SectionsList.id = 'sortable';
    divContainer.appendChild(SectionsList);

    for (aIndex = 0; aIndex < Articles.length; aIndex++) {
        var SectionsListItem = document.createElement('li');

        var divArticleSection = NewSection(Counter - 1);
        // Numbers
        var lblNumber = divArticleSection.getElementsByTagName('span')[0];
        // Delete button
        var delButton = GetElementByID(divArticleSection, 'a', 'removeSection');
        // Article Section Name TextBox
        var txtSectionHeader = GetElementByID(divArticleSection, 'input', 'txtHeader');
        // SectionID hidden field
        var SectionID = GetElementByID(divArticleSection, 'input', 'hSectionID');
        if (SectionIDs.length > (Counter - 1))
            SectionID.value = SectionIDs[Counter - 1];
        else
            SectionID.value = '0';
        // Insert Below button
        var InsertNew = GetElementByID(divArticleSection, 'a', 'addSectionBelow');

        var parts = Articles[aIndex].match(/(<[^>]*>.*?<\/[^>]*>)/g);
        var Header = '';
        if ((parts == null) || (parts.length == 1)) {
            if ((Articles[aIndex] != null) && (Articles[aIndex].length > 0)) {
                if ((parts != null) && (parts.length == 1) && (TrimString(Articles[aIndex].replace(parts[0], '')).toLowerCase() != '<br><br>')
                 && (TrimString(Articles[aIndex].replace(parts[0], '')).toLowerCase() != '<br ><br >')
                  && TrimString((Articles[aIndex].replace(parts[0], '')).toLowerCase() != '<br/><br/>')
                  && (TrimString(Articles[aIndex].replace(parts[0], '')).toLowerCase() != '<br /><br />')
                                && ((TrimString(Articles[aIndex].replace(parts[0], '')).toLowerCase().substring(0, 3) == '<br')
                                || (TrimString(Articles[aIndex].replace(parts[0], '')).toLowerCase().substring(0, 2) == '<p')
                                || (TrimString(Articles[aIndex].replace(parts[0], '')).toLowerCase().substring(0, 3) == '<ul')
                                || (TrimString(Articles[aIndex].replace(parts[0], '')).toLowerCase().substring(0, 3) == '<li')
                                || (TrimString(Articles[aIndex].replace(parts[0], '')).toLowerCase().substring(0, 3) == '</li'))) {
                    var CleaningDiv = document.createElement('div');
                    CleaningDiv.innerHTML = parts[0];
                    if (CleaningDiv.textContent != undefined)
                        txtSectionHeader.value = TrimString(CleaningDiv.textContent);
                    else
                        txtSectionHeader.value = TrimString(CleaningDiv.innerText);
                    Header = parts[0];
                }
                else {
                    var SPLIT = null;
                    if (((Articles[aIndex].toLowerCase() != '<br><br>') && (Articles[aIndex].toLowerCase() != '<br/><br/>')) && (TrimString(Articles[aIndex].replace(Articles[aIndex], '')).toLowerCase() != '<br><br>')) {
                        if (Articles[aIndex].split(/<BR>/gi).length > 1) {
                            SPLIT = Articles[aIndex].split(/<BR>/gi);
                        } else if (Articles[aIndex].split(/<BR\/>/gi).length > 1) {
                            SPLIT = Articles[aIndex].split(/<BR\/>/gi);
                        } else if (Articles[aIndex].split(/<p>/gi).length > 1) {
                            SPLIT = Articles[aIndex].split(/<p>/gi);
                        }
                    }
                    if (SPLIT != null) {
                        var CleaningDiv = document.createElement('div');
                        CleaningDiv.innerHTML = SPLIT[0];
                        if (CleaningDiv.textContent != undefined)
                            txtSectionHeader.value = TrimString(CleaningDiv.textContent);
                        else
                            txtSectionHeader.value = TrimString(CleaningDiv.innerText);
                        Header = SPLIT[0];
                        if (txtSectionHeader.value.length > 300) {
                            txtSectionHeader.value = '';
                            Header = '';
                        }
                    }
                    else {
                        txtSectionHeader.value = '';
                        parts = new Array();
                        parts[0] = '';
                        if (TrimString(Articles[aIndex].toLowerCase()) != '<br><br>')
                            parts[1] = Articles[aIndex];
                        else
                            parts = null;
                    }
                }
            }
            else {
                if (TrimString(Articles[aIndex].toLowerCase()) != '<br><br>')
                    txtSectionHeader.value = Articles[aIndex];
            }
        }
        else if ((TrimString(parts[0]).toLowerCase().substring(0, 6) == '<p><b>') || ((TrimString(parts[0]).toLowerCase().substring(0, 2) != '<p')
        && (TrimString(parts[0]).toLowerCase().substring(0, 3) != '<br')
        && (TrimString(parts[0]).toLowerCase().substring(0, 3) != '<ul')
        && (TrimString(parts[0]).toLowerCase().substring(0, 3) != '<dl')
        )) {
            var CleaningDiv = document.createElement('div');
            for (p = 0; p < parts.length; p++) {
                if ((parts[p].match(/>.*</g) != null) && (parts[p].match(/>.*</g)[0].length > 2)) {
                    CleaningDiv.innerHTML = parts[p].match(/>.*</g)[0].substring(1, parts[p].match(/>.*</g)[0].length - 1);
                    if (CleaningDiv.textContent != undefined)
                        txtSectionHeader.value = TrimString(CleaningDiv.textContent);
                    else
                        txtSectionHeader.value = TrimString(CleaningDiv.innerText);
                    var c = txtSectionHeader.value.substring(0, 1);
                    while (c == ' ') {
                        txtSectionHeader.value = txtSectionHeader.value.substring(1);
                        c = txtSectionHeader.value.substring(0, 1);
                    }
                    Header += parts[p];
                    if (txtSectionHeader.textContent != undefined)
                        txtSectionHeader.textContent = txtSectionHeader.value;
                    break;
                }
                else
                    Header += parts[p];
            }
        }
        // Article Section Body
        var txtArticleBody = GetElementByID(divArticleSection, 'textarea', 'txtSectionBody');
        //txtArticleBody.name = "SectionBody" + Counter.toString();

        if (parts != null) {
            txtArticleBody.value = Articles[aIndex].replace(Header, '');

            txtArticleBody.value = TrimString(txtArticleBody.value.replace(/<P>/gi, '').replace(/<\/P>/gi, ''));
            txtArticleBody.value = TrimString(txtArticleBody.value.replace(/&nbsp;/gi, ' '));
            if ((txtArticleBody.value.split(/<LI>/gi).length > 2) && (txtArticleBody.value.toLowerCase().indexOf('<ul>') == -1) && (txtArticleBody.value.toLowerCase().indexOf('<ol>') == -1)) {
                var Html = '';
                var Started = false;
                for (li = 0; li < txtArticleBody.value.split(/<LI>/gi).length; li++) {
                    if (txtArticleBody.value.split(/<LI>/gi)[li].length > 0) {
                        if (!Started) {
                            Html += '<UL>';
                            Started = true;
                        }
                        Html += '<LI>' + txtArticleBody.value.split(/<LI>/gi)[li] + '</LI>';
                    }
                    else {
                        if (Started) {
                            Html += '</UL>';
                            Started = false;
                        }
                        Html += txtArticleBody.value.split(/<LI>/gi)[li];
                    }
                }
                if (Html.indexOf('</UL>') == -1)
                    txtArticleBody.value = TrimString(Html) + '</UL>';
                else
                    txtArticleBody.value = TrimString(Html);
            }
            while (txtArticleBody.value.substring(0, 6) == '&nbsp;') {
                txtArticleBody.value = txtArticleBody.value.substring(6);
            }
            while (txtArticleBody.value.substring(0, 1) == ' ') {
                txtArticleBody.value = txtArticleBody.value.substring(1);
                while (txtArticleBody.value.substring(0, 6) == '&nbsp;') {
                    txtArticleBody.value = txtArticleBody.value.substring(6);
                }
            }
            while (txtArticleBody.value.substring(0, 4) == '<br>') {
                txtArticleBody.value = txtArticleBody.value.substring(4);
            }
            while (txtArticleBody.value.substring(0, 4) == '<BR>') {
                txtArticleBody.value = txtArticleBody.value.substring(4);
            }
            txtArticleBody.value = TrimString(txtArticleBody.value.replace(/<br>/gi, '\n'));
            while (txtArticleBody.value.substring(txtArticleBody.value.length - 1) == '\n') {
                txtArticleBody.value = txtArticleBody.value.substring(0, txtArticleBody.value.length - 2);
            }

            if (txtArticleBody.textContent != undefined) {
                txtArticleBody.textContent = txtArticleBody.value
            }
        }
        if ((TrimString(txtSectionHeader.value).length > 0) || (TrimString(txtArticleBody.value).length > 0)) {
            // Section Types
            var divSectionTypes = GetElementByID(divArticleSection, 'div', 'divSectionTypes');
            for (st = 0; st < SectionTypes.length; st++) {
                var DisplayText = SectionTypes[st].split('|')[0];
                var SectionTypeID = SectionTypes[st].split('|')[1];

                var SecType = GetElementByID(divArticleSection, 'input', "st_" + DisplayText.replace(' ', '_'));
                SecType.id = "st_" + SectionID.value + "_" + Counter.toString();
                SecType.type = "checkbox";
                SecType.value = SectionTypeID;
                SecType.name = "SectionTypeID" + Counter.toString();

                // Checked ?
                if (SelectedSectionTypes.length > 0) {
                    var IsSelected = false;
                    for (sst = 0; sst < SelectedSectionTypes.length; sst++) {
                        if (SelectedSectionTypes[sst].split('|')[0] == SectionID.value) {
                            if (SelectedSectionTypes[sst].split('|')[1].length > 0) {
                                for (sstID = 0; sstID < SelectedSectionTypes[sst].split('|')[1].split('-').length; sstID++) {
                                    if (SelectedSectionTypes[sst].split('|')[1].split('-')[sstID] == SectionTypeID) {
                                        IsSelected = true;
                                        break;
                                    }
                                }
                            }
                            if (IsSelected)
                                break;
                        }
                    }
                } else if ((!HasContent) && ((parseInt(SectionTypeID, 10) == 1) || (parseInt(SectionTypeID, 10) == 2))) {
                    ContentChanged = true;
                    IsSelected = true;
                }
                if (IsSelected) {
                    SecType.setAttribute("checked", "checked");
                }
            }

            Counter++;
            HasSections = true;
            SectionsListItem.appendChild(divArticleSection);
            SectionsList.appendChild(SectionsListItem);
        }
    }
    if (!HasSections) {
        //divContainer.innerHTML = '<center><span style="color:Maroon"><i>No Articles found!</i></span></center>';
        divContainer.appendChild(NewSection(divContainer.childNodes.length + 1));
    }

    return divContainer;
}

function DeleteArticleSection(index) {
    if (window.confirm('You are about to delete this section.\nDo you want to continue?')) {
        var divContainer = document.getElementById('divArticleSections');
        var SectionsList = GetElementByID(divContainer, 'ul', 'sortable');

        if (document.getElementById('Article_' + index.toString())) {
            for (mu = 0; mu < SectionsList.childNodes.length; mu++) {
                if (SectionsList.childNodes[mu].childNodes[0].id == 'Article_' + index.toString()) {
                    SectionsList.removeChild(SectionsList.childNodes[mu]);
                    break;
                }
            }
        }
    }
    ContentHasChanged()
    return false;
}

function GetArticleSections(divArticleSections) {
    if (divArticleSections == null)
        return;
    var Divs = divArticleSections.getElementsByTagName('div');
    var ArticleDivs = new Array();
    var Counter = 0;
    for (a = 0; a < Divs.length; a++) {
        if (Divs[a].id.substring(0, 8) == 'Article_')
            ArticleDivs[Counter++] = Divs[a];
    }
    return ArticleDivs;
}

function NewSection(Index) {
    var divArticleSection = document.createElement('div');
    divArticleSection.setAttribute("class", "innerPanel");
    divArticleSection.innerHTML = document.getElementById('divArticleSection').innerHTML;
    divArticleSection.setAttribute('id', 'Article_' + Index.toString());
    // Numbers
    var lblNumber = divArticleSection.getElementsByTagName('span')[0];
    if (lblNumber)
        lblNumber.appendChild(document.createTextNode(Index.toString() + '.'));
    // Delete button
    var delButton = GetElementByID(divArticleSection, 'a', 'removeSection');
    delButton.setAttribute('onclick', 'return DeleteArticleSection(' + Index.toString() + ');');
    // Move Up button
    var btnUp = GetElementByID(divArticleSection, 'input', 'btnUp');
    if (btnUp)
        btnUp.setAttribute('onclick', 'return MoveUp(' + Index.toString() + ');');
    // Move Down button
    var btnDown = GetElementByID(divArticleSection, 'input', 'btnDown');
    if (btnDown)
        btnDown.setAttribute('onclick', 'return MoveDown(' + Index.toString() + ');');
    // Article Section Name TextBox
    var txtSectionHeader = GetElementByID(divArticleSection, 'input', 'txtHeader');
    txtSectionHeader.name = "SectionHeader" + Index.toString();
    // SectionID hidden field
    var SectionID = GetElementByID(divArticleSection, 'input', 'hSectionID');
    SectionID.name = "SectionID" + Index.toString();
    SectionID.value = '0';
    // Insert Below button
    var InsertNew = GetElementByID(divArticleSection, 'a', 'addSectionBelow');
    InsertNew.setAttribute('onclick', 'return InsertSectionAfterThis(' + Index.toString() + ');');
    // Article Section Body
    var txtArticleBody = GetElementByID(divArticleSection, 'textarea', 'txtSectionBody');
    txtArticleBody.name = "SectionBody" + Index.toString();

    // Section Types
    var divSectionTypes = GetElementByID(divArticleSection, 'div', 'divSectionTypes');
    for (st = 0; st < SectionTypes.length; st++) {
        var DisplayText = SectionTypes[st].split('|')[0];
        var SectionTypeID = SectionTypes[st].split('|')[1];

        var SecType = document.createElement('input');
        SecType.type = 'checkbox';
        SecType.value = SectionTypeID;
        SecType.id = "st_" + DisplayText.replace(' ', '_');
        SecType.name = 'SectionTypeID' + Index.toString();

        divSectionTypes.appendChild(SecType);
        if ((parseInt(SectionTypeID, 10) == 1) || (parseInt(SectionTypeID, 10) == 2))
            SecType.setAttribute('checked', 'checked');
        divSectionTypes.appendChild(document.createTextNode(DisplayText));
        divSectionTypes.innerHTML += '&nbsp;&nbsp;&nbsp;&nbsp;';
        //divSectionTypes.appendChild(document.createElement("br"));
    }
    return divArticleSection;
}

function InsertSectionAfter(divContainer, Index) {
    var SectionsList = GetElementByID(divContainer, 'ul', 'sortable');
    var NewListItem = document.createElement('li');
    var divIndex = 0;
    for (mu = 0; mu < SectionsList.childNodes.length; mu++) {
        if (SectionsList.childNodes[mu].childNodes[0].id == 'Article_' + Index.toString()) {
            divIndex = mu;
            break;
        }
    }
    NewListItem.appendChild(NewSection(SectionsList.childNodes.length));
    if (SectionsList.childNodes.length <= divIndex)
        SectionsList.appendChild(NewListItem);
    else
        SectionsList.insertBefore(NewListItem, SectionsList.childNodes[divIndex + 1]);
    ContentHasChanged()
}

function ContentHasChanged() {
    ContentChanged = true;
    SkipCheck = false;
}

function CheckNum(val, args) {
    if (isNaN(Number(args.Value))) {
        alert('A numeric value of Sorting index is required!');
        args.IsValid = false;
        return false;
    }
    else
        return true;
}

// ]]>
