function checkEMail(fld) {
	if ((fld.value.indexOf("@") < 1 || fld.value.indexOf(".") < 0) || (fld.value == "")) {
		alert("Bitte geben Sie eine gültige Email-Adresse ein!");
		fld.focus();
		fld.select();
		return false;
	} else {
		return true;
	}
}

function showHiddenContact(fld) {
	var v = fld.options[fld.selectedIndex].value;
	if (v == "bestellung") {
		document.getElementById("trPurchasedAt").style.display = "none";
		document.getElementById("trPurchasedDt").style.display = "";
	} else if (v == "support") {
		document.getElementById("trPurchasedAt").style.display = "";
		document.getElementById("trPurchasedDt").style.display = "";
	} else {
		document.getElementById("trPurchasedAt").style.display = "none";
		document.getElementById("trPurchasedDt").style.display = "none";
	}
}

function validateContact(form) {
	if (form.sendto.options[form.sendto.selectedIndex].value == "") {
		alert("Bitte wählen Sie eine Anfrage-Art aus.");
		form.sendto.focus();
		return false;
	}
	if (form.subject.value == "") {
		alert("Bitte geben Sie einen Betreff ein.");
		form.subject.focus();
		return false;
	}
	return checkEMail(form.FromEmail);
}

function switchVAVisibility() {

	if (document.forms[1].VAVisibility.value == "1") {
		flag = false;
		document.forms[1].VAVisibility.value = "0";
	} else {
		flag = true;
		document.forms[1].VAVisibility.value = "1";
	}

	if (document.getElementById) {
	// W3C compatible
		if (flag == false) {
			document.getElementById("VA").style.display = "none" ;
			document.getElementById("submit1").style.display = "" ;
		} else {
			document.getElementById("VA").style.display = "" ;
			document.getElementById("submit1").style.display = "none" ;
		}
	} else if (document.all) {
	// IE4 und  IE5 compatible
		if (flag == false) {
			document.all["VA"].style.display = "none" ;
			document.all["submit1"].style.display = "" ;
		} else {
			document.all["VA"].style.display = "" ;
			document.all["submit1"].style.display = "none" ;
		}
	}
}

function validateTxtFields(fieldarray, fieldnamearray) {
	var msg = "";
	for (i=0; i < fieldarray.length; i++) {
		if (document.forms[1].elements[fieldarray[i]].value == "") {
			msg += fieldnamearray[i] + "\n";
		}
	}
	if (msg != "") {
		alert("Bitte füllen Sie folgende (Pflicht-)Felder aus:\n\n" + msg);
		return false;
	} else {
		return true;
	}
}

function validateOrderAddress() {
	var fields = new Array("Name", "Vorname", "Strasse", "PLZ", "Ort");
	var fieldnames = new Array("Name", "Vorname", "Strasse", "PLZ", "Ort");
	if (document.forms["order"].AVA[1].checked == true) {
		fieldsVA = new Array("VAName", "VAVorname", "VAStrasse", "VAPLZ", "VAOrt");
		fieldnamesVA = new Array("Name (Versandanschrift)", "Vorname (Versandanschrift)", "Strasse (Versandanschrift)", "PLZ (Versandanschrift)", "Ort (Versandanschrift)");
		fields = fields.concat(fieldsVA);
		fieldnames = fieldnames.concat(fieldnamesVA);
	}
	if (validateTxtFields(fields, fieldnames) == true)
		return validatePackstation(fields);

}

function validatePackstation(fieldarray) {
	for (i=0; i < fieldarray.length; i++) {
		if (document.forms[1].elements[fieldarray[i]].value.toLowerCase().indexOf("packstation") > -1) {
			alert("Bitte beachten Sie, dass der Versand an eine Packstation NICHT möglich ist!");
			return false;
		}
	}
	return true;
}

function validateOrderPayment() {
	var l = document.forms[1].Versandart.length;
	if(typeof(l) != "undefined") {
		for (i=0; i < document.forms[1].Versandart.length; i++) {
			if (document.forms[1].Versandart[i].checked == true)
				return true;
		}
		alert("Bitte wählen Sie eine Zahlungsart aus.");
		return false;
	} else {
		return true;
	}
}

function reloadStep(s) {
	document.forms[1].step.value = s;
	document.forms[1].submit();
}

function validateOrderConfirmation() {
	if (document.forms[1].AGBread.checked == true)
		return true;
	alert("Bitte bestätigen Sie, dass Sie unsere Kundeninformationen inkl. der Liefer-\nund Bestellbedingungen, sowie der Datenschutzerklärung gelesen und akzeptiert haben.");
	return false;
}

