function setVisDispInline(objectId,visible) {
   // Identical to the setVisDisp that is in lawdepot.js, except it re-displays objects
   // using display:inline instead of display:block

   if(document.getElementById && document.getElementById(objectId)) {
      if(visible) {
         document.getElementById(objectId).style.visibility = "visible";
         document.getElementById(objectId).style.display = "inline";
      } else {
         document.getElementById(objectId).style.visibility = "hidden";
         document.getElementById(objectId).style.display = "none";
      }
   } else if (document.all && document.all(objectId)) {
      if(visible) {
         document.all(objectId).style.visibility = "visible";
         document.all(objectId).style.display = "inline";
      } else {
         document.all(objectId).style.visibility = "hidden";
         document.all(objectId).style.display = "none";
      }
   } else if (document.layers) {
      if(document.layers[objectId]) {
         if(visible) {
            document.layers[objectId].visibility = "show";
            document.layers[objectId].display = "inline";
         } else {
            document.layers[objectId].visibility = "hide";
            document.layers[objectId].display = "none";
         }
      } else {
         var retval= nsGetLayer(document.layers,objectId);
         if(retval) {
            if(visible) {
               retval.visibility = "show";
               retval.display = "inline";
            } else {
               retval.visibility = "hide";
               retval.display = "none";
            }
         }
      }
   }
}


var db = new Array()
db[1] = new dbRecord("openingdialog")
db[2] = new dbRecord("contractdetails")
db[3] = new dbRecord("helpdialog")

// object constructor for each division entry
function dbRecord(divname){
   this.divname = divname   // name of division
   return this
}

// functions to help display div based on select choices

function displayHintDiv() {
   setVisDisp("hintDiv", getFormObject("promnote","hintDisplay").checked);   
}

function funcNoteTerm(inputvar) {
   funcChangeDiv(inputvar,"0","demand_question");
   funcChangeDiv(inputvar,"1","weekly_question");
   funcChangeDiv(inputvar,"2","monthly_question");
   funcChangeDiv(inputvar,"3","yearly_question");
   funcChangeDiv(inputvar,"4","specificdate_question");
}

function funcSpecifics(termVar, paymentVar, freqVar) {

   if (paymentVar.selectedIndex == "1") {
      setVisDisp('paymentday_question',false);          
      setVisDisp('paymentweek_question',false);       
      setVisDisp('payment_question',false);        
   
   } else {
   
      if (termVar.selectedIndex == "1") {

         setVisDisp('specific1',true);
         setVisDisp('specific2',false);
         setVisDisp('specific3',false);
         setVisDisp('paymentday_question',false);
         setVisDisp('paymentweek_question',true);        
         setVisDisp('payment_question',false);        

      } else if (termVar.selectedIndex == "3") {
         setVisDisp('specific1',false);
         setVisDisp('specific2',false);
         setVisDisp('specific3',true);
         setVisDisp('paymentday_question',false);
         setVisDisp('paymentweek_question',false);
         setVisDisp('payment_question',false);
                  
      } else if (termVar.selectedIndex == "2") {
                  
         setVisDisp('specific1',false);
         setVisDisp('specific2',true);
         setVisDisp('specific3',false);
         setVisDisp('paymentday_question',true);
         setVisDisp('paymentweek_question',false);
         setVisDisp('payment_question',false);
                  
      } else  {

         setVisDisp('payment_question',true);

         if (freqVar.selectedIndex == "0") {
            setVisDisp('specific1',true);
            setVisDisp('specific2',false);
            setVisDisp('specific3',false);
            setVisDisp('paymentday_question',false);
            setVisDisp('paymentweek_question',true);        
         
         } else if (freqVar.selectedIndex == "2") {
            setVisDisp('specific1',false);
            setVisDisp('specific2',false);
            setVisDisp('specific3',true);
            setVisDisp('paymentday_question',false);
            setVisDisp('paymentweek_question',false);
            
         } else {
            setVisDisp('specific1',false);
            setVisDisp('specific2',true);
            setVisDisp('specific3',false);
            setVisDisp('paymentday_question',true);
            setVisDisp('paymentweek_question',false);
         
         }        

      }

   }
}

