$(document).ready(function () {

	/*toggle share info*/
	var open = false;
	$('#share').click(function(ev) {
		ev.preventDefault();
		$('#share').addClass('bgWhite');
		$('#share a').html('close');
		$('#share-box').slideToggle('fast', function(){

			if(!open){
				open = true;
								
			}else if(open){
				open=false;
				$('#share').removeClass('bgWhite');
				$('#share a').html('share');				
				$('#successMsg').hide();
				$('#sending').html('');
				$('#share_form').show();	
				$('#errorMsg').html('');	
				$('*').removeClass('redBorder');
				errors = false;
			}
		});

	});
	
	/* allow return to submit data*/	
	$(document).keypress(function(ev) {
		if(ev.which == 13)
			if(open){
			$('#share-email-container a').trigger('click');
			}
	});		
	


	// set focus for first name
	//$('#fmName').focus();
    
	// upon clicking submit button
	$('#share-email-container a').click(function () {
	
		// set errors to false
		var errors = false;
		$('#fmName').removeClass('redBorder');
		$('#fmEmail').removeClass('redBorder');
		
		// gather form values
		pName = jQuery.trim($('#fmName').val());
		pEmail = jQuery.trim($('#fmEmail').val());
		pRef = jQuery.trim($('#shareRef').val());
		
		// check for name
		if(pName.length  == '' || pName == 'Your Name') {
			errors = true;
			$('#fmName').addClass('redBorder');
		}
		// check for email
		if(pEmail.length  == '' || pEmail == "Friend's Email") {
			errors = true;
			$('#fmEmail').addClass('redBorder');
		}
		
		if (!errors)
		{
			$('#errorMsg').html('');
		}
		else
		{
			$('#errorMsg').html('Please ensure you have filled out all fields');
		}
	
		// form submit
			var emailFilter=/^.+@.+\..{2,6}$/;
			if (!(emailFilter.test($('#fmEmail').attr('value')))) 
			{ 
				$('#errorMsg').html('Please enter a valid email address.');
					errors = true;
			}
			
			var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/;
			if ($('#fmEmail').attr('value').match(illegalChars)) 
			{
				$('#errorMsg').html('The email address contains illegal characters.');
					errors = true;
			}
	
	      		
		if(!errors) {
	      			
			// disable form, hide errors & show loading icon
			
			$(this).addClass("hide");
			$('#share-button').addClass("sent");
			$('#errorMsg').html('');
			$('#sending').append('<span class="processing">Sending data</span><br>');
	      		
			dataString = 'from='+pName;
			dataString += '&email='+pEmail;
			dataString += '&ref='+pRef;
		      		
		      		
	  		// attempt to process form data			
			$.ajax({
				type: 'POST', 
				url: '/share', 
				data: dataString, 
				success: function(msg) {
					
					if(msg == 'success') {
						$('#successMsg').show();
						$('#sending').html('');
						$('#share_form').hide();
											
					} else {
						$('#errorMsg').html('Sorry, could not send your email.');
	      				$('#errorMsg').show();

					}
				}
			});
				
	      		
		} else {
			$('#errorMsg').show();
			$('#sending').html('');
			$(this).removeClass("hide");
			$('#share-button').removeClass("sent");
		}
	      		      		
		return false;
	
	});
				
});
