// Stylesheets die nicht für den IE gedacht sind.
if(document.getElementById || document.all)
{
  // todo [major] fix link?
  document.write('<link href="/templates/holzinger2/css/holzStyleSpecial.css" rel="stylesheet" type="text/css">');
}

// For private use only ;)
var holzFunctions = new Object();
var holzVars = new Object();

// Alle Array´s for multiple instanzes ...
holzVars.diff = new Array();
holzVars.pos = new Array();
holzVars.start = new Array();
holzVars.intervals = new Array();
holzVars.height = new Array();
holzVars.notMoving = new Array();

holzVars.serviceURL = "about.blank";
holzVars.contactURL = "about.blank";
holzVars.sitemapURL = "about.blank";
holzVars.impressumURL = "about.blank";
holzVars.helpURL = "about.blank";
holzVars.faqURL = "about.blank";

// Pfadangaben
holzVars.imagePath = "/templates/holzinger2/img/";

// Offene Fenster sollen offen bleiben!
holzVars.win = false;
holzVars.winclosed = false;

// Angaben zu den Bereichen, ob das ding jetzt Masken Kann oder nicht
holzVars.useMask = false;
if(document.all || document.getElementById)
{
  holzVars.useMask = true;
}

// Variablen zur Dateerstellung
holzVars.dataZIndex = 0;


// Variablen zur SideTableerstellung
holzVars.sideTableEntrys = new Array();
holzVars.sideTableId = "";

// Seite reloaden bei mist ...
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

// OBjekt identifizieren und ausliefern
function MM_findObj(name, docum) { //v4.0
  var position;
  var i;
  var returnVar;
  // Document auf aktuelles Dokument setzen sofern es nicht mitgeschickt wurde
  if(!docum)
  {
    docum = document;
  }

  // Query ausfragen
  if((position = name.indexOf("?"))> 0 && parent.frames.length)
  {
    docum = parent.frames[n.substring(p+1)].document;
    name = name.substring(0,p);
  }

  // Wenn die zurückgabeVariable nicht mit docum[name] gesetzt werden konnte und document.all existiert dann verwende document.all
  if( !(returnVar = docum[name]) && docum.all)
  {
    returnVar = docum.all[name];
  }

  // Nachschauen ob der ID in einem Formular ist (wär ja möglich
  for (i = 0; !returnVar && i < docum.forms.length ; i++)
  {
    returnVar = docum.forms[i][name];
  }

  // Sofern Layer da sind diese verwenden ...
  for(i=0; !returnVar && docum.layers && i <docum.layers.length ; i++)
  {
    // Alle Layer auf Sublayer checken ...
    returnVar = MM_findObj(name, docum.layers[i].document);
  }

  // Sollte document getElementById existieren und die Rückgabevariable noch leer sein.
  if(!returnVar && document.getElementById)
  {
    returnVar =document.getElementById(name);
  }
  return returnVar;
}

holzFunctions.collect = function(id)
{
  // Grösse des Layers ermitteln
  holzVars.diff[id] = MM_findObj(id+'Stop').offsetTop-MM_findObj(id+'Start').offsetTop;

  // Grösse der Maske
  holzVars.height[id] = MM_findObj(id+'Mask').offsetHeight;

  // Position anzeigen
  temp = new Object();
  temp.x = MM_findObj(id).offsetTop;
  temp.y = MM_findObj(id).offsetLeft;
  holzVars.pos[id] = temp;

  // Blocken wenn die Grösse des Layers grösser ist als das darin zu verschiebende.
  if(holzVars.height[id] > holzVars.diff[id])
  {
    holzVars.notMoving[id] = true;
  }
  else
  {
    holzVars.notMoving[id] = false;
  }
  // Startposition
  if(!holzVars.start[id])
  {
    holzVars.start[id] = 0;
  }
}

holzFunctions.moveUp = function(id, diff)
{
  window.clearInterval(holzVars.intervals[id]);
  holzVars.intervals[id] = window.setInterval("holzFunctions.moveDiff('"+id+"',"+(0-diff)+");", 75);
}

holzFunctions.moveDown = function(id, diff)
{
  window.clearInterval(holzVars.intervals[id]);
  holzVars.intervals[id] = window.setInterval("holzFunctions.moveDiff('"+id+"',"+diff+");", 75);
}

