
	
	function wr_updatefilters(trigger) {
		var dd_app 			= document.getElementById("ddAppellation");
		var dd_reviewers 	= document.getElementById("ddReviewers");
		
		var selectedApp 		= 0;
		var selectedReviewer	= 0;
		
		if(dd_app.selectedIndex!=-1) selectedApp = dd_app.options[dd_app.selectedIndex].value;
		if(dd_reviewers.selectedIndex!=-1) selectedReviewer = dd_reviewers.options[dd_reviewers.selectedIndex].value;
		
		if(trigger=='appellation' && selectedApp!=-1) {
			wr_fetch_reviewers(selectedApp,selectedReviewer,selectedReviewer);
		}
		
		if(trigger=='reviewer' && selectedReviewer!=-1) {
			wr_fetch_appellations(selectedApp,selectedReviewer,selectedApp);
		}
		
		
	}
	
		
	function wr_fetch_appellations(param_app,param_reviewer,defaultvalue) {
		var ajax = new sack();
		ajax.requestFile = "../wineReviewsAppellations.aspx?appellationId="+param_app+"&reviewerId="+param_reviewer+"&val="+defaultvalue;
		ajax.onCompletion = function(){ wr_displayAppellations(ajax,defaultvalue); };	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function
	}
	
	
	function wr_fetch_reviewers(param_app,param_reviewer,defaultvalue) {
		var ajax = new sack();
		ajax.requestFile = "../wineReviewsReviewers.aspx?appellationId="+param_app+"&reviewerId="+param_reviewer+"&val="+defaultvalue;
		ajax.onCompletion = function(){ wr_displayReviewers(ajax,defaultvalue); };	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function
	}
	

	function wr_fetch_provincesstates(countryid) {
		var ajax = new sack();
		ajax.requestFile = "../wineReviewsProvincesStates.aspx?countryId="+countryid;
		ajax.onCompletion = function(){ wr_displayProvincesStates(ajax); };	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function
	}
	
	
	function wr_fetch_provincesstatesappellations(provincestateid) {
		var ajax = new sack();
		ajax.requestFile = "../wineReviewsAppellationsProvinceState.aspx?provincestateid="+provincestateid;
		ajax.onCompletion = function(){ wr_displayProvincesStatesAppellations(ajax); };	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function
	}
	
	
	function wr_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("---------------",-1);
		document.getElementById("ddAppellation").options[1] = new Option("*** All Appellations ***",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)+2] = 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 wr_displayReviewers(ajax,defaultValue)
	{
		var xml = ajax.response;
		xml = xml.replace(/\n/gi,'');

		document.getElementById("ddReviewers").options.length = 0;
		
		var options = xml.split(/<reviewer>/gi);
		var valueValuue = "";
		var textValue = "";
		
		document.getElementById("ddReviewers").options[0] = new Option("---------------",-1);
		document.getElementById("ddReviewers").options[1] = new Option("*** All Authors ***",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('name')>=0){
						textValue = wr_replaceIt(value,"&amp;","&");
					}
					
				}
			}
			document.getElementById("ddReviewers").options[(no-1)+2] = new Option(textValue,valueValuue);
		}
		if(defaultValue!=-1) {
			var dd = document.getElementById("ddReviewers");
			for(var j=0;j<dd.length;j++) {
				if(dd.options[j].value==defaultValue) {
					dd.options[j].selected=true;
				}
			}
		}
	}
	
	
	
	
	function wr_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 wr_clearselections() {
		document.getElementById("ddReviewers").selectedIndex=0;
		document.getElementById("ddAppellation").selectedIndex=0;
	}
	
	
	function searchwinereviews(appellationid,reviewerid,latest) {
		var ajax = new sack();
		document.getElementById("divresultsdata").innerHTML = "<p>Searching Features...</p>";
		ajax.requestFile = "winereviews-ajax.aspx?appellationId="+appellationid+"&reviewerId="+reviewerid+"&latest="+latest;
		ajax.onCompletion = function(){ wr_displayResults(ajax); };	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function
	}
	
	
	function searchwinereviewscountry(countryid,provincestateid,appellationid) {
		var ajax = new sack();
		document.getElementById("divresultsdata").innerHTML = "<p>Searching Features...</p>";
		ajax.requestFile = "winereviews-country-ajax.aspx?countryid="+countryid+"&provincestateid="+provincestateid+"&appellationid="+appellationid;
		ajax.onCompletion = function(){ wr_displayResults(ajax); };	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function
	}
	
	
	function wr_displayResults(ajax) {
		var xml = ajax.response;
		xml = xml.replace(/\n/gi,'');

		document.getElementById("divresultsdata").innerHTML = "";
		
		var options = xml.split(/<feature>/gi);
		var valueValue = "";
		var textValue = "";
		var strtemp = "";
		var strtemp2 = "";
		var reviewer = "";
		var m_names = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
		var h3title = "Latest Features";

		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('searchtitle')==0) h3title = value;
					if(key.indexOf('id')==0) id = value;
					if(key.indexOf('avadva')==0) avadva = value;
					if(key.indexOf('appellationtype')==0) appellationtype = value;
					if(key.indexOf('smimage')==0) smimage = value;
					if(key.indexOf('title')==0) title = wr_replaceIt(wr_replaceIt(value,"&amp;","&"),"&apos;","'");
					if(key.indexOf('interviewee')==0) interviewee = value;
					if(key.indexOf('logo')==0) logo = value;
					if(key.indexOf('dateposted')==0) dateposted = value;
					if(key.indexOf('reviewer')==0) reviewer = value;
					if(key.indexOf('featuretype')==0) featuretype = value;
				}
			}
			title = wr_replaceIt(title,"&lt;","<");
			title = wr_replaceIt(title,"&gt;",">");
			
			var d = new Date(dateposted);
			fulldate = m_names[d.getMonth()]+". "+d.getDate()+", "+d.getFullYear();
			strtemp += "<tr>";
			strtemp += "<td style='vertical-align:top;margin-bottom:10px'>";
			if(featuretype==0) {
				strtemp += "<a href='wine-review/"+id+"/"+wr_replaceIt(interviewee," ","-")+".html' class='titleLink'>";
				strtemp += "<img src='images/features/"+smimage+"' alt='"+logo+"' border='0' class='thumb' style='float:left'/></a>";
				strtemp += avadva+" ("+appellationtype+")<br/>";
				strtemp += "<a class='fTitle' href='wine-review/"+id+"/"+wr_replaceIt(interviewee," ","-")+".html' class='titleLink'>"+title+"</a>";
			}
			else {
				strtemp += "<a href='best-of-appellation/"+wr_replaceIt(interviewee," ","-")+".html' class='titleLink'>";
				strtemp += "<img src='images/icons/"+smimage+"' alt='"+logo+"' border='0' class='thumb' style='float:left'/></a>";
				strtemp += avadva+" ("+appellationtype+")<br/>";
				strtemp += "<a class='fTitle' href='best-of-appellation/"+wr_replaceIt(interviewee," ","-")+".html' class='titleLink'>"+title+"</a>";
			}
			strtemp += "<a href='wine/editor/"+wr_replaceIt(reviewer," ","_")+".html'>"+reviewer+"</a> &#160;-&#160;";

			strtemp += fulldate+"</td>";
			strtemp += "</tr>";
		}
		strtemp2 = "<div style='padding-left:10px;padding-right:10px;text-align:left; color: #808080;'>"
		strtemp2 += "<h3 style='padding-left:0px;padding-bottom:10px'>"+h3title+"</h3>";
		strtemp2 += "<table style='width:100%' cellpadding='2' cellspacing='0'>";
		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 certsearchclear() {
		document.getElementById("ddCertAppellation").options.length = 0;
		document.getElementById("ddCertVarietals").options.length = 0;
		document.getElementById("ddCertWineries").options.length = 0;
		document.getElementById("divSearchTitle").innerHTML = "";
		setVisibility("divIntro","visible");
		setVisibility("divResults","hidden");
		setVisibility("divIntroLink","hidden");
	}
	
	
	function wr_displayProvincesStates(ajax)
	{
		var xml = ajax.response;
		xml = xml.replace(/\n/gi,'');

		document.getElementById("SubCat").options.length = 0;
		
		var options = xml.split(/<provincestate>/gi);
		var valueValuue = "";
		var textValue = "";
		
		document.getElementById("SubCat").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('name')>=0){
						textValue = value;
					}
					
				}
			}
			document.getElementById("SubCat").options[(no-1)+1] = new Option(textValue,valueValuue);
			
		}

	}
	
	
	function wr_displayProvincesStatesAppellations(ajax)
	{
		var xml = ajax.response;
		xml = xml.replace(/\n/gi,'');

		document.getElementById("ddAppellation2").options.length = 0;
		
		var options = xml.split(/<appellation>/gi);
		var valueValuue = "";
		var textValue = "";
		
		document.getElementById("ddAppellation2").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("ddAppellation2").options[(no-1)+1] = new Option(textValue,valueValuue);
			
		}

	}