var DSLPrices = new Class({

	initialize: function(){

		pricelabels = new Array();
		pricesregular = [];
		dslPreisErmaessigt = 4.90;
		pricesspecial = [];
		dslpreis = 34.95;
		origDslPreis = 0;
		id = 'preisanzeige';
		origISDNPrice = 5.00;
		
		this.timer = null;
		_self = this;
		this.isblocked = false;
		
		anschlussChanged = false;
		dslPaketChoosen = false;
		this.leitungsinfo = null;

		this.elementsOptionsDSL = $(document.body).getElements('[class~=optionsDSL]');
		this.elementsOptionsAnschlussStandard = $(document.body).getElements('[class~=optionsAnschlussStandard]');
		this.elementsOptionsBandbreite = $(document.body).getElements('[class~=optionsBandbreite]')

		this.bgimages = ['/css/img/bg_infoLayer_links.png','/css/img/bg_infoLayer_rechts.png','/css/img/bg_infoLayer.png'];
		
		/* Alle Preise neu schreiben ...*/
		this.rewritePriceLabels();

		$(id).set('html','nur '+ dslpreis.toFixed(2).replace(/\./,','));

		try {
			origISDNPrice = $('isdn').get('value').split('|')[0];
		}
		catch(e) {}

	},
	
	/* Hintergrundbilder setzen */
	setBackgroundImages: function(arr)	{		this.bgimages = arr;	},

	/**
	 * Setzt den Grundpreis
	 */
	setGrundpreis: function(p){dslpreis = p; origDslPreis = p;},

	/**
	 * Setzt den ermaessigten Grundpreis
	 */
	setSonderGrundpreis: function (p) {dslPreisErmaessigt = p;},

	/*
	 * Setzt die Preise für die Optionen
	 */
	setRegularPrices: function(a){pricesregular = a;pricesregular.each(function(obj,nr){if(obj != 0)pricelabels.push(obj.toFixed(2).toString().replace(/\./,','));});$('tarife').getElements('span.pricelabel').each(function(obj,nr){obj.set('html',pricelabels[nr]);});},

	/*
	 * Setzt die Spezialpreise
	 */
	setSpecialPrices: function(a){pricesspecial = a;},

	/*
	 * rechnet die Optionen zusammen und gibt den Gesamtpreis aus.
	 */
	calculate: function(){
	
	
		_self = this;
	

		radio =    $('tarife').getElements('input[type=radio]');
		checkbox = $('tarife').getElements('input[type=checkbox]');

		radio.combine(checkbox);
		radio.addEvent('click',function(element){
		
			var summe = dslpreis;

	
			
			radio.each(function(obj,nr){
				var parts = obj.value.split('|');
				if(obj.checked)summe += parts[0].toFloat();
			});
			
			$(id).set('html','nur '+summe.toFixed(2).replace(/\./,','));

			/* falls Sicherheitspaket gewaehlt, dann Aktionstext einblenden */
			try{
			
			if ($('paket1pc').checked || $('paket3pc').checked) {
				$('Aktionstext_unten').fade('in');
			}
			else {
				$('Aktionstext_unten').fade('out');
			}
			
			}catch(e){/* keine Sicherheitspakete vorhanden */}
			
			
			_self.showOption();
		});
		
		radio[0].fireEvent('click');
		

	},

	/*
	 * GesamtPreis neu berechnen, ohne ClickEvents zu setzen.
	 */
	refreshPrice : function () {
		_self = this;

		var summe = dslpreis;

		radio =    $('tarife').getElements('input[type=radio]');
		checkbox = $('tarife').getElements('input[type=checkbox]');

		radio.combine(checkbox);

		radio.each(function(obj,nr){
				var parts = obj.value.split('|');
				if(obj.checked) {
					summe += parts[0].toFloat();
				}
		});

		$(id).set('html','nur '+summe.toFixed(2).replace(/\./,','));

		/* Alle gewählten Optionen neu anzeigen */
		this.showOption();
	},

	/*
	 * Zeigt alle gewählte Optionen in der Auflistung links an.
	 */
	showOption : function() {

		var counter = 0;

		// entfernt alle angezeigten Optionen aus der Auflistung der gewählten Optionen
		this.removeOptions();
		$('containerOptions').show();

		$(document.body).getElements('div.smallakk input[type=radio]:checked,div.smallakk input[type=checkbox]:checked').each(function(obj,nr){

			var parts = obj.get('value').split('|');
			var tooltipp = '';
			var label = '';
			var divInfo = '';
			var cssClass="";
			var addText = "";
			var newAddText = "";
			var newText = "";

			if ( parts[0] > 0 ) {

				counter++;

				var newOption = new Element('div',{'styles':{'min-height':'0px'}}); // {'styles':{'min-height':'0px'}} : Fix IE7, C.Meyer 06.052010

				try {
					divInfo = obj.getNext('div.info');
				}
				catch(e) {}

				try {
					divInfo = obj.getNext('div.info');
				}
				catch(e) {}

				try {
					label = obj.getNext('label');
				}
				catch(e) {}

				try {
					tooltipp = divInfo.getElement('div.tooltip').get('html');
				}
				catch(e) {}

				if(tooltipp.length > 1) {
					cssClass = 'info';
				}
				else {
					cssClass = 'infoOhneHG';
				}

				try {
					addText = obj.getNext('div.additionalTextOptions').clone();
					if(addText.get('html').length > 1) {
						addText.set('style','display:block; clear:both; padding-top:0px;');
						newAddText = new Element('div',{'class':'addTextOption'});
						newAddText.grab(addText);
						newText = newAddText.get('html');
					}
				}
				catch(e) {}

				$('containerOptions').show();

				try {
					newOption.set('html','<span class="checked">'+label.get('html')+'</span><div class="'+cssClass+' infoOptions"><strong class="color3 preisOptions" style="float:left;">+ <span class="pricelabel">'+parts[0].replace(/\./,',')+'</span> EUR</strong><div class="tooltip">'+tooltipp+'</div></div>'+newText+'<div class="trenner"><!-- --></div>');
					$('displayOptions').grab(newOption);
				}
				catch(e) {}
				
			}
		});

		if(counter == 0) {
			$('containerOptions').hide();
		}

		//initalisiere den ClickEvent um den Tooltip einzublenden.
		
		var bgImages = new Asset.images(this.bgimages,{
		
			onComplete:function(){
			    
				this.initTooltip(bgImages);
			}.bind(this)
		});

		
		
		
	},

	/*
	 * entfernt alle angezeigten Optionen
	 */
	removeOptions : function() {
		$('displayOptions').empty();
	},

	/*
	 * initalisiere den MouseOverEvent um die Tooltips einzublenden.
	 */
	initTooltip : function (bgImages) {
	
	
        
		_self.bgImages = bgImages;
		
		$(document.body).getElements('div.optionEntry div.info,div.infoGelb,div.infoOptions').each(function(obj,nr){
		
		if(obj.get('class') == 'info infoOptions')
        var xpos = 120;
        else
		var xpos = 30;	
		
				try{
				    if(obj.get('class').indexOf('infoOhneHG') == -1)
					obj.addEvent('mouseenter',function(event){
							try{
							        
									var position = $(this).getPosition();
									var top = position.y -25;
									var left = position.x +xpos;
									$('tooltip').set('html',$(this).getElement('div.tooltip').get('html'));
									$('tooltip').setStyles({'top':top,
																					'left':left,
																					'display':'block',
																					'background':'url('+_self.bgImages[2].get('src')+') no-repeat  transparent',
																					'padding':'10px 30px 0 40px'
																				});
							} catch(e){}
					});
				} catch(e){}
		});

		$(document.body).getElements('div.tooltip-i').each(function(obj,nr){
				try{
					obj.addEvent('mouseenter',function(event){
							try{
							        _self.isblocked = false;
									
									var position = $(this).getPosition();
									var top = position.y - 25;
									var left = position.x - 300 ;
									$('tooltip').set('html',$(this.parentNode).getElement('div.tooltip').get('html'));
									$('tooltip').setStyles({'top':top,
																					'left':left,
																					'display':'block',
																					'background':'url('+_self.bgImages[0].get('src')+') no-repeat  transparent',
																					'padding':'10px 50px 0 19px'
																				});
																				
							} catch(e){}
					});
				} catch(e){}
		});
		

		/*
		 * Mouseout - tooltip ausblenden und Standard-Hintergrund wiederherstellen
		 */
		$(document.body).getElements('div.tooltip-i,div.tooltip-i-r,div.optionEntry div.info,div.infoGelb,div.infoOptions').each(function(obj,nr){
				try{
					obj.addEvent('mouseleave',function(){_self.timer = setTimeout(_self.mout,20)});
				} catch(e){}
		}.bind(this));
		
		
		$('tooltip').addEvents({
	
	
		'mouseenter': function(){_self.isblocked = true; $('tooltip').setStyle('display','block');}.bind(this),
		'mouseleave' : function(){_self.isblocked = false;$('tooltip').setStyle('display','none');}.bind(this)
		
	});
		
		

	},
	
	mout:function(){     
	
	if(_self.isblocked) return false;

	
	
							try{
							    
								$('tooltip').setStyles({ 'display':'none','background':'url('+_self.bgImages[2].get('src')+') repeat scroll 0 0 transparent','padding':null,'left':'0px','top':'0px'});									
							} catch(e){}
					},

	/**
	 * Läuft durch die Optionen des Paketes und entfernt die leeren Optionen.
	 */
	cleanup : function () {

		$(document.body).getElements('div.produktinfo div.col1, div.produktinfo div.col2').each(function(obj,nr){

			var myElements = obj.getChildren('div.optionEntry');

			myElements.each(function (obj1,nr){

				var removeElement = false;

				var myChilds = obj1.getChildren();
				
				/* Prüfen der Überschrift, sind alle drei Inhalte da?*/
				if (myChilds.length < 3) {

					removeElement = true;
				}

				myChilds.each(function (myObj,nr){

				/* Behandlung der tooltipps*/
					if(myObj.get('class') == 'info' && !removeElement) {
						var myTooltip = myObj.getChildren('div.tooltip');
						if (myTooltip.get('text')[0].length <= 1 ) {
							myObj.destroy();
							myTooltip.destroy();
						}
					}

				});

				if (removeElement) {
					obj1.destroy();
				}

			});
			

		});

	},

	/**
	 * Initaliesiert und blendet den Layer für das Sicherheitspaket ein.
	 */
	showSiPa : function() {
		// Wenn Sipa ausgewählt, Formular absenden, sonst Layer mit Frage einblenden
		if($('paket1pc').checked || $('paket3pc').checked)  {
			checkFormFieldsAndSend();
		}
		else {
			var text = $('lbsip').get('html');

			$('lbsip').destroy();
			var sipa = new lightBoxSiPa(text,{'height':'290','width':'600'});

			sipa.show();
		}
	},

	/**
	 * Initaliesiert und blendet den Layer für das Sicherheitspaket ein.
	 */
	showSiPaMoFU : function() {

		if($('tarife').getElement('[name=package]:checked').get('value').split('|')[0] <= 0) {
			checkFormFieldsAndSend();
			return true;
		}

		// Wenn Sipa ausgewählt, Formular absenden, sonst Layer mit Frage einblenden
		if($('paket1pc').checked || $('paket3pc').checked)  {
			checkFormFieldsAndSend();
		}
		else {
			var text = $('lbsip').get('html');

			$('lbsip').destroy();
			var sipa = new lightBoxSiPa(text,{'height':'290','width':'600'});

			sipa.show();
		}
	},

	/**
	 * Initalisiert und blendet den Layer für die Info eine / zwei Leitungen ein.
	 */
	showAnschlussInfoLayer : function () {

		var text = $('contentAnschlussLayer').get('html');

		this.leitungsinfo = new lightBoxSiPa(text,{'height':'750','width':'750','closeButton':true});

		this.leitungsinfo.show();
		$('modalForeground').getElement('div').setStyle('overflow','auto');

	},
	/**
	 * Initalisiert und blendet den Layer für die Info Mobilfunktarife ein.
	 */
	showMobilfunkInfoLayer : function () {

		var text = $('contentMobilfunkLayer').get('html');

		this.leitungsinfo = new lightBoxSiPa(text,{'height':'750','width':'750','closeButton':true});

		this.leitungsinfo.show();
		$('modalForeground').getElement('div').setStyle('overflow','auto');

	},
	 /* für die Mofu Pakete*/
	 initMobilfunk : function () {

		var _self= this;

		 this.elementsOptionsDSL.fade('hide');

		 $(document.body).getElements('h3[class~=aktiv] + div input').each(function(obj,nr) {

			 if (obj.get('value').split('|')[0] > 0 || obj.get('value').split('|')[0].replace(/\,/,'.') > 0) {

				 obj.addEvent('click',function() {
					 dslPaketChoosen = true;
					 $('keinpaket').checked = true;
					 $('ohneBandbreite').checked = true;
					 $('ohneBandbreite').checked = true;
					 
					 _self.elementsOptionsDSL.fade('in');

					 switch($('tarife').getElements('[name=package]:checked').get('id')[0]) {

						 case 'DSLMegaPlus':
								dslpreis = pricesspecial[1];
							 break;
						 case 'DSLMega':
								dslpreis = pricesspecial[2];
							 break;
						 case 'DSLMaxi':
								dslpreis = pricesspecial[3];
							 break;
						 case 'DSLSolo':
								dslpreis = pricesspecial[4];
							 break;
						 case 'DSLMini':
								dslpreis = pricesspecial[5];
							 break;	 
						default:
							 //Wenn DSLPaket gewählt und Mobil Midi, dann ermaessigten Preis annehmen.
							 switch ($('mo').get('value')) {
									case '13' :
											dslpreis = dslPreisErmaessigt;
										break;
									default:
											dslpreis = pricesspecial[0];
										break;
							 }

							break;

					 }

					/*Sonderfaelle fue einzelnen Optionen behandeln*/
					 _self.manageSpecialOptions(this);

					 /* DSL bandbreite je nach Paket setzen*/
					 _self.setDSLBandbreite(this);

					 /* Gesamtpreis neu berechnen*/
					 _self.refreshPrice();
				 });
			 }

			 $('keinDLPaket').addEvent('click',function() {
				 dslPaketChoosen = false;
				 $('tarife').reset();

				 _self.elementsOptionsDSL.fade('out');

				 //Grundpreis wieder herstellen
				 dslpreis = pricesspecial[0];

				 /*Sonderfaelle fue einzelnen Optionen behandeln*/
				 _self.manageSpecialOptions(this);

				 /* DSL bandbreite je nach Paket setzen*/
				 _self.setDSLBandbreite(this);

				 /* Gesamtpreis neu berechnen*/
				 _self.refreshPrice();
			 });

		 });

	 },

	 /*
	  * Setzt je nach gewähltem DSL Paket die Bandbreite für die OB im Formularfeld dsl
	  */
	 setDSLBandbreite: function (event) {

		 var bandbreite = 0;

		 switch(event.get('id')) {

			case 'DSLMegaPlus' :
					bandbreite = 35000;
				 break;
			case 'DSLMega' :
					bandbreite = 16000;
				 break;
			case 'DSLMaxi' :
					bandbreite = 6000;
				 break;
			case 'DSLMini' :
					bandbreite = 2000;
				 break;
			case 'DSLSolo' :
					bandbreite = 6000;
				 break;
		 }

		 $('tarife').getElement('[name=dsl]').set('value',bandbreite);

	 },

	 /*behandelt spezialfaelle je nach gewählter Option*/
	 manageSpecialOptions : function (event) {

	switch(event.get('id')) {

			case 'DSLMegaPlus' :
					/*Leitung auf ISDN festlegen, Analog ausblenden, Preis ISDN = 0 */
					this.elementsOptionsAnschlussStandard.setStyle('display','none');
					this.elementsOptionsBandbreite.setStyle('display',null).fade('in');
					$('isdn').checked = true;
					$('isdn').set('value','0|isdn');
					$('optionsBandbreite16000').hide();
					$('optionsBandbreite50000').show();
					anschlussChanged = true;
				break;

			case 'DSLSolo' :
					/*Leitung auf ISDN festlegen, Analog ausblenden, Preis ISDN leer */
					this.elementsOptionsAnschlussStandard.setStyle('display','none');
					this.elementsOptionsBandbreite.setStyle('display',null).fade('in');
					$('isdn').checked = false;
					$('analog').checked = false;
					$('isdn').set('value','');
					$('optionsBandbreite16000').show();
					$('optionsBandbreite50000').hide();
					anschlussChanged = true;
				 break;

			default:
					if(dslPaketChoosen) {
						this.elementsOptionsAnschlussStandard.setStyle('display',null);
						this.elementsOptionsBandbreite.setStyle('display','none').fade('out');
					}

					if(anschlussChanged) {
						$('analog').checked = true;
						$('isdn').set('value',origISDNPrice+'|isdn');
						$('optionsBandbreite16000').show();
						$('optionsBandbreite50000').show();
						anschlussChanged = false;
					}
				 break;
		 }
	 },

	 /* Alle Preise in der linke Auswahl box neu schreiben ... */
	 rewritePriceLabels : function() {

		$('tarife').getElements('span.pricelabel').each(function(obj,nr){
			try {
				var preis = obj.getParent().getParent().getPrevious('input').get('value').split('|')[0];
				obj.set('html',preis.replace(/\./,','));
			}
			catch(e) {}
		});
	 },

	 /*
	* DSL Paket Seiten: Wenn DSl Mega oder Maxi zusammen mit MoFUPaket gewählt wird, dann 2te Leitung = 4Euro
	*/
	 handleSpecialPriceDSL : function()   {
		 var _self = this;
		 var origPrice = $('isdn').get('value');

		 $('mobilmini').addEvent('click',function () {$('isdn').set('value','5.00|isdn'); _self.rewritePriceLabels(); _self.refreshPrice();} );
		 $('mobilmidi').addEvent('click',function () {$('isdn').set('value','5.00|isdn'); _self.rewritePriceLabels(); _self.refreshPrice();} );
		 $('mobilmaxi').addEvent('click',function () {$('isdn').set('value','5.00|isdn'); _self.rewritePriceLabels(); _self.refreshPrice();} );

		 $('ohnemobil').addEvent('click',function () {$('isdn').set('value',origPrice+'|isdn'); _self.rewritePriceLabels(); _self.refreshPrice();} );

	 }

	});
	
	
	
