//nastaveni pozice kurzoru
function SetPos(obj, pos1, pos2)
{
  if (typeof obj.selectionStart != "undefined" && typeof obj.selectionEnd != "undefined")
  {
    obj.setSelectionRange (pos1, pos2);
    obj.focus ();
  }

  else if (document.selection && document.selection.createRange)
  {
    var rng = obj.createTextRange ();
    rng.move ("character", pos1);
    rng.moveEnd ("character", pos2 - pos1);
    rng.select ();
  }
}


//vlozeni textu na pozici kurzoru
function InsStr(obj, str)
{
  var object = obj;
  object.focus();
  str = str.replace(/&quot;/g,"\"");
  if (document.selection)
  {
    sel = document.selection.createRange();
    sel.text = str;
  }
  else if (object.selectionStart || object.selectionStart == '0')
  {
    var pos1 = object.selectionStart;
    var pos2 = object.selectionEnd;
    object.value = object.value.substring(0,pos1) + str + object.value.substring(pos2, object.value.length);
    SetPos (document.formular.text, pos1,pos1);
  }
  else
  {
    object.value += str;
    SetPos (document.formular.text, pos1, pos1);
  }
}


//vlozeni textu na zacatek a konec selektovaneho textu
function InsStrSE(obj, str1, str2)
{
  var object = obj;
  object.focus();
  str1 = str1.replace(/&quot;/g,"\"");
  str2 = str2.replace(/&quot;/g,"\"");
  if (document.selection)
  {
    sel = document.selection.createRange();
    var seltext = sel.text;
    sel.text = str1 + seltext + str2;
  }
  else if (object.selectionStart || object.selectionStart == '0')
  {
    var pos1 = object.selectionStart;
    var pos2 = object.selectionEnd;
    object.value = object.value.substring(0,pos1) + str1 + object.value.substring(pos1,pos2) + str2 + object.value.substring(pos2,object.value.length);
    SetPos (document.formular.text, pos1, pos1);
  }
  else
  {
    object.value += str1 + str2;
    SetPos (document.formular.text, pos1, pos1);
  }
}

//vlozeni textu na zacatek a konec selektovaneho textu
function InsStr_arg(obj, str, arg)
{
  arg = GetArg(arg);
  str = InsArg(str, arg);
  InsStr(obj, str);
}

//vlozeni textu na zacatek a konec selektovaneho textu
function InsStrSE_arg(obj, str1, str2, arg)
{
  arg = GetArg(arg);
  str1 = InsArg(str1, arg);
  str2 = InsArg(str2, arg);
  InsStrSE(obj, str1, str2);
}


function GetArg(arg)
{
  arg = arg.split("~");
  for (i=0; i<arg.length; i++)
    arg[i] = prompt(arg[i], "");
  return arg;
}

function InsArg(str, arg)
{
  var reg = new RegExp("~0~", "g");
  var i = 0;
  for (i=0; i<arg.length; i++)
  {
    var reg = new RegExp("~" + (i+1) + "~", "g");
    str = str.replace(reg, arg[i]);
  }
  return str;
}

