jQuery(document).ready(function() {
								
	var shareFormClass = '.frmEmailArticle';
	var shareInputClass = 'input.input_txt';
	
	var parentContainerClass = '.share-email';
	var closeButtonClass = '.detailRevealCloseButton';
	var revealButtonClass = '.shareReveal_button';
	var resetButtonClass = '.share-form-reset';
	
	
	//clear input on focus
	jQuery(shareFormClass + ' ' + shareInputClass).focus(function(e) {
		
		var $currentField = jQuery(this);
		
		if( $currentField.attr('value') == $currentField.attr('rel') ) { $currentField.val(''); }
		
	});
	
	
	//if empty, reset default input value on blur
	jQuery(shareFormClass + ' ' + shareInputClass).blur(function(e) {
		
		var $currentField = jQuery(this);
		
		if( $currentField.attr('value') == '' ) { $currentField.val( $currentField.attr('rel') );	}
		if( $currentField.hasClass('validate-fill') ) { validateFill($currentField); }
		if( $currentField.hasClass('validate-email') ) { validateEmail($currentField); }
	
	});
	
	
	//reset form
	jQuery(parentContainerClass + ' ' + closeButtonClass + ', ' + parentContainerClass + ' ' + revealButtonClass + ', ' + parentContainerClass + ' ' +  resetButtonClass).click(function(e) { resetShareForm(e); });
	
	
	//ajax form submit
	jQuery(shareFormClass).submit(function(e) {
		
		//e.preventDefault();
		
		var $this = jQuery(this);
		
		var validate = simpleValidation($this);
				
		if(validate.length == 0) {
			
			var submitTo = $this.attr('action');
			var data = $this.serialize();
					
			var parent = $this.closest('.detailRevealOverlayContent');
			var formContainer = jQuery(parent[0]).find('.share-form');
			var errorContainer = jQuery(parent[0]).find('.share-error');
			var thankyouContainer = jQuery(parent[0]).find('.share-thankyou');
			
			jQuery.ajax({
				type: 'POST',
				url: submitTo,
				data: data,
				success: function(data) {
					//console.log('success :: ',data);
					jQuery(formContainer[0]).addClass('none');
					jQuery(thankyouContainer[0]).removeClass('none');
					
				},
				error: function(XMLHttpRequest, textStatus, errorThrown) {
					//console.log('error :: ',XMLHttpRequest, textStatus, errorThrown);
					jQuery(formContainer[0]).addClass('none');
					jQuery(errorContainer[0]).removeClass('none');
					
				}
			});
			
			return false;
			
		} else {
			return false;	
		}
		
	});
		
});

function simpleValidation(form) {
	
	var vErrors = [];
	
	var textInputs = jQuery(form[0]).find('input.input_txt');
	
	jQuery(textInputs).each(function(index) {
		$currentField = jQuery(this);
		if( $currentField.hasClass('validate-fill') ) {
			var vError = validateFill($currentField);
			if(vError) { vErrors.push(vError); }
		}
		if( $currentField.hasClass('validate-email') ) {
			var vError = validateEmail($currentField);
			if(vError) { vErrors.push(vError); }
		}					 
	});
		
	return vErrors;
	
}

function validateEmail(fieldToValidate) {
	
	var vError = '';
	
	var emailFilter = new RegExp('^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$');
	
	if( fieldToValidate.attr('value') == fieldToValidate.attr('rel') ) {
		fieldToValidate.addClass('error');
		vError = 'Field is required.';
	} else	if(!emailFilter.test(fieldToValidate.attr('value'))) {
		fieldToValidate.addClass('error');
		vError = 'Valid email is required.';
	} else {
		fieldToValidate.removeClass('error');
	}

	return vError;
	
}

function validateFill(fieldToValidate) {
	
	var vError = '';
	
	if( fieldToValidate.attr('value') == fieldToValidate.attr('rel') ) {
		fieldToValidate.addClass('error');
		vError = 'Field is required.';
	} else {
		fieldToValidate.removeClass('error');
	}
	
	return vError;
	
}

//reset share form
function resetShareForm(e) {
	
	e.preventDefault();
	
	var parent = jQuery(e.target).closest('.detailRevealOverlayContent');
	var form = jQuery(parent[0]).find('.frmEmailArticle');
	var textInputs = jQuery(form[0]).find('input.input_txt');
	
	var thankyouContainer = jQuery(parent[0]).find('.share-thankyou');
	var errorContainer = jQuery(parent[0]).find('.share-error');
	var formContainer = jQuery(parent[0]).find('.share-form');
	
	jQuery(thankyouContainer[0]).addClass('none');
	jQuery(errorContainer[0]).addClass('none');
	jQuery(formContainer[0]).removeClass('none');
	
	jQuery(textInputs).each(function(index) {
		jQuery(this).removeClass('error');
	});
	
	form[0].reset();
}

