Request.HTML.implement({
 
        processHTML: function(text){
            var match = text.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
            text = (match) ? match[1] : text;
           
            var container = new Element('div');
           
            return $try(function(){
                var root = '<root>' + text + '</root>', doc;
                if (Browser.Engine.trident){
                    doc = new ActiveXObject('Microsoft.XMLDOM');
                    doc.async = false;
                    doc.loadXML(root);
                } else {
                    doc = new DOMParser().parseFromString(root, 'text/html');
                }
                root = doc.getElementsByTagName('root')[0];
                for (var i = 0, k = root.childNodes.length; i < k; i++){
                    var child = Element.clone(root.childNodes[i], true, true);
                    if (child) container.grab(child);
                }
                return container;
            }) || container.set('html', text);
        }
   
    });
 

var winTS = {
	'baseUrl': '/index.php?pi=tx_wintestsuite_pi2',

	'startKreawiSession': function(uid)
	{
		bar = $('busybar').clone();
		$('tx-wintestsuite-pi2-allsets').adopt(bar);


		var myHTMLRequest = new Request.HTML({
			url:'/index.php?no_cache=1&pi=tx_wintestsuite_pi2&tx_wintestsuite_pi2[view]=resetSession&tx_wintestsuite_pi2[set_uid]='+uid
			}).get();

		/*
		$('tx-wintestsuite-pi2-allsets').set('load', {
				evalResponse: true,
				onComplete: function() {
					winTS_Timer.init(remaining_ms);
				}
				});
		$('tx-wintestsuite-pi2-allsets').load(this.baseUrl+'&tx_wintestsuite_pi2[view]=kreawiMode&tx_wintestsuite_pi2[set_uid]='+uid);
		*/

		var myHTMLRequest = new Request.HTML({
			url:this.baseUrl+'&tx_wintestsuite_pi2[view]=kreawiMode&tx_wintestsuite_pi2[set_uid]='+uid,
			update: $('tx-wintestsuite-pi2-allsets'),
			evalResponse: true,
			evalScripts:true,
			onComplete: function() {
					winTS_Timer.init(remaining_ms);
			}
			}).get();

	},
	'getQuestionOverview': function(uid)
	{
		bar = $('busybar').clone();
		//$('tx-wintestsuite-pi2-allsets').empty();
		$('tx-wintestsuite-pi2-allsets').adopt(bar);
		//$('tx-wintestsuite-pi2-allsets').set('load', {evalResponse: true});
		//$('tx-wintestsuite-pi2-allsets').load(this.baseUrl+'&tx_wintestsuite_pi2[view]=questionsOverview&tx_wintestsuite_pi2[set_uid]='+uid);

		var myHTMLRequest = new Request.HTML({
				url:'/index.php?no_cache=1&tx_wintestsuite_pi2[view]=questionsOverview&tx_wintestsuite_pi2[set_uid]='+uid,
				evalResponse: true,
				evalScripts:true,
				update: $('tx-wintestsuite-pi2-allsets')
				}).get();

		return false;
	},
	'continueKreawiSession': function(uid)
	{
		bar = $('busybar').clone();
		//$('tx-wintestsuite-pi2-allsets').empty();
		$('tx-wintestsuite-pi2-allsets').adopt(bar);
		/*
		$('tx-wintestsuite-pi2-allsets').set('load', {
				evalResponse: true,
				onComplete: function() {
					winTS_Timer.init(remaining_ms);
				}
				});
		$('tx-wintestsuite-pi2-allsets').load(this.baseUrl+'&tx_wintestsuite_pi2[view]=kreawiMode&tx_wintestsuite_pi2[set_uid]='+uid);
		*/

		var myHTMLRequest = new Request.HTML({
			url:this.baseUrl+'&tx_wintestsuite_pi2[view]=kreawiMode&tx_wintestsuite_pi2[set_uid]='+uid,
			//evalResponse: true,
			//evalScripts:true,
			update: $('tx-wintestsuite-pi2-allsets'),
			onComplete: function() {
					winTS_Timer.init(remaining_ms);
			}
			}).get();


		return false;
	},
	'getQuestionOverview': function(uid)
	{
		bar = $('busybar').clone();
		//$('tx-wintestsuite-pi2-allsets').empty();
		$('tx-wintestsuite-pi2-allsets').adopt(bar);
		$('tx-wintestsuite-pi2-allsets').set('load', {evalResponse: true});
		$('tx-wintestsuite-pi2-allsets').load(this.baseUrl+'&tx_wintestsuite_pi2[view]=questionsOverview&tx_wintestsuite_pi2[set_uid]='+uid);
		return false;
	},
	'startExamSession': function(uid)
	{

	},
	'loadDefault': function()
	{
		/*
		needs fix with cObject in pi first...
		if(win_defaultview)
		{
			bar = $('busybar').clone();
			$('tx-wintestsuite-pi2-allsets').adopt(bar);
			var myHTMLRequest = new Request.HTML({
				url:this.baseUrl+'&tx_wintestsuite_pi2[view]='+win_defaultview,
				evalResponse: true,
				update: $('tx-wintestsuite-pi2-allsets')
				}).get();
		}
		else
		{
			location.reload();
		}
		*/
		location.reload();
		return false;
	},

	'saveAnswer': function()
	{
		bar = $('busybar').clone();
		$('tx-wintestsuite-kreawimode').adopt(bar);

		$('kreawimode-question-form').set('send', {
				url: this.baseUrl+'&tx_wintestsuite_pi2[view]=saveAnswer&tx_wintestsuite_pi2[set_uid]='+set_uid,
				method: 'post',
				onComplete: function(response) {
						response = JSON.decode(response);
						//log.set('html', response);
						//console.log(response.error);
						if(response.error)
						{
							error = document.createElement('p');
							error.innerHTML  = response.error;
							$('kreawimode-question-form-error').empty();
							$('kreawimode-question-form-error').adopt(error);

							bb = $('tx-wintestsuite-kreawimode').getChildren('.busybar')
							bb.destroy();
						}
						else
						{
							//$('kreawimode-question-form-error').empty();
							//$('tx-wintestsuite-kreawimode').getChildren('.busybar').destroy();
							$('status-block-'+response.uid).addClass('closed');
							//$('tx-wintestsuite-kreawimode').set('load', {evalResponse: true});
							//$('tx-wintestsuite-kreawimode').load('/index.php?no_cache=1&pi=tx_wintestsuite_pi2&tx_wintestsuite_pi2[view]=kreawiQuestion&tx_wintestsuite_pi2[set_uid]='+set_uid+'&tx_wintestsuite_pi2[question_uid]='+response.nextUid);
							if(response.nextUid)
							{
								$('toolbar-pointer').innerHTML = parseInt(response.pointer)+1;
								var myHTMLRequest = new Request.HTML({
									url:'/index.php?no_cache=1&pi=tx_wintestsuite_pi2&tx_wintestsuite_pi2[view]=kreawiQuestion&tx_wintestsuite_pi2[set_uid]='+set_uid+'&tx_wintestsuite_pi2[question_uid]='+response.nextUid,
									//evalResponse: true,
									evalScripts:true,
									update: $('tx-wintestsuite-kreawimode')
									}).get();
							}
							else
							{
								var myHTMLRequest = new Request.HTML({
									url:'/index.php?no_cache=1&pi=tx_wintestsuite_pi2&tx_wintestsuite_pi2[view]=sessionResults&tx_wintestsuite_pi2[set_uid]='+set_uid+'&tx_wintestsuite_pi2[send_result_email]='+win_send_result_email,
									//evalResponse: true,
									update: $('tx-wintestsuite-kreawimode')
									}).get();
								$clear(winTS_Timer.periodicalTimer);
							}
						}
				}
			});

		$('kreawimode-question-form').send();
	}
}


