/*
 * Direkte Initialisierungen über jquery-Selektoren
 * unmittelbar nach dem Laden der Seite.
 */
$(document).ready(function() {

	initializeCalculation();
	
});

function initializeCalculation(){
	// Calculator: Auf- und Zuklappen
	$('#showCalc').click(function() {
		$('#CalculationBox').slideDown("slow");
		updateCalculationValues();
		calcPackages();
	});
	$('#hideCalc').click(function() {
		$('#CalculationBox').slideUp("slow");
	});
	$('#calcTitle').click(function() {
		$('#CalculationBox').slideUp("slow");
	});
	$('#calcTitle').mouseover(function() {
		$('#calcTitle').css('cursor', 'pointer');
	});
	
	
	// Calculator: Eingabe Raumlänge
	$('#roomLengthInput').keyup(function() {
		calcRoomsize($(this), $('#roomWidthInput'));
		calcPackages();
	});
	// Calculator: Eingabe Raumbreite
	$('#roomWidthInput').keyup(function() {
		calcRoomsize($(this), $('#roomLengthInput'));
		calcPackages();
	});
	// Calculator: Eingabe Raumgrösse
	$('#roomSizeInput').keyup(function() {
		$('#roomLengthInput').attr('value', '');
		$('#roomWidthInput').attr('value', '');
		calcPackages();
	});
	
	
	// Toggle Zahleneingabe
	posX='121px';
	posY1='-104px';
	posY2='-85px';
	posY3='-66px';
	$('#numberField1').click(function() {
		$('#roomLengthInput').val('');
		toggleNumberBox(posX,posY1);
	});
	
	$('#numberField2').click(function() {
		$('#roomWidthInput').val('');
		toggleNumberBox(posX,posY2);
	});
	
	$('#numberField3').click(function() {
		$('#roomSizeInput').val('');
		toggleNumberBox(posX,posY3);
	});
	
	// Zuklappen Zahleneingabe
	$('#numOk').click(function() {
		$('#NumberBox').slideUp("fast");
	});
	
	// Eingabe Zahlen
	$('.numButton').click(function() {
		posY=$('#NumberBox').css('top');
		if (posY==posY1) {
			field=$('#roomLengthInput');
		}
		else if (posY==posY2) {
			field=$('#roomWidthInput');
		}
		else if (posY==posY3) {
			field=$('#roomSizeInput');
		}
		else {
			return;
		}			
		field.val(field.val()+$(this).html());
		field.trigger('keyup')
	});

	// Löschen Zahlen
	$('#numDel').click(function() {
		posY=$('#NumberBox').css('top');
		if (posY==posY1) {
			field=$('#roomLengthInput');
		}
		else if (posY==posY2) {
			field=$('#roomWidthInput');
		}
		else if (posY==posY3) {
			field=$('#roomSizeInput');
		}
		else {
			return;
		}
		field.val(field.val().substr(0,(field.val().length - 1)));
		field.trigger('keyup')
	});
}

function updateCalculationValues() {
	grade=$('#dynRotation').val();
	if (grade=='0' || grade=='90' || grade=='180') { 
		$('#productWaste').html("5");
	}
	else {
		$('#productWaste').html("10");
	}
}
	
function calcRoomsize(input1, input2) {
	v1=input1.attr('value');
	if(v1!=null) {
		v1=v1.replace(',','.');
		input1.attr('value', v1);
	}
	v2=input2.attr('value');
	if(v1>0 && v2>0) {
		$('#roomSizeInput').attr('value', (v1*v2).toFixed(2));
	} else  {
		$('#roomSizeInput').attr('value', '');
	}
}

function calcPackages() {
	roomsize=$('#roomSizeInput').attr('value');
	if(roomsize!=null) {
		roomsize=roomsize.replace(',','.');
		$('#roomSizeInput').attr('value', roomsize);
	}
	packagesize=$('#productPackage').html();
	if(roomsize>0 && packagesize>0) {
		wastePercent=$('#productWaste').html();
		roomsize=roomsize*(1+(wastePercent/100));
		
		$('#requiredPackages').html(Math.ceil((roomsize/packagesize)));
	} else  {
		$('#requiredPackages').html('--');
	}
}

function toggleNumberBox(posX, posY) {
	if ($('#NumberBox').css('display') == 'none') {
		$('#NumberBox').css('top',posY);
		$('#NumberBox').css('left',posX);
		$('#NumberBox').slideDown("fast");	
	}
	else if ($('#NumberBox').css('top') == posY) {
		$('#NumberBox').slideUp("fast");	
	}
	else {
		$('#NumberBox').animate(
			{"top":posY, "left": posX},
			{duration: "fast"}
		);
	}
}
