function SafeAttachEvent(oElement, sEvent, pResult) {
    if (oElement.addEventListener) {
        oElement.addEventListener(sEvent, pResult, false);
    } else if (oElement.attachEvent) {
        oElement.attachEvent('on' + sEvent, pResult);
    }
}

function SafeDetachEvent(oElement, sEvent, pResult) {
    if (oElement.removeEventListener) {
        oElement.removeEventListener(sEvent, pResult, false);
    } else if (oElement.detachEvent) {
        oElement.detachEvent('on' + sEvent, pResult);
    }
}

function ResizePlayer(iWidth, iHeight) {
    var oVideoContainer;
    oVideoContainer = document.getElementById('videoContainer');
    if (oVideoContainer) {
        oVideoContainer.style.width = iWidth + 'px';
        oVideoContainer.style.height = iHeight + 'px';
        oVideoContainer.style.display = 'block';
    }
}

function ExpandSelection(oOldSelection) {
    var oSelection = oOldSelection.duplicate();
    var oFoundElement = null;
    var oElement;
    var iIndex = 0;
    oElement = oSelection.parentElement();
    while (iIndex < 25 && oElement != null) {
        iIndex++;
        switch (oElement.tagName.toLowerCase()) {
            case 'div':
            case 'span':
            case 'p':
                oElement = null;
                break;
            default:
                oFoundElement = oElement;
                oElement = oElement.parentElement;
                oSelection.moveToElementText(oFoundElement);
                break;
        }
    }
    if (oFoundElement != null) {
        return (oSelection);
    }
    return (oOldSelection);
}

function ApplyStyle(tagName, sClassName) {
    var oSelection;
    var oWasFocused;
    oSelection = document.selection.createRange();
    oWasFocused = document.getElementById(document.getElementById('FocusedElement').value);
    if (oSelection) {
        var snewText;
        oSelection = ExpandSelection(oSelection);
        if (0 < sClassName.length) {
            snewText = '<' + tagName + ' class="' + sClassName + '">' + oSelection.text + '</' + tagName + '>';
        }
        else {
            snewText = '<' + tagName + '>' + oSelection.text + '</' + tagName + '>';
        }
        oSelection.select();
        document.execCommand('Delete');
        oSelection.pasteHTML(snewText);
    }
    if (oWasFocused) {
        oWasFocused.fireEvent('onkeyup');
    }
}
