  function prepareTable(table) {
    var sampletable = document.getElementById(table);
    var cells = sampletable.getElementsByTagName('td');
    for (i=0; i<cells.length; i++ ) {
      if ( cells[i].className == 'calendar' ) {
        cells[i].onmouseover = function() { 
          this.setAttribute('oldClass', this.className);
          this.className = 'highlight';
        }
        cells[i].onmouseout  =	function() { 
          this.className = this.getAttribute('oldClass');
        }
      }
	}
}
  
function togglePopup(div, day, month, year)
  {
    bla = document.getElementById(div);
    // Show popup
    if (document.getElementById(div).style.display != 'block') {
      document.getElementById(div).style.display = 'block';

      if ( day ) {
        if ( document.getElementById(div+'date') )
          document.getElementById(div+'date').value = year + '-' + month + '-' + day;
      }
      
    } else {
      // hide popup
      document.getElementById(div).style.display = 'none';
    }
  }
  
  function isNumeric(sText)
	{
		var ValidChars = "0123456789.";
		var IsNumber=true;
		var Char;
		
		for (i = 0; i < sText.length && IsNumber == true; i++) 
		{ 
			Char = sText.charAt(i); 
			if (ValidChars.indexOf(Char) == -1) 
			{
				IsNumber = false;
			}
		}
		return IsNumber;
	}
	
  /*
   * Validate that all form fields have numeric values if any
   */
	function validateForm()
	{
    f = document.getElementsByTagName("input");
    for (var i = 0; i < f.length; i++) {
      if ((f[i].getAttribute("id") == "nodefault") && (f[i].value != "")) {
        if (!isNumeric(f[i].value)) {
          alert("Värden måste anges i numerisk form");
          return false;
        }
      }
    }
    togglePopup('nutritionLog');
    return true;
	}
  
  
    /**
     * size an div after an referens object (robj)
     */
    function sizeDiv(id, robj)
    {
      document.getElementById(id).style.height = document.getElementById(robj).offsetHeight + 10 + 'px';
      document.getElementById(id).style.width = document.getElementById(robj).offsetWidth + 10 + 'px';
    }
