function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

// Otevreni okna napovedy
function Help(address) {
	helpwin = window.open(address,'Help','width=708,height=590,resizable=yes,scrollbars=yes,location=0,top=20,left=10,toolbar=no');
	if (helpwin.focus) helpwin.focus();
	return false;
}

// minimalni velikost okna
function minWidth()  {
	if (document.body.offsetWidth <= 870) {
		// document.getElementById('minWidth_info').style.display="block"; //zapne hlasku o male velikosti okna
		document.getElementById('page').style.width='870px';
	}
	if (document.body.offsetWidth > 871) {
		// document.getElementById('minWidth_info').style.display="none";
		document.getElementById('page').style.width='100%';
	}
}

// pridani do oblibenych
function addFavorite() {
	if(navigator.userAgent.indexOf('MSIE') >= 0 && navigator.userAgent.indexOf('Opera') < 0){
	window.external.AddFavorite(location.href, document.title);
	return false;
	}
	else{
	document.getElementById('afvlink').href = location.href;
	document.getElementById('afvlink').title = document.title;
	}
}

// maximalizovani a minimalizovani okna
function maximalize() {
	//nazev puvodniho stylu ulozime do promenne
	pageClassName=document.getElementById('page').className;
	document.getElementById('page').className='maximalize';
	setRegistry('www.layout.maximalize','true',false);
}
function minimalize() {
	document.getElementById('page').className='';
	setRegistry('www.layout.maximalize','false',false);
}


// zobrazeni tlacitka pro maximalizaci a minimalizaci div.center
/*
<script type="text/javascript">
	<!--
	 maxminButton('<html:rewrite page="/images" />');
	-->
</script>
*/
function maxminButton(srcImages){
			document.write('\
							<div id="minimalize" onClick="minimalize();"><img src="'+srcImages+'/minimalize.gif" title="minimalizovat" /></div>\
							<div id="maximalize" onClick="maximalize();"><img src="'+srcImages+'/maximalize.gif" title="maximalizovat" /></div>\
							');
}

// zmena oznaceneho radku tabulky
/* ve strance results.jsp
<tr class="outRow" onmouseover="this.className='inRow'" onmouseout="this.className='outRow'" >
*/


// skryti elementu
function hide_obj(divId){
	if (!document.getElementById) return;

	if (document.getElementById(divId)){
		document.getElementById(divId).style.visibility = 'hidden';
	}
}


// automaticke obnovovani stranky

var limit="0:06"
if (document.images){
	var parselimit=limit.split(":")
	parselimit=parselimit[0]*60+parselimit[1]*1
}
function beginrefresh()	{
		document.getElementById('javascript_off').style.display='none';
		document.getElementById('loading').style.display='none';
	if (!document.images)
	return
	if (parselimit==7)
		document.getElementById('parselimit7').style.display='block';
	if (parselimit==6)
		document.getElementById('parselimit6').style.display='block';
	if (parselimit==5)
		document.getElementById('parselimit5').style.display='block';
	if (parselimit==4)
		document.getElementById('parselimit4').style.display='block';
	if (parselimit==3)
		document.getElementById('parselimit3').style.display='block';
	if (parselimit==2)
		document.getElementById('parselimit2').style.display='block';
	if (parselimit==1)
		window.location.reload()
	else {
		parselimit-=1
		curmin=Math.floor(parselimit/60)
		cursec=parselimit%60
	if (curmin!=0)
		curtime=curmin+" minutes and "+cursec+" seconds left until page refresh!"
	else
		setTimeout("beginrefresh()",1000)
	}
}

// hodnota velikosti podle typu vlastnosti definice
function valType() {
	typeValue=document.getElementById('type').value;
   		if ((typeValue.substring(0,6) == 'string') || (typeValue.substring(0,7) == 'wstring')) {
			document.getElementById('size').value = 50;
		}
		else {
   			document.getElementById('size').value = 0;
		}
}

var globalPopup = '';
//globalni, kvuli problemu MS prohlizece
var globalUrl = '';
var globalResult;
var globalResultDisplay;
var globalMultiple; //vicenasobna
var globalRefEditorName = null; //jmeno ref reditoru

//Otevreni okna pro nalezeni objektu (viz /pages/common/singlewindow.jsp)
function openWindowForResult(result,resultDisplay,width,height,multiple,url) {
  if (!globalPopup.closed && globalPopup.location) {
    //jiz tam popup okno je
    globalPopup.close();
  }

  var config = 'resizable=yes,width=' + width + ',height=' + height;
  globalPopup = window.open('','globalPopup',config);
  globalResult = result;
  globalResultDisplay = resultDisplay;

  if(multiple == true) globalUrl = url + "&checkbox=true";
  else globalUrl = url + "&checkbox=false";

  globalMultiple = multiple;
  globalRefEditorName = null;
  globalPopup.location.href = globalContextPath + "/pages/common/singlewindow.jsp";
}

