﻿function mouseOver (element, menuID) {
	element.style.cursor = 'pointer';
	if (menuID != activeMenuID) {
	    activeElement = element;
	    activeBackgroundColor = element.style.backgroundColor;
	    element.style.color = '#000';
	    element.style.backgroundColor = '#bad04a';
	}
}
function mouseOut (element, menuID) {
	if (menuID != activeMenuID) {
	    element.style.backgroundColor = '#bfae92';		// Dark (main menu)
	    activeElement = null;
	}
}
function mouseOut2 (element, menuID) {
	if (menuID != activeMenuID) {
	    element.style.backgroundColor = '#dbd2ab';		// Medium (submenu 1)
	    activeElement = null;
	}
}
function mouseOut3 (element, menuID) {
	if (menuID != activeMenuID) {
	    element.style.backgroundColor = '#f0f0d7';		// Light (submenu 2)
	    activeElement = null;
	}
}
function mouseOut4 (element, menuID) {
	if (menuID != activeMenuID) {
	    element.style.backgroundColor = '#edccbc';		// infoDunkel
	    activeElement = null;
	}
}
function mouseOutTopmenu (element, menuID) {
	if (menuID != activeMenuID) {
	    element.style.backgroundColor = '#80613b';		// Very dark (top menu)
	    element.style.color = '#fff';
	    activeElement = null;
	}
}


function loadPage (strPage, bHTTPS) {
	if (window.location.hostname == 'localhost') {
		location = strPage;
	}
	else {
		if (bHTTPS) {
			location = 'https://www.amazing-discoveries.org/' + strPage + '?c=' + getCookie('currency') + '&w=' + getCookie('ShoppingBasket');
		}
		else {
			location = 'http://' + window.location.hostname + '/' + strPage;
		}
	}
}


function alterError(value) {
	if (value<=0.99) {
		newDollar = '0';
	} else {
		newDollar = parseInt(value);
	}
	newCent = parseInt((value+.0008 - newDollar)* 100);
	if (eval(newCent) <= 9) newCent='0'+newCent;
	newString = newDollar + ',' + newCent;
	return (newString);
}


function countBasket() {
	strBasket = getWarenkorb();
	iCount = 0;
	
	while (strBasket.length) {
		// Jeder Artikel im Warenkorb-String beginnt mit "[" und endet mit "]"
		iTrenner = strBasket.indexOf ("|");
		if (iTrenner == -1)
			break;	// Leave loop if incorrect syntax in string
		iEnde = strBasket.indexOf ("]");
		//strArtikel = strBasket.substring (1, iTrenner);
		strAnzahl = strBasket.substring (iTrenner + 1, iEnde);
		iCount += parseInt (strAnzahl);
		var iLenAlt = strBasket.length;
		strBasket = strBasket.substr (iEnde + 1);
	}

	return iCount;
}


function deleteItem (artNr) {
	document.getElementById(artNr).value = 0;
	updateItem (artNr);
}


function eraseBasket(bConfirm) {
	if (!bConfirm || confirm('Warenkorb leeren?')) {
		eraseCookie("ShoppingBasket");
		updateWarenkorbAnzeige();
		return true;
	}
	return false;
}


function eraseCookie(name) {
	setCookie(name,"",-1);
}


function getCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return "";
}


function getCurrency () {
	if (getCookie("currency") == "chf")
		strCurrency = "CHF";
	else
		strCurrency = "&euro;";

	return strCurrency + " ";
}


function getWarenkorb()
{
	return unescape (getCookie("ShoppingBasket"));
}


function setCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}


function setWarenkorb(str)
{
	strNoBlanks = new String (str);
	strNoBlanks = strNoBlanks.replace (/ /g, "+");
	setCookie("ShoppingBasket", strNoBlanks, 1);
	writeBasketContent();
}


function onKeyPress (e, artNr, bAdd, bReload) {
	var keynum;
	if (window.event)		// IE
		keynum = e.charCode ? e.charCode : e.keyCode;
	else if (e.which)		// Netscape/Firefox/Opera
		keynum = e.which;

	// Allow: Enter
	if (keynum == 13) {
		if (updateItem (artNr, bAdd)  &&  bReload == true) {
			updateWarenkorbAnzeige();
		}
		return false;	// Return false because changed order quantity must not submit form
	}
	// Allow: Back / tab / 0-9
	else if (keynum != 8  &&  keynum != 9  &&  (keynum < 48 || keynum > 57)) {
		return false;
	}

	return true;
}