/*
  function togglePopup(div, day, month, year)
  {
    
    // Show popup
    if (document.getElementById(div).style.display != 'block') {
      document.getElementById(div).style.display = 'block';
      
      if ( document.getElementById(div+'Table') ) {
     //   sizeDiv(div, div+'Table');
      }
      if ( day ) {
        document.getElementById(div+'date').value = year + '-' + month + '-' + day;
        document.getElementById('trainingLogdate').value = year + '-' + month + '-' + day;
        
        document.getElementById('balansLogdate').value = year + '-' + month + '-' + day;
        document.getElementById('balansLogAdvanceddate').value = year + '-' + month + '-' + day;
      }
      
    } else {
      // hide popup
      document.getElementById(div).style.display = 'none';
    }
  }
*/
  function toggleHelp(div, ob)
  {
    if (document.getElementById(div).style.display != 'block') {
      var o = document.getElementById(ob);
      var top = 0;
      var left = 0; //o.offsetLeft;
      var d = document.getElementById(div);
      d.style.position = 'absolute';
      
      if ( o ) {
      	while ( o.offsetParent && o.id != "center" ) {
        	top += o.offsetTop;
        	left += o.offsetLeft;
        	o = o.offsetParent;
      	}
     }
     
      if ( left > 300)
        left = 300;
      
      top += 20;
      //Test
      //top = 200;
      
      
      document.getElementById(div).style.top = top + 'px';
      document.getElementById(div).style.left = left + 'px';
      
      document.getElementById(div).style.display = 'block'; 
    } else {
      document.getElementById(div).style.display = 'none';
    }
  }
  
  function openNutritionCalendar() {
    var type = document.getElementById('selectType').value;
    document.getElementById('type').value = type;
    document.getElementById('meal').innerHTML = type;
    
  }
  
  function fluff(f) {
   
    var form = document.getElementById(f);
     
    var inp = form.getElementsByTagName("input");
     
    for( var i = 0; i < inp.length; i++ ) {
      if ( inp[i].checked ) {
        
        inp[i].checked = false;
      }
    }
  }
  
  function cleanForm(f) {
   
    var form = document.getElementById(f);
     
    var inp = form.getElementsByTagName("input");
     
    for( var i = 0; i < inp.length; i++ ) {
      if ( inp[i].checked ) {
        
        inp[i].checked = false;
      }
    }
  }
  
  function clearTrainingPop(f) {
    // Save some values
    
    
    var form = parent.document.getElementById(f);
    
     var part = parent.document.getElementById('beenTrainingPart').value;
    var subPart = parent.document.getElementById('beenTrainingSubPart').value;
    var time = parent.document.getElementById('beenTrainingAtTime').value;
    //var part = form.getElementById('beenTrainingPart').value;
    
    var inp = form.getElementsByTagName("input");
    var selects = form.getElementsByTagName("select");
    var comment = form.getElementsByTagName("textarea");
    
    comment[0].value = '';
    
    for( var i = 0; i < inp.length; i++ ) {
      if ( inp[i].checked ) {
        
        inp[i].checked = false;
      }
    }
    
    for( var i = 0; i < selects.length; i++ ) {
      var n = 0;
      while ( selects[i].childNodes[n].nodeType != 1 ) {
        n++;
      }
      selects[i].childNodes[n].selected = true;
    }
    
    // Restor saved values
    parent.document.getElementById('beenTrainingSubPart').value = ++subPart;
    parent.document.getElementById('beenTrainingPart').value = part;
    parent.document.getElementById('beenTrainingAtTime').value = time;
  }
 /* 
  function getSleepTime() {
   
    var bedTime    = document.getElementById('bedTime').value;
    var wakeupTime = document.getElementById('wakeupTime').value;
    var date       = document.getElementById('date').value;

    var dateSplit = date.split("-");
    year = dateSplit[0];
    month = dateSplit[1];
    day = dateSplit[2];
    
    var bedSplit    = bedTime.split(".");
    var wakeupSplit = wakeupTime.split(".");
  
    bed = new Date(year, month, day, bedSplit[0], bedSplit[1], 0);
    if ( wakeupSplit[0] < bedSplit[0] ) {
     day++;
    }
    wakeup = new Date(year, month, day, wakeupSplit[0], wakeupSplit[1], 0);

    var sleepTime = wakeup - bed;

    sleepTime = (sleepTime / (1000 * 60 * 60));
    s = Math.floor(sleepTime);
    s = sleepTime - s;
    sleepTime = sleepTime - s;
    s = s * 100;
    if ( s > 59 ) {
      s = s - 60;
      s = s / 100;
      sleepTime = sleepTime + 1;
      sleepTime = sleepTime + s;
    }
    document.getElementById('sleepTime').value = sleepTime;
  }
   */
  function goAdvanced(what) {
    if ( what == 'nutrition' ) {
      togglePopup('mealpopup');
      document.getElementById('mealpopupdate').value = document.getElementById('nutritionLogdate').value;
      togglePopup('nutritionLog');
    } else if ( what == 'training' ) {
      togglePopup('tl'); 
      togglePopup('trainingLogAdvanced');
   } else if ( what == 'trainingSteps' ) {
      togglePopup('tl'); 
      togglePopup('trainingLogSteps');
    } else if ( what == 'balans' ) {
      togglePopup('balansLog'); 
      togglePopup('balansLogAdvanced');
    }
  }
  
  function typeSelected() {
    typeSelector = document.getElementById('selectType');
    typeSelectorListItem = document.getElementById('selectTypeListItem');
    typeDisplay = document.getElementById('displayType');
    
    typeDisplay.innerHTML = ' - ' + typeSelector.value;
    typeSelectorListItem.style.display= 'none';
    
    document.getElementById('mealpopup_sub').style.display = 'block';
    
  }
  
  function closeAdvanced(what) {

    if ( what == 'nutrition' ) {
      typeSelectorListItem = document.getElementById('selectTypeListItem');
      typeDisplay = document.getElementById('displayType');
    
      typeDisplay.innerHTML = '';
      typeSelectorListItem.style.display= 'block';
    
      document.getElementById('mealpopup_sub').style.display = 'none';
    } else if ( what == 'training' ) {
      togglePopup('tl'); 
      togglePopup('trainingLogAdvanced');
    } else if ( what == 'balans' ) { 
      togglePopup('balansLogAdvanced');
    }
  }