function validateLogin() {
	if (!checkEMail(document.forms['login'].username))
		return false;
	if (document.forms['login'].pwd.value == "") {
		alert("Bitte geben Sie ein Passwort ein!");
		document.forms['login'].pwd.focus();
		return false;
	}
	return true;
}

function validateChangePwd() {
	if ((document.forms[1].pwdnew.value.length > 4) && (document.forms[1].pwdnew.value == document.forms[1].pwdnew2.value)) {
		return true;
	} else {
		alert("Bitte korrigieren Sie Ihre Eingabe.\nEntweder hat Ihr gewähltes Passwort weniger als 5 Zeichen, oder Sie haben sich bei der Passwort-Wiederholung vertippt.");
		return false;
	}
}

function validateNewUser() {
	var fields = new Array("nachname", "vorname", "strasse", "plz", "ort");
	var fieldnames = new Array("Nachname", "Vorname", "Strasse", "PLZ", "Ort");
	t = validateTxtFields(fields, fieldnames);
	e = checkEMail(document.forms[1].email);
	if ((document.forms[1].pwd.value.length > 4) && (document.forms[1].pwd.value == document.forms[1].pwd2.value)) {
		p = true;
	} else {
		alert("Bitte korrigieren Sie Ihr gewähltes Passwort.\nEntweder hat es weniger als 5 Zeichen, oder Sie haben sich bei der Passwort-Wiederholung vertippt.");
		p = false;
	}
	if ((t == true) && (e == true) && (p == true))
		return true;
	else
		return false;
}

function validateEditUser() {
	var fields = new Array("nachname", "vorname");
	var fieldnames = new Array("Nachname", "Vorname");
	return validateTxtFields(fields, fieldnames);
}

function validateSearchQuery() {
	if (document.forms["ftsearch"].query.value == "") {
		alert("Bitte geben Sie einen Suchbegriff ein.");
		return false;
	} else {
		return true;
	}
}

function writeMultiValues(fld) {
	var selFld = fld.name;
	var i = selFld.indexOf("_")+1;
	var txtFld = selFld.substr(i, selFld.length-i);
	var n = fld.length;
	var val = "";
	for(i=0; i<n; i++) {
		if(fld.options[i].selected == true)
			val = val + fld.options[i].value + ";";
	}
	if(val != "")
		val = val.substr(0, val.length-1);
	document.forms[0].elements[txtFld].value = val;
}

function writeMultiChecks(fldname) {
	var val = "";
	var chkfld = "chk_" + fldname + "_";
	var n = chkfld.length;
	for (var k=0; k<document.forms[0].length; ++k) {
		if ((document.forms[0].elements[k].name.substr(0, n) == chkfld) && (document.forms[0].elements[k].checked == true))
			val = val + document.forms[0].elements[k].value + ";";
	}
	if(val != "")
		val = val.substr(0, val.length-1);
	document.forms[0].elements[fldname].value = val;
}

function selectAll() {
	for(var i=0; i<document.forms[0].length; ++i) {
		if (document.forms[0].elements[i].type == "checkbox" && document.forms[0].elements[i].name.substr(0, 4) == "chk_")
			document.forms[0].elements[i].checked = true;
	}
}

function setOrder(oc, od) {
	document.forms[1].oc.value = oc;
	document.forms[1].od.value = od;
	document.forms[1].action.value = "list";
	document.forms[1].submit();
}

function setOrderAdmin(oc, od) {
	document.forms[0].oc.value = oc;
	document.forms[0].od.value = od;
	document.forms[0].action.value = "list";
	document.forms[0].submit();
}

function setProductSelection() {
	var frm = document.forms[0];
	var mtype = "";
	for (i=0; i<frm.mtype.length; i++)
		if (frm.mtype[i].checked)
			mtype = frm.mtype[i].value;
	var s = frm.elements[mtype].value;
	s = s.substr(0, s.length-1);
	var sel = s.split("|");
	var v;
	var n = frm.main.length;
	for (i=0; i<n; i++)
		frm.main.options[frm.main.length-1] = null;
	var o = new Option("bitte wählen...", "");
	frm.main.options[0] = o;
	for (i=0; i<sel.length; i++) {
		v = sel[i].split(":");
		o = new Option(v[1], v[0]);
		frm.main.options[frm.main.length] = o;
	}
}

function reloadSubSelection() {
	var frm = document.forms[0];
	var mtype = "";
	for (i=0; i<frm.mtype.length; i++)
		if (frm.mtype[i].checked)
			mtype = frm.mtype[i].value;
	var main = frm.main.options[frm.main.selectedIndex].value;
	parent.dataframe.location.href = "./abar_prod_subselect.php?mtype="+mtype+"&main="+main;

}