holzFunctions.stopMoving = function(id)
{
  window.clearInterval(holzVars.intervals[id]);
}

holzFunctions.moveDiff = function(id, diff)
{
  holzFunctions.collect(id);
  if(holzVars.pos[id].x+diff > holzVars.start[id])
  {
    holzFunctions.moveMe(id, holzVars.start[id]);
  }
  else if(holzVars.pos[id].x+diff < holzVars.height[id]-holzVars.diff[id])
  {
    holzFunctions.moveMe(id, holzVars.height[id]-holzVars.diff[id]);
  }
  else
  {
    holzFunctions.moveMe(id, holzVars.pos[id].x+diff);
  }
}

holzFunctions.moveMe = function(id, to)
{
  if (!holzVars.notMoving[id])
  {
    if (ns4) obj = document[id];
    if (ie4) obj = eval(id).style;
    if (ns6) obj = document.getElementById(id);
    if ( (ns4) || (ie4) ) {
      obj.pixelTop = to;
    } else if (ns6) {
      obj.style.top = to+"px";
    }
    return true;
  }
}

holzFunctions.getSideTable = function()
{
  writecontent = "";
  if(holzVars.useMask)
  {
    // Inhaltsmaske
    writecontent += '<div id="'+holzVars.sideTableId+'Mask" class="special">\n';
    // Inhaltsdiv
    writecontent += '<div id="'+holzVars.sideTableId+'" style="position: relative; top: 0px;">\n';
    // Startdiv
    writecontent += '<div id="'+holzVars.sideTableId+'Start"></div>\n';
    // Inhalt schreiben
    writecontent += holzFunctions.collectEntrys();
    // Stopdiv
    writecontent += '<div id="'+holzVars.sideTableId+'Stop"></div>\n';
    // Inhalt Ende
    writecontent += '</div>\n';
    // Inhaltsmaske Ende
    writecontent += '</div></td></tr>\n';
    // Abstand zum Scrollen
    writecontent += '<tr><td height="6"><img src="'+holzVars.imagePath+'spacer.gif" height="6" width="1"></td></tr>\n';
    // Scrollbuttons
    writecontent += '<tr><td align="right" nowrap><a onMouseDown="JavaScript:holzFunctions.moveDown(\''+holzVars.sideTableId+'\', 4);" onMouseOver="JavaScript:holzFunctions.changeImg(\''+holzVars.sideTableId+'up\', \''+holzVars.imagePath+'arrow_up_over.gif\');" onMouseOut="JavaScript:holzFunctions.changeImg(\''+holzVars.sideTableId+'up\', \''+holzVars.imagePath+'arrow_up.gif\');JavaScript:holzFunctions.stopMoving(\''+holzVars.sideTableId+'\');" href="JavaScript:holzFunctions.stopMoving(\''+holzVars.sideTableId+'\');"><img src="'+holzVars.imagePath+'arrow_up.gif" width="8" height="10" border="0" name="'+holzVars.sideTableId+'up"></a><img src="'+holzVars.imagePath+'spacer.gif" height="1" width="5"><a onMouseDown="JavaScript:holzFunctions.moveUp(\''+holzVars.sideTableId+'\', 4);" onMouseOver="JavaScript:holzFunctions.changeImg(\''+holzVars.sideTableId+'down\', \''+holzVars.imagePath+'arrow_down_over.gif\');" onMouseOut="JavaScript:holzFunctions.changeImg(\''+holzVars.sideTableId+'down\', \''+holzVars.imagePath+'arrow_down.gif\');holzFunctions.stopMoving(\''+holzVars.sideTableId+'\');" href="JavaScript:holzFunctions.stopMoving(\''+holzVars.sideTableId+'\');"><img src="'+holzVars.imagePath+'arrow_down.gif" border="0" name="'+holzVars.sideTableId+'down"></a><img src="'+holzVars.imagePath+'spacer.gif" height="1" width="7">';
  }
  else
  {
    writecontent += holzFunctions.collectEntrys();
  }
  return(writecontent);
}

