<!--
function calc_summary( zahl ) {
	anzahl	= eval("document.Bestellung.anzahl_artikel_"+zahl+".value");
	anzahl	= Number(anzahl);
	anzahl	= Math.abs(anzahl);
	preis	= eval("document.Bestellung.ep_artikel_"+zahl+".value");
	preis	= parseFloat(preis);
//	alert(preis);


	if( isNaN(anzahl)==true )
	{
		alert("Der eingegebene Wert ist keine gültige Zahl!");
		obj = eval("document.Bestellung.anzahl_artikel_"+zahl);
		obj.value="0";
		return false;
	}
	else if( isNaN(preis)==true )
	{
		alert(preis + " ist keine gültige Zahl!");
		return false;
	}
	else if( parseInt(anzahl) != anzahl ) {
		alert(anzahl + " ist keine gültige Ganzzahl!");
		eval("document.Bestellung.anzahl_artikel_"+zahl).value=parseInt(anzahl);
//		return false;
	}

	summe		= parseFloat(anzahl * preis);
	summe		= kaufm(summe);	// kaufmännische Rundung des Ergebnisses

	obj			= eval("document.Bestellung.anzahl_artikel_"+zahl);
	obj.value	= anzahl;	// berichtigte Anzahl (Zahlenwert) wieder ins Feld schreiben

	obj			= eval("document.Bestellung.preis_artikel_"+zahl);
	obj.value	= summe;	// summe ins Feld schreiben

//	alert( "Anzahl:"+anzahl+"\nPreis:"+preis+"\nSumme:"+summe);
	calc_gesamt();
}

function kaufm(x) {
	var k = (Math.round(x * 100) / 100).toString();
	k += (k.indexOf('.') == -1)? '.00' : '00';
	var p = k.indexOf('.'), m = k.indexOf('-.');
	var f = (p == 0 || m == 0)? '0.' : '.';
	return k.substring(0, p) + f + k.substring(p+1, p+3);
}

function calc_gesamt() {
	obj 	= document.Bestellung;
	menge	= document.Bestellung.anzahl_artikel.value;
	summe = 0;
	for( n=1; n<=menge; n++ ) {
		anzahl	= eval("document.Bestellung.anzahl_artikel_"+n+".value");
		anzahl	= Number(anzahl);
		anzahl	= Math.abs(anzahl);
		preis	= eval("document.Bestellung.ep_artikel_"+n+".value");
		preis	= parseFloat(preis);

		summe+=(anzahl*preis);
	}

	summe									= kaufm(summe);	// kaufmännische Rundung des Ergebnisses
	document.Bestellung.gesamtsumme.value 	= summe;		// und ins Formular speichern
}
function calc_pre_gesamt() {
	menge = document.Vorbestellung.pre_anzahl_artikel.value;
	summe = 0;
	for( n=1; n<=menge; n++ ) {
		anzahl	= eval("document.Vorbestellung.pre_anzahl_artikel_"+n+".value");
		anzahl	= Number(anzahl);
		anzahl	= Math.abs(anzahl);
		preis	= eval("document.Vorbestellung.pre_ep_artikel_"+n+".value");
		preis	= parseFloat(preis);
		obj			= eval("document.Vorbestellung.pre_preis_artikel_"+n);
		obj.value	= kaufm(anzahl*preis);	// summe ins Feld schreiben
		summe+=(anzahl*preis);
//	alert( "Anzahl:"+anzahl+"\nPreis:"+preis+"\nSumme:"+summe);
	}
	summe		= kaufm(summe);	// kaufmännische Rundung des Ergebnisses
	document.Vorbestellung.pre_gesamtsumme.value = summe; 
}
function calc_pre_summary( zahl ) {
	anzahl	= eval("document.Vorbestellung.pre_anzahl_artikel_"+zahl+".value");
	anzahl	= Number(anzahl);
	anzahl	= Math.abs(anzahl);
	preis	= eval("document.Vorbestellung.pre_ep_artikel_"+zahl+".value");
	preis	= parseFloat(preis);

	if( isNaN(anzahl)==true )
	{
		alert("Der eingegebene Wert ist keine gültige Zahl!");
		obj = eval("document.Vorbestellung.pre_anzahl_artikel_"+zahl);
		obj.value="0";
		return false;
	}
	else if( isNaN(preis)==true )
	{
		alert(preis + " ist keine gültige Zahl!");
		return false;
	}
	else if( parseInt(anzahl) != anzahl ) {
		alert(anzahl + " ist keine gültige Ganzzahl!");
		eval("document.Vorbestellung.pre_anzahl_artikel_"+zahl).value=parseInt(anzahl); //automatisch durch ganze zahl ersetzen
	}

	summe		= parseFloat(anzahl * preis);
	summe		= kaufm(summe);	// kaufmännische Rundung des Ergebnisses

	obj			= eval("document.Vorbestellung.pre_anzahl_artikel_"+zahl);
	obj.value	= anzahl;	// berichtigte Anzahl (Zahlenwert) wieder ins Feld schreiben

	obj			= eval("document.Vorbestellung.pre_preis_artikel_"+zahl);
	obj.value	= summe;	// summe ins Feld schreiben
	
	calc_pre_gesamt();	// gesamtsumme aktualisieren
}

