// JavaScript Document

var uploadImage = new Image;
var uploadImageOff = new Image;
uploadImage.src="/Images/uploadButton.gif";
uploadImageOff.src="/Images/uploadButtonOff.gif";

var ButtonOn = new Image;
var ButtonOff = new Image;
var CheckboxOn = new Image;
var CheckboxOff = new Image;
ButtonOn.src="/Images/button.gif";
ButtonOff.src="/Images/button2.gif";
CheckboxOn.src="/Images/checkbox2.gif";
CheckboxOff.src="/Images/checkbox.gif";

var reviewText = ""
var addWineText = "";
var lastWineSearch = "";
var overImage = 0;
var loaded = false;
var clicked = false;
var overImageID = "";

var lastSearch = 0;

var ImageThumbsUp = new Image;
var ImageThumbsUpFill = new Image;
var ImageThumbsEven = new Image;
var ImageThumbsEvenFill = new Image;
var ImageThumbsDown = new Image;
var ImageThumbsDownFill = new Image;
ImageThumbsUp.src = "/Images/thumbsup.gif";
ImageThumbsUpFill.src = "/Images/thumbsupfill.gif";
ImageThumbsEven.src = "/Images/thumbseven.gif";
ImageThumbsEvenFill.src = "/Images/thumbsevenfill.gif";
ImageThumbsDown.src = "/Images/thumbsdown.gif";
ImageThumbsDownFill.src = "/Images/thumbsdownfill.gif";

var DownArrowGray = new Image;
var DownArrow = new Image;
DownArrow.src="/Images/downarrow.gif";
DownArrowGray.src="/Images/downarrowgray.gif";
var UpArrowGray = new Image;
var UpArrow = new Image;
UpArrow.src="/Images/uparrow.gif";
UpArrowGray.src="/Images/uparrowgray.gif";

var uploadDialog = null;
var wineReview = -1;
var imageUploaded = false;
var HelpModule = null;
var PictureModule = null;
var QuickViewModule = null;
var ReviewHelpModule = null;
var uploadWarningDialog = null;
var toolTip = null;
var promptWarningDialog = null;
var winePage = 0;
var addWineID = 0;
var facebookSubmit = 0;


var wineryDataSet = null;
var wineryAutoComplete = null;
var designatorDataSet = null;
var designatorAutoComplete = null;

var MagModule = null;
var bigImageOut = 1;
var overImage = 0;


var oldSearch = null;
var	oldType = null;
var	oldRating = null;
var	oldPrice = null;
var	oldVarietal = null;
var	oldRegion = null;
var	oldSubRegion = null;

// ---- For Error Output----------------

var Error = false;
var ErrorText = "";
function addError(Message)
{
	Error = true;
	ErrorText += "<p>* " + Message + "</p>"
}

// ---------------------------------- Winery Auto Complete ---------------------------------------

/*
// format text display in autocomplete select box
var wineryFormat = function(oResultData, sQuery, sResultMatch) 
{ 
	return oResultData.city + ", " + oResultData.state;
}  */
var dataErrorHandler  = function( oSelf , sQuery ) 
{
	wineWarning("There was a communication error or your session timed out. Please refresh the page and try again.");
};
/*
// call page with new zip when an autocomplete selection is made
var itemSelected = function (sTyle, aArgs)
{
	var DataObj = aArgs[2]; // 0 is the AC instance, 1 the LI element
	document.getElementById("hiddenField").value = DataObj.zip; // don't seem to need this line...
	window.location = "/events/"+DataObj.zip;
}; */

// ------------------------------------ Wine Submit Prompt ----------------------------------------------

var promptWarning = function(warningText)
{
	promptWarningDialog.setHeader("<div class=\"hd\"><div class=\"tl\"></div><span>Where to?</span><div class=\"tr\"></div></div>");
	
	var bodyText = '<div class="dialogWrap"><div class="column_D"><table class="warningFormat" border="0" cellspacing="0" cellpadding="0"><tr><td>' + warningText + '</td></tr></table></div></div>';
	
	promptWarningDialog.setBody(bodyText);
	promptWarningDialog.render(document.body);		
	promptWarningDialog.show();
}

var promptYes = function() 
{
	promptWarningDialog.hide();
	window.location = '/wine/' + winePage;
}
var promptNo = function() 
{
	document.getElementById("controlPanel").innerHTML = "";
	promptWarningDialog.hide();
	BrowseWines();
}

promptWarningDialog = new YAHOO.widget.SimpleDialog("warningDialog", 
						{ 
							width: "350px", 
//							effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration:0.25}, 
							fixedcenter:true,
					    	zIndex:15000,
					  		modal: true,
	              			constraintoviewport : true, 
						    visible:false,
							draggable:false, 
							buttons: [ { text:"Yes", handler:promptYes, isDefault:true },
					  				   { text:"Cancel", handler:promptNo} ]
						});	

// ----------------------------------------------------For Loading Container --------------------------------------------
var LoadingContainer = 
		new YAHOO.widget.Panel("loadingDialog",  
			{ width:"80px", 
			  fixedcenter:true, 
			  close:false, 
			  draggable:false, 
			  zindex:15000,
			  visible:false
			} 
	);

// ----------------------------------------------------For QuickView --------------------------------------------

function fullView(wineID)
{
	window.location = '/wine/'+wineID;
}

function quickViewOut()
{
	QuickViewModule.hide();
}
var quickViewLoaded = function(o)
{
	LoadingContainer.hide();
	QuickViewModule.center();
	QuickViewModule.show();	
};
var quickViewStart = function(o)
{ 
	LoadingContainer.show();
};
var quickViewSuccess = function(o)
{ 
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		QuickViewModule.setBody(o.responseText);
		YAHOO.util.Event.addListener("QVWineImage", "load", quickViewLoaded);   // once the wine image is loaded, we're good to show
	}
};
var quickViewFailure = function(o)
{ 
	wineWarning("There was a communication error on the WineMcGee servers. Please try again later.");
};

function quickView(wineID)
{
	var callback = 
	{
		success:quickViewSuccess,
		failure:quickViewFailure,
		customevents: { onStart: quickViewStart },
		timeout: 5000
	}
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/quickview_s.php', callback, 'wineID='+wineID); 
	return false;
}

// ----------------------------------------------------Prepare for new wine submit--------------------------------------------
var wineSubmitStart = function(o)
{ 
	LoadingContainer.show();
}
var wineSubmitSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		winePage = o.responseText;
		
		addWineID = winePage;
		
		if (facebookSubmit == 1 && document.getElementById("FacebookTalk").checked)
		{
			facebookSubmit = 0;
			
			var callback = 
			{
				success: facebookPostSuccess,
				failure: wineSubmitFailure,
				customevents: { onStart: wineSubmitStart },
				timeout: 30000
			}
		
			YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
			var cObj = YAHOO.util.Connect.asyncRequest('POST', '/fbwineadd_s.php', callback, 'wineID='+addWineID); 
				
		}
		else if (twitterName.length > 0 && document.getElementById("TweetTalk").checked)
		{		
			tweetReview();
		}
		else
		{		
			promptWarning("Thank you for submitting a new wine to our database! Would you like to continue to the wine's new profile page on WineMcGee? Choose Yes to continue and Cancel to stay put.");
		}
	}
}
var wineSubmitFailure = function(o)
{ 
	wineWarning("There was a communication error on the WineMcGee servers. Please try again later.");
}

