var Test = Class.create();
Test.prototype = {
	initialize : function (lo) {
		this.lo = lo;
		},
		display : function(res) {
			$(this.lo).innerHTML = res;
		},
		hide : function() {
			$(this.lo).innerHTML = "";
		}
};

function doTest(a)
	{
		input = $('input').query.value;
		if (input.length > 1) {
		a = $('a1').innerHTML;
		rObj = new RegExp(input);
		if (a.match(rObj)){
			$('timer').innerHTML = "OK";
		}else {
			$('timer').innerHTML = "NG";
		}
		}
	}
	
	function addTestForm(q, a, i)
	{
		var res = '<form id="testForm' + i +'\"><a href="#" onClick=\'hideTestForm(\"' + i +'\");return false;\'">[キャンセル]</a>';
		res += ' <a href="#" onClick=\'exchangeQA(' + i +');return false;\'">[Q<->A]</a>';
		res += ' <a href="#" onClick=\'select4(' + i +');return false;\'">[4択]</a>';
		res += ' <a href="#" onClick=\'addTest(\"' + i +'\");return false;\'"><strong>[追加]</strong></a><br>';
		res += 'Question：<br><textarea id="q' + i +'" name="text" cols=30 rows=4 />'+unescape(q)+'</textarea><br>';
		res += 'Answer：<br><textarea id="a' + i +'" name="text" cols=30 rows=4 />'+unescape(a)+'</textarea><br>';
		res += 'Comment:<br><textarea id="comment' + i +'" name="text" value="" cols=30 rows=4 />'+getCookie("comment")+'</textarea><br>';
		res += '<a href="#" onClick=\'hideTestForm(\"' + i +'\");return false;\'">[キャンセル]</a>';
		res += ' <a href="#" onClick=\'exchangeQA(' + i +');return false;\'">[Q<->A]</a>';
		res += ' <a href="#" onClick=\'select4(' + i +');return false;\'">[4択]</a>';
		res += ' <a href="#" onClick=\'addTest(\"' + i +'\");return false;\'"><strong>[追加]</strong></a><br></form>';
			$('addTest' + i).innerHTML = res;
	}
	
	function hideTestForm(i)
	{
		$('addTest' + i).innerHTML = '';
	}
	
	function exchangeQA(i)
	{
		var q = $('q'+i).value;
		var a = $('a'+i).value;
		$('q'+i).value = a;
		$('a'+i).value = q;		
	}
	
	function addTest(i)
	{
		setCookie("comment", $('comment' +i).value, getExpDate(180, 0, 0));
		var url = 'http://testit.jp/index.php/module/Test/action/Add';
		var pars = 'i=' + i + '&q=' + $('q' +i).value + '&a=' + $('a' +i).value + '&comment=' + $('comment' +i).value;
		var myAjax = new Ajax.Request( url, { method: 'post', parameters: pars, onComplete: showAddTestResponse });
		var test = new Test('addTest' + i);
		test.display('<img src="http://testit.jp/img/loading.gif">');
	}

	function showAddTestResponse(originalRequest)
	{
		//put returned JSON in the textarea
		
		var json = originalRequest.responseText;
		var records = eval(json);
		var res = records[0].msg;
		var i = records[0].i;
		var test = new Test('addTest' + i);
		test.display(res);
		$('input').query.select();
	}

		function deleteTest(i, testId)
	{
		var url = 'http://testit.jp/index.php/module/Test/action/Delete';
		var pars = 'i=' + i + '&testId=' + testId;
		var myAjax = new Ajax.Request( url, { method: 'post', parameters: pars, onComplete: showdeleteTestResponse });		
	}

	function showdeleteTestResponse(originalRequest)
	{
		//put returned JSON in the textarea		
		var json = originalRequest.responseText;
		var records = eval(json);
		var res = records[0].msg;
		var i = records[0].i;
		$('addTest' + i).innerHTML = res;
		location.reload();
	}
	
		function editTestForm(i, testId)
	{
		var res = '<form id=\"testForm' + i +'\"><a href="#" onClick=\'hideTestForm(\"' + i +'\");return false;\'">[キャンセル]</a>';
		res += ' <a href="#" onClick=\'exchangeQA(' + i +');return false;\'">[Q<->A]</a>';
		res += ' <a href="#" onClick=\'hideTestForm(\"' + i +'\");return false;\'">[4択]</a>';
		res += ' <a href="#" onClick=\'editTest(' + i + ', ' + testId + ');return false;\'"><strong>[保存]</strong></a><br>';
		res += 'Question：<br><textarea id="qF' + i +'" name="text" cols=60 rows=4 />'+ $('q'+i).innerHTML +'</textarea><br>';
		res += 'Answer：<br><textarea id="aF' + i +'" name="text" cols=60 rows=4 />'+$('a'+i).innerHTML+'</textarea><br>';
		res += 'Comment:<br><textarea id="commentF' + i +'" name="text" value="" cols=60 rows=4 />'+ $('comment'+i).innerHTML +'</textarea><br>';
		res += '<a href="#" onClick=\'hideTestForm(\"' + i +'\");return false;\'">[キャンセル]</a>';
		res += ' <a href="#" onClick=\'exchangeQA(' + i +');return false;\'">[Q<->A]</a>';
		res += ' <a href="#" onClick=\'hideTestForm(\"' + i +'\");return false;\'">[4択]</a>';
		res += ' <a href="#" onClick=\'editTest(' + i + ', ' + testId + ');return false;\'"><strong>[保存]</strong></a><br></form>';
		
			$('addTest' + i).innerHTML = res;
	}
	
		function editTest(i, testId)
	{
		var url = 'http://testit.jp/index.php/module/Test/action/Update';
		var pars = 'i=' + i + '&q=' + $('qF' +i).value + '&a=' + $('aF' +i).value + '&comment=' + $('commentF' +i).value + '&testId=' + testId;
		var myAjax = new Ajax.Request( url, { method: 'post', parameters: pars, onComplete: showEditTestResponse });		
	}
	
	function showEditTestResponse(originalRequest)
	{
		//put returned JSON in the textarea		
		var json = originalRequest.responseText;
		var records = eval(json);
		var res = records[0].msg;
		var i = records[0].i;
		$('addTest' + i).innerHTML = res;
		location.reload();
	}
	
		function select4(i)
	{
		var q = $('a'+i).value;
		var a = $('q'+i).value;
		var url = 'http://testit.jp/index.php/module/Test/action/Select4';
		var pars = 'q=' + q + '&a=' + a + '&i=' + i;
		var myAjax = new Ajax.Request( url, { method: 'get', parameters: pars, onComplete: showSelect4Response });				
	}
	
		function showSelect4Response(originalRequest)
	{
		//put returned JSON in the textarea
		
		var json = originalRequest.responseText;
		var records = eval(json);
		var q = records[0].q + '\n' + records[0].a;
		var a = records[0].a;
		var comment = records[0].a + ':' + records[0].q;
		for (j = 1; j < records.length; j++) {
                q += '\n' + records[j].q;
                comment += '\n' + records[j].q + ':' + records[j].a;
            }
   		var i = records[0].i;
		$('q'+i).value = q;
		$('a'+i).value = a;
		$('comment'+i).value = comment;		
	}