// Otevreni okna pro nalezeni objektu (viz /pages/common/singlewindow2.jsp)
function openWindowForResult2(callback, width, height, multiple, url) {
  if(!globalPopup.closed && globalPopup.location) globalPopup.close();

  var config = 'resizable=yes,width=' + width + ',height=' + height;
	globalPopup = window.open('','globalPopup',config);

	if(multiple == true) globalUrl = url + "&checkbox=true";
  else globalUrl = url + "&checkbox=false";

	globalMultiple = multiple;
	globalRefEditorName = null;
	globalCallback = callback;
	globalPopup.location.href = globalContextPath + "/pages/common/singlewindow2.jsp";
}

//Otevreni okna pro nalezeni objektu (viz /pages/common/singlewindowDS.jsp)
function openWindowForResultDS(result1,result2,result3,result4,result5,result6,result7,result8,result9,result10,result11,result12,result13,result14,resultDisplay,width,height,multiple,url) {
  if (!globalPopup.closed && globalPopup.location) {
    //jiz tam popup okno je
    globalPopup.close();
  }

  var config = 'resizable=yes,width=' + width + ',height=' + height;
  globalPopup = window.open('','globalPopup',config);
  globalResult1 = result1;
  globalResult2 = result2;
  globalResult3 = result3;
  globalResult4 = result4;
  globalResult5 = result5;
  globalResult6 = result6;
  globalResult7 = result7;
  globalResult8 = result8;
  globalResult9 = result9;
  globalResult10 = result10;
  globalResult11 = result11;
  globalResult12 = result12;
  globalResult13 = result13;
  globalResult14 = result14;  
  
  globalResultDisplay = resultDisplay;
	
  if(multiple == true) globalUrl = url + "&checkbox=true";
  else globalUrl = url + "&checkbox=false";

  globalMultiple = multiple;
  globalRefEditorName = null;
  globalPopup.location.href = globalContextPath + "/pages/common/singlewindowDS.jsp";
}

// proste otevreni okna
function openWindow(width, height, url, callback, windowName) {
  if(!globalPopup.closed && globalPopup.location) globalPopup.close();

	globalMultiple = false;
	globalRefEditorName = null;
	globalCallback = callback;

  var config = 'resizable=yes,width=' + width + ',height=' + height;
	globalPopup = window.open(globalContextPath + '/' + url, windowName, config);
	globalPopup.location.href = globalContextPath + '/' + url;
}

function openDialog(url, width, height) {
  var config = 'resizable=yes,width=' + width + ',height=' + height;
  window.open(url,'singleDialog' + (new Date()).getTime(), config);
}

//Zapametuje si referencni editor, kam ma jit vysledek z okna
function openWindowForResultSetRefEditor(refEditorName) {
	globalRefEditorName = refEditorName;
}

//Zavreni okna s vracenim jednoho ID a display
function closeWindowAndReturnId(id,display) {
	parent.callback(id,display);
}

//Zavreni okna s vracenim hodnot z vysledku a display
function closeWindowAndReturnIdDS(id1,id2,id3,id4,id5,id6,id7,id8,id9,id10,id11,id12,id13,id14,display) {
	var result = new Array(id1,id2,id3,id4,id5,id6,id7,id8,id9,id10,id11,id12,id13,id14);
	
	parent.callback(result,display);
}

//Zavreni okna s vracenim ID objektu oddelenych carkami (info se bere z formulare)
function closeWindowAndReturnIds(form) {
  var ids = '';
  var first = true;
  
  for (var i = 0; i < form.length; i++)
    if (form[i].name == 'selectcheckbox')
      if (form[i].checked == true) {
        if (first == true) first = false;
        else ids = ids + ',';
        
        ids = ids + form[i].value;
      }
      
  parent.callback(ids, "");
}

function closeWindowAndReturnAll(form) {
  var ids = '';

  var cbs = document.getElementsByName('selectcheckbox');
  for (var i = 0; i < cbs.length; i++) ids += ',' + cbs[i].value;
      
  parent.callback(ids.length == 0 ? ids : ids.substring(1), "");
}

// vyber zobrazovane polozky v manageru definic
	function setTableStyle(showType) {
				document.getElementById('defManTable').className = showType;
	}

// spusteni funkce po urcite dobe
     function waitAndRun(func,time) {
          window.setTimeout(func, time);
     }

