﻿function updateHiddenFieldValue(aPropertyName) {
    //copy the asp.net textbox value into a static hidden field
    //alert(aPropertyName);
    var textBoxId = findObj("hdf" + aPropertyName + "TextBoxName").value;
    findObj("hdf" + aPropertyName + "Value").value = findObj(textBoxId).value;
}

function updateHiddenFieldValueFromCheckbox(aPropertyName) {
    //copy the asp.net textbox value into a static hidden field
    //alert(aPropertyName);
    var checkBoxId = findObj("hdf" + aPropertyName + "CheckBoxName").value;
    findObj("hdf" + aPropertyName + "Value").value = findObj(checkBoxId).checked;
}

function showHeadingChangePopup(btnClickId) {
    //alert("showHeadingChangePopup");

    findObj("hdfButtonClickId").value = btnClickId;

    var returnValue = true;
    //added 11 mar 2011 to check if not home page
    if (findObj("hdfSaveMode").value != "Add" && findObj("hdfInstanceId").value != "2") {
        // alert("hdfHeadingValue: " + findObj("hdfHeadingValue").value);

        if (findObj("hdfHeadingValue").value == "" || findObj("hdfHeadingValue").value == "Heading goes here...") {
            jQuery('#divHeadingModal').modal();
            returnValue = false;
        }
        else {
            if (getCleanValue("hdfHeadingValue") != getCleanValue("hdfHeadingValueOriginal")) {
                //alert("Test3");
                if ((getCleanValue("hdfMetaTitle") != getCleanValue("hdfHeadingValue")) || (getCleanValue("hdfName") != getCleanValue("hdfHeadingValue"))) {
                    //alert("Show");
                    jQuery('#divModal').modal({ zIndex: 999999999, containerId: "siternityModal" });

                    // alert("After Modal");
                    returnValue = false;
                }
            }
        }
    }
    else {

        if (findObj("hdfHeadingValue").value == "" || findObj("hdfHeadingValue").value == "Heading goes here...") {
            //jQuery('#divHeadingModal').modal();
            alert("Heading must have a value.");
            returnValue = false;
        }
    }
    //alert("Leaving Heading: " + returnValue);
    return returnValue;
}

function hideBasicModal() {
    jQuery.modal.close();
}

function updateSeoFromHeadingChange(doUpdate) {
    if (doUpdate) {
        findObj("hdfMetaTitle").value = findObj("hdfHeadingValue").value;
        findObj("hdfName").value = findObj("hdfHeadingValue").value;
    }

    jQuery.modal.close();

    //find out which button the user was trying to click
    //before they were interrupted
    //then click it
    //alert(" updateSeoFromHeadingChange hdfButtonClickId :" + findObj("hdfButtonClickId"));
    var btnClickId = findObj("hdfButtonClickId").value;

    //alert("updateSeoFromHeadingChange btnClickId" + btnClickId);
    if (btnClickId != null && btnClickId != "") {
        //alert("Clicking " + btnClickId);
        findObj(btnClickId).click();
    }
}

function doSaveSubmit(freezeMessage, btnSubmitId) {

    //alert(btnSubmitId);
    var returnValue = true;

    if (findObj("hdfConfigItemId") != null) {
        returnValue = putEditValuesInStaticFields();

        //alert("doSaveSubmit 2: " + returnValue);

        if (returnValue) {
            returnValue = showHeadingChangePopup(btnSubmitId);
            //alert("doSaveSubmit 3: " + returnValue);
        }
        if (returnValue) {
            FreezeScreen(freezeMessage);
            //alert("doSaveSubmit 4: " + returnValue);
        }
        //alert("doSaveSubmit 5: " + returnValue);


    }

    //need to use button, not link button for validation to work, hence...
    if (returnValue == true) {
        // alert("About to click: " + btnSubmitId);
        //alert("btnSubmitId" + findObj(btnSubmitId));
        findObj(btnSubmitId).click();
    }
    return false;
}

function doPreviewSubmit(freezeMessage, btnSubmitId) {
    //alert("Preview Submit Button: " + btnSubmitId);
    var returnValue = true;

    if (findObj("hdfConfigItemId") != null) {

        returnValue = putEditValuesInStaticFields();

        //alert("doSaveSubmit 2: " + returnValue);

        if (returnValue) {
            returnValue = showHeadingChangePopup(btnSubmitId);
            //alert("doSaveSubmit 3: " + returnValue);
        }
        if (returnValue) {
            FreezeScreen(freezeMessage);

            //alert("doSaveSubmit 4: " + returnValue);
        }
        //alert("doSaveSubmit 5: " + returnValue);


    }

    //need to use button, not link button for validation to work, hence...
    if (returnValue == true) {
        //alert("About ot click: " + btnSubmitId);
        findObj(btnSubmitId).click();
    }
    return false;
}


