// JavaScript Document

/*
function LightenColor(rgbtext, delta) 
{
   var r, g, b, txt;
   r= parseInt(rgbtext.substr(1, 2), 16),
   g= parseInt(rgbtext.substr(3, 2), 16),
   b= parseInt(rgbtext.substr(5, 2), 16),

   r+= delta;  if (r> 255) r= 255;  if (r< 0) r= 0;
   g+= delta;  if (g> 255) g= 255;  if (g< 0) g= 0;
   b+= delta;  if (b> 255) b= 255;  if (b< 0) b= 0;
   txt= b.toString(16);       if (txt.length< 2) txt= "0"+ txt;
   txt= g.toString(16)+ txt;  if (txt.length< 4) txt= "0"+ txt;
   txt= r.toString(16)+ txt;  if (txt.length< 6) txt= "0"+ txt;

   return "#"+ txt;
}
function DarkenColor(rgbtext, delta) 
{
   return LightenColor(rgbtext, delta* -1);
}
*/
// JavaScript Document

var PhotoModule = null;
var showPhotoRegion = null;
var uploadDialog = null;
var toolTip = null;
var PictureModule = null;
var wineReview = -1;
var imageUploaded = false;
var HelpModule = null;
var delete_review_id = 0;
var promptWarningDialog = null;


var messageOut = new Image;
var messageOver = new Image;
var followOut = new Image;
var followOver = new Image;
var praiseOut = new Image;
var praiseOver = new Image;

messageOut.src="/Images/messageme.gif";
messageOver.src="/Images/messageme2.gif";
followOut.src="/Images/followme.gif";
followOver.src="/Images/followme2.gif";
praiseOut.src="/Images/praiseme.gif";
praiseOver.src="/Images/praiseme2.gif";

var messageDialog = null;
var messageUser = 0;

var MagModule = null;
var bigImageOut = 1;
var overImage = 0;

var facebookLoggedIn = false;

// ---- For Error Output----------------

var Error = false;
var ErrorText = "";
function addError(Message)
{
	Error = true;
	ErrorText += "<p>* " + Message + "</p>"
}


function regionMouseOver(e, imageElement)
{
	this.className = 'tabTextOver'; 
	imageElement.src = DownArrowGray.src;
}
function regionMouseOut(e, imageElement)
{
	this.className = 'tabText'; 
	imageElement.src = DownArrow.src;
}
function regionMouseOverUp(e, imageElement)
{
	this.className = 'tabTextOver'; 
	imageElement.src = UpArrowGray.src;
}
function regionMouseOutUp(e, imageElement)
{
	this.className = 'tabText'; 
	imageElement.src = UpArrow.src;
}

function showPhotos()  
{
	if (!PhotoModule.cfg.getProperty("visible"))
	{
		PhotoModule.show();
		document.getElementById("showPhotoRegion").innerHTML = "<img id=\"upArrowPhoto\" src=\"/Images/uparrow.gif\" alt=\"up arrow\"/>Hide Additional Photos";
		YAHOO.util.Event.addListener("showPhotoRegion", "mouseover", regionMouseOverUp, document.getElementById("upArrowPhoto"));
		YAHOO.util.Event.addListener("showPhotoRegion", "mouseout", regionMouseOutUp, document.getElementById("upArrowPhoto"));
	}
	else
	{
		PhotoModule.hide();
		document.getElementById("showPhotoRegion").innerHTML = "<img id=\"downArrowPhoto\" src=\"/Images/downarrow.gif\" alt=\"down arrow\"/>Show All Photos";
		YAHOO.util.Event.addListener("showPhotoRegion", "mouseover", regionMouseOver, document.getElementById("downArrowPhoto"));
		YAHOO.util.Event.addListener("showPhotoRegion", "mouseout", regionMouseOut, document.getElementById("downArrowPhoto"));
	}
	document.getElementById("showPhotoRegion").className = 'tabText';
}

var LoadingContainer = 
		new YAHOO.widget.Panel("loadingDialog",  
			{ width:"80px", 
			  fixedcenter:true, 
			  close:false, 
			  draggable:false, 
			  zindex:15000,
			  visible:false
			} 
	);

var wineWarning = function(warningText, header)
{
	if (!header)
	{
		header = "Wine Issue"
	}
	wineWarningDialog.setHeader("<div class=\"hd\"><div class=\"tl\"></div><span>" + header + "</span><div class=\"tr\"></div></div>");

	var bodyText = '<div class="dialogWrap"><table class="popupTable" border="0" cellspacing="0" cellpadding="0"><tr><td>' + warningText + '</td></tr></table></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 }]
						});	


