o: ActiveSupport::Cache::Entry	:@compressedF:@expires_in0:@created_atf1351551722.89646:@value"�{I"
class:EFI"ProcessedAsset;�FI"logical_path;�FI"api_taster/app.js;�FI"
pathname;�FI"T/Users/fredwu/Projects/ruby/api_taster/app/assets/javascripts/api_taster/app.js;�FI"content_type;�FI"application/javascript;�FI"
mtime;�FI"2012-09-06T11:07:32+10:00;�FI"length;�Fi�
I"digest;�F"%fd8bc708bf57fae1c7d09a8fcdf276fdI"source;�FI"�
var ApiTaster = {

	formAction: '',

	disableSubmitButton: function() {
		$("#submit-api").attr("disabled", true);
	},

	enableSubmitButton: function() {
		$("#submit-api").attr("disabled", false);
	},

	disableUrlParams: function() {
		$("fieldset[ref=url-params] input").prop("disabled", true);
	},

	enableUrlParams: function() {
		$("fieldset[ref=url-params] input").prop("disabled", false);
	},

	storeFormActionFor: function(form) {
		ApiTaster.formAction = form.attr("action")
	},

	restoreFormActionFor: function(form) {
		$(form).attr("action", ApiTaster.formAction);
	},

	detectContentType: function(response) {
		var contentType = response.getResponseHeader("Content-Type");
		var detectedContentType = null

		if (contentType.match(/application\/json/)) {
			 detectedContentType = 'json';
		}

		return detectedContentType;
	}

};

$.fn.extend({

	replaceUrlParams: function(params) {
		var form = this;

		ApiTaster.storeFormActionFor(form);

		var formAction = form.attr("action");

		$.each(params, function(i, param) {
			var matches = param["name"].match(/\[api_taster_url_params\](.*)/)
			if (matches) {
				var paramKey   = matches[1];
				var paramValue = param["value"];
				var regex      = new RegExp(":" + paramKey);

				formAction = formAction.replace(regex, paramValue);
			}
		});

		form.attr("action", formAction);
	},

	enableNavTabsFor: function(contentElement) {
		var container = this;

		$("ul.nav-tabs a", container).click(function(e) {
			e.preventDefault();

			$(this).parent().siblings().removeClass("active");
			$(this).parent().addClass("active");

			$(contentElement, container).hide();
			$(contentElement + "[ref=" + $(this).attr("id") + "]", container).show();
		});
	},

	showNavTab: function(name) {
		$("ul.nav-tabs li", this).removeClass("active");
		$("ul.nav-tabs li a#response-" + name, this).parent().show().addClass("active");

		$("pre", this).hide();

		return $("pre[ref=response-" + name + "]", this).show();
	},

	displayOnlySelectedParamsFieldset: function() {
		$("fieldset", this).hide();
		$("fieldset[ref=" + $("ul.nav-tabs li.active a").attr("id") + "]", this).show();
	}

});

jQuery(function($) {
	$("#list-api-div a").click(function(e) {
		e.preventDefault();

		$(this).parent().siblings().removeClass("active");
		$(this).parent().addClass("active");

		$("#show-api-div .div-container").load(this.href, function() {
			prettyPrint();

			$("#show-api-div form").enableNavTabsFor("fieldset");
			$("#show-api-div form").displayOnlySelectedParamsFieldset();
		});
	});

	$("#show-api-div").on("click", "#submit-api", function() {
		$(this).parents("form").submit(function() {
			ApiTaster.disableSubmitButton();

			$(this).unbind("submit").ajaxSubmit({
				beforeSubmit: function(arr, $form, options) {
					$form.replaceUrlParams(arr);
					ApiTaster.disableUrlParams();
					return false;
				}
			});
		});

		$("form").bind("ajax:complete", function(e, xhr, status) {
			ApiTaster.enableSubmitButton();
			ApiTaster.enableUrlParams();
			ApiTaster.restoreFormActionFor(this);

			if ($("#show-api-response-div:visible").length == 0) {
				$("#show-api-response-div").slideDown(100);
			}

			switch (ApiTaster.detectContentType(xhr)) {
				case "json":
					$("#show-api-response-div").showNavTab("json").text(
						JSON.stringify(JSON.parse(xhr.responseText), null, 2)
					);
					break;
			}

			$("#show-api-response-div pre[ref=response-raw]").text(xhr.responseText);

			prettyPrint();
		});

		$("#show-api-response-div").enableNavTabsFor("pre");
	});
});

;�FI"dependency_digest;�F"%528c82bf3698f805c533f41bf98ca251I"required_paths;�F[I"T/Users/fredwu/Projects/ruby/api_taster/app/assets/javascripts/api_taster/app.js;�FI"dependency_paths;�F[{I"	path;�FI"T/Users/fredwu/Projects/ruby/api_taster/app/assets/javascripts/api_taster/app.js;�FI"
mtime;�FI"2012-09-06T11:07:32+10:00;�FI"digest;�F"%fd8bc708bf57fae1c7d09a8fcdf276fdI"
_version;�F"%9f3b95dd7ea3030dc35985c0a8020862