function MM_findObj(n, d) { //v4.01
  var p,i,x;  if (!d) d=document;
  if ((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if (!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if (!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImgRestore() { //v3.0
  var i, x, a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i, j=0, x, a = MM_swapImage.arguments;
  document.MM_sr=new Array;
  for(i=0;i<(a.length-2);i+=3)
  if ((x=MM_findObj(a[i]))!=null){
  	document.MM_sr[j++]=x;
	if (!x.oSrc) x.oSrc=x.src;
	x.src=a[i+2];
  }
}

function swapClass() {
  var i, j=0, x, a = swapClass.arguments;
  document.My_sc = new Array;
  for(i = 0;i< (a.length - 1);i += 2)
  if ((x = MM_findObj(a[i])) != null){
  	document.My_sc[j++] = x;
	if (!x.oClass) x.oClass = x.className;
	x.className=a[i + 1];
  }
}

function swapClassRestore() {
  var i, x, a = document.My_sc; for(i = 0; a && i< a.length &&( x = a[i]) && x.oClass; i++) x.className = x.oClass;
}

function getSel() {
	var txt = '';
	var foundIn = '';
	if (window.getSelection)
	{
		txt = window.getSelection();
		foundIn = 'window.getSelection()';
	}
	else if (document.getSelection)
	{
		txt = document.getSelection();
		foundIn = 'document.getSelection()';
	}
	else if (document.selection)
	{
		txt = document.selection.createRange().text;
		foundIn = 'document.selection.createRange()';
	}
	else return;
	document.forms[0].selectedtext.value = 'Found in: ' + foundIn + '\n' + txt;
}

function addResizeEvent(func) {
	var old = window.onresize;
	if (typeof window.onresize != 'function') {
		window.onresize = func;
	} else {
		window.onresize = function(e) {
			old(e);
			func(e);
		}
	}
}

function addScrollEvent(func) {
	var old = window.onscroll;
	if (typeof window.onscroll != 'function') {
		window.onscroll = func;
	} else {
		window.onscroll = function(e) {
			old(e);
			func(e);
		}
	}
}

function submitForm(name) {
	var obj = document.forms[name];
	if (obj) {
		obj.submit();
	}
}

function logout(article) {
	location.href = "/cgi/runtime/engine/?action=logout&redirekt_article_id=" + article;
}

function showImagePopup (url) {
	window.open(url, "_blank", "");
}

function popup(url, name, width, height, zusatz, nosize) {
	if (!width)  width  = "500";
	if (!height) height = "400";
	if (!zusatz) {
		zusatz = "";
	} else {
		zusatz = "," + zusatz;
	}

	var opt = "width="+width+"px,height="+height+"px"+zusatz;

	if (nosize) {
		opt = zusatz;
	}

	window.open(url, name, opt);
}

function print() { }

function closePopup(obj) {
	if (!obj) obj = window;
	if (obj.parent) obj.close()
	else alert("This isn't a popup or it wasn't opened as one.")
}

function suchen(notfound) {
	frm = $('such_form');

	if (frm) {
		if (frm.search.value == '') {
			alert(notfound);
		} else {
			frm.submit();
		}
	}
	return false;
}

function getCookie(name) {
	c=document.cookie;
	x = c.search(name+'=');
	if (x<0) return '';
	x += name.length+1;
	c=c.substr(x);	// bis ans Ende
	if (c.search(';') >= 0) {
		cookiewert = c.substr(0,c.search(';'));
	} else {
		cookiewert = c.substr(0);
	}
	return cookiewert;
}

var oldplz = '';
function onSelectZip(id) {
	if (oldplz != '') {
		obj = document.getElementById('plz' + oldplz);
		if (obj) {
			obj.style.display = 'none';
		}
	}
	oldplz = id;
	obj = document.getElementById('plz' + id);
	if (obj) {
		obj.style.display = '';
	}
}

var oldland = '';
function onSelectLand(id) {
	if (oldland != '') {
		obj = document.getElementById('land' + oldland);
		if (obj) {
			obj.style.display = 'none';
		}
	}
	oldland = id;
	obj = document.getElementById('land' + id);
	if (obj) {
		obj.style.display = '';
	}
}

document.aktInfo = '';

function showInfo(id) {
	obj = document.getElementById('info' + id);

	if (obj) {
		obj.style.display='';
		document.aktInfo = id;
	}
}

function hideInfo(id) {
	if (document.aktInfo != '') {
		obj = document.getElementById('info' + document.aktInfo);

		if (obj) {
			obj.style.display='none';
			document.aktInfo = '';
		}
	}
}

function check_kontakt_form(formname) {
	var msg="";

	if (formname.contact_body.value=="")
		msg+="Dein Anliegen darf nicht leer sein!\n";
/*
	if (formname.contact_firstname.value=="")
		msg+="Vorname darf nicht leer sein!\n";
	if (formname.contact_lastname.value=="")
		msg+="Nachname darf nicht leer sein!\n";
	if (formname.contact_country.value=='')
		msg+="Land darf nicht leer sein!\n";
*/
	if (formname.contact_email.value=="") {
		msg+="E-Mail darf nicht leer sein!\n";
	} else {
	  if (!isEmail(formname.contact_email.value))
		  msg+=unescape("E-Mail ist ung%FCltig!\n");
	}

	if (msg=="") {
		formname.submit();
	} else {
  		alert(unescape("\nNicht alle Eingaben sind korrekt.\n\nBitte pr%FCfe deine Eingaben.\n\n"+msg));
	}
}

function check_tellafriend_form(formname) {
	var msg="";

	if (formname.to_name.value=="")
		msg+="Empfaenger-Name darf nicht leer sein!\n";

	if (formname.from_name.value=="")
		msg+="Absender-Name darf nicht leer sein!\n";

	if (formname.mail_text.value=="")
		msg+="Nachricht darf nicht leer sein!\n";

	if (formname.to_email.value=="") {
		msg+="Empfaenger-E-Mail darf nicht leer sein!\n";
	} else {
	  if (!isEmail(formname.to_email.value))
		  msg+=unescape("Empfaenger-E-Mail ist un%FCültig!\n");
	}
	if (formname.from_email.value=="") {
		msg+="Absender-E-Mail darf nicht leer sein!\n";
	} else {
	  if (!isEmail(formname.from_email.value))
		  msg+=unescape("Absender-E-Mail ist ung%FCltig!\n");
	}

	if (msg=="") {
		formname.submit();
	} else {
  		alert(unescape("\nNicht alle Eingaben sind korrekt.\n\nBitte pr%FCfe deine Eingaben.\n\n"+msg));
	}
}

function check_sag_danke_form(formname) {
	var msg="";

	if (formname.body.value=="")
		msg+="Dein Anliegen darf nicht leer sein!\n";
	if (formname.Vorname.value=="")
		msg+="Vorname darf nicht leer sein!\n";
	if (formname.Nachname.value=="")
		msg+="Nachname darf nicht leer sein!\n";
	if (formname.email.value=="") {
		msg+="E-Mail darf nicht leer sein!\n";
	} else {
	  if (!isEmail(formname.email.value))
		  msg+=unescape("E-Mail ist ung%FCltig!\n");
	}

	if (msg=="") {
		formname.submit();
	} else {
  		alert(unescape("\nNicht alle Eingaben sind korrekt.\n\nBitte pr%FCfe deine Eingaben.\n\n"+msg));
	}
}

function check_newletter_form(formname) {
	var msg="";

	/*
	if (formname.customer_first_name.value=="")
		msg+="Vorname darf nicht leer sein!\n";
	if (formname.customer_last_name.value=="")
		msg+="Nachname darf nicht leer sein!\n";
	if (formname.customer_gender.value=="")
		msg+="Anrede darf nicht leer sein!\n";
	*/
	if (formname.email.value=="") {
		msg+="E-Mail darf nicht leer sein!\n";
	} else {
		if (!isEmail(formname.email.value))
			msg+=unescape("E-Mail ist ung%FCltig!\n");
	}

	if (msg=="") {
		formname.submit();
	} else {
  		alert(unescape("\nNicht alle Eingaben sind korrekt.\n\nBitte pr%FCfe deine Eingaben.\n\n"+msg));
	}
}

function check_journal_form(formname) {
   var msg="";

	if (formname.contact_firstname.value=="")
		msg+="Vorname darf nicht leer sein!\n";
	if (formname.contact_lastname.value=="")
		msg+="Nachname darf nicht leer sein!\n";
	if (formname.contact_mediatitle.value=="")
		msg+="Mediatitel darf nicht leer sein!\n";
	if (formname.contact_plz.value=="")
		msg+="PLZ darf nicht leer sein!\n";
	if (formname.contact_city.value=="")
		msg+="Ort darf nicht leer sein!\n";
	if (formname.contact_email.value=="") {
		msg+="E-Mail darf nicht leer sein!\n";
	} else {
	  if (!isEmail(formname.contact_email.value))
		  msg+=unescape("E-Mail ist ung%FCltig!\n");
	}

	if (msg=="") {
		formname.submit();
	} else {
  		alert(unescape("\nNicht alle Eingaben sind korrekt.\n\nBitte pr%FCfe deine Eingaben.\n\n"+msg));
	}
}

function check_gewinn_form(formname) {
	var msg = '';
	var fields = new Array('Vorname','Nachname','Strasse','Hausnummer','PLZ','Ort','Sicherheitsabfrage','EMail','Antwort');
	var params = '';
	var f,i;
	for (i in fields) {
		f=$('Gewinn_'+fields[i]);
		if (!f) continue;
		if ($F(f)=='') {
			msg += fields[i] + " darf nicht leer sein!\n";
			f.style.border = '1px solid red';
		} else {
			f.style.border = '1px solid #8E8E8E';
			params += fields[i]+'='+encodeURIComponent($F(f))+'&';
		}
	}

	if ($F('Gewinn_EMail') != '' && !isEmail($F('Gewinn_EMail'))) {
		  msg += unescape("E-Mail ist ung%FCltig!\n");
	}
	if (msg!="") {
		alert(unescape("\nNicht alle Eingaben sind korrekt.\n\nBitte pr%FCfe die rot markierten Felder.\n\n"+msg));
		return;
	}

	if ($('form_subject')) {
		params += '&subject='+$F('form_subject');
	}
	
	new Ajax.Request('/shop/winning', {
		method: 'post',
		parameters: params,
		onSuccess: function(transport) {
			var txt = transport.responseText;
			var err = txt.match(/errors:(.*)/);
			if (err) {
				err = err[1].split(',');
				for (var e in err) {
					if (err[e] == 'System') {
						alert(unescape("\nLeider gab es ein Problem beim Verarbeiten des Formulars.\n\nBitte probiere es sp%E4ter nochmal.\n"));
						return;
					}
					if ($('Gewinn_'+err[e])) $('Gewinn_'+err[e]).style.border = '1px solid red';
				}
				alert(unescape("\nNicht alle Eingaben sind korrekt.\n\nBitte pr%FCfe die rot markierten Felder.\n"));
			} else {
				if ($('thankyoutext')) {
					$('gewinnspielform').hide();
					$('thankyoutext').show();
				} else {
					$('gewinnspielform').innerHTML=txt;
				}
			}
		}
	});
}

function check_bellymama_form(formname) {
	var msg="";

	if (formname.Vorname.value=="")
		msg+="Vorname darf nicht leer sein!\n";
	if (formname.Nachname.value=="")
		msg+="Nachname darf nicht leer sein!\n";
	if (formname.Strasse.value=="")
		msg+="Straße darf nicht leer sein!\n";
	if (formname.Hausnummer.value=="")
		msg+="Hausnr. darf nicht leer sein!\n";
	if (formname.PLZ.value=="")
		msg+="PLZ darf nicht leer sein!\n";
	if (formname.Ort.value=="")
		msg+="Ort darf nicht leer sein!\n";
	if (formname.email.value=="") {
		msg+="E-Mail darf nicht leer sein!\n";
	} else {
		if (!isEmail(formname.email.value))
			msg+=unescape("E-Mail ist ung%FCltig!\n");
	}

	if (msg=="") {
		formname.submit();
	} else {
		alert(msg);
	}
}

function isEmail(string) {
	return (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1);
}

function getSelectedRadio(buttonGroup) {
	if (!buttonGroup) return -1;
	if (typeof(buttonGroup) == 'object') { // if the button group is an array (one button is not an array)
		for (var i=0; i<buttonGroup.length; i++) {
			if (buttonGroup[i].checked) {
				return i
			}
		}
   } else {
		if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }

   // if we get to this point, no radio button is selected
   return -1;
}

function getSelectedRadioValue(buttonGroup) {
	var i = getSelectedRadio(buttonGroup);
	if (i == -1) {
		return "";
	} else {
		if (typeof(buttonGroup) == 'object') { // Make sure the button group is an array (not just one button)
			return buttonGroup[i].value;
		} else { // The button group is just the one button, and it is checked
			return buttonGroup.value;
		}
	}
}

function cent2euro(cent) {
	if (cent==0) return '0,00';
	cent=cent.toString();
	var euro = cent.substring(0,(cent.length-2));
	var cent = cent.substring((cent.length-2),cent.length);
	if (cent.length==1) cent = '0'+cent;
	if (euro == '') {
		euro='0';
	}
	return euro+','+cent;
}

var current_currency='&euro;';
var current_rate=0;

function change_currency(currency) {
	// get rate from database
	if (typeof(Ajax) == 'undefined') return;
	new Ajax.Request('/shop/currency', {
		method: 'post',
		parameters: { currency: currency },
		onSuccess: function(transport) {
			current_currency=currency;
			update_currency(transport.responseText);
		}
	});
	// switch select to choosen currency; this is nesseccary on static pages, as the select has
	// pre-selected the currency which was active at build-time
	var sel=$('currency_select');
	if (sel) {	// select currency
		for (var i=0, len=sel.length; i<len; ++i) {
			if (sel.options[i].value==currency) {
				sel.selectedIndex=i;
				break;
			}
		}
	}
}

function update_currency(rate) {
	if (rate == 0) return;
	current_rate=rate;

	switch (current_currency) {
		case 'EUR': current_currency='&euro;'; break;
		case 'AUD': current_currency='$'; break;
		case 'BGN': current_currency='BGN'; break;
		case 'BRL': current_currency='BRL'; break;
		case 'CAD': current_currency='CAD'; break;
		case 'CHF': current_currency='SFR'; break;
		case 'CNY': current_currency='CNY'; break;
		case 'CZK': current_currency='CZK'; break;
		case 'DKK': current_currency='kr'; break;
		case 'EEK': current_currency='EEK'; break;
		case 'GBP': current_currency='&pound;'; break;
		case 'HKD': current_currency='$'; break;
		case 'HRK': current_currency='HRK'; break;
		case 'HUF': current_currency='HUF'; break;
		case 'IDR': current_currency='IDR'; break;
		case 'ISK': current_currency='ISK'; break;
		case 'JPY': current_currency='&yen;'; break;
		case 'KRW': current_currency='KRW'; break;
		case 'LTL': current_currency='LTL'; break;
		case 'LVL': current_currency='LVL'; break;
		case 'MXN': current_currency='MXN'; break;
		case 'MYR': current_currency='MYR'; break;
		case 'NOK': current_currency='kr'; break;
		case 'NZD': current_currency='$'; break;
		case 'PHP': current_currency='PHP'; break;
		case 'PLN': current_currency='PLN'; break;
		case 'RON': current_currency='RON'; break;
		case 'RUB': current_currency='RUB'; break;
		case 'SEK': current_currency='kr'; break;
		case 'SGD': current_currency='SGD'; break;
		case 'SKK': current_currency='SKK'; break;
		case 'THB': current_currency='THB'; break;
		case 'TRY': current_currency='TRY'; break;
		case 'USD': current_currency='$'; break;
		case 'ZAR': current_currency='ZAR'; break;
	}
	var prices = $$('span.summe');
	var len=prices.length;
	var i, id, price, gp;
	for (var x=0; x<len; ++x) {
		id=prices[x].id.split(/_/);
		i=id[1];

		gp=$('former_'+i);
		if (gp) {
			price=$F('former_price_'+i);
			price=Math.round(price * rate);
			gp.innerHTML=cent2euro(price)+' '+current_currency;
		}

		price=$F('price_'+i);
		// if (parseInt(price) == 0) continue;
		price=Math.round(price * rate);

		// gprice ist Einzelpreis; wird versteckt, wenn EUR gewaehlt ist oder Preis=0
		gp=$('gprice_'+i);
		if (gp) {	// skip vouchers etc.
			gp.innerHTML=cent2euro(price)+' '+current_currency;
			if (rate==1 || price==0) gp.hide();
			else gp.show();
		}
		// sprice (Einzelpreis) wird nicht versteckt, wenn EUR gewaehlt ist
		gp=$('sprice_'+i);
		if (gp) gp.innerHTML=cent2euro(price)+' '+current_currency;

		price *= $F('count_'+i);
		// total ist Gesamtpreis; wird nicht versteckt
		gp=$('total_'+i);
		if (gp) {
			gp.innerHTML=cent2euro(price)+' '+current_currency;
		}

		// summe ist Gesamtpreis; wird versteckt, wenn EUR gewaehlt ist
		gp=$('summe_'+i);
		if (gp) {
			gp.innerHTML=cent2euro(price)+' '+current_currency;
			if (rate==1) gp.hide();	else gp.show();
		}

		// Elemente um den Preis rum ggf. auch verstecken
		gp=$('outer_pricing_'+i);
		if (gp) {
			if (rate==1) gp.hide();	else gp.show();
		}
	}
	gp=$('currency_notice');
	if (gp) {
		if (rate==1) gp.hide();	else gp.show();
	}
}

/* read current currency from cookie and update values */
function check_currency() {
	var currency=readCookie('currency');
	if (currency) {
		change_currency(currency);
	}
}

function callcenter_header_reload() {
	if (parent && parent.frames[0] && parent.frames[0].name == 'callcenter_header') {
		parent.frames[0].location.reload();
	}
}

function check_language() {		// ggf. Cookie setzen
	if (window.location.search.substr(1,12) == 'newlanguage=') {
		var clang=window.location.search.substr(13,2);	// "newlanguage=de" -> "de"
		var heute=new Date();
		var ablauf=new Date(heute.getTime() + 1000*365*86400);	// ein Jahr, in ms
		setCookie('language',clang,ablauf,'/');
	}
}

function getPos(obj) {
	var x=obj.offsetLeft;
	var y=obj.offsetTop;
	while (obj = obj.offsetParent) {
		x+=obj.offsetLeft;
		y+=obj.offsetTop;
	}
	var o=new Object();
	o.x=x; o.y=y;
	return o;
}

function getScrollerWidth() {
	var scr = null;
	var inn = null;
	var wNoScroll = 0;
	var wScroll = 0;

	// Outer scrolling div
	scr = document.createElement('div');
	scr.style.position = 'absolute';
	scr.style.top = '-1000px';
	scr.style.left = '-1000px';
	scr.style.width = '100px';
	scr.style.height = '50px';
	// Start with no scrollbar
	scr.style.overflow = 'hidden';

	// Inner content div
	inn = document.createElement('div');
	inn.style.width = '100%';
	inn.style.height = '200px';

	// Put the inner div in the scrolling div
	scr.appendChild(inn);
	// Append the scrolling div to the doc
	document.body.appendChild(scr);

	// Width of the inner div without scrollbar
	wNoScroll = inn.offsetWidth;
	// Add the scrollbar
	scr.style.overflow = 'auto';
	// Width of the inner div with scrollbar
	wScroll = inn.offsetWidth;

	// Remove the scrolling div from the doc
	document.body.removeChild(document.body.lastChild);

	// Pixel width of the scroller
	return (wNoScroll - wScroll);
}

// Get the height/width of the entire document
function getDocumentHeight() {
	var a=0,b=0;
	if (!isNaN(document.body.parentNode.scrollHeight)) a=document.body.parentNode.scrollHeight;
	if (!isNaN(window.innerHeight)) b=window.innerHeight;
	return Math.max(a,b);
}
function getDocumentWidth() {
	var a=0,b=0;
	if (!isNaN(document.body.parentNode.scrollWidth)) a=document.body.parentNode.scrollWidth;
	if (!isNaN(window.innerWidth)) b=window.innerWidth;
	var w = Math.max(a,b);
	// keine horizontalen Scrollbalken, weil schon ein vertikaler da ist
	if (window.innerHeight < document.body.parentNode.scrollHeight) {
		w -= getScrollerWidth();
	}
	return w;
}

var HomepageImages=new Array(0,1), HomepageIndex=1, OldHomepageIndex;

function homepage_slideshow() {
	if (HomepageIndex>0) OldHomepageIndex=HomepageIndex;
	HomepageIndex++;
	if (HomepageIndex >= HomepageFiles.length) {
		HomepageIndex=1;
	}
	if (!HomepageImages[HomepageIndex]) {	// Bild noch nicht geladen? Dann jetzt tun!
		var img = $('hpic_'+HomepageIndex);
		img.onerror = function(evt) {
			HomepageIndex=0;
			homepage_slideshow();
		};
		img.onload = function(evt) {
			HomepageImages[HomepageIndex]=1;
			HomepageToggleImage();
		};
		img.src = '/shared/pics/homepage/'+HomepageFiles[HomepageIndex];
	} else {
		HomepageToggleImage();
	}
}
function HomepageToggleImage() {
	if (OldHomepageIndex) $('hpic_'+OldHomepageIndex).morph({ opacity:0 });
	$('hpic_'+HomepageIndex).morph({ opacity:[0,1] });
	setTimeout('homepage_slideshow()',2500);
}

function do_onload_stuff() {
	if ($('shadowlayer')) {
		var hgt = getDocumentHeight();
		var wdt = getDocumentWidth();
		$('shadowlayer').setStyle({ height: hgt+'px', width: wdt+'px' });
	}
	if (typeof(activate_zoomo) == 'function') {
		activate_zoomo();
	}
	
	if ($('homepage_slideshow')) {
		setTimeout('homepage_slideshow()', 2000);
	}
	
	check_currency();
	callcenter_header_reload();
	check_language();
	
	if (getCookie('bbreferer') != '' && $('referercheck')) {
		$('referercheck').style.display='';	// .show() geht nicht auf der HP!
		$('referercheck').innerHTML='Referer set';
	}
	
	var cid=location.search.match(/cid=([\w\-]+)/);
	if (cid && cid[1].length>0) {
		setCookie('cid', cid[1]);
	}
}
