var xmlHttp;

function urlencode(str) {
	return escape(str).replace(/\+/g,'%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40');
}

function UpdateCombos()
{
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
		alert ("Your browser does not support AJAX!");
		return;
	} 
	var url="Ajax.asp";
	url=url+"?Species="+ urlencode(document.FindYourProduct.Species.options[document.FindYourProduct.Species.selectedIndex].value);
	url=url+"&Analyte="+ urlencode(document.FindYourProduct.Analyte.options[document.FindYourProduct.Analyte.selectedIndex].value);
	url=url+"&Applica="+ urlencode(document.FindYourProduct.Applica.options[document.FindYourProduct.Applica.selectedIndex].value);
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
} 

String.prototype.normalize = function() {
	return this.replace(/&#([0-9]{1,7});/,
		function (str, p1, p2, offset, s) {
			return String.fromCharCode(p1);
		}
	);
}

function stateChanged() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		selectedSpecies = document.FindYourProduct.Species.options[document.FindYourProduct.Species.selectedIndex].value;
		selectedAnalyte = document.FindYourProduct.Analyte.options[document.FindYourProduct.Analyte.selectedIndex].value;
		selectedApplica = document.FindYourProduct.Applica.options[document.FindYourProduct.Applica.selectedIndex].value;
		ajaxres = xmlHttp.responseText;
		document.FindYourProduct.Species.options.length = 0;
		document.FindYourProduct.Analyte.options.length = 0;
		document.FindYourProduct.Applica.options.length = 0;
		document.FindYourProduct.Species.options[0] = new Option("", "");
		document.FindYourProduct.Analyte.options[0] = new Option("", "");
		document.FindYourProduct.Applica.options[0] = new Option("", "");
		combos = ajaxres.split('|||');
		for(var i=0;i<=combos.length-2;i++) {
			values = combos[i].split('&&&');
			for(var j=0;j<=values.length-2;j++) {
				if (i == 0) {
					document.FindYourProduct.Species.options[j+1] = new Option(values[j].normalize(), values[j].replace(/#/g, '##'));
					if (selectedSpecies == values[j].replace(/#/g, '##')) {
						document.FindYourProduct.Species.selectedIndex = document.FindYourProduct.Species.options.length - 1;
					}
				}
				if (i == 1) {
					document.FindYourProduct.Analyte.options[j+1] = new Option(values[j].normalize(), values[j].replace(/#/g, '##'));
					if (selectedAnalyte == values[j].replace(/#/g, '##')) {
						document.FindYourProduct.Analyte.selectedIndex = document.FindYourProduct.Analyte.options.length - 1;
					}
				}
				if (i == 2) {
					document.FindYourProduct.Applica.options[j+1] = new Option(values[j].normalize(), values[j].replace(/#/g, '##'));
					if (selectedApplica == values[j].replace(/#/g, '##')) {
						document.FindYourProduct.Applica.selectedIndex = document.FindYourProduct.Applica.options.length - 1;
					}
				}
			}
		}
	}
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}

	  