  offer_url = '/download/?tid=wizard';
  
  options = new Array();
  
  options['os'] = {
      'Windows':
          ['2000', 'XP', 'XP 64-bit', 'Vista', 'Vista 64-bit', 'Server 2003'],
      'Manufacturer':
          ['HP', 'Dell', 'Toshiba', 'Compaq', 'Acer', 'Asus', 'IBM', 'Lenovo', 'Gateway']
  };

  options['categories'] = {
      'Internal hardware':
          ['Video', 'Sound', 'Motherboard/Chipset', 'DVD', 'CD', 'Other'],
      'Networking':
          ['Wireless', 'Ethernet'],
      'Peripherals':
          ['Monitor', 'Webcam', 'Printer']
  };


  options['manufacturers'] = {
      'Video':
          ['ATI (all models incl. Radeon)', 'NVIDIA (all models incl. Geforce)', 'Intel (integrated GMA)', 'Matrox', 'Other (Universal)'],
      'Sound':
          ['AC97', 'Realtek', 'Creative Soundblaster', 'Creative X-Fi', 'Creative Live', 'M-Audio', 'C-Media', 'Other (Universal)'],
      'Motherboard/Chipset':
          ['Intel', 'SiS', 'ASUS', 'MSI', 'Gigabyte', 'VIA', 'Other (Universal)'],
      'DVD':
          ['Plextor', 'Samsung', 'Pioneer', 'Lite-on', 'LG', 'Other (Universal)'],
      'CD':
          ['Plextor', 'Samsung', 'Pioneer', 'Lite-on', 'LG', 'Other (Universal)'],
      'Other':
          ['Generic (Universal)'],
      'Wireless':
          ['All Bluetooth devices', 'D-Link', 'Linksys', 'Broadcom', 'Belkin', 'Atheros', 'US Robotics', 'Other (Universal)'],
      'Ethernet':
          ['Intel', 'Marvell / Yukon', 'Realtek', 'NFORCE', 'Broadcom (incl. NetXtreme)', 'D-Link', 'Linksys', '3com', 'Other (Universal)'],
            'Monitor':
                    ['BenQ', 'Acer', 'Dell', 'Samsung', 'LG', 'Sony', 'Apple', 'Sceptre', 'Viewsonic', 'Panasonic', 'Philips', 'NEC', 'Sanyo', 'Other (Universal)'],
      'Webcam':
          ['Logitech', 'Creative', 'Other (Universal)'],
      'Printer':
          ['HP', 'Epson', 'Canon', 'Brother', 'Lexmark', 'Samsung', 'Konica Minolta', 'Other (Universal)']
  };
    
function $(id)
{
  return document.getElementById(id);
}

function clearSelect(targetID) {
    var oTarget = $(targetID);
    oTarget.innerHTML = '';
}


function populateContextual(sourceID, targetID)
{
    //console.log("Populating " + targetID + " from " + sourceID);
    
    //Get Source and target elements
    var source = $(sourceID);
    var target = $(targetID);
    
    //dousche out old target options
    target.innerHTML = "";
    
    //Determine which option is selected
    var nSrcIndex = source.selectedIndex;
    
    //generate the header optgroup
    var group = document.createElement('optgroup');
    group.label = source.options[nSrcIndex].innerHTML;
    
    //Iterate over options for selected group
    for (i in options[targetID][group.label])
    {
        var optionID = options[targetID][group.label][i];
        var childOption = document.createElement('option');
        childOption.innerHTML = optionID;
        group.appendChild(childOption);
        
    }
      
    target.appendChild(group);
    return true;
}


function populateStatic(targetID)
{
    var target = $(targetID);
    
    //dousche out old target options
    target.innerHTML = "";
       
    //Iterate over groups
    for (groupID in options[targetID]){
      
      var group = document.createElement('optgroup');
      group.label = groupID;

      for (optionID in options[targetID][groupID]) {
        var childOption = new Option();
        childOption.innerHTML = options[targetID][groupID][optionID];
        group.appendChild(childOption);
      }
      target.appendChild(group);
    }
    
    return true;
}



function colorFade(objectID, red1, green1, blue1, red2, green2, blue2, millisec)
{

  
  var obj = $(objectID);
  
  var speed = Math.round(millisec / 100);

  //Red Calcs
  var red_diff;
  var math_red;
  var step_red;

  red_diff = (red1 - red2);
  
  if (red_diff > -1) {
    math_red = -1;
    step_red = red_diff/255;
  }
  if (red_diff < 0) {
    red_diff = (red2 - red1);
    math_red = 1;
    step_red = red_diff/255;
  }
  
  
  //Green Calcs
  var green_diff;
  var math_green;
  var step_green;

  green_diff = (green1 - green2);
  if (green_diff > -1) {
    math_green = -1;
    step_green = green_diff/255;
  }
  if (green_diff < 0) {
    green_diff = (green2 - green1);
    math_green = 1;
    step_green = green_diff/255;
  }


  //Blue Calcs
  var blue_diff;
  var math_blue;
  var step_blue;
  
  blue_diff = (blue1 - blue2);
  if (blue_diff > -1) {
    math_blue = -1;
    step_blue = blue_diff/255;
  }
  if (blue_diff < 0) {
    blue_diff = (blue2 - blue1);
    math_blue = 1;
    step_blue = blue_diff/255;
  }
  
  
  
  for (i = 1; i < 256; i += 1) {

    if (math_red == -1) {red1 -= step_red;} //check whether to add or subtract
    if (math_red == 1) {red1 += step_red;}
    if (math_green == -1) {green1 -= step_green;}
    if (math_green == 1) {green1 += step_green;}
    if (math_blue == -1) {blue1 -= step_blue;}
    if (math_blue == 1) {blue1 += step_blue;}
    
    var red_round = Math.round(red1);
    var green_round = Math.round(green1);
    var blue_round = Math.round(blue1);
    
    setTimeout("changeColor("+"'dlabel'"+","+red_round+","+green_round+","+blue_round+")", i*speed);
  }
}

function changeColor(objectID, red, green, blue) {
    obj = $(objectID);
    obj.style.color = 'rgb('+red+','+green+','+blue+')'
    
}
 

function linkLabel(link, text) {
  var link = $('dlabel');
    link.style.color = 'white';
    link.innerHTML = text;
    colorFade('dlabel', 255, 255, 255, 0, 0, 255, 120);
    
}

function dolink(){
  var link = $('dlabel');
  var os = $('os');
  var categories = $('categories');
  var manufacturers = $('manufacturers');
  
  //get selected options
  var nOsIndex = os.selectedIndex;
  var nCatIndex = categories.selectedIndex;
  var nManuIndex = manufacturers.selectedIndex;
  
  if (nManuIndex >= 0) {
    linkText = "Download " 
                + manufacturers[nManuIndex].innerHTML 
                + " " 
                + categories[nCatIndex].innerHTML
                + " Drivers for "
                + os[nOsIndex].innerHTML;
  }
  else if (nCatIndex >= 0) {
    linkText = "Download "
               + categories[nCatIndex].innerHTML
               + " Drivers for "
               + os[nOsIndex].innerHTML;
  }
  else {
    linkText = "Download "
               + os[nOsIndex].innerHTML
               + " Drivers"
  }
  
  
   //colorFade('dlabel', 0, 0, 255, 255, 255, 255, 250)
   setTimeout("linkLabel('dlabel', linkText)", 0);
   
   

   
}