//**********************************************************************************
function setOptions(selectedValue, frmObj, dd1OptionObj, dd2OptionObj, dd2Selected)  {
   dd2OptionObj.options.length = 0;
   dd2SelectedNum = 0
   internalCount     = 1

   dd1Arr        = dd1dd2Arr[0];
   dd1ArrDisp    = dd1dd2Arr[1];
   dd2Arr        = dd1dd2Arr[2];
   dd2ArrDisp    = dd1dd2Arr[3];
   dd2OptionObj.options[dd2OptionObj.options.length] = new Option( "City" , "" ); // adds a blank one at the top
   for ( var x = 0 ; x < dd1Arr.length  ; x++ ) {

      if ( dd1Arr[x] == selectedValue && dd2Arr[x] != "") {
         dd2OptionObj.options[dd2OptionObj.options.length] = new Option( dd2ArrDisp[x], dd2Arr[x] );

         if ( dd2Arr[x] == dd2Selected) {
            dd2SelectedNum = internalCount;
         }
         internalCount++;
      }
   }
    
   if ( dd2SelectedNum > 0 ) {
      dd2OptionObj.options.selectedIndex = dd2SelectedNum;
   } else {
      dd2OptionObj.options.selectedIndex = 0;
   }
}

//**********************************************************************************
function setOptions2(selectedValue, frmObj, dd1OptionObj, dd2OptionObj, dd2Selected, dd3OptionObj, dd3Selected)  {
   dd2OptionObj.options.length = 0;
   dd3OptionObj.options.length = 0;

   dd2SelectedNum    = 0
   dd3SelectedNum    = 0
   internalCount     = 1
   internalCount1    = 1
   dd3ArrayProcessed = new Array(0);

   dd1Arr      = dd1dd2dd3Arr[0];
   dd1ArrDisp  = dd1dd2dd3Arr[1];
   dd2Arr      = dd1dd2dd3Arr[2];
   dd2ArrDisp  = dd1dd2dd3Arr[3];
   dd3Arr      = dd1dd2dd3Arr[4];
   dd3ArrDisp  = dd1dd2dd3Arr[5];
   
   dd2OptionObj.options[dd2OptionObj.options.length] = new Option( "Please Select" , "" );
   dd3OptionObj.options[dd3OptionObj.options.length] = new Option( "Please Select" , "" ); 
   
   //==================================================================//

   var dd2ValTemp = "";      

   for ( var x = 0 ; x < dd1Arr.length  ; x++ ) {
      if ( dd1Arr[x] == selectedValue && dd2Arr[x] != "") {

      	if(dd2ValTemp != dd2Arr[x])
         {
            dd2OptionObj.options[dd2OptionObj.options.length] = new Option( dd2ArrDisp[x], dd2Arr[x] );
            
            if ( dd2Arr[x] == dd2Selected) {
               dd2SelectedNum = internalCount;
            }
            internalCount++;
         }
      }
      dd2ValTemp = dd2Arr[x];
   }
    
   if ( dd2SelectedNum > 0 ) {
      dd2OptionObj.options.selectedIndex = dd2SelectedNum;
   } else {
      dd2OptionObj.options.selectedIndex = 0;
   }

   //==================================================================//

   for ( var x = 0 ; x < dd1Arr.length  ; x++ ) {
   
      if ( dd1Arr[x] == selectedValue && 
           dd3ArrayProcessed.inArray(dd3Arr[x]) == false &&
           dd3Arr[x] != ""
         ) 
      {
            dd3OptionObj.options[dd3OptionObj.options.length] = new Option( dd3ArrDisp[x], dd3Arr[x] );
            
            if ( dd3Arr[x] == dd3Selected) {
               dd3SelectedNum = internalCount1;
            }
            dd3ArrayProcessed[x] = dd3Arr[x];
            internalCount1++;
      }
   }
    
   if ( dd3SelectedNum > 0 ) {
      dd3OptionObj.options.selectedIndex = dd3SelectedNum;
   } else {
      dd3OptionObj.options.selectedIndex = 0;
   }
   
   //==================================================================//
}

Array.prototype.inArray = function (value)
// Returns true if the passed value is found in the
// array.  Returns false if it is not.
{
    var i;
    for (i=0; i < this.length; i++) {
        // Matches identical (===), not just similar (==).
        if (this[i] === value) {
            return true;
        }
    }
    return false;
};

//===================================================================//
function setDropDowns(formName, field1, field2, field2Selected )
{
   var frmObj = document.forms[formName];
   var obj1   = frmObj[field1] ;
   var obj2   = frmObj[field2] ;
   setOptions(obj1.options[obj1.options.selectedIndex].value, frmObj, obj1, obj2, field2Selected);
}

//===================================================================//
function setDropDowns2(formName, field1, field2, field2Selected, field3, field3Selected )
{
   var frmObj = document.forms[formName];
   var obj1   = frmObj[field1] ;
   var obj2   = frmObj[field2] ;
   var obj3   = frmObj[field3] ;

   setOptions2(obj1.options[obj1.options.selectedIndex].value, frmObj, obj1, obj2, field2Selected, obj3, field3Selected );
}
//===================================================================//
