// JavaScript Document
// Menge eines Artikels im Warenkorb erhöhen
function increaseQuantity(quantity,amount,totalItemAmount) {
	var y = document.getElementById(quantity).value;
	var p = document.getElementById(amount).value;
	var newSum;
	y++;
	document.getElementById(quantity).value = y;
	newSum = p*y;
	document.getElementById(totalItemAmount).value = newSum.toFixed(2);
}

// Menge eines Artikels im Warenkorb verringern
function decreaseQuantity(quantity,amount,totalItemAmount) {
	var y = document.getElementById(quantity).value;
	var p = document.getElementById(amount).value;
	var newSum;
	if (y<1) {
		y = "0";
		document.getElementById(quantity).value = "0";
	}
	else {
		y--;
		document.getElementById(quantity).value = y;
	}
	newSum = p*y;
	document.getElementById(totalItemAmount).value = newSum.toFixed(2);
}

// Artikel aus dem Warenkorb löschen
function deleteProduct(quantity,amount,totalItemAmount) {
	var y = document.getElementById(quantity).value;
	var p = document.getElementById(amount).value;
	var newSum;
	y = "0";
	document.getElementById(quantity).value = y;
	newSum = p*y;
	document.getElementById(totalItemAmount).value = newSum.toFixed(2);	
}

// Menge eines Artikels im Warenkorb feststellen
function getQuantity(quantity,amount,totalItemAmount) {
	var y = document.getElementById(quantity).value;
	var p = document.getElementById(amount).value;
	var newSum;
	document.getElementById(quantity).value = y;
	newSum = p*y;
	document.getElementById(totalItemAmount).value = newSum.toFixed(2);
}

function changeShpCartDisplay(display) {
	if(display=='block') {
		document.getElementById('boxShoppingCartContents').style.display='none';
	}
	else {
		document.getElementById('boxShoppingCartContents').style.display='block';
	}
}

function checkPayment(paymentType) {
	if(document.finalizeOrder.paymentType.value == 'PayPal') {
		document.paypal.submit();
	}
	else {
		document.finalizeOrder.submit();
	}
}

function initializeMap(address) {
	 var map = new GMap2(document.getElementById('map'));
	 map.addControl(new GSmallMapControl());
	 map.addControl(new GMapTypeControl());
	 var geocoder = new GClientGeocoder();
	 geocoder.getLatLng(
	  	address,
	    function(point) {
			if (!point) {
			 alert(address + " not found");
			} else {
			 map.setCenter(point, 13);
			 var marker = new GMarker(point);
			 map.addOverlay(marker);
			 marker.openInfoWindowHtml(address);
			}
	    }
	 )
}

function checkform(of)
{
	var reqfields,em,i,f,ty;
	if(document.getElementById('required'))
	{
		reqfields=document.getElementById('required').value.split(',');
		if(document.getElementById('errormsg')){
			em=document.getElementById('errormsg');
			em.parentNode.removeChild(em);
		}
		for(i=0;i<reqfields.length;i++)
		{
			f=document.getElementById(reqfields[i]);
			if(f.previousSibling && /img/i.test(f.previousSibling.nodeName)){
				f.parentNode.removeChild(f.previousSibling);
			}
			f.style.background='transparent';
			if(trim(f)){
				ty=f.type.toLowerCase();
				switch(ty)
				{
					case 'text':
						if(f.value==''){adderr(f.id,of)}
						if(f.id=='cIemail' && !isEmailAddr(f.value)){adderr(f.id,of)}
					break;
					case 'textarea':
						if(f.value==''){adderr(f.id,of)}							
					break;
          case 'hidden':
						if(f.value==''){adderr(f.id,of)}
					break;
					case 'checkbox':
						if(!f.checked){adderr(f.id,of)}
					break;
					/* extend as needed */
				}
			}
			
		}
		
	}
	if(document.getElementById('errormsg'))
	{
		return false;
	}
}

function adderr(id,of)
{
	var se,i,nli,na;
	i=document.createElement('img');
	i.src='BlueParksWeb/BPShop/cl/gfx/icons16/delete.gif';
	i.alt='Fehler';
	i.title='Dieses Feld beinhaltet einen Fehler!';
	se=document.getElementById(id);
	se.parentNode.insertBefore(i,se)
	se.style.background='#fcc';
	if(!document.getElementById('errormsg')){
		var em=document.createElement('p');
		em.id='errormsg';
		em.appendChild(document.createTextNode('Bitte alle Felder mit '))
		i=document.createElement('img');
		i.src='BlueParksWeb/BPShop/cl/gfx/icons16/delete.gif';
		i.alt='Fehler';
		i.title='Dieses Feld beinhaltet einen Fehler!';
		em.appendChild(i);
		em.appendChild(document.createTextNode(' ändern!'))
		for(var i=0;i<of.getElementsByTagName('input').length;i++)
		{
			if(/button/i.test(of.getElementsByTagName('input')[i].getAttribute('type')))
			{
				var sb=of.getElementsByTagName('input')[i];
				break;
			}
		}
		em.style.border='2px solid #c00';
		em.style.padding='5px';
		em.style.width='20em';
		sb.parentNode.insertBefore(em,sb);
	}
	if(id=='cIemail' && !isEmailAddr(document.getElementById(id).value)){
		pn=document.createElement('p');
		pn.appendChild(document.createTextNode('Email scheint ungültig zu sein!'))
		document.getElementById('errormsg').appendChild(pn);
	}
}

function isEmailAddr(str)
{
	return str.match(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/);
}

// Aufpreise in Euro DB hinterlegt - werden einfach addiert
function alterProductAmountOnOption(amount,totalOptions,x,formname) {
	var amount;
	for (var i=0;i<totalOptions;i++) {
		var option = document.forms[formname].elements['option_' + i];
		amount = parseFloat(amount)+parseFloat(option.options[option.selectedIndex].title);
	}
	if (amount>0) {
		document.forms[formname].elements['amount'].value = amount.toFixed(2);
		document.getElementById('price_' + x).innerHTML = amount.toFixed(2);
	}
}

// Preisberechnung nach Formel - Länge und Breite werden manuell eingegeben z.B. Thermotransferfolien - Pelikan
function calculate(width,lenght,x,formname) {
	var w = document.getElementById('width_' + x).value;
	var l = document.getElementById('length_' + x).value;
	var amount = document.forms[formname].elements['amount_' + x].value;
	amount = (((w*l/1000)*amount)*50)*1.25;
	document.forms[formname].elements['amount_' + x].value = amount.toFixed(2);
}

// Aufpreise in Prozent in DB hinterlegt - werden nach Formel berechnet
function alterAmountOnOption(amount,totalOptions,x,formname) {
	var amount;
	for (var i=0;i<totalOptions;i++) {
		var option = document.getElementById('option_' + i);
		amount = parseFloat(amount) + parseFloat(option.options[option.selectedIndex].title);
	}
	if (amount > 0) {
		document.forms[formname].elements['amount'].value = amount.toFixed(2);
		document.getElementById('price_' + x).innerHTML = amount.toFixed(2);
	}
}


function trim (str) {
	return str.replace(/ +/g, ' ').replace(/^\s+/g, '').replace(/\s+$/g, '');
}

function beamerInfo() {
	if (document.getElementById('beamerInfo').style.display === 'none') {
		document.getElementById('beamerInfo').style.display = 'block';
	}
	else {
		document.getElementById('beamerInfo').style.display = 'none';
	}
}