
function delit(name,url) {
 ask=window.confirm("Delete "+name+"?");
 if(ask==true){
  window.location=url;
 }
}
function win(foo,bar,baz){
    win = window.open(foo,bar,baz);
    win.focus();
}


function reCalcPmt(form,bLink,bOnLoad){
		
		var iRate 
		var dPmt
		var lPrice
		var dAmt
		var lTerm = 30
		var mPmt 
		var tempVal =""
		var lAmt
		var strAlert = "You must indicate:  "
		var exp = new Date()
		var now = new Date()
		var blnProb = false
		
		if (form==null)return;
		
		exp.setTime(now.getTime() + (365*24*60*60*1000))
		
		//iRate= form.iRate.options[form.iRate.selectedIndex].value
		//dPmt = form.dPmt.options[form.dPmt.selectedIndex].value
		lPrice = form.lPrice.value
		iRate = form.iRate.value
		dPmt = form.dPmt.value

		//Check if any of the fields are empty
		if (iRate!="" && dPmt!="" && lPrice!=""){

			//clean the Price field - strip everything but the number
			if (lPrice.indexOf(".")!=-1)lPrice=lPrice.substring(0,lPrice.indexOf("."))
			for (var i=0;i<lPrice.length;i++){
				if (lPrice.charCodeAt(i)>45 && lPrice.charCodeAt(i)<58 && iRate.charCodeAt(i)!=47){
					tempVal+=lPrice.charAt(i);
				}
			}
			if (lPrice != tempVal)form.lPrice.value=makeMoney(parseFloat(tempVal));
			lPrice = tempVal
			tempVal = ""
			
			//clean the Interest Rate field - strip everything but the number
			for (var i=0;i<iRate.length;i++){
				if (iRate.charCodeAt(i)>45 && iRate.charCodeAt(i)<58 && iRate.charCodeAt(i)!=47){
					tempVal+=iRate.charAt(i);
				}
			}
			if (iRate != tempVal)form.iRate.value=tempVal;
			iRate = tempVal
			tempVal = ""
			
			//clean the Down Payment field - strip everything but the number
			for (var i=0;i<dPmt.length;i++){
				if (dPmt.charCodeAt(i)>45 && dPmt.charCodeAt(i)<58 && dPmt.charCodeAt(i)!=47){
					tempVal+=dPmt.charAt(i);
				}
			}
			if (dPmt != tempVal)form.dPmt.value=tempVal;
			dPmt = tempVal
			tempVal = ""
			
			//cookie in the interest rate and down payment
			document.cookie = "MortCalc=iRate\=" + iRate + "&dPmt\=" + dPmt + "; expires=" + exp.toGMTString() + "; path=/"
			
			//convert to floats
			iRate= parseFloat(iRate)
			dPmt = parseFloat(dPmt)
			lPrice = parseFloat(lPrice)
			
			//Make sure percentages are not greater than 100
			if (iRate>100.0){
				alert("You have entered an invalid interest rate")
				form.iRate.value=""
				form.iRate.focus()
				blnProb=true
			}
			
			if (dPmt>100.0 && !blnProb){
				if (bOnLoad){
					dPmt=20
					form.dPmt.value=dPmt
					document.cookie = "MortCalc=iRate\=" + iRate + "&dPmt\=" + dPmt + "; expires=" + exp.toGMTString() + "; path=/"
					dAmt=Math.round(dPmt*lPrice/100)		
				}else if(!bOnLoad && confirm("You have entered a down payment percentage greater than 100%.\n\nIs " + makeMoney(dPmt) + " the amount that you wish to use as your down payment?")){
					dAmt=dPmt
					dPmt=(dPmt/lPrice)*100
					//round this number to two decimal places
					dPmt=Math.round(dPmt*Math.pow(10,2))/Math.pow(10,2)
					//re-cookie in the revised interest rate and down payment
					document.cookie = "MortCalc=iRate\=" + iRate + "&dPmt\=" + dPmt + "; expires=" + exp.toGMTString() + "; path=/"
					form.dPmt.value=dPmt
				}else{
					form.dPmt.value=""
					form.dPmt.focus()
					blnProb=true
				}
			}else{
				dAmt=Math.round(dPmt*lPrice/100)
			}
			
			if (!blnProb){
				//Indicate the dollar amount
				dAmount.innerHTML="% => " + makeMoney(dAmt)
				
				
				//Convert Percentages to Numbers
				iRate= iRate/100
				dPmt = dPmt/100
					
				//get Loan Amount
				lAmt = lPrice - dPmt*lPrice

				//alright we have valid numbers - lets calculate the monthly payment
				mPmt = makeMoney(PV(lAmt, iRate, lTerm))
				
				form.mPmt.value=mPmt
			}
		}else if(bLink){
			if(lPrice==""){
				strAlert+="A List Price";
				if(dPmt=="")strAlert+=", " + "A Down Payment";
				if(iRate=="")strAlert+=", " + "An Interest Rate";
			}else{
				if(dPmt=="")strAlert+="A Down Payment"+", ";
				if(iRate=="")strAlert+="An Interest Rate";
			}
			alert(strAlert)
		}
		
	}
	
	function PV(loan_amount, rate, years) {
	
		var payment=0;
		var payment_count = years * 12;
		payment = loan_amount / ((1-(1/Math.pow((1+(rate/12)),payment_count)))/(rate/12));
		payment = parseInt(payment);
		return payment;
	}
	function makeMoney (number) {
		var sStr = "";
		sStr += number;
		var moneyval = "$";
		var i;
		for (i=0; i < sStr.length; i++) {
			j=i+1;
			moneyval += sStr.substring(i,j);
			if (number == Math.round(number)) { 
				pos = sStr.length-j;
			}
			else {
				pos = sStr.length-3-j;
			}
			tmp = Math.round(pos/3);
			if (pos == tmp*3 && pos != 0) moneyval+=",";
		}
		return moneyval;
	}	
	
