function init(){
	// Setup all element functions on the form
	$('#id_start_date').addClass('vDateField');
	
	$('#id_company_description').parent().after('<li><label>&nbsp;</label><strong><span id="id_text_counter1" style="font-weight:bold">400</span> / 400</strong> characters remaining</li>')
	$('#id_company_description').keypress(function(){
		limit_text('#id_text_counter1', '#id_company_description', 400);
	});
	$('#id_company_description').blur(function(){
		limit_text('#id_text_counter1', '#id_company_description', 400);
	});

    jQuery.extend(
        jQuery.expr[ ":" ], 
        { reallyvisible : function (a) { return !(jQuery(a).is(':hidden') || jQuery(a).parents(':hidden').length); }}
    );
		
	// Form validation
	$("#id_propster_form").validate({
		rules: {
			status:"required",
			service_category:"required",
			listing_option:"required",
			advertising_option:{
				required:function(element){
					return $("#id_listing_option").val() != "Free"
				}
			},
			province:"required",
			region:"required",
			destination_url:"required",
			company_name:"required",
			company_logo:{
				required:function(element){
					return $('#id_company_logo').is(':reallyvisible');
				}
			},
			company_email:"required",
			company_number:"required",
			company_description:"required",
			start_date:"required"
		}
    });
	
	// Initialize required functions
	$('#id_listing_option').change(function(){
		s_h_ad_option()
	})
	$('#id_province').change(function(){
		ajax_regions($(this).val(), '', 'services')
	})
	$('#id_region').change(function(){
		ajax_suburbs($('#id_province').val(), $(this).val(), '')
	})
	
	alternateRows()
	set_required_fields(new Array('id_status', 'id_service_category', 'id_listing_option', 'id_advertising_option', 'id_destination_url', 'id_province', 'id_region', 'id_company_name', 'id_company_email', 'id_company_number', 'id_company_description', 'id_start_date'))
	$('#id_company_logo').parent().parent().children('label').addClass('required')
	s_h_ad_option()
}
