function runden(px) {
	var k = (Math.round(px * 100) / 100).toString();
	k += (k.indexOf('.') == -1) ? '.00' : '00';
	return k.substring(0, k.indexOf('.'));
}

function preserveSettings() {
	document.getElementById('oldxcm').value = document.getElementById('tx_asnapro_pi1[xcm]').value;
	document.getElementById('oldycm').value = document.getElementById('tx_asnapro_pi1[ycm]').value;
	document.getElementById('oldxcmv').value = document.getElementById('xcmv').value;
	document.getElementById('oldycmv').value = document.getElementById('ycmv').value;
	document.getElementById('olddpi').value = document.getElementById('dpi').value;
}

function euro(px) {
	k = new Array();
	var k0 = px / 100;
	k[0] = k0.toFixed(2);
	var k1 = (px * 1.19) / 100;
	k[1] = k1.toFixed(2);
	return k;
}

function calcCost(x, y) {
	var qm = x * y / 10000;
	if (qm == 0.12) {
		var preis = euro(1188);
	} else if (qm == 1) {
		var preis = euro(7289);
	} else if (qm < 0.4) {
		var preis = euro((((0.4 - qm) * 200) + 119) * 100 * qm);
	} else if (qm < 0.6) {
		var preis = euro((((0.6 - qm) * 100) + 99) * 100 * qm);
	} else {
		var preis = euro(qm * 9900);
	}

	if ((x > 80) || (y > 80)) {
		var vclass = 1;
	}
	if ((x > 120) || (y > 120)) {
		var vclass = 2;
	}
	if ((x > 140) || (y > 140)) {
		var vclass = 3;
	} else {
		var vclass = 0;
	}

	var text = "Der Preis beträgt: " + preis[1] + " € inkl. Mehrwehrtsteuer";
	obj = document.createTextNode(text);
	daddy = document.getElementById('bPreis');

	document.getElementById('bruttoCost').value = preis[1];
	document.getElementById('nettoCost').value = preis[0];

	document.getElementById('vclass').value = vclass;

	daddy.removeChild(daddy.lastChild);
	daddy.appendChild(obj);
	// checkValues();
}

function setQm() {
	var value = (Math
			.ceil((parseFloat(document.getElementById('xcmv').value) * parseFloat(document
					.getElementById('ycmv').value)) / 100) / 100);
	var text = 'Die Größe des Bildes beträgt: ' + value + ' m²';
	obj = document.createTextNode(text);
	obj1 = document.getElementById('qmp');
	obj1.removeChild(obj1.lastChild);
	obj1.appendChild(obj);
	calcCost(parseInt(document.getElementById('tx_asnapro_pi1[xcm]').value), parseInt(document
			.getElementById('tx_asnapro_pi1[ycm]').value));
}

function setBack() {
	document.getElementById('xcmv').value = document.getElementById('oldxcmv').value;
	document.getElementById('tx_asnapro_pi1[xcm]').value = parseInt(document.getElementById('oldxcm').value);
	document.getElementById('ycmv').value = document.getElementById('oldycmv').value;
	document.getElementById('tx_asnapro_pi1[ycm]').value = parseInt(document.getElementById('oldycm').value);
	document.getElementById('dpiv').value = document.getElementById('olddpi').value;
	document.getElementById('dpi').value = parseInt(document.getElementById('olddpi').value);
}

function scaler(type) {

	var xpx = document.getElementById('xpxv').value;
	var ypx = document.getElementById('ypxv').value;

	xcmObj = document.getElementById('tx_asnapro_pi1[xcm]');
	ycmObj = document.getElementById('tx_asnapro_pi1[ycm]');
	dpiObj = document.getElementById('dpi');

	switch (type) {
	case 'xplus':

		if (checkValues('all', 'plus')) {

			xcmObj.value = runden((parseFloat(document.getElementById('xcmv').value) + 1));
			document.getElementById('xcmv').value = parseFloat(document
					.getElementById('xcmv').value) + 1;

			dpiObj.value = runden(parseInt(xpx)
					/ (parseFloat(document.getElementById('xcmv').value) / 2.54));
			document.getElementById('dpiv').value = parseInt(xpx)
					/ (parseFloat(document.getElementById('xcmv').value) / 2.54);

			ycmObj.value = runden((parseInt(ypx) / parseFloat(document
					.getElementById('dpiv').value)) * 2.54);
			document.getElementById('ycmv').value = (parseInt(ypx) / parseFloat(document
					.getElementById('dpiv').value)) * 2.54;

			// scalerPad();

			preserveSettings();
			setQm();
		}
		break;

	case 'xminus':

		if (checkValues('all', 'minus')) {

			xcmObj.value = runden((parseFloat(document.getElementById('xcmv').value) - 1));
			document.getElementById('xcmv').value = parseFloat(document
					.getElementById('xcmv').value) - 1;

			dpiObj.value = runden(parseInt(xpx)
					/ (parseFloat(document.getElementById('xcmv').value) / 2.54));
			document.getElementById('dpiv').value = parseInt(xpx)
					/ (parseFloat(document.getElementById('xcmv').value) / 2.54);

			ycmObj.value = runden((parseInt(ypx) / parseFloat(document
					.getElementById('dpiv').value)) * 2.54);
			document.getElementById('ycmv').value = (parseInt(ypx) / parseFloat(document
					.getElementById('dpiv').value)) * 2.54;

			// scalerPad();

			preserveSettings();
			setQm();
		}
		break;

	case 'yplus':
		if (checkValues('all', 'plus')) {

			ycmObj.value = runden((parseFloat(document.getElementById('ycmv').value) + 1));
			document.getElementById('ycmv').value = parseFloat(document
					.getElementById('ycmv').value) + 1;

			dpiObj.value = runden(parseInt(ypx)
					/ (parseFloat(document.getElementById('ycmv').value) / 2.54));
			document.getElementById('dpiv').value = parseInt(ypx)
					/ (parseFloat(document.getElementById('ycmv').value) / 2.54);

			xcmObj.value = runden((parseInt(xpx) / parseFloat(document
					.getElementById('dpiv').value)) * 2.54);
			document.getElementById('xcmv').value = (parseInt(xpx) / parseFloat(document
					.getElementById('dpiv').value)) * 2.54;

			// scalerPad();

			preserveSettings();
			setQm();
		}
		break;

	case 'yminus':
		if (checkValues('all', 'minus')) {

			ycmObj.value = runden((parseFloat(document.getElementById('ycmv').value) - 1));
			document.getElementById('ycmv').value = parseFloat(document
					.getElementById('ycmv').value) - 1;

			dpiObj.value = runden(parseInt(ypx)
					/ (parseFloat(document.getElementById('ycmv').value) / 2.54));
			document.getElementById('dpiv').value = parseInt(ypx)
					/ (parseFloat(document.getElementById('ycmv').value) / 2.54);

			xcmObj.value = runden((parseInt(xpx) / parseFloat(document
					.getElementById('dpiv').value)) * 2.54);
			document.getElementById('xcmv').value = (parseInt(xpx) / parseFloat(document
					.getElementById('dpiv').value)) * 2.54;

			// scalerPad();

			preserveSettings();
			setQm();
		}

		break;

	default:
		alert('Fehler aufgetreten!');
	}

}