function prepareWineSubmit()
{
	var postString = "";

	// check to see that they have entered an appellation
	if (document.getElementById("RegionSelect").value == -1 && document.getElementById("AppSelect").value == -1)
	{
		addError("Please be as specific as possible with the wine's appellation.  You must at least enter the Region.");
	}
	else
	{
		postString += "region="+document.getElementById("RegionSelect").value+"&";				
		postString += "subRegion="+document.getElementById("AppSelect").value+"&";				
	}

	var currentDate = new Date();
	var currentYear = currentDate.getFullYear();
	var vintageYear = document.getElementById("VintageEdit").value
	
	// check to see that the year is a true year
	if ((!vintageYear.match(/\d{4}/) || vintageYear > currentYear || vintageYear < 1800) && vintageYear != 'NV')
	{
		addError("The Vintage Year does not appear to be valid. Please enter the four digit year.");	
	}
	else
		postString += "vintage="+vintageYear+"&";	
		
	var wineType = document.getElementById("WineTypeSelect").value;
	if (wineType == -1)
	{
		addError("Please select the wine type.");
	}
	else
	{
		postString += "wineType="+wineType+"&";	
	}

	if (document.getElementById("WineryNameEdit").value.length < 1)
	{
		addError("Please enter the name of the Winery/Producer.  You left this field blank.");	
	}
	else
	{
		var Winery = document.getElementById("WineryNameEdit").value;
		Winery = Winery.replace("&", "%26");
		postString += "winery="+Winery+"&";			
	}
	if (document.getElementById("WineNameEdit").value.length < 1)
	{
		addError("Please enter the name of the wine.  You left this field blank.");	
	}
	else
	{
		var WineName = document.getElementById("WineNameEdit").value;
		WineName = WineName.replace("&", "%26");
		postString += "wineName="+WineName+"&";			
	}	
	
	// check to see that there are no varietal issues	
	var var_IDs = [];
	
	var val1 = document.getElementById("VarietalAddOneSelect").value;
	var val2 = document.getElementById("VarietalAddTwoSelect").value;
	var val3 = document.getElementById("VarietalOneSelect").value;
	
	if (varietalOneModule.cfg.getProperty("visible") && val3 != -1)
		var_IDs.push(val3);
	if (typeof(varietalTwoModule) != 'undefined' && varietalTwoModule.cfg.getProperty("visible") && document.getElementById("VarietalTwoSelect").value != -1)
		var_IDs.push(document.getElementById("VarietalTwoSelect").value);
	if (typeof(varietalThreeModule) != 'undefined' && varietalThreeModule.cfg.getProperty("visible") && document.getElementById("VarietalThreeSelect").value != -1)
		var_IDs.push(document.getElementById("VarietalThreeSelect").value);
	if (varietalAddOneModule.cfg.getProperty("visible") && val1 != -1)
		var_IDs.push(val1);
	if (varietalAddTwoModule.cfg.getProperty("visible") && val2 != -1)
		var_IDs.push(val2);

	var a = 0;
	var b = 0;
	var prevError = false;
	var allBlank = true;
	for (a = 0; a < var_IDs.length; a++)
	{
		if (var_IDs[a] != -1)
			allBlank = false;
		if ((var_IDs[a] == 998 || var_IDs[a] == 999) && var_IDs.length > 1)
		{
			addError("You have entered 'Blend' or 'Not Listed' as one of the wine varietals, but you have also listed more than one varietal. When either of these two are chosen, they must be the only varietal present.");		
			prevError = true;
			break;		
		}	
		for (b = a+1; b < var_IDs.length; b++)
			if (var_IDs[a] == var_IDs[b] && !prevError)
			{
				addError("You have entered one or more duplicate varietals. Please correct this by removing one of the duplicates.");		
				prevError = true;
				break;
			}
	}			
	if (!prevError)  // if there were no varietal errors
	{
		if (allBlank)
			addError("You have not chosen any varietals for this wine.  Please choose a grape or select 'Proprietary Blend' or 'Not Listed' from the drop box.");		
		else
		{		
			for (a = 0; a < var_IDs.length; a++)
				postString += "varietal"+a+"=" + var_IDs[a] + "&";				
		}
	}
	

	var acidityVal = aciditySlider.getValue() / 20;
	
	if (aromaAddModule.cfg.getProperty("visible"))
		postString += "aromaAdd=1&";				
	
	// check to see that they have entered a real review, and chosen thumbs up, thumbs even, or down
	if (reviewAddModule.cfg.getProperty("visible"))
	{
		var Description = document.getElementById("reviewText").value;

		if (wineReview == -1)
			addError("You have not entered a thumbs up, even, or down rating.");	

		postString += "rating=" + wineReview + "&";				
		if (Description.length != 0)
		{
			Description = Description.replace("&", "%26");
			postString += "review=" + Description + "&";				
		}
	}
		
	if (tasteAddModule.cfg.getProperty("visible"))
	{
		var acidityVal = 0;
		var sweetVal = 0;
		var bitterVal = 0;
		var alcoholVal = 0;
		var tanninsVal = 0;
		var textureVal = 0;
		var balanceVal = 0;
		
		if (aciditySlider.getValue() != 0)
			acidityVal = aciditySlider.getValue() / 20  // return 0 or value (to avoid div by zero)
		if (sweetSlider.getValue() != 0)
			sweetVal = sweetSlider.getValue() / 20  
		if (bitterSlider.getValue() != 0)
			bitterVal = bitterSlider.getValue() / 20 
		if (alcoholSlider.getValue() != 0)
			alcoholVal = alcoholSlider.getValue() / 20  
		if (tanninsSlider.getValue() != 0)
			tanninsVal = tanninsSlider.getValue() / 20  
		if (textureSlider.getValue() != 0)
			textureVal = textureSlider.getValue() / 20  
		if (balanceSlider.getValue() != 0)
			balanceVal = balanceSlider.getValue() / 20  

		postString += "acidity=" + acidityVal + "&";				
		postString += "sweet=" + sweetVal + "&";				
		postString += "bitter=" + bitterVal + "&";				
		postString += "alcohol=" + alcoholVal + "&";				
		postString += "tannins=" + tanninsVal + "&";				
		postString += "texture=" + textureVal + "&";				
		postString += "balance=" + balanceVal + "&";				
		
		// check to see that they have modified the tasting metrics away from default
		if (acidityVal == 5 && sweetVal == 5 && bitterVal == 5 && alcoholVal == 5 && tanninsVal == 5 && textureVal == 5 && balanceVal == 5)
		{
			addError("You left all of the Taste metrics (e.g. Sweetness, Bitterness, etc) at their default values.  If you don't wish to review the taste of the wine, please remove this section from the review.");
		}
	}
	if (sightAddModule.cfg.getProperty("visible"))
	{
		var sliderVal = 0;
		var depthVal = 0;
		if (sightSlider.getValue() != 0)
			sliderVal = sightSlider.getValue() / 20  
		if (depthSlider.getValue() != 0)
			depthVal = depthSlider.getValue() / 20  	
	
		postString += "clarity=" + sliderVal + "&";				
		postString += "depth=" + depthVal + "&";				
	}
	if (imageUploaded && imageAddModule.cfg.getProperty("visible"))
		postString += "imageUpload=1&";				

	if (Error)
	{
		window.location = "#ErrorAnchor";
		document.getElementById("ErrorDiv").innerHTML = ErrorText;
		Error = false;
		ErrorText = "";
		return false;
	}

	else
	{
		var callback = 
		{
			success:wineSubmitSuccess,
			failure:wineSubmitFailure,
			customevents: { onStart: wineSubmitStart },
			timeout: 50000
		}
	
		YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
		var cObj = YAHOO.util.Connect.asyncRequest('POST', '/winesubmitcom_s.php', callback, postString); 
				
		return false;
	}
}



var tweetReview = function()
{
	var callback = 
	{
		success: twitterPostSuccess,
		failure: wineSubmitFailure,
		customevents: { onStart: wineSubmitStart },
		timeout: 30000
	}
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/tweetwineadd_s.php', callback, 'wineID='+addWineID);			
}
	
var twitterPostSuccess = function(o)
{ 
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		promptWarning("Thank you for submitting a new wine to our database! Would you like to continue to the wine's new profile page on WineMcGee? Choose Yes to continue and Cancel to stay put.");
		
	}

	LoadingContainer.hide();	
}

var facebookPostSuccess = function(o)
{ 
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else if (twitterName.length > 0 && document.getElementById("TweetTalk").checked)
	{		
		tweetReview();
	}	
	else
	{
		promptWarning("Thank you for submitting a new wine to our database! Would you like to continue to the wine's new profile page on WineMcGee? Choose Yes to continue and Cancel to stay put.");
		
	}

	LoadingContainer.hide();	
}

var load_feed = function()
{
	// first check to see if we have permissions on facebook to post this to the wall

	if (document.getElementById("FacebookTalk") && document.getElementById("FacebookTalk").checked)
	{
	
	    FB.Facebook.apiClient.users_hasAppPermission('publish_stream', FBPermission);
	}
	else
	{
		prepareWineSubmit();	
	}
}

var permissionResult = function(permissions)
{
	wineWarning("Facebook permissions should now be granted. Please re-submit the wine to complete!");	
};

var FBPermission = function(hasPermission)
{
	if (hasPermission)
	{
		// if we have permissions, try to submit the wine.
		facebookSubmit = 1;
		prepareWineSubmit();
	}
	else
	{
		// if we don't have permissions, try to get them
		FB.Connect.showPermissionDialog('publish_stream', permissionResult, true, null);
	}
};

function facebook_onlogin()
{
	window.location = "https://www.winemcgee.com/connect.php?return=wine/"+wineID;
}



// ----------------------------------------------------For Ajax Review Vote --------------------------------------------
function vote(currentVote)
{
	if (currentVote == 0)
	{
		wineReview = 0;
		document.getElementById("thumbVote").innerHTML = '<tr><td><img onclick="vote(0);" title="thumbs up" onmouseover="thumbZoneIn(this);" onmouseout="thumbZoneOut(this);" src="/Images/upthumb_to3.gif"  /></td><td><img onclick="vote(1);" title="ok" onmouseover="thumbZoneIn(this);" onmouseout="thumbZoneOut(this);" src="/Images/medthumb_t.gif"  /></td><td><img onclick="vote(2);" title="thumbs down" onmouseover="thumbZoneIn(this);" onmouseout="thumbZoneOut(this);" src="/Images/downthumb_t.gif"  /></td></tr>';
  
	}
	else if (currentVote == 1)
	{
		wineReview = 1;
		document.getElementById("thumbVote").innerHTML = '<tr><td><img onclick="vote(0);" title="thumbs up" onmouseover="thumbZoneIn(this);" onmouseout="thumbZoneOut(this);" src="/Images/upthumb_t.gif"  /></td><td><img onclick="vote(1);" title="ok" onmouseover="thumbZoneIn(this);" onmouseout="thumbZoneOut(this);" src="/Images/medthumb_to3.gif"  /></td><td><img onclick="vote(2);" title="thumbs down" onmouseover="thumbZoneIn(this);" onmouseout="thumbZoneOut(this);" src="/Images/downthumb_t.gif"  /></td></tr>';
	}
	else if (currentVote == 2)
	{
		wineReview = 2;
		document.getElementById("thumbVote").innerHTML = '<tr><td><img onclick="vote(0);" title="thumbs up" onmouseover="thumbZoneIn(this);" onmouseout="thumbZoneOut(this);" src="/Images/upthumb_t.gif"  /></td><td><img onclick="vote(1);" title="ok" onmouseover="thumbZoneIn(this);" onmouseout="thumbZoneOut(this);" src="/Images/medthumb_t.gif"  /></td><td><img onclick="vote(2);" title="thumbs down" onmouseover="thumbZoneIn(this);" onmouseout="thumbZoneOut(this);" src="/Images/downthumb_to3.gif"  /></td></tr>';
	}
}
// ----------------------------------------------------For Ajax Aroma Remove Click --------------------------------------------
var aromaRemoveStart = function(o)
{ 
	LoadingContainer.show();
}
var aromaRemoveSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		document.getElementById("aromaRegion").innerHTML = o.responseText;
//		window.location = "#aromaAnchor";
	}
}
var aromaRemoveFailure = function(o)
{ 
	wineWarning("There was a communication error on the WineMcGee servers. Please try again later.");
}