// ------------------------- V2 Functions ----------------------------------------------------------------------








































// ------------------------------------ Get State Prompt ----------------------------------------------


function setLocation()
{
	statePromptWarning();
}
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();
		window.location.reload();
	}		
}


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:deleteReviewFailure,
		customevents: { onStart: deleteReviewStart },
		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} ]
						});	

// -------------------------------------Top section--------------------------------------------


	
	
	
var quickVoteSuccess = 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) == "[alert]")
	{
		document.getElementById("voting").innerHTML = "You've already voted!";			
	}
	else
	{
		document.getElementById("voting").innerHTML = "Thank you for voting!";			
	}		
}	

function quickVote(thevote)
{
	if (thevote == 0)
	{
		document.getElementById("thumbVoteDiv2").innerHTML = '<table class="eventSummary" border="0" cellspacing="0" cellpadding="0"><tr><td colspan="3">Quick Rating:</td></tr><tr id="quickThumbVote"><td><img onclick="quickVote(0);" title="thumbs up" onmouseover="thumbZoneIn(this);" onmouseout="thumbZoneOut(this);" src="/Images/upthumb_to3.gif"  /></td><td><img onclick="quickVote(1);" title="ok" onmouseover="thumbZoneIn(this);" onmouseout="thumbZoneOut(this);" src="/Images/medthumb_t.gif"  /></td><td><img onclick="quickVote(2);" title="thumbs down" onmouseover="thumbZoneIn(this);" onmouseout="thumbZoneOut(this);" src="/Images/downthumb_t.gif"  /></td></tr></table>';
  
	}
	else if (thevote == 1)
	{
		document.getElementById("thumbVoteDiv2").innerHTML = '<table class="eventSummary" border="0" cellspacing="0" cellpadding="0"><tr><td colspan="3">Quick Rating:</td></tr><tr id="quickThumbVote"><td><img onclick="quickVote(0);" title="thumbs up" onmouseover="thumbZoneIn(this);" onmouseout="thumbZoneOut(this);" src="/Images/upthumb_t.gif"  /></td><td><img onclick="quickVote(1);" title="ok" onmouseover="thumbZoneIn(this);" onmouseout="thumbZoneOut(this);" src="/Images/medthumb_to3.gif"  /></td><td><img onclick="quickVote(2);" title="thumbs down" onmouseover="thumbZoneIn(this);" onmouseout="thumbZoneOut(this);" src="/Images/downthumb_t.gif"  /></td></tr></table>';
	}
	else if (thevote == 2)
	{
		document.getElementById("thumbVoteDiv2").innerHTML = '<table class="eventSummary" border="0" cellspacing="0" cellpadding="0"><tr><td colspan="3">Quick Rating:</td></tr><tr id="quickThumbVote"><td><img onclick="quickVote(0);" title="thumbs up" onmouseover="thumbZoneIn(this);" onmouseout="thumbZoneOut(this);" src="/Images/upthumb_t.gif"  /></td><td><img onclick="quickVote(1);" title="ok" onmouseover="thumbZoneIn(this);" onmouseout="thumbZoneOut(this);" src="/Images/medthumb_t.gif"  /></td><td><img onclick="quickVote(2);" title="thumbs down" onmouseover="thumbZoneIn(this);" onmouseout="thumbZoneOut(this);" src="/Images/downthumb_to3.gif"  /></td></tr></table>';
	}

	
	var callback = 
	{
		success:quickVoteSuccess,
		failure:deleteReviewFailure,
		customevents: { onStart: deleteReviewStart },
		timeout: 10000
	}
	
	var postData = "quickVote="+thevote+"&wineID="+wineID;
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/quickvotewine_s.php', callback, postData);
	return false;
}

function thumbZoneIn(element)
{
	element.style.border = "2px solid #CCCCCC";
}
function thumbZoneOut(element)
{
	element.style.border = "2px solid #FFFFFF";
}

function tasteRateOver(element, phrase)
{
	element.style.border = "1px solid #CCCCCC";	
	element.style.paddingTop = "5px";
	document.getElementById("tasteDescription").innerHTML = phrase;
}
function tasteRateOut(element)
{
	element.style.border = "none";	
	element.style.paddingTop = "0px";	
	document.getElementById("tasteDescription").innerHTML = "&nbsp;";
}

