
/* Initialisation for JS capable browsers */
function init()
{
	var requester = null;
	var formRequester = null;
//	var message = document.getElementById("message");

	return true;
}

function onchangeLKZ()
{
	var LKZ = document.getElementById("LKZ");
	LKZ.onchange = onchangeLKZ;
	document.getElementById('msgland').innerHTML = "Anbaugebiete werden geholt";
	document.Anlegen.sLand.value = ' ';
	document.Anlegen.sRegion.value = ' ';
	document.Anlegen.sProduzentAlle.value = ' ';
	if (requester != null && requester.readyState != 0 && requester.readyState != 4)
	{	requester.abort();	}
	try	{	requester = new XMLHttpRequest();	}
	catch (error)	{
		try	{	requester = new ActiveXObject("Microsoft.XMLHTTP");	}
		catch (error)	{
			requester = null;
			alert("Kann keinen XMLHttpRequest initialisieren!");
			return false;	}	}
	requester.onreadystatechange = onreadystatechangeLKZ;
	requester.open("GET", "index.php?f=ajax&LKZ=" + LKZ.value);
	requester.send(null);
	document.forms.Anlegen.RKZ.focus();
	return true;
}
/* Funktion aufrufen mit Parm LKZ füllen Selectbox Regionen */
function onreadystatechangeLKZ()
{
	// If XMLHR object has finished retrieving the data
	if (requester.readyState == 4)	{
		// If the data was retrieved successfully
		try		{	if (requester.status == 200)	{	writeDetails("LKZ");	}
			// IE returns a status code of 0 on some occasions, so ignore this case
			else if (requester.status != 0)
			{	alert("Fehler beim Abrufen der Daten für die Selectbox Anbaugebiete: " + requester.statusText);	}
		}
		catch (error)	{}	}
	return true;
}


function onchangeRKZ()
{
	var RKZ = document.getElementById("RKZ");
	RKZ.onchange = onchangeRKZ;
	document.getElementById('msgregion').innerHTML = "Weingüter für Anbaugebiet werden geholt";
	if (requester != null && requester.readyState != 0 && requester.readyState != 4)
	{	requester.abort();	}
	try	{	requester = new XMLHttpRequest();	}
	catch (error)	{
		try	{	requester = new ActiveXObject("Microsoft.XMLHTTP");	}
		catch (error)	{requester = null;return false;	}	}
	requester.onreadystatechange = onreadystatechangeRKZ;
	requester.open("PUT", "index.php?f=ajax&RKZ=" + RKZ.value);
	requester.send(null);
	document.forms.Anlegen.sProduzentAlle.focus();
	return true;
}
/* Funktion aufrufen mit Parm RKZ füllen Selectbox Weingüter */
function onreadystatechangeRKZ()
{
	// If XMLHR object has finished retrieving the data
	if (requester.readyState == 4)	{
		// If the data was retrieved successfully
		try		{	if (requester.status == 200)	{	writeDetails("RKZ");	}
			// IE returns a status code of 0 on some occasions, so ignore this case
			else if (requester.status != 0)
			{alert("Fehler beim Abrufen der Daten für die Selectbox Weingüter: " + requester.statusText);}}
		catch (error)	{}	}
	return true;
}
function onchangesProduzentAlle()
{
	var sProduzentAlle = document.getElementById("sProduzentAlle");
	sProduzentAlle.onchange = onchangesProduzentAlle;
	document.getElementById('msgweingut').innerHTML = "Vorhandene Vkn für Weingut werden geholt";
	if (requester != null && requester.readyState != 0 && requester.readyState != 4)
	{	requester.abort();	}
	try	{	requester = new XMLHttpRequest();	}
	catch (error)	{
		try	{	requester = new ActiveXObject("Microsoft.XMLHTTP");	}
		catch (error)	{requester = null;return false;	}	}
	requester.onreadystatechange = onreadystatechangesProduzentAlle;
	requester.open("PUT", "index.php?f=ajax&sProduzentAlle=" + sProduzentAlle.value);
	requester.send(null);
	document.forms.Anlegen.sBezeichnungAlle.focus();
	return true;
}
/* Funktion aufrufen mit Parm sProduzentAlle füllen Selectbox Weine vorhandene Vkns */
function onreadystatechangesProduzentAlle()
{
	// If XMLHR object has finished retrieving the data
	if (requester.readyState == 4)	{
		// If the data was retrieved successfully
		try	{	if (requester.status == 200)	{	writeDetails("sProduzentAlle");	}
			// IE returns a status code of 0 on some occasions, so ignore this case
			else if (requester.status != 0)
			{alert("Fehler beim Abrufen der Daten für die Selectbox vorhandene Vkns: " + requester.statusText);}}
		catch (error)	{}	}
	return true;
}