var mealIndex = 0;
  function addMeals(ob, portionpara, target)
  {
    //where to atach the new elements to.
    var parent = document.getElementById(target);
    var row = document.createElement("div");
    var text = document.createTextNode(ob.value);
    var portion = document.createTextNode(portionpara.value + " portioner ");
    var hiddenField = document.createElement("input");
    var hiddenFieldPortion = document.createElement("input");
    
    var removeLink = document.createElement("a");
    var removeLinkText = document.createTextNode(" [ ta bort] ");
    var startValue = document.createElement("input");
    var endValue = document.createElement("input");
    var label = document.createElement("label");
    var br = document.createElement("br");
    // Set attributes
    row.setAttribute("id", "meal" + mealIndex);
    
    label.className= "inc";
    
    hiddenField.setAttribute("type", "hidden");
    hiddenField.setAttribute("name", "meal_"+target+"_"+mealIndex);
    hiddenField.setAttribute("value", ob.value);
    
    hiddenFieldPortion.setAttribute("type", "hidden");
    hiddenFieldPortion.setAttribute("name", "portion_"+target+"_"+mealIndex);
    hiddenFieldPortion.setAttribute("value", portionpara.value);
    
    removeLink.setAttribute("href", "javascript:removeMeals("+mealIndex+", '"+target+"')");
    removeLink.className = "inc";
    removeLink.appendChild(removeLinkText);
    
    label.appendChild(portion);
    label.appendChild(text);
    label.appendChild(hiddenField);
    label.appendChild(hiddenFieldPortion);
    label.appendChild(removeLink);
    
    row.appendChild(label);
    //row.appendChild(startValue);
    //row.appendChild(endValue);
    row.appendChild(br);
    
    parent.appendChild(row);
    
    mealIndex++;
  }
  
  function removeMeals(index, target)
  {
    var parent = document.getElementById(target);
    var child = document.getElementById("meal"+index);
    parent.removeChild(child);
    sizeBackground(); 
    autosizeIframe('healthsimpleprojectiframe');
  }
  
  
  /**
   * addExercise
   */
  var intIndex = 0;
  var exIndex = 0;
  var partHash = new Hash();
  var intervalHash = new Hash();
  var subPartIndex = 1;
  
  function addExercises(form) {
    var intList = '';
    // Validate data
    //if( $('beenTrainingAtTime').getValue() == '--' ) { alert("Ange start tid"); return; } 
    if( $('exercisActivity').getValue() == '' ) { alert("Du har inte anget vad du har tränat"); return; } 
    //subPartIndex = $('beenTrainingSubPart').getValue();
    var formData = $(form).serialize(true);
    //var bla = $(form).serialize();
    
    // Is this an interval?
    if ( formData['exercisType'] == 'Intervall' ) {
      // interval list
      intList = $('intervalList').cloneNode(true);
      $('intervalList').update();
      $('intervalBox').hide();
    }
    
    var elements = $(form).getElements();
    var hhh = new Hash();
    var partStr = 'part:'+exIndex+',';
    
    elements.each(function(index) {
      hhh.set( '_partno:'+exIndex + '' + index.name, index.value);
      partStr += index.name + ':' + index.value + ',';
    });
    bla = hhh.toQueryString();
    
    partHash.set( 'ex'+exIndex, partStr    );

    var a = new Element('a', { 'onclick': '', 'href': 'javascript:removeExercises('+exIndex+');' }).update('Ta bort');
    var li = new Element('li', { 'id': 'ex'+exIndex }).update(formData['exercisActivity'] +', '+formData['exercisType'] + ' ');
    
    li.insert( new Element('input', { 'type': 'hidden', 'name': 'partno_'+exIndex, 'value': exIndex }) );
    li.insert(a);
    if ( intList != '' ) {
      intList.writeAttribute('id', '');
      li.insert(intList);
    }
    
    $('list').insert(li, 'top');
    $('buttonSave').show();
    exIndex++;
    subPartIndex++;
    //$('beenTrainingSubPart').setValue(subPartIndex);
    $(form).reset();
    $('beenTrainingSubPart').setValue( subPartIndex );
    $('subPart').update( subPartIndex );
  }
  
  function addInterval(f) {
    //if ( exIndex > 0 ) {
      var index = exIndex;
      var intData = $(f).serialize(true);
      var bla = $(f).serialize();
     // var test = intervalHash.toQueryString();
      var elements = $(f).getElements();
      var hhh = new Hash();
      
      var intStr = 'part:'+index+',int:'+intIndex+',';
      elements.each(function(index) {
        hhh.set( 'int:' + intIndex + '_part:'+index + '' + index.name, index.value);
        intStr += index.name + ':' + index.value + ',';
      });
      bla = hhh.toQueryString();
      
      intervalHash.set( 'int'+intIndex, intStr );
      if ( intData['exercisInterval'] != '--' ) {
        var str = intData['exercisInterval'] + ' meter, tid - ' + intData['exercisIntervalActiveHours'] + ':' + intData['exercisIntervalActiveMinutes'] + ':' + intData['exercisIntervalActiveSeconds'] + ' ';
      } else {
        var str = intData['exercisIntervalTime'] + ' minuter ';
      }
      
      var a = new Element('a', { 'onclick': '', 'href': 'javascript:removeInterval('+intIndex+');' }).update('Ta bort');
      var li = new Element('li', { 'id': 'int'+index, 'class': 'indent' }).update(str);
      
      li.insert(a);
      
      $('intervalList').insert(li, 'top');
      intIndex++;
      $(f).reset();
    /*} else {
      alert("Du kan inte lägga till intervaller innan något pass lagts till!");
    }*/
  }
  
  function removeExercises(index) {
    $('ex'+index).remove();
    partHash.unset('ex'+index);
    if ( myHash.size() < 1 ) {
      $('buttonSave').hide();
    }
  }
  
  function removeInterval(index) {
    $('int'+index).remove();
    intervalHash.unset('int'+index);
  }
  
  function storeExercises() {
    var paraPart = '';
    var paraInt = '';
    var paraStretch = '';
    var para = '';
    
    partHash.each( function( index ) {
      paraPart += index.value + '|';
      partHash.unset( index.key );
    });
    
    intervalHash.each( function( index ) {
      paraInt += index.value + '|';
      intervalHash.unset( index.key );
    });
    
    stretchHash.each( function( index ) {
      paraStretch += index.value + '|';
      stretch.unset( index.key );
    });
    
    para = 'part=' + paraPart + '&int=' + paraInt + '&stretch=' + paraStretch;
    qp = para.toQueryParams();
    
    new Ajax.Request('/receivers/health_calendar_exercise_ajax.php',
    {
      method:'post',
      parameters: qp,
      onSuccess: function(transport){
        var response = transport.responseText || "no response text";
        alert("Uppgifterna är sparade" );
        //partHash = new Hash();
        $('list').update();
        //debug //$('output').update(response);
        togglePopup('basicLogStep1');
      },
      onFailure: function(){ alert('Something went wrong...') }
    });
    
  }
  
  
  function clearGym(f) {
   
    var form = parent.document.getElementById(f);
     
    var inp = form.getElementsByTagName("input");
    var selects = form.getElementsByTagName("select");
    var comment = form.getElementsByTagName("textarea");
    
    comment[0].value = '';
    
    for( var i = 0; i < inp.length; i++ ) {
      if ( inp[i].checked ) {
        
        inp[i].checked = false;
      }
    }
    
    for( var i = 0; i < selects.length; i++ ) {
      var n = 0;
      while ( selects[i].childNodes[n].nodeType != 1 ) {
        n++;
      }
      selects[i].childNodes[n].selected = true;
    }
  }

