﻿var tmpInputValue = "";

var aktuelPaalaeg = 0;
var svindPct = 0;
var varer = new Array(3);

/*Røget fillet 12 g
varer[0] = new Array(3);
varer[0][0] = 94.5;
varer[0][1] = 105.5;
varer[0][2] = 12;
*/
//Rullepølse Premium 12 g
varer[0] = new Array(3);
varer[0][0] = 93.5;
varer[0][1] = 106.25;
varer[0][2] = 12;

//Hamburgerryg Premium 12 g
varer[1] = new Array(3);
varer[1][0] = 78;
varer[1][1] = 95.25;
varer[1][2] = 12;

function update() {
	skiftPaalaeg();
	svindPct = dkStrToFloat(document.getElementById("svindPctStykvare").value)
	//alert(svindPct)

	beregnPrisPrKg();
	beregnAntalSkiver();
	beregnFaerdigvaegtEfterSvind();
	beregnSlicetidMin();

	beregnRaavareKoeb();
	beregnSvindG();
	beregnFaerdigvaegt();
	beregnRaavareforbrug();
	beregnLoenudgifter();
	beregnKostprisMaengde();
	beregnKostprisKG();
	beregnKostprisSkive();
}

function switchResultPane() {
	if (document.getElementById("resultTable").style.display == "none") {
		document.getElementById("resultTable").style.display = "block"
		document.getElementById("advLinkSpan").innerHTML = "Luk SLICE kalkulationen her."
		//document.getElementById("resultPane").style.display = "none"
	} else {
		document.getElementById("resultTable").style.display = "none"
		document.getElementById("advLinkSpan").innerHTML = "Se og udskriv SLICE kalkulationen her."
		//document.getElementById("resultPane").style.display = "block"
	}
}

function checkLegalInput(felt) {
	var tmpVal = felt.value
	var bolSvind = false
	var out = true
	if (tmpVal.length > 0) {
		if (tmpVal.indexOf(' ') > -1) { tmpVal = tmpVal.replace(' ', '') }
		if (tmpVal.indexOf('%') > -1) { tmpVal = tmpVal.replace('%', ''); bolSvind = true }
		if (tmpVal.indexOf('.') > -1) { tmpVal = tmpVal.replace('.', ',') }
		
		var legalChars = ',0123456789'

		for (var i = 0; i < tmpVal.length; i++) {
			var tmpChar = tmpVal.substr(i, 1);
			if (legalChars.indexOf(tmpChar) == -1) {
				out = false
				alert('Skriv kun tal')
				break
			}
		}
	}
	return out
}

function skiftPaalaeg() {
	aktuelPaalaeg = document.getElementById("paalaeg").selectedIndex
}


//############# beregningsfunktioner ##############

function beregnPrisPrKg() {
	//kolonne A
	document.getElementById("A_prisPrKg").innerHTML = FormatNumber(varer[aktuelPaalaeg][0],2,true,false,true);

	//kolonne B
	document.getElementById("B_prisPrKg").innerHTML = FormatNumber(varer[aktuelPaalaeg][1],2,true,false,true);
}

function beregnAntalSkiver() {
	//kolonne A
	document.getElementById("A_antalSkiver").innerHTML = FormatNumber(dkStrToFloat(document.getElementById("antalSkiver").value),2,true,false,true);

	//kolonne B
	document.getElementById("B_antalSkiver").innerHTML = FormatNumber(dkStrToFloat(document.getElementById("antalSkiver").value), 2, true, false, true);
}

function beregnFaerdigvaegtEfterSvind() {
	//kolonne A
	document.getElementById("A_faerdigvaegtEfterSvind").innerHTML = FormatNumber(dkStrToFloat(document.getElementById("antalSkiver").value) * varer[aktuelPaalaeg][2], 2, true, false, true);

	//kolonne B
	document.getElementById("B_faerdigvaegtEfterSvind").innerHTML = FormatNumber(dkStrToFloat(document.getElementById("antalSkiver").value) * varer[aktuelPaalaeg][2], 2, true, false, true);
}

function beregnSlicetidMin() {
	//kolonne A
	document.getElementById("A_slicetidMin").innerHTML = FormatNumber((((dkStrToFloat(document.getElementById("antalSkiver").value) / dkStrToFloat(document.getElementById("skiverPrMinut").value)) * 100) / 100), 2, false, false, true)
}