var  winTS_Question =
{
	'markAnswer': function(o, index)
	{
		var t = o.getParent();
		switch(index)
		{
			case 2:
				t.setStyle('background-position','0px -17px');
			break;
			case 1:
				t.setStyle('background-position','0px -34px');
			break;
			case 0:
				t.setStyle('background-position','0px -51px');
			break;
			default:
				t.setStyle('background-position','top left');
		}

		var nextAnswer = t.getParent().getNext('div.answerwrap');

		if(nextAnswer)
		{
			nextAnswer.setStyle('display','block');
		}
		else
		{
			if(!t.getParent().getParent().getNext('div.combianswerblock'))
			{
				t.getParent().getParent().getNext('div.solvequestion').setStyle('display','block');
			}
			else
			{
				t.getParent().getParent().getNext('div.combianswerblock').setStyle('display','block');
			}
		}

	},

	'showAnswers': function(o)
	{

		//alert(o);
		o.getParent().getNext('div.answerblock').getChildren('div.answerwrap').setStyle('display','block');

		if(o.getParent().getNext('div.combianswerblock'))
		{
			o.getParent().getNext('div.combianswerblock').setStyle('display','block');
		}
		else
		{
			o.getParent().getNext('div.solvequestion').setStyle('display','block');
		}
		return false;
	},

	'solveQuestion': function(o)
	{
		o.parentNode.getNext('div.commentedanswer').setStyle('display','block');
	},

	'setAnswer': function(o,uid)
	{
		if(o.checked == true || o.selected == true)
		{
			$('solvequestion_btn_'+uid).removeClass('disabled');
		}
	},

	'setCombiAnswer': function(o,uid)
	{
		if((o.checked == true || o.selected == true))
		{
			$('solvequestion_btn_'+uid).parentNode.setStyle('display','block');
		}
	}
}


var winTS_Timer =
{
	'init': function(ms)
	{
		//console.log(ms);

		if(ms == false)
			return false;

		if(ms != false)
		{
			 this.periodicalTimer = this.countdown.periodical(60000,this);
			 //this.periodicalTimer = this.countdown.periodical(60,this);
		}

	},

	'countdown': function()
	{
		minutes = parseInt($('remaining-time').innerHTML);
		minutes = minutes-1;

		if(minutes == 0)
		{
			$('remaining-time').innerHTML = minutes;
			var myHTMLRequest = new Request.HTML({
							url:'/index.php?no_cache=1&pi=tx_wintestsuite_pi2&tx_wintestsuite_pi2[view]=sessionResults&tx_wintestsuite_pi2[set_uid]='+set_uid,
							evalResponse: true,
							update: $('tx-wintestsuite-kreawimode')
							}).get();
			$clear(this.periodicalTimer);
		}
		else
		{
			if(minutes < (total_minutes/4))
			{
				$('remaining-time').addClass('attention');
			}
			$('remaining-time').innerHTML = minutes;
		}

	}
}

// Events
window.addEvent('domready', function() {

});