function onchangeTraubensorten()
{
//alert("onchange Traubensorten!");
	if ( !document.forms.Anlegen.sLand.value || !document.forms.Anlegen.traubenauswahl.value )
		return false;
	if (requester != null && requester.readyState != 0 && requester.readyState != 4)
	{	requester.abort();	}
	try {	requester = new XMLHttpRequest();	}
	catch (error)	{
		try	{	requester = new ActiveXObject("Microsoft.XMLHTTP");		}
		catch (error)	{	requester = null;return false;	}	}
	requester.onreadystatechange = onreadystatechangeTraubensorten;
	requester.open("PUT", "index.php?f=ajax&LKZ=" + document.forms.Anlegen.sLand.value+ "&traubenauswahl=" + document.forms.Anlegen.traubenauswahl.value);
	requester.send(null);
	document.forms.Anlegen.traubenauswahl.focus();
	return true;
}
/* Funktion aufrufen mit Parm sProduzentAlle füllen Selectbox Weine vorhandene Vkns */
function onreadystatechangeTraubensorten()
{
	if (requester.readyState == 4)	{
		try		{	if (requester.status == 200)	{	writeDetails("traubenauswahl");	}
			else if (requester.status != 0)	{alert("Fehler beim Abrufen der Daten für die Selectbox vorhandene Vkns: " + requester.statusText);}}
		catch (error)	{}	}
	return true;
}

function Mailinglist()
{
	if ( !document.getElementById('vorname').value.length )
		{
		alert("Bitte den Vornamen eingeben.");
		document.getElementById('vorname').focus();
		return false;
		}
	if ( !document.getElementById('name').value.length )
		{
		alert("Bitte den Namen eingeben.");
		document.getElementById('name').focus();
		return false;
		}

	var e = document.getElementById('email');
	if ( e.value.length == 0 )
		{
		alert("Warum gibst Du keine e-Mail-Adresse an?");
		document.getElementById('email').focus();
		return false;
		}
	if ( e.value.length > 0 )
		{
		i = e.value.indexOf("@")
		j = e.value.indexOf(".")
		k = e.value.indexOf(",")
		kk = e.value.indexOf(" ")
		jj = e.value.lastIndexOf(".")+1
		len = e.value.length
		if (( i < 0 ) || ( j < 0 ) || ( k > -1 ) || ( kk > -1 ) )
			{
			alert("Warum gibst Du keine gültige e-Mail Adresse ein?");
			document.getElementById('email').focus();
			return false;
			}
		}
 	
	if (requester != null && requester.readyState != 0 && requester.readyState != 4)
		{		requester.abort();		}
	try		{		requester = new XMLHttpRequest();		}
	catch (error)
		{		try			{			requester = new ActiveXObject("Microsoft.XMLHTTP");			}
		catch (error)			{			requester = null;			return false;			}		}
	requester.onreadystatechange = onreadystatechangeMailinglist;
	requester.open("PUT", "index.php?f=ajax&aktion=eintragen&vorname=" + document.getElementById('vorname').value + "&name=" + document.getElementById('name').value + "&email=" + document.getElementById('email').value + "&nachricht=" + document.getElementById('nachricht').value);
	requester.send(null);
	return true;
}
function onreadystatechangeMailinglist()
{
	if (requester.readyState == 4)	{
		try		{	if (requester.status == 200)	{	writeDetails("mailinglist");	}
			else if (requester.status != 0)	{alert("Fehler beim Versenden deiner Mail an Richie: " + requester.statusText);}}
		catch (error)	{}	}
	return true;
}

function Nachricht()
{
	if ( !document.getElementById('nachrichtwerner').value.length )
		{
		alert("Absenden ohne Text??????????");
		document.getElementById('nachrichtwerner').focus();
		return false;
		}
 	
	if (requester != null && requester.readyState != 0 && requester.readyState != 4)
		{		requester.abort();		}
	try		{		requester = new XMLHttpRequest();		}
	catch (error)
		{		try			{			requester = new ActiveXObject("Microsoft.XMLHTTP");			}
		catch (error)			{			requester = null;			return false;			}		}
	requester.onreadystatechange = onreadystatechangeNachricht;
	requester.open("PUT", "index.php?f=ajax&aktion=absenden&email2=" + document.getElementById('email2').value +  "&nachricht=" + document.getElementById('nachrichtwerner').value);
	requester.send(null);
	return true;
}
function onreadystatechangeNachricht()
{
	if (requester.readyState == 4)	{
		try		{	if (requester.status == 200)	{	writeDetails("nachricht");	}
			else if (requester.status != 0)	{alert("Fehler beim Versenden einer Mail an Werner: " + requester.statusText);}}
		catch (error)	{}	}
	return true;
}