function showRegionFull()
{
	disp = document.getElementById("regionDetail").style.display;
	if (disp == "block")
	{
		document.getElementById("regionDetail").style.display = "none";
	}
	else
	{
		document.getElementById("regionDetail").style.display = "block";
	}
}
function showPastRatingsHistory()
{
	disp = document.getElementById("pastRatingsHistory").style.display;
	if (disp == "block")
	{
		document.getElementById("pastRatingsHistory").style.display = "none";
	}
	else
	{
		document.getElementById("pastRatingsHistory").style.display = "block";
	}
}


























// ---------------------------------- Get McGeeName --------------------------------------------------

var getMcGeeNameSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length), "Message Error");	
	}
	else
	{
		document.getElementById("toName").innerHTML = o.responseText;		
		messageDialog.show();
	}
};

function messageMe(userID)
{
	if (wineText.length > 35)
		wineText = wineText.substr(0,35) + "...";
		
	document.getElementById("subjectEdit").value = "Your wine review for '" + wineText + "'";
	messageUser = userID;

	var callback = 
	{
		success: getMcGeeNameSuccess,
		failure: deleteReviewFailure,
		customevents: { onStart: deleteReviewStart },
		timeout: 5000
	}
		
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/getmcgeename_s.php', callback, 'userID='+userID); 	
}

// ------------------------------------ Follow Me -----------------------------------------------------------

var followMeSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length), "Follow Issue");	
	}
	else
	{
		wineWarning("You are now following this user.  Updates on wine reviews, wine talk, questions and answers will appear within the Recent Happenings section on your profile.", "Follow Me");			
	}
};

function followMe(followID)
{
	var callback = 
	{
		success: followMeSuccess,
		failure: deleteReviewFailure,
		customevents: { onStart: deleteReviewStart },
		timeout: 5000
	}
		
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/followme_s.php', callback, 'userID='+followID); 	
}
// ------------------------------------ Praise -----------------------------------------------------------

var praiseSuccess = function(o)
{ 
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length), "Praise Issue");	
	}
	else
	{
		wineWarning("Thank you for recognizing a great review! Sending praise on WineMcGee is a great way to reward other users for a job well done.<p>Giving praise also increases your McGee Points and Popularity. Users that acheive high Popularity levels can gain additional privileges on WineMcGee - like the ability to update wine detail and become The Boss of certain WineMcGee pages.</p><p>We also like to reward our best users with discounted or free wine!</p>", "Praise Sent!");			
	}
};

function praiseMe(reviewID)
{
	var callback = 
	{
		success: praiseSuccess,
		failure: deleteReviewFailure,
		customevents: { onStart: deleteReviewStart },
		timeout: 5000
	}
		
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/givepraise_s.php', callback, 'type=1&uniqueID='+reviewID); 	
}


// ------------------------------------ Dialog for delete warning ----------------------------------------------

var promptWarning = function(warningText)
{
	promptWarningDialog.setHeader("<div class=\"hd\"><div class=\"tl\"></div><span>Are you sure?</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();
	var callback = 
	{
		success: deleteReviewSuccess,
		failure: deleteReviewFailure,
		customevents: { onStart: deleteReviewStart },
		timeout: 5000
	}
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/winedeletereview_s.php', callback, 'reviewID='+delete_review_id+'&wineID='+wineID);
}
var promptNo = function() 
{
	promptWarningDialog.hide();
}

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:"Delete!", handler:promptYes, isDefault:true },
					  				   { text:"Cancel", handler:promptNo} ]
						});	

// ------------------------------------ Delete Photo -----------------------------------------------------------

var deletePhotoStart = function(o)
{ 
	LoadingContainer.show();
};
var deletePhotoSuccess = function(o)
{ 
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		// now call photo layout script		
		var callback = 
		{
			success: photoLayoutSuccess,
			failure: photoLayoutFailure,
			customevents: { onStart: photoLayoutStart },
			timeout: 5000
		}
		
		YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
		var cObj = YAHOO.util.Connect.asyncRequest('POST', '/winephotolayout.php', callback, 'wineID='+wineID); 						
	}
};
var deletePhotoFailure = function(o)
{ 
	LoadingContainer.hide();
	wineWarning("There was a communication error on the WineMcGee servers. Please try again later.");
};

function deletePhoto(photo_id)
{
	var callback = 
	{
		success: deletePhotoSuccess,
		failure: deletePhotoFailure,
		customevents: { onStart: deletePhotoStart },
		timeout: 5000
	}
		
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/winedeletephotoweb.php', callback, 'photoID='+photo_id+'&wineID='+wineID); 	
}