//put server-side control values into server-side input boxes with friendly names
function putEditValuesInStaticFields() {
    var returnValue = true;
    // alert("putEditValuesInStaticFields");
    if (findObj("hdfConfigItemId") != null) {
        var configItemId = findObj("hdfConfigItemId").value;
        //alert("putEditValuesInStaticFields");
        updateHiddenFieldValue("Heading");

        //alert(findObj("hdfHeadingValue"));

        if (findObj("hdfHeadingValue").value == "") {
            //alert("Heading must have a value.");
            //jQuery('#divHeadingModal').modal();
            returnValue = false;
        }
        else {
            if (configItemId == "2" || configItemId == "4") {
                updateHiddenFieldValue("ItemDate");
                updateHiddenFieldValue("ExpiryDate");
                updateHiddenFieldValue("Summary");
                updateHiddenFieldValueFromCheckbox("Featured");
            }

            setEditorValue();
            returnValue = true;
        }
    }
    else {
        returnValue = false;
    }
    return returnValue;
}

function updateSeo() {
    FreezeScreen('Saving Changes');
    window.__doPostBack('DoSeo', 'DoSeo');
    return false;
}

function updateSeoNew() {
    if (findObj("hdfConfigItemId") == null) //not in edit mode
    {
        return true;
    }
    else {
        var msg = "";
        var configItemId = findObj("hdfConfigItemId").value;

        putEditValuesInStaticFields();


        if (getCleanValue("hdfHeadingValue") == getCleanValue("hdfHeadingValueOriginal")) {
            //alert("Same: Orig:" + getCleanValue("hdfHeadingValueOriginal") + ", New:"+ getCleanValue("hdfHeadingValue"));
        }
        else {
            //alert("Different: Orig:" + getCleanValue("hdfHeadingValueOriginal") + ", New:"+ getCleanValue("hdfHeadingValue"));
            msg = "\nPage heading has changed.";
        }


        if (msg != "") {
            if (confirm(msg + "You have changed the heading?")) {
                //alert("Do Save Changes");
                FreezeScreen('Saving Changes');
                window.__doPostBack('DoPublish', 'DoPublish');
                return false;
            }
            else {
                return true; //ignore changes
            }
        }
        else {
            return true;
        }
    }
}

