var oldID='';
var oldStyle='';
var selStyle="";
var selID="";
function barva(ID)
{
 if (selID==ID){
   //document.getElementById(selID).className = selStyle;
	 oldStyle=selStyle;
	 selID="";
	 selStyle="";
   return;
 }
 if (selID!=""){
   document.getElementById(selID).className = selStyle;
 }
 document.getElementById(ID).className = "radekSel";
 selID=ID;
 selStyle=oldStyle;
 oldStyle="radekSel";
}
function over(ID)
{
//alert("over");
//alert(document.all.item(ID).style.class);
 	oldStyle = document.getElementById(ID).className;
	document.getElementById(ID).className = "radekOver";
	//alert(oldStyle);

//document.all.item(ID).style.color="white";
//document.all.item(ID).style.background="darkblue";
}

function out(ID)
{
//alert(ID);
//alert("out");
	//alert(oldStyle);
document.getElementById(ID).className = oldStyle;
// document.all.item(ID).style.color="black";
// document.all.item(ID).style.background=0;
 if (oldID!='') over(oldID);
}
function okno(url, name, w, h)
{
 var l=(screen.availWidth-w)/2;
 var t=(screen.availHeight-h)/2;
 var popupWin = window.open(url, name, 'resizable=yes,scrollbars=1,menubar=0,width=' + w + ',height=' + h + ',left=' + l + ',top=' + t + ',screenX=' + l + ',screenY=' + t);
 //popupWin = window.showModelessDialog(url, window, 'help=0;status=0;resizable=1;dialogWidth=' + w + 'px,dialogHeight=' + h +'px');
 popupWin.focus();
 return false;
}
function dialog(url, name, w, h)
{
 var l=(screen.availWidth-w)/2;
 var t=(screen.availHeight-h)/2;
 //popupWin = window.open(url, name, 'resizable=yes,scrollbars=1,menubar=0,width=' + w + ',height=' + h + ',left=' + l + ',top=' + t + ',screenX=' + l + ',screenY=' + t);
 var popupWin = window.showModelessDialog(url, window, 'help=0;status=0;resizable=1;dialogWidth=' + w + 'px,dialogHeight=' + h +'px');
 popupWin.focus();
 return false;
}
function isnum(num, des, chars)
{
 var cislo=num.value;
 var cislo=cislo.replace(' ', '');
 var delka=cislo.length;
 if ((chars!=0) && (delka!=chars))
 {
  //alert ('Číslo '+cislo+' nemá požadovanou délku. ('+chars+')');
  //num.focus();
  return false;
 }
 var oddelovac=0;
 var spatne=false;
 for (var i=0; i<delka; i++)
 {
  var pismeno=cislo.substring(i,i+1);
  if (pismeno == "," || pismeno == ".")
  {
   oddelovac++;
  }
  else if (pismeno < "0" || pismeno > "9")
  {
   //alert ('Číslo '+cislo+' nevypadá korektně.');
   //num.focus();
   return false;
  }
 }
 if (oddelovac >0 && !des)
 {
  //alert ('Číslo '+cislo+' nevypadá korektně - nejsou povolena des. čísla.');
  //num.focus();
  return false;
 }
 if (oddelovac >1)
 {
  //alert ('Číslo '+cislo+' nevypadá korektně - moc des. čárek.');
  //num.focus();
  return false;
 }
 return true;
}
function isnumval(numer, des)
{
 var num=numer.replace(' ', '');
 var oddelovac=0;
 var delka=num.length;
 var spatne=false;
 for (var i=0; i<delka; i++)
 {
  var pismeno=num.substring(i,i+1);
  if (pismeno == "," || pismeno == ".")
  {
   oddelovac++;
  }
  else if (pismeno < "0" || pismeno > "9")
  {
   //alert ('Číslo '+num+' nevypadá korektně.');
   return false;
  }
 }
 if (oddelovac >0 && !des)
 {
  //alert ('Číslo '+num+' nevypadá korektně - nejsou povolena des. čísla.');
  return false;
 }
 if (oddelovac >1)
 {
  //alert ('Číslo '+num+' nevypadá korektně - moc des. čárek.');
  return false;
 }
 if (num<0)
 {
  //alert ('Číslo '+num+' nevypadá korektně - jsou povolena pouze kladná čísla.');
  return false;
 }
 return true;
}
function isemail(data){
  if (window.RegExp){
    var re = new RegExp("^[^@]+@[^.]+\.+$");
		if (!re.test(data)){
	  	return false;
		}
  }
  return true;
}
function datumy(pole)
{
       var oddelovac='.';
       var datum=pole.value;

       if (datum.indexOf(',')>=0) oddelovac=',';

       var den=datum.substring(0,datum.indexOf(oddelovac));
       var datum=datum.substring(datum.indexOf(oddelovac)+1);
       var mesic=datum.substring(0,datum.indexOf(oddelovac));
       var rok=datum.substring(datum.indexOf(oddelovac)+1);

       if ((!isnumval(den,false)) || (den<=0) || (den>31))
       {
        //alert('Chybně zadaný den!');
        //pole.focus();
        return false;
       }
       if (den>28)
       {
         if ((mesic==2) && ((rok%4)!=0))
         {
          //alert('Nepřestupný rok! Únor nemůže mít víc jak 28 dní.');
          //pole.focus();
          return false;
         }
         if ((den>30) &&
          ((mesic==4)||(mesic==6)||(mesic==9)||(mesic==11)))
         {
          //alert('Měsíc '+mesic+'. nemůže mít 31 dní!');
          //pole.focus();
          return false;
         }
       }
       if ((!isnumval(mesic,false)) || (mesic<=0) ||(mesic>12))
       {
        //alert('Chybně zadaný měsíc!');
        //pole.focus();
        return false;
       }
       if (!isnumval(rok,false))
       {
        //alert('Chybně zadaný rok!');
        //pole.focus();
        return false;
       }
       //alert (den+'-'+mesic+'-'+rok);
       //return false;
       //alert('V poradku');
       //return false;
       return true;
}