function aromaRemoveClick(minorAromaID)
{
	var callback = 
	{
		success:aromaRemoveSuccess,
		failure:aromaRemoveFailure,
		customevents: { onStart: aromaRemoveStart },
		timeout: 5000
	}
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/aromaremove_s.php', callback, 'minorAromaID='+minorAromaID); 
	return false;
}
	

// ----------------------------------------------------For Ajax Aroma Image Click --------------------------------------------
var aromaImageStart = function(o)
{ 
	LoadingContainer.show();
}
var aromaImageSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		document.getElementById("aromaRegion").innerHTML = o.responseText;
//		window.location = "#aromaAnchor";
	}
}
var aromaImageFailure = function(o)
{ 
	wineWarning("There was a communication error on the WineMcGee servers. Please try again later.");
}

function aromaImageClick(minorAromaID)
{
	var callback = 
	{
		success:aromaImageSuccess,
		failure:aromaImageFailure,
		customevents: { onStart: aromaImageStart },
		timeout: 5000
	}
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/aromaadd_s.php', callback, 'minorAromaID='+minorAromaID); 
	return false;
}
	
// ----------------------------------------------------For Ajax Aroma Category Click --------------------------------------------
var aromaChangeStart = function(o)
{ 
	LoadingContainer.show();
}
var aromaChangeSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		document.getElementById("aromaImageRegion").innerHTML = o.responseText;
//		window.location = "#aromaCatAnchor";
	}
}
var aromaChangeFailure = function(o)
{ 
	wineWarning("There was a communication error on the WineMcGee servers. Please try again later.");
}

function aromaClick(majorAromaID)
{
	var callback = 
	{
		success:aromaChangeSuccess,
		failure:aromaChangeFailure,
		customevents: { onStart: aromaChangeStart },
		timeout: 5000
	}
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/aromachange_s.php', callback, 'majorAromaID='+majorAromaID); 
	return false;
}
	
// --------------------------------new functions ----------------------------------------------------------------------


	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	














function thumbZoneIn(element)
{
	element.style.border = "2px solid #CCCCCC";
}
function thumbZoneOut(element)
{
	element.style.border = "2px solid #FFFFFF";
}

var foodIngredientChangeSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		document.getElementById("foodStyleTD").innerHTML = o.responseText;
	}
}
function foodIngredientChange(ingredientID)
{
	var callback = 
	{
		success:foodIngredientChangeSuccess,
		failure:searchRegionChangeFailure,
		customevents: { onStart: searchRegionChangeStart },
		timeout: 50000
	}
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/foodingredientchange_s.php', callback, 'ingredientID='+ingredientID); 
	return false;
}
var foodTypeChangeSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		document.getElementById("foodIngredientsTD").innerHTML = o.responseText;
		document.getElementById("foodStyleTD").innerHTML = "<select name=\"FoodStyleBox\" id=\"FoodStyleBox\"><option value=\"-1\" selected=\"selected\" >All Food Styles</option></select>";

	}
}
function foodTypeChange(typeID)
{
	var callback = 
	{
		success:foodTypeChangeSuccess,
		failure:searchRegionChangeFailure,
		customevents: { onStart: searchRegionChangeStart },
		timeout: 50000
	}
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/foodtypechange_s.php', callback, 'typeID='+typeID); 
	return false;
}
	

// pull HTML to show wines based on type of food

var addWineSectionSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		document.getElementById("controlPanel").innerHTML = Response;		
		
		// only do this stuff if a person is logged in
		if (document.getElementById("VarietalOneSelect") != null)  
		{	
			// add a listener for the wine image upload
			YAHOO.util.Event.addListener("showFileUpload", "click", uploadDialog.show, uploadDialog, true);
	
			// set up modules for show/hide review functionality
			aromaAddModule = new YAHOO.widget.Module("aromaAddRegion", { visible: false });  
			imageAddModule = new YAHOO.widget.Module("imageAddRegion", { visible: false });  
			reviewAddModule = new YAHOO.widget.Module("reviewAddRegion", { visible: false });  
			tasteAddModule = new YAHOO.widget.Module("tasteAddRegion", { visible: false });  
			sightAddModule = new YAHOO.widget.Module("sightAddRegion", { visible: false });  
			aromaAddModule.render();   
			imageAddModule.render();   
			reviewAddModule.render();   
			tasteAddModule.render();   
			sightAddModule.render();   
			
			// initialize additional varietal modules		
			
			var varietalThreeExists = false;
			var varietalTwoExists = false;
			if (document.getElementById("varietalThree") != null)
			{
				varietalThreeModule = new YAHOO.widget.Module("varietalThree", { visible: true });  		
				varietalThreeExists = true;
			}
			if (document.getElementById("varietalTwo") != null)
			{
				varietalTwoModule = new YAHOO.widget.Module("varietalTwo", { visible: true });  		
				if (varietalThreeExists)
				{
					document.getElementById("removeVarietalTwo").style.visibility = "hidden";
					document.getElementById("addVarietalTwo").style.visibility = "hidden";		
				}
				varietalTwoExists = true;
			}
			if (varietalTwoExists)
				document.getElementById("addVarietalOne").style.visibility = "hidden";		
	
			 // there will always be one varietal and two hidden adds
			 
			varietalOneModule = new YAHOO.widget.Module("varietalOne", { visible: true });  
			varietalAddOneModule = new YAHOO.widget.Module("varietalAddOne", { visible: false });  
			varietalAddTwoModule = new YAHOO.widget.Module("varietalAddTwo", { visible: false });  
			varietalAddOneModule.render();
			varietalAddTwoModule.render();
			
			aciditySlider = YAHOO.widget.Slider.getHorizSlider("aciditySlide", "acidityThumb", 0, 200, 20);	
			sweetSlider = YAHOO.widget.Slider.getHorizSlider("sweetSlide", "sweetThumb", 0, 200, 20);	
			bitterSlider = YAHOO.widget.Slider.getHorizSlider("bitterSlide", "bitterThumb", 0, 200, 20);	
			alcoholSlider = YAHOO.widget.Slider.getHorizSlider("alcoholSlide", "alcoholThumb", 0, 200, 20);	
			tanninsSlider = YAHOO.widget.Slider.getHorizSlider("tanninsSlide", "tanninsThumb", 0, 200, 20);	
			textureSlider = YAHOO.widget.Slider.getHorizSlider("textureSlide", "textureThumb", 0, 200, 20);	
			balanceSlider = YAHOO.widget.Slider.getHorizSlider("balanceSlide", "balanceThumb", 0, 200, 20);	
			sightSlider = YAHOO.widget.Slider.getHorizSlider("sightSlide", "sightThumb", 0, 200, 20);		
			depthSlider = YAHOO.widget.Slider.getHorizSlider("depthSlide", "depthThumb", 0, 200, 20);				
		
			depthSlider.subscribe("change", depthChange);  
			
			var a = 0;
			for (a = 0; a < 6; a++)  // check up to 6 colors, and add listeners for change (currently only have three - red, white, rose).
			{
				if (document.getElementById("wineColor"+a) != null)
				{
					YAHOO.util.Event.addListener("wineColor"+a, "click", wineColorClick);					
				}
			}		
	
			


			// --------------- auto complete for winery  ----------
			
			wineryDataSet = new YAHOO.util.XHRDataSource("/wineryauto_s.php");
				
			wineryDataSet.responseType = YAHOO.util.DataSource.TYPE_XML;
			wineryDataSet.responseSchema = 
			{
				resultNode: "winery",
				fields: 
				[ 
					"wineryName" 
				]
			};
			
			wineryAutoComplete = new YAHOO.widget.AutoComplete("WineryNameEdit", "wineryAutoContainer", wineryDataSet);
			wineryAutoComplete.resultTypeList = false; 
	//		wineryAutoComplete.formatResult = cityFormat;
			wineryAutoComplete.dataErrorEvent.subscribe(dataErrorHandler);
	//		wineryAutoComplete.itemSelectEvent.subscribe(itemSelected);				
			
			if (browserIE6)
			{
				wineryAutoComplete.animVert = false; 
				wineryAutoComplete.useIFrame = true; 
			}
		
//			document.getElementById("WineryNameEdit").focus();  // set default focus.
		
		} // only do the above (review stuff) if logged in.
	}
}
function AddWineSection()
{
	var callback = 
	{
		success:addWineSectionSuccess,
		failure:searchWineFailure,
		customevents: { onStart: searchWineStart },
		timeout: 50000
	}
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/addwinesection_s.php', callback);
	return false;
}
function BrowseWines()
{
	var callback = 
	{
		success:foodWinesSuccess,
		failure:searchWineFailure,
		customevents: { onStart: searchWineStart },
		timeout: 50000
	}
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/browsewines_s.php', callback);
	return false;
}

var foodWinesSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		document.getElementById("controlPanel").innerHTML = Response;		
	}		
}

// pull HTML to show wines based on type of food

function FoodWines()
{
	var callback = 
	{
		success:foodWinesSuccess,
		failure:searchWineFailure,
		customevents: { onStart: searchWineStart },
		timeout: 50000
	}
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/foodwines_s.php', callback);
	return false;
}
	
// pull HTML to show recommendation questions

function McGeeWines()
{
	var callback = 
	{
		success:foodWinesSuccess,
		failure:searchWineFailure,
		customevents: { onStart: searchWineStart },
		timeout: 50000
	}
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/mcgeerecommendation_s.php', callback);
	return false;
}
var finalAnswerSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		document.getElementById("controlPanel").innerHTML = Response;		
		getWines(0);
	}		
}
function mcGeeAnswer(answer)
{
	if (answer < 100)
	{
		var callback = 
		{
			success:foodWinesSuccess,
			failure:searchWineFailure,
			customevents: { onStart: searchWineStart },
			timeout: 50000
		}
		
		YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
		var cObj = YAHOO.util.Connect.asyncRequest('POST', '/mcgeerecommendation_s.php', callback, "Answer="+answer);
		return false;
	}
	else
	{
		var callback = 
		{
			success:finalAnswerSuccess,
			failure:searchWineFailure,
			customevents: { onStart: searchWineStart },
			timeout: 50000
		}
		
		YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
		var cObj = YAHOO.util.Connect.asyncRequest('POST', '/mcgeerecommendation_s.php', callback, "Answer="+answer);
		return false;
	}
}

function showAdvanced()
{
	disp = document.getElementById("advancedSearch").style.display;
	if (disp == "block")
	{
		document.getElementById("advancedSearch").style.display = "none";
	}
	else
	{
		document.getElementById("advancedSearch").style.display = "block";
	}
}
	
function mcgeeListFood(listNum)
{
	var formObject = document.getElementById('foodWineForm');
	YAHOO.util.Connect.setForm(formObject); 

	var callback = 
	{
		success:searchWineFoodSuccess,
		failure:searchWineFailure,
		customevents: { onStart: searchWineStart },
		timeout: 50000
	}
	
	var postData = "listNum="+listNum;
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/findwine_s.php', callback, postData);
	return false;
}	
function mcgeeList(listNum)
{
	var formObject = document.getElementById('wineForm');
	YAHOO.util.Connect.setForm(formObject); 

	var callback = 
	{
		success:searchWineSuccess,
		failure:searchWineFailure,
		customevents: { onStart: searchWineStart },
		timeout: 50000
	}
	
	var postData = "listNum="+listNum;
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/findwine_s.php', callback, postData);
	return false;
}	
	
// -------------------------- change sort ------------------------------------
	
function wineSortChange(method)
{
	callback = 
	{
		success: searchWineSuccess,
		failure: searchWineFailure,
		customevents: { onStart: searchWineStart },
		timeout: 50000
	}
		
	postData = "&sortMethod="+method+"&wineStart=0";		
		
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/findwine_s.php', callback, postData); 
}	
	
// -------------------------- get next / prev wines ------------------------------------

function getWines(wine_id)
{
	if (lastSearch == 1)
	{
		callback = 
		{
			success: searchWineFoodSuccess,
			failure: searchWineFailure,
			customevents: { onStart: searchWineStart },
			timeout: 50000
		}
	}
	else 
	{
		callback = 
		{
			success: searchWineSuccess,
			failure: searchWineFailure,
			customevents: { onStart: searchWineStart },
			timeout: 50000
		}
	}
		
	postData = "&wineStart="+wine_id;		
	
	postData += "&oldSearch="+oldSearch;		
	postData += "&oldType="+oldType;		
	postData += "&oldRating="+oldRating;		
	postData += "&oldPrice="+oldPrice;		
	postData += "&oldVarietal="+oldVarietal;		
	postData += "&oldRegion="+oldRegion;		
	postData += "&oldSubRegion="+oldSubRegion;		
		
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/findwine_s.php', callback, postData); 
}	
// ------------------------------------ Get State Prompt ----------------------------------------------


var stateUpdateSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		statePromptWarningDialog.hide();		
		getWines(0);
	}		
}


var statePromptWarning = function(warningText)
{
	statePromptWarningDialog.setHeader("<div class=\"hd\"><div class=\"tl\"></div><span>Where do You Live?</span><div class=\"tr\"></div></div>");
	
	var bodyText = '<div class="dialogWrap"><div class="column_D"><table class="warningFormat" border="0" cellspacing="0" cellpadding="0"><tr><td><p>The prices and availability for wine shown on WineMcGee are based on the Ship-To state. Please choose your state:</p><p><select name=\"state\" id=\"stateBox\"><option value=\"AL\">AL</option><option value=\"AK\">AK</option><option value=\"AR\">AR</option><option value=\"AS\">AS</option><option value=\"AZ\">AZ</option><option value=\"CA\">CA</option><option value=\"CO\">CO</option><option value=\"CT\">CT</option><option value=\"DC\">DC</option><option value=\"DE\">DE</option><option value=\"FL\">FL</option><option value=\"FM\">FM</option><option value=\"GA\">GA</option><option value=\"GU\">GU</option><option value=\"HI\">HI</option><option value=\"IA\">IA</option><option value=\"ID\">ID</option><option value=\"IL\">IL</option><option value=\"IN\">IN</option><option value=\"KS\">KS</option><option value=\"KY\">KY</option><option value=\"LA\">LA</option><option value=\"MA\">MA</option><option value=\"MD\">MD</option><option value=\"ME\">ME</option><option value=\"MH\">MH</option><option value=\"MI\">MI</option><option value=\"MN\">MN</option><option value=\"MO\">MO</option><option value=\"MP\">MP</option><option value=\"MS\">MS</option><option value=\"MT\">MT</option><option value=\"NC\">NC</option><option value=\"ND\">ND</option><option value=\"NE\">NE</option><option value=\"NH\">NH</option><option value=\"NJ\">NJ</option><option value=\"NM\">NM</option><option value=\"NV\">NV</option><option value=\"NY\">NY</option><option value=\"OH\">OH</option><option value=\"OK\">OK</option><option value=\"OR\">OR</option><option value=\"PA\">PA</option><option value=\"PR\">PR</option><option value=\"PW\">PW</option><option value=\"RI\">RI</option><option value=\"SC\">SC</option><option value=\"SD\">SD</option><option value=\"TN\">TN</option><option value=\"TX\">TX</option><option value=\"UT\">UT</option><option value=\"VA\">VA</option><option value=\"VI\">VI</option><option value=\"VT\">VT</option><option value=\"WA\">WA</option><option value=\"WI\">WI</option><option value=\"WV\">WV</option><option value=\"WY\">WY</option></p></td></tr></table></div></div>';
	
	statePromptWarningDialog.setBody(bodyText);
	statePromptWarningDialog.render(document.body);		
	statePromptWarningDialog.show();
}

var statePromptYes = function() 
{
	var callback = 
	{
		success:stateUpdateSuccess,
		failure:searchWineFailure,
		customevents: { onStart: searchWineStart },
		timeout: 10000
	}
	
	var postData = "stateBox="+document.getElementById("stateBox").value;
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/winecomstatebox_s.php', callback, postData);
	return false;

}
var statePromptNo = function() 
{
	statePromptWarningDialog.hide();
}

statePromptWarningDialog = new YAHOO.widget.SimpleDialog("warningDialog", 
						{ 
							width: "350px", 
//							effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration:0.25}, 
							fixedcenter:true,
					    	zIndex:15000,
					  		modal: true,
	              			constraintoviewport : true, 
						    visible:false,
							draggable:false, 
							buttons: [ { text:"Submit", handler:statePromptYes, isDefault:true },
					  				   { text:"Cancel", handler:statePromptNo} ]
						});	

//--------------------------------------------------------------------------------------------

var searchWineFoodSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else if (Response.substring(0,7) == "[state]")
	{
		statePromptWarning();
	}
	else
	{
		document.getElementById("stepTwo").innerHTML = o.responseText;		
		window.location = "#restoreBackFood";	
	}
		
}
var searchWineStart = function(o)
{ 
	LoadingContainer.show();
}
var searchWineSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else if (Response.substring(0,7) == "[state]")
	{
		statePromptWarning();
	}
	else
	{
		document.getElementById("stepTwo").innerHTML = o.responseText;		
		window.location = "#restoreBack";				
	}
		
}
var searchWineFailure = function(o)
{ 
	wineWarning("There was a communication error on the WineMcGee servers. Please try again later.");
}
function searchWine()
{
	lastSearch = 0;

	oldSearch = document.getElementById("wineSearchEdit").value;
	oldType = document.getElementById("SearchTypeBox").value;
	oldRating = document.getElementById("SearchRatingsBox").value;
	oldPrice = document.getElementById("SearchPricesBox").value;
	oldVarietal = document.getElementById("SearchVarietalBox").value;
	oldRegion = document.getElementById("SearchRegionBox").value;
	oldSubRegion = document.getElementById("SearchAppBox").value;
	
	var formObject = document.getElementById('wineForm');
	YAHOO.util.Connect.setForm(formObject); 
	
	var callback = 
	{
		success:searchWineSuccess,
		failure:searchWineFailure,
		customevents: { onStart: searchWineStart },
		timeout: 50000
	}
	
	var postData = "";
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/findwine_s.php', callback, postData);
	return false;
}