/*
 * Global data for gym calendar
 */
  var gymIndex = 0;
  var rowIndex = 0;
  var gymHash = new Hash();
  //var muscle = '';
  var setIndex = 1;
  var totSum = 0;
  var rowHash = new Hash();
  var setHash = new Hash();
  var set = 0;
/**
 * AddGym
 * @param form data from gym calendar
 */
   function addGym(form) {
      // Validate!
      //if( ( $('startTimeHours').getValue() == '0' ) && ( $('startTimeMinutes').getValue() == '0' ) && ( $('startTimeSeconds').getValue() == '0' ) ) { alert("Du har inte angivit start tid"); return; } 
      //if( ($('stopTimeHours').getValue() == '0') && ($('stopTimeMinutes').getValue() == '0') && ($('stopTimeSeconds').getValue() == '0') ) { alert("Du har inte anget sluttid"); return; } 
      //if( $('progNumber').getValue() == '' ) { alert("Du har inte anget träningsprogramsnummer"); return; } 
      //if( $('exercisNumber').getValue() == '' ) { alert("Du har inte anget övningsnummer"); return; } 
      if( $('exercisName').getValue() == '' ) { $('exercisName').setValue('') } //{ alert("Du har inte anget övningsnamn"); return; } 
      //if( $('weight').getValue() == '' ) { $('weight').setValue('0') } //{ alert("Du har inte anget antal kilo"); return; } 
      //if( $('reps').getValue() == '--' ) { $('reps').setValue('0') } //{ alert("Du har inte anget antal repetitioner"); return; } 
       var formData = $(form).serialize(true);
      //var bla = $(form).serialize();
      
      //////////////gymHash.set( 'ex'+gymIndex, bla );
      var weight = 0;
      var reps = 0;
      if ( formData['weight'] != '' ) { weight = formData['weight']; }
      if ( formData['reps'] != '--' ) { reps = formData['reps']; }
         
      var tbl = document.getElementById('listGym');
      var value = 0;
      if ( setIndex == 1 ) {
         if ( rowIndex == 0 ) {
            // Initialize table
         
            var tr = tbl.insertRow(rowIndex);
            tr.setAttribute('id', 'row'+rowIndex );
            Element.extend(tr);
         	tr.insert( new Element('input', { 'type': 'hidden', 'name': 'partno_'+gymIndex, 'value': gymIndex }) );
            tr.insert( new Element('td').update( 'Nr.' ) );
            tr.insert( new Element('td').update( 'Muskel' ) );
            if ( formData['weight'] != '' ) {
              tr.insert( new Element('td').update( 'Övning' ) );
              tr.insert( new Element('td').update( 'Set 1' ) );
              tr.insert( new Element('td').update( 'Set 2' ) );
              tr.insert( new Element('td').update( 'Set 3' ) );
              tr.insert( new Element('td').update( 'Set 4' ) );
              tr.insert( new Element('td').update( 'Set 5' ) );
              tr.insert( new Element('td').update( 'Set 6' ) );
              tr.insert( new Element('td').update( 'Total, kg.' ) );
            }
            
            var summa = tbl.insertRow(tbl.rows.length);
            Element.extend(summa);
            summa.setAttribute('id', 'summa' );
            summa.insert( new Element('input', { 'type': 'hidden', 'name': 'partno_'+gymIndex, 'value': gymIndex }) );
            summa.insert( new Element('td').update( ' ' ) );
            summa.insert( new Element('td').update( ' ' ) );
            summa.insert( new Element('td').update( ' ' ) );
            summa.insert( new Element('td').update( ' ' ) );
            summa.insert( new Element('td').update( ' ' ) );
            summa.insert( new Element('td').update( ' ' ) );
            summa.insert( new Element('td').update( ' ' ) );
            summa.insert( new Element('td').update( ' ' ) );
            summa.insert( new Element('td').update( ' ' ) );
            summa.insert( new Element('td').update( ' ' ) );
 
         } else {
            
         }
         rowIndex++;
         
         var data = tbl.insertRow(rowIndex);
         Element.extend(data);
         data.setAttribute('id', 'row'+rowIndex );
         //var a = new Element('a', { 'onclick': '', 'href': 'javascript:removeGym('+gymIndex+');' }).update('Ta bort');
         
         data.insert( new Element('input', { 'type': 'hidden', 'name': 'partno_'+gymIndex, 'value': gymIndex }) );
         data.insert( new Element('td').update( rowIndex ) );
         data.insert( new Element('td').update( formData['muscle'] ) );
         if ( formData['weight'] != '' ) {
          data.insert( new Element('td').update( formData['exercisName'] ) );
          data.insert( new Element('td').update( weight + '/'+ reps ) );
          data.insert( new Element('td').update( " " ) );
          data.insert( new Element('td').update( " " ) );
          data.insert( new Element('td').update( " " ) );
          data.insert( new Element('td').update( " " ) );
          data.insert( new Element('td').update( " " ) );
          data.insert( new Element('td').update( ( weight * reps * setIndex ) ) );
         }
         value = parseInt( weight * reps );
         var str = 'part:' + rowIndex + ',date:' + formData['date'] + ',intensity:' + formData['intensity'] + ',exercisName:' + formData['exercisName'] + ',muscle:' + formData['muscle'] + ',stopHours:' + formData['lengthHours'] + ',stopMinutes:' + formData['lengthMinutes'] + ',stopSeconds:' + formData['lengthSeconds'] + ',comment:' + formData['comment'];
         rowHash.set(rowIndex, str);
         
         //muscle = formData['muscle'];
      } else {
         tr = $('row'+rowIndex);
         var td = tr.getElementsByTagName('td');
         var i = parseInt( setIndex ) + 2;
         var ratio = parseInt(td[9].firstChild.nodeValue);
         value = parseInt( weight * reps );
         ratio += parseInt( weight * reps );

         if ( i > td.length - 2 ) {
            alert('Det är endast möjligt att lägga in upp till 6 set.');
            return;
         }
         
         var d = document.createTextNode( weight+'/'+reps );
         var tot = document.createTextNode( ratio );
         td[i].appendChild( d );
         td[9].update( ratio );
      }
      // calculate tot sum
      totSum += value;
      var su = $('summa');
      var st = su.getElementsByTagName('td');
      if ( formData['weight'] != '' ) {
        st[9].update( totSum);
      }
      str = 'part:' +rowIndex + ',set:'+ formData['set'] + ',weight:' + weight + ',reps:' + reps;
      setHash.set(set++, str);
      
      setIndex++;
      $('set').setValue(setIndex);
      //tr.insert(a);
  
      //$('listGym').insert(tr);
      $('gymSave').show();
      gymIndex++;
   }
  
  /**
   * Clear form
  */
   function resetGymForm(form) {
      //$(form).reset();
      //$("progNumber").setValue('');
      //$("exercisNumber").setValue('');
      $("exercisName").setValue('');
      $("muscle").setValue('');
      $("weight").setValue('');
      $("reps").setValue('');
      setIndex = 1;
      $('set').setValue(setIndex);
   }
  function removeGym(index) {
    $('ex'+index).remove();
    rowHash.unset(index);
    setHash.unset(index);
    if ( gymHash.size() < 1 ) {
      $('gymSave').hide();
    }
  }
  
  /**
   * Add gym kondition
   */
   var kIndex = 0;
   var kondHash = new Hash();

   function addGymKondition(form) {
      var formData = $(form).serialize(true);
      
      var elements = $(form).getElements();
      //var hhh = new Hash();
      var kondStr = 'part:'+kIndex+',';
    
      elements.each(function(index) {
         //hhh.set( '_partno:'+kIndex + '' + index.name, index.value);
         kondStr += index.name + ':' + index.value + ',';
      });
      
      // bla = hhh.toQueryString();
      
      kondHash.set( 'k'+kIndex, kondStr    );
      
      var a = new Element('a', { 'onclick': '', 'href': 'javascript:removeKond('+kIndex+');' }).update('Ta bort');
      var li = new Element('li', { 'id': 'k'+kIndex }).update(formData['gymKondMachine']);
      
      li.insert( new Element('input', { 'type': 'hidden', 'name': 'partno_'+kIndex, 'value': kIndex }) );
      li.insert(a);
      
      $('kondList').insert(li, 'top');
      kIndex++;
   }
  
   function removeKond(index) {
      $('k'+index).remove();
      kondHash.unset('k'+index);
   }
  
   /**
    * Add gym stretching
   */
   var sIndex = 0;
   var stretchHash = new Hash();

   function addStretch(form) {
      var stretchData = $(form).serialize(true);
      
      var elements = $(form).getElements();
      //var hhh = new Hash();
      var partStr = 'part:'+sIndex+',';
    
      elements.each(function(index) {
         //hhh.set( '_partno:'+sIndex + '' + index.name, index.value);
         partStr += index.name + ':' + index.value + ',';
        
      });
      
      // bla = hhh.toQueryString();
      
      stretchHash.set( 'k'+sIndex, partStr    );
      
      var str = ' , Övningsnamn - ' + stretchData['stretchName'] + ', Sida: ' + stretchData['stretchSide'] + ', tid: ' + stretchData['stretchTime'] + ' Gånger: ' + stretchData['stretchReps'];
       
      var a = new Element('a', { 'onclick': '', 'href': 'javascript:removeStretch('+sIndex+');' }).update('Ta bort');
      var li = new Element('li', { 'id': 's'+sIndex }).update(str);
      
      li.insert( new Element('input', { 'type': 'hidden', 'name': 'partno_'+sIndex, 'value': sIndex }) );
      li.insert(a);
      
      $('stretchList').insert(li, 'top');
      sIndex++;
   }
   
   /**
    * Remove stretching
    */
   function removeGymStretch(index) {
      $('s'+index).remove();
      gymStretchHash.unset('s'+index);
   }
  
   /**
    * Store Gym data
    * @para
    */
   function storeGym() {
      var paraGymEx = '';
      var paraGymSet = '';
      var paraKond = '';
      var paraStretch = '';
      var para = '';
      
      rowHash.each( function( index ) {
         paraGymEx += index.value + '|';
         //rowHash.unset(index.key);
      });
      
      setHash.each( function( index ) {
         paraGymSet += index.value + '|';
         //setHash.unset(index.key);
      });
      /*
      kondHash.each( function( index ) {
         paraKond += index.value + '|';
      });
      
      gymStretchHash.each( function( index ) {
         paraStretch += index.value + '|';
      });
      */
      para = 'gymEx=' + paraGymEx + '&gymSet=' + paraGymSet + '&kond=' + paraKond + '&stretch=' + paraStretch;
      qp = para.toQueryParams();
      
      new Ajax.Request('/receivers/health_calendar_gym.php',
      {
         method:'post',
         parameters: qp,
         onSuccess: function(transport){
            var response = transport.responseText || "no response text";
            //debug //$('output').update(response);
            alert("Uppgifterna är sparade" );
           // $('listGym').update();
           // $('gymSave').hide();
           togglePopup('basicLogStep1');
         },
         onFailure: function(){ alert('Something went wrong...') }
      });
   }
  
  function addSteps() {
    var steps = $('basicLogSteps').getValue();
    $('basicLogSteps').value = 0;
    var tot = $('basicLogStepsTot').value;
    tot = parseInt(tot, 10) + parseInt(steps, 10);
    $('basicLogStepsTotDisp').update(tot);
    $('basicLogStepsTot').value = tot;
  }
  
  function addActivitySteps() {
    var factor = $('basicLogStepActivity').value;
    var time = $('basicLogStepActivityTime').value;
    var tot = $('basicLogStepsTot').value;
    tot = parseInt(tot, 10) + (factor * time);
    $('basicLogStepsTotDisp').update(tot);
    $('basicLogStepsTot').value = tot;
  }
  
  function clearSteps() {
    $('basicLogStepsTotDisp').update(0);
    $('basicLogStepsTot').value = 0;
  }
  
  function showStretch() {
    $('stretchBox').show();
  }
  
  function hideStretch() {
    $('stretchBox').hide();
  }
  
