var QuestQuestion = Class.create();

QuestQuestion.prototype = { 
 
 // Constructor 
 initialize: function(carouselElemID) { 
  	
  	this.question = "";
  	this.possibleAnsweres = "";
  	this.answer = "";
   
 },
 
 // Destructor
 destroy: function() {
 	   
 }, 
 setQuestion: function(question){ 
		this.question = question;
 }, 
 setAnswer: function(answer){ 
		this.answer = answer;
 },
 setPossibleAnsweres: function(possibleAnsweres){ 
 		this.possibleAnsweres = possibleAnsweres;
 },
 getAnswersAsHtml: function(){
 	
 		var answers = "<span id=\"sample_question_answer_one\">A: " + this.possibleAnsweres[0] + "</span>&nbsp;&nbsp;";
 		answers += "<span id=\"sample_question_answer_two\">B: " + this.possibleAnsweres[1] + "</span>&nbsp;&nbsp;";
 		answers += "<span id=\"sample_question_answer_three\">C: " + this.possibleAnsweres[2] + "</span>";
 		
 		return answers;
 },
 getIdsForWrongAnswers: function(){
 	
 	 var total = this.possibleAnsweres.length;
 	 
 	 var wrongAnswerIds = new Array();
 	 var i = 0;
 	 
 	 if(this.possibleAnsweres[0] != this.answer){
 	 
 	 	wrongAnswerIds[i++] = 'sample_question_answer_one';
 	 
 	 }
 	 
 	 if(this.possibleAnsweres[1] != this.answer){
 	 
 	 	wrongAnswerIds[i++] = 'sample_question_answer_two';
 	 
 	 }
 	 
 	 if(this.possibleAnsweres[2] != this.answer){
 	 
 	 	wrongAnswerIds[i++] = 'sample_question_answer_three';
 	 
 	 }
   
   return wrongAnswerIds;
 
 }
 
}

var QuestionSlideshow = Class.create();

QuestionSlideshow.prototype = {
 
 // Constructor 
 initialize: function(questQuestions) {
 
  	this.questQuestions = questQuestions;
  	
  	this.delayTime = 3;

		this.options = Object.extend({    
			test: 25
		}, arguments[1] || {});
		
		
    this.displayQuestion();

 },

 // Destructor
 destroy: function() {
 	   
 },
 displayQuestion: function(){
		
		
		Effect.Fade('sample_question_container_all',{duration: 1, afterFinish: this.showNewQuestion.bindAsEventListener(this)});
		
		 
 },
 showNewQuestion: function(){
 
 		
 		questionToInsert = this.getRandomQuestion();
 		
 		
 		$('sample_question_container_all_question').update(questionToInsert.question);		
 		
 		 
 		
 		$('sample_question_container_all_answers').update(questionToInsert.getAnswersAsHtml());
 		
 		
 		Effect.Appear('sample_question_container_all',{duration: 1});		
 		
 		
 		this.showAnswer.bindAsEventListener(this).delay(this.delayTime,questionToInsert);
 		
  
 },
 showAnswer: function(questionToInsert){ 
 		
 		
 		
 		
 		var wrongAnswerIds = questionToInsert.getIdsForWrongAnswers();
 		
 		try{
			new Effect.Parallel(
				[
					Effect.Fade(wrongAnswerIds[0],{from: 1.0, to: 0.3,duration: 1}),
					Effect.Fade(wrongAnswerIds[1],{from: 1.0, to: 0.3, duration: 1})
				],{afterFinish: (this.displayNextQuestion.bindAsEventListener(this)) }
			);
	  }catch(e){}

		
 
 },
 displayNextQuestion: function(){ 	
 	
 	this.displayQuestion.bindAsEventListener(this).delay(this.delayTime);
 
 }
 
 
 ,
 getRandomQuestion: function(){
		 
		var upperLimit = this.questQuestions.length;
 		
 		var rand_no = Math.floor((upperLimit)*Math.random()) + 1;
 		
		return this.questQuestions[rand_no - 1];
 }
}







 



