/* Create NETR namespace */
if(typeof NETR == "undefined"){ var NETR = {}; }
 
NETR.Tabquiz = function (el) {
 
	var self = this;
	this.el = el;
	
	//Add button
	var quiz = this.el;
	quiz.hide();
	var quizStart = this.el.prev('.q-start');
	var quizLink = quizStart.find('.desc');
	var quizLinkText = quizLink.find('p').text();
	quizLink.html('<span class="more"><a class="quizlink" href="#">' + quizLinkText + '</a></span>');
	quizStart.find('.tab').append('<div class="tab-f"><div></div></div>');
	quizStart.find('.quizlink').click(function(){
		quizStart.hide();
		quiz.show();
	});
 
	//Add menu
	this.tabNav = $('<div class="tab-nav"><ul class="cf"></ul></div>');
	this.el.prepend(this.tabNav);
	this.el.find('.tab-h').addClass('structural');
 
	this.tabs = [];
	var first = null;
 
	this.el.find('.tab').each(function(){
		var $this = $(this);
		var tab = {};
		tab.content = $this.find('.tab-c');
		tab.title = $this.find('.tab-h h2').text();
		tab.label = $this.attr('id');
		self.setupBox(tab, first);
		self.tabs.push(tab);
		if (!first) {
			first = tab;
		}
	});
 
	this.activateBox(first);
 
};
 
NETR.Tabquiz.prototype = {
	setupBox: function (tab, first) {
		var self = this;
		if (!first) {
			this.tabNav.find('ul').append('<li class="first sel"><a href="#" class="'+tab.label+'">'+tab.title+'</a></li>');
		} else {
			this.tabNav.find('ul').append('<li><span class="'+tab.label+'">'+tab.title+'</span>');
		}
 
		this.submitArea = $('<div class="submit-area"></div>');		
		this.nextButton = $('<span class="button orange"><input type="submit" value="Nästa fråga" /></span>');
		this.backButton = $('<span class="button"><input type="submit" value="Tillbaka" /></span>');		
 
		if (tab.label != 'quiz-result'){
			tab.content.append(this.submitArea);
			this.submitArea.append(this.nextButton);
			tab.content.after('<div class="tab-f"><div></div></div>');
		} else {
			tab.content.find('.submit-area').remove();
		}
		if (tab.label != 'quiz-result' && first) {
			this.submitArea.prepend(this.backButton);
		}
		
		this.nextButton.click(function(event){
			event.preventDefault();
			tab.content.find('fieldset input:radio').each(function(){
				if($(this).is(':checked')) {
					if(self.tabs[$.inArray(tab, self.tabs)+1].label == 'quiz-result') {
						self.calculateResult(self.tabs[$.inArray(tab, self.tabs)+1]);
					} else {
						self.activateBox(self.tabs[$.inArray(tab, self.tabs)+1]);
					}
				}
			});
			tab.content.find('fieldset input:checkbox').each(function(){
				/*if($(this).is(':checked')) {*/
					if(self.tabs[$.inArray(tab, self.tabs)+1].label == 'quiz-result') {
						self.calculateResult(self.tabs[$.inArray(tab, self.tabs)+1]);
					} else {
						self.activateBox(self.tabs[$.inArray(tab, self.tabs)+1]);
					}
				/*}*/
			});
		});
		
		this.backButton.click(function(event){
			event.preventDefault();
			self.activateBox(self.tabs[$.inArray(tab, self.tabs)-1]);
		});
 
		$('a.'+tab.label).live('click', function(){
			self.activateBox(tab);
		});
	},
	activateBox: function (tab) {
		if (!$('.'+tab.label).is('.active')) {
			this.el.find('.tab-nav a').removeClass('active');
			this.el.find('.tab').removeClass('active').hide();
			$('.'+tab.label+', #'+tab.label).addClass('active').show();
			$('.'+tab.label).parent('li').addClass('sel').html('<a href="#" class="active '+tab.label+'">'+tab.title+'</a>');
		}
	},
	calculateResult: function (tab) {
		var self = this.el;
		$.ajax({
			url: '/base/quizhelpers/quizresult/22272',
			cache: false,
			data: this.el.find('form').serialize(),
			success: function(data){
				if (data.text==null)
				tab.content.html(data.firstChild.textContent);
				else
				tab.content.html(data.text);
				self.find('.tab-nav a').removeClass('active');
				self.find('.tab').removeClass('active').hide();
				$('.'+tab.label+', #'+tab.label).addClass('active').show();
				$('.'+tab.label).parent('li').addClass('sel').html('<a href="#" class="active '+tab.label+'">'+tab.title+'</a>');
			},
			error: function(XMLHttpRequest, textStatus, errorThrown) {
			tab.content.html(textStatus);}
		})
	}
};