var area;
var showDiv;
var formattedStr = "";
startPosition = 0;
var endPosition = 0;

function puttags(sarea, inputid)
{
	area = document.getElementById(inputid);
	showDiv = document.getElementById("showDiv");
	switch(sarea)
	{
		case 1:
			insertsBoldTag();
		break;
		case 2:
			insertsItalicTag();
		break;
		case 3:
			insertsUnderlineTag();
		break;
		case 4:
			insertsBRTag();
		break;
		case 5:
			getImageValue();
		break;
		case 6:
			Remove();
		break;
		case 7:
			insertsBigTag();
		break;
		case 8:
			getLinkValue();
		break;
	}
}

function publish()
{
formattedStr = document.getElementById('area').value;
	//formattedStr = "<pre>"+document.getElementById('area').value+"</pre>";
	showDiv.innerHTML = formattedStr;
}

function insertsBoldTag()
{
	findPositions();

	var text = area.value;
	if (startPosition!=endPosition) {
		var sbStr = text.substring(startPosition,endPosition);
		sbStr = "<b>"+sbStr+"</b>";

		fillsFormattedString(text,sbStr);
	}
}

function insertsItalicTag()
{
	findPositions();

	var text = area.value;
	if (startPosition!=endPosition) {
		var sbStr = text.substring(startPosition,endPosition);
		sbStr = "<i>"+sbStr+"</i>";

		fillsFormattedString(text,sbStr);
	}
}

function insertsBigTag()
{
	findPositions();

	var text = area.value;
	if (startPosition!=endPosition) {
		var sbStr = text.substring(startPosition,endPosition);
		sbStr = "<big>"+sbStr+"</big>";

		fillsFormattedString(text,sbStr);
	}
}

function insertsUnderlineTag()
{
	findPositions();

	var text = area.value;
	if (startPosition!=endPosition) {
		var sbStr = text.substring(startPosition,endPosition);
		sbStr = "<u>"+sbStr+"</u>";

		fillsFormattedString(text,sbStr);
	}
}

function insertsBRTag()
{
	findPositions();

	var text = area.value;
	if (startPosition==endPosition) {
		var sbStr = text.substring(startPosition,endPosition);
		sbStr = "<br>"+sbStr+"";

		fillsFormattedString(text,sbStr);
	}
}

function Remove()
{
	findPositions();

	var text = area.value;
	if (startPosition!=endPosition) {
		var sbStr = text.substring(startPosition,endPosition);
		sbStr = "";
		text=area.value;
		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;
}

function getImageValue(){
	findPositions();
if (startPosition!=endPosition){
	alert('Try again, but do not make a text selection. Only select your image placement point')
		}
		else{
   var retVal = prompt("Enter image address : ", "your image address here");
	if(retVal == null) return false;
  insertsImageTag(retVal)
		     }
	}

function getLinkValue(){
   var retVal = prompt("Enter link address : ", "http://");
   if(retVal == null) return false;
  insertsLinkTag(retVal)
	}
	
function insertsImageTag(retVal){
	findPositions();
	var text = area.value;
	var sbStrI = retVal;
		var sbStr = text.substring(startPosition,endPosition);
		sbStr = "<img src='"+sbStrI+"'>";
		fillsFormattedString(text,sbStr);
	}

function insertsLinkTag(retVal){
	findPositions();
	var text = area.value;
	if (startPosition!=endPosition) {
var sbStrI = retVal;
		var sbStr = text.substring(startPosition,endPosition);
		var ThesbStr = "<a href='"+sbStrI+"'>"+sbStr+"</a>";
		fillsFormattedString(text,ThesbStr);
	}
}

