  offer_url = '/download/';
  options = new Array();
   options['os'] = 
          ['Mom', 'Dad', 'Brother', 'Sister', 'Friend', 'Mom'];
		  
  options['categories'] = {
      'Store':
          ['Walmart', 'KMart', 'Amazon', 'Egg', 'Overstock', 'Office Depot', 'JCPenney', 'Other stores...']
      
  };
  options['manufacturers'] = {
      'Walmart':
          ['Free Shipping', '50% Off', 'Buy 1 Get 1 Free', 'Overnight Shipping Free', 'Samples', 'and more...'],
      'KMart':
          ['Free Shipping', '50% Off', 'Buy 1 Get 1 Free', 'Overnight Shipping Free', 'Samples', 'and more...'],
      'Amazon':
          ['Free Shipping', '50% Off', 'Buy 1 Get 1 Free', 'Overnight Shipping Free', 'Samples', 'and more...'],
      'Egg':
          ['Free Shipping', '50% Off', 'Buy 1 Get 1 Free', 'Overnight Shipping Free', 'Samples', 'and more...'],
      'Overstock':
          ['Free Shipping', '50% Off', 'Buy 1 Get 1 Free', 'Overnight Shipping Free', 'Samples', 'and more...'],
      'Office Depot':
          ['Free Shipping', '50% Off', 'Buy 1 Get 1 Free', 'Overnight Shipping Free', 'Samples', 'and more...'],
      'JCPenney':
          ['Free Shipping', '50% Off', 'Buy 1 Get 1 Free', 'Overnight Shipping Free', 'Samples', 'and more...'],
      'Other stores...':
          ['Free Shipping', '50% Off', 'Buy 1 Get 1 Free', 'Overnight Shipping Free', 'Samples', 'and more...']
  };
  <!--Return Id and  -->
function $(id)
{
  return document.getElementById(id);
}

function clearSelect(targetID) {
    var oTarget = $(targetID);
    oTarget.innerHTML = '';
}
function populateContextual(sourceID, targetID)
{
    var source = $(sourceID);
    var target = $(targetID);
    target.innerHTML = "";
    var nSrcIndex = source.selectedIndex;

    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
                + " coupons for "
                + os[nOsIndex].innerHTML;
  }
  else if (nCatIndex >= 0) {
    linkText = "Download "
               + categories[nCatIndex].innerHTML
               + " coupons for "
               + os[nOsIndex].innerHTML;
  }
  else {
    linkText = "Download "
               + os[nOsIndex].innerHTML
               + " coupons"
  }
   //colorFade('dlabel', 0, 0, 255, 255, 255, 255, 250)
   setTimeout("linkLabel('dlabel', linkText)", 0);
}