function checkEmail(emailStr) {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(emailStr)){
		return true;
	} else {
		return false;
	}
}

function gotoStep(nummer) {
	obj 			= document.Uebersicht;
	obj.sp.value	= nummer;
	obj.submit();
}

function back2order() {
	obj = document.Vorbestellung;
	obj.sp.value = "1";
	obj.submit();
}

function fetchRatesAndService() {
	document.Uebersicht.sp.value=document.Uebersicht.sp.value-1;
	document.Uebersicht.submit();
}

function fetchCounties( ) {
	document.Rechnungsanschrift.sp.value=document.Rechnungsanschrift.sp.value-1;
	document.Rechnungsanschrift.submit();
}

function skipSpace( obj ) {
	akt_zeichen = obj.value.substring( obj.value.length-1, obj.value.length );
	if( akt_zeichen == " " ) {
		obj.value = obj.value.substring( 0, obj.value.length-1 );
	}
//	alert( obj.value.substring( 0, obj.value.length-1 ) );
}
function getEltPageLeft(elt) {
	x = 0;
	if(document.getElementById && !document.all){
        // W3C DOM, IE5+ , NS6+
		if( elt.offsetParent  ) {
			while (elt.offsetParent != null) {
				x += elt.offsetLeft;
				if(elt && elt.offsetParent) {
					elt = elt.offsetParent;
				}
			}
	   		x += elt.offsetLeft;
		}
    } else if(document.all){
        // MSIE Layer
		if( elt.offsetParent ) {
			while (elt.offsetParent != null) {
				x += elt.offsetLeft;
				elt = elt.offsetParent;
			}
			x += elt.offsetLeft;
		}
    } else if(document.layers){
        // Netscape Layer (4.x)
		if( elt.pageX ) {
			x = elt.pageX;
		}
    }
	return x;
}

