
///////////////////////////////////////
///	Allgemein						///
///////////////////////////////////////

arrEvents = new Array();
arrEvents['onload'] = new Array();
arrEvents['onunload'] = new Array();

AttachEvent = function(strEvent,strFunction) {

	var intIndex = arrEvents[strEvent].length;
	arrEvents[strEvent][intIndex] = strFunction;
	
}

callOnLoad = function() {
	for(var i=0;i<arrEvents['onload'].length;i++) {
	
		if(typeof(window[arrEvents['onload'][i]]) == 'function') {
			eval(arrEvents['onload'][i]+'();')
		}
	}
}

callOnUnload = function() {
	for(var i=0;i<arrEvents['onunload'].length;i++) {
	
		if(typeof(window[arrEvents['onunload'][i]]) == 'function') {
			eval(arrEvents['onunload'][i]+'();')
		}
	}
}

onload = callOnLoad;
onunload = callOnUnload;


setPageHeight = function() {
	var objNaviBar = document.getElementById('divNaviBar'),
		objBasket  = document.getElementById('divBasket'),
		objContent = document.getElementById('divContent'),
		objNavi    = document.getElementById('divNavi');

		intPageHeight = (objContent.offsetHeight > objNavi.offsetHeight)?  objContent.offsetHeight : objNavi.offsetHeight;
		intPageHeight = intPageHeight + 100;
		
		objNaviBar.style.height = intPageHeight + 'px';
		objBasket.style.height  = intPageHeight + 'px';

	/*		
	if(document.all) {

		objDoc = (document.documentElement)? document.documentElement : document.body;
		intPageHeight = (objDoc.scrollTop + objDoc.clientHeight - 115);
		
		objNaviBar.style.height = intPageHeight + 'px';
		objBasket.style.height = intPageHeight + 'px';

	} else {

		intPageHeight = (window.innerHeight + window.pageYOffset - 115);
		
		objNaviBar.style.height = intPageHeight + 'px';
		objBasket.style.height = intPageHeight + 'px';

	}
	
	setTimeout('setPageHeight()',100);
	*/
	
}

AttachEvent('onload','setPageHeight');


setContentHeight = function(obj) {

	var obj        = document.getElementById(obj),
		objContent = document.getElementById('divContent'),
		intHeight  = obj.offsetTop + obj.offsetHeight;
		
	if(intHeight > objContent.offsetHeight) {	
		objContent.style.height = intHeight + 'px';
	}
	
	setPageHeight();
}


// Inhalte drucken
printPageContent = function(queryString) {

	if(queryString && queryString != '') window.open('/service/print.cfm?' + queryString,'print','width=650px;');
	return false;
}


// Validierung

validateEmail = function(strAddress) {
	var vReturn = true;
	
	vReturn = (strAddress.indexOf("@") <= 0)? false : true;
	vReturn = (strAddress.indexOf(".") < 0)? false : true;
	
	return vReturn
}

validateAGB = function(elm,mode) {
	var vReturn = true,
		agbYN   = document.getElementById(elm).checked;
	
	if(!agbYN) {
		alert("Bitte lesen Sie zuerst unsere Allgemeinen Geschäftsbedingungen \nund stimmen Sie diesen zu indem Sie die Box anwählen.");
		vReturn = false;
	
	} else if(mode == 'datatrans') {
		objDatatrans = document.getElementById('frmDatatrans');
		 
		objDatatrans.height = document.getElementById('divContent').offsetHeight;
		objDatatrans.width = document.getElementById('divContent').offsetWidth;
		
		document.getElementById('divAddressInfo').style.display = 'none';
		document.getElementById('divArticleOverview').style.display = 'none';
		document.getElementById('btnGoStep4').style.display = 'none';
		
		
		objDatatrans.style.display = 'block';
	}
	
	return vReturn;
}


checkNumeric = function(elm,strType) {

	var strErrorMessage = "Bitte geben Sie eine gültige " + strType + " ein.";

	if(isNaN(elm.value.replace(/ /g,''))) alert(strErrorMessage);
}


