/**
 * WhatInTheWorld
 * @class
 * @author grotter
 * @version 1.0
 */
WhatInTheWorld = function (context) {	
	var $ = jQuery;
	
	/**
	 * Collect post data for AJAX call
	 * @public
	 * @param {Array} checked_radios Array of checked jQuery radio elements
	 */
	this.getPostData = function (checked_radios) {
		var post_data = {
			uid_choice: checked_radios.val(),
			uid_question: checked_radios.attr("name").replace("question_", ""),
			last_question_id: $(".last_question_id", context).text(),
			uid_quiz: $(".uid_quiz", context).text(),
			session_id: $(".session_id", context).text(),
			nav: "multiple_choice_witw",
			action: "record_response"
		};
		
		return post_data;
	}
	
	/**
	 * Okay to progress
	 * @public
	 * @param {Object} myItem jQuery object of item container
	 * @returns {Boolean} Returns true if valid, false if not
	 */
	this.isValid = function (myItem) {
		return ($("input:checked", myItem).length > 0);
	}
	
	/**
	 * AJAX success callback, applied via Quiz.recordResponse method
	 * @public
	 * @param {String} data Server response string
	 * @param {String} textStatus Status code
	 */
	this.onSubmitSuccess = function (data, textStatus) {
		$(".results", context).empty();
		$(".results", context).append(data);
		if ($(".results .stats", context).length == 0) return;
		
		//Last question, populate the stats
		$(".quiz-stats .num_correct", context).html($(".results .stats .num_correct", context).text());
		$(".quiz-stats .total_participants", context).html($(".results .stats .total_participants", context).text());
		$(".quiz-stats .avg_num_correct", context).html($(".results .stats .avg_num_correct", context).text());
		
		if ($.browser.msie) {
			$(".quiz-stats .num_correct, .quiz-stats .total_participants, .quiz-stats .avg_num_correct", context).css("padding-right", "5px");
		}
	}
	
	/**
	 * Constructs the instance
	 * @constructs
	 */
	this.initialize = function () {
		var foo = new Quiz(this, "php/", context);
		foo.setSize();
		foo.positionButtons();
		
		var scrollabe_api = $(".scrollable", context).scrollable({
			api: true,
			size: 1,
			clickable: false,
			keyboard: false,
			speed: 300
		});

		foo.setScrollableApi(scrollabe_api);
		foo.initNavigation();
	}
};

