
                <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='/5-big-reasons-study-canada/#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>