/*
     $Revision$
     $Id$

     File:               alg_ruimteafdeling.js
*/

var rowIndex = -1;
var multiRuimte = true;

function onClickItem(tr)
{
  // Wordt aangeroepen na één klik op een item
  $(tr).toggleClass("selected");
}

function onDblClickItem(tr) {
    $(tr).closest("table").find("tr").removeClass("selected"); // Alle andere regels deselecteren
    $(tr).addClass("selected");
    window.parent.doSubmit();
}

function setMultiRuimte(aantal)
{
	multiRuimte = (aantal != 1);
}

function CreateRow(afd_key, afd_name, bezetting, oppervlak, bruto)
{
  rowIndex++;
  var table = $("#afdbezettingtable>tbody")[0];

  // Insert data rows
  tr = table.insertRow(-1);
  tr.myData = { afd_key: afd_key};
  tr.value = rowIndex;

  // Create drop button
  cell = tr.insertCell(-1);
  cell.className = "result";
  cell.align = "center";
  cell.innerHTML = "<i class='fa fa-fw fa-times' OnClick='delRow(this)' style='cursor:pointer'></i>";

  // innerHTML opent een htmlparser die overbodige spaties en line breaks verwijderd in IE, daarom met innerText oplossen
  // Input velden moeten wel met innerHTML of outerHTML anders wordt het text

  // Afdeling omschrijving veld
  cell = tr.insertCell(-1);
  cell.className = "result";
  cell.innerHTML = afd_name;
  cell.align = "left";
  cell.style.whiteSpace = "nowrap";

  // Bezetting input veld
  cell = tr.insertCell(-1);
  cell.className = "result";
  cell.innerHTML = "<input type='text' class='fldshort' id='bez" + rowIndex + "' name='bez" + rowIndex + "' value='" + bezetting + "' maxlength='6' onchange='changeBezetting("+rowIndex+")'></input>"
                 + "<input type='hidden' id='afd" + rowIndex + "' name='afd" + rowIndex + "' value='" + afd_key + "'></input>";
  cell.align = 'left';

  if (!multiRuimte)
  {
  // Bezetting input veld m2
  cell = tr.insertCell(-1);
  cell.className = "result";
  cell.innerHTML = "<input type='text' class='fldshort' id='bezopp" + rowIndex + "' name='bezopp" + rowIndex + "' value='" + oppervlak + "' maxlength='8' onchange='changeOppervlak("+rowIndex+")'></input>"
                 + "<input type='hidden' id='totaalopp" + rowIndex + "' name='totaalopp" + rowIndex + "' value='" + bruto + "'></input>";
  cell.align = 'left';
  }
  document.getElementById("nrRows").value = parseInt(rowIndex) + 1;
}

function delRow(img)
{
  // Verwijder de aangeklikte afdeling uit de lijst (de regel)
  FcltMgr.confirm(L("lcl_alg_cancelDepartment"), function() {
      var tr = $(img).closest("tr")[0];
      if (tr.myData.afd_key != null) {
          document.getElementById("afdbezettingtable").deleteRow(tr.rowIndex);
      }
  });
}

function alg_submit()
{
	var percValid = true;
  var i=0;
  while (percValid && (i<=rowIndex))
  {
      if ($("#bez"+i).length) // niet verwijderd
      {
    	  var oppPerc = parseFloat($("#bez"+i).val().replace(',', '.'));
     	  if (oppPerc > 100)
    	  {
    	  	percValid = false;
          FcltMgr.alert(L("lcl_alg_bezetting_ongeldig"));
          $("#bez"+i).select();
          $("#bez"+i).focus();
        }
  	  }
  	  i++;
  }
  if (percValid)
  {
    document.forms.u2.submit();
  }
}

function alg_add(oppervlak)
{
  if ($("#afdeling_key").val() > 0)
  {
    var exist = false;
    $("#afdbezettingtable tr").each(function(i, value)
                              {
                                if (this.myData && $("#afdeling_key").val() == this.myData.afd_key)
                                  exist = true;
                              });
    if (!exist)
    {
      CreateRow($("#afdeling_key").val(),
                $("#afdeling_key_show").val(),
                100, oppervlak, oppervlak);
      FcltMgr.resized(window);
    }
  }
}

function changeOppervlak(prowIndex)
{
	var bereken = true;
	if (!isGoodNumber($("#bezopp"+prowIndex).val(), false,false,8,2))
	{
	  bereken = false;
    FcltMgr.alert(L("lcl_alg_bezetting_ongeldig"));
    $("#bezopp"+prowIndex).select();
    $("#bezopp"+prowIndex).focus();
	}
	if (bereken && (!isGoodNumber($("#totaalopp"+prowIndex).val(), false,false,8,2)))
	  $("#totaalopp"+prowIndex).val($("#bezopp"+prowIndex).val());

	if (bereken)
	{
	  var oppBezet = parseFloat($("#bezopp"   +prowIndex).val().replace(',', '.'));
	  var oppBruto = parseFloat($("#totaalopp"+prowIndex).val().replace(',', '.'));
	  if (oppBruto > 0)
	  {
	    var oppPercF = (oppBezet * 100) / oppBruto;
	    var oppPerc  = num2currEditable(oppPercF);
      $("#bez" + prowIndex).val(oppPerc);
  	}
  }
}

function changeBezetting(prowIndex)
{
  if (!isGoodNumber($("#bez"+prowIndex).val(), false,false,8,2) || parseFloat($("#bez"+prowIndex).val().replace(',', '.')) > 100)
  {
    FcltMgr.alert(L("lcl_alg_bezetting_ongeldig"));
    $("#bez"+prowIndex).select();
    $("#bez"+prowIndex).focus();
  }
  else
  {
  	if (!multiRuimte)
  	{
      var oppPerc  = parseFloat($("#bez"      +prowIndex).val().replace(',', '.'));
      if (isGoodNumber($("#totaalopp"+prowIndex).val(), false,false,8,2))
      {
        var oppBruto = parseFloat($("#totaalopp"+prowIndex).val().replace(',', '.'));
        var oppBezet = num2currEditable( ((oppPerc * oppBruto) / 100)	);
        $("#bezopp" + prowIndex).val(oppBezet);
      }
    }
  }
}
