File "frontend.js"

Full Path: /www/wwwroot/shphe-en.com/wp-content/plugins/bb-plugin/modules/contact-form/js/frontend.js
File size: 4 KB
MIME-type: --
Charset: utf-8

(function($) {

	FLBuilderContactForm = function( settings )
	{
		this.settings	= settings;
		this.nodeClass	= '.fl-node-' + settings.id;
		this._init();
	};

	FLBuilderContactForm.prototype = {
	
		settings	: {},
		nodeClass	: '',
		
		_init: function()
		{
			$( this.nodeClass + ' .fl-button' ).click( $.proxy( this._submit, this ) );
		},
		
		_submit: function( e )
		{
			var theForm	  		= $(this.nodeClass + ' .fl-contact-form'),
				submit	  		= $(this.nodeClass + ' .fl-button'),
				name	  		= $(this.nodeClass + ' .fl-name input'),
				email			= $(this.nodeClass + ' .fl-email input'),
				phone			= $(this.nodeClass + ' .fl-phone input'),
				subject	  		= $(this.nodeClass + ' .fl-subject input'),
				message	  		= $(this.nodeClass + ' .fl-message textarea'),
				ajaxurl	  		= FLBuilderLayoutConfig.paths.wpAjaxUrl,
				email_regex 	= /\S+@\S+\.\S+/,
				isValid	  		= true,
				postId      	= theForm.closest( '.fl-builder-content' ).data( 'post-id' ),
				templateId		= theForm.data( 'template-id' ),
				templateNodeId	= theForm.data( 'template-node-id' ),
				nodeId      	= theForm.closest( '.fl-module' ).data( 'node' );
		  
			e.preventDefault();
			
			// End if button is disabled (sent already)
			if (submit.hasClass('fl-disabled')) {
				return;
			}
			
			// validate the name
			if(name.length) {
				if (name.val() === '') {
					isValid = false;
					name.parent().addClass('fl-error');
				} 
				else if (name.parent().hasClass('fl-error')) {
					name.parent().removeClass('fl-error');
				}
			}
			
			// validate the email
			if(email.length) {
				if (email.val() === '' || !email_regex.test(email.val())) {
					isValid = false;
					email.parent().addClass('fl-error');
				} 
				else if (email.parent().hasClass('fl-error')) {
					email.parent().removeClass('fl-error');
				}
			}
			
			// validate the subject..just make sure it's there
			if(subject.length) {
				if (subject.val() === '') {
					isValid = false;
					subject.parent().addClass('fl-error');
				} 
				else if (subject.parent().hasClass('fl-error')) {
					subject.parent().removeClass('fl-error');
				}
			}
			
			// validate the phone..just make sure it's there
			if(phone.length) {
				if (phone.val() === '') {
					isValid = false;
					phone.parent().addClass('fl-error');
				} 
				else if (phone.parent().hasClass('fl-error')) {
					phone.parent().removeClass('fl-error');
				}
			}
			
			// validate the message..just make sure it's there
			if (message.val() === '') {
				isValid = false;
				message.parent().addClass('fl-error');
			} 
			else if (message.parent().hasClass('fl-error')) {
				message.parent().removeClass('fl-error');
			}
			
			// end if we're invalid, otherwise go on..
			if (!isValid) {
				return false;
			} 
			else {
			
				// disable send button
				submit.addClass('fl-disabled');
				
				// post the form data
				$.post(ajaxurl, {
					action				: 'fl_builder_email',
					name				: name.val(),
					subject				: subject.val(),
					email				: email.val(),
					phone				: phone.val(),
					message				: message.val(),
					post_id 			: postId,
					template_id 		: templateId,
					template_node_id 	: templateNodeId,
					node_id 			: nodeId
				}, $.proxy( this._submitComplete, this ) );
			}
		},
		
		_submitComplete: function( response )
		{
			var urlField 	= $( this.nodeClass + ' .fl-success-url' ),
				noMessage 	= $( this.nodeClass + ' .fl-success-none' );
			
			// On success show the success message
			if (response === '1') {
				
				$( this.nodeClass + ' .fl-send-error' ).fadeOut();
				
				if ( urlField.length > 0 ) {
					window.location.href = urlField.val();
				} 
				else if ( noMessage.length > 0 ) {
					noMessage.fadeIn();
				}
				else {
					$( this.nodeClass + ' .fl-contact-form' ).hide();
					$( this.nodeClass + ' .fl-success-msg' ).fadeIn();
				}
			} 
			// On failure show fail message and re-enable the send button
			else {
				$(this.nodeClass + ' .fl-button').removeClass('fl-disabled');
				$(this.nodeClass + ' .fl-send-error').fadeIn();
				return false;
			}
		}
	};
	
})(jQuery);