
function SearchContent()
{
	this.contentArea_			=	null;
	this.leftDiv_				=	null;
	this.listArea_				=	null;
	this.pickArea_				=	null;

	this.lists_					=	null;
	this.wineries_				=	null;
	this.labels_				=	null;
	this.vintages_				=	null;
	this.pickedVintages_		=	null;
	this.prices_				=	null;
	this.varieties_				=	null;


	this.init=function()
	{
 		
		this.contentArea_=document.getElementById('leftColFind');
//		this.pickArea_	=	document.getElementById('rightDivSearch');
//		this.listArea_=document.getElementById('wine_list_search');
		this.pickArea_	=	document.getElementById('pick_list');
		this.listArea_=document.getElementById('search_result');

		//this.setHeightOuter(956);
		this.getLists();
		this.getPickList();
	}
	
	
	this.initCombine=function()
	{
		this.contentArea_=document.getElementById('leftColFind');
//		this.pickArea_	=	document.getElementById('rightDivSearch');
//		this.listArea_=document.getElementById('wine_list_search');
		this.pickArea_	=	document.getElementById('pick_list');
		this.listArea_=document.getElementById('search_result');

		//this.setHeightOuter(956);
		//this.getLists();
		//this.getPickList();
	}
	

	this.setSearchLayout=function()
	{ 
	////console.log('setSearchLayout');
	 this.clearContent();
	 		 
		var fieldHTML="<form id='search_form_reg' name='search_form_reg' method='post' action=''>";
			fieldHTML+="<table cellpadding='0' cellspacing='0' border='0' name='notes_search' id='notes_search'>";

			fieldHTML+="<tr height='20px'>";
			fieldHTML+="<td colspan='2' id='menuTD'>�</td>";
			fieldHTML+="</tr>";

			fieldHTML+="<tr height='70px'>";
			fieldHTML+="<td class='fieldLabel' id='winery_label'>Choose Wineries</td>";
			fieldHTML+="<td id='winery_menuTD'>";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>A</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>B</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>C</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>D</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>E</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>F</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>G</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>H</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>I</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>J</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>K</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>L</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>M</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>N</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>O</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>P</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>Q</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>R</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>S</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>T</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>U</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>V</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>W</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>X</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>Y</a>�";
			fieldHTML+="<a href='#' onmousedown='searcher.getWinery(this.innerHTML)' class='normal'>Z</a>�<br><a href='#' onmousedown='searcher.setSearchLayoutPro()' style='float:right'  class='normal'>Professional Search</a>";
			fieldHTML+="<br /><br /><select name='winery_menu' id='winery_menu' onchange='searcher.getLabels(this.value)'></select>";
			fieldHTML+="</td>";
			fieldHTML+="</tr>";

			fieldHTML+="<tr height='25'>";
			fieldHTML+="<td class='fieldLabel' id='label_label'>Choose Label</td>";
			fieldHTML+="<td id='label_menuTD'>";
			fieldHTML+="<select name='label_menu' id='label_menu' onchange='searcher.getVintagesForLabel(this.value)'></select>";
			fieldHTML+="</td>";
			fieldHTML+="</tr>";

			fieldHTML+="<tr>";
			fieldHTML+="<td id='vintage_menuTD' colspan='2'>";
			fieldHTML+="<div id='listHeaderSearch'></div>";
			fieldHTML+="<div id='wine_list_search'></div>";
				fieldHTML+="<div id='searchListBar'>";
           fieldHTML+="<div id='selectAllDivSearch'>";
           	fieldHTML+="Select All&nbsp;<input name='selectAll' id='selectAll' type='checkbox' value='' onclick='searcher.selectAll(\"list\");'/> ";
             fieldHTML+="</div>";

            fieldHTML+="<div id='addToListDivSearch'>";
            fieldHTML+="  <img src='images/interface/icons/folderIconSml.png' width='20' height='19' class='folderIcon' />&nbsp;";
            fieldHTML+="<select id='listSelectList'></select>&nbsp;";
             fieldHTML+=" <img src='images/interface/buttons/add_to_list_btn.png' id='add_to_list_btn' onmouseover='this.style.cursor=\'pointer\';buttons.rollBtn(1,this);' onmouseout='buttons.rollBtn(0,this);' onclick='searcher.addToList(\"listSelectList\");'/>";
             fieldHTML+="</div>";
			fieldHTML+="</td></tr>";

			fieldHTML+="</table></form>";
		this.contentArea_.innerHTML = fieldHTML;


				this.setHeightOuter(1156);
				this.listArea_	=	document.getElementById('wine_list_search');
				this.pickArea_	=	document.getElementById('rightDivSearch');
				this.clearVintages();
				this.getLists();
				this.getPickList();


	}//end search layout

	this.setSearchLayoutPro=function()
	{ 
		////console.log('setSearchLayoutPro');
		this.clearContent();
		var pageHeader				=	document.getElementById('pageHeaderSearch');
			pageHeader.innerHTML	= '';
			pageHeader.appendChild( document.createTextNode("Professional Search") );

		var leftDiv=document.getElementById('leftColFind');

		var fieldHTML="<form id='search_form_pro' name='search_form_pro' method='post' action=''>";
			fieldHTML+="<table cellpadding='0' cellspacing='0' border='0' name='notes_search_pro' id='notes_search_pro'>";

			fieldHTML+="<tr height='20'>";
			fieldHTML+="<td colspan='2' id='menuTD'>&nbsp;�</td>";
			fieldHTML+="<td></td>";
			fieldHTML+="<td><br><a href='#' onmousedown='searcher.setSearchLayout()'  class='normal'>Regular Search</a></td>";
			fieldHTML+="</tr>";

			fieldHTML+="<tr height='25'>";
			fieldHTML+="<td class='fieldLabel' id='prodLabel'>Producer</td>";
			fieldHTML+="<td><input name='win_name' id='win_name' type='text' size='25' /></td>";
			fieldHTML+="<td class='fieldLabel' id='wineLabel'>Wine Name</td>";
			fieldHTML+="<td><input name='lab_sub_label' id='lab_sub_label' type='text' size='25' /></td>";
			fieldHTML+="</tr>";

			fieldHTML+="<tr height='25'>";
			fieldHTML+="<td class='fieldLabel' id='varLabel'>Variety</td>";
			fieldHTML+="<td><input name='lab_variety' id='lab_variety' type='text' size='25'/></td>";
			fieldHTML+="<td class='fieldLabel' id='regLabel'>Region</td>";
			fieldHTML+="<td><input name='lab_region' id='lab_region' type='text' size='25'/></td>";
			fieldHTML+="</tr>";

			fieldHTML+="<tr height='25'>";
			fieldHTML+="<td class='fieldLabel'>Vintage</td>";
			fieldHTML+="<td>";
			fieldHTML+="<input name='vint_from' id='vint_from' type='text' size='4' maxlength='4'/>�";
			fieldHTML+="to�<input name='vint_to' id='vint_to' type='text' size='4' maxlength='4'/>";
			fieldHTML+="</td>";
			fieldHTML+="<td class='fieldLabel' id='scoreLabel'>Score</td>";
			fieldHTML+="<td>";
			fieldHTML+="<strong>/100</strong>�<input name='score_100_from' id='score_100_from' type='text' size='3' maxlength='3'/>�";
			fieldHTML+="<strong>to</strong>�<input name='score_100_to' id='score_100_to' type='text' size='3' maxlength='3' />";
			fieldHTML+="<br><strong>/20</strong>� <input name='score_20_from' id='score_20_from' type='text' size='3' maxlength='2'/>�";
			fieldHTML+="<strong>to</strong>�  <input name='score_20_to' id='score_20_to' type='text' size='3' maxlength='2' />";
			fieldHTML+="</td>";
			fieldHTML+="</tr>";

			fieldHTML+="<tr height='25'>";
			fieldHTML+="<td class='fieldLabel' id='rankLabel'>Wine Ranking</td>";
			fieldHTML+="<td>";
			fieldHTML+="�<select name='lab_rating_5' id='lab_rating_5'>";
			fieldHTML+="<option value='None Selected' selected>Rating</option>";
			fieldHTML+="<option value='1'>1</option>";
			fieldHTML+="<option value='2'>2</option>";
			fieldHTML+="<option value='3'>3</option>";
			fieldHTML+="<option value='4'>4</option>";
			fieldHTML+="<option value='5'>5</option>";
			fieldHTML+="</select>";
			fieldHTML+="</td>";
			fieldHTML+="<td class='fieldLabel' id='rangeLabel'>Price Range</td>";
			fieldHTML+="<td>";
			fieldHTML+="�<select name='price_range' id='price_range'>";
			fieldHTML+="</select>";
			fieldHTML+="</td>";
			fieldHTML+="</tr>";

			fieldHTML+="<tr height='20'>";
			fieldHTML+="<td colspan='4' align='right' id='buttonsTD'><input type='button' name='button' id='button' value='Search' onmousedown='searcher.searchPro()'/></td>";
			fieldHTML+="</tr>";

			fieldHTML+="<tr>";
			fieldHTML+="<td id='vintage_menuTDPro' colspan='4'>";
			fieldHTML+="<div id='listHeaderSearch'></div>";
			fieldHTML+="<div id='wine_list_search'></div>";
			fieldHTML+="<div id='searchListBar'>";
            fieldHTML+="<div id='selectAllDivSearch'>";
           	fieldHTML+="Select All&nbsp;<input name='selectAll' id='selectAll' type='checkbox' value='' onclick='searcher.selectAll(\"list\");'/> ";
             fieldHTML+="</div>";

            fieldHTML+="<div id='addToListDivSearch'>";
            fieldHTML+="  <img src='images/interface/icons/folderIconSml.png' width='20' height='19' class='folderIcon' />&nbsp;";
            fieldHTML+="<select id='listSelectList'></select>&nbsp;";
             fieldHTML+=" <img src='images/interface/buttons/add_to_list_btn.png' id='add_to_list_btn' onmouseover='this.style.cursor=\"pointer\";buttons.rollBtn(1,this);' onmouseout='buttons.rollBtn(0,this);' onclick='searcher.addToList(\"listSelectList\");'/>";
             fieldHTML+="</div>";
			fieldHTML+="</td></tr>";

			fieldHTML+="</table></form>";

			leftDiv.innerHTML = fieldHTML;

			this.listArea_=document.getElementById('wine_list_search');
			this.getLatestVintages();
			this.getLists();
			this.loadPrices();
	}

	this.getWinery = function (win_letter)
    { 
	    ////console.log('getWinery');
		if(window.XMLHttpRequest)
			{
				var xhr = new XMLHttpRequest();
			}
			else if (window.ActiveXObject)
			{
				var xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}

				var postData="";
				postData+="win_letter="+encodeURI(win_letter);

				xhr.onreadystatechange=function()
												{
													if(xhr.readyState==4)
													{
															var resp=this.responseText;

															/*utils.logMe(xhr.responseText);return;	*/
															if(document.getElementById('vars_holder'))
															{
																utils.remVarHolder();
																utils.addVarHolder();
																document.getElementById('vars_holder').text=resp;
															}
															else
															{
																utils.addVarHolder();
																document.getElementById('vars_holder').text=resp;
															}

														//window.setTimeout(function(){
																					  searcher.populateWineries();
																				   //},400);

													}
													else
													{
														/*var error=xhr.responseStatus+"||"+xhr.responseText;
														var text=document.createTextNode(xhr.responseText);
														logWindow.appendChild(text);*/
													}
													return;
												}

				try
				{
					 xhr.open("POST","php/processes/get_wineries_by_letter_process.php",true);
					 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
					 xhr.send(postData);
				}
				catch(error)
				{
				//
		//			var text=document.createTextNode("ERROR: "+error.name+"|"+error.description+"|"+error.lineNumber);
		//			logWindow.appendChild(text);
		//			var br=document.createElement("br");
		//			logWindow.appendChild(br);
				}
	}//end winery



	this.populateWineries=function()
	{ 
		////console.log('populateWineries');
		var menu 	 		= document.getElementById('winery_menu');
			menu.innerHTML='';
			var option				= document.createElement('option');
				option.value 		= 'None Selected';
				option.selected 	= true;
				option.appendChild( document.createTextNode('Select a winery...') );
				menu.appendChild(option);




			for(var i=0;i<this.wineries_.length;i++)
			{
				var win_id   =  this.wineries_[i]['win_id'];
				var win_name = (this.wineries_[i]['win_name']!='')?this.wineries_[i]['win_name']:'';


				var option				= document.createElement('option');
					option.value 		= win_id;
					option.appendChild( document.createTextNode(win_name) );
					menu.appendChild(option);
			}
	}//end populate wineries

	this.getLabels = function (win_id)
	{ 
		////console.log('getLabels');
		this.clearLabels();
		this.clearVintages();

		if(document.getElementById('winery_menu').selectedIndex==0)
		{
				this.clearLabels();
				this.clearVintages();
				return;
		}

		if(window.XMLHttpRequest)
		{
			var xhr = new XMLHttpRequest();
		}
		else if (window.ActiveXObject)
		{
			var xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}

			var postData="";
			postData+="win_id="+encodeURI(win_id);

			xhr.onreadystatechange=function()
											{
												if(xhr.readyState==4)
												{
														var resp=this.responseText;

																/*utils.logMe(xhr.responseText);return;	*/
																if(document.getElementById('vars_holder'))
																{
																	utils.remVarHolder();
																	utils.addVarHolder();
																	document.getElementById('vars_holder').text=resp;
																}
																else
																{
																	utils.addVarHolder();
																	document.getElementById('vars_holder').text=resp;
																}

															//window.setTimeout(function(){
																						  searcher.populateLabels();
																					  // },400);
												}
												else
												{
													/*var error=xhr.responseStatus+"||"+xhr.responseText;
													var text=document.createTextNode(xhr.responseText);
													logWindow.appendChild(text);*/
												}
												return;
											}

			try
			{
				 xhr.open("POST","php/processes/get_labels_by_winery_id_process.php",true);
				 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				 xhr.send(postData);
			}
			catch(error)
			{
			//
	//			var text=document.createTextNode("ERROR: "+error.name+"|"+error.description+"|"+error.lineNumber);
	//			logWindow.appendChild(text);
	//			var br=document.createElement("br");
	//			logWindow.appendChild(br);
			}
	}//end get labels


	this.populateLabels=function()
	{ 
		////console.log('populateLabels');
			var menu 	 		= document.getElementById('label_menu');
				menu.innerHTML='';
			var option				= document.createElement('option');
				option.value 		= 'None Selected';
				option.selected 	= true;
				option.appendChild( document.createTextNode('Select a label...') );
				menu.appendChild(option);




			for(var i=0;i<this.labels_.length;i++)
			{
				var lab_id   =  this.labels_[i]['lab_id'];
				var lab_text = (this.labels_[i]['lab_text']!='')?this.labels_[i]['lab_text']:'';


				var option				= document.createElement('option');
					option.value 		= lab_id;
					option.appendChild( document.createTextNode(lab_text) );
					menu.appendChild(option);
			}
	}


	this.getVintagesForLabel = function(lab_id,page_num,term)
	{ 
		////console.log('getVintagesForLabel  '+lab_id);
		this.clearVintages();
		//this.getLists();

		if(window.XMLHttpRequest)
		{
			var xhr = new XMLHttpRequest();
		}
		else if (window.ActiveXObject)
		{
			var xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}

			var getData="";
				getData+="lab_id="+encodeURI(lab_id)+"&term="+encodeURI(term)+"&context=search&refresh="+Math.random();
			//alert(getData);
			xhr.onreadystatechange=function()
											{
						if(xhr.readyState==4)
						{	var resp=this.responseText;
							/*utils.logMe( format.nl2br( resp) );return;	*/
							
								if(document.getElementById('vars_holder'))
								{
									utils.remVarHolder();
									utils.addVarHolder();
									document.getElementById('vars_holder').text=resp;
								}
								else
								{
									utils.addVarHolder();
									document.getElementById('vars_holder').text=resp;
								}

							//window.setTimeout(function(){
														  searcher.populateList(page_num);
													   //},400);

						}
						else
						{
							/*var error=xhr.responseStatus+"||"+xhr.responseText;
							var text=document.createTextNode(xhr.responseText);
							logWindow.appendChild(text);*/
						}
						return;
					}

			try
			{
				 xhr.open("GET","php/processes/get_vintages_by_label_id_process.php?"+getData,true);
				 xhr.send(null);
			}
			catch(error)
			{
			}
	}//end get labels
	
	
	this.getVintagesForLabelCombine = function(lab_id,page_num,term)
	{ 
		////console.log('getVintagesForLabel  '+lab_id);		
		////console.log(term);
		
		this.clearVintages();
		//this.getLists();

		if(window.XMLHttpRequest)
		{
			var xhr = new XMLHttpRequest();
		}
		else if (window.ActiveXObject)
		{
			var xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}

			var getData="";
			//getData+="lab_id="+encodeURI(lab_id)+"&term="+encodeURI(term)+"&context=search&refresh="+Math.random();
			getData+="lab_id=&term="+encodeURI(term)+"&context=search&refresh="+Math.random();
			//document.write(getData); return false;
			xhr.onreadystatechange=function()
											{
						if(xhr.readyState==4)
						{	var resp=this.responseText;
							/*utils.logMe( format.nl2br( resp) );return;	*/
							
								if(document.getElementById('vars_holder'))
								{
									utils.remVarHolder();
									utils.addVarHolder();
									document.getElementById('vars_holder').text=resp;
								}
								else
								{
									utils.addVarHolder();
									document.getElementById('vars_holder').text=resp;
								}

							//window.setTimeout(function(){
														  searcher.populateListCombine(page_num,"basic","");
													   //},400);

						}
						else
						{
							/*var error=xhr.responseStatus+"||"+xhr.responseText;
							var text=document.createTextNode(xhr.responseText);
							logWindow.appendChild(text);*/
						}
						return;
					}

			try
			{
				 xhr.open("GET","php/processes/get_vintages_by_label_id_process.php?"+getData,true);
				 xhr.send(null);
			}
			catch(error)
			{
			}
	}//end get labels

	this.getVintagesForLabelAdvancedSearch = function(winery,winlabel,var_id,region,vint_from,vint_to,score100,score20,ranking,price_range,page_num)
	{
		this.clearVintages();
		//this.getLists();

		if(window.XMLHttpRequest)
		{
			var xhr = new XMLHttpRequest();
		}
		else if (window.ActiveXObject)
		{
			var xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}

			var getData="";
				getData+="type=advanced-search&winery="+encodeURI(winery)+"&winlabel="+encodeURI(winlabel)+"&var_id="+var_id+"&region="+region+"&vint_from="+vint_from+"&vint_to="+vint_to+"&score100="+score100+"&score20="+score20+"&ranking="+ranking+"&price_range="+price_range+"&context=search&refresh="+Math.random();
				//alert(getData);
				xhr.onreadystatechange=function()
											{
						if(xhr.readyState==4)
						{	var resp=this.responseText;
							/*utils.logMe( format.nl2br( resp) );return;	*/

								if(document.getElementById('vars_holder'))
								{
									utils.remVarHolder();
									utils.addVarHolder();
									document.getElementById('vars_holder').text=resp;
								}
								else
								{
									utils.addVarHolder();
									document.getElementById('vars_holder').text=resp;
								}

								//window.setTimeout(function(){
														  searcher.populateList(page_num);
													   //},400);

						}
						else
						{
							/*var error=xhr.responseStatus+"||"+xhr.responseText;
							var text=document.createTextNode(xhr.responseText);
							logWindow.appendChild(text);*/
						}
						return;
					}

			try
			{
				 xhr.open("GET","php/processes/get_vintages_by_label_id_process.php?"+getData,true);
				 xhr.send(null);
			}
			catch(error)
			{
			}
	}//end get labels
	
	
	
	this.getVintagesForLabelAdvancedSearchCombine = function(winery,winlabel,var_id,region,vint_from,vint_to,score100,score20,ranking,price_range,page_num)
	{
		this.clearVintages();
		//this.getLists();

		if(window.XMLHttpRequest)
		{
			var xhr = new XMLHttpRequest();
		}
		else if (window.ActiveXObject)
		{
			var xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}

			var getData="";
				getData+="type=advanced-search&winery="+encodeURI(winery)+"&winlabel="+encodeURI(winlabel)+"&var_id="+var_id+"&region="+region+"&vint_from="+vint_from+"&vint_to="+vint_to+"&score100="+score100+"&score20="+score20+"&ranking="+ranking+"&price_range="+price_range+"&context=search&refresh="+Math.random();
				//alert(getData);
				xhr.onreadystatechange=function()
											{
						if(xhr.readyState==4)
						{	var resp=this.responseText;
							/*utils.logMe( format.nl2br( resp) );return;	*/

								if(document.getElementById('vars_holder'))
								{
									utils.remVarHolder();
									utils.addVarHolder();
									document.getElementById('vars_holder').text=resp;
								}
								else
								{
									utils.addVarHolder();
									document.getElementById('vars_holder').text=resp;
								}

								//window.setTimeout(function(){
								
								//winery,winlabel,var_id,region,vint_from,vint_to,score100,score20,ranking,price_range
								urlMore="find_wine3.php?winery="+winery+"&winlabel="+winlabel+"&var_id="+var_id+"&region="+region+"&vint_from="+vint_from+"&vint_to="+vint_to+"&score100="+score100+"&score20="+score20+"&ranking="+ranking+"&price_range="+price_range+"&type=advanced-search&submit=Search";
														  searcher.populateListCombine(page_num,"advance",urlMore);
													   //},400);

						}
						else
						{
							/*var error=xhr.responseStatus+"||"+xhr.responseText;
							var text=document.createTextNode(xhr.responseText);
							logWindow.appendChild(text);*/
						}
						return;
					}

			try
			{
				 xhr.open("GET","php/processes/get_vintages_by_label_id_process.php?"+getData,true);
				 xhr.send(null);
			}
			catch(error)
			{
			}
	}//end get labels combine


	this.triggerAjax = function()
	{
		//this.ajaxTimeout_ = window.setTimeout(function() {
															searcher.ajaxFind();
														//},700);
	}

	this.suspendAjax = function()
	{
		this.ajax_xhr_=null;
		window.clearTimeout(this.ajaxTimeout_);

	}

	this.ajaxFind = function()
	{
		this.clearVintages();

		var keywords = document.getElementById('keywords').value;


		if(window.XMLHttpRequest)
		{
			this.ajax_xhr_  = new XMLHttpRequest();
		}
		else if (window.ActiveXObject)
		{
			this.ajax_xhr_  = new ActiveXObject("Microsoft.XMLHTTP");
		}

			var getData="";
				getData+="keywords="+encodeURI(keywords)+"&refresh="+Math.random();

			this.ajax_xhr_.onreadystatechange=function()
											{
												if(this.readyState==4)
												{	var resp=this.responseText;
												/*utils.logMe( format.nl2br( resp) );return;		*/
													document.getElementById('searchResults').innerHTML=resp;
												
												}
												else
												{
													/*var error=xhr.responseStatus+"||"+xhr.responseText;
													var text=document.createTextNode(xhr.responseText);
													logWindow.appendChild(text);*/
												}

											}


			try
			{
				 this.ajax_xhr_.open("GET","php/processes/get_wines_ajax.php?"+getData,true);
				 this.ajax_xhr_.send(null);
			}
			catch(error)
			{ //if(window.console){ //console.log(error); }
			//
	//			var text=document.createTextNode("ERROR: "+error.name+"|"+error.description+"|"+error.lineNumber);
	//			logWindow.appendChild(text);
	//			var br=document.createElement("br");
	//			logWindow.appendChild(br);
			}
	}//end get labels

	this.getLatestVintages = function()
	{ 
		////console.log('getLatestVintages');
		
		this.clearVintages();
		if(window.XMLHttpRequest)
		{
			var xhr = new XMLHttpRequest();
		}
		else if (window.ActiveXObject)
		{
			var xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}

			var getData="context=search&refresh="+Math.random();

			xhr.onreadystatechange=function()
											{
												if(xhr.readyState==4)
												{	var resp=this.responseText;
													/*utils.logMe( format.nl2br( resp) );return;	*/

														if(document.getElementById('vars_holder'))
														{
															utils.remVarHolder();
															utils.addVarHolder();
															document.getElementById('vars_holder').text=resp;
														}
														else
														{
															utils.addVarHolder();
															document.getElementById('vars_holder').text=resp;
														}

													//window.setTimeout(function(){
																				  searcher.populateList();
																			  // },400);

												}
												else
												{
													/*var error=xhr.responseStatus+"||"+xhr.responseText;
													var text=document.createTextNode(xhr.responseText);
													logWindow.appendChild(text);*/
												}
												return;
											}

			try
			{
				 xhr.open("GET","php/processes/get_latest_vintages_process.php?"+getData,true);
				 xhr.send(null);
			}
			catch(error)
			{
			//
	//			var text=document.createTextNode("ERROR: "+error.name+"|"+error.description+"|"+error.lineNumber);
	//			logWindow.appendChild(text);
	//			var br=document.createElement("br");
	//			logWindow.appendChild(br);
			}
	}//getLatestVintages


	this.searchPro=function()
	{  
		////console.log('searchPro');
		this.clearVintages();
		var win_name		=	document.getElementById('win_name').value;

		var lab_sub_label	=	document.getElementById('lab_sub_label').value;
		var lab_variety		=	document.getElementById('lab_variety').value;
		var lab_region		=	document.getElementById('lab_region').value;

		var lab_rating_5	=	document.getElementById('lab_rating_5').value;
		var price_range		=	document.getElementById('price_range').value;

		var score_100_from	=	document.getElementById('score_100_from').value;
		var score_100_to	=	document.getElementById('score_100_to').value;

		var score_20_from	=	document.getElementById('score_20_from').value;
		var score_20_to		=	document.getElementById('score_20_to').value;

		var vint_from		=	document.getElementById('vint_from').value;
		var vint_to			=	document.getElementById('vint_to').value;

			var listUrl="php/processes/get_search_list_pro.php?";
		    var getData="win_name="+encodeURI(win_name)+"&lab_sub_label="+encodeURI(lab_sub_label)+"&lab_variety="+lab_variety;
				getData+="&lab_region="+lab_region+"&lab_rating_5="+lab_rating_5+"&lab_price_range="+price_range;
				getData+="&score_100_from="+score_100_from+"&score_100_to="+score_100_to;
				getData+="&score_20_from="+score_20_from+"&score_20_to="+score_20_to;
				getData+="&vint_from="+vint_from+"&vint_to="+vint_to;
				getData+="&refresh_forcer="+Math.random();
			listUrl+=getData;

			 if(window.XMLHttpRequest)
			 {
				var xhr2 = new XMLHttpRequest();
			 }
			 else if (window.ActiveXObject)
			 {
				var xhr2= new ActiveXObject("Microsoft.XMLHTTP");
			 }


			xhr2.onreadystatechange=function()
										{
											if(this.readyState==4 && this.status == 200)
											{
												var resp = this.responseText;
									/*	utils.logMe( format.nl2br( resp) );		return;
										*/
													if(document.getElementById('vars_holder'))
													{
														utils.remVarHolder();
														utils.addVarHolder();
														document.getElementById('vars_holder').text=resp;
													}
													else
													{
														utils.addVarHolder();
														document.getElementById('vars_holder').text=resp;
													}

												//window.setTimeout(function(){
																		   	  searcher.populateList();
																		   //},400);

											}
											else
											{
													//utils.logMe( format.nl2br( resp) );
											}
										};

			try
			{
				 xhr2.open("GET",listUrl,true);

				 xhr2.send(null);
			}
			catch(error)
			{
				/*var logWindow=document.getElementById('logWindow');
				var text=document.createTextNode("ERROR: "+error.name+"|"+error.description+"|"+error.lineNumber);
				logWindow.appendChild(text);
				var br=document.createElement("br");
				logWindow.appendChild(br);*/
			}
	}

	this.populateList=function(page_num)
	{ //alert('populateList');

		if(this.vintages_==null || this.vintages_[0]=='No Vintages')
		{

			var headText="Showing 0 Search Results";

			this.setHeading(headText);
			return;
		}

		
		if(this.vintages_.length>1)
		{
			headText+=" Search Results";
		}
		else
		{
			headText+=" Search Result";
		}

		this.setHeading(headText);

		var html;
		var start = (page_num - 1) * 10;
		var end = page_num * 10;
		if (this.vintages_.length < end) {
			end = this.vintages_.length;
		}
		//alert('start: '+start+' - end: '+end+' - length: '+this.vintages_.length+' - page_num: '+page_num);

		for(var i=start;i<end;i++)
		{

			//html = tipper.makeListing(i, this.vintages_[i],'search');
			html = tipper.makeListingForSearch(i, this.vintages_[i],'search');
			 

			this.listArea_.innerHTML+=html;

		}

		// initialize accordion for the new html
		//initAccordion();
		initAccordionForSearch();

	}
	
	
	this.populateListCombine=function(page_num,src_type,url_more)
	{ //alert('populateList');

		if(this.vintages_==null || this.vintages_[0]=='No Vintages')
		{

			var headText="Showing 0 Search Results";

			this.setHeading(headText);
			return;
		}

		var headText='Showing '+this.vintages_.length;
		if(this.vintages_.length>1)
		{
			headText+=" Search Results";
		}
		else
		{
			headText+=" Search Result";
		}

		this.setHeading(headText);

		var html;
		var start = (page_num - 1) * 10;
		var end = page_num * 10;
		if (this.vintages_.length < end) {
			end = this.vintages_.length;
		}
		//alert('start: '+start+' - end: '+end+' - length: '+this.vintages_.length+' - page_num: '+page_num);

		for(var i=start;i<end;i++)
		{

			html = tipper.makeListingForSearch(i, this.vintages_[i],'search');

			this.listArea_.innerHTML+=html;

		}
		
		if(this.vintages_.length>10){
			
		if(src_type=="advance"){
		this.listArea_.innerHTML+="<table width=\"100%\"><tr><td align=\"right\" class=\"pg-link bold-red-link\" onclick=\"location.href='"+url_more+"'\" >Full Listing ></td></tr><table>";
				
		}else{
		
		this.listArea_.innerHTML+="<table width=\"100%\"><tr><td align=\"right\" class=\"pg-link bold-red-link\" onclick=\"location.href='find_wine3.php?wine="+$("#wine-combine").attr('value')+"'\" >Full Listing ></td></tr><table>";
		}
		
		}
		//this.listArea_.innerHTML+='<table>';
		// initialize accordion for the new html
		//initAccordion();
		initAccordionForSearch();

	}


this.makeListing = function(index)
	{ //alert('makeListing');

			var vintage		=	this.vintages_[index];

			var	win_id		=	vintage['win_id'];
			var	id			=	vintage['id'];
			var name		=	vintage['name'];
			var label		=	vintage['label'];
			var	variety		=	vintage['variety'];
			var year		=	vintage['year'];
			var thumb		=	(vintage['thumb']!=null && vintage['thumb']!='')?vintage['thumb']:'na_thumb.png';
			var logo_dir	=	utils.getLogoDir(vintage['thumb']);
			var region		=	vintage['region'];
			var price		=	vintage['price_range'];
			var type		=	vintage['type'];
			var score20		=	vintage['score20'];
			var score100	=	vintage['score100'];
			var colorCode	=	vintage['colorCode'];
			var from		=	vintage['from'];
			var to			=	vintage['to'];
			var dir			=	utils.getLogoDir(name);

			var listingDiv = document.createElement("div");
				listingDiv.setAttribute("id","listing_"+index+"_div");
				//listingDiv.setAttribute("class","listingDiv");
				listingDiv.className = 'listingDiv';

			var divTop = document.createElement("div");
				divTop.setAttribute("id","listing_"+index+"_header");
				//divTop.setAttribute("class","listingHeader");
				divTop.className = 'listingHeader';
				divTop.onmouseover=function()
									{
										this.style.cursor="pointer";
									}

				divTop.onclick=function()
									{
										var index	= parseInt( this.id.replace('listing_','').replace('_header','') );
										searcher.toggleElements(index);
									}

			var headerBar =	 document.createElement("img");
				headerBar.setAttribute("id","headerBar"+index);
				//headerBar.setAttribute("class","headerBarImg");
				headerBar.className = 'headerBarImg';
				headerBar.src=bgs['inActiveBar'].src

				divTop.appendChild( headerBar );

			var no	=	document.createElement("div");
				//no.setAttribute("class","listingNo");
				no.className = 'listingNo';
				no.appendChild(document.createTextNode(index+1));

				divTop.appendChild( no );

			var chkDiv	=	document.createElement("div");
				//chkDiv.setAttribute("class","chkDiv");
				chkDiv.className = 'chkDiv';

			var vintIdChk=frmFact.createCheck('vintId'+index,false);
				vintIdChk.value=id;
				vintIdChk.onclick=function(e)
									{
										 var evt=window.event || e ;
											 evt.cancelBubble=true;
									}
				chkDiv.appendChild( vintIdChk );
				divTop.appendChild( chkDiv );

			var winName	=	document.createElement("div");
				//winName.setAttribute("class","winNameListing");
				winName.className = 'winNameListing';
				winName.appendChild( document.createTextNode(name) );
				divTop.appendChild( winName );

			var vintLabel	=	document.createElement("div");
				//vintLabel.setAttribute("class","labelListing");
				vintLabel.className = 'labelListing';
				vintLabel.appendChild( document.createTextNode(label) );
				divTop.appendChild( vintLabel );

			var varietyLabel	=	document.createElement("div");
				//varietyLabel.setAttribute("class","varietyListing");
				varietyLabel.className = 'varietyListing';
				varietyLabel.appendChild( document.createTextNode(variety) );
				divTop.appendChild( varietyLabel );


			var yearLabel	=	document.createElement("div");
				//yearLabel.setAttribute("class","yearListing");
				yearLabel.className = 'yearListing';
				yearLabel.appendChild( document.createTextNode(year) );
				divTop.appendChild( yearLabel );


				//Bottom section of popup - visible on marker click
			var content=document.createElement("div");
				content.setAttribute("id","listing_"+index+"_content");
				//content.setAttribute("class","listingContent");
				content.className = 'listingContent';

			var img 	= document.createElement('img');
				//img.setAttribute('class','label_thumb');
				img.className = 'label_thumb';
				if(thumb!='na_thumb.png')
				{
					var label_src = "images/items/labels/"+logo_dir+"/thumbs/"+thumb;
				}
				else
				{
					var label_src = "images/items/na_thumb.png";
				}
				img.setAttribute('src',label_src);
				//img.setAttribute('label_src',label_src);utils.logMe(thumb+" "+label_src);

				content.appendChild(img);

			var leftCol	=	document.createElement("div");
				//leftCol.setAttribute("class","leftColListing");
				leftCol.className = 'leftColListing';

			var regionDiv		=	document.createElement("div");
				//regionDiv.setAttribute("class","regionListing");
				regionDiv.className = 'regionListing';
				regionDiv.appendChild( document.createTextNode(region) );
				leftCol.appendChild( regionDiv );


			var lab_id=vintage['lab_id'];
			var noteLnk=document.createElement('a');
				//noteLnk.setAttribute('class','normal');
				noteLnk.className = 'normal';
				noteLnk.setAttribute('href',"javascript:notes.init("+lab_id+","+year+",'search')");
				noteLnk.setAttribute('target','_self');
				noteLnk.appendChild( document.createTextNode("Tasting Note &gt;") );
				leftCol.appendChild( noteLnk );

				content.appendChild( leftCol );

			var rightCol	=	document.createElement("div");
				//rightCol.setAttribute("class","rightColListing");
				rightCol.className = 'rightColListing';

			var priceDiv	=	document.createElement("div");
				//priceDiv.setAttribute("class","priceListing");
				priceDiv.className = 'priceListing';

				priceDiv.appendChild(document.createTextNode(price));
				rightCol.appendChild(priceDiv);


			var scoreDiv 	= document.createElement('div');

				if(type=='red')
				{
					//scoreDiv.setAttribute('class','scoreBgRed');
					scoreDiv.className = 'scoreBgRed';
				}
				else
				{
					//scoreDiv.setAttribute('class','scoreBgWhite');
					scoreDiv.className = 'scoreBgWhite';
				}
				scoreDiv.appendChild( document.createTextNode(score100) );
				rightCol.appendChild(scoreDiv);

			var img 	= document.createElement('img');
				//img.setAttribute('class','typeImgListing');
				img.className = 'typeImgListing';
				if(type=='red')
				{
					img.setAttribute('src',"images/interface/icons/redWine.png");
				}
				else
				{
					img.setAttribute('src',"images/interface/icons/whiteWine.png");
				}

				rightCol.appendChild(img);

			var drinkDiv	=	document.createElement("div");
				//drinkDiv.setAttribute("class","drinkWhenList");
				drinkDiv.className = 'drinkWhenList';
			var drinkHTML= "<table cellpadding='5'><tr><td colspan='2'><strong>Drink From</strong></td></tr><tr><td bgcolor='"+colorCode+"'>"+from+"</td><td bgcolor='"+colorCode+"'>"+to+"</td> </tr></table>";
				drinkDiv.innerHTML=drinkHTML;
				rightCol.appendChild(drinkDiv);

				content.appendChild(rightCol);

				listingDiv.appendChild(divTop);
				listingDiv.appendChild(content);
				this.listArea_.appendChild(listingDiv);


	}

	this.getPickList=function()
	{ //alert('getPickList');
			
			this.pickedVintages_		=	null;


			var listUrl="php/processes/get_picks_list_process.php?";
		    var getData="context=searcher&refresh_forcer="+Math.random();
			listUrl+=getData;

			 if(window.XMLHttpRequest)
			 {
				var xhr2 = new XMLHttpRequest();
			 }
			 else if (window.ActiveXObject)
			 {
				var xhr2= new ActiveXObject("Microsoft.XMLHTTP");
			 }


			xhr2.onreadystatechange=function()
										{
											if(this.readyState==4 && this.status == 200)
											{
												var resp = this.responseText;
										/*utils.logMe( format.nl2br( resp) );		return;
										*/
													if(document.getElementById('vars_holder'))
													{
														utils.remVarHolder();
														utils.addVarHolder();
														document.getElementById('vars_holder').text=resp;
													}
													else
													{
														utils.addVarHolder();
														document.getElementById('vars_holder').text=resp;
													}

												//window.setTimeout(function(){
																	//searcher.populatePicks();
															/// Dang: redirect to call tipper populatePicsk
															tipper.populatePicks(searcher.pickArea_,searcher.pickedVintages_);
																		   //},400);

											}
											else
											{
													//utils.logMe( format.nl2br( resp) );
											}
										};

			try
			{
				 xhr2.open("GET",listUrl,true);

				 xhr2.send(null);
			}
			catch(error)
			{
				/*var logWindow=document.getElementById('logWindow');
				var text=document.createTextNode("ERROR: "+error.name+"|"+error.description+"|"+error.lineNumber);
				logWindow.appendChild(text);
				var br=document.createElement("br");
				logWindow.appendChild(br);*/
			}
	}

	this.populatePicks=function()
	{  //alert('populatePicks');
		var picksForm	=	document.getElementById('tipperPicksList');

		this.clearPicks();

		if(this.pickedVintages_==null)
		{

			var headText				=	"No Top Picks Available";
			this.pickArea_.innerHTML	=	headText;
			return;
		}
		else
		{
			var listHTML="<table cols='4' id='picksTable' cellpadding='5' cellspacing='0'>";
			for(var i=0;i<this.pickedVintages_.length;i++)
			{
				var vint		=	this.pickedVintages_[i];
				var vint_id		=	vint['vint_id'];
				var lab_id		=	vint['lab_id'];

				var name		=	vint['name'];
				var label		= 	vint['label'];
				var variety		=	vint['variety'];
				var type		=	vint['type'];
				var region		=	format.nl2br(vint['region']);
				var price_range	=	vint['price_range'];
				var score100		=	vint['score100'];
				var colorCode	=	vint['colorCode'];

				var year		=	vint['year'];
				var	from		=	vint['from'];
				var to			=	vint['to'];

				if(utils.isEven(i))
				{
					listHTML+="<tr class='grey_row'>";
				}
				else
				{
					listHTML+="<tr>";
				}

				listHTML+="<td id='col1Picks'>"+eval(i+1)+" </td>";

				listHTML+="<td id='col2Picks'><input type='checkbox' id='vintId"+i+"' value='"+vint_id+"'/></td>";
				listHTML+="<td id='col3Picks'>";
				listHTML+="<strong>"+utils.titleCase( name)+"</strong><br>";
				listHTML+=label+" "+variety+"<br>";
				listHTML+=year+" <em>"+region+"</em><br>";
//				listHTML+="<a href=\"javascript:notes.init("+lab_id+","+year+",'search')\"  class='normal'><strong> ></strong></a>";
				listHTML+="<a href=\"tasting_note.php?lid="+lab_id	+"\">Tasting Note &gt;</a>";
				listHTML+="</td>";

				listHTML+="<td id='col4Picks'>";

				if(type=='red')
				{
					listHTML+="<div class='scoreBgRedList'>"+score100+"</div>";
					listHTML+="<img src='images/interface/icons/redWine.png'>";
				}
				else
				{
					listHTML+="<div class='scoreBgWhiteList'>"+score100+"</div>";
					listHTML+="<img src='images/interface/icons/whiteWine.png'>";
				}
				listHTML+="</td>";
				listHTML+='</tr>';
			}//end foreach pickedVintages_
				listHTML+='</table>';
				this.pickArea_.innerHTML=listHTML;
		}//end else this.pickedVintages_

	}//end populate picklist


	this.loadVarieties = function()
	{  //console.log('loadVarieties');
			var listUrl="php/processes/get_varieties_process.php?";
		    var getData="context=searcher&refresh_forcer="+Math.random();
			listUrl+=getData;

		 if(window.XMLHttpRequest)
			 {
				var xhr2 = new XMLHttpRequest();
			 }
			 else if (window.ActiveXObject)
			 {
				var xhr2= new ActiveXObject("Microsoft.XMLHTTP");
			 }


			xhr2.onreadystatechange=function()
										{
											if(this.readyState==4 && this.status == 200)
											{
												var resp = this.responseText;/*
												utils.logMe( format.nl2br( resp) );return;
										*/
													if(document.getElementById('vars_holder'))
													{
														utils.remVarHolder();
														utils.addVarHolder();
														document.getElementById('vars_holder').text=resp;
													}
													else
													{
														utils.addVarHolder();
														document.getElementById('vars_holder').text=resp;
													}

												//window.setTimeout(function(){
																		   	  searcher.populateVarieties();
																		   //},400);

											}
											else
											{
												//utils.logMe(this.responseText);
											}
										};

			try
			{
				 xhr2.open("GET",listUrl,true);

				 xhr2.send(null);
			}
			catch(error)
			{
				/*var logWindow=document.getElementById('logWindow');
				var text=document.createTextNode("ERROR: "+error.name+"|"+error.description+"|"+error.lineNumber);
				logWindow.appendChild(text);
				var br=document.createElement("br");
				logWindow.appendChild(br);*/
			}
	}

	this.findWine = function()
	{ //console.log('findWine');
			var listUrl="php/processes/get_varieties_process.php?";
		    var getData="wine="+encodeURI(document.getElementById('wine').value)+"&refresh_forcer="+Math.random();
			listUrl+=getData;
			//alert(listUrl);
		 if(window.XMLHttpRequest)
			 {
				var xhr2 = new XMLHttpRequest();
			 }
			 else if (window.ActiveXObject)
			 {
				var xhr2= new ActiveXObject("Microsoft.XMLHTTP");
			 }


			xhr2.onreadystatechange=function()
										{
											if(this.readyState==4 && this.status == 200)
											{
												var resp = this.responseText;/*
												utils.logMe( format.nl2br( resp) );return;
										*/
													if(document.getElementById('vars_holder'))
													{
														utils.remVarHolder();
														utils.addVarHolder();
														document.getElementById('vars_holder').text=resp;
													}
													else
													{
														utils.addVarHolder();
														document.getElementById('vars_holder').text=resp;
													}

												//window.setTimeout(function(){
																		   	  searcher.populateList();
																		  // },400);

											}
											else
											{
												//utils.logMe(this.responseText);
											}
										};

			try
			{
				 xhr2.open("GET",listUrl,true);

				 xhr2.send(null);
			}
			catch(error)
			{
				/*var logWindow=document.getElementById('logWindow');
				var text=document.createTextNode("ERROR: "+error.name+"|"+error.description+"|"+error.lineNumber);
				logWindow.appendChild(text);
				var br=document.createElement("br");
				logWindow.appendChild(br);*/
			}
	}

	this.populateVarieties = function()
	{ //console.log('populateVarieties');
		var varietySelect 	 		= document.getElementById('varietyMenu');


		var option				= document.createElement('option');
			option.value 		= 'none specified';
			option.selected		= true;
			option.appendChild( document.createTextNode('Variety') );
			varietySelect.appendChild(option);

		for( var i = 0; i<this.varieties_.length; i++)
		{
			var variety	=this.varieties_[i];
			var id		= variety['id'];
			var text	= variety['text'];

			var option				= document.createElement('option');
				option.value 		= text;
				option.appendChild( document.createTextNode(text) );
				varietySelect.appendChild(option);
		}

	}

	this.getLists  = function()
	{ //console.log('getLists SC');
		var listUrl="php/processes/get_lists_process.php?";
		    var getData="memId="+memId+"&context=searcher&refresh_forcer="+Math.random();
			listUrl+=getData;

		 if(window.XMLHttpRequest)
			 {
				var xhr2 = new XMLHttpRequest();
			 }
			 else if (window.ActiveXObject)
			 {
				var xhr2= new ActiveXObject("Microsoft.XMLHTTP");
			 }


			xhr2.onreadystatechange=function()
										{
											if(this.readyState==4 && this.status == 200)
											{
												var resp = this.responseText;/*
												utils.logMe( format.nl2br( resp) );return;
										*/
													if(document.getElementById('vars_holder'))
													{
														utils.remVarHolder();
														utils.addVarHolder();
														document.getElementById('vars_holder').text=resp;
													}
													else
													{
														utils.addVarHolder();
														document.getElementById('vars_holder').text=resp;
													}

												//window.setTimeout(function(){
																		   	 (searcher.populateLists());
																		   //},400);

											}
											else
											{
												//utils.logMe(this.responseText);
											}
										};

			try
			{
				 xhr2.open("GET",listUrl,true);

				 xhr2.send(null);
			}
			catch(error)
			{
				/*var logWindow=document.getElementById('logWindow');
				var text=document.createTextNode("ERROR: "+error.name+"|"+error.description+"|"+error.lineNumber);
				logWindow.appendChild(text);
				var br=document.createElement("br");
				logWindow.appendChild(br);*/
			}
	}//end get Lists

	this.populateLists= function()
	{
		//alert('populateLists');
		var selectList 	 		= document.getElementById('listSelectList');
		if (selectList) {
			var option				= document.createElement('option');
				option.value 		= 'None Selected';
				option.selected 	= true;
				option.appendChild( document.createTextNode('Select a list...') );
				selectList.appendChild(option);
		}

		var selectPicks 	 		= document.getElementById('listSelectPicks');
		if (selectPicks) {
		var option				= document.createElement('option');
			option.value 		= 'None Selected';
			option.selected 	= true;
			option.appendChild( document.createTextNode('Select a list...') );
			selectPicks.appendChild(option);
		}



		for(var i=0;i<this.lists_.length;i++)
		{
			var listId=this.lists_[i]['listId'];
			var listTitle=(this.lists_[i]['listTitle']!='')?this.lists_[i]['listTitle']:'Enter a name here';


			if (selectList) {
			var option				= document.createElement('option');
				option.value 		= listId;
				option.appendChild( document.createTextNode(listTitle) );
				selectList.appendChild(option);
			}

			if (selectPicks) {
			var option				= document.createElement('option');
				option.value 		= listId;
				option.appendChild( document.createTextNode(listTitle) );
				selectPicks.appendChild(option);
			}
		}
	}

	
	
	this.addToListCombine = function(srcvint,listId)
	{
    	var listItems=new Array();
    	
		 //alert(srcvint+'  --  '+listId);
		 listItems.push(srcvint+'vi');
		 
	 	 
		//utils.logMe( utils.listArray(listItems) );
 
		var url="php/processes/add_items_to_list_process.php?";//
		//var url="php/processes/add_an_item_to_list_process.php?";
	    var getData="listId="+listId+"&listItems="+ encodeURI(listItems) +"&refresh_forcer="+Math.random();
			url+=getData;
		//document.write(url); return false;
		if(window.XMLHttpRequest)
			 {
				var xhr2 = new XMLHttpRequest();
			 }
			 else if (window.ActiveXObject)
			 {
				var xhr2= new ActiveXObject("Microsoft.XMLHTTP");
			 }


			xhr2.onreadystatechange=function()
										{
											if(this.readyState==4 && this.status == 200)
											{
												var resp = this.responseText;
																								
												//already in list
												if(resp.indexOf("already in list", 1)>1 ){
													alert("This wine is already in the list");
												}else if(resp.indexOf("can only add", 1)>1 ){
													
													document.getElementById('login-text').innerHTML="<p>You must be logged in to create a list that can hold more than 5 wines</p>";
													//$('#addwinelist-btn').click();
													
													$('#winelist-top-links-right').toggleClass('active');
													$('#winelist-login-register,#winelist-login-register-top').fadeToggle(150);
													
													
												}else{
													//alert("Wine added");
													
												}
												
											
											/*utils.logMe( format.nl2br( resp) );	return;
										*/
													if(document.getElementById('vars_holder'))
													{
														utils.remVarHolder();
														utils.addVarHolder();
														document.getElementById('vars_holder').text=resp;
													}
													else
													{
														utils.addVarHolder();
														document.getElementById('vars_holder').text=resp;
													}
											/*
												window.setTimeout(function(){
																		   	  cellar.populateList();
																		   },400);*/

											}
											else
											{
												//utils.logMe(this.responseText);
											}
										};

			try
			{
				 xhr2.open("GET",url,true);
				xhr2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				 xhr2.send(null);
			}
			catch(error)
			{
				/*var logWindow=document.getElementById('logWindow');
				var text=document.createTextNode("ERROR: "+error.name+"|"+error.description+"|"+error.lineNumber);
				logWindow.appendChild(text);
				var br=document.createElement("br");
				logWindow.appendChild(br);*/
			}

	}//end addItemsToList
	
	
	
	
	
	
	
	
	
	
	
	this.addToList = function(src)
	{

		var listSelect=document.getElementById(src);
		if(listSelect.selectedIndex==0)
		{
				alert('You must select a list to add to!');
				return;
		}

		var listId=listSelect.value;
			listSelect.selectedIndex=0;


		var listItems=new Array();
		if(src=='listSelectList')
		{
			var elems=document.getElementById('find_wine_form').elements;
		}

		if(src=='listSelectPicks')
		{
			var elems=document.getElementById('toppick_form').elements;
		}

			for(var i=0;i<elems.length;i++)
			{
				var elem=elems[i];
				if(elem.id.substr(0,4)=='vint' && elem.checked )
				{
					listItems.push(	elem.value+'vi' );
				}
				else
				{
					continue;
				}

			}//end for
		//utils.logMe( utils.listArray(listItems) );

		if(listItems.length==0)
		{
			alert('You must select at least one item to add');
			return;
		}


		var url="php/processes/add_items_to_list_process.php?";//
	    var getData="listId="+listId+"&listItems="+ encodeURI(listItems) +"&refresh_forcer="+Math.random();
			url+=getData;

		if(window.XMLHttpRequest)
			 {
				var xhr2 = new XMLHttpRequest();
			 }
			 else if (window.ActiveXObject)
			 {
				var xhr2= new ActiveXObject("Microsoft.XMLHTTP");
			 }


			xhr2.onreadystatechange=function()
										{
											if(this.readyState==4 && this.status == 200)
											{
												var resp = this.responseText;
												alert('wine added');
											/*utils.logMe( format.nl2br( resp) );	return;
										*/
													if(document.getElementById('vars_holder'))
													{
														utils.remVarHolder();
														utils.addVarHolder();
														document.getElementById('vars_holder').text=resp;
													}
													else
													{
														utils.addVarHolder();
														document.getElementById('vars_holder').text=resp;
													}
											/*
												window.setTimeout(function(){
																		   	  cellar.populateList();
																		   },400);*/

											}
											else
											{
												//utils.logMe(this.responseText);
											}
										};

			try
			{
				 xhr2.open("GET",url,true);
				xhr2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				 xhr2.send(null);
			}
			catch(error)
			{
				/*var logWindow=document.getElementById('logWindow');
				var text=document.createTextNode("ERROR: "+error.name+"|"+error.description+"|"+error.lineNumber);
				logWindow.appendChild(text);
				var br=document.createElement("br");
				logWindow.appendChild(br);*/
			}

	}//end addItemsToList
	
	

	this.selectAll = function(target)
	{
		if(target=='list')
		{
			var elems	=document.getElementById('find_wine_form').elements;
			var selectChk	=document.getElementById('selectAllSearch');
		}
		else if(target=='picks')
		{
			var elems=document.getElementById('toppick_form').elements;
			var selectChk	=document.getElementById('selectAllPicks');
		}
		else if(target=='note')
		{
			var elems=document.forms[3].elements;
			var selectChk	=document.getElementById('selectAllNote');
		}


			for(var i=0;i<elems.length;i++)
			{
				var elem=elems[i];
				if(elem.id.substr(0,4)=='vint')
				{
						if( selectChk.checked )
						{
								elem.checked=true;
						}
						else
						{
								elem.checked=false;
						}
				}
				else
				{

					continue;
				}

			}//end for
	}//end selectAllList

	this.getListTitle=function(listId)
	{
		var index =utils.findIndex('listId',listId,this.lists_);
		var title = this.lists_[index]['listTitle'];
		return title;
	}

	this.setHeading=function(text)
	{
		document.getElementById('search_result_text').innerHTML=text;
		////this.listArea_.innerHTML=text;
	}

	this.toggleElements=function(index)
	{

		for(var i=0;i<this.vintages_.length;i++)
		{
			var listingDiv   =	document.getElementById("listing_"+i+"_div");
			var header		 =	document.getElementById("headerBar"+i);
			var content	     =	document.getElementById("listing_"+i+"_content");

			if(i==index)
			{
				if(content.style.display=='block')
				{

					header.src=bgs['inActiveBar'].src
					listingDiv.style.height	='55px';
					content.style.display	="none";
				}
				else
				{
					header.src=bgs['activeBar'].src
					listingDiv.style.height	='auto';
					content.style.display	="block";
				}
			}
			else
			{
					header.src=bgs['inActiveBar'].src
			  		listingDiv.style.height	='55px';
					content.style.display	="none";
			}
		}
	}//end toggle elements


	this.setHeightOuter=function(height)
	{
		this.contentArea_.style.height=height+"px";
	}

	this.setHeightInner=function(height)
	{
		this.listArea_.style.height=height+"px";
	}

	this.clearContent=function()
	{
		this.contentArea_.innerHTML='';
	}

	this.clearVintages=function()
	{
		if(this.listArea_!=null)
		{
			this.listArea_.innerHTML='';
		}
		this.vintages_				=	null;
		document.getElementById('search_result_text').innerHTML='';

	}

	this.clearPicks=function()
	{
		this.pickArea_.innerHTML='';
	}

	this.clearLabels  = function()
	{
		document.getElementById('label_menu').length=0;
		this.labels_				=	null;
	}


	this.loadPrices = function()
	{
			var listUrl="php/processes/get_prices_process.php?";
		    var getData="context=searcher&refresh_forcer="+Math.random();
			listUrl+=getData;

		 if(window.XMLHttpRequest)
			 {
				var xhr2 = new XMLHttpRequest();
			 }
			 else if (window.ActiveXObject)
			 {
				var xhr2= new ActiveXObject("Microsoft.XMLHTTP");
			 }


			xhr2.onreadystatechange=function()
										{
											if(this.readyState==4 && this.status == 200)
											{
												var resp = this.responseText;/*
												utils.logMe( format.nl2br( resp) );return;
										*/
													if(document.getElementById('vars_holder'))
													{
														utils.remVarHolder();
														utils.addVarHolder();
														document.getElementById('vars_holder').text=resp;
													}
													else
													{
														utils.addVarHolder();
														document.getElementById('vars_holder').text=resp;
													}

												//window.setTimeout(function(){
																		   	  searcher.populatePrices();
																		  // },400);

											}
											else
											{
												//utils.logMe(this.responseText);
											}
										};

			try
			{
				 xhr2.open("GET",listUrl,true);

				 xhr2.send(null);
			}
			catch(error)
			{
				/*var logWindow=document.getElementById('logWindow');
				var text=document.createTextNode("ERROR: "+error.name+"|"+error.description+"|"+error.lineNumber);
				logWindow.appendChild(text);
				var br=document.createElement("br");
				logWindow.appendChild(br);*/
			}
	}

	this.populatePrices = function()
	{
		var priceSelect 	 		= document.getElementById('price_range');


		var option				= document.createElement('option');
			option.value 		= 'None Selected';
			option.selected		= true;
			option.appendChild( document.createTextNode('Price Range') );
			priceSelect.appendChild(option);

		for( var i = 0; i<this.prices_.length; i++)
		{
			var price	=this.prices_[i];
			var id		= price['id'];
			var text	= price['text'];

			var option				= document.createElement('option');
				option.value 		= id;
				option.appendChild( document.createTextNode(text) );
				priceSelect.appendChild(option);
		}

	}
}//end class SearchContent

var	searcher		=	new SearchContent();