function searchWineFood()
{	
	lastSearch = 1;

	var formObject = document.getElementById('foodWineForm');
	YAHOO.util.Connect.setForm(formObject); 
	
	var callback = 
	{
		success:searchWineFoodSuccess,
		failure:searchWineFailure,
		customevents: { onStart: searchWineStart },
		timeout: 50000
	}
	
	var postData = "";
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/findwine_s.php', callback, postData);
	return false;
}
	
// ----------------------------------------------------For Ajax Region Change --------------------------------------------
var searchRegionChangeStart = function(o)
{ 
	LoadingContainer.show();
}
var searchRegionChangeSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
		document.getElementById("searchSubRegionDiv").innerHTML = o.responseText;
}
var searchRegionChangeFailure = function(o)
{ 
	wineWarning("There was a communication error on the WineMcGee servers. Please try again later.");
}

function searchRegionChange(regionID)
{
	var callback = 
	{
		success:searchRegionChangeSuccess,
		failure:searchRegionChangeFailure,
		customevents: { onStart: searchRegionChangeStart },
		timeout: 50000
	}
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/wineregionchange_s.php', callback, 'regionID='+regionID); 
	return false;
}
function regionChange(regionID)  // for wine add
{
	var callback = 
	{
		success:regionChangeSuccess,
		failure:searchRegionChangeFailure,
		customevents: { onStart: searchRegionChangeStart },
		timeout: 50000
	}
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/wineregionchangeadd_s.php', callback, 'regionID='+regionID); 
	return false;
}
var regionChangeSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
		document.getElementById("subRegionDiv").innerHTML = o.responseText;
}































// ----------------------------------------------------For Ajax Wine Search submit --------------------------------------------


function varietalOneAdd() 
{
	document.getElementById("addVarietalOne").style.visibility = "hidden";
	varietalAddOneModule.show();
}
function varietalTwoAdd() 
{
	document.getElementById("removeVarietalTwo").style.visibility = "hidden";
	document.getElementById("addVarietalTwo").style.visibility = "hidden";
	varietalAddTwoModule.show();
}
function varietalTwoRemove() 
{
	document.getElementById("addVarietalOne").style.visibility = "visible";
	varietalTwoModule.hide();
}
function varietalThreeRemove() 
{
	document.getElementById("removeVarietalTwo").style.visibility = "visible";
	document.getElementById("addVarietalTwo").style.visibility = "visible";
	varietalThreeModule.hide();
}
function varietalAddOneRemove() 
{
	document.getElementById("addVarietalOne").style.visibility = "visible";	
	varietalAddOneModule.hide();
}
function varietalAddOneAdd() 
{
	document.getElementById("addVarietalAddOne").style.visibility = "hidden";
	document.getElementById("removeVarietalAddOne").style.visibility = "hidden";
	varietalAddTwoModule.show();
}
function varietalAddTwoRemove() 
{
	if (varietalAddOneModule.cfg.getProperty("visible"))
	{
		document.getElementById("removeVarietalAddOne").style.visibility = "visible";
		document.getElementById("addVarietalAddOne").style.visibility = "visible";	
	}
	else
	{
		document.getElementById("removeVarietalTwo").style.visibility = "visible";
		document.getElementById("addVarietalTwo").style.visibility = "visible";	
	}
	varietalAddTwoModule.hide();
}

function showAll()
{
	if (!ExtraResultsModule.cfg.getProperty("visible"))
	{
		ExtraResultsModule.show();
		showLessModule.show();
		showAllModule.hide();
	}
	else
	{
		ExtraResultsModule.hide();
		showLessModule.hide();
		showAllModule.show();	
		window.location = "#SearchAnchor";		
	}
	
}
// these handle colors and up arrow, down arrow images on expandable areas
function regionMouseOver(e, imageElement)
{
	this.className = 'rightTextOver'; 
	imageElement.src = DownArrowGray.src;
}
function regionMouseOut(e, imageElement)
{
	this.className = 'rightText'; 
	imageElement.src = DownArrow.src;
}
function regionMouseOverUp(e, imageElement)
{
	this.className = 'rightTextOver'; 
	imageElement.src = UpArrowGray.src;
}
function regionMouseOutUp(e, imageElement)
{
	this.className = 'rightText'; 
	imageElement.src = UpArrow.src;
}

// Event handler to show/hide additional wine details (for adding a wine)

function showImageAddRegion()  
{
	if (!imageAddModule.cfg.getProperty("visible"))
	{
		imageAddModule.show();
	}
	else
	{
		imageAddModule.hide();
	}
}
function showAromaAddRegion()  
{
	if (!aromaAddModule.cfg.getProperty("visible"))
	{
		aromaAddModule.show();
	}
	else
	{
		aromaAddModule.hide();
	}
}
function showReviewAddRegion()  
{
	if (!reviewAddModule.cfg.getProperty("visible"))
	{
		reviewAddModule.show();
	}
	else
	{
		reviewAddModule.hide();
	}
}
function showTasteAddRegion()  
{
	if (!tasteAddModule.cfg.getProperty("visible"))
	{
		tasteAddModule.show();
		if (aciditySlider.getValue() == 0 && sweetSlider.getValue() == 0 && bitterSlider.getValue() == 0 && alcoholSlider.getValue() == 0  && tanninsSlider.getValue() == 0 && textureSlider.getValue() == 0 && balanceSlider.getValue() == 0)
		{
			aciditySlider.setValue(100);
			sweetSlider.setValue(100);
			bitterSlider.setValue(100);
			alcoholSlider.setValue(100);
			tanninsSlider.setValue(100);
			textureSlider.setValue(100);
			balanceSlider.setValue(100);
		}		
	}
	else
	{
		HelpModule.hide();
		tasteAddModule.hide();
	}
}
function showSightAddRegion()  
{
	if (!sightAddModule.cfg.getProperty("visible"))
	{
		sightAddModule.show();

		if (sightSlider.getValue() == 0 && depthSlider.getValue() == 0)
		{
			sightSlider.setValue(100);
			depthSlider.setValue(100);
		}
	}
	else
	{
		HelpModule.hide();
		sightAddModule.hide();
	}
}
var handleStart = function(o)
{ 
	LoadingContainer.show();
}

var wineColorClick = function()
{
	var i = 0;
	var colorGroup = document.getElementsByName("color");
	var wineImageElement = document.getElementById("wineDepth");
	for( i = 0; i < colorGroup.length; i++ )
	{
		if( colorGroup[i].checked == true )
		{
			if (colorGroup[i].value == 1)		
				wineImageElement.src = "/Images/redwinecolor.gif";
			if (colorGroup[i].value == 2)		
				wineImageElement.src = "/Images/whitewinecolor.gif";
			if (colorGroup[i].value == 3)		
				wineImageElement.src = "/Images/rosewinecolor.gif";
			break;
		}
	}
}

function wineTypeChange(newWineType)
{
	var wineImageElement = document.getElementById("wineDepth");

	if (newWineType == 124 || newWineType == 128)		
		wineImageElement.src = "/Images/redwinecolor.gif";
	else if (newWineType == 123 || newWineType == 125)		
		wineImageElement.src = "/Images/whitewinecolor.gif";
	else if (newWineType == 126)		
		wineImageElement.src = "/Images/rosewinecolor.gif";
}

// ------------------------------------ Zoom for Images ----------------------------------------------

// when they clicked on a zoomed in event image
function wineImageOut()
{
	bigImageOut = 1;
	document.getElementById("bigImage").style.cursor = "default";
	document.getElementById("picMod").style.cursor = "default";
	PictureModule.hide();
}

var magnifyOver = function()
{
	timeoutID = setTimeout("magnifyStillIn()",500);
	overImage = 1;
	document.getElementById("magnifyImg").src='/wineempty.gif';
};
var magnifyOut = function(o)
{
	document.getElementById("magnifyImg").style.cursor = "url('/magcursor.cur'), default";
	document.getElementById("magnifyImg").src='/wineempty.gif';
	overImage = 0;
	clearTimeout(timeoutID);
};
function magnifyStillIn()
{
	wineBigImageIn();
	overImage = 2;
}

var wineSmallImageOut = function(o)
{
	document.getElementById("magnifyImg").src='/wineempty.gif';
};

var wineImageLoaded = function(o)
{
	PictureModule.show();	
};
// show zoomed in event image
function wineImageIn(imageElement, bigImage)
{
	bigImageFile = bigImage;
	xyID = imageElement.id;
	x = YAHOO.util.Dom.getX(xyID);
	y = YAHOO.util.Dom.getY(xyID);
	
	PictureModule.cfg.setProperty("x", x);
	PictureModule.cfg.setProperty("y", y);
	
	if (bigImageOut == 0)  // if it's 0, then we never left the zoom feature, so load the new image.
	{
		wineBigImageIn();
	}
	else
	{
		MagModule.cfg.setProperty("x",x+50);
		MagModule.cfg.setProperty("y",y+50);	
	MagModule.setBody("<div class=\"magModule\"><img id='magnifyImg' onmouseover='magnifyOver();' onmouseout='magnifyOut();' onclick='wineBigImageIn();' src='/macgif2.gif'></div>");
		MagModule.render(document.body);													  
		MagModule.show();
	}
}
var wineBigImageIn = function()
{		
	bigImageOut = 0;
	PictureModule.setBody("<div id=\"picMod\" class=\"pictureModule\"><img id=\"bigImage\" src=\""+bigImageFile+"\" /></div>");
	document.getElementById("bigImage").style.cursor = "url('zoomout.cur'), default";
	document.getElementById("picMod").style.cursor = "url('zoomout.cur'), default";
	YAHOO.util.Event.addListener("bigImage", "load", wineImageLoaded);   // once the wine image is loaded, we're good to show
	document.getElementById("magnifyImg").style.cursor = "url('zoomout.cur'), default";
};
	