inpValidate = function(objForm) {
	var vReturn = true,
		strMessage = "",
		strEmail = objForm.strEmail.value;
	
	if(strEmail == '' || !validateEmail(strEmail)) {
		strMessage = "Bitte geben Sie eine korrekte E-Mail-Adresse ein.";
		objForm.strEmail.focus();
		vReturn = false;			
	}
	
	if(!vReturn) alert(strMessage);
	return vReturn;

}

msgMaxAmount = function(intAmount) {
	
	var strMessage = "Die maximal bestellbare Anzahl wurde überschritten!";
	alert(strMessage);
}

//leerzeichen wegschneiden
trim = function(str) {

	while (str.substring(0,1) == ' ') {
		str = str.substring(1, str.length);
	}

	while (str.substring(str.length-1, str.length) == ' ') {
		str = str.substring(0,str.length-1);
	}

	return str;
}

///////////////////////////////////////
///	Produkte						///
///////////////////////////////////////

var actDiv,actElm,actThumb;

handleSubContent = function(elm,divId) {

	elm.className = (elm.className == 'small')? 'small_active' : 'active';
	if (window.name != 'print') elm.blur();
	
	if (actElm && actElm != elm) {	
		actElm.className = (actElm.className == 'small_active')? 'small' : '';
	}
	
	actElm = elm;
	if (divId != null) switchFloatingDiv(divId);
		
	return false;
}

switchFloatingDiv = function(id) {
	var id = 'div' + id;
	toggleFloatingDiv(id,1);
	
	if (actDiv && actDiv != id) {
		toggleFloatingDiv(actDiv,0);
	} 
	actDiv = id;
}

toggleFloatingDiv = function(id,status,top) {
	var objLyr    = document.getElementById(id),
		objParent = document.getElementById(top);
	
	if(top) objLyr.style.top = 120 + objParent.offsetTop + 'px';

	objLyr.style.display = (status == 1)? 'block' : 'none';
}

handleArticleImages = function(elm,nr,imgName,showImgYN,parent) {
	var objParent 		= document.getElementById(parent);
	
	elm.onclick = (showImgYN)? function() {toggleFloatingDiv('divImageShow'+nr,1);return false;} : function() {return false;};

	elm.style.border = '1px solid #CB0D0D';
	if (actThumb && actThumb != elm) {
		actThumb.style.border = '1px solid #C6C6C6';
	}
	actThumb = elm;
	
	objParent.src = '/img/produkte/medium/'  + imgName;
	objParent.parentNode.onclick = (showImgYN)? function() {toggleFloatingDiv('divImageShow'+nr,1);return false;} : function() {return false;};
	
	if(showImgYN) {
		document.getElementById('imgLupe').style.visibility = 'visible';
		document.getElementById('aProd').style.cursor = 'pointer';
	} else {
		document.getElementById('imgLupe').style.visibility = 'hidden';
		document.getElementById('aProd').style.cursor = 'default';
	}
}


///////////////////////////////////////
///	Produktesuche					///
///////////////////////////////////////

searchSimple = function(objForm) {
	var strSearch = objForm.strSearch.value,
		success = true;
	/*
	if(strSearch.length > 0) {
		//alert('einfache suche. suchbegriff: ' + objForm.strSearch.value);
		success = true;
	} else {
		alert('Bitte .');
	}
	*/
	
	return success;
}

///////////////////////////////////////
///	Bestellung   					///
///////////////////////////////////////

setVerticalPos = function(strCurrent,strNeighbour,intDistance) {

	var objCurrent = document.getElementById(strCurrent),
		objNeighbour = document.getElementById(strNeighbour),
		intDist = (intDistance)? intDistance : 35;

	if(objCurrent && objNeighbour) {
		objCurrent.style.top = objNeighbour.offsetTop + objNeighbour.offsetHeight + intDist + 'px';		
	}
}