// ------------------------------------ Delete Review -----------------------------------------------------------
var deleteReviewStart = function(o)
{ 
	LoadingContainer.show();
};
var deleteReviewSuccess = function(o)
{ 
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		// now call load review script		
		callback = 
		{
			success: reviewsSuccess,
			failure: reviewsFailure,
			customevents: { onStart: reviewsStart },
			timeout: 5000
		}
		
		YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
		var cObj = YAHOO.util.Connect.asyncRequest('POST', '/wineloadreviews.php', callback, 'wineID='+wineID+'&colorID='+colorID); 								
	}
};
var deleteReviewFailure = function(o)
{ 
	LoadingContainer.hide();
	wineWarning("There was a communication error on the WineMcGee servers. Please try again later.");
};

function deleteReview(review_id)
{
	delete_review_id = review_id;
	promptWarning("This will permanently delete your review from our database. Are you sure you want to delete this review?");
}

// ------------------------------------ Report Abuse -----------------------------------------------------------
var reportAbuseStart = function(o)
{ 
	LoadingContainer.show();
};
var reportAbuseSuccess = function(o)
{ 
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		wineWarning("Thank you for reporting abuse.  We will review this posting.");	
	}
};
var reportAbuseFailure = function(o)
{ 
	LoadingContainer.hide();
	wineWarning("There was a communication error on the WineMcGee servers. Please try again later.");
};

function reportAbuse(review_id)
{
	var callback = 
	{
		success: reportAbuseSuccess,
		failure: reportAbuseFailure,
		customevents: { onStart: reportAbuseStart },
		timeout: 5000
	}
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/winereportabuse_s.php', callback, 'reviewID='+review_id+'&wineID='+wineID); 	
}
// ------------------------------------ Load Reviews -----------------------------------------------------------
	
var reviewsStart = function(o)
{ 
	LoadingContainer.show();
};
var reviewsSuccess = function(o)
{ 
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		/*
		if (imageAddModule.cfg.getProperty("visible"))
			showImageAddRegion();
		if (aromaAddModule.cfg.getProperty("visible"))
			showAromaAddRegion();
		if (reviewAddModule.cfg.getProperty("visible"))
			showReviewAddRegion();
		if (tasteAddModule.cfg.getProperty("visible"))
			showTasteAddRegion();
		if (sightAddModule.cfg.getProperty("visible"))
			showSightAddRegion(); */
			
		document.getElementById("comments").innerHTML = o.responseText;
		
		// 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}
											});					
		}
		*/
/*		if (toolTip)
		{
			toolTip.destroy();
		}
		if (imgElementArray.length > 0)
		{
			toolTip = new YAHOO.widget.Tooltip("tooltip", 
										{ context: imgElementArray,
								  		  effect: {effect:YAHOO.widget.ContainerEffect.FADE,duration:0.20}
										});					
		}
	*/	
	}
	LoadingContainer.hide();
};
var reviewsFailure = function(o)
{ 
	LoadingContainer.hide();
	wineWarning("There was a communication error on the WineMcGee servers. Please try again later.");
};
	
// ------------------------------------ Photo Layout -----------------------------------------------------------
	
var photoLayoutStart = function(o)
{ 
	LoadingContainer.show();
};
var photoLayoutSuccess = function(o)
{ 
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		document.getElementById("photoArea").innerHTML = o.responseText;
		
		// 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}
											});					
		}
	*/
	}
	LoadingContainer.hide();
};
var photoLayoutFailure = function(o)
{ 
	LoadingContainer.hide();
	wineWarning("There was a communication error on the WineMcGee servers. Please try again later.");
};
	
// ------------------------------------ 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 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: 80000,
		cache: false
	};
		
	if (uploadType == 1)
		var cObj = YAHOO.util.Connect.asyncRequest('POST', '/wineimageuploadweb.php', callback, 'wineID='+wineID); 
	else if (uploadType == 2)
		var cObj = YAHOO.util.Connect.asyncRequest('POST', '/winelabelimageuploadweb.php', callback, 'wineID='+wineID); 	
	else if (uploadType == 3)
		var cObj = YAHOO.util.Connect.asyncRequest('POST', '/winelabelimageuploadweb2.php', callback, 'wineID='+wineID); 	
		
	uploadDialog.hide();
	LoadingContainer.show();
};   
var handleCancel = function()   // if the cancel button is clicked, cancel the form
{   
    uploadDialog.cancel();   
};   
var onFailure = function(o)
{
	LoadingContainer.hide();
	wineWarning("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]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{	
		if (uploadType == 2)  // upload for wine label image
		{
			imageUploaded = true;
			document.getElementById("wineThumb").innerHTML = o.responseText;
		}
		else if (uploadType == 3)
		{
			document.getElementById("mainWineLabelImage").innerHTML = o.responseText;		
		}
		else if (uploadType == 1)   // upload for general wine image
		{
			// now call photo layout script		
			var callback = 
			{
				success: photoLayoutSuccess,
				failure: photoLayoutFailure,
				customevents: { onStart: photoLayoutStart },
				timeout: 5000
			}
			
			YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
			var cObj = YAHOO.util.Connect.asyncRequest('POST', '/winephotolayout.php', callback, 'wineID='+wineID); 						
		}
	}
}
// ---------------------------------------------------- get Next/Previous reviews --------------------------------------------
function getReviews(review_id)
{
	callback = 
	{
		success: reviewsSuccess,
		failure: reviewsFailure,
		customevents: { onStart: reviewsStart },
		timeout: 5000
	}	
	
	YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
	var cObj = YAHOO.util.Connect.asyncRequest('POST', '/wineloadreviews.php', callback, 'wineID='+wineID+'&colorID='+colorID+'&reviewStart='+review_id); 									
}