function addEngine() {
  if ((typeof window.sidebar == "object") && (typeof
  window.sidebar.addSearchEngine == "function")) {
    window.sidebar.addSearchEngine(
      "http://www.mikes-modellwelt.de/mmw.src",
      "http://www.mikes-modellwelt.de/mmw.gif",
      "Mikes Modellwelt",
      "Shopping" );
  } else {
    alert("Die Suche konnte nicht installiert werden.");
  }
}

function checkCartOnetimeProduct(fld, maxAmount) {
	if (fld.value > maxAmount) {
		fld.value = maxAmount;
		alert("Restposten! Dieser Artikel kann nur " + maxAmount + " Mal bestellt werden!");
	}
}

function highlightThis(e){
	e.style.backgroundColor = "rgb(214,220,255)";
}
function delightThis(e){
	e.style.backgroundColor = "rgb(255,255,255)";
}

var scroll_var = 0;
function scroll(count_elements){
	if (scroll_var < count_elements) {
		//Effect.SlideUp("sp_" + scroll_var++);
		Element.hide("sp_" + scroll_var++);
	} else {
		for(i = 0; i < count_elements; i++) {
			Element.show("sp_" + i);
		}
		scroll_var = 0;
	}
	window.setTimeout("scroll(" + count_elements + ")", 1500)
}

// DatePicker:
var docHTML ;
var dateField ;
var arrayDays ;
var arrayMonth ;
var posX, posY;
var layerIDGlobal ;

function initCalendar() {
	if (document.captureEvents) document.captureEvents(Event.MOUSEUP) ;
	document.onmouseup = initCalendarCoordinates ;
}

function initCalendarCoordinates (e) {
	// IE4
	if (document.all) {
		if (navigator.userAgent.indexOf('MSIE 4')>0) {
		// für IE 4
			posX = event.x ;
			posY = event.y ;
		} else {
		// für IE 5 und höher
			posX = event.x + document.body.scrollLeft ;
			posY = event.y + document.body.scrollTop ;
		};
	}
	else {
	// Netscape und W3C compatible
		posX = parseInt(e.pageX+10) ;
		posY = parseInt(e.pageY) ;
	}
}

function showCalendar(layerID, sField) {
// Der Kalender wird aktiviert oder deaktiviert
	layerIDGlobal = layerID ;
	dateField = sField ;
	if (document.getElementById) {
	// W3C compatible
		if (document.getElementById(layerID).style.visibility == "visible") document.getElementById(layerID).style.visibility = "hidden" ;
		else {
			document.getElementById(layerID).style.visibility = "visible" ;
			document.getElementById(layerID).style.left = parseInt(posX)+10 ;
			document.getElementById(layerID).style.top = parseInt(posY);
		}
	}
	else if (document.layers) {
	// Netscape compatible
		if (document.layers[layerID].visibility == "visible" | document.layers[layerID].visibility == "show") document.layers[layerID].visibility = "hide" ;
		else {
			document.layers[layerID].visibility = "show" ;
			document.layers[layerID].left = posX ;
			document.layers[layerID].top = posY ;
		}
	}
	else if (document.all) {
	// IE4 und  IE5 compatible
		if (document.all[layerID].style.visibility == "visible") document.all[layerID].style.visibility = "hidden" ;
		else {
			document.all[layerID].style.visibility = "visible" ;
			document.all[layerID].style.left = parseInt(posX)+10 ;
			document.all[layerID].style.top = parseInt(posY) ;
		}
	}
}