// imagepreview
	// zjisti adresu obrazku
	function srcCheck(mode){
		  defSrc = document.images["imagepreview"].src;
		  if (mode == 'loadPage') {
	  		  defSrc = defSrc.replace('&page=','&loadPage=');
		  }
		  newSrc = defSrc;
	}
	// funkce pro zmenu velikosti obrazku
	function zoomIt(obj){
	  if(!obj)return;
	  var index = obj.selectedIndex;
	  if(!index)return;
	  zoom  = obj[index].value;
	  if(!zoom)return;
	  
		if ( zoom == 'height') {
			//vyska obrazku
			a = document.images["imagepreview"].clientHeight;
			//vyska okna pro obrazek
			b = document.getElementById("imagepreview").clientHeight;
		
			// sirka obrazku
			c = document.images["imagepreview"].clientWidth;
		
			// zjistime pomer mezi vyskou prostoru a obrazku
			d =  (b/a);
			// tento pomer vynasobime a zjistime novou sirku obrazku aby se vesel na sirku akorat
			e = ((d*c) - 5);
			
			//nastavime obrazku velikost
			document.images["imagepreview"].style.width=e+'px';
			
			//optimalizujeme vyhlazeni
			optimizeWidth();
		}
		else {
			document.images["imagepreview"].style.width=zoom+'%';
	  		optimizeWidth();
	  }
	}
	// rotovani obrazkem
	function rotIt(obj){
		index = obj.selectedIndex;
		rotate  = obj[index].value;
		
		newSrc = document.images["imagepreview"].src;
		newSrc = newSrc.replace('&rotate=0','');
		newSrc = newSrc.replace('&rotate=90','');
		newSrc = newSrc.replace('&rotate=180','');
		newSrc = newSrc.replace('&rotate=270','');

		if (rotate == 0){
			previewLoader();
			document.images["imagepreview"].src=newSrc;
		}
		else if (rotate == 'rotate') {
			return;
		}
		else{
			previewLoader();
			document.images["imagepreview"].src=newSrc + '&rotate='+rotate;
		}
	}
	function changePageCommon(id,cookie) {
		previewWidthString = "";
		previewWidth = getRegistry('www.imagepreviewcookie_width');
		if (previewWidth != "") {
			previewWidthString = '&width=' + previewWidth;
			var reg=/[&]width=[0-9]*/; 
			defSrc = defSrc.replace(reg,'');
		}
		
		if (rotate == 0){
			newSrc = defSrc+'&page='+pageNumber + previewWidthString;
			document.images["imagepreview"].src=newSrc;
		}
		else {
			newSrc = defSrc+'&page='+pageNumber+'&rotate='+rotate + previewWidthString;
			document.images["imagepreview"].src=newSrc;
		}
		checkPage(pageNumber);
		if (cookie == true){
			setRegistry('www.lastimagepagecookie_' + id,escape(pageNumber),false);
		}
	}
	function previewLoader() {
		document.getElementById('img_loading').style.display='block';
		document.getElementById('img_preview').onload = function () {
			document.getElementById('img_loading').style.display='none';
		}
	}

	// zmena stranky pomoci select
	function changePage(obj,id,cookie){
		previewLoader();
		index = obj.selectedIndex;
		pageNumber  = obj[index].value;
		changePageCommon(id,cookie);
	}
	// zobrazeni dalsi stranky obrazku
	function nextPage(id,cookie){
		if ( (imgSize - 1) > pageNumber){
			previewLoader();
			pageNumber++;
			checkPage(pageNumber);
			changePageCommon(id,cookie);
		}
	}
	// zobrazeni predchozi stranky obrazku
	function prevPage(id,cookie){
		if ( pageNumber > 0){
			previewLoader();
			pageNumber--;
			checkPage(pageNumber);
			changePageCommon(id,cookie);
		}
	}

   	// optimalizace sirky obrazku do divu
	 function optimizeWidth() {
		newWidth = document.images["imagepreview"].clientWidth;

		var reg=/[&]width=[0-9]*/;

		newSrc = document.images["imagepreview"].src;
		newSrc = newSrc.replace(reg,'');
		newSrc = newSrc + '&width=' + newWidth;
		document.images["imagepreview"].src=newSrc;

		// hodnota selectu pro zoomovani
		var actZoomSelect = document.getElementById("zoomSelect").value;
		// sirka okna pro obrazek
		var clientWidth = document.getElementById("imagepreview").clientWidth;

		// ulozeni hodnot do registru
		setRegistry('www.imagepreviewcookie_width',newWidth,true);
		setRegistry('www.imagepreviewcookie_zoom',actZoomSelect,true);
		setRegistry('www.imagepreviewcookie_clientwidth',clientWidth,true);
    }

    // optimalizace vysky divu podle velikosti okna
    function optimizeHeight(marginBottom,objectId) {
		// v opere se to nechovalo dobre #2457
	    if (navigator.appName != "Opera"){
	    	if(document.getElementById(objectId)) {
	    		// zjistime vysku okna
	    		var newHeight = document.documentElement.clientHeight;
	    		//velikost nastavime a odesteme marginBottom (napr prostor pro menu)
	    		document.getElementById(objectId).style.height = newHeight + marginBottom+'px';
	    	}
		}
	}

	function showGreaterImage(url){
		document.getElementById('showGreaterImageLink').style.display = 'none';
		document.images['imagepreview'].style.display = 'block';
		document.images["imagepreview"].src = url;

	}

	//disablovani vsech nejavascriptovych linku - zobrazi se varovani, jestli uzivatel chce pokracovat
	  var linksDisabled = false;
	  function disableAllLinks() {
	    if(linksDisabled == true) return;
	    
	    for(iLink = 0; iLink < document.links.length; iLink++) {
	      var href = document.links[iLink].href;
	      var target = document.links[iLink].target;
	      if ((href.length < 11 || href.substring(0,11) != 'javascript:')
	          && target != '_new' && target != '_blank' && target != 'new')
	        document.links[iLink].href = 'javascript:linkWarningMessage("' + href + '");';
	    }
	
	    linksDisabled = true;
	  }

	function hiddenObjectById(objectId) {
		document.getElementById(objectId).style.display = 'none';
	}
	
