var arrAcct       = new Array()
var arrLoc        = new Array()
var arrAcctSelect = new Array()

var acctItem     = null
var acctFormItem = null

function objAcct(acct,
                 name )
{
  this.acct = acct
  this.name = name
}


function objLoc(acct,
                loc,
                nameplus,
                addr,
                city,
                state,
                zip,
                country,
                type )
{
  this.acct     = acct
  this.loc    	 = loc
  this.nameplus = nameplus
  this.addr     = addr
  this.city     = city  
  this.state    = state
  this.zip      = zip
  this.country  = country
  this.type     = type
}


function objAcctSelect(item,
                       fitem)
{
  this.item  = item
  this.fitem = fitem  
}


function compareAcctName(a, b) {
   if (a.acct < b.acct) { return -1 }
   if (a.acct > b.acct) { return 1 }

   if (a.acct == b.acct) {
     if (a.name < b.name) { return -1 }
     if (a.name > b.name) { return 1 }
   }   
   return 0
}


function compareLocNumber(a, b) {
   if (a.acct < b.acct) { return -1 }
   if (a.acct > b.acct) { return 1 }

   if (a.acct == b.acct) {
     if (a.loc < b.loc) { return -1 }
     if (a.loc > b.loc) { return 1 }
   }   
   return 0
}


function compareStCityLoc(a, b) {
   if (a.state < b.state) { return -1 }
   if (a.state > b.state) { return 1 }

   if (a.state == b.state) {
     if (a.city < b.city) { return -1 }
     if (a.city > b.city) { return 1 }

     if (a.city == b.city) {
       if (a.addr < b.addr) { return -1 }
       if (a.addr > b.addr) { return 1 }
     }
   }
   return 0
}


function compareCityStLoc(a, b) {
   if (a.city < b.city) { return -1 }
   if (a.city > b.city) { return 1 }

   if (a.city == b.city) {
     if (a.state < b.state) { return -1 }
     if (a.state > b.state) { return 1 }

     if (a.state == b.state) {
       if (a.addr < b.addr) { return -1 }
       if (a.addr > b.addr) { return 1 }
     } 
   }   
   return 0
}


function buildAcctSelect(seq,fName,aName,blnM) {   
  var strSub = ""
  
  if ((blnM)&&(seq != 0)) { strSub = "["+seq+"]" }
  else { seq = 0 }

  document.write("<SELECT NAME=\""+aName+"\" SIZE=1 CLASS=\"formTxt\" ONCHANGE=\"updateAcctData("+seq+","+blnM+")\">")
  document.write("<OPTION>(locations not available -- enter required information)</OPTION>")
  document.write("<OPTION></OPTION>")
  document.write("<OPTION></OPTION>")
  document.write("<OPTION></OPTION>")
  document.write("<OPTION></OPTION>")
  document.write("<OPTION></OPTION>")
  document.write("<OPTION></OPTION>")
  document.write("</SELECT>")

  acctItem     = null  
  acctFormItem = null

  eval("acctItem = document."+fName+"."+aName+strSub)
  eval("acctFormItem = document."+fName)    

  arrAcctSelect[seq] = new objAcctSelect(acctItem,acctFormItem)
}


function buildAcctSelectWin(fName,aName) {

  document.write("<SELECT NAME=\""+aName+"\" SIZE=5 CLASS=\"formTxt\" ONCHANGE=\"updateLocationWin()\">")
  document.write("<OPTION>(locations not available -- enter required information)</OPTION>")
  document.write("<OPTION></OPTION>")
  document.write("<OPTION></OPTION>")
  document.write("<OPTION></OPTION>")
  document.write("<OPTION></OPTION>")
  document.write("<OPTION></OPTION>")
  document.write("<OPTION></OPTION>")
  document.write("</SELECT>")

  acctItem     = null  
  acctFormItem = null
  
  eval("acctItem = document."+fName+"."+aName)
  eval("acctFormItem = document."+fName)    

  arrAcctSelect[0] = new objAcctSelect(acctItem,acctFormItem)
}


