$(document).ready(function()
{
	$('#grocer_results_container').hide();
	
	jQuery.preLoadImages(
		'/entretien/wp-content/themes/eatreal_eatlocal/images/get_informed_btn_over.png',
		'/entretien/wp-content/themes/eatreal_eatlocal/images/get_involved_btn_over.png',
		'/common_blog_files/images/get_involved_gradient_bg.gif',
		'/common_blog_files/images/get_informed_gradient_bg.jpg'
	);
		
	$(document).pngFix();
	
	$('#get_informed_btn_up').mouseover(function ()
	{
		$('#get_informed_btn_up').hide();
		$('#get_informed_btn_over_img').show();
		$('#get_informed_subnav').slideDown(500);
	});

	$('#get_informed_btn_active').mouseover(function()
	{
		$('#get_informed_btn_active').hide();
		$('#get_informed_btn_over_img').show();
		$('#get_informed_subnav').slideDown(500);
	});

	$('#get_informed_btn_over').mouseleave(function()
	{
		$('#get_informed_subnav').slideUp(500, function()
		{
			$('#get_informed_btn_over_img').hide();

			if (bGetInformedActive)
			{
				$('#get_informed_btn_active').show();
			}
			else
			{
				$('#get_informed_btn_up').show();
			}
		});
	});

	$('#get_involved_btn_up').mouseover(function()
	{
		$('#get_involved_btn_up').hide();
		$('#get_involved_btn_over_img').show();
		$('#get_involved_subnav').slideDown(500);
	});

	$('#get_involved_btn_active').mouseover(function()
	{
		$('#get_involved_btn_active').hide();
		$('#get_involved_btn_over_img').show();
		$('#get_involved_subnav').slideDown(500);
	});

	$('#get_involved_btn_over').mouseleave(function()
	{
		$('#get_involved_subnav').slideUp(500, function()
		{
			$('#get_involved_btn_over_img').hide();

			if (bGetInvolvedActive)
			{
				$('#get_involved_btn_active').show();
			}
			else
			{
				$('#get_involved_btn_up').show();
			}
		});
	});

	var fGetApprovedGrocerCities = function(p_aCities)
	{
		$('#find_province').change(function()
		{
			// Hide grocers table until user selects a city.
			$('#grocer_results_container').hide();

			if (this.value == '')
			{
				// No province selected, hide city controls.
				$('#find_city').hide();
			}
			else
			{
				// Province selected, initialize and display city controls.
				$("#find_city").removeOption(/.*/);

				if (p_aCities[this.value].constructor.toString().indexOf("Array") == -1)
				{
					if ($("#find_language").val() == 'F')
					{
						$("#find_city").addOption({'[Select City]': 'S\u00e9lectionnez la ville'}, false);
					}
					else
					{
						$("#find_city").addOption({'[Select City]': 'Select City'}, false);
					}

					$("#find_city").addOption(p_aCities[this.value], false);
					$('#find_city').show();
				}
				else
				{
					// The province has no cities.
					$('#find_city').hide();

					// Clear grocers table
					$('#grocers').empty();

					// Display "no cities" message.
					if ($("#find_language").val() == 'F')
					{
						$('#grocers').html('<div class="grocer"><div class="grocer_result_address_container"><p class="grocer_result_address">Aucun &eacute;picier n\'a &eacute;t&eacute; trouv&eacute; dans cette province.</p></div></div>');
					}
					else
					{
						$('#grocers').html('<div class="grocer"><div class="grocer_result_address_container"><p class="grocer_result_address">No grocers were found in this province.</p></div></div>');
					}

					$('.print_list_link').hide();
					$('.share_list_link').hide();
					$('#grocer_results_container').show();
				}
			}
		});

		// Check query params
		var sProvince = jQuery.url.param('province');
		var sCity = jQuery.url.param('city');
		var sLanguage = jQuery.url.param('language');

		if (sProvince != undefined && sLanguage != undefined)
		{
			$('#find_language').val(sLanguage);
			$("#find_province").selectOptions(sProvince, true);
			$("#find_city").removeOption(/.*/);

			if (p_aCities[sProvince].constructor.toString().indexOf("Array") == -1)
			{
				if ($("#find_language").val() == 'F')
				{
					$("#find_city").addOption({'[Select City]': 'S\u00e9lectionnez la ville'}, false);
				}
				else
				{
					$("#find_city").addOption({'[Select City]': 'Select City'}, false);
				}

				$("#find_city").addOption(p_aCities[sProvince], false);
				$("#find_city").selectOptions(sCity, true);
				$('#find_city').show();
			}
			else
			{
				// The province has no cities.
				$('#find_city').hide();

				// Clear grocers table
				$('#grocers').empty();

				// Display "no cities" message.
				if ($("#find_language").val() == 'F')
				{
					$('#grocers').html('<div class="grocer"><div class="grocer_result_address_container"><p class="grocer_result_address">Aucun &eacute;picier n\'a &eacute;t&eacute; trouv&eacute; dans cette province.</p></div></div>');
				}
				else
				{
					$('#grocers').html('<div class="grocer"><div class="grocer_result_address_container"><p class="grocer_result_address">No grocers were found in this province.</p></div></div>');
				}

				$('.print_list_link').hide();
				$('.share_list_link').hide();
				$('#grocer_results_container').show();
			}
		}

		if (sCity != undefined)
		{
			jQuery.post('/ajax/get_approved_grocers_by_city.php',
			{
				'province'	: sProvince,
				'city'		: sCity
			},
			function(p_aGrocers) 
			{
				var sGrocersHTML = '';

				// Clear grocers table
				$('#grocers').empty();

				// Repopulate grocers table
				if (p_aGrocers.length > 0)
				{
					// Updated grocers table
					for (var iGrocer = 0; iGrocer < p_aGrocers.length; iGrocer++)
					{
						sGrocersHTML +=	'<div class="grocer">';

						if (p_aGrocers[iGrocer].grocer_map != '') 
						{
							if ($('#find_language').val() == 'F')
							{
								sGrocersHTML	+= '<img class="map" src="http://maps.google.com/maps/api/staticmap?center=' + Url.encode(p_aGrocers[iGrocer].grocer_map) + '&zoom=15&size=300x200&format=gif&language=fr&maptype=roadmap&markers=' + Url.encode(p_aGrocers[iGrocer].grocer_map) + '&sensor=false" align="left" />';
							}
							else
							{
								sGrocersHTML	+= '<img class="map" src="http://maps.google.com/maps/api/staticmap?center=' + Url.encode(p_aGrocers[iGrocer].grocer_map) + '&zoom=15&size=300x200&format=gif&language=en&maptype=roadmap&markers=' + Url.encode(p_aGrocers[iGrocer].grocer_map) + '&sensor=false" align="left" />';
							}
						}

						sGrocersHTML +=	'<div class="grocer_result_address_container">'
									 +	'<h3 class="grocer_result_name">' + p_aGrocers[iGrocer].grocer_name + '</h3>'
									 +	'<p class="grocer_result_address">';
									 
						if (p_aGrocers[iGrocer].grocer_address_1)
						{
							sGrocersHTML += p_aGrocers[iGrocer].grocer_address_1 + '<br />';
						}
						
						if (p_aGrocers[iGrocer].grocer_address_2)
						{
							sGrocersHTML += p_aGrocers[iGrocer].grocer_address_2 + '<br />';
						}
						
						if (p_aGrocers[iGrocer].grocer_city)
						{
							sGrocersHTML += p_aGrocers[iGrocer].grocer_city + ', ';
						}
						
						if (p_aGrocers[iGrocer].grocer_province)
						{
							sGrocersHTML += p_aGrocers[iGrocer].grocer_province;
						}
						
						if (p_aGrocers[iGrocer].grocer_postal_code)
						{
							sGrocersHTML += p_aGrocers[iGrocer].grocer_postal_code;
						}

						sGrocersHTML += '</p>';
						
						if (p_aGrocers[iGrocer].grocer_phone != '' || p_aGrocers[iGrocer].grocer_website != '' || p_aGrocers[iGrocer].grocer_email != '')
						{
							sGrocersHTML += '<p class="grocer_result_address">';

							if (p_aGrocers[iGrocer].grocer_phone != '')
							{
								sGrocersHTML +=	't: ' + p_aGrocers[iGrocer].grocer_phone + '<br />';
							}
							
							if (p_aGrocers[iGrocer].grocer_website != '')
							{
								sGrocersHTML += 'w: <a href="http://' + p_aGrocers[iGrocer].grocer_website + '" target="_blank" title="' + p_aGrocers[iGrocer].grocer_name + '">' + p_aGrocers[iGrocer].grocer_website + '</a><br />';
							}
							
							if (p_aGrocers[iGrocer].grocer_email != '')
							{
								if ($('#find_language').val() == 'F')
								{
									sGrocersHTML +=	'c';
								}
								else
								{
									sGrocersHTML +=	'e';
								}

								sGrocersHTML += ': <a href="mailto:' +	p_aGrocers[iGrocer].grocer_email + '">' +	p_aGrocers[iGrocer].grocer_email + '</a>';
							}
							
							sGrocersHTML += '</p>';
						}

						sGrocersHTML += '</div></div>';
						
						if (iGrocer + 1 < p_aGrocers.length)
						{
							sGrocersHTML += '<hr class="separator" />';
						} // if (iGrocer + 1 < p_aGrocers.length)
					}

					$('.print_list_link').show();
					$('.share_list_link').show();
				}
				else
				{
					if ($('#find_language').val() == 'F')
					{
						sGrocersHTML += '<div class="grocer"><div class="grocer_result_address_container"><p class="grocer_result_address">Aucun &eacute;picier n\'a &eacute;t&eacute; trouv&eacute; dans cette ville.</p></div></div>';
					}
					else
					{
						sGrocersHTML += '<div class="grocer"><div class="grocer_result_address_container"><p class="grocer_result_address">No grocers were found in this city.</p></div></div>';
					}

					$('.print_list_link').hide();
					$('.share_list_link').hide();
				}

				$('#grocers').html(sGrocersHTML);
			}, 'json');

			// Make grocers table visible.
			$('#grocer_results_container').show();
		}
		
		$('#loading_icon').hide();
		$('#find_grocer_form').show();
	};

	// Get all cities from database.
	jQuery.post('/ajax/get_approved_grocer_cities.php', {'language': $('#find_language').val()}, fGetApprovedGrocerCities, 'json');

	// Change handler for city drop-down control.
	$('#find_city').change(function()
	{
		if ($('#find_city').val() != '[Select City]')
		{
			// If a city was selected, get grocers for that city from database.
			jQuery.post('/ajax/get_approved_grocers_by_city.php',
			{
				'province'	: $('#find_province').val(),
				'city'		: $('#find_city').val()
			}, function(p_aGrocers)
			{
				var sGrocersHTML = '';

				// Clear grocers table
				$('#grocers').empty();

				// Repopulate grocers table
				if (p_aGrocers.length > 0)
				{
					// Updated grocers table
					for (var iGrocer = 0; iGrocer < p_aGrocers.length; iGrocer++)
					{
						sGrocersHTML +=	'<div class="grocer">';

						if (p_aGrocers[iGrocer].grocer_map != '') 
						{
							if ($('#find_language').val() == 'F')
							{
								sGrocersHTML	+= '<img class="map" src="http://maps.google.com/maps/api/staticmap?center=' + Url.encode(p_aGrocers[iGrocer].grocer_map) + '&zoom=15&size=300x200&format=gif&language=fr&maptype=roadmap&markers=' + Url.encode(p_aGrocers[iGrocer].grocer_map) + '&sensor=false" align="left" />';
							}
							else
							{
								sGrocersHTML	+= '<img class="map" src="http://maps.google.com/maps/api/staticmap?center=' + Url.encode(p_aGrocers[iGrocer].grocer_map) + '&zoom=15&size=300x200&format=gif&language=en&maptype=roadmap&markers=' + Url.encode(p_aGrocers[iGrocer].grocer_map) + '&sensor=false" align="left" />';
							}
						}

						sGrocersHTML +=	'<div class="grocer_result_address_container">'
									 +	'<h3 class="grocer_result_name">' + p_aGrocers[iGrocer].grocer_name + '</h3>'
									 +	'<p class="grocer_result_address">';

						if (p_aGrocers[iGrocer].grocer_address_1)
						{
							sGrocersHTML += p_aGrocers[iGrocer].grocer_address_1 + '<br />';
						}
						
						if (p_aGrocers[iGrocer].grocer_address_2)
						{
							sGrocersHTML += p_aGrocers[iGrocer].grocer_address_2 + '<br />';
						}
						
						if (p_aGrocers[iGrocer].grocer_city)
						{
							sGrocersHTML += p_aGrocers[iGrocer].grocer_city + ', ';
						}
						
						if (p_aGrocers[iGrocer].grocer_province)
						{
							sGrocersHTML += p_aGrocers[iGrocer].grocer_province;
						}
						
						if (p_aGrocers[iGrocer].grocer_postal_code)
						{
							sGrocersHTML += p_aGrocers[iGrocer].grocer_postal_code;
						}

						sGrocersHTML += '</p>';
						
						if (p_aGrocers[iGrocer].grocer_phone != '' || p_aGrocers[iGrocer].grocer_website != '' || p_aGrocers[iGrocer].grocer_email != '')
						{
							sGrocersHTML += '<p class="grocer_result_address">';
							
							if (p_aGrocers[iGrocer].grocer_phone != '')
							{
								sGrocersHTML +=	't: ' + p_aGrocers[iGrocer].grocer_phone + '<br />';
							}
							
							if (p_aGrocers[iGrocer].grocer_website != '')
							{
								sGrocersHTML += 'w: <a href="http://' + p_aGrocers[iGrocer].grocer_website + '" target="_blank" title="' + p_aGrocers[iGrocer].grocer_name + '">' + p_aGrocers[iGrocer].grocer_website + '</a><br />';
							}

							if (p_aGrocers[iGrocer].grocer_email != '')
							{
								if ($('#find_language').val() == 'F')
								{
									sGrocersHTML +=	'c';
								}
								else
								{
									sGrocersHTML +=	'e';
								}

								sGrocersHTML += ': <a href="mailto:' +	p_aGrocers[iGrocer].grocer_email + '">' +	p_aGrocers[iGrocer].grocer_email + '</a>';
							}
							
							sGrocersHTML += '</p>';
						}

						sGrocersHTML += '</div></div>';
						
						if (iGrocer + 1 < p_aGrocers.length)
						{
							sGrocersHTML += '<hr class="separator" />';
						} // if (iGrocer + 1 < p_aGrocers.length)
					}

					$('.print_list_link').show();
					$('.share_list_link').show();
				}
				else {
					if ($('#find_language').val() == 'F')
					{
						sGrocersHTML += '<div class="grocer"><div class="grocer_result_address_container"><p class="grocer_result_address">Aucun &eacute;picier n\'a &eacute;t&eacute; trouv&eacute; dans cette ville.</p></div></div>';
					}
					else
					{
						sGrocersHTML += '<div class="grocer"><div class="grocer_result_address_container"><p class="grocer_result_address">No grocers were found in this city.</p></div></div>';
					}

					$('.print_list_link').hide();
					$('.share_list_link').hide();
				}

				$('#grocers').html(sGrocersHTML);
			}, 'json');

			// Make grocers table visible.
			$('#grocer_results_container').show();
		}
		else
		{
			// No city was selected, hide grocers table.
			$('#grocer_results_container').hide();
		}
	});
	
	$('#find_real_food_btn').click(function()
	{
		$('#find_real_food_container').show();
		$('#add_a_location_container').hide();
	});

	$('#add_a_location_btn').click(function()
	{
		$('#find_real_food_container').hide();
		$('#add_a_location_container').show();
	});

	$('#add_grocer_submit_btn').click(function()
	{
		$('#add_market_form').submit();
	});

	// Event handler for submitting a new grocer.
	$('#add_market_form').submit(function()
	{
		// Reset feedback messages.
		$('#error_message_container').hide();
		$('#success_message_container').hide();

		$("#add_market_form input[id!=add_grocer_submit_btn]").css('background-color', '#c3b9ac');
		$('#grocer_province').css('background-color', '#c3b9ac');

		// TODO: Add client-side validation.

		// Make an AJAX call to the PHP controller.
		jQuery.post('/ajax/add_grocer.php',
		{
			'language'					: $('#language').val(),
			'grocer_name'				: $('#grocer_name').val(),
			'grocer_address_1'			: $('#grocer_address_1').val(),
			'grocer_address_2'			: $('#grocer_address_2').val(),
			'grocer_city'				: $('#grocer_city').val(),
			'grocer_province'			: $('#grocer_province').val(),
			'grocer_postal_code'		: $('#grocer_postal_code').val(),
			'grocer_phone'				: $('#grocer_phone').val(),
			'grocer_website'			: $('#grocer_website').val(),
			'grocer_email'				: $('#grocer_email').val()
		},
		function(p_aResponse)
		{
			//Check if grocer was successfully added to database.
			if (p_aResponse.success)
			{
				// Clear form.
				$("#add_market_form input[id!=add_grocer_submit_btn]").val('');
				$('#grocer_province_default').attr('selected', 'selected');

				// Display success message.
				$('#success_message_container').show();
			}
			else
			{
				$('#error_message_container').show();

				for (iError = 0; iError < p_aResponse.errors.length; iError++)
				{
					if (p_aResponse.errors[iError].field)
					{
						$('#' + p_aResponse.errors[iError].field).css('background-color', '#b06b5a');
					}
				}
			}
		}, 'json');

		return false;
	});
	
	// Event handler for print list button click
	// --------------------------------------------------------------------------------------------------------------------------------
	$('.print_list_link').click(function()
	{
		print_local_grocer_list('F', $('#find_province').val(), $('#find_city').val());
		return false;
	});
	// --------------------------------------------------------------------------------------------------------------------------------
	
	// Event handler for share list button click
	// --------------------------------------------------------------------------------------------------------------------------------
	$('.share_list_link').click(function()
	{
		if ($('#find_language').val() == 'F')
		{
			popup('https://ssl.unilever.com/162.61.226.219/entretien/wp-content/themes/eatreal_eatlocal/grocer_list_email.php?language=' + $('#find_language').val() + '&province=' + $('#find_province').val() + '&city=' + $('#find_city').val(), 'Email', '', 450, 500);
			// popup('/entretien/wp-content/themes/eatreal_eatlocal/grocer_list_email.php?language=' + $('#find_language').val() + '&province=' + $('#find_province').val() + '&city=' + $('#find_city').val(), 'Email', '', 450, 500);
		}
		else
		{
			popup('https://ssl.unilever.com/162.61.226.219/entretien/wp-content/themes/eatreal_eatlocal/grocer_list_email.php?language=' + $('#find_language').val() + '&province=' + $('#find_province').val() + '&city=' + $('#find_city').val(), 'Email', '', 450, 500);
			// popup('/entretien/wp-content/themes/eatreal_eatlocal/grocer_list_email.php?language=' + $('#find_language').val() + '&province=' + $('#find_province').val() + '&city=' + $('#find_city').val(), 'Email', '', 450, 500);
		}

		return false;
	});
	// --------------------------------------------------------------------------------------------------------------------------------
});