function saveDraftAction(id, link, f_id) {
  var frm = document.forms['autoSaveDraftForm'];
  if (frm == null) {
    if (linksDisabled) linkWarningMessage(link + '?id=' + id);
    else document.location = link + '?id=' + id + (f_id > 0 ? ('&f_id=' + f_id) : '');
  } else {
    var inp = document.createElement('INPUT');
    inp.type = 'hidden';
    inp.name = 'autoSaveDraft';
    inp.value = id;

    frm.appendChild(inp);
    
    if (f_id > 0) {
      inp = document.createElement('INPUT');
      inp.type = 'hidden';
      inp.name = 'f_id';
      inp.value = f_id;
    }
    
    frm.appendChild(inp);
    frm.submit();
  }
}

function serverPrint(inpName, confNameID, printerName, printAll) {
  var ids = document.getElementsByName(inpName);
  if (ids == null || ids.length == 0) return;

  var paramStr = '';
  for (var i = 0; i < ids.length; i++)
    if (printAll || ids[i].checked) paramStr += ',' + escape(ids[i].value);
  if (paramStr.length == 0) return;
  paramStr = paramStr.substring(1);

  var conf = document.getElementById(confNameID).value;
  var printer = document.getElementById(printerName).value;

  var requester = getHTTPObject();
  var rString = globalContextPath + '/ServerPrintActionXML.do' + globalActionPostfix + '?conf=' + conf + '&printer=' + printer + '&ids=' + paramStr;
  requester.open("GET", rString, false);
  requester.send(null);

  if (requester.responseXML.normalize) requester.responseXML.normalize();

  var err = requester.responseXML.getElementsByTagName('errorMessage');
  var rs = null;
  
  if (err != null && err.length > 0) alert(err[0].childNodes[0].nodeValue);
  else {
    var ok = requester.responseXML.getElementsByTagName('ok');
    if (ok != null && ok.length > 0) {
      if (confirm(ok[0].childNodes[0].nodeValue.replace('#n#', '\n'))) document.location = globalContextPath + '/CollectivePageAction.do';
    }
  }
}

function setupFormDefaultButton(frmIdent, buttonID) {
  // register onkeydown for all text input controls in given form
  var frm = document.forms[frmIdent];
  if (frm == null) return;
  
  var inputs = frm.getElementsByTagName('INPUT');
  
  if (inputs != null)
    for (var i = 0; i < inputs.length; i++)
      if (inputs[i].type.toUpperCase() == 'TEXT')
        inputs[i].onkeypress = function(event) {
          var btn = document.getElementById(buttonID);
          if (!event) event = window.event;
        
          if ((document.all && event.keyCode == 13) ||
              (document.getElementById && event.which == 13) ||
              (document.layers && event.which == 13)) {
              event.cancel = true;
              event.returnValue = false;
              event.cancelBubble = true;
              if (event.stopPropagation) event.stopPropagation();
              btn.click();
              
              return false;
            }
          }
}

function setupInputDefaultButton(inpIdent, buttonID) {
  var input = document.getElementById(inpIdent);
  if (input == null) return;

  input.onkeypress = function(event) {
    if (!event) event = window.event;
  
    if ((document.all && event.keyCode == 13) ||
        (document.getElementById && event.which == 13) ||
        (document.layers && event.which == 13)) {
        event.returnValue = false;
        event.cancelBubble = true;
        event.cancel = true;
        if (event.stopPropagation) event.stopPropagation();
        setTimeout('document.getElementById("' + buttonID + '").click()', 10);
        
        return false;
      }
    }
}