/* Insert/clear message next to form element */
function message(element, classString, errorMessage)
{
//alert(element + " - " + classString + " - " + errorMessage);
	if (element.message != null)
	{
		try
		{
			element.message.className = classString;
			element.message.removeChild(element.message.childNodes[0]);
		}
		catch (error)
		{
		}
	}

	if (errorMessage != null)
	{
		if (element.message == null)
		{
			var messageDiv = document.createElement("div");

			element.message = element.parentNode.insertBefore(messageDiv, element);
/*			element.message.style.marginLeft = parseInt(element.scrollWidth) + 10 + "px";		*/
		}

		element.message.className = classString;
		element.message.appendChild(document.createTextNode(errorMessage));
	}

	return true;
}

/* Update users details after data is retrieved via XMLHR */
function writeDetails(feldname)
{
// Server hat Daten geschickt? 
var c = requester.responseText.indexOf("\n");
if ( c > 0 )
	{
	var aRegionen = requester.responseText.split("\n");
	var d = aRegionen.length;
	d --;
	switch (feldname) 
	{
		case "LKZ":
		document.forms.Anlegen.RKZ.options.length = 0;	// Alle Options löschen
		for( i = 0; i < d; i ++ )
			{
			var select = document.forms.Anlegen.elements.RKZ;
			select.options[select.options.length] = new Option(aRegionen[i], aRegionen[i]);
			}
		document.forms.Anlegen.sLand.value = document.forms.Anlegen.LKZ[document.forms.Anlegen.LKZ.options.selectedIndex].value;
		document.getElementById('msgland').innerHTML = d-1 + " Anbaugebiete für "+document.forms.Anlegen.sLand.value+" wurden geholt";
		break;

		case "RKZ":
		document.forms.Anlegen.sProduzentAlle.options.length = 0;
		for( i = 0; i < d; i ++ )
			{
			var select = document.forms.Anlegen.elements.sProduzentAlle;
			select.options[select.options.length] = new Option(aRegionen[i], aRegionen[i]);
			}
		document.forms.Anlegen.sRegion.value = document.forms.Anlegen.RKZ[document.forms.Anlegen.RKZ.options.selectedIndex].value;
		if ( d > 1 )
			document.getElementById('msgregion').innerHTML = d-1 + " Weingüter wurden geholt";
		else
			document.getElementById('msgregion').innerHTML = "Noch keine Weingüter für "+document.forms.Anlegen.sRegion.value;
		break;

		case "sProduzentAlle":
		document.forms.Anlegen.sBezeichnungAlle.options.length = 0;
		for( i = 0; i < d; i ++ )
			{
			var select = document.forms.Anlegen.elements.sBezeichnungAlle;
			select.options[select.options.length] = new Option(aRegionen[i], aRegionen[i]);
			}

		document.forms.Anlegen.sProduzent.value = document.forms.Anlegen.sProduzentAlle[document.forms.Anlegen.sProduzentAlle.options.selectedIndex].value;
		if ( d > 1 )
			document.getElementById('msgweingut').innerHTML = d-1 + " Vkn wurden geholt";
		else
			document.getElementById('msgweingut').innerHTML = "Noch keine Vkn für "+document.forms.Anlegen.sProduzent.value;
		break;
		
		case "traubenauswahl":
			{
			document.forms.Anlegen.traubengefunden.value = requester.responseText;			
			}
		break;
		case "mailinglist":
			{
			document.getElementById('mailingeintragen').innerHTML = requester.responseText;			
			}
		break;
		case "nachricht":
			{
			document.getElementById('nachrichtwernerversendet').innerHTML = requester.responseText;			
			}
		break;
		}
	}
else
	{
	receipt.valid = false;

	if (receipt.value.length > 6)
		{
		message(receipt, "errorMessage", "Please enter a valid receipt number");
		receipt.className = "text error";
		}
	}

return true;
}