function drawCalendar(cYear, cMonth) {
// Der Kalender wird gezeichnet
	var myMonth = buildCalendar(cYear, cMonth)
	var showMonth = arrayMonth[parseInt(cMonth)] ;
	docHTML = "<table>" ;
	docHTML = docHTML + "<tr>" ;
	docHTML = docHTML + "<td class=cellTable><a class=arrowTable href='' onclick='changeCalendar(" + parseInt(cYear-1) + ", " + parseInt(cMonth) + ") ; return false ; '><<</a></td>" ;
	docHTML = docHTML + "<td class=cellTable><a class=arrowTable href='' onclick='changeCalendar(" + (cMonth==0 ? parseInt(cYear-1) : parseInt(cYear)) + ", " + (cMonth==0 ? 11 : parseInt(cMonth-1)) + ") ; return false ; '><</a></td>" ;
	docHTML = docHTML + "<td colspan=3 align=center><font class=headingText>" + showMonth + " " + cYear + "</font></td>" ;
	docHTML = docHTML + "<td class=cellTable><a class=arrowTable href='' onclick='changeCalendar(" + (cMonth==11 ? parseInt(cYear+1) : parseInt(cYear)) + ", " + (cMonth==11 ? 0 : parseInt(cMonth+1)) + ") ; return false ; '>></a></td>" ;
	docHTML = docHTML + "<td class=cellTable><a class=arrowTable href='' onclick='changeCalendar(" + parseInt(cYear+1) + ", " + parseInt(cMonth) + ") ; return false ; '>>></a></td>" ;
	docHTML = docHTML + "</tr>" ;
	docHTML = docHTML + "<tr>" ;
	for (w=0; w<7; w++) {
		docHTML = docHTML + "<td><font class=headingDays>" + myMonth[0][w] + "</font></td>" ;
	}
	docHTML = docHTML + "</tr>" ;
	for (w=1; w<7; w++) {
		docHTML = docHTML + "<tr>" ;
		for (d=0; d<7; d++) {
			docHTML = docHTML + "<td class=cellTable>" ;
			if ( !isNaN(myMonth[w][d]) ) {
				docHTML = docHTML + "<a class=bodyDays href='' onclick='clickCalendar(" + myMonth[w][d] + ", " + parseInt(cMonth+1) + ", " + cYear + ") ; return false ; '>" + myMonth[w][d] + "</a>" ;
			}
			else docHTML = docHTML + "<font class=bodyDays>&nbsp;</font>" ;
			docHTML = docHTML + "</td>" ;
		}
		docHTML = docHTML + "</tr>" ;
	}
	docHTML = docHTML + "</table>" ;
	return docHTML;
}

function buildCalendar(aYear, aMonth) {
// Diese Funktion bestimmt eine Monats-Matrix
	var tMonth = new Array() ;
	var tDate1 = new Date(aYear, aMonth, 1) ;
	var tDate28 = new Date(aYear, aMonth, 28) ;
	var tDate29 = new Date(aYear, aMonth, 29) ;
	var tDate30 = new Date(aYear, aMonth, 30) ;
	var tDate31 = new Date(aYear, aMonth, 31) ;
	var tFirstDay = tDate1.getDay() ;
	var tDays = 0 ;
	if ( tDate31.getMonth() == tDate1.getMonth() ) tDays = tDate31.getDate() ;
	else if ( tDate30.getMonth() == tDate1.getMonth() ) tDays = tDate30.getDate() ;
	else if ( tDate29.getMonth() == tDate1.getMonth() ) tDays = tDate29.getDate() ;
	else if ( tDate28.getMonth() == tDate1.getMonth() ) tDays = tDate28.getDate() ;
	var tVar = 1 ;

	tMonth[0] = arrayDays ;
	tMonth[1] = new Array(7) ;
	tMonth[2] = new Array(7) ;
	tMonth[3] = new Array(7) ;
	tMonth[4] = new Array(7) ;
	tMonth[5] = new Array(7) ;
	tMonth[6] = new Array(7) ;

	if (tFirstDay == 0) {
		tMonth[1][6] = tVar ;
		tVar++ ;
	}
	else {
		for (d=tFirstDay-1; d<7; d++) {
			tMonth[1][d] = tVar ;
			tVar++ ;
		}
	}
	for (w=2; w<7; w++) {
		for (d=0; d<7; d++) {
			if (tVar <= tDays) {
				tMonth[w][d] = tVar ;
				tVar++ ;
			}
		}
	}
	return tMonth ;

}

function clickCalendar(sDay, sMonth, sYear) {
// Ein bestimmtes Datum wird ausgewählt
	if (sDay < 10) sDay = "0" + sDay ;
	if (sMonth < 10) sMonth = "0" + sMonth ;
	document.forms[0].elements[dateField].value = sDay + "." + sMonth + "." + sYear ;
	showCalendar(layerIDGlobal, "") ;
}

function changeCalendar(nYear, nMonth) {
// Monat oder Jahr des Kalenders werden geändert
	if (document.getElementById) {
	// W3C compatible
		drawCalendar(nYear, nMonth) ;
		document.getElementById(layerIDGlobal).innerHTML = docHTML ;
	}
	else if (document.layers) {
	// Netscape compatible
		document.layers["DatePicker"].document.open() ;
		drawCalendar(nYear, nMonth) ;
		document.write("<div class='layerBackground'>")
		document.write(docHTML) ;
		document.write("</div>")
		document.layers["DatePicker"].document.close() ;
	}
	else if (document.all) {
	// IE4 und  IE5 compatible
		drawCalendar(nYear, nMonth) ;
		document.all["DatePicker"].innerHTML = docHTML ;
	}
}