(function($) {
	var $form = $('#school-form');
	var $cancel = $('#user-account-unenroll');
	var $save = $('#user-account-save');
	var $issues = $('#submit-status-issues');
	setupForm();

	function setupForm() {
		$cancel.click(unenrollSchool);
		$save.click(submitForm);
	}

	function unenrollSchool() {
		var data = $form.serializeObject();
		var school_id = data.school_id;
		log('unenroll school_id', school_id);
		$.getJSON($.d4s.unenroll_url)
			.success(onUnenrollSuccess)
			.error(onUnenrollError);
	}

	function onUnenrollSuccess(data) {
		log('onUnenrollSuccess', data);
	}

	function onUnenrollError(xhr, status, error) {
		log('onUnenrollError', xhr, status, error);
	}

	function submitForm() {
		log('submit form to update user schools');
		$('.error', $form).removeClass('error');
		$issues.empty();
		var data = $form.serializeObject();
		$.post($.d4s.update_url, data)
			.success(onUpdateSuccess)
			.error(onUpdateError);
	}

	function onUpdateSuccess(data) {
		log('school account updated', data);
		$issues.html('Update successful').fadeOut(1000);
	}

	function onUpdateError(xhr, status, error) {
		var data, message;
		log('update failed', status, error, xhr.status, xhr);
		data = JSON.parse(xhr.responseText);
		message = data.message;
		switch (xhr.status) {
			case 500:
				break;
			case 400:
				// errors in the submission. highlight the errored fields
				var errors = data.errors;
				var errorTexts = _.values(errors);
				log(errorTexts);
				$.d4s.highlightFormErrors(errors);
				$issues.html(errorTexts.join());
				break;
		}
		log(message);
	}

})(jQuery);

