// JavaScript Document

var imgs = new Array('Images/Startup.jpg','Images/Small Business.jpg','Images/MedLarge.jpg','Images/Corporate.jpg');
var imglinks = new Array('http://www.businessmoneytoday.com/Loans/Start-Up_Business.html','http://www.businessmoneytoday.com/Loans/Small_Business.html','http://www.businessmoneytoday.com/Loans/Medium_Large_Business.html','http://www.businessmoneytoday.com/Loans/Corporate_Financing.html')
var delay = 7000;
var counter = 0;

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function linkimg (){
   document.location.href = imglinks[counter-1]
   }

function preloadImgs(){
  for(var i=0;i<imgs.length;i++){
    MM_preloadImages(imgs[i]);
  }
}

function randomImages(){
  if(counter == (imgs.length)){
    counter = 0;
  }
  MM_swapImage('Startup', '', imgs[counter++]);
  setTimeout('randomImages()', delay);
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}

function YY_checkform() { //v4.06
//copyright (c)1998,2001 Yaromat.com
  var args = YY_checkform.arguments; var myDot=true; var myV=''; var myErr='';var addErr=false;var myReq;
  for (var i=1; i<args.length;i=i+4){
    if (args[i+1].charAt(0)=='#'){myReq=true; args[i+1]=args[i+1].substring(1);}else{myReq=false}
    var myObj = MM_findObj(args[i].replace(/\[\d+\]/ig,""));
    myV=myObj.value;
    if (myObj.type=='text'||myObj.type=='password'){
      if (myReq&&myObj.value.length==0){addErr=true}
      if ((myV.length>0)&&(args[i+2]==1)){ //fromto
        if (!(myV/1)||myV<args[i+1].split('_')[0]/1||myV > args[i+1].split('_')[1]/1){addErr=true}
      }
      if ((myV.length>0)&&(args[i+2]==2)&&!myV.match("^[\\w\\.=-_]+@[\\w\\.-_]+\\.[a-z]{2,4}$")){addErr=true}// email
      if ((myV.length>0)&&(args[i+2]==3)){ // date
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);
        if(myAt){
          var myD=(myAt[myMa[1]])?myAt[myMa[1]]:1; var myM=myAt[myMa[2]]-1; var myY=myAt[myMa[3]];
          var myDate=new Date(myY,myM,myD);
          if(myDate.getFullYear()!=myY||myDate.getDate()!=myD||myDate.getMonth()!=myM){addErr=true};
        }else{addErr=true}
      }
      if ((myV.length>0)&&(args[i+2]==4)){ // time
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);if(!myAt){addErr=true}
      }
      if (myV.length>0&&args[i+2]==5){ // check this 2
            var myObj1 = MM_findObj(args[i+1].replace(/\[\d+\]/ig,""));
      if(myObj1.length)myObj1=myObj1[args[i+1].replace(/(.*\[)|(\].*)/ig,"")];
            if(!myObj1.checked){addErr=true}
      }
      if (myV.length>0&&args[i+2]==6){ // the same
            var myObj1 = MM_findObj(args[i+1]);
            if(myV!=myObj1.value){addErr=true}
      }
    }else
    if (!myObj.type&&myObj.length>0&&myObj[0].type=='radio'){
          var myTest = args[i].match(/(.*)\[(\d+)\].*/i);
          var myObj1=(myObj.length>1)?myObj[myTest[2]]:myObj;
      if (args[i+2]==1&&myObj1&&myObj1.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
      if (args[i+2]==2){
        var myDot=false;
        for(var j=0;j<myObj.length;j++){myDot=myDot||myObj[j].checked}
        if(!myDot){myErr+='* ' +args[i+3]+'\n'}
      }
    }else
    if (myObj.type=='checkbox'){
      if(args[i+2]==1&&myObj.checked==false){addErr=true}
      if(args[i+2]==2&&myObj.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
    }else
    if (myObj.type=='select-one'||myObj.type=='select-multiple'){
      if(args[i+2]==1&&myObj.selectedIndex/1==0){addErr=true}
    }else
    if (myObj.type=='textarea'){
      if(myV.length<args[i+1]){addErr=true}
    }
    if (addErr){myErr+='* '+args[i+3]+'\n'; addErr=false}
  }
  if (myErr!=''){alert('The required information is incomplete or contains errors:\t\t\t\t\t\n\n'+myErr)}
  document.MM_returnValue = (myErr=='');
}

function followliabilities(form) {
  var followlib = form.cliab.value;
  form.cliab2.value = followlib;
  return;
}

function currentratio(form) {
  var cuas = check_num(form.casset.value);
  var culi = check_num(form.cliab.value);
  var current = Math.round((cuas/culi)*100)/100;
  form.curatio.value = current;
  return;
}

function quickratio(form) {
  var cas = check_num(form.cash.value);
  var acctrec = check_num(form.accrec.value);
  var culi2 = check_num(form.cliab2.value);
  var quick = Math.round(((cas + acctrec)/culi2)*100)/100;
  form.quratio.value = quick;
  return;
}