createForm = function(arrFields) {

	var vTemp;
	var objForm = document.createElement('FORM');
	
	document.body.appendChild(objForm);
	
	for(i=0;i<arrFields.length;i++) {
		vTemp = document.createElement('INPUT');
		vTemp.name = arrFields[i];
		vTemp.id = arrFields[i];
		objForm.appendChild(vTemp);
	}
	
	objForm.style.display = 'none';
	
	return objForm;
	
}


addBasket = function(elm,maxamount,page,edu,leadtime,stock) {
	
	var objArt = document.getElementById(elm),
		arrFields = new Array('addArtNr','addAmount','maxAmount','leadtime','stock'),
		objForm = createForm(arrFields);
	
	objForm.method = 'post';
	objForm.action = document.location.href;
	if(page) objForm.action = objForm.action.split('?')[0] += '?search&page=' + page;
	
	objArt.value = parseInt(objArt.value);
	objArt.value = (objArt.value <= 0 )? objArt.value/-1 : objArt.value;
	objArt.value = (isNaN(objArt.value) || objArt.value == 0)? 1 : objArt.value;
	
	objForm.addArtNr.value = elm.split("_")[1];
	objForm.addAmount.value = objArt.value;
	objForm.maxAmount.value = maxamount;
	objForm.leadtime.value = leadtime;
	objForm.stock.value = stock;
	
	if(edu) {
		var answer = confirm ("Diesen Artikel dürfen Sie nur kaufen wenn Sie Student, Lehrperson, Dozent oder Schüler sind. \n\nWenn Sie eine der Kriterien erfüllen, dann klicken Sie auf OK, ansonsten auf Abbrechen\n\nDer Auftrag wird beim Bestellungseingang auf Korrektheit überprüft.");
		if (!answer){
			objForm = null;
			return false;
		} 
	}
	if(maxamount > 0 && objArt.value > maxamount) {
		objArt.value = maxamount;
		alert("Die maximal bestellbare Anzahl ist: " + maxamount);
	} else if(leadtime == "EOL" && objArt.value > stock) {		
		objArt.value = stock;
		alert("Die maximal bestellbare Anzahl ist: " + stock);
	} else objForm.submit();
	document.body.removeChild(objForm);
	return false;
	
}

updateBasket = function(elm,maxamount,leadtime,stock) {

	var objArt = document.getElementById(elm),
		arrFields = new Array('updArtNr','updAmount'),
		objForm = createForm(arrFields);
	
	objForm.method = 'post';
	objForm.action = document.location.href;
	
	objArt.value = parseInt(objArt.value);
	objArt.value = (objArt.value < 0 )? objArt.value/-1 : objArt.value;
	objArt.value = (isNaN(objArt.value))? 1 : objArt.value;
	
	objForm.updArtNr.value = elm.split("_")[1];	
	objForm.updAmount.value = objArt.value;
	
	if(maxamount > 0 && objArt.value > maxamount) {
		objArt.value = maxamount;
		alert("Die maximal bestellbare Anzahl ist: " + maxamount);
	} else if(leadtime == "EOL" && objArt.value > stock) {		
		objArt.value = stock;
		alert("Die maximal bestellbare Anzahl ist: " + stock);
	} else objForm.submit();
	
	objForm = null;
	
}

deleteBasket = function(elm) {
	
	var objArt = document.getElementById(elm);
	
	objArt.value = 0;
	updateBasket(elm);
}


// Addressinformationen

searchCity = function(zip,city) {

	var objCity = document.getElementsByName(city)[0],
		vError = false,
		strErrorMessage = "Bitte geben Sie eine gültige Postleitzahl ein.\nBitte beachten Sie, dass wir nur innerhalb der Schweiz liefern.";
	
	objCity.value = '';

	if(isNaN(zip.value) || zip.value.length > 4) vError = true;

	try  {	
		for(i=0;i<aPostCodes.length;i++) {
			if(aPostCodes[i][0] == zip.value) objCity.value = aPostCodes[i][1];
		}

	} catch (error) {};
	
	if(zip.value.length >= 4 && objCity.value.length == 0) vError = true;
	if(vError) {
		alert(strErrorMessage);
		zip.value = '';
	}
	
}