<!--
// -------------------------------------------------------------------
// selectUnselectMatchingOptions(select_object,regex,select/unselect,true/false)
//  This is a general function used by the select functions below, to
//  avoid code duplication
// -------------------------------------------------------------------
function selectUnselectMatchingOptions(obj,regex,which,only) {
	if (window.RegExp) {
		if (which == "select") {
			var selected1=true;
			var selected2=false;
			}
		else if (which == "unselect") {
			var selected1=false;
			var selected2=true;
			}
		else {
			return;
			}
		var re = new RegExp(regex);
		for (var i=0; i<obj.options.length; i++) {
			if (re.test(obj.options[i].text)) {
				obj.options[i].selected = selected1;
				}
			else {
				if (only == true) {
					obj.options[i].selected = selected2;
					}
				}
			}
		}
	}

// -------------------------------------------------------------------
// selectMatchingOptions(select_object,regex)
//  This function selects all options that match the regular expression
//  passed in. Currently-selected options will not be changed.
// -------------------------------------------------------------------
function selectMatchingOptions(obj,regex) {
	selectUnselectMatchingOptions(obj,regex,"select",false);
	}
// -------------------------------------------------------------------
// selectOnlyMatchingOptions(select_object,regex)
//  This function selects all options that match the regular expression
//  passed in. Selected options that don't match will be un-selected.
// -------------------------------------------------------------------
function selectOnlyMatchingOptions(obj,regex) {
	selectUnselectMatchingOptions(obj,regex,"select",true);
	}
// -------------------------------------------------------------------
// unSelectMatchingOptions(select_object,regex)
//  This function Unselects all options that match the regular expression
//  passed in.
// -------------------------------------------------------------------
function unSelectMatchingOptions(obj,regex) {
	selectUnselectMatchingOptions(obj,regex,"unselect",false);
	}

// -------------------------------------------------------------------
// sortSelect(select_object)
//   Pass this function a SELECT object and the options will be sorted
//   by their text (display) values
// -------------------------------------------------------------------
function sortSelect(obj) {
	var o = new Array();
	for (var i=0; i<obj.options.length; i++) {
		o[o.length] = new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected) ;
		}
	o = o.sort(
		function(a,b) {
			if ((a.text+"") < (b.text+"")) { return -1; }
			if ((a.text+"") > (b.text+"")) { return 1; }
			return 0;
			}
		);

	for (var i=0; i<o.length; i++) {
		obj.options[i] = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
		}
	}

// -------------------------------------------------------------------
// selectAllOptions(select_object)
//  This function takes a select box and selects all options (in a
//  multiple select object). This is used when passing values between
//  two select boxes. Select all options in the right box before
//  submitting the form so the values will be sent to the server.
// -------------------------------------------------------------------
function selectAllOptions(obj) {
	for (var i=0; i<obj.options.length; i++) {
		obj.options[i].selected = true;
		}
	}