<!--
var GimgCornerPlus = new Image;
    //GimgCornerPlus.src = './img/cornerplus.gif';
var GimgCornerMinus = new Image;
    //GimgCornerMinus.src = './img/cornerminus.gif';
var canSwitch = false;

if (parseInt(navigator.appVersion) >= 5 || navigator.appVersion.indexOf["MSIE 5"] != -1)
    canSwitch = true;

function switchOff(treeName, levelID, isLast){
  if(canSwitch)
  {
    var img1;
    if (treeName!='')
    {
       img1 =document.getElementById(treeName+'pm'+levelID);
    }
    else
    {
       img1 =document.getElementById('pm'+levelID);
    }

  var imgPlusLast = './img/cornerplus.gif';
  var imgPlus = './img/lineplus.gif';

  if (isLast) imgPlus = imgPlusLast;

  var newImage = ''+imgPlus;
  if (img1) img1.src = newImage;

  var subitems;
  if (treeName != '')
  {
      subitems = document.getElementById(treeName+'L'+levelID);
  }
  else
  {
      subitems = document.getElementById('L'+levelID);
  }

  if(subitems && subitems.style) subitems.style.display = 'none';
  };
};

function switchOnOffie(treeName, subitems1, image1, levelID, isLast)
{
  if(canSwitch)
  {
   var subitems ;
   var imgRoot ;
   if (treeName != '')
   {
     subitems = document.getElementById(treeName+'L'+levelID);
     imgRoot  = document.getElementById(treeName+'pmRoot');
   }
   else
   {
     subitems = document.getElementById('L'+levelID);
     imgRoot  = document.getElementById('pmRoot');
   }

  var clName=subitems.className;
  newName=clName.substring(0, clName.length-1);

  var visible= (subitems.style.display!='none');
  var imgPlusLast = './img/cornerplus.gif';
  var imgPlus = './img/lineplus.gif';

  if (isLast) imgPlus = imgPlusLast;

  var imgMinusLast = './img/cornerminus.gif';
  var imgMinus = './img/lineminus.gif';

  if (isLast) imgPlus = imgMinusLast;

  var isFirst = image1==imgRoot;

  if (isLast)
  {
     imgPlus = imgPlusLast;
     imgMinus = imgMinusLast;
  }
  if (isFirst && ! isLast)
  {
     imgPlus = './img/plus.gif';
     imgMinus = './img/minus.gif';
  }
  if(visible)
  {
      clName = newName+'u';
      newImage = ''+imgPlus;
      subitems.style.display='none';
  }
  else
  {
      clName = newName+'v';
      newImage = ''+imgMinus;
      subitems.style.display='block';
  }

  image1.src = newImage;
};

}
//-->
/*
function right(e) {
if (navigator.appName == 'Netscape' &&
(e.which == 3 || e.which == 2))
return false;
else if (navigator.appName == 'Microsoft Internet Explorer' &&
(event.button == 2 || event.button == 3)) {
alert("Tohle tlačítko, je mimo provoz.");
return false;
}
return true;
}

document.onmousedown=right;
document.onmouseup=right;
if (document.layers) window.captureEvents(Event.MOUSEDOWN);
if (document.layers) window.captureEvents(Event.MOUSEUP);
window.onmousedown=right;
window.onmouseup=right;
*/

