if(typeof String.prototype.trim !== 'function') {
  String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, ''); 
  }
}
String.prototype.validateNumber = function() {
  var number = parseFloat(this.trim().replace(/\,/g, '.'));
  if (isNaN(number) || number == "NaN") {
    return false;
  }
  return number;
}
Array.prototype.foreach=function(callback){for(var k=0;k<this.length;k++){callback(k,this[k]);}}

Event.observe(window, 'load', function(){

	$$('div.menu_inner')[0].insert(
		'<div id="calc"><form method="get" action="#" id="cform">'
			+'<div class="ctitle">Mengenberechner</div>'
			+'<div class="cwidth mfield"><label for="cwidth">Breite:</label><input type="text" name="cwidth" id="cwidth" class="text" /> m </div>'
			+'<div class="clength mfield"><label for="clength">Länge:</label><input type="text" name="clength" id="clength" class="text" /> m</div>'
			+'<div class="cheight"><label for="cheight">Höhe:</label><input type="text" name="cheight" id="cheight" class="text" /> cm</div>'
			+'<div class="cmaterial"><label for="cmaterial">Material:</label><select name="cmaterial" id="cmaterial"></select></div>'
			+'<div class="csubmit"><input type="submit" value="Rechnen" id="csubmit" /> <a id="test" href="#">test</a></div>'
			+'<div id="cresult">Ergebnis: <div class="numbers">'
				+'<span id="qm_result">0</span> m<sup>3</sup>= '
				+'<span id="weight_result">0</span> to'
			+'</div></div>'
		+'</form></div>'
		);

	var materials = new Array(
		Array('Füllsand', 1.5),
		Array('ges. Sand', 1.5),
		Array('R-C Sand nach Anfrage', 1.6),
		Array('Kies (0-2)', 1.4),
		Array('Spielsand (0-2)', 1.4),
		Array('Mauersand (0-2)', 1.4),
		Array('Kies (1-3)', 1.5),
		Array('Fallschutzkies (1-3)', 1.5),
		Array('Streugranulat (1-3)', 1.5),
		Array('Kiesel (2-8)', 1.6),
		Array('Kiesel (8-16)', 1.6),
		Array('Kiesel (16-32)', 1.6),
		Array('Klargeröll (30-60)', 1.6),
		Array('Estrichkies C (0-8)', 1.6),
		Array('Betonkies (0-32)', 1.6),
		Array('Pflastersplitt (2-5)', 1.4),
		Array('Pflastergrand (0-8)', 1.7),
		Array('Schottertragschicht BI (0-32)', 1.7),
		Array('BMG (FHH) (0-32)', 1.65),
		Array('SMG (0-45)', 1.65),
		Array('Drainageschotter (4-32)', 1.5),
		Array('Osdorfer Wegegrand (0-11)', 1.7),
		Array('Glensanda original (0-11)', 1.7),
		Array('Mutterboden (gesiebt)', 1.5),
		Array('Mutterboden (unges.)', 1.5),
		Array('Pflanzerde', 1.2),
		Array('Rindenmulch (0/40)', 0.5)
	)

	materials.foreach(function(k,v){
		$('cmaterial').insert('<option value="'+k+'">'+v[0]+'</option>');
	});	
	
	
	function pretty(number){
		return number.toFixed(2).replace(/\./g, ',');
	}

	function update_calc(){
		var cwidth		= $('cwidth').getValue();
		var clength		= $('clength').getValue();
		var cheight		= $('cheight').getValue();
		var cmaterial	= $('cmaterial').getValue();
		
		var material_title		= materials[cmaterial][0];
		var material_qmweight	= materials[cmaterial][1];
		
		var qm_result		= 0;
		var weight_result	= 0;

		if((cwidth=cwidth.validateNumber()) && (clength=clength.validateNumber()) && (cheight=cheight.validateNumber())){
			qm_result		= cwidth * clength * (cheight/100);
			weight_result	= qm_result * material_qmweight;
			$('qm_result').update(pretty(qm_result));
			$('weight_result').update(pretty(weight_result));
			$('cresult').setStyle({display: 'block'});
		}
		else{
			alert('Bitte tragen Sie Zahlen in alle Felder ein.');
		}
	}

	Event.observe('test', 'click', function(){
		update_calc();
		Event.stop(event);
	});
	
	
	Event.observe('cform', 'submit', function(event) {
		update_calc();
		Event.stop(event);
	});


});
