﻿var dirty = false; //Hvis true er der foretaget rettelser på en side
var checkLimits = true; //hvis false checkes grænser ikke på klient - kun vide grænser på server

function validate(elem, name, decLen, minval, maxval) {
	elem.style.borderColor = '#000';
	if (toDec(elem, decLen)) {
		if (checkLimits) {
			var val = parseFloat(elem.value.replace(decChar, '.'));
			if (val < minval) {
				elem.style.borderColor = '#f00';
				alert(paramMin(name, minval));
				val = minval;
			}
			if (val > maxval) {
				elem.style.borderColor = '#f00';
				alert(paramMax(name, maxval));
				val = maxval;
			}
			elem.value = val.toString();
			toDec(elem, decLen);
		}
	} else {
		elem.style.borderColor = '#f00';
		alert(paramWrong(name));
	}
}

function canNavigate() {
	return (!dirty || confirm(confirmDirty()));
}

//Kaldes når bruger trykker på knap med "enter"-tegn
function newrow(button) {
	var currow = (button.parentElement) ? button.parentElement.parentElement : button.parentNode.parentNode;
	var tbody = (currow.parentElement) ? currow.parentElement : currow.parentNode;
	var newrowSkabelon = (tbody.lastElementChild) ? tbody.lastElementChild : tbody.lastChild;
	var newrow = newrowSkabelon.cloneNode(true);
	newrow.id = '';
	//Fyld data i den nye række på baggrund af indhold i arguments-collection
	var tds = newrow.children;//.firstElementChild
	for (var i = 0; i < tds.length - 1; i++) {
	   var inp = (tds[i].firstElementChild) ? tds[i].firstElementChild : tds[i].firstChild;
		if (inp.tagName == 'INPUT') {
		   inp.value = arguments[i * 2 + 1];
		   toDec(inp, arguments[i * 2 + 2]);
		} else
		   inp.selectedIndex = arguments[i * 2 + 1];
		//td = td.nextSibling;
	}
   newrow.style.display = 'block';
	return(tbody.insertBefore(newrow, currow.nextSibling));
}

//Kaldes når liste skal populeres med persisterede rækker
function newrowBeforelast(table) {
	var tbody = (table.lastElementChild) ? table.lastElementChild : table.lastChild;
	var newrowSkabelon = (tbody.lastElementChild) ? tbody.lastElementChild : tbody.lastChild;
	var newrow = newrowSkabelon.cloneNode(true);
	newrow.id = '';
	newrow.style.display = 'block';
	return(tbody.insertBefore(newrow, newrowSkabelon));
}

function delrow(el) {
   var currow = (el.parentElement) ? el.parentElement.parentElement : el.parentNode.parentNode;
   var tbody = (currow.parentElement) ? currow.parentElement : currow.parentNode;
	tbody.removeChild(currow);
}

function tabIt(tab, tabPage) {
	if (tab) {
		for (var ps = tab.previousSibling; ps; ps = ps.previousSibling)
			if (ps.className == 'curTab')
				ps.className = 'tab';
		for (var ns = tab.nextSibling; ns; ns = ns.nextSibling)
			if (ns.className == 'curTab')
				ns.className = 'tab';
		tab.className = 'curTab';

		for (var i = 2; i < arguments.length; i++)
			document.getElementById(arguments[i]).style.display = 'none';
		if (tabPage)
			document.getElementById(tabPage).style.display = 'block';
	}
}

function setInput(form, inpname, subIndex, val, dec) {
    var inp = document.getElementsByName(inpname)[subIndex];
    inp.value = val;
    if (dec)
        toDec(inp, dec);
}

function checkCheckbox(form, inpname, val) {
    document.getElementsByName(inpname)[0].checked = (val == 1);
}

function checkRadio(form, inpname, val) {
	for (var i = 0; i < form.elements.length; i++) {
		if (form.elements[i].name == inpname && form.elements[i].value == val) {
			form.elements[i].checked = true;
		}
	}
}

function selectOption(form, inpname, val) {
    var sel = document.getElementsByName(inpname)[0];
	for (var i = 0; i < sel.options.length; i++) {
		if (sel.options[i].value == val) {
			sel.selectedIndex = i;
		}
	}
}

function showhelp(helpRef, dontAlterPath) {
   if(!dontAlterPath)
      helpRef = "../help/" + helpRef;
   helpwin = window.open(helpRef, "help");
	helpwin.focus();
}

function setFormReport() {
    document.getElementsByName('moduleForm')[0].method = 'GET';
    document.getElementsByName('moduleForm')[0].target = '_blank';
}

function setFormNetReport(mName) {
    document.getElementsByName('moduleForm')[0].method = 'GET';
    document.getElementsByName('moduleForm')[0].target = '_blank';
    document.getElementsByName('moduleForm')[0].action = '../modulereport/' + mName;
}

function setFormSave() {
    document.getElementsByName('moduleForm')[0].method = 'POST';
    document.getElementsByName('moduleForm')[0].target = '_self';
}

function newwin(aform, act, n) {
	aform.action = act;
	aform.target = ((n) ? 'repwin' : '_self');
	if (n)
		window.open('about:blank', 'repwin');
}

function toDec(elem, decLen) {
	if (!elem.value)
		return false;
	var val = parseFloat(elem.value.replace(decChar, '.'));
	if (isNaN(val)) {
		return false;
	}
	var exp = Math.pow(10, decLen);
	val = Math.round(val * exp) / exp;	
	if (decLen) {
		elem.value = val.toString().replace('.', decChar);
		var p = elem.value.indexOf(decChar);
		if (p < 0) {
			p = elem.value.length;
			elem.value = elem.value.concat(decChar);
		}
		while (elem.value.length < (p + decLen + 1))
			elem.value = elem.value.concat('0');
	} else
		elem.value = val.toString();
	return true;
}

function VaegtypeSetControls(enable) {
	enable = (enable) ? 'visible' : 'hidden';
	document.getElementsByName('moduleForm')[0].FormurTykk.style.visibility = enable;
	document.getElementsByName('moduleForm')[0].E0k.style.visibility = enable;
}
