var rowShow=(document.all?'block':'table-row');

function switchTableRow(elRow)
{
  var elImg = document.getElementById(elRow+'_icon');
  if(document.getElementById(elRow).style.display == 'none')
  {
    document.getElementById(elRow).style.display = rowShow;
    if(elImg) elImg.src = '../icons/arrow_roll_up.gif';
  }
  else
  {
    document.getElementById(elRow).style.display = 'none';
    if(elImg) elImg.src = '../icons/arrow_roll_down.gif';
  }
}

function treeTableClick(elImg, rowId)
{
  var aktRow = document.getElementById("r-"+rowId); var pref = aktRow.id+'.';
  var show = aktRow.getAttribute('stree')=='false';
  aktRow.setAttribute('stree', show ? 'true' : 'false');
  elImg.src = show ? elImg.src.replace('tree_plus.gif', 'tree_minus.gif') : elImg.src.replace('tree_minus.gif', 'tree_plus.gif');

  var rows = aktRow.parentNode.childNodes;
  if(show)
  {
    var i = 0;
    while(rows[i].id!=aktRow.id)
    {
      i++;
    }

    var level = parseInt(aktRow.getAttribute('level'));
    i++;
    var localShow = true;
    var hideLevel;
    while(i<rows.length)
    {
      var row = rows[i];
      if(row.id!=undefined)
      {
        var actLevel = parseInt(row.getAttribute('level'));
        if(actLevel>level)
        {
          if(localShow)
          {
            row.style.display = rowShow;
        	if(row.getAttribute('stree')=='false')
        	{
	          localShow = false;
	          hideLevel = actLevel;
        	}
          }
          else
          {
            if(actLevel<=hideLevel)
            {
  	          row.style.display = rowShow;
  	          if(row.getAttribute('stree')=='true')
  	          {
  	            localShow = true;
  	          }
  	          else
  	          {
  	            hideLevel = actLevel;
  	          }
            }
          }
        }
        else
        {
          break;
        }
      }
      i++;
    }
  }
  else
  {
    var i = 0;
    while(rows[i].id!=aktRow.id)
	{
	  i++;
	}
    
    var level = parseInt(aktRow.getAttribute('level'));
    
    i++;
    while(i<rows.length)
    {
      if (rows[i].id!=undefined)
      {
        if (parseInt(rows[i].getAttribute('level'))>level)
        {
          rows[i].style.display = 'none';
        }
        else
        {
          break;
        }
      }
      i++;
    }
  }
}

function showCalendarDayField(field_id, dateFormat)
{
  var el = document.getElementById(field_id);
  if (_dynarch_popupCalendar != null) { _dynarch_popupCalendar.hide(); }
  else { var cal = new Calendar(1, null, selectedHandler, closeHandler); _dynarch_popupCalendar = cal; cal.setRange(1900, 2070); cal.setOnlyMonth(false); cal.create(); }
  _dynarch_popupCalendar.setDateFormat('%d.%m.%Y');
  _dynarch_popupCalendar.parseDate(el.value);
  _dynarch_popupCalendar.sel = el;
  _dynarch_popupCalendar.showAtElement(el, "Br");
}
function showCalendarMonthField(field_id)
{
  var el = document.getElementById(field_id);
  if (_dynarch_popupCalendar != null) { _dynarch_popupCalendar.hide(); }
  else { var cal = new Calendar(1, null, selectedHandler, closeHandler); _dynarch_popupCalendar = cal; cal.setRange(2000, 2070); cal.setOnlyMonth(true); cal.create(); }
  _dynarch_popupCalendar.setDateFormat('%m/%Y');
  _dynarch_popupCalendar.parseDate(el.value);
  _dynarch_popupCalendar.sel = el;
  _dynarch_popupCalendar.showAtElement(el, "Br");
}
function selectedHandler(cal, date) { cal.sel.value = date; try {calendarUserHandler(cal,date)} catch (e) {}; if (cal.dateClicked) cal.callCloseHandler(); }
function closeHandler(cal) { cal.hide(); _dynarch_popupCalendar = null; }

function incrementElementValue(field_id, num) { var el = document.getElementById(field_id); var v = parseInt(el.value, 10); if(isNaN(v)) v= 2007; el.value = v+num; }

function showHideFilter(filterSubmit)
{
	var el=document.getElementById("filter");
	if(el.style.display=='none')
	{
		el.style.display='';
		document.getElementById(filterSubmit).style.display='';
	}
	else
	{
		el.style.display='none';
		document.getElementById(filterSubmit).style.display='none';
	}
	return false;
}
function getLeftPos(element)
{
  var original = element;
  var returnValue = element.offsetLeft;
	  while((element = element.offsetParent) != null){
	  	if(element.tagName!='HTML'){
	  		returnValue += element.offsetLeft;
	  		if(document.all)returnValue+=element.clientLeft;
	  	}
	  }
	  if(returnValue+255 > getClientW()){
	  	returnValue =  getClientW() - 260;
	  }
	  else {
	  	returnValue =  returnValue + 25;
	  }
	  return returnValue;
}

function getTopPos(element)
	{		
	  var returnValue = element.offsetTop;
	  while((element = element.offsetParent) != null){
	  	if(element.tagName!='HTML'){
	  		returnValue += element.offsetTop;
	  		if(document.all)returnValue+=element.clientTop;
	  	}
	  }
    
	  returnValue = returnValue;
	  return returnValue;
	}
	
function getClientH()
{
	return document.body.clientHeight;
}
function getClientW()
{
	return document.body.clientWidth;
}
function formInfo(e, field, msg) {     
    field=field.replace(/^\s+|\s+$/g, '');
    if (field.length > 0 && field.charAt(field.length)!=':') field=field+':'; 
     
    removeFormInfo();
            
    var infoDiv = document.createElement('div');
    infoDiv.setAttribute('id', 'infoDiv');
	infoDiv.className='infoDiv';
	infoDiv.style.left = getLeftPos(e) + 'px';
  	infoDiv.style.top = getTopPos(e) + 'px';
	infoDiv.innerHTML='<span class="infoText"><b>'+field+'</b>&nbsp;'+msg+'</span><br/><br/>';
	
	var iframe = document.createElement('iframe');
	iframe.setAttribute('id', 'infoIFrame');
	
	document.forms[0].appendChild(infoDiv);
	//document.forms[0].appendChild(iframe);
	
	iframe.style.position='absolute';
	iframe.frameBorder='0';
	iframe.style.left = getLeftPos(e) + 'px';
	iframe.style.top = getTopPos(e) + 'px';
	iframe.style.width = infoDiv.offsetWidth;
	iframe.style.height = infoDiv.offsetHeight;
	iframe.style.zIndex = 99;
	infoDiv.style.zIndex=100;
	infoDiv.style.display = 'none';
	if (document.all) {
		iframe.style.display = 'block';
	}
	infoDiv.style.display = 'block';
}
function removeFormInfo(e) {
	var infoDiv = document.getElementById('infoDiv');
	var infoIFrame = document.getElementById('infoIFrame');
	if(infoDiv) {
		document.forms[0].removeChild(infoDiv);
		document.forms[0].removeChild(infoIFrame);
	}
}