function log(o1) {
  if (typeof console != 'undefined')
    console.debug(o1);
}

groupSum = [];

currentGeraet = null;
var eventRules = {
  start : function(){
    $ES('a.headswitch').each(function(element){
      element.onclick = function(e) {
        aktGruppenId = element.id.split('_')[1];
        fillAsync('?svget.geraete.' + aktGruppenId, 'types', function(){ runDelayed(eventRules.geraete) });
        $('types').scrollTop = 0;
        $$('div.open').each(function(el){
          el.removeClass('open');
        });
        fillAsync('?svgetgrp.'+aktGruppenId, 'tabblock_'+aktGruppenId);
        $('grp_'+aktGruppenId).addClass('open');
      }
    });
    $('btnAdd').onclick = function(e) {
      runDelayed(addGeraet);
    }
    $$('button.btnRemove').each(function(element){
      element.onclick = function(e) {
        $A(document.getElementsByName('tabchoose')).each(function(el) {
          if (el.checked) {
            var ids = el.value.split('-');
            fillAsync('?svdel.'+ids[0]+'.'+ids[1], 'tabblock_'+aktGruppenId);
          }
        });
      }
    });
    /*
    $('btnShowResult').onclick = function(e) {
      window.location='?svpdfgfx';
    }
    */
    aktGruppenId = 4;
    $('hs_'+aktGruppenId).onclick();
    //fillAsync('?svgetgrp.'+aktGruppenId, 'tabblock_'+aktGruppenId);
    /*
        aktGruppenId = el.id.split('_')[1];
        window.setTimeout(function() {
          fillAsync('?svgetgrp.'+aktGruppenId, 'tabblock_'+aktGruppenId)
        }, 1000);
    */
  },
  resultPanel : function() {
    $('btnPrint').onclick = function(e) {
      window.print();
    };
    $('btnPrint').onclick = function(e) {
      window.print();
    };
    $('btnOrderCat').onclick = 
    $('btnOrderPers').onclick =
    $('btnOrderRaum').onclick =function(e) {
      var id = this.id.substr(8);
      ['Cat', 'Pers', 'Raum'].each(function(k) {
        $('pnlSort'+k).setStyle('display', k == id ? '' : 'none');
        if (k == id)
          $('btnOrder'+k).addClass('dis');
        else
          $('btnOrder'+k).removeClass('dis');
      });
    }
  },
  geraete : function(){
    var fg = null;
    $$('a.geraete').each(function(element){
      geraete[element.id.split('_')[1]]['info'] = element.firstChild.title;
      if (null == fg)
        fg = element;
      //$('pnlTv').style.display = g.isTv ? '':'none';
      element.onclick = function(e) {
        if ($(currentGeraet))
          $(currentGeraet).removeClass('selected');
        element.addClass('selected');
        currentGeraet = element.id;
        var geraetId = element.id.split('_')[1];
        fillAsync('?svget.felder.' + geraetId, 'propbox1', function(){ runDelayed(eventRules.felder) });
        //log(geraete[geraetId].isTv);
        $('pnlInfo').innerHTML = geraete[geraetId].info;
        $('pnlInfo').setStyle('display', geraete[geraetId].info == '' ? 'none' : '');
        $('pnlStandby').setStyle('display', geraete[geraetId].isStandby ? '' : 'none');
        $('cbStandby').name = geraete[geraetId].label + '.standby';
        $('cbxTv').disabled = geraete[geraetId].isTv != '1';
        $('tagesverbrauch').disabled = geraete[geraetId].isTv != '1';
        $('calProp').elements['geraet'].value = geraete[geraetId].label;
        currentGeraetId = geraetId;
      }
    });
    fg.onclick();
  },
  felder : function() {
    $A($('calProp').elements).each(function(element) {
      var fe = function(e) {
        if (element.name == 'rbTv') {
          var idp = geraete[currentGeraetId].label;
          var isTv = element.value == 'tv';
          $A(document.getElementsByName('rbTv')).each(function(el){
            $(idp+'.'+el.value).disabled = !el.checked;
          });
        } else {
          runDelayed(calcValues);
        }
      }
      if (element.type == 'checkbox')
        element.onclick = fe
      else  
        element.onchange = fe;
    });
    runDelayed(calcValues);
  },
  addHovers : function() {
    $$('div.line').each(function(el) {
      el.onmouseover = function(e) {
        el.addClass('over');
      }
      el.onmouseout = function(e) {
        el.removeClass('over');
      }
    });
    $$('a.remove').each(function(el) {
      el.onclick = function() {
        var ids = el.href.substr(el.href.indexOf('#')).split('-');
        //fillAsync('?svdel.'+ids[1]+'.'+ids[2], 'tabblock_'+aktGruppenId);
        showDeleteLayer(ids[1],ids[2],aktGruppenId);
      }
    });
  }
}

window.onload = function(){
  eventRules.start();
}
   

function fillAsync(url, id, complete) {
  try {
    new Ajax(url, {method: 'GET', async: true, update: id, evalScripts: true, onComplete: complete == null ? Class.empty : complete}).request();
  } catch(e) {
    return null;
  }
}
 
function runDelayed(func) {
  window.setTimeout(func, 50);
}

function calcValues() {
  var reqval = Object.toQueryString(getUserinputs());
  try {
    new Ajax('?svcalc', {method: 'post', postBody: reqval, async: true, onComplete: function(res){
      var res = eval('('+res+')');
      var txtTv = $(geraete[currentGeraetId].label+'.tv');
      if (txtTv != null)
        txtTv.value = res[0].toString().replace(/\./, ',');
      // $('txtResult').innerHTML = res[1].toString().replace(/\./, ',');
    }}).request();
  } catch(e) {
    return null;
  }
}

function addGeraet() {
  var vals = getUserinputs();
  vals['gruppe'] = aktGruppenId;
  vals['desc'] = $('txtBesch').value;
  vals['raum'] = $('txtRaum').value;
  vals['pers'] = $('txtPers').value;
  var reqval = Object.toQueryString(vals);
  try {
    new Ajax('?svadd', {method: 'post', postBody: reqval, async: true, evalScripts: true, update: 'tabblock_'+aktGruppenId}).request();
  } catch(e) {
    console.log(e);
    return null;
  }
}

function setSumme() {
  groupSum[aktGruppenId] = [summekwh, summeco2];
  $('summekwh_'+aktGruppenId).setHTML(summekwh);
  $('summeco2_'+aktGruppenId).setHTML(summeco2);
  fullSum = [0, 0];
  for(var i = 0; i < groupSum.length; i++) {
    if (groupSum[i] == null)
      continue;
    fullSum[0] += groupSum[i][0];  
    fullSum[1] += groupSum[i][1];
  }
  $('totalsumk').setHTML(fullSum[0]);
  $('totalsumc').setHTML(fullSum[1]);
}

function getUserinputs() {
  var vals = new Object();
  $A($('calProp').elements).each(function(el) {
    if (el.name == 'rbTv')
      return;
    if (el.disabled)
      return;
    var namesplit = el.name.split('.');
    if (el.name == 'geraet') {
      vals['geraet'] = el.value;
      return;
    }
    vals['param['+namesplit[1]+']'] = el.type == 'checkbox' ? (el.checked ? '1':'0') : el.value.replace(/,/, '.');;
  });
  return vals;
}
