
                <div class='gf_browser_unknown gform_wrapper' id='gform_wrapper_1' style='display:none'><a id='gf_1' class='gform_anchor' ></a><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_1' id='gform_1'  action='/practice-areas/trucking-accidents/#gf_1'>
                        <div class='gform_body'><ul id='gform_fields_1' class='gform_fields top_label form_sublabel_below description_below'><li id='field_1_1'  class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_1_1' >Your Name<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_1' id='input_1_1' type='text' value='' class='medium'    aria-required="true" aria-invalid="false" /></div></li><li id='field_1_2'  class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_1_2' >Email<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_email'>
                            <input name='input_2' id='input_1_2' type='text' value='' class='medium'    aria-required="true" aria-invalid="false"/>
                        </div></li><li id='field_1_3'  class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_1_3' >Phone</label><div class='ginput_container ginput_container_text'><input name='input_3' id='input_1_3' type='text' value='' class='medium'     aria-invalid="false" /></div></li><li id='field_1_4'  class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label'  >What is the nature of your case?</label><div class='ginput_container ginput_container_checkbox'><ul class='gfield_checkbox' id='input_1_4'><li class='gchoice_1_4_1'>
								<input name='input_4.1' type='checkbox'  value='Personal Injury'  id='choice_1_4_1'   />
								<label for='choice_1_4_1' id='label_1_4_1'>Personal Injury</label>
							</li><li class='gchoice_1_4_2'>
								<input name='input_4.2' type='checkbox'  value='Serious Injury or Death'  id='choice_1_4_2'   />
								<label for='choice_1_4_2' id='label_1_4_2'>Serious Injury or Death</label>
							</li><li class='gchoice_1_4_3'>
								<input name='input_4.3' type='checkbox'  value='Does this legal issue require immediate attention?'  id='choice_1_4_3'   />
								<label for='choice_1_4_3' id='label_1_4_3'>Does this legal issue require immediate attention?</label>
							</li><li class='gchoice_1_4_4'>
								<input name='input_4.4' type='checkbox'  value='Business'  id='choice_1_4_4'   />
								<label for='choice_1_4_4' id='label_1_4_4'>Business</label>
							</li><li class='gchoice_1_4_5'>
								<input name='input_4.5' type='checkbox'  value='Mediation'  id='choice_1_4_5'   />
								<label for='choice_1_4_5' id='label_1_4_5'>Mediation</label>
							</li><li class='gchoice_1_4_6'>
								<input name='input_4.6' type='checkbox'  value='Will, Trust or Probate'  id='choice_1_4_6'   />
								<label for='choice_1_4_6' id='label_1_4_6'>Will, Trust or Probate</label>
							</li><li class='gchoice_1_4_7'>
								<input name='input_4.7' type='checkbox'  value='Family Law'  id='choice_1_4_7'   />
								<label for='choice_1_4_7' id='label_1_4_7'>Family Law</label>
							</li><li class='gchoice_1_4_8'>
								<input name='input_4.8' type='checkbox'  value='Real Estate Law'  id='choice_1_4_8'   />
								<label for='choice_1_4_8' id='label_1_4_8'>Real Estate Law</label>
							</li></ul></div></li><li id='field_1_6'  class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_1_6' >Please explain the urgency of your issue</label><div class='ginput_container ginput_container_textarea'><textarea name='input_6' id='input_1_6' class='textarea small'    aria-invalid="false"   rows='10' cols='50'></textarea></div></li><li id='field_1_5'  class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_1_5' >Can you give a brief description of your legal issues?</label><div class='ginput_container ginput_container_textarea'><textarea name='input_5' id='input_1_5' class='textarea medium'    aria-invalid="false"   rows='10' cols='50'></textarea></div></li><li id='field_1_7'  class='gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_1_7' >Phone</label><div class='ginput_container'><input name='input_7' id='input_1_7' type='text' value='' /></div><div class='gfield_description'>This field is for validation purposes and should be left unchanged.</div></li>
                            </ul></div>
        <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_1' class='gform_button button' value='Submit'  onclick='if(window["gf_submitting_1"]){return false;}  window["gf_submitting_1"]=true;  ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_1"]){return false;} window["gf_submitting_1"]=true;  jQuery("#gform_1").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=1&amp;title=&amp;description=&amp;tabindex=0' />
            <input type='hidden' class='gform_hidden' name='is_submit_1' value='1' />
            <input type='hidden' class='gform_hidden' name='gform_submit' value='1' />
            
            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' />
            <input type='hidden' class='gform_hidden' name='state_1' value='WyJbXSIsIjRhNjg2ODJjNjExZDdhNDFkMTZlMjMyNDQ1ZGEzMzk2Il0=' />
            <input type='hidden' class='gform_hidden' name='gform_target_page_number_1' id='gform_target_page_number_1' value='0' />
            <input type='hidden' class='gform_hidden' name='gform_source_page_number_1' id='gform_source_page_number_1' value='1' />
            <input type='hidden' name='gform_field_values' value='' />
            
        </div>
                        </form>
                        </div>
                <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_1' id='gform_ajax_frame_1'>This iframe contains the logic required to handle Ajax powered Gravity Forms.</iframe>
                <script type='text/javascript'>jQuery(document).ready(function($){gformInitSpinner( 1, 'https://springer-lyle.com/wp-content/plugins/gravityforms/images/spinner.gif' );jQuery('#gform_ajax_frame_1').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_1');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_1').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;if(is_form){jQuery('#gform_wrapper_1').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_1').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_1').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_1').offset().top); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_1').val();gformInitSpinner( 1, 'https://springer-lyle.com/wp-content/plugins/gravityforms/images/spinner.gif' );jQuery(document).trigger('gform_page_loaded', [1, current_page]);window['gf_submitting_1'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_1').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_1').offset().top);jQuery(document).trigger('gform_confirmation_loaded', [1]);window['gf_submitting_1'] = false;}, 50);}else{jQuery('#gform_1').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [1, current_page]);} );} );</script><script type='text/javascript'> if(typeof gf_global == 'undefined') var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2},"base_url":"https:\/\/springer-lyle.com\/wp-content\/plugins\/gravityforms","number_formats":[],"spinnerUrl":"https:\/\/springer-lyle.com\/wp-content\/plugins\/gravityforms\/images\/spinner.gif"};jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 1) {gf_global["number_formats"][1] = {"1":{"price":false,"value":false},"2":{"price":false,"value":false},"3":{"price":false,"value":false},"4":{"price":false,"value":false},"6":{"price":false,"value":false},"5":{"price":false,"value":false},"7":{"price":false,"value":false}};if(window['jQuery']){if(!window['gf_form_conditional_logic'])window['gf_form_conditional_logic'] = new Array();window['gf_form_conditional_logic'][1] = { logic: { 6: {"field":{"actionType":"show","logicType":"any","rules":[{"fieldId":"4","operator":"is","value":"Serious Injury or Death"},{"fieldId":"4","operator":"is","value":"Does this legal issue require immediate attention?"}]},"nextButton":null,"section":null} }, dependents: { 6: ["6"] }, animation: 0, defaults: [], fields: {"1":[],"2":[],"3":[],"4":[6],"6":[],"5":[],"7":[]} }; if(!window['gf_number_format'])window['gf_number_format'] = 'decimal_dot';jQuery(document).ready(function(){gf_apply_rules(1, ["6"], true);jQuery('#gform_wrapper_1').show();jQuery(document).trigger('gform_post_conditional_logic', [1, null, true]);} );} } } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [1, 1]) } ); </script>