// ----------------------------------------------------Prepare for wine review post --------------------------------------------
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
	{
		document.getElementById("ErrorDiv").innerHTML = "";
		document.getElementById("aromaRegion").innerHTML = "";		

		// now call load review script		
		callback = 
		{
			success: reviewsSuccess,
			failure: reviewsFailure,
			customevents: { onStart: reviewsStart },
			timeout: 5000
		}	
		
		YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
		var cObj = YAHOO.util.Connect.asyncRequest('POST', '/wineloadreviews.php', callback, 'wineID='+wineID+'&colorID='+colorID); 								
	}
}
var wineSubmitFailure = function(o)
{ 
	wineWarning("There was a communication error on the WineMcGee servers. Please try again later.");
}

function prepareWineSubmit()
{
	var postString = "";

	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 (Description.match(/([-a-zA-Z\.\?]+\s+){5,}/) && Description.length != 0)
			addError("Your wine review is too short.  Please enter a complete review, or erase your review completely.  You can also optionally remove the Quick Review section by clicking on the 'Remove Quick Review' tile."); */

		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 click the 'Remove Taste' tile underneath the Taste section to 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&";				


	postString += "wineID=" + wineID;				

	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', '/winereview.php', callback, postString); 
				
		return false;
	}
}

// ---------------------------------------------------- Wine Review Panels Show/Hide --------------------------------------------


// 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();
	}
}

// ----------------------------------------------------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', '/winearomaremove.php', callback, 'minorAromaID='+minorAromaID+'&wineID='+wineID); 
	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', '/winearomaadd.php', callback, 'minorAromaID='+minorAromaID+'&wineID='+wineID); 
	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', '/winearomachange.php', callback, 'majorAromaID='+majorAromaID+'&wineID='+wineID); 
	return false;
}

// ---------------------------------------------------- Zoom & upload for uploadImage --------------------------------------------

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";
}

// ---------------------------------------------------- Depth Change image opacity --------------------------------------------

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);
}

// ---------------------------------------------------- Help text panels --------------------------------------------

var BlurHelpModule = function(e, obj)
{
	obj.hide();
};
var FocusHelpModule = function(e, obj)
{
	xyID = this.id;

	if (this.id == "reviewText") 
		obj.setBody("<div class=\"eventHelpText\">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.</div>");

	if (this.id == "sightSlide" || this.id == "sightThumb") 
	{
		xyID = document.getElementById('sightSlide');
		obj.setBody("<div class=\"eventHelpText\">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).</div>");
		
	}
	if (this.id == "depthSlide" || this.id == "depthThumb") 
	{
		xyID = document.getElementById('depthSlide');
		obj.setBody("<div class=\"eventHelpText\">Depth defines the darkness of the color. Use the slider to find a color that comes close to your wine.</div>");
	}
	if (this.id == "aciditySlide" || this.id == "acidityThumb") 
	{
		xyID = document.getElementById('aciditySlide');
		obj.setBody("<div class=\"eventHelpText\">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>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)</div>");
	}
	if (this.id == "sweetSlide" || this.id == "sweetThumb") 
	{
		xyID = document.getElementById('sweetSlide');
		obj.setBody("<div class=\"eventHelpText\">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>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.</div>");
	}
	if (this.id == "bitterSlide" || this.id == "bitterThumb") 
	{
		xyID = document.getElementById('bitterSlide');
		obj.setBody("<div class=\"eventHelpText\">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.</div>");
	}
	if (this.id == "alcoholSlide" || this.id == "alcoholThumb") 
	{
		xyID = document.getElementById('alcoholSlide');
		obj.setBody("<div class=\"eventHelpText\">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.</div>");
	}
	if (this.id == "tanninsSlide" || this.id == "tanninsThumb") 
	{
		xyID = document.getElementById('tanninsSlide');
		obj.setBody("<div class=\"eventHelpText\">Tannins are astringent plant chemicals found naturally in grape seeds, skins, and stems. They produce the familiar drying, puckering feeling on the tongue.</div>");
	}
	if (this.id == "textureSlide" || this.id == "textureThumb") 
	{
		xyID = document.getElementById('textureSlide');
		obj.setBody("<div class=\"eventHelpText\">Mouthfeel is the texture and body of wine in the mouth and on the tongue. It is often perceived in weight, viscosity, and graininess.</div>");
	}
	if (this.id == "balanceSlide" || this.id == "balanceThumb") 
	{
		xyID = document.getElementById('balanceSlide');
		obj.setBody("<div class=\"eventHelpText\">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.</div>");
	}
		

	x = YAHOO.util.Dom.getX(xyID);
	y = YAHOO.util.Dom.getY(xyID);

	obj.cfg.setProperty("x", x+520);
	obj.cfg.setProperty("y", y);
					
	obj.show();
};

