<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">function calendar_event_detail(id,index,detail,table) {
	var self = this;

	if(detail == undefined)
		detail = "";

	this.id               = id;
	this.index            = index;
	this.detail           = detail;
	this.survey           = undefined;
	
	// FIXME: We need to pass this as arguments somehow
	// Define the survey id what we care about
	// Define the questions that we want to summarize here

    this.survey_id        = 17; // FIXME: Pass as argument
    this.questions        = {
                             55: {header: "Yes/No",   align: "center", total: false, show: false, filter: 186},
                             56: {header: "What",     align: "left",   total: false, show: true}
                            };
	this.show_count = true;
	this.show_total = false;

    this.more_button = new button("more","More &gt;&gt;");
    this.less_button = new button("less","&lt;&lt; Less");

    this.more_row    = document.createElement("tr");
    this.result_row  = document.createElement("tr");
    this.less_row    = document.createElement("tr");
	this.less_cell   = document.createElement("td");

	var section_event_detail = "event_detail_" + this.id;

	this.div         = document.createElement("div");
	this.div.setAttribute("id",section_event_detail);

	this.create = function() {
		if(detail != '') {
			var more_cell   = document.createElement("td");
			var more_button = this.more_button.create("calc.cal["+this.index+"].event_detail.load_detail('"+this.detail+"')");
			var less_button = this.less_button.create("calc.cal["+this.index+"].event_detail.remove_detail('"+this.detail+"')");

			this.more_button.show();
			this.less_button.hide();

			more_cell.appendChild(more_button);
			this.less_cell.appendChild(less_button);

			this.more_row.appendChild(more_cell);
			this.less_row.appendChild(this.less_cell);

			table.appendChild(this.more_row);
			table.appendChild(this.result_row);
			table.appendChild(this.less_row);
		}
	}

	this.load_detail = function(detail) {
		// FIXME: Consolidate with set_button_loading (use array of "all_buttons" to disable them all)
		this.more_button.disable();
		this.more_button.label("Loading...");

		// FIXME: Can we use survey_container here?
		this.get_results();
	}

	this.remove_detail = function(detail) {
		this.less_button.disable();
		this.less_button.hide();
		this.less_cell.setAttribute("style","padding:0px; vertical-align:bottom");

		this.more_button.label("More &gt;&gt;");
		this.more_button.show();
		this.more_button.enable();

		this.result_row.innerHTML = "";

	}

	this.get_results = function() {
		var request = new xmlhttp(this.done,this.error);
		var req     = {
						"list": "survey_question_choice_list",
						"survey_id": this.survey_id,
						"id":   0
					   };

		request.post(req);
	}

	this.done = function(json) {
		var data = {
			unique_id: 0,
			id: 0,
			type: TYPE_SURVEY_SHOW_RESULTS
		}

		self.survey = new survey(0,data);
		self.survey.create_questions(json);

		self.display_results();
	}

	this.error = function() {
	}

	this.display_results = function() {
		var result = document.createElement("td");

		this.more_button.hide();

		result.appendChild(this.survey.create_user_result(this.questions,this.show_count,this.show_total));

		this.result_row.appendChild(result);

		this.less_cell.setAttribute("style","padding:10px; vertical-align:bottom");
		this.less_button.show();
		this.less_button.enable();
	}
}
</pre></body></html>