function setupInputDefaultButtonAction(input, action) {
  input.onkeypress = function(event) {
    if (!event) event = window.event;
  
    if ((document.all && event.keyCode == 13) ||
        (document.getElementById && event.which == 13) ||
        (document.layers && event.which == 13)) {
        event.returnValue = false;
        event.cancelBubble = true;
        event.cancel = true;
        if (event.stopPropagation) event.stopPropagation();
        setTimeout(action, 10);        
        return false;
      }
    }
}

// returns absolute horizontal position of object (in body)
function posX(obj) {
  var curleft = 0;
  if (obj.offsetParent) {
    while (obj.offsetParent) {
      curleft += obj.offsetLeft
      obj = obj.offsetParent;
    }
  } else if (obj.x) curleft += obj.x;
  return curleft;
}

// returns absolute vertical position of object (in body)
function posY(obj) {
  var curtop = 0;
  if (obj.offsetParent) {
    while (obj.offsetParent) {
      curtop += obj.offsetTop
      obj = obj.offsetParent;
    }
  } else if (obj.y) curtop += obj.y;
  return curtop;
}

// oznacovani a odznacovani vsech ve vysledku vyhledavani
function ToggleAll(form) {
    for(var i=0;i<form.length;i++) {
        if(form[i].name == 'multiboxArray' || form[i].name == 'selectcheckbox') // name checkboxu ktere se maji zaskrtnout
		{
	        form[i].checked = form.maincheckbox.checked; //zaskrtavany checkbox
        
		   if(form.maincheckbox.checked == true) {
				form[i].parentNode.parentNode.style.background = '#e3f5fb';
			}
			else {
				form[i].parentNode.parentNode.style.background = '#ffffff';
			}
      	}        
	}
}

// oznacovani a odznacovani vsech ve vysledku vyhledavani pres tlacitko v objectMenu
function checkAllButton() {
	searchForm = document.getElementById('queryResults');
	if (searchForm.maincheckbox.checked!=true)
	searchForm.maincheckbox.checked = true;
	else
	searchForm.maincheckbox.checked = false;
	ToggleAll(searchForm);
}

function optimizeWindowHeight() {
	// nastavime hodnoty, pro jemne doladeni pridavame konstanty
	
	var scllHeight = document.body.scrollHeight + 43;	// pro ie, velikost dokumentu (ne jen zobrazovane casti)
	var innHeight = window.innerHeight;					// pro ff
	var offsHeight = document.body.offsetHeight;		// vyska viditelne casti okna
	var offsWidth = document.body.offsetWidth + 8;		// sirka viditelne casti okna
	var scrHeight = screen.height - 30;					// velikost obrazovky (zmensime aby se cast okna neukryla pod mozny panel)

	// ie
	if(innHeight == null){ 
		if(scrHeight > scllHeight) {
			window.resizeTo(offsWidth,scllHeight);
		} else {
			window.resizeTo(offsWidth,scrHeight);
		}
		document.body.style.overflow="auto";
	} 
	// ff
	else { 
		if(scrHeight > innHeight) {
			window.innerHeight = offsHeight +10;
		} else {
			window.innerHeight = scrHeight;
		}
		document.body.style.overflow="hidden";
	}
}
function getOption(selectId,relation) {
	var x = document.getElementById(selectId);
	for (var i = 0; i < x.options.length; i++) {
		if (x.options[i].selected){
			if (relation == 'actual')
				return x.options[i];
			if (relation == 'next') {
				if(x.options[i+1])
					return x.options[i+1];
				else 
					return null;
			}
			if (relation == 'previous') {
				if(i > 0)
					return x.options[i-1];
				else 
					return null;
			}
		}
	}
}

function setInZoomOption(selectId) {
	var x = document.getElementById(selectId);
	nextOption = getOption(selectId,'next');
	if (nextOption != null){
		if (nextOption.value == '30')
			x.value = '130';
		else 
			x.value = nextOption.value;
			x.onchange();
	}
}
function setOutZoomOption(selectId) {
	var x = document.getElementById(selectId);
	prevOption = getOption(selectId,'previous');
	if (prevOption != null) {
		if (prevOption.value == '100' || x.value == '100') {
			return;
		}
		else {
		x.value = prevOption.value;
		x.onchange();
		}
	}
	else {
		x.value = '75';
		x.onchange();
	}
}
function setRotationOption(selectId) {
	var x = document.getElementById(selectId);
	nextOption = getOption(selectId,'next');
	if (nextOption != null) {
		if (nextOption.value == '0')
			x.value = '90';
		else
			x.value = nextOption.value;
	}
	else {
			x.value = '0';			
	}
	x.onchange()
}		
function ruler() {

	if (document.getElementById('rulerBox').style.display != 'block'){
	var group
	var coordinates = ToolMan.coordinates()
	var drag = ToolMan.drag()

	var boxAbsolute = document.getElementById("boxAbsolute")
	group = drag.createSimpleGroup(boxAbsolute)
	group.verticalOnly()
	group.addTransform(function(coordinate, dragEvent) {
		var scrollOffset = coordinates.scrollOffset()
		if (coordinate.y < scrollOffset.y)
			return coordinates.create(coordinate.x, scrollOffset.y)

		var clientHeight = coordinates.clientSize().y
		var boxHeight = coordinates._size(boxAbsolute).y
		if ((coordinate.y + boxHeight) > (scrollOffset.y + clientHeight))
			return coordinates.create(coordinate.x,
					(scrollOffset.y + clientHeight) - boxHeight)

		return coordinate
	})
	document.getElementById('rulerBox').style.display = 'block';
	}
	else
		document.getElementById('rulerBox').style.display = 'none';
}