// --------------------------------- upload Image Preview ------------------------------------------------

function uploadWineImageIn(imageElement, bigImage)
{	
	xyID = imageElement.id;
	x = YAHOO.util.Dom.getX(xyID);
	y = YAHOO.util.Dom.getY(xyID);
	
	PictureModule.cfg.setProperty("x", x);
	PictureModule.cfg.setProperty("y", y);
		
	PictureModule.setBody("<div id=\"picMod\" class=\"pictureModule\"><img style=\"cursor: pointer;\" id=\"bigImage\" onmouseout=\"wineImageOut();\" src=\""+bigImage+"\" alt=\"Click here to upload your image\"/></div>");
	YAHOO.util.Event.addListener("bigImage", "click", uploadDialog.show, uploadDialog, true);		
	YAHOO.util.Event.addListener("bigImage", "load", wineImageLoaded);   // once the wine image is loaded, we're good to show
	document.getElementById("picMod").style.cursor = "pointer";
}

var depthChange = function(offsetFromStart)
{
	var mozillaOpacity = 0;
	var ieOpacity = 0;
	var ieText = "";
	mozillaOpacity = .3 + (offsetFromStart / 200) * .7
	ieOpacity = 30 + (100 * (offsetFromStart / 200) * .7)
	ieText = "alpha(opacity:"+ieOpacity+")";
		
	YAHOO.util.Dom.setStyle("wineDepth", "opacity", mozillaOpacity);
	YAHOO.util.Dom.setStyle("wineDepth", "-moz-opacity", mozillaOpacity);
	YAHOO.util.Dom.setStyle("wineDepth", "filter", ieText);
}
// --------------------------------------------------- Wine Search -----------------------------------------------------------

var handleSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		document.getElementById("controlPanel").innerHTML = Response;		
		
		// only do this stuff if a person is logged in
		if (document.getElementById("VarietalOneSelect") != null)  
		{	
			// add a listener for the wine image upload
			YAHOO.util.Event.addListener("showFileUpload", "click", uploadDialog.show, uploadDialog, true);
			YAHOO.util.Event.addListener("wineSubmit", "click", load_feed);
	
			// set up modules for show/hide review functionality
			aromaAddModule = new YAHOO.widget.Module("aromaAddRegion", { visible: false });  
			imageAddModule = new YAHOO.widget.Module("imageAddRegion", { visible: false });  
			reviewAddModule = new YAHOO.widget.Module("reviewAddRegion", { visible: false });  
			tasteAddModule = new YAHOO.widget.Module("tasteAddRegion", { visible: false });  
			sightAddModule = new YAHOO.widget.Module("sightAddRegion", { visible: false });  
			aromaAddModule.render();   
			imageAddModule.render();   
			reviewAddModule.render();   
			tasteAddModule.render();   
			sightAddModule.render();   
			
			// initialize additional varietal modules		
			
			var varietalThreeExists = false;
			var varietalTwoExists = false;
			if (document.getElementById("varietalThree") != null)
			{
				varietalThreeModule = new YAHOO.widget.Module("varietalThree", { visible: true });  		
				varietalThreeExists = true;
			}
			if (document.getElementById("varietalTwo") != null)
			{
				varietalTwoModule = new YAHOO.widget.Module("varietalTwo", { visible: true });  		
				if (varietalThreeExists)
				{
					document.getElementById("removeVarietalTwo").style.visibility = "hidden";
					document.getElementById("addVarietalTwo").style.visibility = "hidden";		
				}
				varietalTwoExists = true;
			}
			if (varietalTwoExists)
				document.getElementById("addVarietalOne").style.visibility = "hidden";		
	
			 // there will always be one varietal and two hidden adds
			 
			varietalOneModule = new YAHOO.widget.Module("varietalOne", { visible: true });  
			varietalAddOneModule = new YAHOO.widget.Module("varietalAddOne", { visible: false });  
			varietalAddTwoModule = new YAHOO.widget.Module("varietalAddTwo", { visible: false });  
			varietalAddOneModule.render();
			varietalAddTwoModule.render();
			
			aciditySlider = YAHOO.widget.Slider.getHorizSlider("aciditySlide", "acidityThumb", 0, 200, 20);	
			sweetSlider = YAHOO.widget.Slider.getHorizSlider("sweetSlide", "sweetThumb", 0, 200, 20);	
			bitterSlider = YAHOO.widget.Slider.getHorizSlider("bitterSlide", "bitterThumb", 0, 200, 20);	
			alcoholSlider = YAHOO.widget.Slider.getHorizSlider("alcoholSlide", "alcoholThumb", 0, 200, 20);	
			tanninsSlider = YAHOO.widget.Slider.getHorizSlider("tanninsSlide", "tanninsThumb", 0, 200, 20);	
			textureSlider = YAHOO.widget.Slider.getHorizSlider("textureSlide", "textureThumb", 0, 200, 20);	
			balanceSlider = YAHOO.widget.Slider.getHorizSlider("balanceSlide", "balanceThumb", 0, 200, 20);	
			sightSlider = YAHOO.widget.Slider.getHorizSlider("sightSlide", "sightThumb", 0, 200, 20);		
			depthSlider = YAHOO.widget.Slider.getHorizSlider("depthSlide", "depthThumb", 0, 200, 20);				
		
			depthSlider.subscribe("change", depthChange);  
			
			var a = 0;
			for (a = 0; a < 6; a++)  // check up to 6 colors, and add listeners for change (currently only have three - red, white, rose).
			{
				if (document.getElementById("wineColor"+a) != null)
				{
					YAHOO.util.Event.addListener("wineColor"+a, "click", wineColorClick);					
				}
			}		
	
			


			// --------------- auto complete for winery  ----------
			
			wineryDataSet = new YAHOO.util.XHRDataSource("/wineryauto_s.php");
				
			wineryDataSet.responseType = YAHOO.util.DataSource.TYPE_XML;
			wineryDataSet.responseSchema = 
			{
				resultNode: "winery",
				fields: 
				[ 
					"wineryName" 
				]
			};
			
			wineryAutoComplete = new YAHOO.widget.AutoComplete("WineryNameEdit", "wineryAutoContainer", wineryDataSet);
			wineryAutoComplete.resultTypeList = false; 
	//		wineryAutoComplete.formatResult = cityFormat;
			wineryAutoComplete.dataErrorEvent.subscribe(dataErrorHandler);
	//		wineryAutoComplete.itemSelectEvent.subscribe(itemSelected);				
			
			if (browserIE6)
			{
				wineryAutoComplete.animVert = false; 
				wineryAutoComplete.useIFrame = true; 
			}
		
//			document.getElementById("WineryNameEdit").focus();  // set default focus.
		
		} // only do the above (review stuff) if logged in.
		
		window.location = "#restoreBack";
	}
}
var handleFailure = function(o)
{ 
	wineWarning("There was a communication error on the WineMcGee servers. Please try again later.");
}

// --------------------------------- wine search -----------------------------------------------------

var wineSearchStart = function(o)
{ 
	LoadingContainer.show();
};
var wineSearchSuccess = function(o)
{ 
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		document.getElementById("stepTwo").innerHTML = o.responseText;		
		document.getElementById("addRegion").innerHTML = "<div class=\"cantFind\">Can't find your wine above? <a href=\"#\" onclick=\"addWine(); return false;\">Add Wine to our Database</a></div>";		
		// set up tool tips
			
/*			
		var elements = YAHOO.util.Dom.getElementsByClassName('theEventImage', 'img'); 	
		// img is optional and speeds up the search		
		var imgElementArray = new Array();
		var a = 0;
		for (a = 0; a < elements.length; a++)
		{
			imgElementArray[a] = elements[a].id;
		}	
		
		if (toolTip)
		{
			toolTip.cfg.setProperty("context", imgElementArray);
			toolTip.forceUnderlayRedraw();
		}
		else if (imgElementArray.length > 0)
		{
			toolTip = new YAHOO.widget.Tooltip("tooltip", 
											{ context: imgElementArray,
									  		  effect: {effect:YAHOO.widget.ContainerEffect.FADE,duration:0.20}
											});					
		} */
		
		window.location = "#restoreBack";		
	}
	LoadingContainer.hide();
};

var wineSearchFailure = function(o)
{ 
	wineWarning("There was a communication error on the WineMcGee servers. Please try again later.");
}

function prepareSubmit()
{
	var formObject = document.getElementById('wineForm');
	YAHOO.util.Connect.setForm(formObject); 
	lastWineSearch = document.getElementById('wineSearchEdit').value;
	
	var callback = 
	{
		success:wineSearchSuccess,
		failure:wineSearchFailure,
		customevents: { onStart: wineSearchStart },
		timeout: 10000
	}
	
//	var postData = "wineryID=" + wineryID;
	var postData = "";
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/winesearchnew_s.php', callback, postData);
	return false;
}

