﻿var opDiv;
var id = 'RichEdit'

function fnShow(divid) {
    var div = document.getElementById(divid);
    if (opDiv != null)
        fnClose(opDiv);
    opDiv = divid;
    div.style.visibility = 'visible';
    div.style.display = 'block';
    div.style.left = ((screen.width - div.clientWidth) / 2) + "px";
    div.style.top = ((screen.height - div.clientHeight) / 2) + "px";
}

function fnClose(divid) {
    var div = document.getElementById(divid);
    div.style.visibility = 'hidden';
    div.style.display = 'none';
    opDiv = null;
}

function fnMouseOver(obj, img) {
    obj.src = img;
}

function fnMouseOut(obj, img) {
    obj.src = img;
}

function GetDocument() {
    var rv = null;

    rv = document.frames['RichEdit'].document;

    return rv;
}

function fnGetHTML() {
    return this.GetDocument().body.innerHTML;
}

function fnCreateParagraph() {

    var newRange = GetDocument().selection.createRange();
    var sValue = newRange.text;

    if (!sValue == "") {

        var fragment = GetDocument().createDocumentFragment();

        var codeSeg = GetDocument().createElement('div');
        codeSeg.className = 'codeblock';

        fragment.appendChild(codeSeg);

        var codeContent = GetDocument().createElement('div');
        codeContent.className = 'codecontent';

        codeSeg.appendChild(codeContent);

        var codeTitle = GetDocument().createElement('div');
        codeTitle.className = 'codetitle';

        codeContent.appendChild(codeTitle);

        var span = GetDocument().createElement('span');
        span.className = 'stitle';

        codeTitle.appendChild(span);

        var caption = GetDocument().createTextNode('Code Sample');
        span.appendChild(caption);

        span = GetDocument().createElement('span');
        span.style.width = '100%';
        codeContent.appendChild(span);

        caption = GetDocument().createTextNode(sValue);
        span.appendChild(caption);

        var modifiedHtml = fragment.firstChild.outerHTML.substring(0, fragment.firstChild.outerHTML.length - 12);
        modifiedHtml = replace(modifiedHtml, "\r", "");
        modifiedHtml = replace(modifiedHtml, "\n", "");
        modifiedHtml = replace(modifiedHtml, "face=Arial", "");
        modifiedHtml = replace(modifiedHtml, "size=2", "");
        newRange.text = modifiedHtml;

        var htmlstr = this.GetDocument().body.innerHTML;

        htmlstr = replace(htmlstr, "&lt;", "<");
        htmlstr = replace(htmlstr, "&gt;", ">");
        htmlstr = replace(htmlstr, "&amp;", "&");

        GetDocument().selection.clear();

        GetDocument().body.innerHTML = htmlstr;

        frames['RichEdit'].focus();

    }
    else {
        alert("Please select text to create Paragraph!");
    }
}

function fnCreateBlack() {

    var newRange = GetDocument().selection.createRange();
    var sValue = newRange.text;


    if (!sValue == "") {
        GetDocument().execCommand("FontSize", false, '11pt');
        GetDocument().execCommand("ForeColor", false, '000000');
        frames['RichEdit'].focus();
    }
    else {
        alert("Please select text to set normal color!");
    }

}

var imgRange;

function fnInsertImageShow() {
    document.getElementById("txtImageURL").value = "";
    imgRange = GetDocument().selection.createRange();
    var sValue = imgRange.text;

    if (!sValue == "") {
        fnShow('divGetImage')
    }
    else {
        alert("Please select to text to Insert Image");
    }
}

function fnInsertLinkShow() {
    document.getElementById("txtLinkText").value = "";
    document.getElementById("txtLinkURL").value = "";
    imgRange = GetDocument().selection.createRange();
    var sValue = imgRange.text;

    if (!sValue == "") {
        fnShow('divAddLink')
    }
    else {
        alert("Please select to text to Insert Link");
    }
}

function fnInsertImage() {

    var vImgSrc = document.getElementById("txtImageURL").value;
    if (vImgSrc) {

        vImgSrc = "ProjectImages/" + vImgSrc;
        var newRange = imgRange;
        imgRange = null;

        var fragment = GetDocument().createDocumentFragment();

        var imgSeg = GetDocument().createElement('IMG');
        imgSeg.src = vImgSrc;
        fragment.appendChild(imgSeg);

        var modifiedHtml = fragment.firstChild.outerHTML.substring(0, fragment.firstChild.outerHTML.length);
        modifiedHtml = replace(modifiedHtml, "\r", "");
        modifiedHtml = replace(modifiedHtml, "\n", "");
        modifiedHtml = replace(modifiedHtml, "face=Arial", "");
        modifiedHtml = replace(modifiedHtml, "size=2", "");
        newRange.text = modifiedHtml;

        var htmlstr = this.GetDocument().body.innerHTML;

        htmlstr = replace(htmlstr, "&lt;", "<");
        htmlstr = replace(htmlstr, "&gt;", ">");
        htmlstr = replace(htmlstr, "&amp;", "&");

        GetDocument().body.innerHTML = htmlstr;

    }
    else {
        alert("Please enter Image URL");
    }
    fnClose('divGetImage');
}

