(function($){
	// make a context var
	//var context = {height:0}
	$(".length").focus();
	$("#getDosage").submit(function(e){
		e.preventDefault();
		$(".result").hide(0);
		$("#dosageError").hide(0);
		$("#dosageIntro").remove();
		// collect submitted data
		var detections = 0;
		var numberFails = 0;
		var dosageError = "";
		var data = [$(".length").val(),$(".depth").val(),$(".width").val()];
		// check for any any provided values
		jQuery.each(data,function(){
			if(this != false){
				if(!isNaN(this)){
				    detections++;
				}else{
					numberFails++;
				}
			}				
		});
		// check for product id
		var prodId = $(this)
		.find("#productId")
		.val();
		// check dimensions for fail
		if(numberFails>0){
			// force fail			
			prodId = null;
		}	
		// check for value and continue
		if(prodId != null){
			// set dosage default
			var partsPerMil = 9;
			var tankSize = 0
			var dosage = 0;
			var error = 0;
			var dosageStr = "Please provide all 3 dimensions for the calculation";
			// check for alternative dosage for product
			var item =  $(".dosageResult-"+prodId);
			if(item.length>0){
				partsPerMil = item.html();	
			}			
			if(detections>0){
				// some measurement data has been provided
				if(detections<3){
					error++;
				}else{
					// now partsPerMil and tankSize are modified or default
					tankSize = (data[0]*data[1]*data[2]) / 1000;					
					dosage = (parseInt(tankSize) / parseInt(partsPerMil)) ;
					if(dosage != NaN){
						dosageStr = "Your tank has a capacity of "+tankSize+" litres, please use "+dosage.toFixed(2)+" ml of this product."
					}else{
						dosageStr = "Could not calculate dosage, please contact us for assistance.";
					}
				}				
			}else{
				error++;
			}

			// get product result
			var item = $(".prodResult-"+prodId);	
			// if has HTML then show it
			if(item.html().length > 0){	
				item.find("h3")
				.html(dosageStr)
				.end()
				.show();
			}else{
				$("#dosageError").html("Product was not found").show();
			}
		}else{
			$("#dosageError").html("Please ensure dimensions include numbers only").show();
		}
		
	});
})(jQuery)