function beregnRaavareKoeb() {
	//kolonne A
	var tmpSvind = dkStrToFloat(document.getElementById("A_faerdigvaegtEfterSvind").innerHTML) / ((100 - svindPct) / 100)
	document.getElementById("A_raavareKoeb").innerHTML = FormatNumber(tmpSvind,2,false,false,true);

	//kolonne B
	document.getElementById("B_raavareKoeb").innerHTML = document.getElementById("B_faerdigvaegtEfterSvind").innerHTML;
}

function beregnSvindG() {
	document.getElementById("A_svindG").innerHTML = FormatNumber(dkStrToFloat(document.getElementById("A_raavareKoeb").innerHTML) * svindPct / 100, 2, false, false, true);
}

function beregnFaerdigvaegt() {
	//kolonne A
	document.getElementById("A_faerdigvaegt").innerHTML = document.getElementById("A_faerdigvaegtEfterSvind").innerHTML;

	//kolonne B
	document.getElementById("B_faerdigvaegt").innerHTML = document.getElementById("B_faerdigvaegtEfterSvind").innerHTML;
}

function beregnRaavareforbrug() {
	//kolonne A
	document.getElementById("A_raavareforbrug").innerHTML = FormatNumber((((dkStrToFloat(document.getElementById("A_raavareKoeb").innerHTML) * dkStrToFloat(document.getElementById("A_prisPrKg").innerHTML)) / 1000) * 100) / 100,2,false,false,true);

	//kolonne B
	var tmp = 
	document.getElementById("B_raavareforbrug").innerHTML = FormatNumber((((dkStrToFloat(document.getElementById("B_raavareKoeb").innerHTML) * dkStrToFloat(document.getElementById("B_prisPrKg").innerHTML)) / 1000) * 100) / 100,2,false,false,true);
}

function beregnLoenudgifter() {
	//kolonne A
	document.getElementById("A_loenudgifter").innerHTML = FormatNumber(((dkStrToFloat(document.getElementById("A_slicetidMin").innerHTML) / 60) * dkStrToFloat(document.getElementById("loenKrPrTime").value) * 100) / 100,2,false,false,true);
}

function beregnKostprisMaengde() {
	//kolonne A
	document.getElementById("A_kostprisMaengde").innerHTML = FormatNumber(((dkStrToFloat(document.getElementById("A_raavareforbrug").innerHTML) + dkStrToFloat(document.getElementById("A_loenudgifter").innerHTML)) * 100) / 100,2,false,false,true);

	//kolonne B
	document.getElementById("B_kostprisMaengde").innerHTML = FormatNumber(((dkStrToFloat(document.getElementById("B_raavareforbrug").innerHTML) + dkStrToFloat(document.getElementById("B_loenudgifter").innerHTML)) * 100) / 100,2,false,false,true);
}

function beregnKostprisKG() {
	//kolonne A
	document.getElementById("A_kostprisKG").innerHTML = FormatNumber((((dkStrToFloat(document.getElementById("A_kostprisMaengde").innerHTML) / dkStrToFloat(document.getElementById("A_faerdigvaegt").innerHTML)) * 1000) * 100) / 100,2,false,false,true);

	//kolonne B
	document.getElementById("B_kostprisKG").innerHTML = FormatNumber((((dkStrToFloat(document.getElementById("B_kostprisMaengde").innerHTML) / dkStrToFloat(document.getElementById("B_faerdigvaegt").innerHTML)) * 1000) * 100) / 100,2,false,false,true);
}

function beregnKostprisSkive() {
	//kolonne A
	var kostPrisSkive = FormatNumber(((dkStrToFloat(document.getElementById("A_kostprisMaengde").innerHTML) / dkStrToFloat(document.getElementById("antalSkiver").value)) * 100) / 100,2,false,false,true);
	document.getElementById("A_kostprisSkive").innerHTML = kostPrisSkive
	document.getElementById("result_styk").innerHTML = kostPrisSkive

	//kolonne B
	kostPrisSkive = FormatNumber(((dkStrToFloat(document.getElementById("B_kostprisMaengde").innerHTML) / dkStrToFloat(document.getElementById("antalSkiver").value)) * 100) / 100,2,false,false,true);
	document.getElementById("B_kostprisSkive").innerHTML = kostPrisSkive
	document.getElementById("result_skive").innerHTML = kostPrisSkive
}


