// JScript File
var is_a = false;
var is_b = false;
var is_i = false;
var last_open = new Array();

function to_user(name) {
    var edits = document.getElementsByTagName('textarea');
    for (i = 0; i < edits.length; i++) {
        if (edits[i].name.search('AnswerBody') > 0) {
            edits[i].focus();
            edits[i].value += '[B]' + name + '[/B], ';
            edits[i].focus();
            return false;
        }
    }
    return false;
}

function type_bold_old (box_id)
{
	if (type_tag (box_id, "[B]", "[/B]", is_b))
		is_b = !is_b;
}

function type_italic_old (box_id) 
{
	if (type_tag (box_id, "[I]", "[/I]", is_i))
		is_i = !is_i;
}

function type_a_old (box_id)
{
	if (type_tag (box_id, "[A]", "[/A]", is_a))
		is_a = !is_a;
}

function type_tag_old (box_id, tag1, tag2, flag) 
{
	var edits = document.getElementsByTagName('textarea');
	for (i = 0; i < edits.length; i++) {
		if (edits[i].id.search(box_id)>0) {		
			if (flag && last_open.length>0 && last_open[last_open.length-1] != tag1) {
				return false;
			}
			edits[i].focus();
			edits[i].value += (!flag) ? tag1 : tag2;
			edits[i].focus();
			if (!flag)
				last_open[last_open.length] = tag1; 
			else
				last_open.splice(last_open.length-1, 1);
			return true;
		}
	}
}

function type_smile (box_id, smile)
{
	var textObj = document.getElementById(box_id);
	textObj.value += smile;
}

function type_bold (box_id)
{
	type_tag (box_id, "bold");
}

function type_italic (box_id) 
{
	type_tag (box_id, "italic");
}

function type_underline(box_id) 
{
	type_tag (box_id, "underline");
}

function type_a (box_id)
{
	type_tag (box_id, "url");
}

function type_img (box_id)
{
	type_tag (box_id, "img");
}

function type_tag (box_id, cmd) 
{
	//var textObj = null;
	//var edits = document.getElementsByTagName('textarea');
		
	/*for (i = 0; i < edits.length; i++) {
		if (edits[i].id.search(box_id)>0) {
			textObj = edits[i];
			break;
		}
	}*/
	
	var textObj = document.getElementById(box_id);
	switch(cmd) {
		case "bold":
			wrapSelection(textObj,"[B]","[/B]");
			break;
		case "italic":
			wrapSelection(textObj,"[I]","[/I]");
			break;
		case "url":
			wrapSelection(textObj,"[A]","[/A]");
			break;			
		case "underline":
			wrapSelection(textObj,"[U]","[/U]");
			break;
		case "code":
			wrapSelection(textObj,"[code]","[/code]");
			break;
		case "img":
			wrapSelection(textObj,"[IMG]","[/IMG]");
			break;
		case "quote":
			wrapSelection(textObj,"[quote]","[/quote]");
			break;
		case "justifyleft":
			wrapSelection(textObj,"[left]","[/left]");
			break;
		case "justifycenter":
			wrapSelection(textObj,"[center]","[/center]");
			break;
		case "justifyright":
			wrapSelection(textObj,"[right]","[/right]");
			break;
		case "link":
			var url = prompt('Ââåäèòå Àäðåñ:','http://');
			if (url != '' && url != null)
			{
				if (getSelection(textObj))
				{
					wrapSelection(textObj,'[url='+url+']','[/url]');
				}
				else
				{
					// ask for the description text...
					var desc = prompt('Ââåäèòå îïèñàíèå:','');
					if (desc != '' && desc != null)
						replaceSelection(textObj,'[url='+url+']'+desc+'[/url]');
					else
						replaceSelection(textObj,'[url]'+url+'[/url]');
				}
			}
			break;
		case "color":
			wrapSelection(textObj,"[color="+option+"]","[/color]");
			break;
		case "fontsize":
			wrapSelection(textObj,"[size="+option+"]","[/size]");
			break;
		default:
			break;
	}
}

function storeCaret(input) {
	if(input.createTextRange) {
		input.caretPos = document.selection.createRange().duplicate();
	}
}

function setSelectionRange(input, selectionStart, selectionEnd) {
	if (input.setSelectionRange) {
		input.focus();
		input.setSelectionRange(selectionStart, selectionEnd);
	} else if(input.createTextRange) {
		var range = input.createTextRange();
		range.collapse(true);
		range.moveEnd('character', selectionEnd);
		range.moveStart('character', selectionStart);
		range.select();
	}
}

function setCaretToPos (input, pos) {
	setSelectionRange(input, pos, pos);
}

function replaceSelection (input, replaceString) {    
	if (input.setSelectionRange)
	{
		var selectionStart = input.selectionStart;
		var selectionEnd = input.selectionEnd;
		var scrollTop = input.scrollTop;
		
		input.value = input.value.substring(0, selectionStart)
					+ replaceString
					+ input.value.substring(selectionEnd);

		if (selectionStart != selectionEnd) // has there been a selection
			setSelectionRange(input, selectionStart, selectionStart + 
				replaceString.length);
		else // set caret
			setCaretToPos(input, selectionStart + replaceString.length);
			
		input.scrollTop = scrollTop;
	
	} else if (document.selection) {
		if(input.caretPos) {
			var caretPos = input.caretPos;
			caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : replaceString;
			if(caretPos.text!='') {
				caretPos.moveStart('character', -replaceString.length);
				caretPos.select();
			}
		} else {
			input.value += replaceString;
		}
	} else {
		input.value += replaceString;
		input.focus();
	}
}

function wrapSelection (input, preString, postString) {
	if (input.setSelectionRange) {
		var selectionStart = input.selectionStart;		
		var selectionEnd = input.selectionEnd;
		var scrollTop = input.scrollTop;
		
		input.value = input.value.substring(0, selectionStart)
					+ preString
					+ input.value.substring(selectionStart,selectionEnd)
					+ postString
					+ input.value.substring(selectionEnd);
		if (selectionStart != selectionEnd) // has there been a selection
			setSelectionRange(input, selectionStart, preString.length + postString.length + selectionEnd);
		else // set caret
			setCaretToPos(input, selectionStart + (preString+postString).length);
			
		input.scrollTop = scrollTop;
		
	} else if (document.selection) {
		var sel = document.selection.createRange().text;
		if(sel) {
			document.selection.createRange().text = preString + sel + postString;
			input.focus();
		} else {
			input.value += preString + postString;
			input.focus();
		}
	} else {
		input.value += preString + postString;
		input.focus();
	}
}

function getSelection(input) {
	if(input.setSelectionRange) {
		return input.selectionStart != input.selectionEnd;
	} else if(document.selection) {
		var range = document.selection.createRange();
		return range.parentElement()==input && range.text!='';
	} else {
		return false;
	}
}
