function calculateroi()  {
var form1 = document.calculator;

//validation: all fields must be numbers only
           var valid_number="1234567890."//numbers only
		   var temp_number


           //validate Pieces
		   if (form1.pieces.value==""){
           alert("Please enter numbers of pieces!")
           return false
           }
				   for (var i = 0; i < form1.pieces.value.length; i++ ){
						temp_number = form1.pieces.value.substring(i,i+1)
						if (valid_number.indexOf(temp_number) == -1){
							alert ("Invalid numbers of pieces. It must be numbers only!")
							return false
						}
					}
		   
		   //validate total program cost
		   if (form1.cost.value==""){
           alert("Please enter the total program costs!")
           return false
           }
				   for (var i = 0; i < form1.cost.value.length; i++ ){
						temp_number = form1.cost.value.substring(i,i+1)
						if (valid_number.indexOf(temp_number) == -1){
							alert ("Invalid total program cost. It must be numbers only!")
							return false
						}
					}
			
		   //validate response rate
		   if (form1.response_rate.value==""){
           alert("Please enter the Response Rate!")
           return false
           }
				   for (var i = 0; i < form1.response_rate.value.length; i++ ){
						temp_number = form1.response_rate.value.substring(i,i+1)
						if (valid_number.indexOf(temp_number) == -1){
							alert ("Invalid Response Rate. It must be numbers only!")
							return false
						}
					}
			
			
		   //validate conversion rate
		   if (form1.conversion_rate.value==""){
           alert("Please enter the Conversion Rate!")
           return false
           }
				   for (var i = 0; i < form1.conversion_rate.value.length; i++ ){
						temp_number = form1.conversion_rate.value.substring(i,i+1)
						if (valid_number.indexOf(temp_number) == -1){
							alert ("Invalid Conversion Rate. It must be numbers only!")
							return false
						}
					}
					
		   //validate spend
		   if (form1.spend.value==""){
           alert("Please enter the amount that buyer will spend!")
           return false
           }
				   for (var i = 0; i < form1.spend.value.length; i++ ){
						temp_number = form1.spend.value.substring(i,i+1)
						if (valid_number.indexOf(temp_number) == -1){
							alert ("Invalid amount that buyer will spend. It must be numbers only!")
							return false
						}
					}				
			

	//marketing section
			var u1 = form1.pieces.value;
			var u2 = form1.cost.value;
			var u3 = form1.response_rate.value;
			var u4 = form1.conversion_rate.value;
			var u5 = form1.spend.value;
			var u3 = percent(u3);
			var u4 = percent(u4);
			//Calculate out-puts
			var responders = Math.round(u1 * u3);
			var buyers = Math.round(responders * u4);
			
			var total_revenue = Math.round(buyers * u5 * 100);
			var total_revenue_2digits = percent(total_revenue);
			
			var cost_per_response = Math.round(u2 / responders * 100);
			var cost_per_response_2digits = percent(cost_per_response);
			
			var cost_per_buyer = Math.round(u2 / buyers * 100);
			var cost_per_buyer_2digits = percent(cost_per_buyer);
			
			var cost_per_piece = Math.round(u2 / u1 * 100);
			var cost_per_piece_2digits = percent(cost_per_piece);
			
			var roi = Math.round((total_revenue - u2) / u2 * 100);
			var roi_2digits = percent (roi)
	
	// Display Results	
	
	form1.responders.value = responders;
	form1.buyers.value = (buyers);
	form1.total_revenue.value = (total_revenue_2digits);
	form1.cost_per_response.value = (cost_per_response_2digits);
	form1.cost_per_buyer.value = (cost_per_buyer_2digits);
	form1.cost_per_piece.value = (cost_per_piece_2digits);
	form1.roi.value = (roi_2digits);
	
	
	return false;
	document.write (this.u1);
	
}

function percent(x) { 
	var x = (x / 100);
	//Math.round(x)
	return x;
 }
 
 function fix_string(x) {
	// remove any leading spaces from string
	while ((x.substring(0,1) == " ") && (x.length > 0)) {
	    x = x.substring(1);
	  }
	// remove any trailing spaces from string
	while ( (x.substring((x.length)-1) == " ") && (x.length > 0)) {
	    x = x.substring(0,(x.length)-1);
	  }
	return x;
}
