function FFMCodes(id, Value, Value2) {
		//IE support
		Value = ' ' + Value + ' ';
		var Field=document.getElementById(id);
		if (document.selection) {
			Field.focus();
			sel = document.selection.createRange();
			if (Value2){
				sel.text = Value+sel.text+Value2;
			}else{
				sel.text = Value;
			}
			//Field.focus();
		}
		
		//MOZILLA/NETSCAPE support
		else if (Field.selectionStart || Field.selectionStart == '0') {
			Field.focus();
			var startPos = Field.selectionStart;
			var endPos = Field.selectionEnd;
			
			if (Value2){
				Field.value = Field.value.substring(0, startPos)+ Value + Field.value.substring(startPos, endPos) + Value2 + Field.value.substring(endPos, Field.value.length);
			}else{
				Field.value = Field.value.substring(0, startPos)+ Value + Field.value.substring(endPos, Field.value.length);
			}
			Field.focus();
            Field.selectionStart=Field.value.length;
            Field.selectionEnd=Field.value.length;
		} else {
			Field.focus();
			if (Value2){
				Field.value += Value+Value2;
			}else{
				Field.value += Value;	
			}
			//Field.focus();
		}
		//setCaretToPos(Field, 1000);
		//Field.focus();
		Field.onchange();
	}
	
function emoticonCodes(id, Value, Value2) {
		//IE support
		Value = ' ' + Value + ' ';
		var Field=document.getElementById(id);
		if (document.selection) {
			Field.focus();
			sel = document.selection.createRange();
			if (Value2){
				sel.text = Value+sel.text+Value2;
			}else{
				sel.text = Value;
			}
			//Field.focus();
		}
		
		//MOZILLA/NETSCAPE support
		else if (Field.selectionStart || Field.selectionStart == '0') {
			Field.focus();
			var startPos = Field.selectionStart;
			var endPos = Field.selectionEnd;
			
			if (Value2){
				Field.value = Field.value.substring(0, startPos)+ Value + Field.value.substring(startPos, endPos) + Value2 + Field.value.substring(endPos, Field.value.length);
			}else{
				Field.value = Field.value.substring(0, startPos)+ Value + Field.value.substring(endPos, Field.value.length);
			}
			Field.focus();
            Field.selectionStart=Field.value.length;
            Field.selectionEnd=Field.value.length;
		} else {
			Field.focus();
			if (Value2){
				Field.value += Value+Value2;
			}else{
				Field.value += Value;	
			}
			//Field.focus();
		}
		//setCaretToPos(Field, 1000);
		Field.focus();
		//Field.onchange();
	}


function emoticon(id, Value, Value2) {
		//IE support
		Value = ' ' + Value + ' ';
		var Field=opener.document.getElementById(id);
		if (opener.document.selection) {
			Field.focus();
			sel = opener.document.selection.createRange();
			if (Value2){
				sel.text = Value+sel.text+Value2;
			}else{
				sel.text = Value;
			}
		}
		
		//MOZILLA/NETSCAPE support
		else if (Field.selectionStart || Field.selectionStart == '0') {
			var startPos = Field.selectionStart;
			var endPos = Field.selectionEnd;
			Field.focus();
			if (Value2){
				Field.value = Field.value.substring(0, startPos)+ Value + Field.value.substring(startPos, endPos) + Value2 + Field.value.substring(endPos, Field.value.length);
			}else{
				Field.value = Field.value.substring(0, startPos)+ Value + Field.value.substring(endPos, Field.value.length);
			}
			
		} else {
			Field.focus();
			if (Value2){
				Field.value += Value+Value2;
			}else{
				Field.value += Value;	
			}
		}
		Field.focus();
	}


function setSelectionRange(input, selectionStart, selectionEnd) { 
  if (input.setSelectionRange) { 
  	alert(1);
    input.focus(); 
    input.setSelectionRange(selectionStart, selectionEnd); 
  } 
  else if (input.createTextRange) { 
  	alert(2);
    var range = input.createTextRange(); 
    range.collapse(true); 
    range.moveEnd('character', selectionEnd); 
    range.moveStart('character', selectionStart); 
    range.select(); 
  }else{ 
  	alert(3);
  }
} 
 
function setCaretToPos (input, pos) { 
  setSelectionRange(input, pos, pos); 
} 