function updateAcctSelect(seq,defAcct,defLoc) {
  var strVal  = ""
  var strCode = ""
  var strPrev = ""
  
  var intZ = 0
  var x = 0
  
  arrLoc.sort(compareStCityLoc)
  arrAcctSelect[seq].item.options.length = 0
  arrAcctSelect[seq].item.options[0] = new Option("(select from your locations)","")

  for (var z = 0; z < arrLoc.length; z++) {
    strVal = arrLoc[z].addr.substring(0,15) + ", " + arrLoc[z].city.substring(0,15) + " ," + arrLoc[z].state
    if (strVal != strPrev) {
      strPrev = strVal
      strCode = arrLoc[z].acct+arrLoc[z].loc
  
      arrAcctSelect[seq].item.options[x+1] = new Option(strVal,strCode)

      x++
  
      if ((arrLoc[z].acct == defAcct)&&(arrLoc[z].loc == defLoc)) { intZ = x }
    }
  }    
  
  arrAcctSelect[seq].item.options[intZ].selected = true
}


function clearSelect(seq) {
  arrAcctSelect[seq].item.options.length = 0
  arrAcctSelect[seq].item.options[0] = new Option("(locations not available -- enter required information)","")
  clearData(seq,true)
}


function clearData(seq,blnM) {
  if (blnM) {      
    if (typeof arrAcctSelect[seq].fitem.txtAcctName[seq] != "undefined") { arrAcctSelect[seq].fitem.txtAcctName[seq].value  = "" }

    if (typeof arrAcctSelect[seq].fitem.txtAcctAddr[seq] != "undefined") { arrAcctSelect[seq].fitem.txtAcctAddr[seq].value = "" }
    if (typeof arrAcctSelect[seq].fitem.txtAcctCity[seq] != "undefined") { arrAcctSelect[seq].fitem.txtAcctCity[seq].value  = "" }
    if (typeof arrAcctSelect[seq].fitem.txtAcctZip[seq] != "undefined") { arrAcctSelect[seq].fitem.txtAcctZip[seq].value = "" }     
    if (typeof arrAcctSelect[seq].fitem.txtAcctNumber[seq] != "undefined") { arrAcctSelect[seq].fitem.txtAcctNumber[seq].value = "" }         
    if (typeof arrAcctSelect[seq].fitem.txtAcctLoc[seq] != "undefined") { arrAcctSelect[seq].fitem.txtAcctLoc[seq].value = "" }                   
    
    updateStateList("US","",arrAcctSelect[seq].fitem.cboAcctState[seq])    
    arrAcctSelect[seq].fitem.cboAcctCountry[seq].options[getCtyIdx("US")].selected = 1
  }
  else {
    if (typeof arrAcctSelect[seq].fitem.txtAcctName != "undefined") { arrAcctSelect[seq].fitem.txtAcctName.value = "" }

    if (typeof arrAcctSelect[seq].fitem.txtAcctAddr != "undefined") { arrAcctSelect[seq].fitem.txtAcctAddr.value = "" }
    if (typeof arrAcctSelect[seq].fitem.txtAcctCity != "undefined") { arrAcctSelect[seq].fitem.txtAcctCity.value = "" }
    if (typeof arrAcctSelect[seq].fitem.txtAcctZip != "undefined") { arrAcctSelect[seq].fitem.txtAcctZip.value = "" }
    if (typeof arrAcctSelect[seq].fitem.txtAcctNumber != "undefined") { arrAcctSelect[seq].fitem.txtAcctNumber.value = "" }
    if (typeof arrAcctSelect[seq].fitem.txtAcctLoc != "undefined") { arrAcctSelect[seq].fitem.txtAcctLoc.value = "" }

    updateStateList("US","",arrAcctSelect[seq].fitem.cboAcctState)    
    arrAcctSelect[seq].fitem.cboAcctCountry.options[getCtyIdx("US")].selected = 1
  }
}

