var sub_category_handler = new subCategoryHandler ();
var size_handler = new sizeHandler ();


/**
* SUB CATEGORY LOOKUP
**/
function subCategoryRequest () {
  var category_node = document.forms['refine'].elements['category'];
  
  if (category_node.value == '') {
    var sub_category_node = document.forms['refine'].elements['sub_category'];
    sub_category_node.options.length = 0;
    sub_category_node.options[0] = new Option ('-- items by sub-type --', '');
    
  } else {
    queue.request ('GET', 'ajax_get_sub_categories.php?id=' + category_node.value, sub_category_handler);
  }
}

function subCategoryHandler () {
  this.process = function (top_node) {
    var sub_category_node = document.forms['refine'].elements['sub_category'];
    
    sub_category_node.options.length = 0;
    sub_category_node.options[0] = new Option ('-- items by sub-type --', '');
    
    var nodes = top_node.getElementsByTagName ('item');
    for (var x = 0; x < nodes.length; x++) {
      sub_category_node.options[x+1] = new Option (nodes[x].firstChild.nodeValue, nodes[x].getAttribute ('id'));
    }    
  }
}



/**
* SIZE LOOKUP
**/
function sizeRequest () {
  var sub_category_node = document.forms['refine'].elements['sub_category'];
  
  if (sub_category_node.value == '') {
    var size_node = document.forms['refine'].elements['size'];
    size_node.options.length = 0;
    size_node.options[0] = new Option ('-- items by size --', '');
    size_node.style.display = 'none';
    
  } else {
    queue.request ('GET', 'ajax_get_sizes.php?id=' + sub_category_node.value, size_handler);
  }
}

function sizeHandler () {
  this.process = function (top_node) {
    var size_node = document.forms['refine'].elements['size'];
    
    var nodes = top_node.getElementsByTagName ('item');
    
    size_node.options.length = 0;
    size_node.options[0] = new Option ('-- items by size --', '');
    
    if (nodes.length == 0) {
      size_node.style.display = 'none';
      
    } else {
      size_node.style.display = 'inline';
      
      for (var x = 0; x < nodes.length; x++) {
        size_node.options[x+1] = new Option (nodes[x].firstChild.nodeValue, nodes[x].getAttribute ('id'));
      }
    }
  }
}