function fnInsertLink() {

    var vURL = document.getElementById("txtLinkURL").value;
    var vText = document.getElementById("txtLinkText").value;
    if ( (vURL) && (vText)) {

        var newRange = imgRange;
        imgRange = null;
        var modifiedHtml = "<a style='text-decoration:underline' href='" + vURL + "'>" + vText + "</a>";
        newRange.text = modifiedHtml;

        var htmlstr = this.GetDocument().body.innerHTML;
        htmlstr = replace(htmlstr, "&lt;", "<");
        htmlstr = replace(htmlstr, "&gt;", ">");
        htmlstr = replace(htmlstr, "&amp;", "&");

        GetDocument().body.innerHTML = htmlstr;

    }
    else {
        alert("Please enter Link Text and URL");
    }
    fnClose('divAddLink');
}


function fnCreateBreak() {

    var newRange = GetDocument().selection.createRange();
    var sValue = newRange.text;

    if (!sValue == "") {

        newRange.text = "";

        var htmlstr = this.GetDocument().body.innerHTML;

        htmlstr = replace(htmlstr, "face=Arial", "");
        htmlstr = replace(htmlstr, "size=2", "");

        GetDocument().selection.clear();

        GetDocument().body.innerHTML = htmlstr;

        frames['RichEdit'].focus();

    }
    else {
        alert("Please select text to create Paragraph!");
    }
}


function replace(inputstr, pattern, by) {
    var re = new RegExp(pattern, "gim");

    var replacedstr = inputstr.replace(re, by);

    return replacedstr;
}

function fnExec(strCommand) {
    GetDocument().focus();
    GetDocument().execCommand(strCommand);
}

function fnExecute(obj, command, imgNotSelected, imgSelected) {
    GetDocument().focus();
    GetDocument().execCommand(command);
}

function fnPreview() {
    tdDesignHighLight.style.visibility = "hidden";
    tdDesignHighLight.style.display = "none";

    tdDesign.style.visibility = "visible";
    tdDesign.style.display = "inline";

    tdPreviewHighLight.style.visibility = "visible";
    tdPreviewHighLight.style.display = "inline";

    tdPreview.style.visibility = "hidden";
    tdPreview.style.display = "none";

    divContentEditor.style.visibility = "hidden";
    divContentEditor.style.display = "none";

    divPreview.style.visibility = "visible";
    divPreview.style.display = "inline";

    ifPreview.document.open();
    ifPreview.document.clear();
    ifPreview.document.write('<link href="Style/Default.css" rel="stylesheet" />');

    var testDivContent = fnGetHTML();
    //rExp1 = /ViewMediaFiles.aspx/gi;
    //rExp2 = /ViewVideo.aspx/gi;
    //testDivContent = testDivContent.replace(rExp1, "Learning/ViewMediaFiles.aspx");
    //testDivContent = testDivContent.replace(rExp2, "Learning/ViewVideo.aspx");

    ifPreview.document.write(testDivContent);

    //ifPreview.document.write(document.getElementById("ctl00_cphLMS_divContent").innerHTML);
    ifPreview.document.close();

}

function fnDesignView() {
    tdDesignHighLight.style.visibility = "visible";
    tdDesignHighLight.style.display = "inline";

    tdDesign.style.visibility = "hidden";
    tdDesign.style.display = "none";

    tdPreviewHighLight.style.visibility = "hidden";
    tdPreviewHighLight.style.display = "none";

    tdPreview.style.visibility = "visible";
    tdPreview.style.display = "inline";

    divPreview.style.visibility = "hidden";
    divPreview.style.display = "none";

    divContentEditor.style.visibility = "visible";
    divContentEditor.style.display = "inline";

}

function HtmlString() {
    return GetDocument().body.innerHTML;
}


function fnCheckText(source, args) {

    var sHTML = HtmlString();

    document.getElementById('ctl00_ctl00_cphMainContent_cphContent_editor').value = sHTML;

    if (sHTML)
        args.IsValid = true;
    else
        args.IsValid = false;
}

