AttIQ.Feedback = {
	$feedbackForm: null,
	submitUrl: Config.servicesUrl + '/v1_1/DataService.ashx?SubmitFeedback&jsonp=?',
	usernameQueryField: 'z',
	
	init: function(successFn) {
		this.$feedbackForm = $('.feedback form');
		var username = $.query.get(this.usernameQueryField) || $.cookie('username') || null;
		if (username) this.$feedbackForm.find('[name="username"]').val(username);
		
		this.bindControls();
		if (successFn) successFn();
	},
	
	bindControls: function() {
		var root = this,
				$form = root.$feedbackForm;
		$form.submit(function() {
			var $this = $(this),
					validates = true;
			
			$this.find('.required').each(function() {
				var $this = $(this);
				if (!$this.val()) {
					alert("Please enter your " + $this.attr('name') + '.');
					validates = false;
					return false;
				}
			});
			if (!validates) return false;
			
			var $email = $this.find('[name="email"]');
			if ($email.length && !Utility.validEmail($email.val())) {
				alert("Please input a valid email address.");
				return false;
			}
			
			var data = {};
			$this.find('input, select, textarea').each(function() {
				var $this = $(this);
				data[$this.attr('name')] = $this.val();
			});
			
			$.ajax({
				type: "GET",
				url: root.submitUrl,
				data: data,
				dataType: 'jsonp',
				cache: false,
				success: function(response) {
					if (response.success == "true") $form[0].reset();
					alert(response.message);
				}
			});
			return false;
		});
	}	
}