Files
Facilitor/APPL/ALG/alg_ruimteafdeling.js
2013-08-07 14:04:32 +00:00

178 lines
5.2 KiB
JavaScript

/*
$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 = "<img src='../Pictures/order_cancel.gif' OnClick='delRow(this)' style='cursor:pointer'>";
// 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)
if (!confirm(L("lcl_alg_cancelDepartment")))
return;
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;
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;
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)
{
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);
}
}
}
}