function toggleQueryFilter(im, id) {
  var d = document.getElementById(id);
  var s = document.getElementById(im);
  if (s == null || d == null) return;
  
  d.style.display = d.style.display != 'block' ? 'block' : 'none';
  s.style.backgroundImage = d.style.display == 'block' ? "url('" + globalContextPath + "/images/arrows/filter-down.png')" :
                                                         "url('" + globalContextPath + "/images/arrows/filter-right.png')";
                                                         
  document.cookie = 'wwwsafe3_qryfltvisible=' + (d.style.display != 'block' ? 'false' : 'true');
}

function refillCombo(comboID, noSelectionVal, noSelectionText, qryName, qryParams, resultColIdx) {
  var cb = document.getElementById(comboID);
  if (cb == null) return;
        
  var req = getHTTPObject();
  var ref = globalContextPath + "/SearchActionXML.do" + globalActionPostfix;
  ref += "?queryReferenceName=" + qryName;
  
  for (i in qryParams)
    if (typeof(i) != 'function') ref += '&qp_' + i + '=' + escape(qryParams[i]); 

  if (resultColIdx == -1) ref += "&display=true";

  req.open('POST', ref, true);
  req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

  req.onreadystatechange = function() {
    if (req.readyState == 4 && req.status == 200) { 
      if (req.responseXML != null) {
        while (cb.options.length > 0) cb.options[0] = null;
        if (noSelectionVal != null)
          cb.options[0] = new Option(noSelectionText, noSelectionVal, false, false);

        var resp = req.responseXML.getElementsByTagName('row');
        if (resp != null)
          for (var i = 0; i < resp.length; i++) {
            var id = resp[i].getElementsByTagName('id')[0].childNodes[0].nodeValue;
            var label = resp[i].getElementsByTagName('columns')[0];
            
            if (resultColIdx == -1) label = resp[i].getElementsByTagName('display')[0].childNodes[0].nodeValue;
            else if (label != null && label.childNodes.length > resultColIdx)
              label = label.childNodes[resultColIdx].childNodes[0].childNodes[0].nodeValue;
            else
              label = '(???)';
            
            cb.options[cb.options.length] = new Option(label, id, false, false);
          }
          
          if (cb.onchange != null && typeof(cb.onchange) == 'function') cb.onchange();
      }
    }
  }
  
  req.send(null);
}

function clearCombo(comboID) {
  var cb = document.getElementById(comboID);
  if (cb == null) return;

  while (cb.options.length > 0) cb.options[0] = null;
}

function appendOnLoad(func) {
  var stdLoad = window.onload;
  window.onload = function() {
    if (stdLoad && typeof(stdLoad) == 'function') stdLoad();
    func();
  }  
}

/*prace s cookie a jejim obsahem
* http://wiki.script.aculo.us/scriptaculous/show/Cookie
*/
var Cookie = {
  set: function(name, value, daysToExpire) {
    var expire = '';
    if (daysToExpire != undefined) {
      var d = new Date();
      d.setTime(d.getTime() + (86400000 * parseFloat(daysToExpire)));
      expire = '; expires=' + d.toGMTString();
    }
    return (document.cookie = unescape(name) + '=' + unescape(value || '') + expire);
  },
  get: function(name,subValue) {
    var cookie = document.cookie.match(new RegExp('(^|;)\\s*' + escape(name) + '=([^;\\s]*)'));
	var cookieValue = unescape(cookie[2]);
	cookieValue = cookieValue.replace(eval("/.*(^|\|)"+subValue+":/"),''); // orizneme retezec pred subValue
	cookieValue = cookieValue.replace(/,.*/,''); // orizneme retezec za subValue
    return (cookieValue ? cookieValue : null);
  },
  erase: function(name) {
    var cookie = Cookie.get(name) || true;
    Cookie.set(name, '', -1);
    return cookie;
  },
  accept: function() {
    if (typeof navigator.cookieEnabled == 'boolean') {
      return navigator.cookieEnabled;
    }
  }
};