function funcPaymentType(inputvar) {
   if (inputvar.selectedIndex == "0") {
      setVisDisp('paymentamount_question',true);

   } else if (inputvar.selectedIndex == "1") {
      setVisDisp('paymentamount_question',false);

   } else if (inputvar.selectedIndex == "2") {
      setVisDisp('paymentamount_question',false);

   } else if (inputvar.selectedIndex == "3") {
      setVisDisp('paymentamount_question',false);

   }

}

function funcSecurity(inputvar) {
  funcChangeDiv(inputvar,"0","vehicle_questions");
  funcChangeDiv(inputvar,"1","equipment_questions");
  funcChangeDiv(inputvar,"2","other_questions");
}

function divdisplay() {

   numBorrowersChanged();
   wrCurSign()

   dateLoad('specificdate');
   displayHintDiv();
   
      var askPaymentDate = false;
      var instalTerm = "";
      if(getObject('noteTerm').value == "Months") instalTerm = 'monthly';
      else if(getObject('noteTerm').value == "Years") instalTerm = 'yearly';
      else if(getObject('noteTerm').value == "Weeks") instalTerm = 'weekly';
      else if(getObject('paymentFreq').value == "month") instalTerm = "monthly";
      else if(getObject('paymentFreq').value == "year") instalTerm = "yearly";
      else instalTerm = "weekly";
      var nextPayment = "";
      if ((getFormObject("promnote","governingLaw").value == "ON")&&(getObject('noteTerm').value == "Demand")) {
         setVisDisp('businesspurpose_question', true);
         if (getFormObject("promnote","businesspurpose")[1].checked == true){
               setVisDisp('notbusinesspurpose_limitation', true);
            }
            else
            {
               setVisDisp('notbusinesspurpose_limitation', false);
            }
      }
      else
      {
      setVisDisp('businesspurpose_question', false);
      }
   tType = getFormObject("promnote", "interestCompounding");
   if ((getFormObject("promnote","noteTerm").value == 'Years' && tType.options.length > 1) || (getFormObject("promnote","noteTerm").value != 'Years' && tType.options.length < 2)) {
      for (var i = (tType.options.length-1); i >= 0; i--)
          tType.options[i]=null;

      if(getFormObject("promnote","noteTerm").value == 'Years') {
         tType.options[0] = new Option("Yearly","yearly");
      } else {
         tType.options[0] = new Option("Monthly","monthly");
         tType.options[1] = new Option("Every 6 Months","semiannual");
         tType.options[2] = new Option("Yearly","yearly");
      }
   }

      if(getObject('noteTerm').value != "Demand" && getObject('paymentType').value == "Specific Amount") {
         askPaymentDate = true;
         if(getObject('noteTerm').value != "Specific Date")
            nextPayment = getObject('noteTerm').value.substring(0,getObject('noteTerm').value.length-1).toLowerCase();
         else
            nextPayment = getObject('paymentFreq').value;
      }
      else if(getObject('noteTerm').value != "Demand" && getObject('paymentType').value != "Lumpsum Payment" && getObject('paymentType').value != "Specific Amount") {
         if(instalTerm == "monthly")
            askPaymentDate = getObject('noteTermMonths').value != '1' && getObject('noteTermMonths').value.toLowerCase() != "one";
         else if(instalTerm == "yearly")
            askPaymentDate = true;
         else if(instalTerm == "weekly")
            askPaymentDate = getObject('noteTermWeeks').value != '1' && getObject('noteTermWeeks').value.toLowerCase() != "one";
         nextPayment = instalTerm.substring(0,instalTerm.length - 2);
      }
      else if(getObject('noteTerm').value == "Demand" && getObject('paymentType').value == "Specific Amount") {
         if(getObject('paymentFreq').value == "month")
            askPaymentDate = getObject('noteTermMonths').value != '1' && getObject('noteTermMonths').value.toLowerCase() != "one";
         else if(getObject('paymentFreq').value == "year")
            askPaymentDate = getObject('noteTermYears').value != '1' && getObject('noteTermYears').value.toLowerCase() != "one";
         else if(getObject('paymentFreq').value == "week")
            askPaymentDate = getObject('noteTermWeeks').value != '1' && getObject('noteTermWeeks').value.toLowerCase() != "one";
         nextPayment = getObject('paymentFreq').value;
      }
      else if(getObject('noteTerm').value == "Demand" && getObject('paymentType').value != "Lumpsum Payment" && getObject('paymentType').value != "Specific Amount") {
         askPaymentDate = instalTerm == "monthly" || instalTerm == "yearly" || instalTerm == "weekly";
         nextPayment = instalTerm.substring(0,instalTerm.length - 2);
      }
      
      setVisDisp('firstPaymentBox',askPaymentDate);
      setVisDisp('firstPaymentSpecificBox',askPaymentDate && getObject('firstPayment').value == "specific");
      getObject('firstPayment').options[0].text = nextPayment + " following execution";

//      setVisDisp('firstPaymentBox',getObject('paymentType').value == "Specific Amount");
//      setVisDisp('firstPaymentSpecificBox',getObject('paymentType').value == "Specific Amount" && getObject('firstPayment').value == "specific");

      if (getFormObject("promnote","interestCharged")[0].checked != true){   /*** Ask Derek: is this right? ****/
         funcradChangeDiv('false','interest_questions');
      } else {
         funcradChangeDiv('true','interest_questions');
      }
      funcNoteTerm(getFormObject("promnote","noteTerm"));
      funcPaymentType(getFormObject("promnote","paymentType"));
      if ((getFormObject("promnote","noteTerm").selectedIndex == "0") && (getFormObject("promnote","paymentType").selectedIndex == "3")) {
         getFormObject("promnote","paymentType").selectedIndex = "2";
         divdisplay();
         alert("You can not select 'Interest and Principal' with a Demand term");

      }
      funcSpecifics(getFormObject("promnote","noteTerm"), getFormObject("promnote","paymentType"), getFormObject("promnote","paymentFreq"))
      checkboxcheck(getFormObject("promnote","secured"),'secured_questions');
      funcSecurity(getFormObject("promnote","security"));
      checkboxcheck(getFormObject("promnote","sale"),'sale_questions');
      if (getFormObject("promnote","interestCharged")[0].checked){
         document.getElementById('default_question').innerHTML = 'Charge a higher interest rate if borrower defaults on payment?';
         document.getElementById('default_help').innerHTML = 'If the borrower defaults (e.g. does not pay on time), then a higher interest rate will be charged.';
      } else {
         document.getElementById('default_question').innerHTML = 'Charge interest if borrower defaults on payment?';       
         document.getElementById('default_help').innerHTML = 'If the borrower defaults (e.g. does not pay on time), then interest will be charged.';
      }
      setVisDisp('default_rate', getFormObject("promnote","interestOnDefault")[0].checked);
      
      checkboxcheck(getFormObject("promnote","addressForPayment"),'specaddress_questions');

      if (getFormObject("promnote","additionalClauses").value == "0") {
         setVisDisp('additionalClause1Div',false);
         setVisDisp('additionalClause2Div',false);
         setVisDisp('additionalClause3Div',false);
         setVisDisp('additionalClause4Div',false);
      } else if (getFormObject("promnote","additionalClauses").value == "1") {                                                                               
         setVisDisp('additionalClause1Div',true);
         setVisDisp('additionalClause2Div',false);
         setVisDisp('additionalClause3Div',false);
         setVisDisp('additionalClause4Div',false);
      } else if (getFormObject("promnote","additionalClauses").value == "2") {                                                                               
         setVisDisp('additionalClause1Div',true);
         setVisDisp('additionalClause2Div',true);
         setVisDisp('additionalClause3Div',false);
         setVisDisp('additionalClause4Div',false);
      } else if (getFormObject("promnote","additionalClauses").value == "3") {                                                                               
         setVisDisp('additionalClause1Div',true);
         setVisDisp('additionalClause2Div',true);
         setVisDisp('additionalClause3Div',true);
         setVisDisp('additionalClause4Div',false);
      } else if (getFormObject("promnote","additionalClauses").value == "4") {                                                                               
         setVisDisp('additionalClause1Div',true);
         setVisDisp('additionalClause2Div',true);
         setVisDisp('additionalClause3Div',true);                                  
         setVisDisp('additionalClause4Div',true);                                                                               
      }   
      
      // Customize the parameters for the interest calulator pop-up window
      // Arguments: termLength, termType, principle, interestRate, interestCompound, startDate

      var termLength = "";
      var termType = "";
      if(getObject('noteTerm').value == "Weeks") {
         var termLength = getObject('noteTermWeeks').value;
         var termType = "week";
      } else if(getObject('noteTerm').value == "Months") {
         var termLength = getObject('noteTermMonths').value;
         var termType = "month";
      } else if(getObject('noteTerm').value == "Years") {
         var termLength = getObject('noteTermYears').value;
         var termType = "year";
      }
      var principal = getObject('principal').value;
      var interestRate = getObject('interestRate').value;
      var interestCompound = getObject('interestCompounding').value;
      var paymentType = getObject('paymentType').value;
      
      var numDays = new Array(12);
      numDays[0] = 31; // Jan
      numDays[1] = 28; // Feb
      numDays[2] = 31; // Mar
      numDays[3] = 30; // Apr
      numDays[4] = 31; // May
      numDays[5] = 30; // June
      numDays[6] = 31; // July
      numDays[7] = 31; // Aug
      numDays[8] = 30; // Sept
      numDays[9] = 31; // Oct
      numDays[10]= 30; // Nov
      numDays[11]= 31; // Dec

      var months = new Array(12);
      months[0] = "Jan";
      months[1] = "Feb";
      months[2] = "Mar";
      months[3] = "Apr";
      months[4] = "May";
      months[5] = "June";
      months[6] = "July";
      months[7] = "August";
      months[8] = "September";
      months[9] = "October";
      months[10] = "November";
      months[11] = "December";

      var today = new Date();
      var nextTerm = new Date();
      var startDay = nextTerm.getDate();
      var startMonth = months[nextTerm.getMonth()];
      var startYear = nextTerm.getYear();

      if(getObject('firstPayment').value == "followingTerm") {
         if(termType == "week") {
            if(nextTerm.getDate() + 7 > numDays[nextTerm.getMonth()]) {
               if(nextTerm.getMonth() == 11) 
                  nextTerm.setYear(nextTerm.getYear() + 1);
               nextTerm.setMonth((nextTerm.getMonth() + 1) % 12);
            }
           nextTerm.setDate((nextTerm.getDate() + 7) % numDays[nextTerm.getMonth()]);
         } else if(termType == "month") {
            if(nextTerm.getMonth() == 11)
               nextTerm.setYear(nextTerm.getYear() + 1);
            nextTerm.setMonth((nextTerm.getMonth() + 1) % 12);
         } else
            nextTerm.setYear(nextTerm.getYear() + 1);
         startDay = nextTerm.getDate();
         startMonth = months[nextTerm.getMonth()];
         startYear = nextTerm.getYear() + 1900;
      } else {
         // Parse firstPaymentSpecificDate
         var indexOne = getObject('firstPaymentSpecificDate').value.indexOf(" ");
         var indexTwo = getObject('firstPaymentSpecificDate').value.indexOf(" ",indexOne+1);
         if(indexOne >= 0 && indexTwo >= 0) {
            var month = getObject('firstPaymentSpecificDate').value.substring(0,indexOne);
            var date = getObject('firstPaymentSpecificDate').value.substring(indexOne+1,indexTwo-1);
            var year = getObject('firstPaymentSpecificDate').value.substring(indexTwo);
            nextTerm.setDate(date);
            nextTerm.setMonth(month);
            nextTerm.setYear(year);
            startDay = date;
            startMonth = month;
            startYear = year;
         }
      }

      getObject('paymentScheduleBox').innerHTML = "<a href=\"#calculator\" onClick=\"window.open('/contracts/promnote/calculator.php?termLength="+termLength+"&termType="+termType+"&principle="+principal+"&interestRate="+interestRate+"&interestCompound="+interestCompound+"&startDay="+startDay+"&startMonth="+startMonth+"&startYear="+startYear+"&paymentType="+paymentType+"','_blank','resizeable=yes,scrollbars=yes');\"><img src=\"/common/calculator.gif\" border=\"0\">Open Payment Calculator</a>";
      // Commented by Chris Poirier Oct 3, 2005
      // Was causing a JS error.
      //setVisDispInline('paymentScheduleWarning',getObject('includePaymentSchedule').checked);
      setVisDisp('paymentSchedule',getObject('noteTerm').value != "Demand");
            
      //setVisDisp('borrowerNexecutionBox', (dbcountry == "AU") && (getObject('witness').value != "notary public"));
      //setVisDisp('borrowerNexecutionExp', (dbcountry == "AU") && getVisDisp('borrowerNexecutionBox') && getObject('borrowerNexecution').checked);
      //setVisDisp('borrowerNexecutionBox', (getObject('country').value == "Australia") && (getObject('witness').value != "notary public"));
      //setVisDisp('borrowerNexecutionExp',getObject('country').value == "Australia" && getVisDisp('borrowerNexecutionBox') && getObject('borrowerNexecution').checked);
   chkUKNonCommercial();
      lenderSignDesc();
      //specifyDate();
}

