
function getCookie(name) 
{
   var cname = name + "=";               
   var dc = document.cookie;             
   if (dc.length > 0) 
      {
      begin = dc.indexOf(cname);       
        if (begin != -1) 
           {           
            begin += cname.length;       
            end = dc.indexOf(";", begin);
            if (end == -1) {end = dc.length;}
            return unescape(dc.substring(begin, end));
            }
       }
       else
         {  return null;  }
      }
   

function loaddata()
{
    var cookieString = document.cookie;
    var whichCookie = "bucketType";
    bucketType = getCookie(whichCookie);

    whichCookie = "buckets_requested";
    buckets_as_string = getCookie(whichCookie);

    if (buckets_as_string) {selected_buckets = buckets_as_string.split(",");}

 //if (bucketType)
   // {      
    if (bucketType=="Processors") {document.pspbrat.type_buckets.selectedIndex = 0;}
    if (bucketType=="Storage Products") {document.pspbrat.type_buckets.selectedIndex = 1;}
    if (bucketType=="z/OS") {document.pspbrat.type_buckets.selectedIndex = 2;}
    if (bucketType=="Database Products") {document.pspbrat.type_buckets.selectedIndex = 3;}
    if (bucketType=="Middleware Products") {document.pspbrat.type_buckets.selectedIndex = 4;}
    if (bucketType=="Function") {document.pspbrat.type_buckets.selectedIndex= 5;}
   // }

    //set category if selected
    whichCookie = "category";
    category_chosen = unescape(getCookie(whichCookie));
    if ((category_chosen)&&(category_chosen != undefined))
       {
       if (bucketType=="Processors")
          {
          for (i=0;i<category[0].length;i++)
             {
             if ((category_chosen == category[0][i]) & (category[0][i] != undefined))
                  {document.pspbrat.pick_category.selectedIndex = i;}
            // else {document.pspbrat.pick_category.selectedIndex = -1;}
             }
          }
       if (bucketType=="Storage Products")
          {
          for (i=0;i<category[1].length;i++)
             {
             if ((category_chosen == category[1][i]) & (category[1][i] != undefined))
                  {document.pspbrat.pick_category.selectedIndex = i;}
            // else {document.pspbrat.pick_category.selectedIndex = -1;}
             }
          }
       if (bucketType=="z/OS")
          {
          for (i=0;i<category[2].length;i++)
             {
             if ((category_chosen == category[2][i])  & (category[2][i] != undefined))
                {document.pspbrat.pick_category.selectedIndex = i;}
             }
          }
       if (bucketType=="Database Products")
          {
          for (i=0;i<category[3].length;i++)
             {
             if ((category_chosen == category[3][i])  & (category[3][i] != undefined))
                {document.pspbrat.pick_category.selectedIndex = i;}
             }
          }
       if (bucketType=="Middleware Products")
          {
          for (i=0;i<category[4].length;i++)
             {
             if ((category_chosen == category[4][i])  & (category[4][i] != undefined))
                {document.pspbrat.pick_category.selectedIndex = i;}
             }
          }
       if (bucketType=="Function")
          {
          for (i=0;i<category[5].length;i++)
             {
              if ((category_chosen == category[5][i])  & (category[5][i] != undefined)) {document.pspbrat.pick_category.selectedIndex = i;}
             }
          }
       document.pspbrat.pick_category.focus();
       }
    else  // no category selected yet
       {//document.pspbrat.pick_category.selectedIndex = -1;
       }


    //set release if selected
    whichCookie = "release";
    release_chosen = unescape(getCookie(whichCookie));
  //  if (bucketType != "Other")
  //     {
    if ((release_chosen) && (release_chosen.length > 2))
       {
       if (bucketType == "z/OS") 
           {
           for (i=0;i<releaselist_os.length;i++)
             {
               if (release_chosen == releaselist_os[i]) {document.pspbrat.release.selectedIndex = i;}        //close if
             }//close for
           }//close if z/OS
       if ((bucketType == "Database Products")&&(category_chosen == category[3][1])) 
           {
           for (i=0;i<releaselist_ims.length;i++) 
               {
               if (release_chosen == releaselist_ims[i]) {document.pspbrat.release.selectedIndex = i;}
               }
           }
       if ((bucketType == "Database Products")&&(category_chosen == category[3][2])) 
          {
          for (i=0;i<releaselist_db2.length;i++) 
              {
              if (release_chosen == releaselist_db2[i])  {document.pspbrat.release.selectedIndex = i;}
              }
          }

       if ((bucketType == "Database Products")&&(category_chosen == category[3][3])) 
           {
           for (i=0;i<releaselist_cics.length;i++) 
               {
               if (release_chosen == releaselist_cics[i]) {document.pspbrat.release.selectedIndex = i;}
               }
           }


       if ((bucketType == "Middleware Products")&&(category_chosen == category[4][1])) 
           {
           for (i=0;i<releaselist_was.length;i++) 
               {
               if (release_chosen == releaselist_was[i])  {document.pspbrat.release.selectedIndex = i;}
               }
           }
       if ((bucketType == "Middleware Products")&&(category_chosen == category[4][2])) 
           {
           for (i=0;i<releaselist_mq.length;i++) 
               {
               if (release_chosen == releaselist_mq[i]) {document.pspbrat.release.selectedIndex = i;}
               }
           }
       document.pspbrat.release.focus();
       }//close if release_chosen
       else {
          document.pspbrat.release.selectedIndex = -1;
          }  //release_chosen is null or undefined
    //   }//close if bucketType != Other
}
                     