// ----------------------------------Add a new wine to the database--------------------------------------------
function addWine()
{
	var callback = 
	{
		success:handleSuccess,
		failure:handleFailure,
		customevents: { onStart: handleStart },
		timeout: 50000
	}
		
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/wineaddprocess_s.php', callback, postData);
	return false;
}

// ----------------------------------------------------For Warning/Error Dialog --------------------------------------------

var wineWarning = function(warningText)
{
	wineWarningDialog.setHeader("<div class=\"hd\"><div class=\"tl\"></div><span>Wine Issue</span><div class=\"tr\"></div></div>");

	var bodyText = '<div class="dialogWrap"><div class="column_D"><table class="warningFormat" border="0" cellspacing="0" cellpadding="0"><tr><td>' + warningText + '</td></tr></table></div></div>';
	
	wineWarningDialog.setBody(bodyText);
	wineWarningDialog.render(document.body);		
	wineWarningDialog.show();
}

var handleOK = function() 
{
	wineWarningDialog.hide();
	LoadingContainer.hide();
}

var wineWarningDialog = new YAHOO.widget.SimpleDialog("warningDialog", 
						{	 
						width: "350px", 
//							effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration:0.25}, 
							fixedcenter:true,
					    	zIndex:15000,
					  		modal: true,
	              			constraintoviewport : true, 
						    visible:false,
							draggable:false, 
							buttons: [ { text:"OK", handler:handleOK, isDefault:true }]
						});	


// ------------------------------------ Upload Dialog -----------------------------------------------------------

	var handleSubmit = function()   //when the submit button is clicked, submit the form
	{   
		var formObject = document.getElementById("imageform");  
		YAHOO.util.Connect.setForm(formObject, true);  
	
		var callback = 
		{
			upload: onUpload,
			failure: onFailure,
			timeout: 25000,
			cache: false
		};
			
		var cObj = YAHOO.util.Connect.asyncRequest('POST', '/winelabelupload_s.php', callback); 
		
		uploadDialog.hide();
		LoadingContainer.show();
	};   
	var handleCancel = function()   // if the cancel button is clicked, cancel the form
	{   
	    uploadDialog.cancel();   
	};   
	var onFailure = function(o)
	{
		LoadingContainer.hide();
		uploadWarning("Your upload timed out and was aborted. Your image may be too big, slick.");
	};
	

	// onUpload is called upon completion of upload transaction
	var onUpload = function(o)
	{
		LoadingContainer.hide();
		var Response = o.responseText;
		if (Response.substring(0,7) == "[error]")
		{
			uploadWarning(Response.substring(7,Response.length));	
		}
		else
		{
			imageUploaded = true;
			document.getElementById("wineThumb").innerHTML = o.responseText;
			YAHOO.util.Event.addListener("showFileUpload", "click", uploadDialog.show, uploadDialog, true);
		}
	}


// ------------------------------------ Simple Dialog for Upload Warnings / Errors ----------------------------------------------

	var uploadWarning = function(warningText)
	{
		uploadWarningDialog.setHeader("<div class=\"hd\"><div class=\"tl\"></div><span>Image Upload Error</span><div class=\"tr\"></div></div>");
	
		var bodyText = '<div class="dialogWrap"><div class="column_D"><table class="warningFormat" border="0" cellspacing="0" cellpadding="0"><tr><td>' + warningText + '</td></tr></table></div></div>';
	
		uploadWarningDialog.setBody(bodyText);
		uploadWarningDialog.render(document.body);		
		uploadWarningDialog.show();
	}

	var handleYes = function() 
	{
		uploadWarningDialog.hide();
		uploadDialog.show();
	}
	var handleNo = function() 
	{
		uploadWarningDialog.hide();
	}

// ----------------Decode wine label for specific country-------------------------------------------------------------

function wineDecode(country)
{
	var callback = 
	{
		success:wineDecodeSuccess,
		failure:wineDecodeFailure,
		customevents: { onStart: wineDecodeStart },
		timeout: 5000
	}
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	
	if (country == 'USA')
		var cObj = YAHOO.util.Connect.asyncRequest('POST', '/usa_label.php', callback); 
	else if (country == 'France')
		var cObj = YAHOO.util.Connect.asyncRequest('POST', '/french_label.php', callback); 

	return false;
}

var wineDecodeStart = function(o)
{ 
	LoadingContainer.show();
}
var wineDecodeSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		document.getElementById("wineDecode").innerHTML = o.responseText;
	}
}
var wineDecodeFailure = function(o)
{ 
	wineWarning("There was a communication error on the WineMcGee servers. Please try again later.");
}


// ----------------------------------- Back Button ------------------------------------------------------------------------

var backOptionsLoadFoodSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		document.getElementById("controlPanel").innerHTML = Response;
	}	
}

var backOptionsLoadSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		document.getElementById("advancedSearch").innerHTML = Response;
	}	
}
var backLoadStart = function(o)
{ 
	LoadingContainer.show();
}
var backLoadSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		if (lastSearch == 1)		
			searchWineFoodSuccess(o);
		else
			searchWineSuccess(o);
	}	
}
var backLoadFailure = function(o)
{ 
	wineWarning("There was a communication error on the WineMcGee servers. Please try again later.");
}

// -------------------------------- help popup -----------------------------------------------------------------

function needHelp()
{
	ReviewHelpModule.setHeader("<div class=\"hd\"><div class=\"tl\"></div><span>Adding a Wine</span><div class=\"tr\"></div></div>");
	ReviewHelpModule.setBody(addWineText);
	xyID = document.getElementById("needHelpText");
	
	x = YAHOO.util.Dom.getX(xyID);
	y = YAHOO.util.Dom.getY(xyID);

	ReviewHelpModule.cfg.setProperty("x", x+85);
	ReviewHelpModule.cfg.setProperty("y", y);
	ReviewHelpModule.show();	
}

function needHelpAcidity()
{
	ReviewHelpModule.setHeader("<div class=\"hd\"><div class=\"tl\"></div><span>Reviewing a Wine</span><div class=\"tr\"></div></div>");
	ReviewHelpModule.setBody(reviewText);
	xyID = document.getElementById("needHelpTextAcidity");
	
	x = YAHOO.util.Dom.getX(xyID);
	y = YAHOO.util.Dom.getY(xyID);

	ReviewHelpModule.cfg.setProperty("x", x+85);
	ReviewHelpModule.cfg.setProperty("y", y);
	ReviewHelpModule.show();	
}

function needHelpRating()
{
	ReviewHelpModule.setHeader("<div class=\"hd\"><div class=\"tl\"></div><span>Reviewing a Wine</span><div class=\"tr\"></div></div>");
	ReviewHelpModule.setBody(reviewText);
	xyID = document.getElementById("needHelpTextRating");
	
	x = YAHOO.util.Dom.getX(xyID);
	y = YAHOO.util.Dom.getY(xyID);

	ReviewHelpModule.cfg.setProperty("x", x+85);
	ReviewHelpModule.cfg.setProperty("y", y);
	ReviewHelpModule.show();	
}

function needHelpClarity()
{
	ReviewHelpModule.setHeader("<div class=\"hd\"><div class=\"tl\"></div><span>Reviewing a Wine</span><div class=\"tr\"></div></div>");
	ReviewHelpModule.setBody(reviewText);

	xyID = document.getElementById("needHelpTextClarity");
	
	x = YAHOO.util.Dom.getX(xyID);
	y = YAHOO.util.Dom.getY(xyID);

	ReviewHelpModule.cfg.setProperty("x", x+85);
	ReviewHelpModule.cfg.setProperty("y", y);
	ReviewHelpModule.show();	
}

// --------------------------------------------- Facebook ---------------------------------------------

function facebook_onlogin()
{
	window.location = "https://www.winemcgee.com/connect.php";
}


// --------------------------------------------------Main init -------------------------------------------------------------