holzFunctions.collectEntrys = function()
{
  returnValue = "";
  maxEntrys = -1;
  if(!holzVars.useMask)
  {
    maxEntrys = 3;
  }
  for(i=0; i < holzVars.sideTableEntrys.length && (maxEntrys < 0 || i < maxEntrys); i++)
  {
    if(holzVars.sideTableEntrys[i][2] == "news")
    { // Bild einfügen
      if(i != 0 )
      {
        returnValue += '<img src="'+holzVars.imagePath+'news_line.gif"><br>\n';
      }
      returnValue += '<table class="newsTable">\n';
      returnValue += '<tr>\n';
      returnValue += '<td class="newsTable"><img src="'+holzVars.imagePath+'spacer.gif" width="4" height="1"></td>\n';
      returnValue += '<td class="newsTable"><a href="'+holzVars.sideTableEntrys[i][1]+'" class="newsContent">'+holzVars.sideTableEntrys[i][0]+'</a></td>\n';
      returnValue += '<td class="newsTable"><img src="'+holzVars.imagePath+'spacer.gif" width="4" height="1"></td>\n';
      returnValue += '</tr>\n';
      returnValue += '</table>\n';
    }
    else if(holzVars.sideTableEntrys[i][2] == "date")
    { // Bild einfügen
      if(i != 0 )
      {
        returnValue += '<img src="'+holzVars.imagePath+'spacer.gif" height="15"><br>\n';
      }
      returnValue += '<table>\n';
      returnValue += '<tr>\n';
      returnValue += '<td class="newsTable"><img src="'+holzVars.imagePath+'spacer.gif" width="4" height="1"></td>\n';
      returnValue += '<td class="dateTime" width="10"><img src="'+holzVars.imagePath+'clocks.gif"></td>';
      returnValue += '<td class="dateTime" nowrap valign="top">'+holzVars.sideTableEntrys[i][3]+'</td>\n';
      returnValue += '<td class="newsTable"><img src="'+holzVars.imagePath+'spacer.gif" width="4" height="1"></td>\n';
      returnValue += '</tr>\n';
      returnValue += '<tr>\n';
      returnValue += '<td class="newsTable"><img src="'+holzVars.imagePath+'spacer.gif" width="4" height="1"></td>\n';
      returnValue += '<td class="newsTable" colspan="2"><a href="'+holzVars.sideTableEntrys[i][1]+'" class="dateContent">'+holzVars.sideTableEntrys[i][0]+'</a></td>\n';
      returnValue += '<td class="newsTable"><img src="'+holzVars.imagePath+'spacer.gif" width="4" height="1"></td>\n';
      returnValue += '</tr>\n';
      returnValue += '</table>\n';
    }
  }
  return(returnValue);
}

holzFunctions.changeImg = function(name, url)
{
  document.images[name].src = url;
}

holzFunctions.dateRollOver = function(z)
{
  document.images['borderx1y1z'+z].src = holzVars.imagePath+'dateEntryPointDark.gif';
  document.images['borderx2y1z'+z].src = holzVars.imagePath+'dateEntryPointDark.gif';
  document.images['borderx3y1z'+z].src = holzVars.imagePath+'dateEntryPointDark.gif';
  document.images['borderx1y2z'+z].src = holzVars.imagePath+'dateEntryPointDark.gif';
  document.images['borderx2y2z'+z].src = holzVars.imagePath+'timer_over.gif';
  document.images['borderx3y2z'+z].src = holzVars.imagePath+'dateEntryPointDark.gif';
  document.images['borderx1y3z'+z].src = holzVars.imagePath+'dateEntryPointDark.gif';
  document.images['borderx2y3z'+z].src = holzVars.imagePath+'dateEntryPointDark.gif';
  document.images['borderx3y3z'+z].src = holzVars.imagePath+'dateEntryPointDark.gif';
}

holzFunctions.dateRollOut = function(z)
{
  document.images['borderx1y1z'+z].src = holzVars.imagePath+'spacer.gif';
  document.images['borderx2y1z'+z].src = holzVars.imagePath+'spacer.gif';
  document.images['borderx3y1z'+z].src = holzVars.imagePath+'spacer.gif';
  document.images['borderx1y2z'+z].src = holzVars.imagePath+'spacer.gif';
  document.images['borderx2y2z'+z].src = holzVars.imagePath+'timer.gif';
  document.images['borderx3y2z'+z].src = holzVars.imagePath+'spacer.gif';
  document.images['borderx1y3z'+z].src = holzVars.imagePath+'spacer.gif';
  document.images['borderx2y3z'+z].src = holzVars.imagePath+'spacer.gif';
  document.images['borderx3y3z'+z].src = holzVars.imagePath+'spacer.gif';
}

