var http_request = false;
var recalcWeight = true;
var recalcTemp = true;
var pictureID = "";
var reloader = false;

function trim (zeichenkette) {
  // Erst führende, dann Abschließende Whitespaces entfernen
  // und das Ergebnis dieser Operationen zurückliefern
  return zeichenkette.replace (/^\s+/, '').replace (/\s+$/, '');
}

function focusName (ElementName, Level, empty) {
   top.document.getElementsByName(ElementName)[Level].focus();
   if (empty == true) {
     top.document.getElementsByName(ElementName)[Level].value = '';
   } else {
     top.document.getElementsByName(ElementName)[Level].select();
   }
}
function error (errorText) {
  if(errorText.length>1) 
  {
  	top.document.getElementById("errortext").innerHTML ='<DIV class=\'warning\'>' + errorText + '</div>';
	window.scrollTo(0, 9999999);
    exit(0);
  } else {
  	top.document.getElementById("errortext").innerHTML ='';  
  }
}


function setRadio(feld, wert){
	for (i=0; i<feld.length; i++){
			if(feld[i].value == wert){
				feld[i].checked = true;
			}
	}
}
function getRadio(feld){
	for (i=0; i<feld.length; i++){
			if(feld[i].checked == true){
				return feld[i].value;
			}
	}
	return false;
}

function talkToServer(url, resultFunction, picID, bolReload) {
	//http-Request
	http_request = false;
	pictureID=picID;
	reloader=bolReload;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
			    http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
		return false;
	}
	if (resultFunction=='getFormula') {
		x = getFormula;
	}
	if (resultFunction=='getPictureDelete') {
		x = getPictureDelete;
	}
	if (x == false) {
	  return false;
	} 
	http_request.onreadystatechange = x;
	http_request.open('GET', url, true);
	http_request.send(null);
}

function getPictureDelete() {

	if (http_request.readyState == 4) {

		var answer = http_request.responseText;
		if (http_request.status == 500) {
			alert('Serverfehler');
			return;
		}
		if (http_request.status != 404 && http_request.status != 200) {
			alert('Fehlermeldung: ' + answer);
			return;
		}
		if (reloader == true) {
			reloader = false;
			window.location.reload();
			return;
		}
		//document.getElementById(pictureID).parentNode.removeChild(document.getElementById(pictureID));
		document.getElementById(pictureID).innerHTML='';
		pictureID ='';
		return;
	}
}

