function stringReplace(originalString, findText, replaceText) {
	var pos = 0;
	var len = findText.length;

	pos = originalString.indexOf(findText);

	while (pos != -1) {
		preString = originalString.substring(0, pos);
		postString = originalString.substring(pos + len, originalString.length);
		originalString = preString + replaceText + postString;
		pos = originalString.indexOf(findText);
	}

	return originalString;

}

function isEmptyString(text) {
	var strTrim;

	strTrim = stringReplace(text, new String(" "), new String(""));

	if(strTrim.length == 0) {
		return true;
	}
	else
	{
		return false;
	}
}

function isEmail(str) {
  var supported = 0;

  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);

    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported)
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");

  return (!r1.test(str) && r2.test(str));
}

function checkEmail (textfield) {
    if(!isEmail (textfield.value)) {
		alert ("Bitte geben Sie eine giltige Emailadresse ein. Es werde benützt für die Bestätigung Ihre Bestellung.");
		return false;
	}
		return true;
}

function checkAmount (textObj)
{
   var newValue = textObj.value;
   var decAmount = "";
   var dolAmount = "";
   var decFlag = false;
   var aChar = "";

   // Ignore all but digits and decimal points.
   for(i=0; i < newValue.length; i++) 
   {
       aChar = newValue.substring(i,i+1);

       if(aChar >= "0" && aChar <= "9")
       {
       }
	else
	{
		return false;
	}
   }

   return true;
}

function checkCreditCard()
{
	var blnOK;
	var strErrorMessage;

	blnOK = true;
	strErrorMessage = 'Die folgende Daten sind verpflichtet aber haben keine Daten:\n\n';

	if (isEmptyString(formCreditCardEnter.txtOrderId.value))
	{
		blnOK = false;
		strErrorMessage = strErrorMessage + "Bestellungnummer.\n";
	}
	if (isEmptyString(formCreditCardEnter.txtOrderBedrag.value))
	{
		blnOK = false;
		strErrorMessage = strErrorMessage + "Betrag.\n";
	}

	if (blnOK == true)
	{
		if (checkAmount(formCreditCardEnter.txtOrderBedrag) == true)
		{
			return true;
		}
		else
		{
			strErrorMessage = 'Der Betrag muß eingeführt werden in eurocents ohne die Dezimalen. Zum Beispiel, geben Sie 5600 wenn der Betrag EUR 56,00 ist.\n';
			alert(strErrorMessage);

			return false;
		}
	}
	else
	{
		strErrorMessage = strErrorMessage + '\nBitte geben Sie die verpflichte Daten ein.\n';
		alert(strErrorMessage);
		return false;
	}
	return false;
}

function checkPaymentAndDeliveryMethod()
{
	var blnOK;
	var strErrorMessage;

	blnOK = true;
	strErrorMessage = '';

	if (frmCheckoutShippingPaymentMethod.radioPaymentMethod.length > 5)
	{
		if (frmCheckoutShippingPaymentMethod.radioPaymentMethod[5].checked && frmCheckoutShippingPaymentMethod.radioExtraServices[0].checked == false)
		{
			blnOK = false;
			strErrorMessage = strErrorMessage + "Bestellungen per Nachnahme können nicht kombiniert werden mit extra Dienste. Bitte wählen Sie 'Keine extra Dienste'.\n";
		}
	}
	
	if (blnOK == true)
	{
		return true;
	}
	else
	{
		alert(strErrorMessage);
		return false;
	}
}

function checkCustomerFields(textEmail)
{
	var strErrorMessage;

	blnOK = true;
	strErrorMessage = 'Die folgende Daten sind verpflichtet aber nicht eingegeben:\n\n';

	if (isEmptyString(frmCheckoutAddress.txtNameCustomer.value))
	{
		blnOK = false;
		strErrorMessage = strErrorMessage + "Name\n";
	}	
	if (isEmptyString(frmCheckoutAddress.txtAddress.value))
	{
		blnOK = false;
		strErrorMessage = strErrorMessage + "Adresse\n";
	}
	if (isEmptyString(frmCheckoutAddress.txtHouseNumber.value))
	{
		blnOK = false;
		strErrorMessage = strErrorMessage + "Hausnummer\n";
	}
	if (isEmptyString(frmCheckoutAddress.txtPostalCode.value))
	{
		blnOK = false;
		strErrorMessage = strErrorMessage + "Postleitzahl\n";
	}
	if (isEmptyString(frmCheckoutAddress.txtTown.value))
	{
		blnOK = false;
		strErrorMessage = strErrorMessage + "Wohnort\n";
	}
	if (isEmptyString(frmCheckoutAddress.txtEmail.value))
	{
		strErrorMessage = strErrorMessage + "Email\n";
		blnOK = false;
	}
	if (blnOK == true)
	{
		if (checkEmail(textEmail) == true)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	else
	{
		strErrorMessage = strErrorMessage + '\nBitte geben Sie diese Daten ein bevor Sie weiter gehen.\n'
		alert(strErrorMessage);
		return false;
	}
}

function checkWorkshopFields(textEmail)
{
	var blnOK;
	var strErrorMessage;

	blnOK = true;

	strErrorMessage = 'Die folgende Daten sind verpflichtet aber nicht eingegeben:\n\n';

	if (isEmptyString(frmWorkshopEnter.txtName.value))
	{
		blnOK = false;

		strErrorMessage = strErrorMessage + "Name\n";
	}	

	if (isEmptyString(frmWorkshopEnter.txtPhone.value))
	{
		blnOK = false;

		strErrorMessage = strErrorMessage + "Telefon\n";
	}	

	if (isEmptyString(frmWorkshopEnter.txtEmail.value))
	{
		strErrorMessage = strErrorMessage + "Email\n";
		blnOK = false;
	}

	if (blnOK == true)
	{
		if (checkEmail(textEmail) == true)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	else
	{
		strErrorMessage = strErrorMessage + '\nBitte geben Sie diese Daten ein bevor Sie weiter gehen.\n'
		alert(strErrorMessage);
		return false;
	}
}
function checkControlConfirm()
{
	var blnOK;
	var strErrorMessage;

	blnOK = true;

	strErrorMessage = 'Sie müssen die Allgemeine Geschäftsbedingungen akseptieren zur Bestätigung Ihrer Bestellung.\n\n';

	if (frmCheckoutControlConfirm.chkAcceptGeneralTerms.checked == false)
	{
		blnOK = false;

	}	

	if (blnOK == true)
	{
		return true;
	}
	else
	{
		alert(strErrorMessage);
		return false;
	}
}