holzFunctions.makeEntry = function(mydata, url, target)
{
  document.write('<tr>'
                +'<td><img src="'+holzVars.imagePath+'spacer.gif" name="borderx1y1z'+holzVars.dataZIndex+'"></td>'
                +'<td width="436"><img src="'+holzVars.imagePath+'spacer.gif" width="436" height="1" name="borderx2y1z'+holzVars.dataZIndex+'"></td>'
                +'<td><img src="'+holzVars.imagePath+'spacer.gif" name="borderx3y1z'+holzVars.dataZIndex+'"></td>'
                +'</tr>'
                +'<tr>'
                +'<td height="18"><img src="'+holzVars.imagePath+'spacer.gif" name="borderx1y2z'+holzVars.dataZIndex+'" height="100%" width="1"></td>'
                +'<td width="436" height="18"><a href="'+url+'" class="dateEntry" target="'+target+'" onMouseOver="holzFunctions.dateRollOver(\''+holzVars.dataZIndex+'\');" onMouseOut="holzFunctions.dateRollOut(\''+holzVars.dataZIndex+'\');"><img src="'+holzVars.imagePath+'spacer.gif" width="5" height="1" border="0"><img src="'+holzVars.imagePath+'timer.gif" name="borderx2y2z'+holzVars.dataZIndex+'" border="0" align="baseline"><img src="'+holzVars.imagePath+'spacer.gif" width="5" height="1" border="0">'+mydata+'</a></td>'
                +'<td height="18"><img src="'+holzVars.imagePath+'spacer.gif" name="borderx3y2z'+holzVars.dataZIndex+'" height="100%" width="1"></td>'
                +'</tr>'
                +'<tr>'
                +'<td><img src="'+holzVars.imagePath+'spacer.gif" name="borderx1y3z'+holzVars.dataZIndex+'"></td>'
                +'<td width="436"><img src="'+holzVars.imagePath+'spacer.gif" name="borderx2y3z'+holzVars.dataZIndex+'" width="436" height="1"></td>'
                +'<td><img src="'+holzVars.imagePath+'spacer.gif" name="borderx3y3z'+holzVars.dataZIndex+'"></td>'
                +'</tr>'
                +'<tr>'
                +'<td class="dateEntry" colspan="3"><img src="'+holzVars.imagePath+'spacer.gif" height="3"></td>'
                +'</tr>');
  holzVars.dataZIndex++;
}

holzVars.secudoxDocumentSpace = '<tr>'
                +'<td width="1" valign="top"><img src="'+holzVars.imagePath+'spacer.gif"></td>'
                +'<td width="8"><img src="'+holzVars.imagePath+'spacer.gif" height="4" width="8"></td>'
                +'<td width="146"><img src="'+holzVars.imagePath+'spacer.gif"></td>'
                +'<td bgcolor="#C2C2C2" width="1"><img src="'+holzVars.imagePath+'spacer.gif"></td>'
                +'<td width="8"><img src="'+holzVars.imagePath+'spacer.gif" height="4" width="8"></td>'
                +'<td width="79"><img src="'+holzVars.imagePath+'spacer.gif"></td>'
                +'<td bgcolor="#C2C2C2" width="1"><img src="'+holzVars.imagePath+'spacer.gif"></td>'
                +'<td width="8"><img src="'+holzVars.imagePath+'spacer.gif" height="4" width="8"></td>'
                +'<td ><img src="'+holzVars.imagePath+'spacer.gif"></td>'
                +'<td width="1" valign="top"><img src="'+holzVars.imagePath+'spacer.gif"></td>'
                +'</tr>';