// ----------------------------------------------------For Ajax Review Vote --------------------------------------------
function vote(currentVote)
{
	if (currentVote == 0)
	{
		wineReview = 0;
		document.getElementById("thumbVoteDiv").innerHTML = '<table id="thumbVote" class="thumbVote" border="0" cellspacing="0" cellpadding="0"><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></table>';
  
	}
	else if (currentVote == 1)
	{
		wineReview = 1;
		document.getElementById("thumbVoteDiv").innerHTML = '<table id="thumbVote" class="thumbVote" border="0" cellspacing="0" cellpadding="0"><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></table>';
	}
	else if (currentVote == 2)
	{
		wineReview = 2;
		document.getElementById("thumbVoteDiv").innerHTML = '<table id="thumbVote" class="thumbVote" border="0" cellspacing="0" cellpadding="0"><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></table>';
	}
}

// show facebook popup to publish review if we are logged in.

var load_feed_two = function(o)
{
	LoadingContainer.hide();
	var Response = o.responseText;
	if (Response.substring(0,7) == "[error]")
	{
		wineWarning(Response.substring(7,Response.length));	
	}
	else
	{
		// if there were aromas.
		if (Response.length > 0)
		{
			var filesArray = Response.split(",");
		}
		
		var rating = "";
		if (wineReview == 0)
			rating = "thumbs up!";
		else if (wineReview == 1)
			rating = "mediocre rating.";
		else if (wineReview == 0)
			rating = "thumbs down :(";
									
		var imagesArray = new Array();
		var wineURL = '<a href=\'http://www.winemcgee.com/wine/'+wineID+'\'>'+wineText+'</a>';
		
// if there were aromas
		if (Response.length > 0)
		{
			for (var a = 0; a < filesArray.length; a++)
			{				
				imagesArray[a] = {'src': 'http://www.winemcgee.com/Images/'+filesArray[a], 'href': 'http://www.winemcgee.com'};
			}
		}
		
//		imagesArray = [{'src': 'http://www.winemcgee.com/Images/apricot.png', 'href': 'http://www.winemcgee.com'},{'src': 'http://www.winemcgee.com/Images/fig.png', 'href': 'http://www.winemcgee.com'}, {'src': 'http://www.winemcgee.com/Images/blueberry.png', 'href': 'http://www.winemcgee.com'} ];
		
		var template_data = 
		{
			"wine": wineURL, 
			"rating": rating,
			"images": imagesArray
		};
		

		FB.Connect.showFeedDialog('125484357001', template_data, null, null, null, FB.RequireConnect.promptConnect, prepareWineSubmit, 'Enter a comment to share this review on Facebook!', null);	

		prepareWineSubmit();
	}
}
var load_feed = function()
{
/*
	if (facebookLoggedIn && reviewAddModule.cfg.getProperty("visible") && wineReview != -1)
	{
		var callback = 
		{
			success:load_feed_two,
			failure:aromaImageFailure,
			customevents: { onStart: aromaImageStart },
			timeout: 5000
		}
		
		YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
		var cObj = YAHOO.util.Connect.asyncRequest('POST', '/getfacebookaromas_s.php', callback, 'wineID='+wineID); 
		return false;					
	}
	else */
	
	prepareWineSubmit();	
}

function facebook_onlogin()
{
	window.location = "https://www.winemcgee.com/connect.php";
}

// ------------------------------------ Init -----------------------------------------------------------