function dkStrToFloat(str) {
	var out = 0
	if (str.length > 0) {
		if (str.indexOf(' ') > -1) { str = str.replace(' ', '') }
		if (str.indexOf('%') > -1) { str = str.replace('%', '') }
		if (str.indexOf('.') > -1) { str = str.replace('.', '') }
		if (str.indexOf(',') > -1) { str = str.replace(',', '.') }

		out = parseFloat(str)
	}
	return out
}

function trim(stringToTrim) {
	if (typeof (stringToTrim) != "undefined") {
		stringToTrim = stringToTrim.toString()
	} else {
		stringToTrim = ""
	}
	if (typeof (stringToTrim) == "string") {
		if (stringToTrim.substring(0, 1) == " " || stringToTrim.substring(stringToTrim.length - 1) == " ") {
			stringToTrim = stringToTrim.replace(/^\s+|\s+$/g, "")
		}
	}
	return stringToTrim
}

function FormatNumber(num, decimalNum, bolLeadingZero, bolParens, bolCommas) {
	/**********************************************************************
	IN:
	NUM - the number to format
	decimalNum - the number of decimal places to format the number to
	bolLeadingZero - true / false - display a leading zero for
	numbers between -1 and 1
	bolParens - true / false - use parenthesis around negative numbers
	bolCommas - put commas as number separators.
	 
	RETVAL:
	The formatted number!
	**********************************************************************/

	//alert("FormatNumber " + num )
	
	num = trim(num)
	num = num.replace(",00", "")
	
	if (isNaN(parseInt(num, 10))) {
		return "NaN"
	}

	var tmpNum = num;
	var iSign = num < 0 ? -1 : 1; 	// Get sign of number

	// Adjust number so only the specified number of numbers after
	// the decimal point are shown.
	tmpNum *= Math.pow(10, decimalNum);
	tmpNum = Math.round(Math.abs(tmpNum))
	tmpNum /= Math.pow(10, decimalNum);
	tmpNum *= iSign; 				// Readjust for sign


	// Create a string object to do our formatting on
	var tmpNumStr = new String(tmpNum);

	// See if we need to strip out the leading zero or not.
	if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
		if (num > 0)
		tmpNumStr = tmpNumStr.substring(1, tmpNumStr.length);
	else
		tmpNumStr = "-" + tmpNumStr.substring(2, tmpNumStr.length);

	tmpNumStr = tmpNumStr.replace(/\./g, ",") //now danish format

	// See if we need to put in the commas
	if (bolCommas && (num >= 1000 || num <= -1000)) {
		var iStart = tmpNumStr.indexOf(",");
		if (iStart < 0)
			iStart = tmpNumStr.length;

		iStart -= 3;
		while (iStart >= 1) {
			tmpNumStr = tmpNumStr.substring(0, iStart) + "." + tmpNumStr.substring(iStart, tmpNumStr.length)
			iStart -= 3;
		}
	}

	// See if we need to use parenthesis
	if (bolParens && num < 0)
		tmpNumStr = "(" + tmpNumStr.substring(1, tmpNumStr.length) + ")";

	// See if we need to add ,00
	var decimalPos = tmpNumStr.indexOf(",")
	if ((decimalPos < 0 || decimalPos <= tmpNumStr.length) && decimalNum > 0) {
		var decimalsToAdd = 0
		if (decimalPos < 0) {
			tmpNumStr += ","
			decimalsToAdd = decimalNum
		} else {
			decimalsToAdd = decimalNum - (tmpNumStr.length - (decimalPos + 1))
		}
		var intH = 0
		for (intH = 0; intH < decimalsToAdd; intH++) {
			tmpNumStr += "0"
		}
		//alert(tmpNumStr)
	}

	//alert(tmpNumStr)

	return tmpNumStr; 	// Return our formatted string!
}

function showpopup(e) {
	if (document.getElementById("popup")) {
		e.cancelBubble = true
		var varPopupPos = (parseInt(document.body.clientWidth, 10) / 2) - 150
		document.getElementById("popup").style.left = varPopupPos + "px"
		document.getElementById("popup").style.visibility = "visible"

		document.body.onclick = function() { hidepopup() }
	}
}

function hidepopup() {
	if (document.getElementById("popup")) {
		document.getElementById("popup").style.visibility = "hidden"
		
		document.body.onclick = function() { }
	}
}

function openWin(url) {
	var slicewin = window.open(url, "slice", "")
}