function followassets(form) {
  var followass = form.totalassets.value;
  form.totalassets2.value = followass;
  return;
}

function followpretax(form) {
  var followpre = form.pretaxr.value;
  form.pretax2.value = followpre;
  return;
}

function followsales(form) {
  var followsal = form.sales.value;
  form.sales2.value = followsal;
  return;
}

function followcogs(form) {
  var followcog = form.cogs.value;
  form.cogs2.value = followcog;
  return;
}

function staratio(form) {
  var grosales = check_num(form.sales.value);
  var totassets = check_num(form.totalassets.value);
  var stoa = Math.round((grosales/totassets)*100)/100;
  form.saratio.value = stoa;
  return;
}

function roaratio(form) {
  var prepro = check_num(form.pretaxr.value);
  var totassets2 = check_num(form.totalassets2.value);
  var roar = Math.round((prepro/totassets2)*100);
  form.raratio.value = roar;
  return;
}

function roeratio(form) {
  var prepro2 = check_num(form.pretax2.value);
  var eqty = check_num(form.equity.value);
  var roer = Math.round((prepro2/eqty)*100);
  form.reratio.value = roer;
  return;
}

function inturnratio(form) {
  var costgoods = check_num(form.cogs.value);
  var inventory = check_num(form.invent.value);
  var dip = check_num(form.daysinv.value);
  var turnin = Math.round((costgoods/inventory)*100)/100;
  var turndays = Math.round((dip/turnin)*100)/100;
  form.inventratio.value = turnin;
  form.indays.value = turndays;
  return;
}

function arturnratio(form) {
  var grosales2 = check_num(form.sales2.value);
  var rec = check_num(form.ar.value);
  var dipar = check_num(form.daysar.value);
  var turnar = Math.round((grosales2/rec)*100)/100;
  var turnardays = Math.round((dipar/turnar)*100)/100;
  form.arratio.value = turnar;
  form.ardays.value = turnardays;
  return;
}

function payturnratio(form) {
  var costgoods2 = check_num(form.cogs2.value);
  var pay = check_num(form.ap.value);
  var dipap = check_num(form.daysap.value);
  var turnap = Math.round((costgoods2/pay)*100)/100;
  var turnapdays = Math.round((dipap/turnap)*100)/100;
  form.apratio.value = turnap;
  form.apdays.value = turnapdays;
  return;
}

function followsales(form) {
  var followsal = form.sales.value;
  form.sales2.value = followsal;
  return;
}

function grossratio(form) {
  var gropro = check_num(form.gross.value);
  var salesgro = check_num(form.sales.value);
  var grprratio = Math.round((gropro/salesgro)*100);
  form.gpratio.value = grprratio;
  return;
}

function pretaxratio(form) {
  var prepro = check_num(form.pretax.value);
  var salespre = check_num(form.sales2.value);
  var ptprratio = Math.round((prepro/salespre)*100);
  form.ppratio.value = ptprratio;
  return;
}

function debtratio(form) {
  var totalliab = check_num(form.tliab.value);
  var tequity = check_num(form.equity.value);
  var dtoe = Math.round((totalliab/tequity)*100)/100;
  form.deratio.value = dtoe;
  return;
}

function mthpmt(form) {
  var princ1 = check_num(form.princ.value);
  var rate1 = check_num(form.rate.value);
  var term1 = check_num(form.term.value);
  var rate2 = rate1/1200;
  var rate3 = 1+rate2;
  var rateterm = cal_exp(rate3, term1);
  var newpmt1 = Math.round(princ1*(rate2+(rate2/(rateterm-1)))*100)/100;
  var newint1 = Math.round((newpmt1*term1-princ1)*100)/100;
  form.newpmt.value = formatCurrency(newpmt1);
  form.newint.value = formatCurrency(newint1);
  return;
}

function cal_exp(a,b) {
t = 1;
 for(x = 1; x <= b; x++) 
    {
     t = t * a;
    }
EXP = t;

return(EXP);
}

function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + '$' + num + '.' + cents);
}

function mthpmt1(form) {
  var princ1 = check_num(form.amount.value);
  var addpmt = check_num(form.extra.value);
  var rate1 = check_num(form.rate.value);
  var term1 = check_num(form.term.value);
  var rate2 = rate1/1200;
  var rate3 = 1+rate2;
  var rateterm = cal_exp(rate3, term1);
  var newpmt1 = princ1*(rate2+(rate2/(rateterm-1)));
  var newint1 = (newpmt1*term1)-princ1;
  form.origpayment.value = formatCurrency(newpmt1);
  form.origtotint.value = formatCurrency(newint1);
  var addpmt = check_num(form.extra.value);
  var newpmt2 = newpmt1+addpmt;
  form.newpayment.value = formatCurrency(newpmt2);
  var origtotpay1 = newpmt1*term1;
  form.origtotpay.value = formatCurrency(origtotpay1);
  form.origterm.value = term1.toFixed(2);
  var q1 = princ1/term1;
  var q2 = q1+addpmt;
  var term2  = princ1/q2;
  form.newterm.value = term2.toFixed(2);
  var newtotpay1 = newpmt2*term2;
  form.newtotpay.value = formatCurrency(newtotpay1);
  var newint2 = newtotpay1-princ1;
  form.newtotint.value = formatCurrency(newint2);
  var interestdiff = newint1-newint2;
  form.intsave.value = formatCurrency(interestdiff);
  return;
}

