function Quiz(num_questions, num_ratings, ratings)
{
	this.num_questions = num_questions;
	this.question_index = 0;
	this.questions = new Array(num_questions);

	this.num_ratings = num_ratings;
	this.ratings = ratings;
	this.ratings_scores = new Array(this.num_ratings);

	this.answered_questions = new Array(num_questions);

	var ctr;
	for (ctr = 0; ctr < this.num_questions; ctr++)
	{
		this.answered_questions[ctr] = 0;
	}

	this.get_rating_name = function get_rating_name(index)
	{
		return this.ratings[index];
	};

	this.get_rating_score = function get_rating_score(index)
	{
		return this.ratings_scores[index];
	};

	this.add_question = function add_question(question)
	{
		if (this.question_index < this.num_questions)
		{
			this.questions[this.question_index] = question;
			this.question_index++;
		}
	};

	this.get_num_questions = function get_num_questions()
	{
		return this.num_questions;
	};

	this.get_question = function get_question(index)
	{
		return this.questions[index];
	};

	this.set_user_answer = function set_user_answer(question_idx, answer_idx)
	{
		this.questions[question_idx].set_user_answer(answer_idx);
		this.answered_questions[question_idx] = 1;
	};

	this.get_user_answer = function get_user_answer(question_idx)
	{
		return this.questions[question_idx].get_user_answer();
	};

	this.mark = function mark()
	{
		var ctr;

		for (ctr = 0; ctr < this.num_ratings; ctr++)
		{
			this.ratings_scores[ctr] = 0;
		}

		for (ctr = 0; ctr < this.get_num_questions(); ctr++)
		{
			var question = this.get_question(ctr);
			var answer = question.get_answer(question.get_user_answer());

			this.ratings_scores[answer.get_rating_application()] += answer.get_rating_quantity()
		}
	};

	this.get_highest_rating_index = function get_highest_rating_index()
	{
		var ctr;
		var highest_score = 0;
		var highest_index = 0;

		for (ctr = 0; ctr < this.num_ratings; ctr++)
		{
			if (this.ratings_scores[ctr] > highest_score)
			{
				highest_score = this.ratings_scores[ctr];
				highest_index = ctr;
			}
		}

		return highest_index;
	};

	this.print_scores = function print_scores()
	{
		var ctr;
		var new_window = document.open();

		for (ctr = 0; ctr < this.num_ratings; ctr++)
		{
			new_window.write("Rating " + this.ratings[ctr] + " = " + this.ratings_scores[ctr] + "<BR>");
		}
	};

	this.all_questions_answered = function all_questions_answered()
	{
		var ctr;
		for (ctr = 0; ctr < this.get_num_questions(); ctr++)
		{
			if (this.answered_questions[ctr] == 0)
			{
				return 0;
			}
		}
		return 1;
	};
}



