function aLink(e){
  var str = getSelection(e);
  if (!str)
    return;
  var re = window.prompt("URL", "");
  if (re != null){
    setSelection(e , '<a href="' + re + '">' + str + '</a>');
  }
  return false;
}
function tLink(e){
  var str = getSelection(e);
  if (!str)
    return;
  var re = window.prompt("URL", "");
  if (re != null){
    setSelection(e , '<a href="' + re + '" target="new">' + str + '</a>');
  }
  return false;
}

function aLinkTarget(e){
  var str = getSelection(e);
  if (!str)
    return;
  var re = window.prompt("URL", "");
  if (re != null){
    setSelection(e , '<a href="' + re + '" target="new">' + str + '</a>');
  }
  return false;
}
/**********************************/

function getSelection (e) {
    if (document.selection)
        return document.selection.createRange().text;
    else {
        var length = e.textLength;
        var start = e.selectionStart;
        var end = e.selectionEnd;
        if (end == 1 || end == 2) end = length;
        return e.value.substring(start, end);
    }
}

function setSelection (e, v) {
    if (document.selection)
        document.selection.createRange().text = v;
    else {
        var length = e.textLength;
        var start = e.selectionStart;
        var end = e.selectionEnd;
        if (end == 1 || end == 2) end = length;
        e.value = e.value.substring(0, start) + v + e.value.substr(end, length);
    }
}

function formatStr (e, v) {
    var str = getSelection(e);
    if (!str) return;
    setSelection(e, '<' + v + '>' + str + '</' + v + '>');
    return false;
}

function formatStyle(e , v) {
    var str = getSelection(e);
    if (!str) return;
    setSelection(e, '<' + v + ' STYLE=" ">' + str + '</' + v + '>');
    return false;
}
function formatClass(e , v) {
    var str = getSelection(e);
    if (!str) return;
    setSelection(e, '<' + v + ' CLASS="wak">' + str + '</' + v + '>');
    return false;
}

function formatFont(e , v){
    var str = getSelection(e);
    if (!str) return;
    setSelection(e, '<span style="color:' + v + ';">' + str + '</span>');
    return false;
}

function chengTagF(e , v){
    var str = getSelection(e);
    if (!str) return;
    setSelection(e, '&lt;');
    return false;
}

function shiftKey(obj){
  if (event.ctrlKey != true && event.shiftKey != true) return;
  //insertAtCaret(obj , ">");
}

function insertLink (e, isMail) {
    var str = getSelection(e);
    if (!str) return;
    var my_link = isMail ? prompt('Enter email address:') : prompt('Enter URL:',  window.clipboardData.getData("Text"));
    if (isMail) my_link = 'mailto:' + my_link;
    if (my_link != null)
        setSelection(e, '<a href="' + my_link + '" target="newWin" >' + str + '</a>');
    return false;
}
function insertLink3 (e , option , isMail) {
    var str = getSelection(e);
    if (!str) return;
    var my_link = isMail ? prompt('Enter email address:') : prompt('Enter URL:',  window.clipboardData.getData("Text"));
    if (isMail) my_link = 'mailto:' + my_link;
    if (my_link != null)
        setSelection(e, '<a href="' + my_link + '" ' + option + '>' + str + '</a>');
    return false;
}

// rel="nofollow"

function insertLinkRef (e, isMail) {
    var str = getSelection(e);
    if (!str) return;
    var my_link = isMail ? prompt('Enter email address:') : prompt('Enter URL:',  window.clipboardData.getData("Text"));
    if (isMail) my_link = 'mailto:' + my_link;
    if (my_link != null)
        setSelection(e, '<a href="' + my_link + '" target="newWin" rel="nofollow">' + str + '</a>');
    return false;
}


function insertLink2 (e, isMail) {
    var str = getSelection(e);
    if (!str) return;
    var my_link = isMail ? prompt('Enter email address:') : prompt('Enter URL:',  window.clipboardData.getData("Text"));
    if (isMail) my_link = 'mailto:' + my_link;
    if (my_link != null)
        setSelection(e, '<a href="' + my_link + '">' + str + '</a>');
    return false;
}

function doCheckAll (f, v) {
    var e = f.id;
    if (e.value)
        e.checked = v;
    else
        for (i=0; i<e.length; i++) 
            e[i].checked = v;
}

function addTAG(obj , tag1 , tag2){
  var str;
  if (tag2 != "")
    str = tag1 + "\n" + tag2;
  else
    str = tag1;
  document.getElementById(obj).value += str;
}

function insertAtCaret (textEl, text) {


   if (textEl.createTextRange && textEl.caretPos) {
     var caretPos = textEl.caretPos;
     caretPos.text =
       caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?
         text + ' ' : text;
   }else
     textEl.value  = text;
  textEl.focus( );
  var rng = textEl.createTextRange( );
  rng.collapse( );
  if (text != "\n"){
    try{
      rng.move("character" , rng.value.length - 1);
    }catch(e){
      rng.move("character" , textEl.value.length);
    }
  }else{
    try{
      rng.move("character" , rng.value.length );
    }catch(e){
    }
  }
  rng.select( );
}

function storeCaret (textEl) {
       if (textEl.createTextRange)
         textEl.caretPos = document.selection.createRange().duplicate();
}


function TextAreaCopy(textEl){
  var str = textEl.value;
  window.clipboardData.setData("text" , str);
}

function TextCopy(textEl){

    var str = getSelection(textEl);
    if (!str) return;
    window.clipboardData.setData("Text" , str);
}
function TextPaste(textEl){

  insertAtCaret(textEl , window.clipboardData.getData("Text"));
}

function TextAreaSize(textEl , size){
  textEl.rows = size;
}

function enclosesStr(e , str1 , str2){
  
    var str = getSelection(e);
    if (!str) return;
    setSelection(e, str1 + str + str2);
    return false;
}

function insertDate(textEl){

  weekArr = new Array("<FONT COLOR='red'>SUN</FONT>" , "MON" , "TUE" , "WED" , "THU" , "FRI" , "<FONT COLOR='blue'>SAT</FONT>");
  var d   = new Date( );
  year    = d.getYear();
  month   = d.getMonth() + 1;
  if (month < 10) month = '0' + month;
  day     = d.getDate();
  if (day < 10) day = '0' + day;
  week    = weekArr[d.getDay()];
  hours   = d.getHours();
  min     = d.getMinutes();
  if (min < 10) min = '0' + min;
  sec     = d.getSeconds();
  if (sec < 10) sec = '0' + sec;
  if (hours < 10) hours = '0' + hours;
  insertAtCaret(textEl , '<SPAN STYLE="FONT-SIZE:10px; LETTER-SPACING:0px;">' + year + "/" + month + "/" + day + "[" + week + "] " + hours + ":" + min + ":" + sec + '</SPAN>');
}

function formatTitle (e, v , cs) {
    var str = getSelection(e);
    if (!str) return;
    setSelection(e, '<' + v + ' CLASS=\'' + cs + '\'>' + str + '</' + v + '>');
    return false;
}

function keyDown(e){
  
}

/********************************* spanColor **************************************************/
function spanColor(e , color){
  var str = getSelection(e);
  if (!str)
    return;
  setSelection(e , '<span style="color: ' + color + ';">' + str + "</span>");
  return ;
}


