//Title:  Search Destinations and Activities
//Version:  1.0
//Copyright:  Copyright (c) 2004
//Author: DLR
//Company:  Rhino Internet

/**
 * Searches for all of the activties for a region
 *
 * <p>
 * <b>Changelog:</b><pre>
 *   1.00  DLR   2004/11/09  created
 * </pre>
 *
 * @author  DLR
 * @version 1.00
 */

// -------------------------------------
//
// variables
//

var regions = new Array();
var activities  = new Array();


// -------------------------------------
//
// regions
//

function addRegion(regionid,name) {
   var idx = regions.length;

   if (regions[idx]==null) {
      regions[idx] = new Region();
   }
   
   regions[idx].regionid = regionid;
   regions[idx].name     = name;
} // addRegion


function Region() {
   this.regionid   = "";
   this.name       = "";
   this.activities = new Array();
} // Region


function addRegionActivities(regionid,actids) {
   for ( aRegionIdx in regions ) {
      var aRegion = regions[aRegionIdx];
      if (aRegion.regionid == regionid){
         aRegion.activities = aRegion.activities.concat(actids);
         break;
      }
   }
} // addRegionActivities


function buildRegionDropDown() {
   document.searchdest.geo_code.options.length = 1;

   var i=1;
   document.searchdest.geo_code.options[0] =
     new Option("All Destinations","");
   document.searchdest.geo_code.options.selectedIndex = 0;

   for ( aRegionIdx in regions ) {
      var aRegion = regions[aRegionIdx];

      document.searchdest.geo_code.options[i] = 
         new Option(aRegion.name, aRegion.regionid);

      //if (aMenu.state==state) {
      //   document.searchdest.geo_code.options.selectedIndex = i;
      //}
      i++;
   }


}

// -------------------------------------
//
// Activities
//

function addActivity(actid,name) {
   var idx = activities.length;

   if (activities[idx]==null) {
      activities[idx] = new Activity();
   }

   activities[idx].actid = actid;
   activities[idx].name  = name;
} // addActivity


function Activity() {
   this.actid  = "";
   this.name   = "";
} // Activity


function buildActivityDropDown() {
   document.searchdest.act_code.options.length = 1;

   var i=1;
   document.searchdest.act_code.options[0] = new Option("All Interests / Activities","");
   document.searchdest.act_code.options.selectedIndex = 0;

   for ( aActivityIdx in activities ) {
      var aActivity = activities[aActivityIdx];

      document.searchdest.act_code.options[i] =
         new Option(aActivity.name, aActivity.actid);

      //if (aMenu.state==state) {
      //   document.searchdest.act_code.options.selectedIndex = i;
      //}
      i++;
   }


} // buildActivityDropDown


function arrayContains(a,v) {
   for (idx in a) {
      if (v==a[idx]) {
         return(idx);
      }
   }
   return(-1);
} // arrayContains


function regionChange() {
   var regionidx = document.searchdest.geo_code.options.selectedIndex;
   var regionid  = document.searchdest.geo_code.options[regionidx].value;

   if (regionid == "") {
      buildActivityDropDown();
      return;
   }

   for ( aRegionIdx in regions ) {
      var aRegion = regions[aRegionIdx];
      if (aRegion.regionid == regionid){
         document.searchdest.act_code.options.length = 1;

         var i=1;
         document.searchdest.act_code.options[0] = new Option("All Interests / Activities","");
         document.searchdest.act_code.options.selectedIndex = 0;

         for ( aActivityIdx in activities ) {
            var aActivity = activities[aActivityIdx];

            if (arrayContains(aRegion.activities,aActivity.actid)>=0) {
               document.searchdest.act_code.options[i] =
                  new Option(aActivity.name, aActivity.actid);

               i++;
            }
         }
         if (i==1) {
         document.searchdest.act_code.options[0] = new Option("** Sorry No Interests / Activities **","");
         }
         break;
      }
   }

} // regionChange


// ------------------------------------
//
// initDocument
//

function initDocument() {

   buildAllRegions();
   buildAllActivities();

   buildRegionDropDown();
   buildActivityDropDown();

   addRegionActivities("-30",[8,60,24,15]);
} // document initializer