holzFunctions.makeSecuDoxDocument = function(documentName, date, also, url)
{
  document.write( holzVars.secudoxDocumentSpace
                +'<tr>'
                +'<td width="1" valign="top"><img src="'+holzVars.imagePath+'spacer.gif"></td>'
                +'<td width="8"><img src="'+holzVars.imagePath+'spacer.gif" height="2" width="8"></td>'
                +'<td width="146" class="clientSecudoxContent"><a href="'+url+'"><img src="'+holzVars.imagePath+'icon_clients_secudox_doc.gif" align="baseline" border="0">&nbsp;'+documentName+'</a></td>'
                +'<td bgcolor="#C2C2C2" width="1"><img src="'+holzVars.imagePath+'spacer.gif"></td>'
                +'<td width="8"><img src="'+holzVars.imagePath+'spacer.gif" height="2" width="8"></td>'
                +'<td width="79" class="clientSecudoxContent">'+date+'</td>'
                +'<td bgcolor="#C2C2C2" width="1"><img src="'+holzVars.imagePath+'spacer.gif"></td>'
                +'<td width="8"><img src="'+holzVars.imagePath+'spacer.gif" height="2" width="8"></td>'
                +'<td  class="clientSecudoxContent">'+also+'</td>'
                +'<td width="1" valign="top"><img src="'+holzVars.imagePath+'spacer.gif"></td>'
                +'</tr>'
                +'<tr>'
                +holzVars.secudoxDocumentSpace);
}

holzFunctions.writeDateEntryField = function(tagname, monname, jahrname, aktday, aktmon, aktyear, jahrvon, jahrbis, showtag, showmon, showjahr)
{
  if(showtag)
  {
    document.write('<select name="'+tagname+'" class="recruitTextInput">');
    for(i=1; i<=31; i++)
    {
      if(aktday == i)
      {
        document.write('<option value="'+i+'" selected>'+i+'</option>');
      }
      else
      {
        document.write('<option value="'+i+'">'+i+'</option>');
      }
    }
    document.write('</select>');
  }
  if(showmon)
  {
    document.write('<select name="'+monname+'" class="recruitTextInput">');
    for(i=1; i<=12; i++)
    {
      if(aktmon == 1){document.write('<option value="'+i+'" selected>'+i+'</option>');}
      else{document.write('<option value="'+i+'">'+i+'</option>');}
    }
    document.write('</select>');
  }
  if(showjahr)
  {
    document.write('<select name="'+jahrname+'" class="recruitTextInput">');
    for(i=jahrvon; i<=jahrbis ; i++)
    {
      if(i == aktyear)
      {
        document.write('<option value="'+i+'" selected>'+i+'</option>');
      }
      else
      {
        document.write('<option value="'+i+'">'+i+'</option>');
      }
    }
    document.write('</select>');
  }
}

holzFunctions.makeServiceMenuPoint = function(title, kind, url, selected)
{
  document.write('<table border="0" cellspacing="0" cellpadding="0" height="16" style="background-image:URL('+holzVars.imagePath+'spacer.gif)">'
                +'<tr>'
                +'<td valign="middle" align="left"');
  if(kind == "big")
  {
    document.write('19"><img src="'+holzVars.imagePath+'spacer.gif" width="6" height="1">'
                  +'<img src="'+holzVars.imagePath+'point.gif"><img src="'+holzVars.imagePath+'spacer.gif" width="6" height="1"></td>'
                  +'<td');
    if(selected)
    {
      document.write(' class="serviceMenuSelected">'+title);
    }
    else
    {
      document.write('><a href="'+url+'" class="serviceMenuNotSelected">'+title+'</a>');
    }
  }
  else
  {
    document.write('32"><img src="'+holzVars.imagePath+'spacer.gif" width="19" height="1">'
                  +'<img src="'+holzVars.imagePath+'point_small.gif"><img src="'+holzVars.imagePath+'spacer.gif" width="6" height="1"></td>'
                  +'<td');
    if(selected)
    {
      document.write(' class="serviceSubMenuSelected">'+title);
    }
    else
    {
      document.write('><a href="'+url+'" class="serviceSubMenuNotSelected">'+title+'</a>');
    }
  }
  document.write('</td>'
                +'</tr>'
                +'</table>');
}