// -------------------------------------------------------------------
// moveSelectedOptions(select_object,select_object[,autosort(true/false)[,regex]])
//  This function moves options between select boxes. Works best with
//  multi-select boxes to create the common Windows control effect.
//  Passes all selected values from the first object to the second
//  object and re-sorts each box.
//  If a third argument of 'false' is passed, then the lists are not
//  sorted after the move.
//  If a fourth string argument is passed, this will function as a
//  Regular Expression to match against the TEXT or the options. If
//  the text of an option matches the pattern, it will NOT be moved.
//  It will be treated as an unmoveable option.
//  You can also put this into the <SELECT> object as follows:
//    onDblClick="moveSelectedOptions(this,this.form.target)
//  This way, when the user double-clicks on a value in one box, it
//  will be transferred to the other (in browsers that support the
//  onDblClick() event handler).
// -------------------------------------------------------------------
function moveSelectedOptions(from,to) {
	// Unselect matching options, if required
	if (arguments.length>3) {
		var regex = arguments[3];
		if (regex != "") {
			unSelectMatchingOptions(from,regex);
			}
		}
	// Move them over
	//alert (from.options.length);	
	for (var i=0; i<from.options.length; i++) {
		var o = from.options[i];
		if (o.selected) {
			to.options[to.options.length] = new Option( o.text, o.value, false, false);
			}
		}
	// Delete them from original
	for (var i=(from.options.length-1); i>=0; i--) {
		var o = from.options[i];
		if (o.selected) {
			from.options[i] = null;
			}
		}
	if ((arguments.length<3) || (arguments[2]==true)) {
		//sortSelect(from);
		sortSelect(to);
		}
		
	from.selectedIndex = -1;
	to.selectedIndex = -1;
	
	}

// -------------------------------------------------------------------
// copySelectedOptions(select_object,select_object[,autosort(true/false)])
//  This function copies options between select boxes instead of
//  moving items. Duplicates in the target list are not allowed.
// -------------------------------------------------------------------
function copySelectedOptions(from,to) {
	var options = new Object();
	for (var i=0; i<to.options.length; i++) {
		options[to.options[i].text] = true;
		}
	for (var i=0; i<from.options.length; i++) {
		var o = from.options[i];
		if (o.selected) {
			if (options[o.text] == null || options[o.text] == "undefined") {
				to.options[to.options.length] = new Option( o.text, o.value, false, false);
				}
			}
		}
	if ((arguments.length<3) || (arguments[2]==true)) {
		sortSelect(to);
		}
	from.selectedIndex = -1;
	to.selectedIndex = -1;
	}

// -------------------------------------------------------------------
// moveAllOptions(select_object,select_object[,autosort(true/false)[,regex]])
//  Move all options from one select box to another.
// -------------------------------------------------------------------
function moveAllOptions(from,to) {
	selectAllOptions(from);
	if (arguments.length==2) {
		moveSelectedOptions(from,to);
		}
	else if (arguments.length==3) {
		moveSelectedOptions(from,to,arguments[2]);
		}
	else if (arguments.length==4) {
		moveSelectedOptions(from,to,arguments[2],arguments[3]);
		}
	}

// -------------------------------------------------------------------
// copyAllOptions(select_object,select_object[,autosort(true/false)])
//  Copy all options from one select box to another, instead of
//  removing items. Duplicates in the target list are not allowed.
// -------------------------------------------------------------------
function copyAllOptions(from,to) {
	selectAllOptions(from);
	if (arguments.length==2) {
		copySelectedOptions(from,to);
		}
	else if (arguments.length==3) {
		copySelectedOptions(from,to,arguments[2]);
		}
	}

// -------------------------------------------------------------------
// swapOptions(select_object,option1,option2)
//  Swap positions of two options in a select list
// -------------------------------------------------------------------
function swapOptions(obj,i,j) {
	var o = obj.options;
	var i_selected = o[i].selected;
	var j_selected = o[j].selected;
	var temp = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
	var temp2= new Option(o[j].text, o[j].value, o[j].defaultSelected, o[j].selected);
	o[i] = temp2;
	o[j] = temp;
	o[i].selected = j_selected;
	o[j].selected = i_selected;
	}

// -------------------------------------------------------------------
// moveOptionUp(select_object)
//  Move selected option in a select list up one
// -------------------------------------------------------------------
function moveOptionUp(obj) {
	// If > 1 option selected, do nothing
	var selectedCount=0;
	for (i=0; i<obj.options.length; i++) {
		if (obj.options[i].selected) {
			selectedCount++;
			}
		}
	if (selectedCount > 1) {
		return;
		}
	// If this is the first item in the list, do nothing
	var i = obj.selectedIndex;
	if (i == 0) {
		return;
		}
	swapOptions(obj,i,i-1);
	obj.options[i-1].selected = true;
	}

// -------------------------------------------------------------------
// moveOptionDown(select_object)
//  Move selected option in a select list down one
// -------------------------------------------------------------------
function moveOptionDown(obj) {
	// If > 1 option selected, do nothing
	var selectedCount=0;
	for (i=0; i<obj.options.length; i++) {
		if (obj.options[i].selected) {
			selectedCount++;
			}
		}
	if (selectedCount > 1) {
		return;
		}
	// If this is the last item in the list, do nothing
	var i = obj.selectedIndex;
	if (i == (obj.options.length-1)) {
		return;
		}
	swapOptions(obj,i,i+1);
	obj.options[i+1].selected = true;
	}
// -->