function add_known_bucket() 
{
   var upgrade = document.pspbrat.upgrade.value.toUpperCase();
   var subset = document.pspbrat.subset.value.toUpperCase();
   var pair_not_valid_;
   var the_pair;

   if ((upgrade) && (subset))
      {
      //we have a bucket entry
      for (i=0;i<bucket.length;i++) 
         {
         for (j=0;j<bucket[i].upgrade.length;j++)
            {
            if (upgrade == bucket[i].upgrade[j].upgr_name)
               {
               for (k=0;k<bucket[i].upgrade[j].subset.length;k++)
                  {
                  if (subset == bucket[i].upgrade[j].subset[k].sub_name.substring(0,subset.length))
                     {
                     p = selected_buckets.length;
                     selected_buckets[p] = upgrade + "+" + subset;
                     buckets_to_string = selected_buckets.join(",")
                     document.cookie=("buckets_requested=" + buckets_to_string);
                     alert("The bucket, " + upgrade + "+" + subset + ", was successfully added to the list.");
                     return;
                     }
                  else {
                        //alert("You entered an invalid subset name.");
                        pair_not_valid = true;
                        the_pair = upgrade + "+" + subset;
                        }             
                  } //close for k
               } // close if upgrade = bucket
            else {
                  //alert("You entered an invalid upgrade or device type.");
                  pair_not_valid = true;
                  the_pair = upgrade + "+" + subset;
                  }             
            } //close for j
         } // close for i
      } //close if upgrade and subset
   else
      {
      //pair_not_valid = true;
      //the_pair = upgrade + "+" + subset;
      alert("Please specify both upgrade (or device type) and subset name.");
      }
   if (pair_not_valid) {alert("The data you entered, " + the_pair + ", is not a valid bucket or is not supported by this tool.");}
}

function add_found_bucket()
{
   if (document.pspbrat.upgrade_subset.selectedIndex >= 0)
      {
      p = selected_buckets.length;
      selected_buckets[p] = document.pspbrat.upgrade_subset[document.pspbrat.upgrade_subset.selectedIndex].value;
      buckets_to_string = selected_buckets.join(",")
      document.cookie=("buckets_requested=" + buckets_to_string);
      alert("The bucket you selected, " + document.pspbrat.upgrade_subset[document.pspbrat.upgrade_subset.selectedIndex].value + ", has been added.");
      return;
      }
}

function delete_bucket()
{
   var remove_bucket = document.pspbrat.actual_bucket.selectedIndex;
   var bucket_removed = selected_buckets[remove_bucket]
   if (remove_bucket >= 0)
      {
      selected_buckets.splice(remove_bucket,1);
      buckets_to_string = selected_buckets.join(",")
      document.cookie=("buckets_requested=" + buckets_to_string);
      alert("The selected bucket, " + bucket_removed + ", has been deleted.");
      }
   return;
}


function clear_selections()
{

    document.cookie=("bucketType=b");
    document.cookie=("category=b");
    document.cookie=("release=b");
}