function updatePageChanges() {
    if (findObj("hdfConfigItemId") == null) {
        return true;
    }
    else {
        var msg = "";
        var configItemId = findObj("hdfConfigItemId").value;

        putEditValuesInStaticFields();

        if (HTMLDecode(getCleanInnerHtml('divEditorValueOriginal')) == getCleanValue("hdfEditorValue")) {
            //alert("Same: Orig:" + MM_findObj('divEditorValueOriginal').innerHTML + ", New:"+ findObj("hdfEditorValue").value);
        }
        else {
            //alert("Different: Orig:" + MM_findObj('divEditorValueOriginal').innerHTML + ", New:"+ findObj("hdfEditorValue").value);
            msg = "\nPage body has changed.";
        }


        if (getCleanValue("hdfHeadingValue") == getCleanValue("hdfHeadingValueOriginal")) {
            //alert("Same: Orig:" + getCleanValue("hdfHeadingValueOriginal") + ", New:"+ getCleanValue("hdfHeadingValue"));
        }
        else {
            //alert("Different: Orig:" + getCleanValue("hdfHeadingValueOriginal") + ", New:"+ getCleanValue("hdfHeadingValue"));
            msg = "\nPage heading has changed.";
        }

        if (configItemId == "2" || configItemId == "4") {
            if (getCleanValue("hdfSummaryValue") == getCleanValue("hdfSummaryValueOriginal")) {
                //alert("Same: Orig:" + getCleanValue("hdfSummaryValueOriginal") + ", New:"+ getCleanValue("hdfSummaryValue"));
            }
            else {
                //alert("Different: Orig:" + getCleanValue("hdfSummaryValueOriginal") + ", New:"+ getCleanValue("hdfSummaryValue"));
                msg = "\nPage Summary has changed.";
            }

            if (getCleanValue("hdfItemDateValue") == getCleanValue("hdfItemDateValueOriginal")) {
                //alert("Same: Orig:" + getCleanValue("hdfItemDateValueOriginal") + ", New:"+ getCleanValue("hdfItemDateValue"));
            }
            else {
                //alert("Different: Orig:" + getCleanValue("hdfItemDateValueOriginal") + ", New:"+ getCleanValue("hdfItemDateValue"));
                msg = "\nPage Item Date has changed.";
            }

            if (getCleanValue("hdfExpiryDateValue") == getCleanValue("hdfExpiryDateValueOriginal")) {
                //alert("Same: Orig:" + getCleanValue("hdfExpiryDateValueOriginal") + ", New:"+ getCleanValue("hdfExpiryDateValue"));
            }
            else {
                //alert("Different: Orig:" + getCleanValue("hdfExpiryDateValueOriginal") + ", New:"+ getCleanValue("hdfExpiryDateValue"));
                msg = "\nPage Expiry Date has changed.";
            }

            if (getCleanValue("hdfFeaturedValue") == getCleanValue("hdfFeaturedValueOriginal")) {
                //alert("Same: Orig:" + getCleanValue("hdfFeaturedValueOriginal") + ", New:"+ getCleanValue("hdfFeaturedValue"));
            }
            else {
                //alert("Different: Orig:" + getCleanValue("hdfFeaturedValueOriginal") + ", New:"+ getCleanValue("hdfFeaturedValue"));
                msg = "\nFeatured setting has changed.";
            }
        }

        if (msg != "") {
            if (confirm(msg + "Do you want to save changes?")) {
                //alert("Do Save Changes");
                FreezeScreen('Saving Changes');
                window.__doPostBack('DoPublish', 'DoPublish');
                return false;
            }
            else {
                return true; //ignore changes
            }
        }
        else {
            return true;
        }
    }
}

function getCleanValue(objId) {
    return trim(findObj(objId).value.toLowerCase());
}

function getCleanInnerHtml(objId) {
    return trim(findObj(objId).innerHTML.toLowerCase());
}

// HtmlDecode http://lab.msdn.microsoft.com/annotations/htmldecode.js 

//   client side version of the useful Server.HtmlDecode method 

//   takes one string (encoded) and returns another (decoded) 

