/*
 * Small lib for autonet specific functions
 * @author Rafael Kutscha, Aikanet <r.kutscha@aikanet.de>
 */

/*
 * Methode zur Darstellung des Ajax-Loader
 */
function autonet_loader()
{
	$('#ajaxloader').vCenter();
	$('#ajaxloader').show();
	return true;
}

 /*
 * Methode fuer Selectboxen zur sofortigen Weiterleitung
 */
function autonet_relocate(new_ref)
{
	autonet_loader();
	window.location.href = new_ref;
	return false;
}

/*
 * Methode in der Artikeldetailansicht zur Auswahl von Zusatzartikel
 */
function autonet_iterateOrder(){
	$('sAddAccessories').setProperty('value','');
	
	var x = document.getElementsBySelector('.sValueChanger');
	
	x.each(
		function (e){
			if (e.checked){
				var value = $('sAddAccessories').getProperty('value');
				value = value + e.value + ";";
				$('sAddAccessories').setProperty('value',value);
			}
	
		}
	);
}

/*
 * Nachbau der PHP-Funktion in_array()
 */
function in_array(item,arr) {
	for(p=0;p<arr.length;p++) if (item == arr[p]) return true;
	return false;
}

/*
 * Verwaltet das Fieldset der Firma
 * @param string masterid Die id des verwaltenden Selectbox-Elements
 * @param mixed mastervalue Der Wert, des verwaltenden DOM-Elements, wenn der Slave angezeigt werden soll
 * @param string slaveid Die id des Slave-Text-Elements
 * @param string labelid Die Id der Slave-Box, die aus- und eingeblendet wird
 */
function switch_formfield(masterid, mastervalue, slaveid, labelid) {
	if(document.getElementById(masterid)) {
		
		// Globale Variabel mit dem Wert initial aus dem Slave-Formularfeld
		if(typeof(slavevalue) == 'undefined')
		{
			slavevalue = $('#' + slaveid).val();
		}
		
		if($('#' + masterid + ' option:selected').val() == mastervalue)
		{
			// Feld befuellen, wenn dieses leer ist
			$('#' + slaveid).val(slavevalue);
			
			// Feld einblenden
			$('#' + labelid).show();
		}
		else
		{
			// Feld ausblenden
			$('#' + labelid).hide();
			
			// Feld leeren
			slavevalue = $('#' + slaveid).val();
			$('#' + slaveid).val('');
		}
	}
}

/* Spezielle Behelfs-Funktion fuer den Safari */
function getScrollbarWidth(){
  var outerdiv=document.createElement("div");
  outerdiv.style.position="absolute";
  outerdiv.style.top="0px";
  outerdiv.style.left="0px";
  outerdiv.style.width="50px";
  outerdiv.style.height="50px";
  outerdiv.style.overflow="hidden";
  var innerdiv=document.createElement("div");
  innerdiv.style.width="100%";
  innerdiv.style.height="60px";
  outerdiv.appendChild(innerdiv);
  document.body.appendChild(outerdiv);
  var noscrolloffset=innerdiv.offsetWidth;
  outerdiv.style.overflow="auto";
  var withscrolloffset=innerdiv.offsetWidth;
  document.body.removeChild(document.body.lastChild);
  ScrollbarOffset=noscrolloffset-withscrolloffset;

  return ScrollbarOffset;
}

startList = function() {
	if (document.all&&document.getElementById) {
		navRoot = document.getElementById("men1");
		for (i=0; i<navRoot.childNodes.length; i++) {
			node = navRoot.childNodes[i];
			if (node.nodeName=="LI") {
				node.onmouseover=function() {
					this.className+=" over";
				}
				node.onmouseout=function() {
					this.className=this.className.replace(" over", "");
				}
			}
		}
	}
}

$.fn.vCenter = function(options) {
	var pos = {
		sTop : function() {
			return window.pageYOffset || $.boxModel && document.documentElement.scrollTop || document.body.scrollTop;
		},
		wHeight : function() {
			if ( $.browser.opera || ($.browser.safari && parseInt ($.browser.version) > 520) ) { return window.innerHeight - (($(document).height() > window.innerHeight) ? getScrollbarWidth() : 0);
			} else if ( $.browser.safari ) {
				return window.innerHeight;
			} else {
				return $.boxModel && document.documentElement.clientHeight || document.body.clientHeight;

			}
		}
	};
	return this.each(function(index) {
		if (index == 0) {
			var $this = $(this);
			var elHeight = $this.height();
			$this.css({
				position: 'absolute',
				marginTop: '0',
				top: pos.sTop() + (pos.wHeight() / 2) - (elHeight / 2)
			});
		}
	});
};