//function specifyDate() {
// if (document.getElementById("agreementDate").value == "specific") setVisDisp("dateDisplay",true);       
//   else setVisDisp('dateDisplay',false);  
//}

function chkUKNonCommercial()
{
   if (dbcountry =="GB")   {
      setVisDisp('ukLenderNonCommercial', true);
      if (document.getElementById("nonCommercialNo").checked)
            {
               setVisDisp('ukBorrowerBusiness', true);
               //document.getElementById("businessPurposeNo").checked = true;
            }
      else
            {
               setVisDisp('ukBorrowerBusiness', false);
            };
   }
   else 
   {
      setVisDisp('ukLenderNonCommercial', false);
      setVisDisp('ukBorrowerBusiness', false);
   }
}




function lenderSignDesc() {
   setVisDisp('lenderJurisdictionBox',getFormObject('promnote','lenderSign')[0].checked || dbcountry == "AU");
   getStyleObject("lenderSigningText").display=(getFormObject('promnote', 'lenderSign')[0].checked || dbcountry == "AU")?"inline":"none";
}

function redivdisplay(divName) {
   if (divName == "contractdetails"){ 

      redisplay(db,'true',divName);
      divdisplay();

      setTopOfPage("0");

   }
   if (divName == "helpdialog") {
      redisplay(db,'false',divName);
      setTopOfPage("0");
   }     
} 

function numBorrowersChanged() {

   var numBorrowers = getObject('numBorrowers').value;

   for( i = 1; i <=4; i++ ) {
      setVisDisp( 'oneBorrower' + i, numBorrowers == 1 );
      setVisDisp( 'multipleBorrower' + i, numBorrowers != 1 );
      setVisDisp('divBorrower' + i, i <= numBorrowers);
   }
}

function wrCurSign() 
{ 
   var pc="";
   var cs="$";

   pc=getFormObject('promnote', 'principalCurrency').value;
   if(pc=='EUR')
   {
      cs='&#8364';
   } else if(pc=='GBP')
   {
      cs='&#163';
   }
   
   getObject('curSign1').innerHTML=cs;
   getObject('curSign2').innerHTML=cs;
}