doCopy = function(elm) {

	var copyYN = !document.getElementsByName("shippingYN")[0].checked;
	
	if(copyYN) document.getElementsByName(elm.name+"2")[0].value = elm.value;
}


var aDisabledElements = new Array(),
	vArrayCount = 0;

enableFields = function(elm,objForm) {

	if(elm.checked) {
		for(i=0;i<objForm.elements.length;i++) {
			if(objForm.elements[i].disabled) {
				objForm.elements[i].disabled = false;
				objForm.elements[i].value = '';
				aDisabledElements[vArrayCount] = objForm.elements[i].name;
				vArrayCount++;
			} 
		}

	} else { 
		for(i=0;i<aDisabledElements.length;i++) {
			document.getElementsByName(aDisabledElements[i])[0].value = objForm.elements[i].value;
			document.getElementsByName(aDisabledElements[i])[0].disabled = true;
		
		}
		vArrayCount = 0;
	}	

}


validateAddress = function(objForm) {

	var vSuccess = true,
		strMessage = "";

	if(objForm.strFirstname.value == '') {
		strMessage = "Bitte Vorname eingeben.";
		objForm.strFirstname.focus();
		vSuccess = false;
		
	} else if(objForm.strName.value == '') {
		strMessage = "Bitte Nachname eingeben.";
		objForm.strName.focus();
		vSuccess = false;		
		
	} else if(objForm.strStreet.value == '') {
		strMessage = "Bitte Strasse eingeben.";
		objForm.strStreet.focus();
		vSuccess = false;
		
	} else if(objForm.strZIP.value == '' || objForm.strZIP.value.length < 4) {
		strMessage = "Bitte Postleitzahl eingeben.";
		objForm.strZIP.focus();
		vSuccess = false;						
	
	} else if(objForm.strCity.value == '') {
		strMessage = "Bitte Ort eingeben.";
		objForm.strCity.focus();
		vSuccess = false;
		
	} else if(objForm.strPhone.value == '' || objForm.strPhone.value.replace(/ /g,'').length < 9 || isNaN(objForm.strPhone.value.replace(/ /g,''))) {
		strMessage = "Bitte eine gültige Telefonnummer eingeben.\n(z.B. 041 262 11 11)";
		objForm.strPhone.focus();
		vSuccess = false;		
		
	} else if(objForm.strEmail.value == '' || !validateEmail(objForm.strEmail.value)) {
		strMessage = "Bitte geben Sie eine gültige Email-Adresse ein.";
		objForm.strEmail.focus();
		vSuccess = false;	
		
	} else if(objForm.strPassword && (objForm.strPassword.value == '' || objForm.strPassword.value.length < 6 || objForm.strPassword.value != objForm.strPassword2.value)) {
		strMessage = "Validierung des Passwortes fehlgeschlagen.\n(Mindestens 6 Zeichen)";
		objForm.strPassword.focus();
		vSuccess = false;			
		
	} else if(objForm.strFirstname2 && objForm.strFirstname2.value == '') {
		strMessage = "Bitte Vornamen eingeben.";
		objForm.strFirstname2.focus();
		vSuccess = false;
		
	} else if(objForm.strName2 && objForm.strName2.value == '') {
		strMessage = "Bitte Nachname eingeben.";
		objForm.strName2.focus();
		vSuccess = false;		
		
	} else if(objForm.strStreet2 && objForm.strStreet2.value == '') {
		strMessage = "Bitte Strasse eingeben.";
		objForm.strStreet2.focus();
		vSuccess = false;
		
	} else if(objForm.strZIP2 && (objForm.strZIP2.value == '' || objForm.strZIP2.value.length < 4)) {
		strMessage = "Bitte Postleitzahl eingeben.";
		objForm.strZIP2.focus();
		vSuccess = false;						
	
	} else if(objForm.strCity2 && objForm.strCity2.value == '') {
		if(objForm.strCity2.disabled) {
			objForm.strCity2.value = objForm.strCity.value;
		} else {
			strMessage = "Bitte Ort eingeben.";
			objForm.strCity2.focus();
			vSuccess = false;		
		}
	
	// Kreditkarten Informationen ?berpr?fen	
	} else if(objForm.cardno && (objForm.cardno.value == '' || isNaN(objForm.cardno.value.replace(/ /g,'')) || !ValidateCreditCardNumber(objForm.cardno.value,objForm.paymentmethod.value))) {
		strMessage = "Bitte korrekte Kreditkartennummer eingeben.";
		objForm.cardno.focus();
		vSuccess = false;	
				
	} else if(objForm.cvv && (objForm.cvv.value == '' || isNaN(objForm.cardno.value.replace(/ /g,'')) || objForm.cvv.value.length < objForm.cvv.lang)) {
		strMessage = "Bitte korrekte Kartenprüfnummer eingeben.";
		objForm.cvv.focus();
		vSuccess = false;		
	
	// Angaben f?r Monatsrechnung ?berpr?fen
	} else if(objForm.strGender && (objForm.strGender[0].checked == false && objForm.strGender[1].checked == false)) {
		strMessage = "Bitte Anrede eingeben.";
		objForm.strGender[0].focus();
		vSuccess = false;	
		
	} else if(objForm.birthd && objForm.birthd.selectedIndex == 0) {
		strMessage = "Bitte Geburtstag eingeben.";
		objForm.birthd.focus();
		vSuccess = false;	
		
	} else if(objForm.birthm && objForm.birthm.selectedIndex == 0) {
		strMessage = "Bitte Geburtsmonat eingeben.";
		objForm.birthm.focus();
		vSuccess = false;			

	} else if(objForm.birthy && objForm.birthy.selectedIndex == 0) {
		strMessage = "Bitte Geburtsjahr eingeben.";
		objForm.birthy.focus();
		vSuccess = false;						
		
	// Pr?fen, ob EMail-Adresse schon vorhanden ist	
	}
	
	if((objForm.strActEmail && objForm.strActEmail.value != objForm.strEmail.value) || (!objForm.update && objForm.strEmail && objForm.strPassword) && vSuccess) {
		
		var objReq = new DataRequestor(),
			strEmail = trim(objForm.strEmail.value);
			
			objReq.getURL('/js/customers.cfm?check=' + strEmail + '&' + Math.random());
		
			objReq.onload = function(data,obj) {		
				strMessage = (objForm.update)? "Die Email-Adresse ist bereits bei uns registriert.\nBitte wählen Sie eine andere Email-Adresse." : "Die Email-Adresse ist bereits bei uns registriert.\nBitte wählen Sie eine andere Email-Adresse oder gehen Sie zurück zu Schritt 1 wo Sie sich mit Ihrer Email-Adresse als bestehender Kunde anmelden können.";
				vSuccess = !eval(trim(data));

				if(!vSuccess) objForm.strEmail.select();	
				objForm.strEmail.value = strEmail;
				
				// daten bei erfolgreicher email-validierung ?bermitteln				
				submitFormData(objForm,vSuccess,strMessage);
			}
			
	} else {

		// daten bei erfolgreicher pr?fung ?bermitteln	
		submitFormData(objForm,vSuccess,strMessage);
	}

	return false;
}


submitFormData = function(objForm,vSuccess,strMessage) {
	
	if(!vSuccess) { alert(strMessage);
	} else { 
		// alle felder aktivieren f?r sicherung
		for(i=0;i<objForm.elements.length;i++) {
			if(objForm.elements[i].disabled) {
				objForm.elements[i].disabled = false;
				aDisabledElements[vArrayCount] = objForm.elements[i].name;
				vArrayCount++;
			} 
		}	
	
		objForm.submit();
	}

}