$(document).ready ( function () {

	if ($("#werkstatt_plz") != null)
	{
		$("#werkstatt_plz").keypress (function (event) {
			var code = (event.keyCode ? event.keyCode : event.which); 
			if(code == 13) 
			{ 
			  event.preventDefault();
			  $("#search-werkstatt").click ();
			} 
		});
	}
	
	// 'Ermittle Nachkommaanteil 131203'
	function getFrac(num) { num=""+num; return parseFloat("0."+num.substring(num.length-((num.indexOf(".")>=0)?num.length-num.indexOf(".")-1:0),num.length)); }
	// 'Zahlenumwandlung 131203' (benoetigt getFrac())
	function stringInt(num,base,size) { var i, q, sign, result="", baseTable="0123456789ABCDEF"; num=parseInt(num); sign=(num<0)?"-":""; base=parseInt(base); size=(size)?size:0; if(!base || base<=1 || base>baseTable.length) { base=10; } while(true) { q=num/base; result=baseTable.charAt(parseInt(getFrac(q)*base))+result; num=parseInt(q); if(num==0) { break; } } q=""; size-=result.length; for(i=0;i<size;i++) { q+="0"; } return sign+q+result; }
	// 'Runde Zahl 131203'
	function dezRound(num,pos) { if(pos<0) { pos=Math.pow(10,Math.abs(pos)); return Math.round(num/pos)*pos; } else if(pos>0) { pos=Math.pow(10,pos); return Math.round(num*pos)/pos; } else { return Math.round(num); } }
	// 'Formatierte Zahlenausgabe 021203'
	 // Formatierung des Integerbereichs
	 function dezInt(num,size,prefix) { prefix=(prefix)?prefix:"0"; var minus=(num<0)?"-":"", result=(prefix=="0")?minus:""; num=Math.abs(parseInt(num,10)); size-=(""+num).length; for(var i=1;i<=size;i++) { result+=""+prefix; } result+=((prefix!="0")?minus:"")+num; return result; }
	 // Formatierung des Fliesskommabereichs (benoetigt getFrac())
	 function dezFrac(num,size,postfix) { postfix=(postfix)?postfix:"0"; var i, result=getFrac(Math.abs(num)); result=(result)?""+result:""; if(result) { result=result.substring(2,result.length); } size-=result.length; for(i=1;i<=size;i++) { result+=postfix; } return result; }
	 // Formatierung realer Zahlen (benoetigt dezInt() & dezFrac())
	 function dez(num,presize,postsize,prefix,postfix,fracSign) { fracSign=(fracSign)?fracSign:"."; var result=dezInt(num,presize,prefix)+fracSign+dezFrac(num,postsize,postfix); result=(result.substring(result.length-1,result.length)==fracSign)?result.substring(0,result.length-1):result; return result; }
	// 'Natuerliche Zufallszahl 130703' (1<=Zahl<=max)
	function rnd(max) { if(Math.random) { return Math.ceil(Math.max(1,max)*Math.random()); } else { return max; } }
	// 'Ganze Zufallszahl 060104' (min<=Zahl<=max)
	function rand(min,max) { var range=max-min+1; if(range>0) { if(Math.random) { return Math.ceil(range*Math.random())+min-1; } else { return max; } } else { return "undefined"; } }
	
	function autonet_euro(number)
	{
		return dez(dezRound(parseFloat(number),2),0,2,"","0",",") + " &euro;";
	}
	
	function autonet_preisrechner()
	{
		var preis = 0;
		var artikelid = '';
		var globaleartikelid = '';
		var zubehoerpreis = 0;
		var versandpreis = 0;
		var bestellung = new Array();
		var valid = true;
		var versandkostenartikelid = '';
		var versandkostengrundpreis = 0;
		var expensivedockingstation = false;
		
		var basePriceField = document.getElementById ("baseMontagePrice");
		
		// Unterscheidung zwischen naviFIT und phoneFIT
		m1 = 'M1';
		m2 = 'M2';
		m3 = 'M3';
		m4 = 'M4';
		m4b = 'M4b';
		m5 = 'empty'; // Gibt es nur im phoneFIT-Shop
		m6 = 'M6';
		m7 = 'M7';
		m8 = 'M8';
		m9 = 'M9';
		m10 = 'M10';
		u1 = 'U1';
		u2 = 'U2';
		u3 = 'U3';
		u4 = 'U4';
		u5 = 'empty';
		u6 = 'U6';
		u7 = 'U7';
		u8 = 'U8';
		u9 = 'U9';
		u10 = 'U10';
		vs = 'VS';
		vw = 'VW';
		es = 'ES';
		isPhoneFit = false;
		// Handelt es sich um den phoneFIt-Shop?
		if(document.getElementById('M50')) {
			m1 = 'M10';
			m2 = 'M20';
			m3 = 'M30';
			m4 = 'M40';
			m4b = 'empty'; // Gibt es nur im naviFIT-Shop
			m5 = 'M50';
			m6 = 'M60';
			m7 = 'M70';
			m8 = 'M80';
			m9 = 'M90';
			m10 = 'M100';
			u1 = 'U10';
			u2 = 'U20';
			u3 = 'U30';
			u4 = 'U40';
			u5 = 'U50';
			u6 = 'U60';
			u7 = 'U70';
			u8 = 'U80';
			u9 = 'U90';
			u10 = 'U100';
			vs = 'VSP';
			vw = 'VWP';
			es = 'ESP';
			isPhoneFit = true;
		}
		
		// Produktgruppen-Erweiterung (Ticket 944)
		if(document.getElementById('sArticlegroup') && $('#sArticlegroup').val() != '')
		{
			//alert('Ich habe eine Gruppe!');
			m1 = m1 == 'empty' ? 'empty' :  m1 + '_' + $('#sArticlegroup').val();
			m2 = m2 == 'empty' ? 'empty' :  m2 + '_' + $('#sArticlegroup').val();
			m3 = m3 == 'empty' ? 'empty' :  m3 + '_' + $('#sArticlegroup').val();
			m4 = m4 == 'empty' ? 'empty' :  m4 + '_' + $('#sArticlegroup').val();
			m4b = m4b == 'empty' ? 'empty' :  m4b + '_' + $('#sArticlegroup').val();
			m5 = m5 == 'empty' ? 'empty' :  m5 + '_' + $('#sArticlegroup').val();
			m6 = m6 == 'empty' ? 'empty' :  m6 + '_' + $('#sArticlegroup').val();
			m7 = m7 == 'empty' ? 'empty' :  m7 + '_' + $('#sArticlegroup').val();
			m8 = m8 == 'empty' ? 'empty' :  m8 + '_' + $('#sArticlegroup').val();
			m9 = m9 == 'empty' ? 'empty' :  m9 + '_' + $('#sArticlegroup').val();
			m10 = m10 == 'empty' ? 'empty' :  m10 + '_' + $('#sArticlegroup').val();
			u1 = u1 == 'empty' ? 'empty' :  u1 + '_' + $('#sArticlegroup').val();
			u2 = u2 == 'empty' ? 'empty' :  u2 + '_' + $('#sArticlegroup').val();
			u3 = u3 == 'empty' ? 'empty' :  u3 + '_' + $('#sArticlegroup').val();
			u4 = u4 == 'empty' ? 'empty' :  u4 + '_' + $('#sArticlegroup').val();
			u5 = u5 == 'empty' ? 'empty' :  u5 + '_' + $('#sArticlegroup').val();
			u6 = u6 == 'empty' ? 'empty' :  u6 + '_' + $('#sArticlegroup').val();
			u7 = u7 == 'empty' ? 'empty' :  u7 + '_' + $('#sArticlegroup').val();
			u8 = u8 == 'empty' ? 'empty' :  u8 + '_' + $('#sArticlegroup').val();
			u9 = u9 == 'empty' ? 'empty' :  u9 + '_' + $('#sArticlegroup').val();
			u10 = u10 == 'empty' ? 'empty' :  u10 + '_' + $('#sArticlegroup').val();
			vs = 'VSP';
			vw = 'VWP';
			es = 'ESP';
		}
		
		if (basePriceField != null && basePriceField.value > 0)
		{
			var einbauserviceOrdernumberField = document.getElementById ("einbauserviceOrdernumber");
			es = einbauserviceOrdernumberField.value;
			m1 = einbauserviceOrdernumberField.value;
		}
		
		
		// Preisberechnung in der rechten Spalte leeren
		$('.inbasket').each(function() {
				$(this).html('');
		});
		
		// Pruefen ob Profihalterung gekauft wird
		if($('.doneed:checked').val() == '1')
		{
			artikelid = $('.doneed:checked').attr('id');
			preis = parseFloat($('#' + artikelid + '-pricenumeric').val());
			
			// Set displayed price
			$('#' + artikelid + '-inbasket').html(autonet_euro($('#' + artikelid + '-pricenumeric').val()));
			
			bestellung = bestellung.concat($('.doneed:checked').attr('name'));
			
			// besonderer Preis, siehe Ticket #648
			if(document.getElementById('D1a') && $('#D1a').val() > 0) {
				
				// Erhoehten Preis fuer die Dockingstation anzeigen, siehe Ticket #648
				artikelid = $("input[name=D1]").attr('id');
				if(artikelid != '')
				{
					// Visuellen Preis tauschen
					$('#' + artikelid + '-pricenumeric').val($('#' + artikelid + '-priceoriginal').val());
					$('#' + artikelid + '-price').html(autonet_euro($('#' + artikelid + '-pricenumeric').val()));
				}
			}
		}
		else
		{
			// besonderer Preis, siehe Ticket #648
			if(document.getElementById('D1a') && $('#D1a').val() > 0) {
				// Bei D1: bestellung = bestellung.concat('D1a');
				
				// Erhoehten Preis fuer die Dockingstation anzeigen, siehe Ticket #648
				artikelid = $("input[name=D1]").attr('id');
				if(artikelid != '')
				{
					// Visuellen Preis tauschen
					$('#' + artikelid + '-pricenumeric').val($('#D1a').val());
					$('#' + artikelid + '-price').html(autonet_euro($('#' + artikelid + '-pricenumeric').val()));
					expensivedockingstation = true; // Hiermit merken wir uns, dass wir D1a in den Warenkorb packen
				}
			}
		}
		
		// Upgrades und Zubehoer berechnen
		$('.upsale:checked').each(
		  function() {
		   artikelid = $(this).attr('id');

		   preis += parseFloat($('#' + artikelid + '-pricenumeric').val());
		   
		   // Set displayed price
		   $('#' + artikelid + '-inbasket').html(autonet_euro($('#' + artikelid + '-pricenumeric').val()));
		   
		   // Teure Dockingstation beachten, siehe Ticket #648
		   if(expensivedockingstation && $(this).attr('name') == 'D1')
		   {
			   bestellung = bestellung.concat('D1a');
		   }
		   else
		   {
			   bestellung = bestellung.concat($(this).attr('name'));
		   }
		  }
		);
		
		if (basePriceField != null && basePriceField.value > 0)
		{
			$("#" + m1).attr("name", basePriceField.value);
		}

		// Globale Artikelid fuer den angezeigten Preis des Einbauservice
		globaleartikelid = $('#' + es).attr('value');
		zubehoerpreis = parseFloat($('#' + m1).attr('name'));		
		
		// Globale Artikelids fuer die zwei Versandservicearten		
		$('#' + globaleartikelid + '-price').html(autonet_euro(zubehoerpreis));				
		
		// Beim Einbauservice zusaetzliche Artikel buchen
		if ($('#einbauservice-ja').attr('checked')) {

			// Grundpreis von 14.90 (Montage-Profi-Halterung, M1) IMMER berechnen
			preis +=  parseFloat($('#' + m1).attr('name'));
			bestellung = bestellung.concat(m1);
			
			// Preis im Frontend anzeigen
			$('#' + globaleartikelid + '-inbasket').html(autonet_euro(zubehoerpreis));

			// Montage-Plus-Upgrade M2
			if(in_array(u2, bestellung)) {
				preis +=  parseFloat($('#' + m2).attr('name'));
				bestellung = bestellung.concat(m2);
				
				zubehoerpreis += parseFloat($('#' + m2).attr('name'));
				
				$('#' + globaleartikelid + '-price').html(autonet_euro(zubehoerpreis));
				$('#' + globaleartikelid + '-inbasket').html(autonet_euro(zubehoerpreis));
			}
			
			// Montage-Comfort-Upgrade (U3) M3
			if(in_array(u3, bestellung)) {
				if(!in_array(u2, bestellung) && !isPhoneFit) {
					alert('Nur in Kombination mit Plus-Upgrade möglich');
					valid = false;
					
					// Plus-Upgrade hinzupacken
					$('.upsale').each(function() {
						if($(this).attr('name') == u2)
						{
							artikelid = $(this).attr('id');
							$(this).attr('checked', 'checked');
							
							preis += parseFloat($('#' + artikelid + '-pricenumeric').val());
							
							// Preis vom Plus-Upgrade speichern
							preis +=  parseFloat($('#' + m2).attr('name'));
							zubehoerpreis += parseFloat($('#' + m2).attr('name'));
							
							// Preis vom Comfort-Upgrade speichern
							preis +=  parseFloat($('#' + m3).attr('name'));
		   
							// Set displayed price
							$('#' + artikelid + '-inbasket').html(autonet_euro($('#' + artikelid + '-pricenumeric').val()));
						}
					});
					bestellung = bestellung.concat(u2, m2);
				}
				else
				{
					preis +=  parseFloat($('#' + m3).attr('name'));
					bestellung = bestellung.concat(m3);
				}
				
				zubehoerpreis += parseFloat($('#' + m3).attr('name'));
				
				$('#' + globaleartikelid + '-price').html(autonet_euro(zubehoerpreis));
				$('#' + globaleartikelid + '-inbasket').html(autonet_euro(zubehoerpreis));
			}
			
			// Montage-Sound M4
			if(in_array(u4, bestellung)) {
				if(!isPhoneFit)
				{
					// naviFIT-Logik
					if(!in_array(u2, bestellung)) {
						// Montage-Sound-Solo M4b
						preis +=  parseFloat($('#' + m4b).attr('name'));
						bestellung = bestellung.concat(m4b);
						
						zubehoerpreis += parseFloat($('#' + m4b).attr('name'));
					
						$('#' + globaleartikelid + '-price').html(autonet_euro(zubehoerpreis));
						$('#' + globaleartikelid + '-inbasket').html(autonet_euro(zubehoerpreis));
					} else {
						// Montage-Sound-Upgrade M4
						preis +=  parseFloat($('#' + m4).attr('name'));
						bestellung = bestellung.concat(m4);
						
						zubehoerpreis += parseFloat($('#' + m4).attr('name'));
						$('#' + globaleartikelid + '-price').html(autonet_euro(zubehoerpreis));
						$('#' + globaleartikelid + '-inbasket').html(autonet_euro(zubehoerpreis));
					}
				} else {
					// phoneFIT-Logik
					preis +=  parseFloat($('#' + m4).attr('name'));
					bestellung = bestellung.concat(m4);
					
					zubehoerpreis += parseFloat($('#' + m4).attr('name'));
					
					$('#' + globaleartikelid + '-price').html(autonet_euro(zubehoerpreis));
					$('#' + globaleartikelid + '-inbasket').html(autonet_euro(zubehoerpreis));
				}

			}
			
			// phoneFIT: FSE-Upgrade M5
			if(isPhoneFit && in_array(u5, bestellung)) {
				preis +=  parseFloat($('#' + m5).attr('name'));
				bestellung = bestellung.concat(m5);
				
				zubehoerpreis += parseFloat($('#' + m5).attr('name'));
				
				$('#' + globaleartikelid + '-price').html(autonet_euro(zubehoerpreis));
				$('#' + globaleartikelid + '-inbasket').html(autonet_euro(zubehoerpreis));
			}
			
			//@TODO: Convert into loop!
			if(document.getElementById('m6') && in_array(u6, bestellung)) {
				preis +=  parseFloat($('#' + m6).attr('name'));
				bestellung = bestellung.concat(m6);
				
				zubehoerpreis += parseFloat($('#' + m6).attr('name'));
				
				$('#' + globaleartikelid + '-price').html(autonet_euro(zubehoerpreis));
				$('#' + globaleartikelid + '-inbasket').html(autonet_euro(zubehoerpreis));
			}
			if(document.getElementById('m7') && in_array(u7, bestellung)) {
				preis +=  parseFloat($('#' + m7).attr('name'));
				bestellung = bestellung.concat(m7);
				
				zubehoerpreis += parseFloat($('#' + m7).attr('name'));
				
				$('#' + globaleartikelid + '-price').html(autonet_euro(zubehoerpreis));
				$('#' + globaleartikelid + '-inbasket').html(autonet_euro(zubehoerpreis));
			}
			if(document.getElementById('m8') && in_array(u8, bestellung)) {
				preis +=  parseFloat($('#' + m8).attr('name'));
				bestellung = bestellung.concat(m8);
				
				zubehoerpreis += parseFloat($('#' + m8).attr('name'));
				
				$('#' + globaleartikelid + '-price').html(autonet_euro(zubehoerpreis));
				$('#' + globaleartikelid + '-inbasket').html(autonet_euro(zubehoerpreis));
			}
			if(document.getElementById('m9') && in_array(u9, bestellung)) {
				preis +=  parseFloat($('#' + m9).attr('name'));
				bestellung = bestellung.concat(m9);
				
				zubehoerpreis += parseFloat($('#' + m9).attr('name'));
				
				$('#' + globaleartikelid + '-price').html(autonet_euro(zubehoerpreis));
				$('#' + globaleartikelid + '-inbasket').html(autonet_euro(zubehoerpreis));
			}
			if(document.getElementById('m10') && in_array(u10, bestellung)) {
				preis +=  parseFloat($('#' + m10).attr('name'));
				bestellung = bestellung.concat(m10);
				
				zubehoerpreis += parseFloat($('#' + m10).attr('name'));
				
				$('#' + globaleartikelid + '-price').html(autonet_euro(zubehoerpreis));
				$('#' + globaleartikelid + '-inbasket').html(autonet_euro(zubehoerpreis));
			}
		}
		else
		{
			// Versandkosten berechnen
			globaleartikelid = $('.einbauart:checked').attr('id');
			
			// Zwischen Selbstmontage und Wunschwerkstatt unterscheiden
			if(globaleartikelid == 'einbauservice-nein')
			{
				preis +=  parseFloat($('#' + vs).attr('name'));
				versandpreis =  parseFloat($('#' + vs).attr('name'));
				//bestellung = bestellung.concat(vs);			
			}
			else
			{
				preis +=  parseFloat($('#' + vw).attr('name'));
				versandpreis =  parseFloat($('#' + vw).attr('name'));
				//bestellung = bestellung.concat(vw);
			}		
			
			$('#' + globaleartikelid + '-price').html(autonet_euro(versandpreis));
			$('#' + globaleartikelid + '-inbasket').html(autonet_euro(versandpreis));			
			
			// Comfort-Upgrade nur in Verbindung mit dem mit Plus-Upgrade
			if(in_array(u3, bestellung)) {
				if(!in_array(u2, bestellung) && !isPhoneFit) {
					alert('Nur in Kombination mit Plus-Upgrade möglich');
					valid = false;
					
					// Plus-Upgrade hinzupacken
					$('.upsale').each(function() {
						if($(this).attr('name') == u2)
						{
							artikelid = $(this).attr('id');
							$(this).attr('checked', 'checked');
							preis += parseFloat($('#' + artikelid + '-pricenumeric').val());
		   
							// Set displayed price
							$('#' + artikelid + '-inbasket').html(autonet_euro($('#' + artikelid + '-pricenumeric').val()));
						}
					});
					bestellung = bestellung.concat(u2);
				}
			}			
			
			// phoneFIT: Navi-Upgrade nur in Verbindung mit dem mit Plus-Upgrade
			if(isPhoneFit && in_array(u4, bestellung)) {
				if(!in_array(u2, bestellung)) {
					alert('Nur in Kombination mit Plus-Upgrade möglich');
					valid = false;
					
					// Plus-Upgrade hinzupacken
					$('.upsale').each(function() {
						if($(this).attr('name') == u2)
						{
							artikelid = $(this).attr('id');
							$(this).attr('checked', 'checked');
							preis += parseFloat($('#' + artikelid + '-pricenumeric').val());
		   
							// Set displayed price
							$('#' + artikelid + '-inbasket').html(autonet_euro($('#' + artikelid + '-pricenumeric').val()));
						}
					});
					bestellung = bestellung.concat(u2);
				}
			}			
			
			// phoneFIT: FSE-Upgrade nur in Verbindung mit dem mit Plus-Upgrade
			if(isPhoneFit && in_array(u5, bestellung)) {
				if(!in_array(u2, bestellung)) {
					alert('Nur in Kombination mit Plus-Upgrade möglich');
					valid = false;
					
					// Plus-Upgrade hinzupacken
					$('.upsale').each(function() {
						if($(this).attr('name') == u2)
						{
							artikelid = $(this).attr('id');
							$(this).attr('checked', 'checked');
							preis += parseFloat($('#' + artikelid + '-pricenumeric').val());
		   
							// Set displayed price
							$('#' + artikelid + '-inbasket').html(autonet_euro($('#' + artikelid + '-pricenumeric').val()));
						}
					});
					bestellung = bestellung.concat(u2);
				}
			}
			
			// Versandkosten-Anzeige des Einbauservice aktualisieren
			versandkostenartikelid = $('#' + es).attr('value');
			versandkostengrundpreis = parseFloat($('#' + m1).attr('name')); // Hier stehen per default die 14,90 Euro drin
			
			if(in_array(u2, bestellung)) {
				// Plus-Upgrade
				versandkostengrundpreis += parseFloat($('#' + m2).attr('name'));
			}
			if(in_array(u3, bestellung)) {
				// Comfort-Upgrade
				versandkostengrundpreis += parseFloat($('#' + m3).attr('name'));
			}
			if(in_array(u4, bestellung)) {
				if(!in_array(u2, bestellung)) {
					// Sound-Upgrade einzeln
					versandkostengrundpreis += parseFloat($('#' + m4b).attr('name'));
				} else {
					// Sound-Upgrade in Kombination
					versandkostengrundpreis += parseFloat($('#' + m4).attr('name'));
				}
			}
			$('#' + versandkostenartikelid + '-price').html(autonet_euro(versandkostengrundpreis));
		}
		
		// Endpreis anzeigen
		$('#currentprice').html(autonet_euro(preis));
		
		// Bestelldaten im Formular speichern		
		$('#sAutonetorder').val(bestellung.join(";"));		
		
		return valid;
	}

	function send_Data2() {
		alert('sViewport:' + $("#sViewport").val() + ' - sActionIdentifier:' + $("#sActionIdentifier").val() + ' - sAutonetorder:' + $("#sAutonetorder").val());
	}
	
	function send_Data() {
		
		// Beim Einbauservice muss auch eine Werkstatt gewaehlt sein
		if($('#einbauservice-ja:checked').attr('checked') && $('#aktivewerkstatt').val() == 0) {
			alert('Achtung! Bitte im Feld "Einbauservice" zuerst noch PLZ eingeben und einen Einbaupartner auswählen');
			return false;
		}
		
		if($("#sAutonetorder").val() == '' || $("#sAutonetorder").val() == m1 || $("#sAutonetorder").val() == 'VW' || $("#sAutonetorder").val() == 'VS') {
			alert('Bitte treffen Sie zuerst eine Auswahl');
			return false;
		}
		else
		{
			// Ajax-Loader anzeigen, damit der User merkt, dass im Hintergrund etwas passiert
			$('#ajaxloader').vCenter();
			$('#ajaxloader').show();
			
			// Warenkorb aufbereiten
			var aAll = $("#sAutonetorder").val().split(';'); 
			aAll.reverse();
			var sAdd = aAll[0];
			aAll.shift();
			var sAddAccessories = aAll.join(";");
			
			$("#orderme").attr("disabled", "true");
			
			$.get("shopware.php", {
				sAjax: true,
				sClearfirst: true,
				sViewport: $("#sViewport").val(),
				sActionIdentifier: $("#sActionIdentifier").val(),
				sQuantity:  1,
				sAdd: sAdd,
				sAddAccessories: sAddAccessories,
				cat_id: $("#cat_id").val()
			},
			function(data){				
				// Beim Einbauservice die Werkstattid senden				
				var aktivewerkstatt = $("input:radio:checked[name='einbauservice']").val() == 1 ? $('#aktivewerkstatt').val() : '-1';
				
				var backlinkCategoryIdField = $("#backlinkCategoryId");
				
				$('#ajaxloader').hide();
				var destinationLink = $('#hiddenlink').attr('href') + "/aktivewerkstatt," + aktivewerkstatt;
				if (backlinkCategoryIdField != null && backlinkCategoryIdField.attr("value") > 0)
				{
					destinationLink = destinationLink + "/backlinkCategoryId," + backlinkCategoryIdField.attr("value");
				}
				window.location = destinationLink;
			});
		}
	}

	$(document).ready(function () {
		autonet_preisrechner ();
	});
	$('.hoverdiv').mouseover(function() {
		var divid = $(this).attr('type');
		$('#' + divid).show();
	});
	$('.hoverdiv').mouseout(function() {
		var divid = $(this).attr('type');
		$('#' + divid).hide();
	});

	$('.doneed').click(function() {	
		autonet_preisrechner();	
	});
	$('.upsale').click(function() {	
		autonet_preisrechner();	
	});
	$('.einbauart').click(function() {	
		autonet_preisrechner();	
	});
	
	if(document.getElementById('theader'))
	{
		autonet_preisrechner();
	}

	$('#orderme').click(function() {	
		send_Data();
		return false;
	});

	// Befuellung beim Seitenload und beim Wechsel pruefen
	switch_formfield('salutation', 'co', 'company', 'companybox');
	$('#salutation').change(function() {	
		switch_formfield('salutation', 'co', 'company', 'companybox');
	});
	
	$('#skipLogin').click(function() {
		if($(this).attr('checked'))
		{
			$('#passwordForm').hide('slow');
			
		}
		else
		{
			$('#passwordForm').show('slow');
		}
	});

	// Hover-Effekt fuer das Hauptmenue
	startList;

	// Werkstatt-Popup-Funktionen
	$('#werkstattclose').click(function() {
		$('#werkstattsuche').hide('slow');		
		$('#werkstattauswahl').hide();
	});

	// Suche ausfuehren, wenn Land und PLZ gefuellt
	$('#search-werkstatt').click(function() {

		if($('#werkstatt_plz').val() == '')
		{
			alert('Bitte geben Sie Ihre PLZ an.');
			return false;
		}
		
		// 1. Ajax-Loader anzeigen, damit der User merkt, dass im Hintergrund etwas passiert
		$('#ajaxloader').vCenter();
		$('#ajaxloader').show();
		
		// Popup leeren
		$('#werkstattsuche table.werkstattcontent .partnerwerkstatt').remove();
		$('#werkstattsuche table.werkstattlist .partnerwerkstatt').remove();
		
		/*
		
		sViewport: 'werkstatt',
		ZIP_0: $('#werkstatt_plz').val(),
		CTRY_0: $('#werkstatt_land').val(),
		GROUPS: $('#nogogruppen').val(),
		baseCategoryId: $('#baseCategoryId').val(),
		categoryId: $('#categoryId').val(),
		stringCategoryPath: $('#stringCategoryPath').val()
		
		*/
		
		// 2. Ajax-Request abfeuern
		$.get("shopware.php", {
			sViewport: 'werkstatt',
			ZIP_0: $('#werkstatt_plz').val(),
			CTRY_0: $('#werkstatt_land').val(),
			GROUPS: $('#nogogruppen').val(),
			baseCategoryId: $('#baseCategoryId').val(),
			categoryId: $('#categoryId').val(),
			stringCategoryPath: $('#stringCategoryPath').val()
		},
		function(data){			
			var isFirstWerkstatt = true;

			// 3. Popup mit den Daten befuellen
			var werkstaetten = eval('(' + data + ')');

			//alert('ZIP_0: ' + $('#werkstatt_plz').val() + ',CTRY_0: ' + $('#werkstatt_land').val() + ',GROUPS: ' + $('#nogogruppen').val() + ',baseCategoryId: ' + $('#baseCategoryId').val() + ',categoryId: ' + $('#categoryId').val() + ',stringCategoryPath: ' + $('#stringCategoryPath').val());
			
			if(typeof werkstaetten['partner'] === 'object' && werkstaetten['partner'] && werkstaetten['partner'] instanceof Array)
			{
				if(werkstaetten['partner'].length > 0)
				{
					$.each(werkstaetten['partner'], function(i,n){
						
						// Create pattern
						var pattern = '<tr id="partnerrow-' + i + '" class="partnerwerkstatt"><td class="hasaddress"><span class="address"></span></td><td class="hasbutton"><button type="button" id="default" class="button-auswahl"><span>Werkstatt ausw&auml;hlen</span></button></td></tr>';
		
						// Add first element as preselected one (werkstattcontent)
						if(isFirstWerkstatt)
						{
							$('.werkstattcontent tbody').append(pattern);
							isFirstWerkstatt = false;
						}
						else
						{
							// Add other elements into (werkstattlist)
							$('.werkstattlist').append(pattern);
						}
						
						// Add data
						$('#partnerrow-' + i + ' td.hasaddress span.address').html( n['name'] + '<br />\n' + n['zip'] + ' ' + n['city'] + '<br />\n<span class="dist">'+ n['linear_dist'] + '</span><br />\n');
						$('#partnerrow-' + i + ' td.hasbutton button').attr('id', 'werkstatt-' + n['id']);				
					});
					
					// User hat eine Werkstatt im Popup ausgewaehlt
					$('#werkstattsuche .button-auswahl').click(function() {
						// Werkstatt-ID wegschreiben
						$('#aktivewerkstatt').val($(this).attr('id').replace('werkstatt-', ''));
						
						// Werkstatt-Adresse auf der Artikeldetailansicht anzeigen
						var text = $(this).parent().parent().children(".hasaddress").children(".address").html();		
						$('#aktivewerkstatttext').html(text);
						
						$('#werkstattsuche').hide('slow');		
						$('#werkstattauswahl').hide();
					});
					
					// 4. Popup anzeigen
					$('#werkstattsuche').show('slow');
				}
				else
				{
					alert('Es wurden leider keine Einbaupartner gefunden.');
				}
			} else {
				alert('Die Abfrage hat leider nicht geklappt. Bitte probieren Sie es in wenigen Minuten erneut.');
			}
			
			$('#ajaxloader').hide();
		});
		
		return true;
	});

	// Button zum aendern der getroffenen Auswahl
	$('#open-werkstatt').click(function() {
		// 1. Popup anzeigen
		$('#werkstattsuche').show('slow');
		return false;
	});
	
	// Button um alternative Werkstaetten anzuzeigen
	$('#werkstattsuche #partnerwahl').click(function() {
		$('#werkstattauswahl').show('slow');
	});
	
	// Event-Handler fuer die Cross-Selling-Artikel im Warenkorb
	$('.relatedproducts input').each(
		  function() {
			  
			  $(this).click(function() {
				  
				  // Ajax-Loader anzeigen, damit der User merkt, dass im Hintergrund etwas passiert
				  $('#ajaxloader').vCenter();
				  $('#ajaxloader').show();
				  
				  var orderid = $(this).val();
				  var currentid = $(this).attr('id');
				  var currentTime = new Date()				  
				  
				  // Weitere Ajax-Abfragen sperren
				  $('.relatedproducts input').attr('disabled', 'disabled');
				  
				  if($(this).attr('checked'))
				  {
					  // Dem Warenkorb hinzufuegen
					  $.get("shopware.php", {
						sAjax: true,
						sViewport: 'basket',
						sActionIdentifier: currentTime.getTime(),
						sQuantity:  1,
						sAdd: $(this).val()
						},
						function(data){
							//alert(data);
							var result = eval('(' + data + ')');
							
							// Create pattern							
							var pattern = '<tr id="zubehoer-' + orderid + '"><td class="artikel">' + result['sArticleName'] + '</td><td class="anzahl">1</td><td class="sum">' + $('#price-' + orderid).html() + ' &euro;</td></tr>';
							$('.basket tbody').append(pattern);
							
							// Bestell_Id dem Cross-Selling-Artikel hinzufuegen (sonst klappt das Loeschen nicht)
							jQuery.each(result['sBasket']['content'], function(i, val) {
								if(val.ordernumber == orderid)
								{
									//alert('Setze ' + val.id + ' fuer #' + currentid);
									$('#' + currentid).attr('name', val.id);
								}
							});
							
							// Gesamtpreis aktualisieren
							$('#totalprice').html(result['sAmount']);
		
							$('#ajaxloader').hide();
							
							// Weitere Ajax-Abfragen erlauben
							$('.relatedproducts input').removeAttr('disabled');
						});
				  } else {
					  // Aus dem Warenkorb entfernen
					  $.get("shopware.php", {
						sAjax: true,
						sViewport: 'basket',
						sActionIdentifier: $("#sActionIdentifier").val(),
						sDelete: $(this).attr('name')
						},
						function(data){
							//alert(data);
							var result = eval('(' + data + ')');
							
							// Artikel ueber den DOM aus dem Warenkorb entfernen
							$('#zubehoer-' + orderid).remove();
							
							// Gesamtpreis aktualisieren
							$('#totalprice').html(result['sAmount']);
							
							$('#ajaxloader').hide();
							
							// Weitere Ajax-Abfragen erlauben
							$('.relatedproducts input').removeAttr('disabled');
						});
				  }
			  });
		  }
		);
		
		$('#showsample').click(function() { return false; });
		
		$('.sliderdiv').click(function() {
			var imagename = '';
			
			// Aktuellen Status auslesen
			if($('#' + $(this).attr('type')).css("display") == 'none')
			{
				// Buttons vereinheitlichen
				imagename = $('.sliderdiv').attr("src").replace('basket-close.gif', 'mehr-infos.gif');
				$('.sliderdiv').attr("src", imagename);
				
				// Zugeordneten Button tauschen
				imagename = $(this).attr("src").replace('mehr-infos.gif', 'basket-close.gif');
				// Neuen Button fuer die aktuelle Detailbox setzen
				$(this).attr("src", imagename);
				// Alle Detailboxen schliessen
				$('.slider').hide();				
				// Die aktuelle Detailbox oeffnen
				$('#' + $(this).attr('type')).show();
			}
			else
			{
				// Buttons vereinheitlichen
				imagename = $('.sliderdiv').attr("src").replace('basket-close.gif', 'mehr-infos.gif');
				$('.sliderdiv').attr("src", imagename);
				// Alle Detailboxen schliessen
				$('.slider').hide();
			}			
		});
		
		// Neues DIV-Popup auf der Artikeldetailansicht
		$('.load-local').cluetip({local:true, cursor: 'pointer', cluetipClass: 'rounded' , dropShadow: false , width: 370, arrows: true });
		
		// Zahlungsverfahren per Bankeinzug
		if($('.payment input[name=sPayment]:checked').val() == 2)
		{
			$('#debit-details').show();
		}
		$('.payment input[name=sPayment]').change(function() {
			if($('.payment input[name=sPayment]:checked').val() == 2)
			{
				$('#debit-details').show('slow');
			}
			else
			{
				$('#debit-details').hide();
			}			
		});

});