function closeMessagebox() {
	document.getElementById('messagebox').innerHTML = '';
	document.getElementById('message_layer').style.display = 'none';
	document.getElementById('abdunkeln').style.display = 'none';
}


function updateWarenkorbAnzeige() {
	showWarenkorbMessagebox();
	writeBasketContent();
}


function updateItem (artNr, bAdd) {
	var menge = document.getElementById(artNr).value;
	if (menge == "" || (parseInt (menge) == 0 && bAdd))
		return false;
		
	var strBasket = getWarenkorb();
	iArtikelStart = strBasket.indexOf ("[" + artNr);

	if (iArtikelStart == -1) {
		// Artikel nicht vorhanden, neu hinzufügen
		strBasket += "[" + artNr + "|" + menge + "]";
	}
	else {
		iEnde = strBasket.indexOf ("]", iArtikelStart);
		if (menge == 0) {
			// Artikel löschen
			strLeft = strBasket.substring (0, iArtikelStart);
			strRight = strBasket.substring (iEnde + 1);
			strBasket = strLeft + strRight;
		}
		else {
			// Artikel mit neuer Menge versehen
			iMengeStart = iArtikelStart + artNr.length + 2;
			strLeft = strBasket.substring (0, iMengeStart);
			strRight = strBasket.substring (iEnde);
			
			strAlteMenge = strBasket.substring (iMengeStart, iEnde);
			if (bAdd == true)
				menge = parseInt (strAlteMenge) + parseInt (menge);
			else if (parseInt (strAlteMenge) == parseInt (menge))
				return false;		// No change in quantity --> return
				
			strBasket = strLeft + menge + strRight;
		}
	}
	
	setWarenkorb (strBasket);
	if (bAdd)
		showWarenkorbMessagebox ();
	return true;
}


function getIEVersionNumber() {
    var ua = navigator.userAgent;
    var MSIEOffset = ua.indexOf("MSIE ");
    
    if (MSIEOffset == -1) {
        return 0;
    } else {
        return parseFloat(ua.substring(MSIEOffset + 5, ua.indexOf(";", MSIEOffset)));
    }
}


function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}


function showWarenkorbMessagebox() {
	var xhrobj = (navigator.appName == "Microsoft Internet Explorer" ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest());
	xhrobj.open('get', 'warenkorb_messagebox.asp?' + new Date().getTime());	// Append unique param so browser won't return a cached previous result.
	xhrobj.onreadystatechange = function () {
		if(xhrobj.readyState == 4) {
			var versionIE = getIEVersionNumber();
			if (versionIE > 0  &&  versionIE < 7) {
				// Lösung ohne position:fixed für IE < 7
				var x = f_scrollLeft(),
					y = f_scrollTop();
				document.getElementById('abdunkeln').style.position = 'absolute';
				document.getElementById('abdunkeln').style.left = '0px';
				document.getElementById('abdunkeln').style.top = '0px';
				document.getElementById('message_layer').style.position = 'absolute';
				document.getElementById('message_layer').style.left = x + 'px';
				document.getElementById('message_layer').style.top = y + 'px';
				
				var bodyHeight = document.getElementsByTagName("body")[0].offsetHeight,
					bodyWidth  = document.getElementsByTagName("body")[0].offsetWidth;
				document.getElementById('abdunkeln').style.height = (window.innerHeight > bodyHeight ? window.innerHeight : bodyHeight) + 'px';
				document.getElementById('abdunkeln').style.width = (window.innerWidth > bodyWidth ? window.innerWidth : bodyWidth) + 'px';
			}

			document.getElementById('messagebox').innerHTML = xhrobj.responseText;
			document.getElementById('abdunkeln').style.display = '';
			document.getElementById('message_layer').style.display = '';
		}
	}

	xhrobj.send(null);
}


function writeBasketContent() {
	var xhrobj = (navigator.appName == "Microsoft Internet Explorer" ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest());
	xhrobj.open('get', 'warenkorb_summe.asp?' + new Date().getTime());	// Append unique param so browser won't return a cached previous result.
	xhrobj.onreadystatechange = function () {
		if(xhrobj.readyState == 4) {
			document.getElementById('warenkorb_text').innerHTML = xhrobj.responseText;
		}
	}

	xhrobj.send(null);
}


