	function compute(obj) {
	    if (setnum(obj)){
		    fprice = parseFloat(obj.price.value)
		    fdeposit = parseFloat(obj.deposit.value)
		    fmonths =  parseFloat(get_selection(obj.period).value);
		    finterest = parseFloat(obj.interest.value)
		    ffinal_payment = parseFloat(obj.final_payment.value)
		    fpayments = parseFloat(obj.payments.value)
		    var intermediate = new MakeArray(fmonths);
		    var i
		    var fdaily_rate = finterest/36500;
		    var famount = fprice - fdeposit;
		    var ftotal = 0;

		    for (i = 0; i <= fmonths -1; i++) {
	       		intermediate[i] =1+30.42*fdaily_rate
		    }
		    for (i = fmonths - 2; i >= 0; i--) {
			intermediate[i] = intermediate[i] * intermediate[i+1];
		    }
	            for (i = 0; i <= fmonths-1; i++ ) {
			ftotal = ftotal  + intermediate[i];
		    }

		if (fpayments == 0) {
			fpayments = ((famount*intermediate[0]-ffinal_payment)/(ftotal+1-intermediate[0]));
			obj.payments.value = Math.round(fpayments)
		}else if (fprice == 0) {
			famount =((fpayments*(ftotal+1-intermediate[0]))+ffinal_payment)/intermediate[0];
			fprice = famount + fdeposit;
			obj.price.value = Math.round(fprice)
		}else if (fdeposit == 0) {
			famount =((fpayments*(ftotal+1-intermediate[0]))+ffinal_payment)/intermediate[0];
			fdeposit = fprice - famount;
			obj.deposit.value = Math.round(fdeposit)
		}else if (ffinal_payment == 0) {
			ffinal_payment = (famount*intermediate[0])-(fpayments*(ftotal+1-intermediate[0]));
			obj.final_payment.value = Math.round(ffinal_payment)
		}else{
			fpayments = ((famount*intermediate[0]-ffinal_payment)/(ftotal+1-intermediate[0]));
			obj.payments.value = Math.round(fpayments)
		}


	   }

	}

	function MakeArray(n) {
	   this.length = n;
	   for (var i = 1; i <= n; i++) { 
	     this[i] = 0 }
	   return this
	}

	function select_item(name, value) {
	        this.name = name;
	        this.value = value;
	}

	function get_selection(select_object) {
	        contents = new select_item("w","w");
	        for(var i=0;i<select_object.options.length;i++)
	            if(select_object.options[i].selected == true) {
	                contents.name = select_object.options[i].text;
	                contents.value = select_object.options[i].value;
	            }
	        return contents;
	}

	function setnum(obj) {

	   if (obj.payments.value == ""){
		obj.payments.value = "0"
	   }
	   if (obj.price.value == ""){
		obj.price.value = "0"
	   }
	   if (obj.deposit.value == ""){
		obj.deposit.value = "0"
	   }
	   if (obj.interest.value == ""){
		obj.interest.value = "0"
	   }
	   if (obj.final_payment.value == ""){
		obj.final_payment.value = "0"
	   }
	   if (obj.payments.value == 0 && obj.price.value == 0){
	            alert("Please enter either the price or the monthly payments.")
	            return false
	   }
	   if (isnum(obj.payments.value,"payments") && isnum(obj.price.value,"price") && isnum(obj.deposit.value,"deposit") && isnum(obj.interest.value,"interest") && isnum(obj.final_payment.value,"final payment")){
	       return true
	   }else{
	       return false
	   }
	}

	function isnum(str,strname) {
	    for (var i = 0; i < str.length; i++) {
		var ch = str.substring(0,1)
	        if (ch < "0" || ch > "9") {
	            alert("Try a number for "+strname+", please.")
	            return false
	        }
	    }
	    return true	
	}