function updateAcctData(seq,blnM) {
  var acct = arrAcctSelect[seq].item.options[arrAcctSelect[seq].item.options.selectedIndex].value.substring(0,6)
  var loc  = arrAcctSelect[seq].item.options[arrAcctSelect[seq].item.options.selectedIndex].value.substring(6,10)    
  
  var cty = getLocCountry(acct,loc)
  var st = getLocState(acct,loc)

  if (blnM) {
    if (typeof arrAcctSelect[seq].fitem.txtAcctName[seq] != "undefined") { arrAcctSelect[seq].fitem.txtAcctName[seq].value  = getAcctName(acct) }

    if (typeof arrAcctSelect[seq].fitem.txtAcctAddr[seq] != "undefined") { arrAcctSelect[seq].fitem.txtAcctAddr[seq].value = getLocAddr(acct,loc) }
    if (typeof arrAcctSelect[seq].fitem.txtAcctCity[seq] != "undefined") { arrAcctSelect[seq].fitem.txtAcctCity[seq].value  = getLocCity(acct,loc) }
    if (typeof arrAcctSelect[seq].fitem.txtAcctZip[seq] != "undefined") { arrAcctSelect[seq].fitem.txtAcctZip[seq].value   = getLocZip(acct,loc) }
    if (typeof arrAcctSelect[seq].fitem.txtAcctNumber[seq] != "undefined") { arrAcctSelect[seq].fitem.txtAcctNumber[seq].value   = acct }
    if (typeof arrAcctSelect[seq].fitem.txtAcctLoc[seq] != "undefined") { arrAcctSelect[seq].fitem.txtAcctLoc[seq].value   = loc }
     
    if (typeof arrAcctSelect[seq].fitem.cboAcctState[seq] != "undefined") {
      if (typeof arrAcctSelect[seq].fitem.cboAcctCountry[seq] != "undefined") {
        if (cty == arrAcctSelect[seq].fitem.cboAcctCountry[seq].options[arrAcctSelect[seq].fitem.cboAcctCountry[seq].options.selectedIndex].value) {
          arrAcctSelect[seq].fitem.cboAcctState[seq].options[getStIdx(st,cty,true)].selected = 1
        }
        else {
          arrAcctSelect[seq].fitem.cboAcctCountry[seq].options[getCtyIdx(cty)].selected = 1
          updateStateList(cty,st,arrAcctSelect[seq].fitem.cboAcctState[seq])
        }
      }
    }
  }
  else {
    if (typeof arrAcctSelect[seq].fitem.txtAcctName != "undefined") { arrAcctSelect[seq].fitem.txtAcctName.value  = getAcctName(acct) }

    if (typeof arrAcctSelect[seq].fitem.txtAcctAddr != "undefined") { arrAcctSelect[seq].fitem.txtAcctAddr.value = getLocAddr(acct,loc) }
    if (typeof arrAcctSelect[seq].fitem.txtAcctCity != "undefined") { arrAcctSelect[seq].fitem.txtAcctCity.value  = getLocCity(acct,loc) }
    if (typeof arrAcctSelect[seq].fitem.txtAcctZip != "undefined") { arrAcctSelect[seq].fitem.txtAcctZip.value   = getLocZip(acct,loc) }
    if (typeof arrAcctSelect[seq].fitem.txtAcctNumber != "undefined") { arrAcctSelect[seq].fitem.txtAcctNumber.value   = acct }
    if (typeof arrAcctSelect[seq].fitem.txtAcctLoc != "undefined") { arrAcctSelect[seq].fitem.txtAcctLoc.value   = loc }
    
    if (typeof arrAcctSelect[seq].fitem.cboAcctState != "undefined") {
      if (typeof arrAcctSelect[seq].fitem.cboAcctCountry != "undefined") {
        if (cty == arrAcctSelect[seq].fitem.cboAcctCountry.options[arrAcctSelect[seq].fitem.cboAcctCountry.options.selectedIndex].value) {
          arrAcctSelect[seq].fitem.cboAcctState.options[getStIdx(st,cty,true)].selected = 1
        }
        else {
          arrAcctSelect[seq].fitem.cboAcctCountry.options[getCtyIdx(cty)].selected = 1
          updateStateList(cty,st,arrAcctSelect[seq].fitem.cboAcctState)
        }
      }
    }
  }
}


function getAcctName(acct) {   
  for (var z = 0; z < arrAcct.length; z++) {    
    if (arrAcct[z].acct == acct) { return arrAcct[z].name }
  }
  return ""
}


function getLocNamePlus(acct,loc) {
  for (var z = 0; z < arrLoc.length; z++) {
    if ((arrLoc[z].acct == acct)&&(arrLoc[z].loc == loc)) { return arrLoc[z].nameplus }
  }
  return ""
}


function getLocAddr(acct,loc) {
  for (var z = 0; z < arrLoc.length; z++) {
    if ((arrLoc[z].acct == acct)&&(arrLoc[z].loc == loc)) { return arrLoc[z].addr }
  }
  return ""
}


function getLocCity(acct,loc) {
  for (var z = 0; z < arrLoc.length; z++) {
    if ((arrLoc[z].acct == acct)&&(arrLoc[z].loc == loc)) { return arrLoc[z].city }
  }
  return ""
}


function getLocState(acct,loc) {
  for (var z = 0; z < arrLoc.length; z++) {
    if ((arrLoc[z].acct == acct)&&(arrLoc[z].loc == loc)) { return arrLoc[z].state }
  }
  return ""  
}


function getLocZip(acct,loc) { 
  for (var z = 0; z < arrLoc.length; z++) {    
    if ((arrLoc[z].acct == acct)&&(arrLoc[z].loc == loc)) { return arrLoc[z].zip }
  }
  return ""
}