//--------------------------------------------------------------------

  var stretchIndex = 0;
  var stretchHash = new Hash();
  
  function addStretch(f) {
  	var datePattern = '^((([0]?[1-9]|1[0-2])(:|\.)[0-5][0-9]((:|\.)[0-5][0-9])?( )?(AM|am|aM|Am|PM|pm|pM|Pm))|(([0]?[0-9]|1[0-9]|2[0-3])(:|\.)[0-5][0-9]((:|\.)[0-5][0-9])?))$';
    var stretchData = $(f).serialize(true);
    
    var elements = $(f).getElements();
    var hhh = new Hash();
      
    var stretchStr = '';
    elements.each(function(index) {
      hhh.set( 'stretch:' + stretchIndex + '' + index.name, index.value);
      stretchStr += index.name + ':' + index.value + ',';
    });
    bla = hhh.toQueryString();
      
    stretchHash.set( 'stretch'+stretchIndex, stretchStr );
    
    var str = '';
    if ( stretchData['stretchMuscle'] != '' ) {
      str += stretchData['stretchMuscle'] + ' ';
    }
    if ( stretchData['stretchName'] != '' ) {
      str += stretchData['stretchName'] + ' ';
    }
    if ( stretchData['stretchSide'] != '' ) {
      str += 'Sida: ' + stretchData['stretchSide'] + ' ';
    }
    if ( stretchData['stretchTime'] != '' ) {
    	if ( ! stretchData['stretchTime'].match(datePattern) ) {
    		alert("Träningslängd är inte angiven korrekt, försök igen");
    		return; 
    	}
       str += 'tid: ' + stretchData['stretchTime'] + ' ';
    }
    if ( stretchData['stretchReps'] != '--' ) {
      str += 'Reps: ' + stretchData['stretchReps'] + ' ';
    }
    
   
      
    var a = new Element('a', { 'onclick': '', 'href': 'javascript:removeStretch('+stretchIndex+');' }).update('Ta bort');
    var li = new Element('li', { 'id': 'stretch'+stretchIndex, 'class': 'indent' }).update(str);
      
    li.insert(a);
     
    $('stretchList').insert(li, 'top');
    $('stretchSave').show();
    stretchIndex++;
  }
 
//--------------------------------------- 

  function removeStretch(index) {
    $('stretch'+index).remove();
    stretchHash.unset('stretch'+index);
  }

//---------------------------------------

  /**
    * Store Gym data
    * @para
    */
   function storeStretch() {
      var paraStretch = '';
      
      stretchHash.each( function( index ) {
         paraStretch += index.value + '|';
      });
      
      para = 'stretch=' + paraStretch;
      qp = para.toQueryParams();
      
      new Ajax.Request('/receivers/health_calendar_stretch.php',
      {
         method:'post',
         parameters: qp,
         onSuccess: function(transport){
            var response = transport.responseText || "no response text";
            //debug // $('output').update(response);
            alert("Uppgifterna är sparade");
           // $('listGym').update();
           // $('gymSave').hide();
           togglePopup('basicLogStep1');
         },
         onFailure: function(){ alert('Something went wrong...') }
      });
   }

//------------------------------------------------------------

function toggleAdvanced( box ) {
  $(box).toggle();
}