var question;
var disableVote = false;

Event.observe(window, 'resize', function(e){setToCenter('main');});

function newQuestion(){
	new Ajax.Request('random.php', {
		onSuccess: function(r) {
			question = r.responseText.evalJSON();
			setQuestion(question);
		}

	});
}

function setToCenter(element){
	var vpdim = document.viewport.getDimensions();
	var edim = $(element).getDimensions();		
	$(element).setStyle({top: ((vpdim.height-edim.height)/2)+'px', left: ((vpdim.width-edim.width)/2)+'px'});
	
}

function setQuestion(question){
	if(question.error){
		setToCenter('main');
		$('message').firstChild.data = question.error;
		setToCenter('message');
		Effect.Appear('message');
	}else{
		$("leftword").firstChild.data = question.qleft;
		$("rightword").firstChild.data = question.qright + "?";
		if(question.name){
			$("quser").firstChild.data = question.name + " fragt:";
		}else{
			$("quser").firstChild.data = "Ein anonymling fragt:";
		}
		
		setToCenter('main');
		Effect.Appear('main', {duration: 1, afterFinish: function() { disableVote = false; } });
	}
}

function vote(side){
	if(question.error)
		return false;

	if(!disableVote){
		disableVote = true;
		var qbackup = question;

		new Ajax.Request('vote.php?for='+side+'&id='+question.id, {
			onSuccess: function(r){
				results = r.responseText.evalJSON();
				revealResults(results, qbackup); // Asynchronitaetsbug
			}
		});
		
		if(side == "left"){
			Effect.Pulsate('leftword', { duration: 1.2, pulses: 3 });
		}else{
			Effect.Pulsate('rightword', { duration: 1.2, pulses: 3 });
		}
		Effect.Fade('main', { duration: 1, afterFinish: function() { newQuestion() } });
	}
}

function getScore(){
		new Ajax.Request('getscore.php?id='+question.id, {
			onSuccess: function(r){
				results = r.responseText.evalJSON();
				revealResults(results, question);
			}
		});
}

function revealResults(results, q){
	var paragraph = $('result');
	if(results){
		paragraph.firstChild.data = q.qleft + ": " + results.leftpercent + "% " + q.qright + ": " + results.rightpercent + "% " + "(Total Stimmen: "+results.total+")";
	}
}

function showAsk(){
	Effect.toggle('ask', 'appear');
}

function showSearch(){
	Effect.toggle('searchdiv', 'appear');
}

function ask(){
	if($('qlinks').getValue() == "" || $('qrechts').getValue() == ""){
		alert("Mindestens ein Fragefeld ist leer!");

	}else{
		$('askform').request();
		Effect.Pulsate('askbutton', { duration: 1, pulses: 2, from: 0.5, afterFinish: function() {Effect.Fade('ask')} });
		$('qlinks').setValue('');
		$('qrechts').setValue('');
	}
}

function keyControl(e){
	var keynum;
	if(window.event){ 
		keynum = e.keyCode;
	}
	else if(e.which){
		keynum = e.which;
	}
	keychar = String.fromCharCode(keynum);

	if($('ask').style.display == "none" && $('searchdiv').style.display == "none"){
		switch(keychar){
		case 'n':
			newQuestion();
			break;
		case 'b':
			vote('left');
			break;
		case 'm':
			vote('right');
			break;
		case 'r':
		//	getScore();
			break;
		}
	}
}

var spage = 1;

function nextPage(){
	if($('searchmore').firstChild.data != "bitte warten..."){
		$('searchmore').firstChild.data = "bitte warten...";
		qsearch(1*spage+1*1);
	}
}

function qsearch(page){
	spage = page;

	$('pagefield').value = page;
	var t = $('searchresults');

	if(spage == 1){
		$('searchresults').style.display = "none";
		var b = $('stablebody');
		
		while(b.childNodes.length > 2){
			b.removeChild(b.lastChild);
		}
	}

	if(page == 1)
		Effect.Pulsate('searchbutton', { duration: 1, pulses: 2, from: 0.5 });

	$('searchform').request( {
		onComplete: function(r){
			results = r.responseText.evalJSON();
			// alert(r.responseText);
			// alert(results.count);
			// alert("results: " + results.count + " seite: " + page*10);
			
			$('searchmore').firstChild.data = "mehr Resultate laden";
				
			if(results.count > (page*20))
				$('searchmore').style.display = "block";
			else
				$('searchmore').style.display = "none";

			if(results.count <= 0){
				$('searchresults').style.display = "none";
				$('searchmore').style.display = "none";
				$('searchstatus').style.display = "block";
				$('searchinfo').firstChild.data = "Keine Suchresultate!";
			}else{
				$('searchstatus').style.display = "block";
				$('searchinfo').firstChild.data = results.count + " gefunden, zeige " + ((page*1-1)*20+results.results.length*1);

				for(var j = 0; j < results.results.length; j++){
					var row = results.results[j];
					var tr = t.insertRow(t.rows.length);
					tr.insertCell(tr.cells.length).appendChild(document.createTextNode(row.qleft + " oder " + row.qright+"?"));
					if(row.name)
						tr.insertCell(tr.cells.length).appendChild(document.createTextNode(row.name));
					else
						tr.insertCell(tr.cells.length).appendChild(document.createTextNode("anonymling"));


					if(row.lpercent > row.rpercent){
						tr.insertCell(tr.cells.length).appendChild(document.createTextNode(row.qleft + " (" + row.lpercent + "%)"));
					}else if(row.rpercent > row.lpercent){
						tr.insertCell(tr.cells.length).appendChild(document.createTextNode(row.qright + " (" + row.rpercent + "%)"));
					}else{
						tr.insertCell(tr.cells.length).appendChild(document.createTextNode("unentschieden"));
					}
					tr.insertCell(tr.cells.length).appendChild(document.createTextNode(row.total));
				}
				$('searchresults').style.display = "block";
				if(!$('searchscroll').visible()) Effect.SlideDown($('searchscroll'));

			}
		}

	});

}

function addTable(arr){

}

