/*
 *var rangeG=null;
var cursorPosG=null;

function saveCursorPosition(){
  var control = document.getElementById('messText');
  var scroll_top = control.scrollTop;
  if(!!document.selection){
    control.focus();
    rangeG = (this.range) ? this.range : document.selection.createRange();
  }else if(!!control.setSelectionRange){
    cursorPosG=control.selectionEnd;
  }
  control.scrollTop = scroll_top;
}

function replaceSelectionW(text){
  var control = document.getElementById('messText');
  var scroll_top = control.scrollTop;
  if(!!document.selection){
    control.focus();
    var range = rangeG;
    range.text = text;
    range.select();
  }else if(!!control.setSelectionRange){
    cursorPos=cursorPosG;
    control.selectionStart = cursorPosG;
    control.selectionEnd = cursorPosG;
    control.value = control.value.substring(0,control.selectionStart) + text + control.value.substring(control.selectionEnd);
    control.setSelectionRange(control.selectionStart + text.length,control.selectionStart + text.length);
    control.focus();
    control.selectionStart = cursorPos + text.length;
    control.selectionEnd = cursorPos + text.length;
  }
  control.scrollTop = scroll_top;
}


function showWikiDialog(dName,event){
  saveCursorPosition();
  var ref= $('#messText').position();
  $('#'+dName).show();
  $('#'+dName).css( {
    "left": (ref.left+100) + "px",
    "top":(ref.top+30) + "px",
    "visibility": "visible"
  } );
  $('#we_wrapper').show();
  $('#we_wrapper').css( {
    "visibility": "visible",
    "height":($(document.body).height())+"px",
    "opacity": "0.25",
    "width": ($(document.body).width())+"px"
  } );
}

function hideWikiDialog(dName,flag){
  var t = "";
  if(flag){
    //"[[";
    t+= $('#'+dName).find('#url').attr('value');
    if($('#'+dName).find('#txt').attr('value').length>0){
      t+='|'+ $('#'+dName).find('#txt').attr('value');
    }
    if($('#'+dName).find('#picwidth').length>0 && $('#'+dName).find('#picwidth').attr('value').length>0){
      t+='|'+ $('#'+dName).find('#picwidth').attr('value');
    }
    if(t.length>0){
      if(dName=='wikiEditorLinkDialog'){
        t='[['+t+']]';
      }
      if(dName=='wikiEditorImageDialog'){
        t='{{'+t+'}}';
      }
    }
    replaceSelectionW(t);
  }

  $('#'+dName).find('#url').attr('value', '');
  $('#'+dName).find('#txt').attr('value', '');

$('#'+dName).css( {
    "visibility": "hidden"
  } );
  $('#'+dName).hide();
  $('#we_wrapper').css( {
    "visibility": "hidden"
  } );
  $('#we_wrapper').hide();
}
*/

/*
function doInsert(ibTag){
  var ibTagEmpty = "";
  var control = document.getElementById('messText');
  switch(ibTag){
    case 'B':ibTag='**';ibTagEmpty='Жирный';break;
    case 'U':ibTag='__';ibTagEmpty='Подчеркивание';break;
    case 'I':ibTag='//';ibTagEmpty='Курсив';break;
    case 'S':ibTag='--';ibTagEmpty='Зачеркнутый шрифт';break;
    case 'L':ibTag='----';ibTagEmpty='Разделительная линия';break;
  }
  var scroll_top = control.scrollTop;
  var replacedText;
  if(!!document.selection){
    control.focus();
    var range = (document.selection.range) ? document.selection.range : document.selection.createRange();
    replacedText=range.text;
    if(replacedText.length==0){
      replacedText = ibTagEmpty;
    }
    range.text = ibTag+replacedText+ibTag;
    range.select();
  }else if(!!control.setSelectionRange){
    replacedText=control.value.substring(control.selectionStart,control.selectionEnd);
    if(replacedText.length==0){
      replacedText = ibTagEmpty;
    }
    control.value = control.value.substring(0,control.selectionStart) +
    ibTag+replacedText+ibTag +
    control.value.substring(control.selectionEnd);
  //control.setSelectionRange(selection_start + text.length,selection_start + text.length);
  }
  control.focus();
  control.scrollTop = scroll_top;
}
*/


/*
  function replaceSelection(text,control){
    var scroll_top = control.scrollTop;
    if(!!document.selection){
      this.element.focus();
      var range = (this.range) ? this.range : document.selection.createRange();
      range.text = text;
      range.select();
    }else if(!!control.setSelectionRange){
      //var selection_start = control.selectionStart;
      control.value = control.value.substring(0,control.selectionStart) + text + control.value.substring(control.selectionEnd);
      control.setSelectionRange(control.selectionStart + text.length,control.selectionStart + text.length);
    }
    control.focus();
    control.scrollTop = scroll_top;
  }
*/


/*
 function doInsert(ibTag){
  var ibTagEmpty = "";
  var obj_ta = document.getElementById('messText');
  if(ibTag=='B'){ibTag='**';ibTagEmpty='**Жирный шрифт**';}
  //----------------------------------------
  // It's IE!
  //----------------------------------------
  if (document.selection) {
    if (obj_ta.isTextEdit)    {
      obj_ta.focus();
      var sel = document.selection;
      var rng = sel.createRange();
      //rng.colapse;
      if((sel.type == "Text" || sel.type == "None") && rng != null){
        if(rng.text.length > 0) {rng.text = ibTag + rng.text + ibTag;}
        else {rng.text =ibTagEmpty;}
        //rng.text = ibTag;
      }
    } else{
      obj_ta.value += ibTagEmpty;
    }
  }
  //----------------------------------------
  // It's MOZZY!
  //----------------------------------------
  else if ( obj_ta.selectionEnd ) {
    var ss = obj_ta.selectionStart;
    var st = obj_ta.scrollTop;
    var es = obj_ta.selectionEnd;

    if (es <= 2){es = obj_ta.textLength;}

    var start  = (obj_ta.value).substring(0, ss);
    var middle = (obj_ta.value).substring(ss, es);
    var end    = (obj_ta.value).substring(es, obj_ta.textLength);

    //-----------------------------------
    // text range?
    //-----------------------------------

    if (obj_ta.selectionEnd - obj_ta.selectionStart > 0){
      middle = ibTag + middle + ibTag;
    }else{
      middle = ibTag + middle;
    }

    obj_ta.value = start + middle + end;

    var cpos = ss + (middle.length);

    obj_ta.selectionStart = cpos;
    obj_ta.selectionEnd   = cpos;
    obj_ta.scrollTop      = st;
  }
  //----------------------------------------
  // It's CRAPPY!
  //----------------------------------------
  else{
    obj_ta.value += ibTag;
  }
  obj_ta.focus();
  return true;
}
*/


/*
 *http://blog.vishalon.net/index.php/javascript-getting-and-setting-caret-position-in-textarea/
 *Here is slightly modified code compatible to IE 6.0 and Opera:
function GetCaretPosition(control)
{
var CaretPos = 0;
// IE Support
if (document.selection)
{
control.focus();
var Sel = document.selection.createRange ();
var Sel2 = Sel.duplicate();
Sel2.moveToElementText(control);
var CaretPos = -1;
while(Sel2.inRange(Sel))
{
Sel2.moveStart(’character’);
CaretPos++;
}
}

// Firefox support

else if (control.selectionStart || control.selectionStart == ‘0?)
CaretPos = control.selectionStart;

return (CaretPos);

}
*/