function LDCFixEvent(event) { // add W3C standard event methods event.preventDefault = LDCFixEvent.preventDefault; event.stopPropagation = LDCFixEvent.stopPropagation; return event; }; LDCFixEvent.preventDefault = function() { this.returnValue = false; }; LDCFixEvent.stopPropagation = function() { this.cancelBubble = true; }; var ldcRateSearchWidget = { displayVersion: 1, aMandatory : { 'ldcRateSearchWidgetUSER_STATE':['State','Select',''], 'ldcRateSearchWidgetUSER_LOAN_PROGRAM':['Loan Program','Select',''], 'ldcRateSearchWidgetUSER_POINTS':['Points','Select',''], 'ldcRateSearchWidgetUSER_LOAN_AMOUNT':['Amount','Text',''] }, pointsArray : { '0':'No Points', '0.5':'0 to 1', '1.5':'1 to 2', '2.5':'2+' }, productArray : { '30yrfixed':'30 Year Fixed','20yrfixed':'20 Year Fixed','15yrfixed':'15 Year Fixed','3yrARM':'3/1 ARM','5yrARM':'5/1 ARM','7yrARM':'7/1 ARM','10yrARM':'10/1 ARM','F30yrfixed':'FHA 30 Year Fixed','F15yrfixed':'FHA 15 Year Fixed','V30yrfixed':'VA 30 Year Fixed','V15yrfixed':'VA 15 Year Fixed','HELoan':'Home Equity Loan - 10 Year','HELine':'Home Equity Line of Credit','HELoan15':'Home Equity Loan - 15 Year' }, statesArray : { '':'Select State', 'AL':'Alabama','AK':'Alaska','AZ':'Arizona','AR':'Arkansas','CA':'California','CO':'Colorado','CT':'Connecticut','DE':'Delaware','DC':'District of Columbia','FL':'Florida','GA':'Georgia','HI':'Hawaii','ID':'Idaho','IL':'Illinois','IN':'Indiana','IA':'Iowa','KS':'Kansas','KY':'Kentucky','LA':'Louisiana','ME':'Maine','MD':'Maryland','MA':'Massachusetts','MI':'Michigan','MN':'Minnesota','MS':'Mississippi','MO':'Missouri','MT':'Montana','NE':'Nebraska','NV':'Nevada','NH':'New Hampshire','NJ':'New Jersey','NM':'New Mexico','NY':'New York','NC':'North Carolina','ND':'North Dakota','OH':'Ohio','OK':'Oklahoma','OR':'Oregon','PA':'Pennsylvania','RI':'Rhode Island','SC':'South Carolina','SD':'South Dakota','TN':'Tennessee','TX':'Texas','UT':'Utah','VT':'Vermont','VA':'Virginia','WA':'Washington','WV':'West Virginia','WI':'Wisconsin','WY':'Wyoming' }, makeSel: function (selName,data){ var sel = document.createElement('select'); sel.setAttribute('name',selName); sel.setAttribute('id',selName); i=0; for (var name in data){ if(data.hasOwnProperty(name)){ sel.options[i] = new Option(data[name],name); i++; } } return sel; }, // next two event methods written by Dean Edwards, 2005 // with input from Tino Zijdel, Matthias Miller, Diego Perini // http://dean.edwards.name/weblog/2005/10/add-event/ addEvent: function (element, type, handler) { if (!handler.$$guid) handler.$$guid = this.addEvent.guid++; if (!element.events) element.events = {}; var handlers = element.events[type]; if (!handlers) { handlers = element.events[type] = {}; if (element["on" + type]) { handlers[0] = element["on" + type]; } } handlers[handler.$$guid] = handler; element["on" + type] = this.handleEvent; }, handleEvent: function (event) { var returnValue = true; event = event || LDCFixEvent(window.event); var handlers = this.events[event.type]; for (var i in handlers) { this.$$handleEvent = handlers[i]; if (this.$$handleEvent(event) === false) { returnValue = false; } } return returnValue; }, chkMandatory:function ( objForm) { aMandatory = this.aMandatory; for (var iLoop in aMandatory) { var strVal; strVal = ""; if (aMandatory[iLoop][1] == "Text") strVal = document.getElementById(iLoop).value; else if (aMandatory[iLoop][1] == "Select") { var iIdx = document.getElementById(iLoop).selectedIndex; if (iIdx > -1) strVal = document.getElementById(iLoop)[iIdx].value; else strVal = ""; } if (strVal == "") { alert("Please enter a value for " + aMandatory[iLoop][0] + "."); if (aMandatory[iLoop][2] != "") eval("objForm." + aMandatory[iLoop][2] + ".focus()"); else { eval("objForm." + iLoop + ".focus()"); } return false; } } return true; }, chkForm :function (objForm) { var bRetVal = true; bRetVal = this.chkMandatory(objForm); if (!bRetVal) return bRetVal; return true; }, doSubmit :function (Fm){ var edited_value = this.number_validation(document.getElementById('ldcRateSearchWidgetUSER_LOAN_AMOUNT').value); document.getElementById('ldcRateSearchWidgetUSER_LOAN_AMOUNT').value = edited_value; result = this.chkForm(Fm); if(result){ url = Fm.action; url = url + "/"+ Fm.ldcRateSearchWidgetUSER_STATE[Fm.ldcRateSearchWidgetUSER_STATE.selectedIndex].value; url = url + "/"+ Fm.ldcRateSearchWidgetUSER_LOAN_PROGRAM[Fm.ldcRateSearchWidgetUSER_LOAN_PROGRAM.selectedIndex].value; url = url + "/"+ document.getElementById('ldcRateSearchWidgetUSER_POINTS')[document.getElementById('ldcRateSearchWidgetUSER_POINTS').selectedIndex].value; url = url + "/"+ document.getElementById('ldcRateSearchWidgetUSER_LOAN_AMOUNT').value; //window.location.href = url + '?src=13'; window.location.href = url; } }, change_amount: function (lpval) { sel = document.getElementById('ldcRateSearchWidgetUSER_LOAN_PROGRAM'); var lpval = sel[sel.selectedIndex].value if( lpval.charAt(0) == "J" ) { var amount = 300000; } else amount = 150000; document.getElementById('ldcRateSearchWidgetUSER_LOAN_AMOUNT').value = amount }, number_validation :function(val, pos) { edited_value = ""; var len=val.length; var dot_cntr = 0; var field = pos; var temp; for(i=0;i= "0" && temp <= "9") || val.charAt(i) == ".") { if(val.charAt(i) == "." ) { ++dot_cntr; if(dot_cntr >= 2) { alert("There are two or more decimals in the amount field. The amount field will be changed to default values."); var lpval = document.Search.USER_LOAN_PROGRAM[document.Search.USER_LOAN_PROGRAM.selectedIndex].value if( lpval.charAt(0) == "J" ) { amount = 300000; } else { amount = 150000; } edited_value = amount; break ; } } edited_value = edited_value + val.substring(i,i+1); } } return edited_value; }, makeForm: function(div){ f=document.createElement("form"); f.setAttribute('id','ldcratesearchwidgetform'); f.setAttribute('method','post'); f.setAttribute('action','http://homethinking.loan.com/mortgage-rates'); f.setAttribute('name','Search'); this.addEvent(f, 'submit', function(){ldcRateSearchWidget.doSubmit(this);return false;}); var StateSel = this.makeSel('ldcRateSearchWidgetUSER_STATE',this.statesArray); var ProgSel = this.makeSel('ldcRateSearchWidgetUSER_LOAN_PROGRAM',this.productArray); this.addEvent(ProgSel, 'change', function(){ldcRateSearchWidget.change_amount(document.getElementById('ldcRateSearchWidgetUSER_LOAN_PROGRAM').value);}); var PointsSel = this.makeSel('ldcRateSearchWidgetUSER_POINTS',this.pointsArray); var AmountInpt = document.createElement('input'); AmountInpt.setAttribute('value','150000'); AmountInpt.setAttribute('size','10'); AmountInpt.setAttribute('id','ldcRateSearchWidgetUSER_LOAN_AMOUNT'); AmountInpt.setAttribute('name','ldcRateSearchWidgetUSER_LOAN_AMOUNT'); AmountInpt.setAttribute('maxlength','7'); this.addEvent(AmountInpt, 'change', function(){ldcRateSearchWidget.number_validation(this.value); document.getElementById('ldcRateSearchWidgetUSER_LOAN_AMOUNT').value = edited_value}); var SubmitInpt = document.createElement('input'); SubmitInpt.setAttribute('type','submit'); SubmitInpt.setAttribute('id','ldcratesearchwidgetsubmit'); SubmitInpt.setAttribute('name','submit'); SubmitInpt.setAttribute('value','Shop Todays Rates'); f.appendChild(StateSel); f.appendChild(ProgSel); f.appendChild(PointsSel); AmountInpt.value='Amount'; f.appendChild(AmountInpt); f.appendChild(SubmitInpt); return f; }, paintForm: function(dv){ this.displayVersion = dv; myscript = document.getElementById("ldcRateSearchWidget"); var div = document.createElement('div'); div.setAttribute('id','ldcRateSearchWidgetD'); var h3 = document.createElement('h3'); var h3Text = document.createTextNode('Today\'s Mortgage Rates'); h3.appendChild(h3Text); div.appendChild(h3); f = this.makeForm(div); div.appendChild(f); var sm = document.createElement('small'); var smText = document.createTextNode('- powered by '); sm.appendChild(smText); var a = document.createElement('a'); var aText = document.createTextNode('Loan.com'); a.appendChild(aText); a.setAttribute('href','http://www.loan.com'); sm.appendChild(a); div.appendChild(sm); var br = document.createElement('div'); br.setAttribute('id','ldcClearDiv'); div.appendChild(br); p = document.getElementById("ldcRateSearchWidget").parentNode; p.insertBefore(div,myscript); } } ldcRateSearchWidget.paintForm();