	
	function updatefilters(trigger) {
		var dd_app 			= document.getElementById("ddAppellation");
		var dd_varietals 	= document.getElementById("ddVarietals");
		var dd_wineries 	= document.getElementById("ddWineries");
		
		var selectedApp 		= 0;
		var selectedWinery 		= 0;
		var selectedVarietal 	= 0;
		
		if(dd_app.selectedIndex!=-1) selectedApp = dd_app.options[dd_app.selectedIndex].value;
		if(dd_wineries.selectedIndex!=-1) selectedWinery = dd_wineries.options[dd_wineries.selectedIndex].value;
		if(dd_varietals.selectedIndex!=-1) selectedVarietal = dd_varietals.options[dd_varietals.selectedIndex].value;
		
		
		if(trigger=='appellation') {
			fetch_varietals(0,selectedApp,selectedVarietal,selectedWinery,0,selectedVarietal);
			fetch_wineries(0,selectedApp,selectedVarietal,selectedWinery,0,selectedWinery);
			calculateResults(0,selectedApp,selectedWinery,selectedVarietal,0)
		}
		
		if(trigger=='varietal') {
			fetch_appellations(0,selectedApp,selectedVarietal,selectedWinery,0,selectedApp);
			fetch_wineries(0,selectedApp,selectedVarietal,selectedWinery,0,selectedWinery);
			calculateResults(0,selectedApp,selectedWinery,selectedVarietal,0)
		}
		
		if(trigger=='winery') {
			fetch_appellations(0,selectedApp,selectedVarietal,selectedWinery,0,selectedApp);
			fetch_varietals(0,selectedApp,selectedVarietal,selectedWinery,0,selectedVarietal);
			calculateResults(0,selectedApp,selectedWinery,selectedVarietal,0)
		}
		
	}
	
		
	function fetch_appellations(param_state,param_app,param_varietal,param_winery,param_price,defaultvalue) {
		var ajax = new sack();
		ajax.requestFile = "../winerecAppellations.aspx?appellationId="+param_app+"&varietalId="+param_varietal+"&wineryId="+param_winery+"&val="+defaultvalue;
		ajax.onCompletion = function(){ displayAppellations(ajax,defaultvalue); };	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function
	}
	
	
	function fetch_varietals(param_state,param_app,param_varietal,param_winery,param_price,defaultvalue) {
		var ajax = new sack();
		ajax.requestFile = "../winerecVarietals.aspx?appellationId="+param_app+"&varietalId="+param_varietal+"&wineryId="+param_winery+"&val="+defaultvalue;
		ajax.onCompletion = function(){ displayVarietals(ajax,defaultvalue); };	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function
	}
	
	function fetch_wineries(param_state,param_app,param_varietal,param_winery,param_price,defaultvalue) {
		var ajax = new sack();
		ajax.requestFile = "../winerecWineries.aspx?appellationId="+param_app+"&varietalId="+param_varietal+"&wineryId="+param_winery+"&val="+defaultvalue;
		ajax.onCompletion = function(){ displayWineries(ajax,defaultvalue); };	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function
	}
	

	function displayAppellations(ajax,defaultValue)
	{
		var xml = ajax.response;
		xml = xml.replace(/\n/gi,'');

		document.getElementById("ddAppellation").options.length = 0;
		
		var options = xml.split(/<appellation>/gi);
		var valueValuue = "";
		var textValue = "";
		
		document.getElementById("ddAppellation").options[0] = new Option("All",0);
		
		for(var no=1;no<options.length;no++){
		
			var elements = options[no].split(/</gi);
			
			for(var no2=0;no2<elements.length;no2++){
				if(elements[no2].substring(0,1)!='/'){
					var key = elements[no2].replace(/^(.*?)>.*$/gi,'$1');
					var value = elements[no2].replace(/^.*?>(.*)$/gi,'$1');
			
					if(key.indexOf('id')>=0){
						valueValuue = value;
					}
					
					if(key.indexOf('avadva')>=0){
						textValue = value;
					}
					
				}
			}
			document.getElementById("ddAppellation").options[(no-1)+1] = new Option(textValue,valueValuue);
			
		}

		if(defaultValue!=-1) {
			var dd = document.getElementById("ddAppellation");
			for(var j=0;j<dd.length;j++) {
				if(dd.options[j].value==defaultValue) {
					dd.options[j].selected=true;
				}
			}
		}
	}


	function displayVarietals(ajax,defaultValue)
	{
		var xml = ajax.response;
		xml = xml.replace(/\n/gi,'');

		document.getElementById("ddVarietals").options.length = 0;
		
		var options = xml.split(/<appellation>/gi);
		var valueValuue = "";
		var textValue = "";
		
		document.getElementById("ddVarietals").options[0] = new Option("All",0);
		
		for(var no=1;no<options.length;no++){
		
			var elements = options[no].split(/</gi);
			
			for(var no2=0;no2<elements.length;no2++){
				if(elements[no2].substring(0,1)!='/'){
					var key = elements[no2].replace(/^(.*?)>.*$/gi,'$1');
					var value = elements[no2].replace(/^.*?>(.*)$/gi,'$1');
			
					if(key.indexOf('id')>=0){
						valueValuue = value;
					}
					
					if(key.indexOf('avadva')>=0){
						textValue = value;
					}
					
				}
			}
			document.getElementById("ddVarietals").options[(no-1)+1] = new Option(textValue,valueValuue);
		}
		if(defaultValue!=-1) {
			var dd = document.getElementById("ddVarietals");
			for(var j=0;j<dd.length;j++) {
				if(dd.options[j].value==defaultValue) {
					dd.options[j].selected=true;
				}
			}
		}
	}
	
	
	function displayWineries(ajax,defaultValue)
	{
		var xml = ajax.response;
		xml = xml.replace(/\n/gi,'');

		document.getElementById("ddWineries").options.length = 0;
		
		var options = xml.split(/<appellation>/gi);
		var valueValuue = "";
		var textValue = "";
		
		document.getElementById("ddWineries").options[0] = new Option("All",0);
		
		if(options.length>0) {
		for(var no=1;no<options.length;no++){
		
			var elements = options[no].split(/</gi);
			
			for(var no2=0;no2<elements.length;no2++){
				if(elements[no2].substring(0,1)!='/'){
					var key = elements[no2].replace(/^(.*?)>.*$/gi,'$1');
					var value = elements[no2].replace(/^.*?>(.*)$/gi,'$1');
			
					if(key.indexOf('id')>=0){
						valueValuue = value;
					}
					
					if(key.indexOf('avadva')>=0){
						textValue = value;
					}
					
				}
			}
			document.getElementById("ddWineries").options[(no-1)+1] = new Option(textValue,valueValuue);
		}
		}
		if(defaultValue!=-1) {
			var dd = document.getElementById("ddWineries");
			for(var j=0;j<dd.length;j++) {
				if(dd.options[j].value==defaultValue) {
					dd.options[j].selected=true;
				}
			}
		}
	}
	
	
	function replaceIt(sString, sReplaceThis, sWithThis) { 
		if (sReplaceThis != "" && sReplaceThis != sWithThis) { 
			var counter = 0; 
			var start = 0; 
			var before = ""; 
			var after = ""; 
			while (counter<sString.length) { 
				start = sString.indexOf(sReplaceThis, counter); 
				if (start == -1) { 
					break; 
				} else { 
					before = sString.substr(0, start); 
					after = sString.substr(start + sReplaceThis.length, sString.length); 
					sString = before + sWithThis + after; 
					counter = before.length + sWithThis.length; 
				} 
			} 
		} 
		return sString; 
	}
	
	
	
	function calculateResults(stateId,appellationId,wineryId,varietalId,pricerangeId)
	{	
		var ajax5 = new sack();
		ajax5.requestFile = "../calculateWinerecSearch.aspx?stateId="+stateId+"&wineryId="+wineryId+"&appellationId="+appellationId+"&varietalId="+varietalId+"&pricerangeId="+pricerangeId;	// Specifying which file to get
		ajax5.onCompletion = function(){ displayCalculationResult(ajax5); };	// Specify function that will be executed after file has been found
		ajax5.runAJAX();		// Execute AJAX function
	}

	function displayCalculationResult(ajax)
	{
		var xml = ajax.response;
		xml = xml.replace(/\n/gi,'');
		
		var options = xml.split(/<appellation>/gi);
		var valueValuue = "";
		var textValue = "";
		
		for(var no=1;no<options.length;no++){
		
			var elements = options[no].split(/</gi);
			
			for(var no2=0;no2<elements.length;no2++){
				if(elements[no2].substring(0,1)!='/'){
					var key = elements[no2].replace(/^(.*?)>.*$/gi,'$1');
					var value = elements[no2].replace(/^.*?>(.*)$/gi,'$1');
			
					if(key.indexOf('id')>=0){
						valueValuue = value;
					}
					
					if(key.indexOf('avadva')>=0){
						textValue = value;
					}
					
				}
			}
			
			if(valueValuue==0) {
				//document.getElementById("searchBtn").value = "no picks";
				//document.getElementById("searchBtn").disabled=true;
			}
			else {
				//document.getElementById("searchBtn").value = "see all "+valueValuue+" picks";
				//document.getElementById("searchBtn").disabled=false;
			}
		}
	}
	
	
	function clearselections() {
		document.getElementById("ddWineries").selectedIndex=0;
		document.getElementById("ddVarietals").selectedIndex=0;
		document.getElementById("ddAppellation").selectedIndex=0;
		
		
		
		//document.getElementById("searchBtn").value = "no picks";
		//document.getElementById("searchBtn").disabled=true;

	}
	
	
	function searchstore(strpath) {
		var dd_app 			= document.getElementById("ddAppellation");
		var dd_varietals 	= document.getElementById("ddVarietals");
		var dd_wineries 	= document.getElementById("ddWineries");
		
		var selectedApp = 0;
		var selectedWinery = 0;
		var selectedVarietal = 0;
		
		if(dd_app.selectedIndex!=-1) selectedApp = dd_app.options[dd_app.selectedIndex].value;
		if(dd_wineries.selectedIndex!=-1) selectedWinery = dd_wineries.options[dd_wineries.selectedIndex].value;
		if(dd_varietals.selectedIndex!=-1) selectedVarietal = dd_varietals.options[dd_varietals.selectedIndex].value;
		
	}
	
	
	function searchrecommendations(appellationid,wineryid,varietalid) {
		var ajax = new sack();
		document.getElementById("divresultsdata").innerHTML = "Searching Wine Recommendations...";
		ajax.requestFile = "winerecommendations-ajax.aspx?appellationId="+appellationid+"&varietalId="+varietalid+"&wineryId="+wineryid;
		ajax.onCompletion = function(){ displayRecommendationsResults(ajax); };	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function
	}
	
	function displayRecommendationsResults(ajax) {
		var xml = ajax.response;
		xml = xml.replace(/\n/gi,'');

		setVisibility("divIntro","hidden");
		setVisibility("divResults","visible");
		setVisibility("divIntroLink","visible");
		
		document.getElementById("divresultsdata").innerHTML = "";
		
		var options = xml.split(/<recommendation>/gi);
		var valueValue = "";
		var textValue = "";
		var strtemp = "";
		
		for(var no=1;no<options.length;no++){
		
			var elements = options[no].split(/</gi);
			
			for(var no2=0;no2<elements.length;no2++){
				if(elements[no2].substring(0,1)!='/'){
					var key = elements[no2].replace(/^(.*?)>.*$/gi,'$1');
					var value = elements[no2].replace(/^.*?>(.*)$/gi,'$1');
			
					if(key.indexOf('id')==0) reviewid = value;
					if(key.indexOf('vintage')==0) vintage = value;
					if(key.indexOf('wineryname')==0) wineryname = value;
					if(key.indexOf('winename')==0) winename = value;
					if(key.indexOf('reviewdate')==0) reviewdate = value;
					if(key.indexOf('avadva')==0) avadva = value;
					if(key.indexOf('winereviewer')==0) winereviewer = value;
					if(key.indexOf('vineyarddesignation')==0) vineyarddesignation = value;
					if(key.indexOf('nexternalid')==0) nexternalid = value;
					if(key.indexOf('label')==0) winelabel = "images/labels/"+value;
					if(key.indexOf('varietal')==0) varietal = value;
					if(key.indexOf('pdf')==0) pdf = value;
				}
			}
			
			if(winelabel=="") winelabel = "images/no-label.jpg";

			winerynameurl = replaceIt(wineryname," ","-");
			winerynameurl = replaceIt(winerynameurl,"'","%27");
			
			winenameurl = replaceIt(winename," ","-");
			winenameurl = replaceIt(winenameurl,"'","%27");
			winenameurl = replaceIt(winenameurl,"&","%26");
			
			strtemp += "<tr><td valign='top'>"+no+".</td><td valign='top'>"+wineryname+"</td><td valign='top'><a style='text-decoration: none; display: block; margin-bottom: 5px;' HREF='wine-reviews/"+reviewid+"/"+winerynameurl+"-"+vintage+"-"+winenameurl+".html'>"+vintage+" "+winename+" "+vineyarddesignation+"<br/>"+reviewdate+"</td>";
			strtemp += "<td valign='top'>"+avadva+"</td>"
			//if(nexternalid!=0) {
			//	strtemp += "<td valign='top'><img src='../images/icon-wine.gif' border='0' alt='Available in our store'></td>";
			//}
			//else {
			//	strtemp += "<td></td>";
			//}
			strtemp += "<td valign='top'><a href='http://wine.appellationamerica.com/docs/reviews/"+pdf+"' target='_blank'><img src='images/pdf-colour.gif' style='border:0px'></a></td>"
			
			
			
		}
		
		strtemp2 = "<div style='padding-left:10px;padding-right:10px;'>"
		strtemp2 += "<h3 style='padding-left:0px;padding-bottom:10px'>Wine Recommendations</h3>";
		strtemp2 += "<table style='width:100%' cellpadding='2' cellspacing='0'><tr style='background-color:#000000;color:#ffffff'><td style='width:20px'></td><td style='width:220px'>Winery</td><td style='width:240px'>Wine</td><td style='width:140px'>Appellation</td><td>PDF</td></tr>";
		strtemp2 += strtemp;
		strtemp2 += "</table></div>";

		document.getElementById("divresultsdata").innerHTML = strtemp2;
	}
	
	
	function setVisibility(objId, sVisibility) {
		var obj = document.getElementById(objId);
		obj.style.visibility = sVisibility;
		if(sVisibility!="visible")	obj.style.display = 'none';
		else obj.style.display = '';
	}
	
	
	function searchclear() {
		document.getElementById("ddAppellation").options.length = 0;
		document.getElementById("ddVarietals").options.length = 0;
		document.getElementById("ddWineries").options.length = 0;
		document.getElementById("divSearchTitle").innerHTML = "";
		setVisibility("divIntro","visible");
		setVisibility("divResults","hidden");
		setVisibility("divIntroLink","hidden");
	}