function getLocCountry(acct,loc) {
  for (var z = 0; z < arrLoc.length; z++) {
    if ((arrLoc[z].acct == acct)&&(arrLoc[z].loc == loc)) { return arrLoc[z].country }
  }
  return ""
}  
  

function changedAcctLoc(seq,acct,loc,blnM) {
  for (var z = 0; z < arrLoc.length; z++) {
    if ((arrLoc[z].acct == acct)&&(arrLoc[z].loc == loc)) {
      if (blnM) {
        if (typeof arrAcctSelect[seq].fitem.txtAcctName[seq] != "undefined") {
          if (arrAcctSelect[seq].fitem.txtAcctName[seq].value != getAcctName(acct)) { return true }
        }
        if (typeof arrAcctSelect[seq].fitem.txtAcctAddr[seq] != "undefined") {
          if (arrAcctSelect[seq].fitem.txtAcctAddr[seq].value != arrLoc[z].addr) { return true }
        }
        if (typeof arrAcctSelect[seq].fitem.txtAcctCity[seq] != "undefined") {
          if (arrAcctSelect[seq].fitem.txtAcctCity[seq].value != arrLoc[z].city) { return true }
        }
        if (typeof arrAcctSelect[seq].fitem.txtAcctZip[seq] != "undefined") {
          if (arrAcctSelect[seq].fitem.txtAcctZip[seq].value != arrLoc[z].zip) { return true }
        }
        if (typeof arrAcctSelect[seq].fitem.txtAcctNumber[seq] != "undefined") {
          if (arrAcctSelect[seq].fitem.txtAcctNumber[seq].value != acct) { return true }
        }
        if (typeof arrAcctSelect[seq].fitem.txtAcctLoc[seq] != "undefined") {
          if (arrAcctSelect[seq].fitem.txtAcctLoc[seq].value != loc) { return true }
        }
        if (typeof arrAcctSelect[seq].fitem.cboAcctCountry[seq] != "undefined") {
          if (arrAcctSelect[seq].fitem.cboAcctCountry[seq].options[arrAcctSelect[seq].fitem.cboAcctCountry[seq].options.selectedIndex].value != arrLoc[z].country) { return true }
        }
        if (typeof arrAcctSelect[seq].fitem.cboAcctState[seq] != "undefined") {
          if (arrAcctSelect[seq].fitem.cboAcctState[seq].options[arrAcctSelect[seq].fitem.cboAcctState[seq].options.selectedIndex].value != arrLoc[z].state) { return true }
        }
      }
      else {
        if (typeof arrAcctSelect[seq].fitem.txtAcctName != "undefined") {
          if (arrAcctSelect[seq].fitem.txtAcctName.value != getAcctName(acct)) { return true }
        }
        if (typeof arrAcctSelect[seq].fitem.txtAcctAddr != "undefined") {
          if (arrAcctSelect[seq].fitem.txtAcctAddr.value != arrLoc[z].addr) { return true }
        }
        if (typeof arrAcctSelect[seq].fitem.txtAcctCity != "undefined") {
          if (arrAcctSelect[seq].fitem.txtAcctCity.value != arrLoc[z].city) { return true }
        }
        if (typeof arrAcctSelect[seq].fitem.txtAcctZip != "undefined") {
          if (arrAcctSelect[seq].fitem.txtAcctZip.value != arrLoc[z].zip) { return true }
        }
        if (typeof arrAcctSelect[seq].fitem.txtAcctNumber != "undefined") {
          if (arrAcctSelect[seq].fitem.txtAcctNumber.value != acct) { return true }
        }
        if (typeof arrAcctSelect[seq].fitem.txtAcctLoc != "undefined") {
          if (arrAcctSelect[seq].fitem.txtAcctLoc.value != loc) { return true }
        }
        if (typeof arrAcctSelect[seq].fitem.cboAcctCountry != "undefined") {
          if (arrAcctSelect[seq].fitem.cboAcctCountry.options[arrAcctSelect[seq].fitem.cboAcctCountry.options.selectedIndex].value != arrLoc[z].country) { return true }
        }
        if (typeof arrAcctSelect[seq].fitem.cboAcctState != "undefined") {
          if (arrAcctSelect[seq].fitem.cboAcctState.options[arrAcctSelect[seq].fitem.cboAcctState.options.selectedIndex].value != arrLoc[z].state) { return true }
        }
      }
    }
  }
  return false
}