function registerNewsletter (strEmail) {
	var xhrobj = (navigator.appName == "Microsoft Internet Explorer" ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest());
	xhrobj.open('get', 'nmanagerpro-671103/forms/optIn.asp?idList=6&email=' + strEmail + '&' + new Date().getTime());	// Append unique param so browser won't return a cached previous result.
	xhrobj.onreadystatechange = function () {
		if (xhrobj.readyState == 4) {
			var text_element = document.getElementById('message');		// newsletter.asp or order4.asp must be active in main frame to get this element
			if (text_element) {
				switch (xhrobj.responseText) {
					case 'abo':
						text_element.innerHTML = 'Wir haben soeben eine E-Mail an Ihre Adresse <b>' + strEmail +
							'</b> versandt. Bitte bestätigen Sie Ihr Abonnement, indem Sie auf den Link in dieser E-Mail klicken. Erst dann ist Ihr Newsletter-Abo gültig.';
						break;
					case 'abo_ohne_bestaetigung':
						text_element.innerHTML = '<b>Willkommen!</b> Ihr Newsletter-Abo ist nun gültig. ' +
						'Eine Kündigung ist jederzeit auf dieser Seite oder über einen Link am Ende jedes Newsletters möglich.';
						break;
					case 'doppelt':
						text_element.innerHTML = 'Die E-Mail-Adresse <b>' + strEmail +
							'</b> ist bereits in unserem Verteiler eingetragen. Keine Änderungen sind notwendig. Sie erhalten weiterhin unseren Newsletter.';
						break;
					default:
						text_element.innerHTML = '???<br><br>' + xhrobj.responseText;
						break;
				}
			}
		}
	}

	xhrobj.send(null);
}


function cancelNewsletter (strEmail) {
	var xhrobj = (navigator.appName == "Microsoft Internet Explorer" ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest());
	xhrobj.open('get', 'nmanagerpro-671103/forms/optOutExec.asp?a=2&e=' + strEmail + '&' + new Date().getTime());	// Append unique param so browser won't return a cached previous result.
	xhrobj.onreadystatechange = function () {
		if (xhrobj.readyState == 4) {
			var text_element = document.getElementById('message');		// newsletter.asp must be active in main frame to get this element
			if (text_element) {
				switch (xhrobj.responseText) {
					case 'kuendigung':
						text_element.innerHTML = 'Die E-Mail-Adresse <b>' + strEmail + '</b> wurde aus unserem Newsletter-Verteiler entfernt.';
						break;
					case 'unbekannt':
						document.getElementById('email').value = strEmail;
						text_element.innerHTML = 'Die E-Mail-Adresse <b>' + strEmail + '</b> ist in unserem Newsletter-Verteiler nicht enthalten. Haben Sie sich vielleicht verschrieben?';
						break;
					default:
						text_element.innerHTML = '???<br><br>' + xhrobj.responseText;
						break;
				}
			}
		}
	}

	xhrobj.send(null);
}


function writeInfoheader (strText) {
	document.write ('<tr class="infoheader">');
	document.write ('	<td class="infoheader" colspan=2>');
	document.write (		strText);
	document.write ('	</td>');
	document.write ('</tr>');
}


function openWindow (file) {
	window.open(file, "Zweitfenster", "width=800,height=600,left=200,top=200, scrollbars=yes").focus();
}


function get_GET_params() {
   var GET = new Array();
   if(location.search.length > 0) {
      var get_param_str = location.search.substring(1, location.search.length);
      var get_params = get_param_str.split("&");
      for(i = 0; i < get_params.length; i++) {
         var key_value = get_params[i].split("=");
         if(key_value.length == 2) {
            var key = key_value[0];
            var value = key_value[1];
            GET[key] = value;
         }
      }
   }
   return(GET);
}
 
function get_GET_param(key) {
   var get_params = get_GET_params();
   if(get_params[key])
      return(get_params[key]);
   else
      return false;
}


function trim (s) {
	var l = 0, 
		r = s.length - 1;
		
	while (l < s.length && s[l] == ' ')
		l++;
	while (r > l && s[r] == ' ')
		r--;
	
	return s.substring (l, r+1);
}

