var area;
var showDiv;
var formattedStr = "";
startPosition = 0;
var endPosition = 0;
window.onload = function()
{
area = document.getElementById("area");
showDiv = document.getElementById("showDiv");
};
function publish()
{
formattedStr = "+document.getElementById("area").value+"";
showDiv.innerHTML = formattedStr;
}
function insertsBoldTag()
{
findPositions();
var text = area.value;
if (startPosition!=endPosition) {
var sbStr = text.substring(startPosition,endPosition);
sbStr = ""+sbStr+"";
fillsFormattedString(text,sbStr);
}
}
function insertsItalicTag()
{
findPositions();
var text = area.value;
if (startPosition!=endPosition) {
var sbStr = text.substring(startPosition,endPosition);
sbStr = ""+sbStr+"";
fillsFormattedString(text,sbStr);
}
}
function insertsUnderlineTag()
{
findPositions();
var text = area.value;
if (startPosition!=endPosition) {
var sbStr = text.substring(startPosition,endPosition);
sbStr = ""+sbStr+"";
fillsFormattedString(text,sbStr);
}
}
function insertsDeleteTag()
{
findPositions();
var text = area.value;
if (startPosition!=endPosition) {
var sbStr = text.substring(startPosition,endPosition);
sbStr = "
fillsFormattedString(text,sbStr);
}
}
function findPositions()
{
var text = area.value;
if (document.selection) {
// Internet Explorer
var range = document.selection.createRange();
var dpl = range.duplicate();
if (range.text.length > 0) {
dpl.moveToElementText(area);
dpl.setEndPoint("EndToEnd", range);
startPosition = dpl.text.length-range.text.length;
endPosition = startPosition + range.text.length;
}
}
else {
// Mozilla Firefox
startPosition = area.selectionStart;
endPosition = area.selectionEnd;
}
}
function fillsFormattedString(text, selectedText)
{
// split textarea value into three pieces: before startPosition,
// startPosition until endPosition, and after endPosition
var str1 = text.substring(0,startPosition);
var str2 = text.substring(startPosition,endPosition);
var str3 = text.substring(endPosition,text.length);
// replace str2 with formatted substring (selectedText)
str2 = selectedText;
// form the new string
formattedStr = str1+str2+str3;
area.value = formattedStr;
}