function init()
{
	LoadingContainer.setBody('<img src="/Images/ajaxload.gif" />');
	LoadingContainer.render(document.body);
	

	// ------------------------------------ Message Dialog -----------------------------------------------------------

	var handleMessageSubmit = function()   //when the submit button is clicked, submit the form
	{   
		var Subject = document.getElementById("subjectEdit").value;
		var Message = document.getElementById("messageText").value;
		
		var callback = 
		{
			success: onMessageSuccess,
			failure: onMessageFailure,
			timeout: 80000,
			cache: false
		};
				
		postlist = "";
		postlist += "subject=" + Subject + "&";
		postlist += "message=" + Message + "&";
		postlist += "type=0&";
		postlist += "con0=" + messageUser + "&";
		
		YAHOO.util.Connect.initHeader('X-Signature', transaction_sig); 
		var cObj = YAHOO.util.Connect.asyncRequest('POST', '/messagesend_s.php', callback, postlist); 
			
		messageDialog.hide();
		LoadingContainer.show();
	};   
	var handleMessageCancel = function()   // if the cancel button is clicked, cancel the form
	{   
		messageDialog.cancel();   
	};   
	var onMessageFailure = function(o)
	{
		LoadingContainer.hide();
		wineWarning("There was an error when submitting your message.  Please try again or contact WineMcgee support.");
	};
	
	var onMessageSuccess = function(o)
	{
		LoadingContainer.hide();
		var Response = o.responseText;
		if (Response.substring(0,7) == "[error]")
		{
			wineWarning(Response.substring(7,Response.length));	
		}
		else
		{
			wineWarning("Your message has been successfully sent!", "Message Sent");	
		}
	};
	
	messageDialog = new YAHOO.widget.Dialog("messageDialog",  
					{ width : "350px", 
					  fixedcenter : true, 
					  visible : false,  
					  zIndex:15000,
					  modal: true,
					  constraintoviewport : true, 
					  buttons : [ { text:"Submit", handler:handleMessageSubmit, isDefault:true }, 
								  { text:"Cancel", handler:handleMessageCancel } ] 
					 } ); 
	
	messageDialog.render(document.body);
	


	//-------------PhotoModule to enlarge photos on the fly -----------

	PhotoModule = new YAHOO.widget.Module("PhotoRegion", { visible: false });  
	PhotoModule.render();   
	showPhotoRegion = new YAHOO.widget.Module("showPhotoRegion", { visible: true });  
	showPhotoRegion.render();   
	YAHOO.util.Event.addListener("showPhotoRegion", "mouseover", regionMouseOver, document.getElementById("downArrowPhoto"));
	YAHOO.util.Event.addListener("showPhotoRegion", "mouseout", regionMouseOut, document.getElementById("downArrowPhoto"));
			
			
	//------------- Create uploadDialog 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 } ] 
	             } ); 

	uploadDialog.render(document.body);
	
	document.getElementById("sig").value = transaction_sig; // set the form security signature for image uploads
	