function getFormula() {
	//Verarbeitung des http-Requests
	// Initialize the local TOLine object
	var TOLineObj = new Array();
	if (http_request.readyState == 4) 
	{
		var answer = http_request.responseText;
		var minTemp;
		var maxTemp;
		answer = answer.replace(/\+/g, " ");
		answer= unescape(answer);
		TOLines = new Array();
		var Lines = answer.split("\015\012");
		if (Lines.length <= 1) {
		   error ('Fehlerhafte Servermeldung! [Errorcode J001]');
		}
		focusName ('weight1', 0, false);
		if (parent.document.getElementById('article').value =='') {
			focusName ('article', 0, false);
		}
		if (parent.document.getElementById('vendor').value =='') {
			focusName ('vendor', 0, false);
		}
		if (parent.document.getElementById('charge').value =='') {
			focusName ('charge', 0, false);
		}
		
		for (var j = 0; j<Lines.length-1; j++) {
			switch (Lines[j].substring(1,5)) {
				case "ERRO":
					TOLine = Lines[j].substring(1,Lines[j].length-1).split("\";\"");
					error (TOLine[1]);				
				case "VEND":
					TOLine = Lines[j].substring(1,Lines[j].length-1).split("\";\"");
					if (TOLine.length == 3) 
					{ 
						focusName ('vendor', 0, false);
						error (TOLine[2]);		
					}
					if (TOLine.length != 4) 
					{ 
						error ('Unerwartete Server-Antwort: '+TOLine.length+' statt 4 Datenelemente ! [Errorcode J002]');
					}
					TOLineObj['Name'] = TOLine[1];
					TOLineObj['Adresse'] = TOLine[2];
					TOLineObj['Ort'] = TOLine[3];
					parent.document.getElementById('vendortext').innerHTML = TOLineObj['Name'] + " - " + TOLineObj['Ort'];
					error('');
					break;
				case "ARTI":
					TOLine = Lines[j].substring(1,Lines[j].length-1).split("\";\"");
					if (TOLine.length == 3) 
					{ 
						//focusName ('article', 0, false);
						error (TOLine[2]);
					}
					if (TOLine.length != 5) 
					{ 
						error ('Unerwartete Server-Antwort: '+TOLine.length+' statt 5 Datenelemente ! [Errorcode J003]');
					}
					TOLineObj['Artikel'] = TOLine[1];
					TOLineObj['KlassenVorgabe'] = TOLine[2];
					parent.document.getElementById('articletext').innerHTML = TOLineObj['Artikel'];
					switch (TOLineObj['KlassenVorgabe']) {
						case "0":
							parent.document.getElementById('klassentext').innerHTML='<DIV class=\'important\'>Handelsklasse verboten</div>';
							break;
						case "1":
							parent.document.getElementById('klassentext').innerHTML='<DIV class=\'note\'>Handelsklasse vorgeschrieben</div>';
							break;
						default:
							parent.document.getElementById('klassentext').innerHTML='<DIV class=\'warning\'>Handelsklassen-Stammdaten fehlen</div>';
					}
					minTemp = parseFloat(TOLine[3]);
					maxTemp = parseFloat(TOLine[4]);
					if (isNaN(minTemp)) {
						parent.document.getElementById('temptext').innerHTML='<DIV class=\'warning\'>Temperatur-Stammdaten fehlen</div>';
					} else {
						parent.document.getElementById('temptext').innerHTML='<DIV class=\'note\'>Vorgeschrieben sind <input class="disabledForm" id="minTemp" type="text" size="5" maxlength="5" onfocus="focusName (\'temp\', 0, false);" value="' + minTemp + '" readonly> bis <input class="disabledForm" id="maxTemp" type="text" size="5" maxlength="5" onfocus="focusName (\'temp\', 0, false);" value="' + maxTemp + '" readonly> °C</div>';
					}
					if (parent.document.getElementById('variant').value =='') {
						focusName ('variant', 0, false);
					}
					error('');
					break;
				case "VARI":
					TOLine = Lines[j].substring(1,Lines[j].length-1).split("\";\"");
					if (TOLine.length == 3) 
					{ 
						focusName ('variant', 0, false);
						error (TOLine[2]);
					}
					if (TOLine.length != 10) 
					{ 
						error ('Unerwartete Server-Antwort: '+TOLine.length+' statt 10 Datenelemente ! [Errorcode J003]');
					}
					TOLineObj['Variante'] = TOLine[1];
					TOLineObj['Leergut'] = TOLine[2];
					TOLineObj['Herkunftsland'] = TOLine[3];
					TOLineObj['Handelsklasse'] = TOLine[4];
					TOLineObj['Anzahl'] = TOLine[5];
					TOLineObj['Einheit'] = TOLine[6];
					TOLineObj['Nettogewicht'] = TOLine[7] * 1000;
					parent.document.getElementById('articletext').innerHTML = TOLineObj['Variante'] + " - " + 
						TOLineObj['Leergut']+ " - " + 
						TOLineObj['Herkunftsland']+ " - Kl." + 
						TOLineObj['Handelsklasse']+ " - " + 
						TOLineObj['Anzahl']+ " " + 
						TOLineObj['Einheit'];
					if (TOLineObj['Einheit'] == "KG")
					{
						parent.document.getElementById('weighttext').innerHTML='3 Gewichte brutto (Kolli)';
						parent.document.getElementById('tara').value = TOLine[8];
					} else {
						parent.document.getElementById('weighttext').innerHTML='3 Gewichte brutto (Stk.)';
						parent.document.getElementById('tara').value = 'n/a';
					}					
					
					parent.document.getElementById('to_be').value = TOLineObj['Nettogewicht'];
					if (TOLine[9] != "") 
					{
						parent.document.getElementById('sizetext').innerHTML='<DIV class=\'note\'>Gewicht min. '+TOLine[9]+'</div>';
					} else {
						parent.document.getElementById('sizetext').innerHTML='<DIV class=\'important\'>Keine Größenvorgaben hinterlegt</div>';
					}
					error('');
					break;
				default:
					error("Fehlerhafte Servermeldung! [Errorcode J004]:<BR>"+answer);
			}
		}
	calculateData();
	}
}