//default funciton for all of the pages
function loadAllJs(){
	
	loadAccordions();
	
	
	var i = 0;
	var questQuestions = new Array();

	//add questions
	var questQuestion = new QuestQuestion();	
	questQuestion.setQuestion("What is 'Afanc'?");
 	questQuestion.setAnswer('gigantic lake monster');
	questQuestion.setPossibleAnsweres(new Array('old French currency','coalminers tool','gigantic lake monster'));	
	questQuestions[i++] = questQuestion;

	var questQuestion = new QuestQuestion();	
	questQuestion.setQuestion("In Latin, what is a 'Narcissus sylvestris'?");
 	questQuestion.setAnswer('daffodil');
	questQuestion.setPossibleAnsweres(new Array('dragon','leek','daffodil'));
	questQuestions[i++] = questQuestion;

	var questQuestion = new QuestQuestion();	
	questQuestion.setQuestion('In what year did Cardiff become the official capital of Wales?');
 	questQuestion.setAnswer('1955');
	questQuestion.setPossibleAnsweres(new Array('1855','1905','1955'));
	questQuestions[i++] = questQuestion;

	var questQuestion = new QuestQuestion();	
	questQuestion.setQuestion("When can the roots of the 'National Eisteddfod of Wales' be traced back to?");
 	questQuestion.setAnswer('1176');
	questQuestion.setPossibleAnsweres(new Array('1076','1176','1276'));
	questQuestions[i++] = questQuestion;

	var questQuestion = new QuestQuestion();	
	questQuestion.setQuestion("Which children's character was part of the 'Merioneth and Llantisilly Railway Company'?");
 	questQuestion.setAnswer('Ivor the Engine');
	questQuestion.setPossibleAnsweres(new Array('Ivor the Engine','Ivan the Engine','Ian the Engine'));
	questQuestions[i++] = questQuestion;

	var questQuestion = new QuestQuestion();	
	questQuestion.setQuestion("Which 'King of England' was thought to have been born at 'Pembroke Castle'?");
 	questQuestion.setAnswer('Henry VII');
	questQuestion.setPossibleAnsweres(new Array('Edward II','Henry VII','Owain Glyndwr'));
	questQuestions[i++] = questQuestion;

	var questQuestion = new QuestQuestion();	
	questQuestion.setQuestion("Which Welsh sportsman was given the nickname 'Il Buon Gigante', the 'Gentle Giant'?");
 	questQuestion.setAnswer('John Charles');
	questQuestion.setPossibleAnsweres(new Array('Ian Rush','Ray Gravell','John Charles'));
	questQuestions[i++] = questQuestion;

	var questQuestion = new QuestQuestion();	
	questQuestion.setQuestion("Which TV series was filmed in 'Portmeirion'?");
 	questQuestion.setAnswer('The Prisoner');
	questQuestion.setPossibleAnsweres(new Array('The Saint','The Avengers','The Prisoner'));
	questQuestions[i++] = questQuestion;

	var questQuestion = new QuestQuestion();	
	questQuestion.setQuestion('Whose private Welsh warship terrorised the Caribbean in the 17th century?');
 	questQuestion.setAnswer('Henry Morgan');
	questQuestion.setPossibleAnsweres(new Array('Sir Francis Drake','Sir John Hawkins','Henry Morgan'));
	questQuestions[i++] = questQuestion;

	var questQuestion = new QuestQuestion();	
	questQuestion.setQuestion("In what year was the 'Aberfan Disaster'?");
 	questQuestion.setAnswer('1966');
	questQuestion.setPossibleAnsweres(new Array('1964','1965','1966'));
	questQuestions[i++] = questQuestion;

	var questQuestion = new QuestQuestion();	
	questQuestion.setQuestion("What is 'Bara Birth'?");
 	questQuestion.setAnswer('fruit cake');
	questQuestion.setPossibleAnsweres(new Array('fruit cake','cheese on toast','beer'));
	questQuestions[i++] = questQuestion;

	var questQuestion = new QuestQuestion();	
	questQuestion.setQuestion("Who is the longest serving 'Prince of Wales'?");
 	questQuestion.setAnswer('Prince Charles');
	questQuestion.setPossibleAnsweres(new Array('King Edward VII','King Edward II','Prince Charles'));
	questQuestions[i++] = questQuestion;

	var questQuestion = new QuestQuestion();	
	questQuestion.setQuestion('What are the border counties between England and Wales known as?');
 	questQuestion.setAnswer('Welsh Marches');
	questQuestion.setPossibleAnsweres(new Array('Welsh Marches','Welsh Stepps','Welsh Pampas'));
	questQuestions[i++] = questQuestion;

	var questQuestion = new QuestQuestion();	
	questQuestion.setQuestion('Richard Burton, once the highest-paid actor in Hollywood, was nominated how many times for an Oscar?');
 	questQuestion.setAnswer('seven times');
	questQuestion.setPossibleAnsweres(new Array('once','five times','seven times'));
	questQuestions[i++] = questQuestion;

	var questQuestion = new QuestQuestion();
	questQuestion.setQuestion("According to the chronicler 'Rhygyfarch', whose last words were 'Be joyful, keep the faith, and do the small things'?");
 	questQuestion.setAnswer('St David');
	questQuestion.setPossibleAnsweres(new Array('Llywelyn ap Gruffudd','St David','Gerald of Wales'));
	questQuestions[i++] = questQuestion;
	
	var questQuestion = new QuestQuestion();
	questQuestion.setQuestion("What task were 'Corgi' dogs originally bred for?");
 	questQuestion.setAnswer('herding sheep and cattle');
	questQuestion.setPossibleAnsweres(new Array('warning against burglary','herding sheep and cattle','catching rats'));
	questQuestions[i++] = questQuestion;
	

	
	var questionSlideshow = new QuestionSlideshow(questQuestions,{test:25});

	
}


/**
*In my case I want to load them onload, this is how you do it!
*/
Event.observe(window, 'load', loadAllJs, false);



//	Set up all accordions
function loadAccordions() {


	if($('vertical_container')){
  
		var bottomAccordion = new accordion('vertical_container');

		var nestedVerticalAccordion = new accordion('vertical_nested_container', {
			classNames : {
				toggle : 'vertical_accordion_toggle',
				toggleActive : 'vertical_accordion_toggle_active',
				content : 'vertical_accordion_content'
			}
		});
		var nestedVerticalAccordion = new accordion('vertical_nested_container2', {
			classNames : {
				toggle : 'vertical_accordion_toggle',
				toggleActive : 'vertical_accordion_toggle_active',
				content : 'vertical_accordion_content'
			}
		});
		var nestedVerticalAccordion = new accordion('vertical_nested_container3', {
			classNames : {
				toggle : 'vertical_accordion_toggle',
				toggleActive : 'vertical_accordion_toggle_active',
				content : 'vertical_accordion_content'
			}
		});
		var nestedVerticalAccordion = new accordion('vertical_nested_container4', {
			classNames : {
				toggle : 'vertical_accordion_toggle',
				toggleActive : 'vertical_accordion_toggle_active',
				content : 'vertical_accordion_content'
			}
		});
		var nestedVerticalAccordion = new accordion('vertical_nested_container5', {
			classNames : {
				toggle : 'vertical_accordion_toggle',
				toggleActive : 'vertical_accordion_toggle_active',
				content : 'vertical_accordion_content'
			}
		});

		// Open first one
		bottomAccordion.activate($$('#vertical_container .accordion_toggle')[0]);
	}	

}