function mthpmt2(form) {
  var princ1 = check_num(form.princ.value);
  var rate1 = check_num(form.rate.value);
  var term1 = check_num(form.term.value);
  var rate2 = rate1/1200;
  var rate3 = 1+rate2;
  var rateterm = cal_exp(rate3, term1);
  var newpmt1 = Math.round(princ1*(rate2+(rate2/(rateterm-1)))*100)/100;
  
  var m2 = term1/12;
  var n2 = 1/m2;
  var o2 = 1-n2;
  var p2 = o2*term1;
  var termneg22 = cal_exp(rate3, p2);
  var newtermneg2 = Math.round(princ1*(rate2+(rate2/(termneg22-1)))*100)/100;

  var m1 = term1/12;
  var n1 = 1/(m1*2);
  var o1 = 1-n1;
  var p1 = o1*term1;
  var termneg11 = cal_exp(rate3, p1);
  var newtermneg1 = Math.round(princ1*(rate2+(rate2/(termneg11-1)))*100)/100;
    
  var m3 = term1/12;
  var n3 = 1/(m3*2);
  var o3 = 1+n3;
  var p3 = o3*term1;
  var termpos3 = cal_exp(rate3, p3);
  var newtermpos1 = Math.round(princ1*(rate2+(rate2/(termpos3-1)))*100)/100;
  
  var m4 = term1/12;
  var n4 = 1/m4;
  var o4 = 1+n4;
  var p4 = o4*term1;
  var termpos4 = cal_exp(rate3, p4);
  var newtermpos2 = Math.round(princ1*(rate2+(rate2/(termpos4-1)))*100)/100;
  
  var crateneg2 = rate1*.8;
  var crateneg22 = crateneg2/1200;
  var crate2 = 1+crateneg22;
  var crateterm2 = cal_exp(crate2, term1);
  var newrateneg2 = Math.round(princ1*(crateneg22+(crateneg22/(crateterm2-1)))*100)/100;
  
  var crateneg1 = rate1*.9;
  var crateneg11 = crateneg1/1200;
  var crate1 = 1+crateneg11;
  var crateterm1 = cal_exp(crate1, term1);
  var newrateneg1 = Math.round(princ1*(crateneg11+(crateneg11/(crateterm1-1)))*100)/100;
  
  var cratepos1 = rate1*1.1;
  var cratepos11 = cratepos1/1200;
  var cratepos111 = 1+cratepos11;
  var cratetermpos1 = cal_exp(cratepos111, term1);
  var newratepos1 = Math.round(princ1*(cratepos11+(cratepos11/(cratetermpos1-1)))*100)/100;
 
  var cratepos2 = rate1*1.2;
  var cratepos22 = cratepos2/1200;
  var cratepos222 = 1+cratepos22;
  var cratetermpos2 = cal_exp(cratepos222, term1);
  var newratepos2 = Math.round(princ1*(cratepos22+(cratepos22/(cratetermpos2-1)))*100)/100;

  form.newpmt.value = formatCurrency(newpmt1);
  form.rateneg2.value = crateneg2.toFixed(2);
  form.rateneg1.value = crateneg1.toFixed(2);
  form.ratepos1.value = cratepos1.toFixed(2);
  form.ratepos2.value = cratepos2.toFixed(2);
  form.payneg2.value = formatCurrency(newrateneg2);
  form.payneg1.value = formatCurrency(newrateneg1);
  form.paypos1.value = formatCurrency(newratepos1);
  form.paypos2.value = formatCurrency(newratepos2);
  form.termneg2.value = p2.toFixed(2);
  form.termneg1.value = p1.toFixed(2);
  form.termpos1.value = p3.toFixed(2);
  form.termpos2.value = p4.toFixed(2);
  form.pmtneg2.value = formatCurrency(newtermneg2);
  form.pmtneg1.value = formatCurrency(newtermneg1);
  form.pmtpos1.value = formatCurrency(newtermpos1);
  form.pmtpos2.value = formatCurrency(newtermpos2);
  return;
}

function check_num(txt_num) {
  num = parseFloat(txt_num);
  if (num.toString() == "NaN") {
    alert("One of the values is not a number.\n"
      + "Please try again.");
    return;
  }
return num;
}

function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}

function MM_popupMsg(msg) { //v1.0
  alert(msg);
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_changeProp(objName,x,theProp,theValue) { //v6.0
  var obj = MM_findObj(objName);
  if (obj && (theProp.indexOf("style.")==-1 || obj.style)){
    if (theValue == true || theValue == false)
      eval("obj."+theProp+"="+theValue);
    else eval("obj."+theProp+"='"+theValue+"'");
  }
}
function jumpBox(list) {
  location.href = list.options[list.selectedIndex].value
}
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}