/**
 * Methoden fuers Frontend
 */
function frontend(){
   
   /**
    * Schreibt das Value der Checkbox in ein Text- oder Hidden-Field.
    * Wenn die ID der Checkbox = checkbox_name_number ist
    * wird der Wert der Checkbox in das Feld mit der ID name_number geschrieben.
    * 
    * @param object  objEv       HTML-Object auf das geklickt wurde
    */
   this.checkboxToHidden = function(objEv)
   {
      var objField;
      var idField;
      
      // beginnt die ID der Checkbox mit checkbox_
      if(!objEv.id.match(/^checkbox_/))
      {
         // nein
         return;
      }
      
      // ist es eine Checkbox auf die geklickt wurde
      if(objEv.type != 'checkbox')
      {
         // nein
         return;
      }
      
      // gibt es das Field, in das geschrieben werden soll
      idField = objEv.id.replace(/^checkbox_/, '');
      
      if(!(objField = document.getElementById(idField)))
      {
         // nein
         return;
      }
      
      if(objEv.checked)
      {
         objField.value = objEv.value;
      }
      else
      {
         objField.value = '';
      }
      
      return;
   }  
   
   /**
    * Macht die zusaetzlichen Tabellen Zeilen im Arzneimittel Vorbestellen Formualr sichtbar
    * 
    * @param   object   objEv    Das Element auf das geklickt wurde
    */
   this.showMoreOrderLines = function(objEv)
   {
      var objTr, idTr, i, maxHeight, rowHeight, rowCount;
      
      rowCount = 0;
      
      if(typeof xHeight == 'function')
      {
         // Ermitteln der Hoehe von "sidebar" und "content" wenn xShort.js eingebunden
      
         // Ermitteln der groessten Hoehe
         maxHeight = Math.max(xHeight('sidebar'), xHeight('content'));
         
         // Hoehe einer zusaetzlichen Tabellenzeile
         rowHeight = xHeight('orderRow0');
      }
      
         
      i = 0;
      do
      {
         idTr = 'orderRow' + i;
         
         if(!(objTr = document.getElementById(idTr)))
         {
            // Tabellen Zeile existiert nicht, wir sind fertig
            break;
         }
         
         if(objTr.className == 'orderRowHide')
         {
            objTr.className = 'orderRowShow';
            rowCount++;
         }   
         
         i++;
      }
      while(true);
      
      // und die Zeile mit dem Schalter "Mehr Zeilen" ausblenden
      if((objTr = document.getElementById('showMoreOrderLines')))
      {
         objTr.style.display = 'none';   
      }
      
      
      // Wenn xShort.js eingebunden hoehe anpassen
      if(typeof xHeight == 'function')
      {
         maxHeight += (rowHeight * rowCount);
         
         // Zuweisen der groessten Hoehe
         xHeight('sidebar', maxHeight);
         xHeight('content', maxHeight);
      }      
   }
   
}

var objFrontend = new frontend();
