var SHOW_CONTENT = 0;
var SHOW_NEWS = 1;
var ADD_GB_ENTRY = 2;
var ADJUST = 3;
	
function makeRequest(url, action) {  
	var httpRequest;	
	//Beginn anlegen des XMLHTTPREquest objektes (FINGER WEG!!!!!!)   
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		httpRequest = new XMLHttpRequest();
		if (httpRequest.overrideMimeType) {
			httpRequest.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
                alert(e);
			}
		}
	}

	if (!httpRequest) {
		alert('Giving up :(  Cannot create an XMLHTTP instance');
		return false;
	}

	switch(action) {
	case SHOW_CONTENT:
		httpRequest.onreadystatechange = function() { printContent(httpRequest); };
		httpRequest.open('GET', url, true);
		httpRequest.send('');
		break;
	case SHOW_NEWS:
		httpRequest.onreadystatechange = function() { printNews(httpRequest); };
		httpRequest.open('GET', url, true);
		httpRequest.send('');
		break;
	case ADD_GB_ENTRY:
		//ersetzen des buttons duch "einen Moment bitte..."
		var elem = document.getElementById("addGbEntryCont");
		var tn = document.createTextNode("einen Moment bitte...")
		var el = document.getElementById("addGbEntryBut");
		elem.replaceChild(tn,el);
		//button ersetzt
		
		var author = document.getElementById('gbEntryName').value;
		var msg = formatMessage(document.getElementById('gbEntryMsg').value);
		httpRequest.onreadystatechange = function() { entryAdded(httpRequest); };
		httpRequest.open('GET', url + "?author=" + author + "&msg=" + msg, true);
		httpRequest.send('');
		break;
	case ADJUST:
		httpRequest.onreadystatechange = function() { adjusted(httpRequest); };
		url=url.split('?');
		httpRequest.open('POST', url[0], true);
		httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		httpRequest.setRequestHeader("Content-length", url[1].length);
		httpRequest.setRequestHeader("Connection", "close");
		httpRequest.send(url[1]);
		break;
	}
    return true;
}

function printContent(httpRequest) {
	if (httpRequest.readyState == 4) {
		if (httpRequest.status == 200) {
			document.getElementById("content").innerHTML = httpRequest.responseText;
		} else {
			alert('There was a problem with the request.');
		}
	}		
}

function printNews(httpRequest) {
	if (httpRequest.readyState == 4) {
		if (httpRequest.status == 200) {
			var news = httpRequest.responseText.split(';');
			for (i = 0; i < news.length - 1; i++) {
				div = document.createElement("div");
				div.className = "newsTeaser";
				div.appendChild(document.createTextNode(news[i].split(".")[0]));
				div.onclick = new Function('makeRequest("./news/' + news[i]+ '",SHOW_CONTENT)');
				document.getElementById("news").appendChild(div);                
			}
		} else {
			alert('There was a problem with the request.');
		}
	}	
}	

function entryAdded(httpRequest) {		
	if (httpRequest.readyState == 4) {
		if (httpRequest.status == 200) {
			rmGbContainer();
			makeRequest("./contents/guestbook.php",SHOW_CONTENT);
		} else {
			alert(httpRequest.responseText);
		}
	}
}		

function adjust(surveyId) {
	var elems = document.getElementsByName("answer_"+surveyId);
	var isOneSelected = -1;
	for (i = 0; i < elems.length; i++) {
		if (elems[i].checked == true) {
			isOneSelected = elems[i].value;
		}
	}
	
	if (isOneSelected == -1) {
		alert("Bitte eine Antwort wählen!");
	} else {
		makeRequest("abstimmen.php?surveyId="+surveyId + "&answerId=" + isOneSelected, ADJUST);
	}
}

function adjusted(httpRequest) {
	if (httpRequest.readyState == 4) {
		if (httpRequest.status == 200) {
			if (httpRequest.responseText == true) {
				makeRequest("./contents/umfragen.php", SHOW_CONTENT);
			} else {
				alert("Sie haben bereits abgestimmt!");
			}
		} else {
			alert('There was a problem with the request.');
		}
	}
}
