function getMakes(){
	var catId = document.getElementById('category');
		catId = catId.options[catId.selectedIndex].value;//parentNode.getAttribute('id');
	var vendorId = document.getElementById('vendor'); 
	var classId = document.getElementById('eclass'); 
	
	var urlString = 'catId='+catId;
		
	var myConn = new XHConn();
	if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");
	
	//remove all makes
	optLen = vendorId.length;
	for(var i = 1; i < optLen; i++){ vendorId.removeChild(vendorId.options[1]); }
	
	//remove all classes
	optLen = classId.length;
	for(var i = 1; i < optLen; i++){ classId.removeChild(classId.options[1]); }
	
	var fnWhenDone = function (oXML) {

		if( oXML.responseText )
        {
            xml = oXML.responseXML;
            opts = xml.getElementsByTagName('options')[0].selectNodes("option");
    
            for(i = 0; i < opts.length; i++)
            {
            	id  = opts[i].getAttribute("id");
				title  = opts[i].getAttribute("title");
                value = opts[i].selectSingleNode("text()").nodeValue;
                
                opt = new Option(value, title); 
				opt.setAttribute('id', id);
                vendorId.options[i+1] = opt;     
            }
			
			getEquipClasses();
		}
	};

	myConn.connect("/_includes/xml.vendors.php", "GET", urlString, fnWhenDone);
}

function getEquipClasses(){
	if( document.getElementById('category') )
	{
		var catId = document.getElementById('category');
			catId = catId.options[catId.selectedIndex].value;
	}
	else
	{
		var tmp = document.getElementById('vendor');
		var catId = tmp.options[tmp.selectedIndex].getAttribute('catId');
	}
		
	var makeId = document.getElementById('vendor');
		makeId = makeId.options[makeId.selectedIndex].getAttribute('id');//value;//parentNode.getAttribute('id');
	var classId = document.getElementById('eclass'); 

	var urlString = 'catId='+catId+'&makeId='+makeId;

	var myConn = new XHConn();
	if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");
	
	//remove all options
	optLen = classId.length;
	for(var i = 1; i < optLen; i++){ classId.removeChild(classId.options[1]); }
	
	var fnWhenDone = function (oXML) {	
		if( oXML.responseText )
        {			
            xml = oXML.responseXML;
            opts = xml.getElementsByTagName('options')[0].selectNodes("option");

            for(i = 0; i < opts.length; i++)
            {
            	id  = opts[i].getAttribute("id");
				//title  = opts[i].getAttribute("title");
                value = opts[i].selectSingleNode("text()").nodeValue;
                
                opt = new Option(value, id); 
				opt.setAttribute('id', id);
				opt.setAttribute('value', value);
				//opt.setAttribute('id', title);
                classId.options[i+1] = opt;  
            }
		}
		
		//alert(document.getElementById('eclass').innerHTML);
	};

	myConn.connect("/_includes/xml.eclasses.php", "GET", urlString, fnWhenDone);
}

/** Ajax Functions **/

if( document.implementation.hasFeature("XPath", "3.0") ){
	if( typeof XMLDocument == "undefined" ){ XMLDocument = Document; }
  XMLDocument.prototype.selectNodes = function(cXPathString, xNode){
    if( !xNode ) { xNode = this; } 
		var oNSResolver = this.createNSResolver(this.documentElement)
		var aItems = this.evaluate(cXPathString, xNode, oNSResolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)
		var aResult = [];
		for( var i = 0; i < aItems.snapshotLength; i++){aResult[i] =  aItems.snapshotItem(i);	}
		return aResult;
	}
	XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode){
		if( !xNode ) { xNode = this; } 
		var xItems = this.selectNodes(cXPathString, xNode);
		if( xItems.length > 0 ){return xItems[0];	}
		else{return null;	}
	}
	Element.prototype.selectNodes = function(cXPathString){
		if(this.ownerDocument.selectNodes){	return this.ownerDocument.selectNodes(cXPathString, this);}
		else{throw "For XML Elements Only";}
	}
	Element.prototype.selectSingleNode = function(cXPathString){	
		if(this.ownerDocument.selectSingleNode){return this.ownerDocument.selectSingleNode(cXPathString, this);	}
		else{throw "For XML Elements Only";}
	}
}

function XHConn()
{
  var xmlhttp, bComplete = false;
  try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
  catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
  catch (e) { try { xmlhttp = new XMLHttpRequest(); }
  catch (e) { xmlhttp = false; }}}
  if (!xmlhttp) return null;
  this.connect = function(sURL, sMethod, sVars, fnDone)
  {
    if (!xmlhttp) return false;
    bComplete = false;
    sMethod = sMethod.toUpperCase();

    try {
      if (sMethod == "GET")
      {
        xmlhttp.open(sMethod, sURL+"?"+sVars, true);
        sVars = "";
      }
      else
      {
        xmlhttp.open(sMethod, sURL, true);
        xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
        xmlhttp.setRequestHeader("Content-Type",
          "application/x-www-form-urlencoded");
      }
      xmlhttp.onreadystatechange = function(){
        if (xmlhttp.readyState == 4 && !bComplete)
        {
          bComplete = true;
          fnDone(xmlhttp);
        }};
      xmlhttp.send(sVars);
    }
    catch(z) { return false; }
    return true;
  };
  return this;
}

/** End Ajax Functions **/
