function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { if (args[i+1]) {nm=args[i+1]} else {nm=val.name;} if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' muss eine korrekte E-Mail Adresse enthalten.\n';
      } else if (test!='R') {
        if (isNaN(val)) errors+='- '+nm+' muss eine Zahl enthalten.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (val<min || max<val) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' hat keinen Inhalt.\n'; }
  } if (errors) alert('Sie haben folgendes vergessen:\n'+errors);
  document.MM_returnValue = (errors == '');
}

document.ORDER_done = false;

function ORDER(url) {
	if(!document.ORDER_done) {
		document.ORDER_done = true;
		location.href = url + "/storefront/runtime/?action=order";
	}
}

function Detail_moreImages(image) {
	var win = window.open('../image/'+image+'.html','weiterBilder','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=285,height=350')
	win.focus()
}

function Detail_help(file) {
	var win = window.open(file,'weiterBilder','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=no,width=282,height=372')
	win.focus()
}

function AGB_popup() {
	var win = window.open("../semistatic/agb_popup.html",'AGB','toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=610,height=500')
	win.focus()
}

function Cart_update(url) {
	var form = MM_findObj("Cart_form");
	form.attributes['action'].value = url + '/storefront/runtime/';
	form.action.value = "update_cart";
	form.submit()
}

function Cart_update_and_order(url) {
	if(document.Cart_count == 0) {
		return alert(unescape("Sie m%FCssen erst Artikel in Ihren Warenkorb legen, um mit der Bestellung fortzufahren."))
	}

	var form = MM_findObj("Cart_form");
	form.attributes['action'].value = url + '/storefront/runtime/';
	form.action.value = "process_cart";
	form.submit()
}

function Bestellschein_requiredProto() {}

var Bestellschein_required = new Bestellschein_requiredProto();
Bestellschein_required["a_name"]    = "Ihren Namen an.";
Bestellschein_required["a_vorname"]    = "Ihren Vornamen an.";
Bestellschein_required["a_strasse"] = "Ihre Strasse und Hausnummer an.";
Bestellschein_required["a_plz"]     = "Ihre Postleitzahl an.";
Bestellschein_required["a_ort"]     = "Ihren Wohnort an.";

function Bestellschein_submit() {
	var form   = MM_findObj("bestellschein");
	
	var submit = true;
	var errors = '';
	
	if (!form.zusatzbestellung.checked && parseFloat(document.Gesamtwert) < parseFloat(document.Unformed_Mindestbestellwert)) {
		errors += unescape("Der Mindestbestellwert betr%E4gt "+document.Mindestbestellwert+" Euro.\n");
		submit = false;
	}
	
	for(var field in Bestellschein_required) {
		if(!form[field].value) {
			errors += "Bitte geben Sie " + Bestellschein_required[field] + "\n";
			submit = false;
		}
	}
	
	if(form['a_plz'].value != "") {
		if (isNaN(form['a_plz'].value)) {
			errors += "Bitte geben Sie als Postleitzahl nur Zahlen an.\n";
			submit = false;
		}
	}
	
	if (!form.neukunde[0].checked && !form.neukunde[1].checked) {
		errors += "Bitte treffen sie eine Auswahl, ob sie Neukunde sind oder nicht.\n";
		submit = false;
	}
	
	var checked = 0;
	if (form.shipping_time.length) {
		for (var i = 0; i < form.shipping_time.length; i++) {
			if (form.shipping_time[i].checked)
				checked = 1;
		}
	} else {
		if (form.shipping_time.checked) checked = 1;
	}
	if (!checked) {
		errors += unescape("Bitte w%E4hlen Sie einen Auslieferungszeitraum.\n");
		submit = false;
	}

	if(form.a_email.value){
		var result = emailCheck(form.a_email.value);
		if(!result){
			submit = false;
		}
	}

	if(submit) {
		form.submit()
	} else {
		alert(errors);
	}
}

