jQuery.fn.extend({ request_form:function(){ var selector = this; if(!selector[0]) return; jQuery(this).find('input[type="text"], textarea, select') .addClass('ui-state-default') .focus(function(){jQuery(this).addClass('ui-state-highlight').removeClass('ui-state-error');jQuery('.request-form > .success-message').remove();}) .blur(function(){jQuery(this).removeClass('ui-state-highlight')}); jQuery(this).find('.request-form-submit').click(function(){ var any_error = false; jQuery(selector).find('input, textarea').each(function(){ if(jQuery(this).attr('required')){ var reqTypes = jQuery(this).attr('required').toString().split(","); if(jQuery(this).is('textarea,input[type="text"]')){ if(jQuery.trim(jQuery(this).val())==''){ jQuery(this).addClass('ui-state-error'); any_error = true; } } else if(jQuery(this).is('input[type="checkbox"]')){ if(!this.checked){ jQuery(this).parent().addClass('ui-state-error'); any_error = true; } } if(jQuery.inArray('email',reqTypes)!=-1){ if(!/^[a-z0-9._+-]+@[a-z0-9._+-]{3,}\.[a-z.]{2,6}$/.test(jQuery(this).val())){ jQuery(this).addClass('ui-state-error'); any_error = true; } if(jQuery(this).attr('rel') && jQuery(this).val()!= jQuery('*[name="'+jQuery(this).attr('rel')+'"]').val()){ jQuery(this).addClass('ui-state-error'); jQuery('*[name="'+jQuery(this).attr('rel')+'"]').addClass('ui-state-error'); any_error = true; } } } }); if(any_error){ jQuery('.request-form').find('div.error').fadeIn().find('p').addClass('ui-state-error'); selector.find('input[name="request-form-check-success"]').remove(); } else { selector.append(''); selector.submit(); } }); return selector; } });