function getEltPageTop(elt) {
	y = 0;
	if(document.getElementById && !document.all){
        // W3C DOM, IE5+ , NS6+
		while (elt.offsetParent != null) {
			y += elt.offsetTop;
			if(elt && elt.offsetParent) {
				elt = elt.offsetParent;
			}
		}
		y += elt.offsetTop;
    } else if(document.all){
        // MSIE Layer
		while (elt.offsetParent != null) {
			y += elt.offsetTop;
			elt = elt.offsetParent;
	    }
		y += elt.offsetTop;
    } else if(document.layers){
        // Netscape Layer (4.x)
		x = elt.pageY;
    }
	return y;
}
function setOpacity(obj, opacity) {
  opacity = (opacity == 100)?99.999:opacity;
  // IE/Win
  obj.style.filter = "alpha(opacity:"+opacity+")";
  // Safari<1.2, Konqueror
  obj.style.KHTMLOpacity = opacity/100;
  // Older Mozilla and Firefox
  obj.style.MozOpacity = opacity/100;
  // Safari 1.2, newer Firefox and Mozilla, CSS3
  obj.style.opacity = opacity/100;
} 
function ItemDescriptionTemp() {
	text	= ItemDescriptionTemp.arguments[0];
	text	= '<table border=0 width=100% style="height:100%">'
			+ '<tr>'
			+ '<td width=100% style="height:100%" valign="middle">'
//			+ '<p align="justify">'
			+ text
//			+ '</p>'
			+ '</td>'
			+ '</tr>'
			+ '</table>';
	return text;
}
function showItemDescription() {
	calling_obj	= showItemDescription.arguments[0];
	text_id 	= showItemDescription.arguments[1];
	text		= unescape(ItemDescription[text_id]);
	
	
	pos_x = 0;
	pos_y = 0;
	if( 
		calling_obj != null 
	) {
		pos_x = getEltPageLeft( document.getElementById('Displayer') );
		pos_y = getEltPageTop( document.getElementById('Displayer') );
	}

	if( 
		text != null 
		&& 
		text != "" 
		&&
		text != "undefined"
	) {
		document.getElementById('ItemDescription').innerHTML		= ItemDescriptionTemp( text );
		setOpacity( document.getElementById('ItemDescription'), 90 );
		document.getElementById('ItemDescription').style.visibility	= 'visible';
		document.getElementById('ItemDescription').style.zIndex		= 100;
		document.getElementById('ItemDescription').style.left		= pos_x;
		document.getElementById('ItemDescription').style.top		= pos_y;
	}
}
function hideItemDescription() {
	document.getElementById('ItemDescription').style.visibility='hidden';
}
/*
	sprintf() function by:
	http://jan.moesen.nu/code/javascript/sprintf-and-printf-in-javascript/
*/
function sprintf()
{
	if (!arguments || arguments.length < 1 || !RegExp)
	{
		return false;
	}
	var str = arguments[0];
	var re = /([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X)(.*)/;
	var a = b = [], numSubstitutions = 0, numMatches = 0;
	while (a = re.exec(str))
	{
		var leftpart = a[1], pPad = a[2], pJustify = a[3], pMinLength = a[4];
		var pPrecision = a[5], pType = a[6], rightPart = a[7];
				
		//alert(a + '\n' + [a[0], leftpart, pPad, pJustify, pMinLength, pPrecision);

		numMatches++;
		if (pType == '%')
		{
			subst = '%';
		}
		else
		{
			numSubstitutions++;
			if (numSubstitutions >= arguments.length)
			{
				alert('Error! Not enough function arguments (' + (arguments.length - 1) + ', excluding the string)\nfor the number of substitution parameters in string (' + numSubstitutions + ' so far).');
			}
			var param = arguments[numSubstitutions];
			var pad = '';
			       if (pPad && pPad.substr(0,1) == "'") pad = leftpart.substr(1,1);
			  else if (pPad) pad = pPad;
			var justifyRight = true;
			       if (pJustify && pJustify === "-") justifyRight = false;
			var minLength = -1;
			       if (pMinLength) minLength = parseInt(pMinLength);
			var precision = -1;
			       if (pPrecision && pType == 'f') precision = parseInt(pPrecision.substring(1));
			var subst = param;
			       if (pType == 'b') subst = parseInt(param).toString(2);
			  else if (pType == 'c') subst = String.fromCharCode(parseInt(param));
			  else if (pType == 'd') subst = parseInt(param) ? parseInt(param) : 0;
			  else if (pType == 'u') subst = Math.abs(param);
			  else if (pType == 'f') subst = (precision > -1) ? Math.round(parseFloat(param) * Math.pow(10, precision)) / Math.pow(10, precision): parseFloat(param);
			  else if (pType == 'o') subst = parseInt(param).toString(8);
			  else if (pType == 's') subst = param;
			  else if (pType == 'x') subst = ('' + parseInt(param).toString(16)).toLowerCase();
			  else if (pType == 'X') subst = ('' + parseInt(param).toString(16)).toUpperCase();
		}
		str = leftpart + subst + rightPart;
	}
	return str;
}
-->