function HtmlDecode(s) {

    var out = "";

    if (s == null) return;



    var l = s.length;

    for (var i = 0; i < l; i++) {

        var ch = s.charAt(i);


        if (ch == '&') {

            var semicolonIndex = s.indexOf(';', i + 1);


            if (semicolonIndex > 0) {

                var entity = s.substring(i + 1, semicolonIndex);

                if (entity.length > 1 && entity.charAt(0) == '#') {

                    if (entity.charAt(1) == 'x' || entity.charAt(1) == 'X')

                        ch = String.fromCharCode(eval('0' + entity.substring(1)));

                    else

                        ch = String.fromCharCode(eval(entity.substring(1)));

                }

                else {

                    switch (entity) {

                        case 'quot': ch = String.fromCharCode(0x0022); break;

                        case 'amp': ch = String.fromCharCode(0x0026); break;

                        case 'lt': ch = String.fromCharCode(0x003c); break;

                        case 'gt': ch = String.fromCharCode(0x003e); break;

                        case 'nbsp': ch = String.fromCharCode(0x00a0); break;

                        case 'iexcl': ch = String.fromCharCode(0x00a1); break;

                        case 'cent': ch = String.fromCharCode(0x00a2); break;

                        case 'pound': ch = String.fromCharCode(0x00a3); break;

                        case 'curren': ch = String.fromCharCode(0x00a4); break;

                        case 'yen': ch = String.fromCharCode(0x00a5); break;

                        case 'brvbar': ch = String.fromCharCode(0x00a6); break;

                        case 'sect': ch = String.fromCharCode(0x00a7); break;

                        case 'uml': ch = String.fromCharCode(0x00a8); break;

                        case 'copy': ch = String.fromCharCode(0x00a9); break;

                        case 'ordf': ch = String.fromCharCode(0x00aa); break;

                        case 'laquo': ch = String.fromCharCode(0x00ab); break;

                        case 'not': ch = String.fromCharCode(0x00ac); break;

                        case 'shy': ch = String.fromCharCode(0x00ad); break;

                        case 'reg': ch = String.fromCharCode(0x00ae); break;

                        case 'macr': ch = String.fromCharCode(0x00af); break;

                        case 'deg': ch = String.fromCharCode(0x00b0); break;

                        case 'plusmn': ch = String.fromCharCode(0x00b1); break;

                        case 'sup2': ch = String.fromCharCode(0x00b2); break;

                        case 'sup3': ch = String.fromCharCode(0x00b3); break;

                        case 'acute': ch = String.fromCharCode(0x00b4); break;

                        case 'micro': ch = String.fromCharCode(0x00b5); break;

                        case 'para': ch = String.fromCharCode(0x00b6); break;

                        case 'middot': ch = String.fromCharCode(0x00b7); break;

                        case 'cedil': ch = String.fromCharCode(0x00b8); break;

                        case 'sup1': ch = String.fromCharCode(0x00b9); break;

                        case 'ordm': ch = String.fromCharCode(0x00ba); break;

                        case 'raquo': ch = String.fromCharCode(0x00bb); break;

                        case 'frac14': ch = String.fromCharCode(0x00bc); break;

                        case 'frac12': ch = String.fromCharCode(0x00bd); break;

                        case 'frac34': ch = String.fromCharCode(0x00be); break;

                        case 'iquest': ch = String.fromCharCode(0x00bf); break;

                        case 'Agrave': ch = String.fromCharCode(0x00c0); break;

                        case 'Aacute': ch = String.fromCharCode(0x00c1); break;

                        case 'Acirc': ch = String.fromCharCode(0x00c2); break;

                        case 'Atilde': ch = String.fromCharCode(0x00c3); break;

                        case 'Auml': ch = String.fromCharCode(0x00c4); break;

                        case 'Aring': ch = String.fromCharCode(0x00c5); break;

                        case 'AElig': ch = String.fromCharCode(0x00c6); break;

                        case 'Ccedil': ch = String.fromCharCode(0x00c7); break;

                        case 'Egrave': ch = String.fromCharCode(0x00c8); break;

                        case 'Eacute': ch = String.fromCharCode(0x00c9); break;

                        case 'Ecirc': ch = String.fromCharCode(0x00ca); break;

                        case 'Euml': ch = String.fromCharCode(0x00cb); break;

                        case 'Igrave': ch = String.fromCharCode(0x00cc); break;

                        case 'Iacute': ch = String.fromCharCode(0x00cd); break;

                        case 'Icirc': ch = String.fromCharCode(0x00ce); break;

                        case 'Iuml': ch = String.fromCharCode(0x00cf); break;

                        case 'ETH': ch = String.fromCharCode(0x00d0); break;

                        case 'Ntilde': ch = String.fromCharCode(0x00d1); break;

                        case 'Ograve': ch = String.fromCharCode(0x00d2); break;

                        case 'Oacute': ch = String.fromCharCode(0x00d3); break;

                        case 'Ocirc': ch = String.fromCharCode(0x00d4); break;

                        case 'Otilde': ch = String.fromCharCode(0x00d5); break;

                        case 'Ouml': ch = String.fromCharCode(0x00d6); break;

                        case 'times': ch = String.fromCharCode(0x00d7); break;

                        case 'Oslash': ch = String.fromCharCode(0x00d8); break;

                        case 'Ugrave': ch = String.fromCharCode(0x00d9); break;

                        case 'Uacute': ch = String.fromCharCode(0x00da); break;

                        case 'Ucirc': ch = String.fromCharCode(0x00db); break;

                        case 'Uuml': ch = String.fromCharCode(0x00dc); break;

                        case 'Yacute': ch = String.fromCharCode(0x00dd); break;

                        case 'THORN': ch = String.fromCharCode(0x00de); break;

                        case 'szlig': ch = String.fromCharCode(0x00df); break;

                        case 'agrave': ch = String.fromCharCode(0x00e0); break;

                        case 'aacute': ch = String.fromCharCode(0x00e1); break;

                        case 'acirc': ch = String.fromCharCode(0x00e2); break;

                        case 'atilde': ch = String.fromCharCode(0x00e3); break;

                        case 'auml': ch = String.fromCharCode(0x00e4); break;

                        case 'aring': ch = String.fromCharCode(0x00e5); break;

                        case 'aelig': ch = String.fromCharCode(0x00e6); break;

                        case 'ccedil': ch = String.fromCharCode(0x00e7); break;

                        case 'egrave': ch = String.fromCharCode(0x00e8); break;

                        case 'eacute': ch = String.fromCharCode(0x00e9); break;

                        case 'ecirc': ch = String.fromCharCode(0x00ea); break;

                        case 'euml': ch = String.fromCharCode(0x00eb); break;

                        case 'igrave': ch = String.fromCharCode(0x00ec); break;

                        case 'iacute': ch = String.fromCharCode(0x00ed); break;

                        case 'icirc': ch = String.fromCharCode(0x00ee); break;

                        case 'iuml': ch = String.fromCharCode(0x00ef); break;

                        case 'eth': ch = String.fromCharCode(0x00f0); break;

                        case 'ntilde': ch = String.fromCharCode(0x00f1); break;

                        case 'ograve': ch = String.fromCharCode(0x00f2); break;

                        case 'oacute': ch = String.fromCharCode(0x00f3); break;

                        case 'ocirc': ch = String.fromCharCode(0x00f4); break;

                        case 'otilde': ch = String.fromCharCode(0x00f5); break;

                        case 'ouml': ch = String.fromCharCode(0x00f6); break;

                        case 'divide': ch = String.fromCharCode(0x00f7); break;

                        case 'oslash': ch = String.fromCharCode(0x00f8); break;

                        case 'ugrave': ch = String.fromCharCode(0x00f9); break;

                        case 'uacute': ch = String.fromCharCode(0x00fa); break;

                        case 'ucirc': ch = String.fromCharCode(0x00fb); break;

                        case 'uuml': ch = String.fromCharCode(0x00fc); break;

                        case 'yacute': ch = String.fromCharCode(0x00fd); break;

                        case 'thorn': ch = String.fromCharCode(0x00fe); break;

                        case 'yuml': ch = String.fromCharCode(0x00ff); break;

                        case 'OElig': ch = String.fromCharCode(0x0152); break;

                        case 'oelig': ch = String.fromCharCode(0x0153); break;

                        case 'Scaron': ch = String.fromCharCode(0x0160); break;

                        case 'scaron': ch = String.fromCharCode(0x0161); break;

                        case 'Yuml': ch = String.fromCharCode(0x0178); break;

                        case 'fnof': ch = String.fromCharCode(0x0192); break;

                        case 'circ': ch = String.fromCharCode(0x02c6); break;

                        case 'tilde': ch = String.fromCharCode(0x02dc); break;

                        case 'Alpha': ch = String.fromCharCode(0x0391); break;

                        case 'Beta': ch = String.fromCharCode(0x0392); break;

                        case 'Gamma': ch = String.fromCharCode(0x0393); break;

                        case 'Delta': ch = String.fromCharCode(0x0394); break;

                        case 'Epsilon': ch = String.fromCharCode(0x0395); break;

                        case 'Zeta': ch = String.fromCharCode(0x0396); break;

                        case 'Eta': ch = String.fromCharCode(0x0397); break;

                        case 'Theta': ch = String.fromCharCode(0x0398); break;

                        case 'Iota': ch = String.fromCharCode(0x0399); break;

                        case 'Kappa': ch = String.fromCharCode(0x039a); break;

                        case 'Lambda': ch = String.fromCharCode(0x039b); break;

                        case 'Mu': ch = String.fromCharCode(0x039c); break;

                        case 'Nu': ch = String.fromCharCode(0x039d); break;

                        case 'Xi': ch = String.fromCharCode(0x039e); break;

                        case 'Omicron': ch = String.fromCharCode(0x039f); break;

                        case 'Pi': ch = String.fromCharCode(0x03a0); break;

                        case ' Rho ': ch = String.fromCharCode(0x03a1); break;

                        case 'Sigma': ch = String.fromCharCode(0x03a3); break;

                        case 'Tau': ch = String.fromCharCode(0x03a4); break;

                        case 'Upsilon': ch = String.fromCharCode(0x03a5); break;

                        case 'Phi': ch = String.fromCharCode(0x03a6); break;

                        case 'Chi': ch = String.fromCharCode(0x03a7); break;

                        case 'Psi': ch = String.fromCharCode(0x03a8); break;

                        case 'Omega': ch = String.fromCharCode(0x03a9); break;

                        case 'alpha': ch = String.fromCharCode(0x03b1); break;

                        case 'beta': ch = String.fromCharCode(0x03b2); break;

                        case 'gamma': ch = String.fromCharCode(0x03b3); break;

                        case 'delta': ch = String.fromCharCode(0x03b4); break;

                        case 'epsilon': ch = String.fromCharCode(0x03b5); break;

                        case 'zeta': ch = String.fromCharCode(0x03b6); break;

                        case 'eta': ch = String.fromCharCode(0x03b7); break;

                        case 'theta': ch = String.fromCharCode(0x03b8); break;

                        case 'iota': ch = String.fromCharCode(0x03b9); break;

                        case 'kappa': ch = String.fromCharCode(0x03ba); break;

                        case 'lambda': ch = String.fromCharCode(0x03bb); break;

                        case 'mu': ch = String.fromCharCode(0x03bc); break;

                        case 'nu': ch = String.fromCharCode(0x03bd); break;

                        case 'xi': ch = String.fromCharCode(0x03be); break;

                        case 'omicron': ch = String.fromCharCode(0x03bf); break;

                        case 'pi': ch = String.fromCharCode(0x03c0); break;

                        case 'rho': ch = String.fromCharCode(0x03c1); break;

                        case 'sigmaf': ch = String.fromCharCode(0x03c2); break;

                        case 'sigma': ch = String.fromCharCode(0x03c3); break;

                        case 'tau': ch = String.fromCharCode(0x03c4); break;

                        case 'upsilon': ch = String.fromCharCode(0x03c5); break;

                        case 'phi': ch = String.fromCharCode(0x03c6); break;

                        case 'chi': ch = String.fromCharCode(0x03c7); break;

                        case 'psi': ch = String.fromCharCode(0x03c8); break;

                        case 'omega': ch = String.fromCharCode(0x03c9); break;

                        case 'thetasym': ch = String.fromCharCode(0x03d1); break;

                        case 'upsih': ch = String.fromCharCode(0x03d2); break;

                        case 'piv': ch = String.fromCharCode(0x03d6); break;

                        case 'ensp': ch = String.fromCharCode(0x2002); break;

                        case 'emsp': ch = String.fromCharCode(0x2003); break;

                        case 'thinsp': ch = String.fromCharCode(0x2009); break;

                        case 'zwnj': ch = String.fromCharCode(0x200c); break;

                        case 'zwj': ch = String.fromCharCode(0x200d); break;

                        case 'lrm': ch = String.fromCharCode(0x200e); break;

                        case 'rlm': ch = String.fromCharCode(0x200f); break;

                        case 'ndash': ch = String.fromCharCode(0x2013); break;

                        case 'mdash': ch = String.fromCharCode(0x2014); break;

                        case 'lsquo': ch = String.fromCharCode(0x2018); break;

                        case 'rsquo': ch = String.fromCharCode(0x2019); break;

                        case 'sbquo': ch = String.fromCharCode(0x201a); break;

                        case 'ldquo': ch = String.fromCharCode(0x201c); break;

                        case 'rdquo': ch = String.fromCharCode(0x201d); break;

                        case 'bdquo': ch = String.fromCharCode(0x201e); break;

                        case 'dagger': ch = String.fromCharCode(0x2020); break;

                        case 'Dagger': ch = String.fromCharCode(0x2021); break;

                        case 'bull': ch = String.fromCharCode(0x2022); break;

                        case 'hellip': ch = String.fromCharCode(0x2026); break;

                        case 'permil': ch = String.fromCharCode(0x2030); break;

                        case 'prime': ch = String.fromCharCode(0x2032); break;

                        case 'Prime': ch = String.fromCharCode(0x2033); break;

                        case 'lsaquo': ch = String.fromCharCode(0x2039); break;

                        case 'rsaquo': ch = String.fromCharCode(0x203a); break;

                        case 'oline': ch = String.fromCharCode(0x203e); break;

                        case 'frasl': ch = String.fromCharCode(0x2044); break;

                        case 'euro': ch = String.fromCharCode(0x20ac); break;

                        case 'image': ch = String.fromCharCode(0x2111); break;

                        case 'weierp': ch = String.fromCharCode(0x2118); break;

                        case 'real': ch = String.fromCharCode(0x211c); break;

                        case 'trade': ch = String.fromCharCode(0x2122); break;

                        case 'alefsym': ch = String.fromCharCode(0x2135); break;

                        case 'larr': ch = String.fromCharCode(0x2190); break;

                        case 'uarr': ch = String.fromCharCode(0x2191); break;

                        case 'rarr': ch = String.fromCharCode(0x2192); break;

                        case 'darr': ch = String.fromCharCode(0x2193); break;

                        case 'harr': ch = String.fromCharCode(0x2194); break;

                        case 'crarr': ch = String.fromCharCode(0x21b5); break;

                        case 'lArr': ch = String.fromCharCode(0x21d0); break;

                        case 'uArr': ch = String.fromCharCode(0x21d1); break;

                        case 'rArr': ch = String.fromCharCode(0x21d2); break;

                        case 'dArr': ch = String.fromCharCode(0x21d3); break;

                        case 'hArr': ch = String.fromCharCode(0x21d4); break;

                        case 'forall': ch = String.fromCharCode(0x2200); break;

                        case 'part': ch = String.fromCharCode(0x2202); break;

                        case 'exist': ch = String.fromCharCode(0x2203); break;

                        case 'empty': ch = String.fromCharCode(0x2205); break;

                        case 'nabla': ch = String.fromCharCode(0x2207); break;

                        case 'isin': ch = String.fromCharCode(0x2208); break;

                        case 'notin': ch = String.fromCharCode(0x2209); break;

                        case 'ni': ch = String.fromCharCode(0x220b); break;

                        case 'prod': ch = String.fromCharCode(0x220f); break;

                        case 'sum': ch = String.fromCharCode(0x2211); break;

                        case 'minus': ch = String.fromCharCode(0x2212); break;

                        case 'lowast': ch = String.fromCharCode(0x2217); break;

                        case 'radic': ch = String.fromCharCode(0x221a); break;

                        case 'prop': ch = String.fromCharCode(0x221d); break;

                        case 'infin': ch = String.fromCharCode(0x221e); break;

                        case 'ang': ch = String.fromCharCode(0x2220); break;

                        case 'and': ch = String.fromCharCode(0x2227); break;

                        case 'or': ch = String.fromCharCode(0x2228); break;

                        case 'cap': ch = String.fromCharCode(0x2229); break;

                        case 'cup': ch = String.fromCharCode(0x222a); break;

                        case 'int': ch = String.fromCharCode(0x222b); break;

                        case 'there4': ch = String.fromCharCode(0x2234); break;

                        case 'sim': ch = String.fromCharCode(0x223c); break;

                        case 'cong': ch = String.fromCharCode(0x2245); break;

                        case 'asymp': ch = String.fromCharCode(0x2248); break;

                        case 'ne': ch = String.fromCharCode(0x2260); break;

                        case 'equiv': ch = String.fromCharCode(0x2261); break;

                        case 'le': ch = String.fromCharCode(0x2264); break;

                        case 'ge': ch = String.fromCharCode(0x2265); break;

                        case 'sub': ch = String.fromCharCode(0x2282); break;

                        case 'sup': ch = String.fromCharCode(0x2283); break;

                        case 'nsub': ch = String.fromCharCode(0x2284); break;

                        case 'sube': ch = String.fromCharCode(0x2286); break;

                        case 'supe': ch = String.fromCharCode(0x2287); break;

                        case 'oplus': ch = String.fromCharCode(0x2295); break;

                        case 'otimes': ch = String.fromCharCode(0x2297); break;

                        case 'perp': ch = String.fromCharCode(0x22a5); break;

                        case 'sdot': ch = String.fromCharCode(0x22c5); break;

                        case 'lceil': ch = String.fromCharCode(0x2308); break;

                        case 'rceil': ch = String.fromCharCode(0x2309); break;

                        case 'lfloor': ch = String.fromCharCode(0x230a); break;

                        case 'rfloor': ch = String.fromCharCode(0x230b); break;

                        case 'lang': ch = String.fromCharCode(0x2329); break;

                        case 'rang': ch = String.fromCharCode(0x232a); break;

                        case 'loz': ch = String.fromCharCode(0x25ca); break;

                        case 'spades': ch = String.fromCharCode(0x2660); break;

                        case 'clubs': ch = String.fromCharCode(0x2663); break;

                        case 'hearts': ch = String.fromCharCode(0x2665); break;

                        case 'diams': ch = String.fromCharCode(0x2666); break;

                        default: ch = ''; break;

                    }

                }

                i = semicolonIndex;
            }

        }


        out += ch;

    }



    return out;


} 