function Zahlung_submit() {
  var form = MM_findObj("Zahlweise_form");
  var error_pflicht = '';
  var fehler_pflicht = 0;
  var error = '';
  var fehler = 0;
  //Ueberpruefung der Lastschriftfelder
  if (form.zahlweise[2] && form.zahlweise[2].checked) {
    if (form.inhaber.value == "") {
      error_pflicht = error_pflicht + 'Kontoinhaber\n';
      fehler_pflicht = 1;
    }
    if (form.nummer.value == "") {
      error_pflicht = error_pflicht + 'Kontonummer\n';
      fehler_pflicht = 1;
    } else {
      if (!is_kontonummer(form.nummer.value)) {
        error = error + 'Kontonummer darf nur aus Ziffern bestehen und maximal 10-stellig sein\n';
        fehler = 1;
      }
    }
    if (form.blz.value == "") {
      error_pflicht = error_pflicht + 'Bankleitzahl\n';
      fehler_pflicht = 1;
    } else {
      if (!is_blz(form.blz.value)) {
        error = error + 'Bankleitzahl muss aus acht Ziffern bestehen\n';
        fehler = 1;
      }
    }
    if (form.bank.value == "") {
      error_pflicht = error_pflicht + 'Kreditinstitut\n';
      fehler_pflicht = 1;
    }
  }
  
  if (fehler_pflicht) {
    alert(unescape('Wenn Sie per Lastschrift bezahlen m%F6chten, m%FCssen noch folgende Pflichtfelder ausgef%FCllt werden:\n' + error_pflicht));
    if (fehler) {
      alert('Fehler:\n' + error);
    }
    return;
  } else {
     if (fehler) {
      alert('Fehler:\n' + error);
      return;
    }
  }
  
  if (fehler) {
    alert('Fehler:\n' + error);
    return;
  }
  
  if (form.agb.checked) {
    form.submit();
    return;
  } else { 
    alert(unescape('Um eine Bestellung durchzuf%FChren, m%FCssen Sie den AGB zustimmen.')); 
  }
}

function Frames_check() {
	if(location.href.indexOf("file:") == -1 && location.href.indexOf(":\\") == -1) {
		if(!parent.frames.main) {
			location.href = "/storefront/runtime/?main_frame=" + location.pathname + location.search
		}
	}
}


function katalog_bestellung() {
	var obj = MM_findObj("katbest");
	MM_validateForm('vorname','Vorname','R','name','Name','R','strasse','Strasse','R','plz','PLZ','R','email','E-Mail','RisEmail');
	if (document.MM_returnValue && obj) { obj.submit(); }
}

function emailCheck (emailStr) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
		alert("Email Adresse scheint inkorrekt zu sein (checken Sie @ und . )")
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]

	if(domain.indexOf('-') == 0){
		alert("Fehler bei E-Mail-Adresse ('-' nach @)");
	}

	if (user.match(userPat)==null) {
		alert("Problem beim Usernamen.")
		return false
	}

	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				alert("Fehler der IP Adresse!")
				return false
			}
		}
		return true
	}

	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		alert("Die Domain scheint nicht in Ordnung zu sein!")
		return false
	}

	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || 
		domArr[domArr.length-1].length>4) {
		alert("Sie muessen eine Domain angeben!")
		return false
	}

	if (len<2) {
		var errStr="Hostnamen angeben!"
		alert(errStr)
		return false
	}

	return true;
}

var toggleContainerInfoEffect = null;
function toggleContainerInfo() {
  if (toggleContainerInfoEffect != null && toggleContainerInfoEffect.state == 'running') return;
  var d = $('anleitung');
  if (d.style.display == "none") {
    $('toggleLayer').innerHTML = 'schlie&szlig;en';
    toggleContainerInfoEffect = Effect.SlideDown(d);
  } else {
    $('toggleLayer').innerHTML = '&ouml;ffnen';
    toggleContainerInfoEffect = Effect.SlideUp(d);
  }
}

function lastschrift() {
  $('inhaber').value = "";
  $('nummer').value = "";
  $('blz').value = "";
  $('bank').value = "";
  if ($("r_lastschrift")) {
    if ($("r_lastschrift").checked) {
      if (!$('lastschrift').visible()) {
        new Effect.SlideDown('lastschrift');
      }
    } else {
      if ($('lastschrift').visible()) {
        new Effect.SlideUp('lastschrift');
	  }
	}
  }
}

function gotoColor(obj) {
  if (!obj.selectedIndex) return;
  document.location.href = obj.options[obj.selectedIndex].value;
}

function toggleKategorie (id) {
  var o;
  if (o = $('subnavi_'+id)) {
    if (o.style.display == "none") {
      o.style.display = ''
    } else {
      o.style.display = 'none'
    }
  }
}

function dummy() {
  // do nothing
}

function memobestellen() {
	var f = document.forms['gutschein'];
	f.email.value = f["Rechnung - E-Mail"].value;
	f.submit();
}

function gutschein_bestellen() {
	var f = document.forms['gutschein'];
	f.email.value = f["Rechnung - E-Mail"].value;
	f.submit();
}

function back_to_category() {
  if (document.category_link != null)
    document.location.href = document.category_link;
}


function loadWarenkorb() {
  new Ajax.Updater("warenkorbStatusLayer", "/storefront/runtime/", {parameters: "action=warenkorb_layer"});
}

function add_to_cart(rose, stamm, container) {
  if (!container) container = '';
  new Ajax.Request("/storefront/runtime/", {parameters: "action=add_to_cart&product_id="+rose+"&stammrose="+stamm+"&container="+container});
}

function gotoKatSort(obj) {
  document.location.href = obj.options[obj.options.selectedIndex].value;
}