var END_OF_INPUT = -1;

var base64Chars = new Array(
    'A','B','C','D','E','F','G','H',
    'I','J','K','L','M','N','O','P',
    'Q','R','S','T','U','V','W','X',
    'Y','Z','a','b','c','d','e','f',
    'g','h','i','j','k','l','m','n',
    'o','p','q','r','s','t','u','v',
    'w','x','y','z','0','1','2','3',
    '4','5','6','7','8','9','+','/'
);

var reverseBase64Chars = new Array();
for (var i=0; i < base64Chars.length; i++){
    reverseBase64Chars[base64Chars[i]] = i;
}

var base64Str;
var base64Count;
function setBase64Str(str){
    base64Str = str;
    base64Count = 0;
}
function readBase64(){
    if (!base64Str) return END_OF_INPUT;
    if (base64Count >= base64Str.length) return END_OF_INPUT;
    var c = base64Str.charCodeAt(base64Count) & 0xff;
    base64Count++;
    return c;
}
function encodeBase64(str){
    setBase64Str(str);
    var result = '';
    var inBuffer = new Array(3);
    var lineCount = 0;
    var done = false;
    while (!done && (inBuffer[0] = readBase64()) != END_OF_INPUT){
        inBuffer[1] = readBase64();
        inBuffer[2] = readBase64();
        result += (base64Chars[ inBuffer[0] >> 2 ]);
        if (inBuffer[1] != END_OF_INPUT){
            result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30) | (inBuffer[1] >> 4) ]);
            if (inBuffer[2] != END_OF_INPUT){
                result += (base64Chars [((inBuffer[1] << 2) & 0x3c) | (inBuffer[2] >> 6) ]);
                result += (base64Chars [inBuffer[2] & 0x3F]);
            } else {
                result += (base64Chars [((inBuffer[1] << 2) & 0x3c)]);
                result += ('=');
                done = true;
            }
        } else {
            result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30)]);
            result += ('=');
            result += ('=');
            done = true;
        }
        lineCount += 4;
        if (lineCount >= 76){
            result += ('\n');
            lineCount = 0;
        }
    }
    return result;
}
function readReverseBase64(){
    if (!base64Str) return END_OF_INPUT;
    while (true){
        if (base64Count >= base64Str.length) return END_OF_INPUT;
        var nextCharacter = base64Str.charAt(base64Count);
        base64Count++;
        if (reverseBase64Chars[nextCharacter]){
            return reverseBase64Chars[nextCharacter];
        }
        if (nextCharacter == 'A') return 0;
    }
    return END_OF_INPUT;
}

function ntos(n){
    n=n.toString(16);
    if (n.length == 1) n="0"+n;
    n="%"+n;
    return unescape(n);
}