// -------- 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);	
	

	//------------- HelpModule to display review helper text-----------
	
	HelpModule = new YAHOO.widget.Overlay("helper1", { 
										  xy:[-2000,-2000],	
										  width: "250px", 
										  visible:false 
  	 								      });   				
	
	// ---------------load everything needed for wine reviews----------------------
	
	// add a listener for the wine image upload
	YAHOO.util.Event.addListener("showFileUploadReview", "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: true });  
	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();   
	
	showImageAddModule = new YAHOO.widget.Module("showImageAddRegion", { visible: true });  
	showReviewAddModule = new YAHOO.widget.Module("showReviewAddRegion", { visible: true });  
	showAromaAddModule = new YAHOO.widget.Module("showAromaAddRegion", { visible: true });  
	showTasteAddModule = new YAHOO.widget.Module("showTasteAddRegion", { visible: true });  
	showSightAddModule = new YAHOO.widget.Module("showSightAddRegion", { visible: true });  
	showImageAddModule.render();   
	showReviewAddModule.render();   
	showAromaAddModule.render();   
	showTasteAddModule.render();   
	showSightAddModule.render();   

	// add listeners for show modules (to change backgrounds, show up and down arrows		
	YAHOO.util.Event.addListener("showTasteAddRegion", "mouseover", regionMouseOver, document.getElementById("downArrowTaste"));
	YAHOO.util.Event.addListener("showTasteAddRegion", "mouseout", regionMouseOut, document.getElementById("downArrowTaste"));
	YAHOO.util.Event.addListener("showSightAddRegion", "mouseover", regionMouseOver, document.getElementById("downArrowSight"));
	YAHOO.util.Event.addListener("showSightAddRegion", "mouseout", regionMouseOut, document.getElementById("downArrowSight"));
	YAHOO.util.Event.addListener("showReviewAddRegion", "mouseover", regionMouseOver, document.getElementById("downArrowReview"));
	YAHOO.util.Event.addListener("showReviewAddRegion", "mouseout", regionMouseOut, document.getElementById("downArrowReview"));
	YAHOO.util.Event.addListener("showImageAddRegion", "mouseover", regionMouseOver, document.getElementById("downArrowImage"));
	YAHOO.util.Event.addListener("showImageAddRegion", "mouseout", regionMouseOut, document.getElementById("downArrowImage"));
	YAHOO.util.Event.addListener("showAromaAddRegion", "mouseover", regionMouseOver, document.getElementById("downArrowAroma"));
	YAHOO.util.Event.addListener("showAromaAddRegion", "mouseout", regionMouseOut, document.getElementById("downArrowAroma"));

    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);  

	HelpModule.setBody("<div class=\"eventHelpText\">The name of the winery / producer.</div>");
	HelpModule.render(document.body);
		
	// add listeners for Helper Text
	YAHOO.util.Event.addListener("sightSlide", "mousedown", FocusHelpModule, HelpModule);
	YAHOO.util.Event.addListener("depthSlide", "mousedown", FocusHelpModule, HelpModule);
	YAHOO.util.Event.addListener("sightThumb", "mousedown", FocusHelpModule, HelpModule);
	YAHOO.util.Event.addListener("depthThumb", "mousedown", FocusHelpModule, HelpModule);

	YAHOO.util.Event.addListener("aciditySlide", "mousedown", FocusHelpModule, HelpModule);
	YAHOO.util.Event.addListener("acidityThumb", "mousedown", FocusHelpModule, HelpModule);
	YAHOO.util.Event.addListener("sweetSlide", "mousedown", FocusHelpModule, HelpModule);
	YAHOO.util.Event.addListener("sweetThumb", "mousedown", FocusHelpModule, HelpModule);
	YAHOO.util.Event.addListener("bitterSlide", "mousedown", FocusHelpModule, HelpModule);
	YAHOO.util.Event.addListener("bitterThumb", "mousedown", FocusHelpModule, HelpModule);
	YAHOO.util.Event.addListener("alcoholSlide", "mousedown", FocusHelpModule, HelpModule);
	YAHOO.util.Event.addListener("alcoholThumb", "mousedown", FocusHelpModule, HelpModule);
	YAHOO.util.Event.addListener("tanninsSlide", "mousedown", FocusHelpModule, HelpModule);
	YAHOO.util.Event.addListener("tanninsThumb", "mousedown", FocusHelpModule, HelpModule);
	YAHOO.util.Event.addListener("textureSlide", "mousedown", FocusHelpModule, HelpModule);
	YAHOO.util.Event.addListener("textureThumb", "mousedown", FocusHelpModule, HelpModule);
	YAHOO.util.Event.addListener("balanceSlide", "mousedown", FocusHelpModule, HelpModule);
	YAHOO.util.Event.addListener("balanceThumb", "mousedown", FocusHelpModule, HelpModule);

	YAHOO.util.Event.addFocusListener("reviewText", FocusHelpModule, HelpModule);
	YAHOO.util.Event.addBlurListener("reviewText", BlurHelpModule, HelpModule);		
	YAHOO.util.Event.addFocusListener("DesignatorEdit", FocusHelpModule, HelpModule);
	YAHOO.util.Event.addBlurListener("DesignatorEdit", BlurHelpModule, HelpModule);		

	YAHOO.util.Event.addListener("helper1", "mousedown", BlurHelpModule, HelpModule);  // click the help module, it will go away

	FB.ensureInit( 
	   function()
	   {	
			var status = FB.Connect.get_status();
			if (status.result != FB.ConnectState.connected)
			{
				FB.XFBML.Host.autoParseDomTree = false; 
				FB.XFBML.Host.addElement(new FB.XFBML.LoginButton(document.getElementById("connectSpot"))); 
			}
			else
			{
				facebookLoggedIn = true;	
				document.getElementById("integrationText").innerHTML = "<div class='facebookText'>You are connected to Facebook, so you'll have the opportunity to share your review with your friends. This will post the review to your wall, and also show up on the news feed like any other content you share. If you are shy, and want to keep the review to yourself, just click 'skip' on the share dialog.</div>";
			}					   
		});							
}

YAHOO.util.Event.onDOMReady(init);

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 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 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";