function init()
{
	

	
	
	
//	LoadingContainer.setHeader("<div class=\"hd\"><div class=\"tl\"></div><span>Loading - Please Wait</span><div class=\"tr\"></div></div>");
	LoadingContainer.setBody('<img src="/Images/ajaxload.gif" />');
	LoadingContainer.render(document.body);

//	YAHOO.util.Event.addListener("searchSubmit", "click", prepareSubmit);

	document.getElementById("sig").value = transaction_sig; // set the form security signature for image uploads

	uploadDialog = new YAHOO.widget.Dialog("uploadDialog",  
	            { width : "350px", 
	              fixedcenter : true, 
	              visible : false,  
				  zIndex:15000,
				  modal: true,
	              constraintoviewport : true, 
	              buttons : [ { text:"Submit", handler:handleSubmit, isDefault:true }, 
	                          { text:"Cancel", handler:handleCancel } ] 
	             } ); 


	// Set the connection manager callback object to onUpload
	uploadDialog.callback.failure = onFailure;
	uploadDialog.callback.upload = onUpload;
	uploadDialog.callback.timeout = 40000;
	uploadDialog.callback.cache = false;

	uploadDialog.render(document.body);

// ---------- Simple Dialog for Upload Warnings / Errors ---------


	uploadWarningDialog = new YAHOO.widget.SimpleDialog("warningDialog", 
						{ 
							width: "350px", 
//							effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration:0.25}, 
							fixedcenter:true,
					    	zIndex:15000,
					  		modal: true,
	              			constraintoviewport : true, 
						    visible:false,
							draggable:false, 
							buttons: [ { text:"Retry", handler:handleYes, isDefault:true },
					  				   { text:"Cancel", handler:handleNo} ]
						});	
						
    HelpModule = new YAHOO.widget.Overlay("helper1", { 
										  xy:[-2000,-2000],	
										  width: "250px", 
										  visible:false 
  	 								      });   				


// -------- overlay for picture expand ------------------------
    PictureModule = new YAHOO.widget.Overlay("picture1", { 
										  xy:[-2000,-2000],	
								  		  effect: {effect:YAHOO.widget.ContainerEffect.FADE,duration:0.40},
										  visible:false 
  	 								      });   	
										  												  
	PictureModule.setBody("<div id=\"picMod\" class=\"pictureModule\"></div>");
	PictureModule.render(document.body);													  
	YAHOO.util.Event.addListener("picture1", "click", wineImageOut);
	YAHOO.util.Event.addListener("picture1", "mouseOut", wineImageOut);
	PictureModule.cfg.setProperty("zindex", 99999);
	
    MagModule = new YAHOO.widget.Overlay("magnify", { 
										  xy:[-2000,-2000],	
										  visible:false 
  	 								      });   	

	MagModule.cfg.setProperty("zindex", 88888);
	MagModule.setBody("<div class=\"magModule\"><img id='magnifyImg' onmouseover='magnifyOver();' onmouseout='magnifyOut();' onclick='wineBigImageIn();' src='/macgif2.gif'></div>");
	MagModule.render(document.body);	


	if (!browserIE)
	{
	    QuickViewModule = new YAHOO.widget.Panel("QVPanel", { 
//										  constraintoviewport: true,
//										  fixedcenter:true,	
										  effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25},
										  width: "600px", 
										  visible:false,
										  zindex: 999999
  	 								      });   	
		// fade causes text to not anti-alias in IE (<= 7)
	}
	else
	{
		if (browserIE6)
		{
		    QuickViewModule = new YAHOO.widget.Panel("QVPanel", { 
//										  fixedcenter:true,	
										  width: "600px", 
										  visible:false,
										  iframe: true,
										  zindex: 9999999
  	 								      });   		
		}
		else
		{
		    QuickViewModule = new YAHOO.widget.Panel("QVPanel", { 
//										  fixedcenter:true,	
										  width: "600px", 
										  visible:false,
										  zindex: 999999
  	 								      });   					
		}
	}

	QuickViewModule.setHeader("<div class=\"hd\"><div class=\"tl\"></div><span>Wine Quick View</span><div class=\"tr\"></div></div>");
	QuickViewModule.setBody("");
	QuickViewModule.render(document.body);													  
//	YAHOO.util.Event.addListener("QVPanel", "click", quickViewOut);
	
    ReviewHelpModule = new YAHOO.widget.Panel("HelpPanel", { 
										  constraintoviewport: true,
//										  fixedcenter:true,	
										  effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25},
										  height: "300px",
										  width: "350px", 
										  visible:false,
										  zindex: 999999
  	 								      });   	

	ReviewHelpModule.setHeader("<div class=\"hd\"><div class=\"tl\"></div><span>Adding a Wine</span><div class=\"tr\"></div></div>");
	
	addWineText = "<div class=\"HelpPanelWrap\"><div class=\"column_D\"><p class=\"helpTitle\">Winery Name</p><p class=\"helpText\">The name of the winery / producer.</p><p class=\"helpTitle\">Varietal</p><p class=\"helpText\">The name of the grape varietal used to produce this wine. Use the [Add] link to add more varietals if this wine is a blend.</p><p class=\"helpText\">If the wine is a blend, but there are no details given on the grapes, choose 'Proprietary Blend' at the end of the Varietal select list.</p><p class=\"helpText\">If the varietals are not listed anywhere on the bottle, and you are not sure if it is a blend, choose 'Not Listed' at the end of the Varietal select list.</p><p class=\"helpTitle\">Name / Other</p><p class=\"helpText\">This is the marketed wine name or other unique designator (e.g. Redemption Zin, Oak Aged, Reserve). Many wines are simply designated by the winery and varietal, so this field is often left blank.</p><p class=\"helpTitle\">Country</p><p class=\"helpText\">The name of the country that produced this wine.</p><p class=\"helpTitle\">Region</p><p class=\"helpText\">The region that produced this wine. If no region is listed on the wine bottle, or we do not have the region listed in the select list, please keep this selection on the 'Choose the Region' option.</p><p class=\"helpTitle\">SubRegion</p><p class=\"helpText\">The SubRegion/appellation that produced this wine. If no SubRegion is listed on the wine bottle, or we do not have the SubRegion listed in the select list, please keep this selection on the 'Choose the SubRegion' option.</p><p class=\"helpTitle\">Vintage</p><p class=\"helpText\">The Vintage is the year the grapes were harvested. If there is no vintage year listed, or if the wine is a non-vintage or multi-vintage wine, please enter 'NV'</p><p class=\"helpTitle\">Color</p><p class=\"helpText\">The general color of the wine. There are three basic categories: Red, Rose (Blush/Pink), and White.  The depth of the color can be further defined within the 'Appearance' section of the optional wine review.</p><p class=\"helpTitle\">Type</p><p class=\"helpText\">The type of wine.  Standard wine is called Still or Table wine.</p></div></div>";

	reviewText = "<div class=\"HelpPanelWrap\"><div class=\"column_D\"><p class=\"helpTitle\">Wine Review</p><p class=\"helpText\">There are no wrong answers here! If you aren't yet comfortable writing a full review, check out the Aroma section and take a shot at defining this wine by some of the most common descriptors.</p><p class=\"helpTitle\">Clarity</p><p class=\"helpText\">How clear is the wine?  Tilt your glass at an angle and look into the light or down onto a white background.  Unfiltered wines can often be slightly hazy, and old wines may have sediment.  Our clarity scale goes from Brilliant (crystal clear) to Cloudy (visible sediment, haziness).</p><p class=\"helpTitle\">Depth</p><p class=\"helpText\">Depth defines the darkness of the color. Use the slider to find a color that comes close to your wine.</p><p class=\"helpTitle\">Acidity</p><p class=\"helpText\">A major taste componenent to wine, acidity can best be detected on the sides of the tongue.  It can also help to associate the taste with a common acidic flavor.</p><p class=\"helpText\">The major acids in wine grapes are tartaric (bananas), malic (green apple), and citric (lemons).  The fermentation process also adds other acids, primarily lactic (yogurt), succinic (salty), and acetic (vinegar).</p><p class=\"helpTitle\">Sweetness</p><p class=\"helpText\">Sweetness can best be detected on the tip of the tongue. It is important to concentrate on the tongue, as fruity aromas can often lead to the perception of sweetness.</p><p class=\"helpText\">In the natural wine making process there is a direct corellation between sweetness and alcohol content, so look at the back of the bottle for a clue.  The higher the alcohol, the lower the sugar level. However, winemakers can alter the process to add additional sugars or alcohol, so this rule is not always true.</p><p class=\"helpTitle\">Bitterness</p><p class=\"helpText\">Bitterness is most evident in aftertaste on the back of the tongue.  Like acidity, it can help to associate the taste with a common bitter flavor, like dark chocolate, coffee, or stout beer.</p><p class=\"helpTitle\">Alcohol</p><p class=\"helpText\">Alcohol is best detected through its physical effects on the body. High alcohol content can bring the perception of heat in the back of the mouth or throat, or a burning sensation in the taste buds.</p><p class=\"helpTitle\">Tannins</p><p class=\"helpText\">Tannins are astringent plant chemicals found naturally in grape seeds, skins, and stems. They produce the familiar drying, puckering feeling on the tongue.</p><p class=\"helpTitle\">Texture</p><p class=\"helpText\">Mouthfeel is the texture and body of wine in the mouth and on the tongue. It is often perceived in weight, viscosity, and graininess.</p><p class=\"helpTitle\">Balance</p><p class=\"helpText\">Balance defines the overall harmony in the various taste components.  If any one attribute dominates the taste of a wine to the detriment of the other taste elements, it's likely out of balance.</p></div></div>";

	ReviewHelpModule.setBody(addWineText);
	ReviewHelpModule.render(document.body);													  
	
	
	if (searchNow)
	{
		document.getElementById("wineSearchEdit").value = searchVal;
		prepareSubmit();
	}	
	
//	document.getElementById("wineSearchEdit").focus();  // set default focus.

	var docHash = window.location.hash;
	if (docHash.indexOf("restoreBack") != -1)
	{
		var callback = 
		{
			success:backLoadSuccess,
			failure:backLoadFailure,
			customevents: { onStart: backLoadStart },
			timeout: 10000
		}
		
		YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
		var cObj = YAHOO.util.Connect.asyncRequest('POST', '/getsearchback_s.php', callback); 				

		if (docHash.indexOf("restoreBackFood") != -1)
		{
			lastSearch = 1;
			var callback = 
			{
				success:backOptionsLoadFoodSuccess,
				failure:backLoadFailure,
				customevents: { onStart: backLoadStart },
				timeout: 50000
			}
		}
		else
		{
			lastSearch = 0;
			var callback = 
			{
				success:backOptionsLoadSuccess,
				failure:backLoadFailure,
				customevents: { onStart: backLoadStart },
				timeout: 50000
			}
		}

		YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
		var cObj = YAHOO.util.Connect.asyncRequest('POST', '/getsearchbackoptions_s.php', callback); 				

	}
	

}


YAHOO.util.Event.onDOMReady(init);
