//Calc functions
function getInt(val) {
	var res = parseInt(val);
	if (!res || res < 0) res = 0;
	return res;
}

function POW(obj) {
	return (obj.power ? obj.power : 0);
}

function A3(obj) {
	return (obj.ext3v ? obj.ext3v : 0);
}

function A5(obj) {
	return (obj.ext5v ? obj.ext5v : 0);
}

function A12(obj) {
	return (obj.ext12v ? obj.ext12v : 0);
}

function incAmp(amp, obj, mult) {
	amp[0] += A3(obj) * mult;
	amp[1] += A5(obj) * mult;
	amp[2] += A12(obj) * mult;
	return amp;
}

function getNumArray(begin, end) {
	var res = new Array(end - begin + 1);
	for (var i = begin; i < end; i++) res[i] = i;
	return res;
}

function createNumSel(parent_id, begin, end, fnc) {
	var oSelect = document.createElement('select');
	oSelect.onchange = fnc ? fnc : calcTotal;
	oSelect.style.width = "100px";
	for (var i = begin; i <= end; i++) {
		var oOption = document.createElement('option');
		oOption.value = i;
		oOption.appendChild(document.createTextNode(i));
		oSelect.appendChild(oOption);
	}
	document.getElementById(parent_id).appendChild(oSelect);
	return oSelect;
}

function createArrSel(parent_id, range, fnc) {
	var oSelect = document.createElement('select');
	oSelect.onchange = fnc ? fnc : calcTotal;
	oSelect.style.width = "288px";
	for (var idx in range) {
		var oOption = document.createElement('option');
		oOption.value = idx;
		oOption.appendChild(document.createTextNode(range[idx].name));
		oSelect.appendChild(oOption);
	}
	document.getElementById(parent_id).appendChild(oSelect);
	return oSelect;
}

function createMemSlots() {
	var oaMemSel = new Array(4);
	for(var mem = 0; mem < 4; mem++) {
		oaMemSel[mem] = document.createElement('select');
		oaMemSel[mem].onchange = calcTotal;
		for (var opt in data.mem) {
			var oOption = document.createElement('option');
			oOption.value = data.mem[opt].cnt;
			oOption.appendChild(document.createTextNode(data.mem[opt].name));
			oaMemSel[mem].appendChild(oOption);
		}
		document.getElementById('tdmemcnt' + mem).appendChild(oaMemSel[mem]);
	}
	return oaMemSel;
}