//ochrana proti dbclicku 
var dbClickPrevention = false;
function dbClickPreventionAllowClick() {
  if(!dbClickPrevention) {
     dbClickPrevention=true;
     setTimeout('dbClickPrevention=false',1000);
     return true;
  }
  return false;
}

// minimalizace/maximalizace draftu, historie a oblibenych
function rightSideMinMax(elementx) {
	var body = document.getElementById('body');
	
	if (elementx == 'drafts') {
		if (body.className.match('smallDraftList') != null) {
			selectElementHiding('hide');
			body.className = body.className.replace(' smallDraftList','');
			if (body.className.match('smallFavoritesList') == null) {
				body.className = body.className + ' smallFavoritesList';
			}
			if (body.className.match('smallHistoryList') == null) {
				body.className = body.className + ' smallHistoryList';
			}
		}
		else {
			selectElementHiding('show');
			body.className = body.className + ' smallDraftList';
		}
	}
	
	else if (elementx == 'history') {
		if (body.className.match('smallHistoryList') != null) {
			selectElementHiding('hide');
			body.className = body.className.replace(' smallHistoryList','');
			if (body.className.match('smallFavoritesList') == null) {
				body.className = body.className + ' smallFavoritesList';
			}
			if (body.className.match('smallDraftList') == null) {
				body.className = body.className + ' smallDraftList';
			}
		}
		else {
			selectElementHiding('show');
			body.className = body.className + ' smallHistoryList';
		}
	}
	else if (elementx == 'favorites') {
		if (body.className.match('smallFavoritesList') != null) {
			selectElementHiding('hide');
			body.className = body.className.replace(' smallFavoritesList','');
			if (body.className.match('smallDraftList') == null) {
				body.className = body.className + ' smallDraftList';
			}
			if (body.className.match('smallHistoryList') == null) {
				body.className = body.className + ' smallHistoryList';
			}
		}
		else {
			selectElementHiding('show');
			body.className = body.className + ' smallFavoritesList';
		}
	}
}

//odesilani do vyberu z vysledku vyhledavani
function setAttribs (prop)  {
	//najdeme formular s vysledkem vyhledavani
	searchForm = document.getElementById('queryResults');
	//vytvorime input s name a nejakou hodnotou
	var formAttr = document.createElement('input');
	formAttr.name = prop;
	formAttr.value = 'true';
	formAttr.style.visibility='hidden';
	//vlozime input do formulare
	searchForm.appendChild(formAttr);
	//odesleme formular
	searchForm.submit();
}

function highlightCheckedRows(checkbox) {
	if(checkbox.checked == true) {
		checkbox.parentNode.parentNode.style.backgroundColor = '#e3f5fb';
	}
	else {
		checkbox.parentNode.parentNode.style.backgroundColor = '';
	}
}

// funkce pro simulaci :hover v IE6
// na prvek je potreba pridat  onmouseover="hoverRollOver(this);" onmouseout="hoverRollOff(this);"
function hoverRollOver(element) {
	element.origClassName = element.className;	// backup origonal className
	var tempClassStr = element.className;		
	tempClassStr += "Hover";					// convert name+'Hover' the last class name	to emulate tag.class:hover
	tempClassStr = tempClassStr.replace(/\s/g,"Hover ");	//convert name+'Hover' the others to emulate tag.class:hover
	tempClassStr += " hover";				// add simple 'hover' class name to emulate tag:hover
	element.className = element.className + " " + tempClassStr;
}
function hoverRollOff(element) {
	element.className = element.origClassName;
}

function toggleElement(id) {
		if($(id).getStyle('display') == 'none') {
			$(id).setStyle({display: 'block'});
		}
		else if($(id).getStyle('display') == 'block')
				$(id).setStyle({display: 'none'});
}

function hideAfterInterval(element,interval) {
el = document.getElementById(element);	

	el.onmouseout = function(e) {
		var setTimer = setTimeout("closeMe("+'el.id'+")",interval);
		el.onmouseover = function(e) {
		clearTimeout(setTimer);
		}
	}
}

function closeMe(el) {
	document.getElementById(el).style.display = 'none';
}

// zjisteni pritomnosti submenu
function submenuPresent() {
	if ($('left').down('h2') || $('left').down('span')) {
		return true;
	}
	else
		return false;
}

// vyskakovaci okno s verzemi a historii dokumentu v objectmenu
function displayInformation() {
	toggleElement('infoVersionsBox');
}


// vybrat vse v select tagu
function selectAll(id, value) {
	obj = document.getElementById(id);
    for( var i=0; i<obj.length; i++ ) {
    	obj.options[i].selected = value
    }   
} 

