
                <div class='gf_browser_unknown gform_wrapper' id='gform_wrapper_5' ><a id='gf_5' class='gform_anchor' ></a><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_5' id='gform_5'  action='/career-opportunity/#gf_5'>
                        <div class='gform_body'><ul id='gform_fields_5' class='gform_fields top_label form_sublabel_below description_below'><li id='field_5_1' class='gfield gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below field_description_below gfield_visibility_visible' ><h3>Free Consultation</h3></li><li id='field_5_2' class='gfield left_field gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_5_2' >Name<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_2' id='input_5_2' type='text' value='' class='large'  tabindex='1'   aria-required="true" aria-invalid="false" /></div></li><li id='field_5_3' class='gfield right_field gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_5_3' >Email<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_email'>
                            <input name='input_3' id='input_5_3' type='text' value='' class='large' tabindex='2'   />
                        </div></li><li id='field_5_4' class='gfield left_field field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_5_4' >Phone</label><div class='ginput_container ginput_container_phone'><input name='input_4' id='input_5_4' type='text' value='' class='large' tabindex='3'    aria-invalid="false" /></div></li><li id='field_5_5' class='gfield right_field field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_5_5' >Country</label><div class='ginput_container ginput_container_select'><select name='input_5' id='input_5_5'  class='large gfield_select' tabindex='4'   aria-invalid="false"><option value='' selected='selected' class='gf_placeholder'>Select Country</option><option value='Canada' >Canada</option><option value='New Zealand' >New Zealand</option><option value='Australia' >Australia</option></select></div></li><li id='field_5_6' class='gfield full_field field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_5_6' >College</label><div class='ginput_container ginput_container_select'><select name='input_6' id='input_5_6'  class='large gfield_select' tabindex='5'   aria-invalid="false"><option value='' selected='selected' class='gf_placeholder'>Select College</option><option value='Bow Valley College' >Bow Valley College</option><option value='Lakeland College' >Lakeland College</option><option value='Medicine Hat College' >Medicine Hat College</option><option value='Sait college' >Sait college</option><option value='Lethbridge college' >Lethbridge college</option><option value='Calgary Board of Education' >Calgary Board of Education</option><option value='Camosun College' >Camosun College</option><option value='College of New Caledonia' >College of New Caledonia</option><option value='College of the Rockies' >College of the Rockies</option><option value='Columbia College' >Columbia College</option><option value='Kwantlen Polytechnic University' >Kwantlen Polytechnic University</option><option value='LaSalle College' >LaSalle College</option><option value='North Island College' >North Island College</option><option value='Northern Lights' >Northern Lights</option><option value='Okanagan College' >Okanagan College</option><option value='Selkirk College' >Selkirk College</option><option value='University of The Fraser Valley' >University of The Fraser Valley</option><option value='University of Canada West' >University of Canada West</option><option value='Sprottshaw College, Vancouver' >Sprottshaw College, Vancouver</option><option value='Surrey School Board' >Surrey School Board</option><option value='Assiniboine Community College' >Assiniboine Community College</option><option value='Manitoba Institute of Trades and Technology  (formerly WTC)' >Manitoba Institute of Trades and Technology  (formerly WTC)</option><option value='Lester B. Pearson School Board' >Lester B. Pearson School Board</option><option value='*' >Trios college of Business, Technology and Healthcare</option><option value='NBCC International' >NBCC International</option><option value='Trios college of Business, Technology and Healthcare*' >Trios college of Business, Technology and Healthcare*</option><option value='Cambrian College of Applied Arts &amp; Technology' >Cambrian College of Applied Arts &amp; Technology</option><option value='Humber College Institute of Technology &amp; Advanced Learning' >Humber College Institute of Technology &amp; Advanced Learning</option><option value='Mohawk College of Applied Arts &amp; Technology' >Mohawk College of Applied Arts &amp; Technology</option><option value='Niagara College' >Niagara College</option><option value='Sault College' >Sault College</option><option value='St Clair College of Applied Arts &amp; Technology' >St Clair College of Applied Arts &amp; Technology</option><option value='St Lawrence College' >St Lawrence College</option><option value='Brock University' >Brock University</option><option value='Centre of Education Training ( DLI number)' >Centre of Education Training ( DLI number)</option><option value='Peel District School board (Brampton, Missisauga )' >Peel District School board (Brampton, Missisauga )</option><option value='Pures College' >Pures College</option><option value='York Region District School Board ( North York )' >York Region District School Board ( North York )</option><option value='Lasalle College' >Lasalle College</option><option value='Parkland College' >Parkland College</option><option value='Saskatchewan Polytechnic (formerly SIAST)' >Saskatchewan Polytechnic (formerly SIAST)</option><option value='University of Regina' >University of Regina</option><option value='University of Saskatchewan' >University of Saskatchewan</option><option value='' ></option></select></div></li>
                            </ul></div>
        <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_5' class='gform_button button' value='Submit' tabindex='6' onclick='if(window["gf_submitting_5"]){return false;}  window["gf_submitting_5"]=true;  ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_5"]){return false;} window["gf_submitting_5"]=true;  jQuery("#gform_5").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=5&amp;title=&amp;description=&amp;tabindex=1' />
            <input type='hidden' class='gform_hidden' name='is_submit_5' value='1' />
            <input type='hidden' class='gform_hidden' name='gform_submit' value='5' />
            
            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' />
            <input type='hidden' class='gform_hidden' name='state_5' value='WyJbXSIsIjc4MGQ5MGIxMTVlZDExZDY5Yzg0NzM5ZmYxMGE5ZWM5Il0=' />
            <input type='hidden' class='gform_hidden' name='gform_target_page_number_5' id='gform_target_page_number_5' value='0' />
            <input type='hidden' class='gform_hidden' name='gform_source_page_number_5' id='gform_source_page_number_5' 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_5' id='gform_ajax_frame_5'>This iframe contains the logic required to handle AJAX powered Gravity Forms.</iframe>
                <script type='text/javascript'>jQuery(document).ready(function($){gformInitSpinner( 5, 'https://www.ciil.co.in/wp-content/plugins/gravityforms/images/spinner.gif' );jQuery('#gform_ajax_frame_5').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_5');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_5').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_5').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_5').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_5').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_5').offset().top); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_5').val();gformInitSpinner( 5, 'https://www.ciil.co.in/wp-content/plugins/gravityforms/images/spinner.gif' );jQuery(document).trigger('gform_page_loaded', [5, current_page]);window['gf_submitting_5'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('#gforms_confirmation_message_5').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_5').replaceWith('<' + 'div id=\'gforms_confirmation_message_5\' class=\'gform_confirmation_message_5 gforms_confirmation_message\'' + '>' + confirmation_content + '<' + '/div' + '>');jQuery(document).scrollTop(jQuery('#gforms_confirmation_message_5').offset().top);jQuery(document).trigger('gform_confirmation_loaded', [5]);window['gf_submitting_5'] = false;}, 50);}else{jQuery('#gform_5').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [5, 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:\/\/www.ciil.co.in\/wp-content\/plugins\/gravityforms","number_formats":[],"spinnerUrl":"https:\/\/www.ciil.co.in\/wp-content\/plugins\/gravityforms\/images\/spinner.gif"};jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 5) {if(typeof Placeholders != 'undefined'){
                        Placeholders.enable();
                    }} } );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', [5, 1]) } ); </script>