var request;

function createRequest()
{
  try
  {
    request = new XMLHttpRequest();
  }
  catch (trymicrosoft)
  {
    try
    {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (othermicrosoft)
    {
      try
      {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (failed)
      {
        request = false;
      }
    }
  }

  if (!request)
    alert("Error initializing XMLHttpRequest!");
}

function sendRequest(url)
{
    // Create a request object
    createRequest();		

    // Setup (initialize) the request
    request.open("GET", url, true);
    request.onreadystatechange = updatePage;
    request.send(null);
}

function sendPostRequest(url, parameters, actionPage)
{
    // Create a request object
    createRequest();
    
    if (request.overrideMimeType)
    {
      // set type accordingly to anticipated content type
      //request.overrideMimeType('text/xml');
      request.overrideMimeType('text/html');
    }		

    request.onreadystatechange = actionPage;
    request.open('POST', url, true);
    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    request.setRequestHeader("Content-length", parameters.length);
    request.setRequestHeader("Connection", "close");
    request.send(parameters);
}

function updatePage()
{
   if (request.readyState == 4)
   {
     if (request.status == 200)
     {
			var response = request.responseText;
			document.getElementById('rtxt').innerHTML = response;
			var thisForm = document.getElementById('meldenForm');
			thisForm.thema.selectedIndex = 0;
			thisForm.level.selectedIndex = 0;
     }
     else
     {
     	//alert(request.status);
     	alert("Sorry, could not get a answer from the server. Please retry in a few minutes.");
     	document.getElementById('rtxt').innerHTML = '&nbsp;';
     }
   }
}

function updateCorrectionPage()
{
   if (request.readyState == 4)
   {
     if (request.status == 200)
     {
			var response = request.responseText;
			document.getElementById('rtxt').innerHTML = response;
			var thisForm = document.getElementById('korrekturForm');
			thisForm.frage.value = "";
			thisForm.antwort.value = "";
			thisForm.korrektur.selectedIndex = 0;
     }
     else
     {
     	//alert(request.status);
     	alert("Sorry, could not get a answer from the server. Please retry in a few minutes.");
     	document.getElementById('rtxt').innerHTML = '&nbsp;';
     }
   }
}

function getData()
{
	var thisForm = document.getElementById('meldenForm');
	var form_frage = thisForm.frage.value;
	var form_antwort = thisForm.antwort.value;
	var form_thema = thisForm.thema.value;
	var form_level = thisForm.level.value;
	var form_bemerkung = thisForm.bemerkung.value;
	
	if(form_frage.length == 0)
	{
		alert("Bitte geben Sie die Umschreibung des gesuchten Begriffs ein.");
		thisForm.frage.focus();
		thisForm.frage.select();
		return false;
	}
	
	if(form_antwort.length == 0)
	{
		alert("Bitte geben Sie den passenden Begriff zur Frage ein");
		thisForm.antwort.focus();
		thisForm.antwort.select();
		return false;
	}
	
	if(form_frage == form_antwort)
	{
		alert("Die Fragestellung und die Antwort dürfen nicht identisch sein.");
		thisForm.frage.focus();
		thisForm.frage.select();
		return false;
	}
	
	var poststr = "form_frage=" + encodeURIComponent(form_frage)
			+ "&form_antwort=" + encodeURIComponent(form_antwort)
			+ "&form_thema=" + encodeURIComponent(form_thema)
			+ "&form_level=" + encodeURIComponent(form_level)
			+ "&form_bemerkung=" + encodeURIComponent(form_bemerkung);
	
	document.getElementById('rtxt').innerHTML = 'Bitte warten ...'
	sendPostRequest('melden_send.php', poststr, updatePage);
	thisForm.frage.focus();
	thisForm.frage.select();
	return true;
}

function getCorrectData()
{
	var thisForm = document.getElementById('korrekturForm');
	var form_id = thisForm.f.value;
	var form_altf = thisForm.fg.value;
	var form_alta = thisForm.fh.value;
	var form_korrektur = thisForm.korrektur.value;
	var form_frage = thisForm.frage.value;
	var form_antwort = thisForm.antwort.value;
	var form_bemerkung = thisForm.bemerkung.value;
	
	if(thisForm.korrektur.selectedIndex > 0)
	{
		if(thisForm.korrektur.selectedIndex == 1)
		{
			if(form_altf == form_frage && form_alta == form_antwort)
			{
				alert("Bitte korrigieren Sie den Rechtschreibfehler bevor Sie das Formular absenden. Vielen Dank!");
				thisForm.frage.focus();
				thisForm.frage.select();
				return false;
			}
			
			if(form_frage.length == 0)
			{
				alert("Bitte geben Sie die Umschreibung des gesuchten Begriffs ein.");
				thisForm.frage.focus();
				thisForm.frage.select();
				return false;
			}
			
			if(form_antwort.length == 0)
			{
				alert("Bitte geben Sie den passenden Begriff zur Frage ein");
				thisForm.antwort.focus();
				thisForm.antwort.select();
				return false;
			}
		}
		
		var poststr = "form_frage=" + encodeURIComponent(form_frage)
				+ "&form_antwort=" + encodeURIComponent(form_antwort)
				+ "&form_korrektur=" + form_korrektur
				+ "&form_id=" + form_id
				+ "&form_bemerkung=" + encodeURIComponent(form_bemerkung);
		
		document.getElementById('rtxt').innerHTML = 'Bitte warten ...'
		sendPostRequest('korrektur_send.php', poststr, updateCorrectionPage);
		return true;
	}
	else
	{
		alert("Bitte klicken Sie für einen Korrekturvorschlag auf das entsprechende Symbol bei den Suchergebnissen und senden Sie dann das Formular ab.");
		return false;
	}
}