function savedata(state)
{

   if (state == "changeType")
      {
      if (document.pspbrat.type_buckets.selectedIndex == 0) {bucketType = "Processors";}
      if (document.pspbrat.type_buckets.selectedIndex == 1) {bucketType = "Storage Products";}
      if (document.pspbrat.type_buckets.selectedIndex == 2) {bucketType = "z/OS";}
      if (document.pspbrat.type_buckets.selectedIndex == 3) {bucketType = "Database Products";}
      if (document.pspbrat.type_buckets.selectedIndex == 4) {bucketType = "Middleware Products";}
      if (document.pspbrat.type_buckets.selectedIndex == 5) {bucketType = "Function";}
      document.cookie=("bucketType=" + bucketType);
      document.cookie=("category=b");
      document.cookie=("release=b");
      }


   if (state == "changeCategory")
      { 
      whichCookie = "bucketType";
      var currentBucket = getCookie(whichCookie);
      
      //alert("currentBucket = " + currentBucket);
      var whichCategory = document.pspbrat.pick_category.selectedIndex;
      var categoryCookie;
      if (currentBucket == "Processors") {categoryCookie = escape(category[0][whichCategory]);}
      if (currentBucket == "Storage Products") {categoryCookie = escape(category[1][whichCategory]);}
      if (currentBucket == "z/OS") {categoryCookie = escape(category[2][whichCategory]);}
      if (currentBucket == "Database Products") {categoryCookie = escape(category[3][whichCategory]);}
      if (currentBucket == "Middleware Products") {categoryCookie = escape(category[4][whichCategory]);}
      if (currentBucket == "Function")    {categoryCookie = escape(category[5][whichCategory]);}
      document.cookie=("category=" + categoryCookie);
      if ((currentBucket == "Processors")||(currentBucket == "Storage Products")||(currentBucket == "Function")) 
          {document.cookie=("release=all releases");}
      else {document.cookie=("release=b");}
      }

   if (state == "changeRelease")
      {
      var nowwhichCookie = "category";
      var now_category_chosen = getCookie(nowwhichCookie);
      var releaseCookie;
      var whichRelease = document.pspbrat.release.selectedIndex;
      if ((bucketType == "z/OS")||(bucketType == "Database Products")||(bucketType == "Middleware Products"))
         {
          if (bucketType == "z/OS") {releaseCookie = releaselist_os[whichRelease];}
          if ((bucketType == "Database Products")&&(now_category_chosen == "DB2")) 
              {
              if (whichRelease == releaselist_db2.length) {releaseCookie = "all releases";}
              else {releaseCookie = releaselist_db2[whichRelease];}
              }
          if ((bucketType == "Database Products")&&(now_category_chosen == "IMS")) 
              {
              if (whichRelease == releaselist_ims.length) {releaseCookie = "all releases";}
               else {releaseCookie = releaselist_ims[whichRelease];}
               }
          if ((bucketType == "Database Products")&&(now_category_chosen == "DB2 Tools")) 
              {
              if (whichRelease == releaselist_db2.length) {releaseCookie = "all releases";}
              else {releaseCookie = releaselist_db2[whichRelease];}
              }
          if ((bucketType == "Database Products")&&(now_category_chosen == "IMS Tools")) 
              {
              if (whichRelease == releaselist_ims.length) {releaseCookie = "all releases";}
               else {releaseCookie = releaselist_ims[whichRelease];}
               }
          if ((bucketType == "Database Products")&&(now_category_chosen == "CICS")) 
              {
              if (whichRelease == releaselist_cics.length) {releaseCookie = "all releases";}
               else {releaseCookie = releaselist_cics[whichRelease];}
               }
          if ((bucketType == "Middleware Products")&&(now_category_chosen == "Websphere Application Server")) {releaseCookie = releaselist_was[whichRelease];}
          if ((bucketType == "Middleware Products")&&(now_category_chosen == "MQ Series")) {releaseCookie = releaselist_mq[whichRelease];}
          if (whichRelease == releaselist_db2.length+releaselist_ims.length+releaselist_cics.length) 
              {releaseCookie = "all releases";}
         } 
      else {releaseCookie = releaselist_os[0];} // for "Function" indicate release = all releases          
      document.cookie= ("release=" + escape(releaseCookie));
   }
   return;
}



/**************************************************************************************************/
/**************************************************************************************************/
      //********************  
      //********************
      /*
      here is the building block function for all created windows.
      this function is meant to be layered, for example create_new_window() calls create_window()
      
      the parameters:
            url: the windows url that is to be created
            window_name: the name of the window
            window_features: the windows specified features
      
      note that these functions are also included in index_wizlib.
      */
      function create_window(url, window_name, window_features) { 
         remote = window.open(url, window_name,window_features);
         remote.opener.name = "opener";
         remote.focus();
      }
/**************************************************************************************************/
/**************************************************************************************************/
      //********************  
      //********************
      /*
      create_new_window calls create_window.
      this function is layered to simplify the wizard designers use.
      all the designer needs to pass in is the url of the new window, 
      and this function will take care of the rest.
         
      the parameters:
            url: the url of the window thats to be opened 
      */
      function create_new_window(url) {
         create_window(url, "remoteWin", "WIDTH=630,HEIGHT=550,resizable=1,menubar=0,status=0,scrollbars=1");
      }
/**************************************************************************************************/
/**************************************************************************************************/
      //********************  
      //********************
      /*
      create_info_window calls create_window.
      this function is layered to simplify the wizard designers use.
      all the designer needs to pass in is the url of the new window, 
      and this function will take care of the rest.      
      differs from create_new_window by menubar, status
                                                                   
      the parameters:
            url: its just the url of the window thats to be opened 
      */
      function create_info_window(url) {
         remote = window.open(url,"create_info_window","width=640,height=480,resizable=1,menubar=1,status=1,scrollbars=1");
         remote.opener.name = "opener1";
         remote.focus();
      }
/**************************************************************************************************/
/**************************************************************************************************/