function scaleDirect(type) {

	var xpx = document.getElementById('xpxv').value;
	var ypx = document.getElementById('ypxv').value;
	var mincm = parseInt($('mincm').value);
	var maxcm = parseInt($('maxcm').value);
	xcmObj = document.getElementById('tx_asnapro_pi1[xcm]');
	ycmObj = document.getElementById('tx_asnapro_pi1[ycm]');
	dpiObj = document.getElementById('dpi');

	var abzugscaler = parseInt(document.getElementById('abzugscaler').value);
	// scalerObj = document.getElementById('schieber');
	// outHeight = scalerObj.height;
	// scalerknopfObj = document.getElementById('schieberknopf');
	korreldpi = parseFloat(document.getElementById('dpikorrel').value);

	switch (type) {
	case 'xcm':
		document.getElementById('xcmv').value = document.getElementById('tx_asnapro_pi1[xcm]').value;

		dpiObj.value = runden(parseInt(xpx)
				/ (parseFloat(document.getElementById('xcmv').value) / 2.54));

		ycmObj.value = runden((parseInt(ypx) / parseFloat(document
				.getElementById('dpi').value)) * 2.54);
		document.getElementById('ycmv').value = (parseInt(ypx) / parseFloat(document
				.getElementById('dpiv').value)) * 2.54;

		// scalerPad();
		if (checkValues('all','all')) {
			preserveSettings();
			setQm();
			}
		else { setBack(); }
		break;

	case 'ycm':
		document.getElementById('ycmv').value = document.getElementById('tx_asnapro_pi1[ycm]').value;

		dpiObj.value = runden(parseInt(ypx)
				/ (parseFloat(document.getElementById('ycmv').value) / 2.54));
		// document.getElementById('dpiv').value =
		// parseInt(ypx)/(parseFloat(document.getElementById('ycmv').value) /
		// 2.54);

		xcmObj.value = runden((parseInt(xpx) / parseFloat(document
				.getElementById('dpi').value)) * 2.54);
		document.getElementById('xcmv').value = (parseInt(xpx) / parseFloat(document
				.getElementById('dpiv').value)) * 2.54;

		// scalerPad();
		if (checkValues('all','all')) {
			preserveSettings();
			setQm();
			}
		else { setBack(); }
		break;

	case 'dpi':

		document.getElementById('dpiv').value = document.getElementById('dpi').value;

		ycmObj.value = runden((parseInt(ypx) / parseFloat(document.getElementById('dpiv').value)) * 2.54);
		
		document.getElementById('ycmv').value = (parseInt(ypx) / parseFloat(document.getElementById('dpiv').value)) * 2.54;

		xcmObj.value = runden((parseInt(xpx) / parseFloat(document.getElementById('dpiv').value)) * 2.54);
		document.getElementById('xcmv').value = (parseInt(xpx) / parseFloat(document.getElementById('dpiv').value)) * 2.54;

		// scalerPad();
		if (checkValues('all','all')) {
			preserveSettings();
			setQm();
			}
		else { setBack(); }
		break;
	}

}

function checkValues(type, subtype) {

	
	var xcm = parseInt($('tx_asnapro_pi1[xcm]').value);
	var ycm = parseInt($('tx_asnapro_pi1[ycm]').value);

	var mincm = parseInt($('mincm').value);
	var maxcm = parseInt($('maxcm').value);

	if (subtype == 'plus') {

		if ((xcm > maxcm) || (ycm > maxcm)) {
			// setBack();
			alertBox('maxcm');
			return false;
		}
	}

	if (subtype == 'minus') {
		if ((xcm < mincm) || (ycm < mincm)) {
			// setBack();
			alertBox('mincm');
			return false;
		}
	}

	if (subtype == 'all') {
		if ((xcm < mincm) || (ycm < mincm)) {
			// setBack();
			alertBox('mincm');
			return false;
		}
		if ((xcm > maxcm) || (ycm > maxcm)) {
			// setBack();
			alertBox('maxcm');
			return false;
		}
	}

	return true;
}

function alertBox(type) {
	if (type == 'maxcm') {
		alert('Diese Größe ist leider nicht mehr möglich');
	} else {
		alert('Kleiner geht\'s nicht');
	}
}