function decodeBase64(str){
    setBase64Str(str);
    var result = "";
    var inBuffer = new Array(4);
    var done = false;
    while (!done && (inBuffer[0] = readReverseBase64()) != END_OF_INPUT
        && (inBuffer[1] = readReverseBase64()) != END_OF_INPUT){
        inBuffer[2] = readReverseBase64();
        inBuffer[3] = readReverseBase64();
        result += ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4));
        if (inBuffer[2] != END_OF_INPUT){
            result +=  ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2] >> 2));
            if (inBuffer[3] != END_OF_INPUT){
                result +=  ntos((((inBuffer[2] << 6)  & 0xff) | inBuffer[3]));
            } else {
                done = true;
            }
        } else {
            done = true;
        }
    }
    return result;
}

var clientPC=navigator.userAgent.toLowerCase();
var is_gecko=((clientPC.indexOf('gecko')!=-1)&&(clientPC.indexOf('spoofer')==-1)
	&&(clientPC.indexOf('khtml')==-1)&&(clientPC.indexOf('netscape/7.0')==-1));
function insertTags(edid,tagOpen, tagClose, sampleText) {
  var txtarea = document.getElementById(edid);
  // IE
  if(document.selection  && !is_gecko) {
    var theSelection = document.selection.createRange().text;
    var replaced = true;
    if(!theSelection){
      replaced = false;
      theSelection=sampleText;
    }
    txtarea.focus();

    // This has change
    var text = theSelection;
    if(theSelection.charAt(theSelection.length - 1) == " "){// exclude ending space char, if any
      theSelection = theSelection.substring(0, theSelection.length - 1);
      r = document.selection.createRange();
      r.text = tagOpen + theSelection + tagClose + " ";
    } else {
      r = document.selection.createRange();
      r.text = tagOpen + theSelection + tagClose;
    }
    if(!replaced){
      r.moveStart('character',-text.length-tagClose.length);
      r.moveEnd('character',-tagClose.length);
    }
    r.select();
  // Mozilla
  } else if(txtarea.selectionStart || txtarea.selectionStart == '0') {
    replaced = false;
    var startPos = txtarea.selectionStart;
    var endPos   = txtarea.selectionEnd;
    if(endPos - startPos){ replaced = true; }
    var scrollTop=txtarea.scrollTop;
    var myText = (txtarea.value).substring(startPos, endPos);
    if(!myText) { myText=sampleText;}
    if(myText.charAt(myText.length - 1) == " "){ // exclude ending space char, if any
      subst = tagOpen + myText.substring(0, (myText.length - 1)) + tagClose + " ";
    } else {
      subst = tagOpen + myText + tagClose;
    }
    txtarea.value = txtarea.value.substring(0, startPos) + subst +
                    txtarea.value.substring(endPos, txtarea.value.length);
    txtarea.focus();

    //set new selection
    if(replaced){
      var cPos=startPos+(tagOpen.length+myText.length+tagClose.length);
      txtarea.selectionStart=cPos;
      txtarea.selectionEnd=cPos;
    }else{
      txtarea.selectionStart=startPos+tagOpen.length;
      txtarea.selectionEnd=startPos+tagOpen.length+myText.length;
    }
    txtarea.scrollTop=scrollTop;
  // All others
  } else {
    var copy_alertText=alertText;
    var re1=new RegExp("\\$1","g");
    var re2=new RegExp("\\$2","g");
    copy_alertText=copy_alertText.replace(re1,sampleText);
    copy_alertText=copy_alertText.replace(re2,tagOpen+sampleText+tagClose);

    if (sampleText) {
      text=prompt(copy_alertText);
    } else {
      text="";
    }
    if(!text) { text=sampleText;}
    text=tagOpen+text+tagClose;
    //append to the end
    txtarea.value += "\n"+text;

    // in Safari this causes scrolling
    if(!is_safari) {
      txtarea.focus();
    }

  }
  // reposition cursor if possible
  if (txtarea.createTextRange){
    txtarea.caretPos = document.selection.createRange().duplicate();
  }
}