// Ordentliche JavaScript Window Open Funktion
holzFunctions.openWindow = function(url, name, width, height, parameter, align, valign)
{
  if(arguments.length == 7)
  {
    if(isNaN(valign))
    {
      if(align == "center")
      {
        ypos = Math.round(screen.height/2 - height/2);
      }
      else if(align == "top")
      {
        ypos = 0;
      }
      else if(align == "bottom")
      {
        ypos = Math.round(screen.height-height);
      }
      else
      {
        ypos = 0;
      }
    }
    else
    {
      ypos = valign;
    }
    if(isNaN(align))
    {
      if(align == "center")
      {
        xpos = Math.round(screen.width/2 - width/2);
      }
      else if(align == "left")
      {
        xpos = 0;
      }
      else if(align == "right")
      {
        xpos = Math.round(screen.width-width);
      }
      else
      {
        xpos = 0;
      }
    }
    else
    {
      xpos = align;
    }
    parameter = "width="+width+",height="+height+",top="+ypos+",left="+xpos+",screenX="+xpos+",screenY="+ypos+","+ parameter;
    if(holzVars.win == false || holzVars.win.closed)
    {
      holzVars.win = window.open(url, name, parameter);
      holzVars.winclosed = false;
    }
  }
}

holzFunctions.openServiceURL = function(svurl)
{
  alert('serviceUrl' + svurl);
  //document.location.href=svurl;
  //holzFunctions.openWindow(svurl, 'services', 781, 523,'scrollbars=yes,resizable=yes', 'center', 'middle');
}

holzFunctions.openServices = function()
{
  alert('service');
  //document.location.href=holzVars.serviceURL;
  //holzFunctions.openServiceURL(holzVars.serviceURL);
}

holzFunctions.openContact = function ()
{
  holzFunctions.openWindow(holzVars.contactURL, 'contact', 450, 470,'scrollbars=yes,resizable=yes', 'center', 'middle');
}

holzFunctions.openSitemap = function ()
{
  holzFunctions.openWindow(holzVars.sitemapURL, 'sitemap', 450, 470,'scrollbars=yes,resizable=yes', 'center', 'middle');
}
holzFunctions.openImpressum = function ()
{
  holzFunctions.openWindow(holzVars.impressumURL, 'impressum', 450, 470,'scrollbars=yes,resizable=yes', 'center', 'middle');
}
holzFunctions.openHelp = function ()
{
  holzFunctions.openWindow(holzVars.helpURL, 'help', 700, 470,'scrollbars=yes,resizable=yes', 'center', 'middle');
}
holzFunctions.openFaq = function ()
{
  holzFunctions.openWindow(holzVars.faqURL, 'faq', 450, 470,'scrollbars=yes,resizable=yes', 'center', 'middle');
}



holzFunctions.getURLInOpenerFrame = function(url)
{
  if(window.opener)
  {
    fenster = window.opener;
  }
  else
  {
    fenster = window;
  }
  fenster.document.location.href = url;
}

holzFunctions.focusOpenerFrame = function()
{
  if(window.opener)
  {
    if(!window.opener.closed)
    {
      fenster = window.opener.focus();
    }
  }
}

window.onunload = function()
{
  holzFunctions.focusOpenerFrame();
}


// Setzt beim Start den Focus auf das erste Formular und erste Feld
window.onload = function()
{
    if(document.forms)
    {
        if(document.forms[0])
        {
            if(document.forms[0].elements)
            {
                // Alle Elemente des ersten Formulars durchgehen bis eines den Focus setzen kann.
                for(i=0; i < document.forms[0].elements.length; i++)
                {
                    if(document.forms[0].elements[i].type != "hidden")
                    {
                        document.forms[0].elements[i].focus();
                        break;
                    }
                }
            }
        }
    }
}

// Beim verlassen der Seite den offenen Link (falls vorhanden) schliessen
window.onunload = function()
{
  if(typeof holzVars.win != "boolean")
  {
    if(!holzVars.win.closed)
    {
      holzVars.win.close();
    }
  }
}

// Fokussieren bei Fokus
window.onfocus = function()
{
  if(typeof holzVars.win != "boolean")
  {
    if(!holzVars.win.closed)
    {
      if(document.all)
      {
        setTimeout('if(!holzVars.win.closed){holzVars.win.focus();}', 10);
      }
      else
      {
        holzVars.win.focus();
      }
    }
    else
    {
      holzVars.win = false;
    }
  }
}