var DSLPrices2 = new Class({

	Extends: DSLPrices,
	
	addCode: function(userfunction){
			userfunction();
	}

});
	
	
var dslaktion = function(){
				
	$$('.additionalTextOptions span.ato1').set('html','DSL-Aktion: Ihr Extra nach Wahl im Wert von 60 EUR<sup>35</sup>');
	$$('.additionalTextOptions span.ato2').set('html','DSL-Aktion: Ihr Extra nach Wahl im Wert von 60 EUR<sup>35</sup>');
	$$('.additionalTextOptions span.ato1').setStyle('display','inline');
	$$('.additionalTextOptions span.ato2').setStyle('display','none');

	var aktionstext = function(){
	
		if( $('p2646') && $('p2646').checked)$('p2646').fireEvent('click');
		if( $('p2648') && $('p2648').checked)$('p2648').fireEvent('click');
		if( $('p2647') && $('p2647').checked)$('p2647').fireEvent('click');
	
	}

	$('keinDLPaket').checked = true;
	$$('.dslaktion').fade('out');
	
	$('keinDLPaket').addEvent('click',function(){$$('.dslaktion').fade('out');});
	$('DSLMega').addEvent('click',function(){_self.refreshPrice();aktionstext();$$('.dslaktion').fade('in');});
	$('DSLMaxi').addEvent('click',function(){_self.refreshPrice();aktionstext();$$('.dslaktion').fade('in');});
	$('DSLMini').addEvent('click',function(){_self.refreshPrice();aktionstext();$$('.dslaktion').fade('in');});
	$('DSLSolo').addEvent('click',function(){_self.refreshPrice();aktionstext();$$('.dslaktion').fade('in');});
	
	if($('p2646')) {
		$('p2646').addEvent('click',function(){
		
			$$('.additionalTextOptions span.ato1').setStyle('display','inline');
			$$('.additionalTextOptions span.ato2').setStyle('display','none');	
		
		});
	}
	if($('p2648')) {
		$('p2648').addEvent('click',function(){
		
			$$('.additionalTextOptions span.ato1').setStyle('display','none');
			$$('.additionalTextOptions span.ato2').setStyle('display','inline');	
		
		});
	}
	
	if($('p2647')) {
		$('p2647').addEvent('click',function(){
		
			$$('.additionalTextOptions span.ato1').setStyle('display','inline');
			$$('.additionalTextOptions span.ato2').setStyle('display','none');	
		
		});
	}
	
	if($('DSLMegaPlus')) {
		$('DSLMegaPlus').addEvent('click',function(){
		
			 if(!$('keinDLPaket').checked) 
			 {
			 $$('.additionalTextOptions span.ato1').setStyle('display','none');
			 $$('.additionalTextOptions span.ato2').setStyle('display','none');
			 }
			 
			 $$('.dslaktion').fade('out');
		});
	}
}
	
	
	
	
	
	
	
	
	
	

	
	
	
	
	