// skryvani selectu v IE6 (nelze jim dat z-index)
function selectElementHiding(state) {
	// funkce nema smysl, pokud zadny select neni nebo nejde o IE6
	if(!document.getElementsByTagName('select') || (/msie|MSIE 6/.test(navigator.userAgent) != true)) {
		return;
	}
	
	// najdeme vsechny selecty
	var selects = document.getElementsByTagName('select');	
	// pokud je chceme schovat, schovame je
	if(state == 'hide') {
		for (var i=0; i < document.getElementsByTagName('select').length; i++) {
			document.getElementsByTagName('select')[i].style.visibility='hidden';
		}
	}
	// jinak je chceme zpet zobrazit
	else {
		// zkontrolujeme, zda jsou minimalizovany drafty i historie
		// v opacnem pripade nechame selecty stale skryte
		var body = document.getElementById('body');
		if(!(body.className.match('smallDraftList') || body.className.match('smallHistoryList'))) {
			return;
		}
		// zobrazime selecty
		else {
			for (var i=0; i < document.getElementsByTagName('select').length; i++) {
				document.getElementsByTagName('select')[i].style.visibility='visible';
			}
		}
	}
}

function toggleRightsAdd(selectedSupportedRights) {
	var obj = document.getElementById("rightsAdd_"+selectedSupportedRights);
	obj.style.display = (obj.style.display=='none') ? ( (isIE()) ? 'block' : 'table-row' ) : 'none';
}

function rightsAdd(name, code) {
	var n = 'src_refEditor_' + name + '_' + code;
	var pid = document.getElementById(n).value;
	var form = document.GrantForm;
	form.participant.value = pid;
	form.selectedSupportedRights.value = code;
	form.submit();
}

function rightsHighlight(over, obj) {
	var name = obj.className;
	var objs = document.getElementsByTagName('a');
	for ( var i = 0; i < objs.length; i++) {
		if (objs[i].className==name)
			objs[i].style.background = (over) ? "yellow" : "transparent";
	}
}

function isIE() {
  return /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
}


function getPageHeight() {
	if(window.innerHeight && window.scrollMaxY) { // Firefox
		pageHeight = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight) { // all but Explorer Mac
		pageHeight = document.body.scrollHeight;
	} else { // works in Explorer 6 Strict, Mozilla (not FF) and Safari
		pageHeight = document.body.offsetHeight + document.body.offsetTop;
	}
	pageHeight = ((document.documentElement.clientHeight)>pageHeight) ? (document.documentElement.clientHeight) : pageHeight;
	return pageHeight;
}

function changeFolderQuery(obj) {
	if (obj.value!="")
		location = obj.options[obj.selectedIndex].value;
	else
		document.getElementById("folderSearchForm").style.display="inline";
}


//nastaveni hodnoty v selectu dstype
function select_Value_Set(SelectName, No, Value){
	Value = Value.substring(4,7);
	var selects = document.getElementsByTagName('select');	 
	for(index = 0; index < selects[No].length; index++){
		if(selects[No].options[index].value == Value)
		selects[No].selectedIndex = index;
	}
}

function toggleAttributes(action) {
	if(action == 'show') {
		// skryjeme stisknute tlacitko
		$('showAttribs').toggle();
		// nastavime plnou vysku atributu
		$('attributes').setStyle({
			  height: 'auto'
		});
		// zobrazime tlacitko pri skryti
		$('hideAttribs').toggle();
	}
	else if(action == 'hide') {
		// skryjeme stisknute tlacitko
		$('hideAttribs').toggle();
		// nastavime plnou vysku atributu
		$('attributes').setStyle({
			  height: '102px'
		});
		// zobrazime tlacitko pri plnou vysku
		$('showAttribs').toggle();
	}
}

//Funkce pro vlozeni dokumentu do slozky
function fileSaveDialog(docId, folderId, url) {
	if (folderId == 0 && (typeof(globalRootFolder)=='undefined')) {
		var response = invokeRequest("FolderIdActionXML.do", "folder=root");
		folderId = globalRootFolder = response.getElementsByTagName("id")[0].childNodes[0].nodeValue;
	}
	
	var url = globalContextPath + 
			  '/PersistentObjectAction.do' + 
			  globalActionPostfix + 
			  '?id=' + ((folderId==0)?globalRootFolder:folderId) + 
			  '&docId=' + docId +
			  '&direct=true' +
			  '&pageType=dialog';
	
	openWindowForResult2("fileSaveDialogCallback",640,680,false,url);
}

// Callback funkce volana po vyberu slozky, do ktere se ma dokument vlozit
function fileSaveDialogCallback(ids, resultDisplay) {
	var ids = ids.split('.');
	var folderId = ids[0];
	var docId = ids[1];
	
	if (_ftAddToFolder(folderId, docId))
		window.location.reload();
}
