window.addEvent('domready', function() {
	
	window.onbeforeunload = confirmExit;
	  function confirmExit()
	  {
	    if(!form.exit){
			return "Wenn Sie diese Seite jetzt verlassen, gehen alle Ihre Eingaben verloren. Möchten Sie das Formular wirklich verlassen?";
		} else {
			return;
		}
	  }

	var form = R3Form.initialize({
		'whichForm': 'ltdpremium'
	});

	
	if(Browser.Engine.trident) {
		$('engine').value = "Internet Explorer " + Browser.Engine.version;
	}
	else if(Browser.Engine.gecko){
		$('engine').value = "Firefox/Mozilla " + Browser.Engine.version;
	}
	if (Browser.Engine.webkit) {
		$('engine').value = "Safari/Chrome " + Browser.Engine.version;		
	}
	if(Browser.Engine.presto){
		$('engine').value = "Opera " + Browser.Engine.version;
	}
	
	$('platform').value = Browser.Platform.name;

	///////////////////////////////////////////////////////////////////////////////////////////
	//////////////////////////////////// GUTSCHEINAKTION ///////////////////////////////////
	
		$('rightcode').hide();
		$('wrongcode').hide();

		$$('.voucher').show();

		//JSON-Request für Gutscheincodes
		$('codeeinloesen').addEvent('click', function(e){
			e.stop();
			new Request.JSON({
				method: 'post',
				url: jsBaseURL + "bestellformular/limited/checkGutscheinCode",
				onRequest: function() {
					$('gutscheincode').addClass('voucherloading');
				},
				onSuccess: function(response){
					$('gutscheincode').removeClass('voucherloading');
					if(response.reduziert === 'true'){
						$('gutscheincode').removeClass('error');
						$('gutscheincode').addClass('success');
						$('gutscheincode').setProperty('disabled',true);
						$('codeeinloesen').hide();
						form.validCode = response.code;
						form.rabatt = 25;
						form.gesamtpreis = (form.gesamtpreis - form.rabatt).toInt();
						// console.log(form.validCode);
						$('rightcode').show();
						$('wrongcode').hide();
					}
					else {
						$('gutscheincode').removeClass('success');
						$('gutscheincode').addClass('error');
						$('rightcode').hide();
						$('wrongcode').show();
					}
				}
			}).post($('limitedForm'));
		});
	

	//Weiches Scrollen
	//new SmoothScroll({ options }, window);
	var smooth = new Fx.Scroll(window, { duration:700 }); 
	
	// Limited-Name ausfüllen, wenn Cookie gesetzt ist
	if (Cookie.read('limitedname') !== null) {
		$('ln_name').value = Cookie.read('limitedname');
	};
	
	
	SqueezeBox.initialize({
	        size: {x: 350, y: 100}
	 });

	SqueezeBox.assign($$('a.boxed'), {
			parse: 'rel'
		});
		
	SqueezeBox.assign($('readAGB'), {
			
			size: {x: 700, y: 400}
	});
	
	// Select-Felder stylen
	$$('select.styleMe').styleSelect();

	// Produktübersicht verstecken
	$$('.produktuebersicht tr').hide();
	
	// alle "Änderungen-speichernchanging = false"-Links verstecken
	$$('.jsChange').hide();
	
	$('ln_name').addEvent('blur', function(e) {
		this.removeClass('success');
	});
	
	//Eingabefelder stylen
	$$('#limitedForm input[type="text"]').addClass("notInFocus");

	$$('#limitedForm input[type="text"]').addEvent('focus',function() {  
	 	$(this).removeClass("notInFocus").addClass("inFocus");
		this.select();
	});

	$$('#limitedForm input[type="text"]').addEvent('blur',function() {
		$(this).removeClass("inFocus").addClass("notInFocus");
		
	});
	
	$$('#limitedForm textarea').addEvent('focus',function() {  
	 	$(this).removeClass("notInFocus").addClass("inFocus");
		this.select();
	});

	$$('#limitedForm textarea').addEvent('blur',function() {
		$(this).removeClass("inFocus").addClass("notInFocus");
		
	});
	

	//Clientseitige Validierung
	var fc_lnName 		= new FormCheck('slide_ln', {
		display : {
			showErrors: 1
		},
		trimValue: true
	});


	
	var fc_anschriften 	= new FormCheck('slide_anschriften', {
		display : {
			showErrors: 1
		},
		trimValue: true
	});
	
	
	// auch die Firmen wieder entfernen, aber gesondert
	var firma_ag = $('anschriften_firma_ag');
	fc_anschriften.dispose(firma_ag);

	// Wenn Häkchen bei Firmen gesetzt wird, das entsprechende Feld wieder ins validations-array einfügen
	$('anschriften_firma_cb_ag').addEvent('click',function(){
		if(fc_anschriften.validations.contains(firma_ag)){
			fc_anschriften.dispose(firma_ag);
		}
		else {
			fc_anschriften.register(firma_ag);
		}
	});


	// Formular drucken
	
	$('printform').addEvent('click',function(e){
		e.stop();
		form.exit = true;
		var sendform = new Request({
			url: jsBaseURL + "bestellformular/limited/prepareprintsession",
			data: {formdata:JSON.encode(form.datacontainer),formtype:'premium'},
			method: 'post',
			async: true,
			onRequest: function(){SqueezeBox.open($('printingForm'), {handler: 'adopt',closable: false,closeBtn: false});},
			onSuccess: function(response){
				SqueezeBox.open(jsBaseURL +"bestellformular/limited/prepareprint", {handler: 'iframe',size: {x: 550, y: 500}});
			}
		}).send();
	});


	// Produkte sortieren und alternierende Zeilenfarbe
	
	$$('.optionen').grab($$('.optionen .toggleWrapper').getLast(),'top');
	
	
	// Bereiche auf- und zuklappen
	form.activateToggles();
	
	// Special-Toggle (für Satzung und Express)
	$$('.specialToggleWrapper').each(function(item){
		var slider = new Fx.Slide(item.getElement('.sectionToggle'));
  		var infotoggle = item.getElement('.toggle');
		var cbtoggle = item.getElement('.specialtoggle');
		slider.hide();
		
	  	cbtoggle.addEvent('click', function(){ 
			if(this.hasClass('checked')) {
				slider.slideOut();
				if(this.getProperty('title') === 'satzung') {
					$('satzungspreis').set('html', $('ln_100025_preis').get('html'));
				} else if (this.getProperty('title') === 'express'){
					$('expresspreis').set('html', $('ln_100008_preis').get('html'));
				}
				$$('input[name='+this.getProperty('title')+']').getParent().removeClass('selected');
				$$('input[name='+this.getProperty('title')+']').getParent().addClass('unselected');
			} else {
				slider.slideIn();
				$$('input[name='+this.getProperty('title')+']')[0].getParent().removeClass('unselected');
				$$('input[name='+this.getProperty('title')+']')[0].getParent().addClass('selected');
			}
		});
		
		infotoggle.addEvent('click', function(){ 
			slider.toggle();
			$$('input[name='+cbtoggle.getProperty('title')+']').each(function(elem){
				elem.addEvent('click',function(){
					cbtoggle.removeClass('unchecked');
					cbtoggle.addClass('checked');
				});
				if(elem.get('disabled')) {
					elem.setProperty('disabled',false);
				}
			});
		});
	});
	
	
	// Ausgewählte Unterpunkte entfernen, wenn Oberpunkt entfernt wird
	$$('.oberpunkt').each(function(item){
		item.addEvent('click',function(){
			if(item.hasClass('checked')) {
				$$('input[name='+item.getProperty('title')+']').each(function(elem){
					if(elem.getParent().hasClass('selected')){
						elem.getParent().removeClass('selected');
						elem.getParent().addClass('unselected');
					}
				});
			}
		});
	});
	
	// Preis der deutschen Satzung in Oberpunkt spiegeln
	$('satzungspreis').set('html', $('ln_100025_preis').get('html'));
	
	// Preise der einzelnen Satzungen nach Klick in den Oberpunkt spiegeln
	$$('.satzung_cb').each(function(item) {
		item.addEvent('click', function(){
			var preis = this.getAttribute('for') + '_preis';
			$('satzungspreis').set('html', $(preis).get('html'));
		});
	});
	
	
	// Cover-Div dynamisch anpassen
	$$('.divCover').each(function(item) {
			item.setStyles({
				height : item.getParent().getStyle('height'),
				padding : item.getParent().getStyle('padding'),
				'background-color': item.getParent().getStyle('background-color')
		
			});
	});
	
	// Wenn Änderungen gespeichert werden, die ausgrauten Bereiche
	// wieder einblenden
	$$('.jsChange').addEvent('click',function(e){
		$$('.changeCover').destroy();
	});


	
	// Schöne Checkboxes und Radio-Buttons
	FancyForm.start();

	
	// WEITER-EVENTS
	$('slide_ln_go').addEvent('click', function(e){
		e.stop();
		if(fc_lnName.isFormValid()){
			form.storeData('slide_ln');
			form.createLtdName();
			form.updateLinks('firstStep','slide_ln');
			form.navigateTo('slide_anschriften');
			updatePrice();
		}
	});
	
	$('slide_ln_edit').addEvent('click', function(e){
		e.stop();
		if(fc_lnName.isFormValid()){
			form.storeData('slide_ln');
			form.updateView('firstStep');
			form.createLtdName();
			form.changing = false;
			form.navigateTo('slide_anschriften');
			$$('.hide').fade('in');
			$('firstStep').removeClass('changeMe');
			$('slide_ln').removeClass('changeMe');
			smooth.toElement('scrollziel');
			updatePrice();
		}
	});
	
	function highlightIt(id) {
	    var myFx = new Fx.Tween($(id));
	    var on  = function(){myFx.start('border-color','#fff','#841303');};
	    var off = function(){myFx.start('border-color','#841303','#fff');};

	    myFx.start('border-color','#fff','#841303').wait(100)
	        .chain(on).wait(100)
	        .chain(off).wait(100)
	        .chain(on).wait(100)
	        .chain(off).wait(100)
	        .chain(on).wait(100)
	        .chain(off).wait(100)
	        .chain(on).wait(100)
	        .chain(off).wait(100)
	        .chain(on).wait(100)
			.chain(off).wait(100);
	
	}
	
	
	
	$('slide_anschriften_go').addEvent('click', function(e){
		e.stop();
		if(fc_anschriften.isFormValid()){
			// console.log(JSON.encode(form.datacontainer));
			form.storeData('slide_anschriften');
			
			// Wenn Kreditkarten- oder Giropayzahlung ausgewählt ist, wird orderLtdPremium() in payment_success_premium.js aufgerufen...
			if(form.datacontainer['zahlungsart'] === 'Kreditkarte' || form.datacontainer['zahlungsart'] === 'Giropay'){
				var amount = $('gesamtpreis_sidebar').get('text').replace(',','.'),
				    locale = form.datacontainer['anschriften_land1_ag'],
					//currencyGBP = form.datacontainer['waehrung_2'],
					//currencyUSD = form.datacontainer['waehrung_3'],
					currency ="EUR",
					ordertype = "premium";
					
				//if(currencyGBP === 'selected') currency = 'GBP';
				//if(currencyUSD === 'selected') currency = 'USD';

				if(locale === 'D' || locale === 'A' || locale === 'CH') {
					locale = 'de';
				} else if (locale === 'F') {
					locale = 'fr';
				} else {
					locale = 'en';
				}
				
				// AUSLESEN BEI LIVE-SCHALTUNG!!!!!!!!!!!!!!!!!!!!!
				// amount = '20.00';
				
				if(form.datacontainer['zahlungsart'] === 'Kreditkarte') {
					SqueezeBox.open(jsBaseURL + "Kreditkarte/Formular/"+ amount + "_" + currency + "_" + locale + "_" + ordertype + "", {handler: 'iframe',closable: false,size:{x:610,y:630}});
				} else {
					var sendform = new Request({
						url: jsBaseURL + "payment/giropaysetsession",
						data: {formdata:JSON.encode(form.datacontainer)},
						method: 'post',
						async: true,
						onRequest: function(){
							// console.log(form.datacontainer);
							//SqueezeBox.open($('sendingMessage'), {handler: 'adopt',closable: false,closeBtn: false});
						},
						onSuccess: function(response){
							window.location = jsBaseURL + "Giropay/Formular/"+ amount + "_" + currency + "_" + locale + "";
						}
					}).send();
					
				}
				
			} else {
				form.orderLtdPremium();
			}
			
		}
	});
	
	$('slide_anschriften_back').addEvent('click', function(e){
		e.stop();
		form.navigateTo('slide_ln');
	});
	
	
	
	$('branche').addEvent('change',function(){
		if (this.getSelected()[0].value === "1000") {
			$('branche-wrapper').show();
			fc_anschriften.register($('sonstigebranche'));
		} else {
			$('branche-wrapper').hide();
			if(fc_anschriften.validations.contains($('sonstigebranche'))){
				fc_anschriften.dispose($('sonstigebranche'));
			}
		}
	});
	
	
	function updatePrice(){
		var gesamtpreis = 0;
		if($('ln_100032').getParent().hasClass('checked')) {
			gesamtpreis += 350;
		}
		if($('ln_100026').getParent().hasClass('checked')) {
			gesamtpreis += 280;
		}
		if($('ln_100025').getParent().hasClass('selected')) {
			gesamtpreis += 70;
		}
		if($('ln_100029').getParent().hasClass('selected')) {
			gesamtpreis += 160;
		}
		if($('ln_100030').getParent().hasClass('selected')) {
			gesamtpreis += 160;
		}
		if($('ln_100033').getParent().hasClass('selected')) {
			gesamtpreis += 250;
		}
		if($('ln_100007').getParent().hasClass('checked')) {
			gesamtpreis += 350;
		}
		gesamtpreis = gesamtpreis - form.rabatt.toInt();
		
		$('gesamtpreis_sidebar').set('html',form.number_format(gesamtpreis,2,","));
	}
	
	
	$('updatePrice').addEvent('click',function(e){
		e.stop();
		updatePrice();
	});
	
	$('ln_100032').getParent().setStyle('opacity',0.4);
	
	//Vorauswahl
	switch (Cookie.read('laenderpaket')) {
		case 'de-premium':
			$('isLaenderpaket').set('value','de');
			$$('.laenderpaket-flag').addClass('laenderpaket-de');
			$('ln_100026').getParent().removeClass('unchecked').addClass('checked').setStyle('opacity',0.4);
			$('ln_100026').setProperty('disabled', true);
			$('ln_satzung').getParent().removeClass('unchecked').addClass('checked').setStyle('opacity',0.4).clone(true,true).inject($('ln_satzung').getParent(),'after');
			$('ln_satzung').getParent().destroy();
			$('ln_satzung').setProperty('disabled', true);
			$('satzungssection').getParent().setStyle('height','auto');
			$('satzungssection').setStyle('margin',0);
			$('ln_100025').getParent().removeClass('unselected').addClass('selected').setStyle('opacity',0.4).clone(true,true).inject($('ln_100025').getParent(),'after');
			$('ln_100025').getParent().destroy();
			$('ln_100025').setProperty('disabled', false);
			$$('.row_100029').hide();
			$$('.row_100030').hide();
			$$('.row_100033').hide();
			$('optionalproducts').grab($('produktnr_6'),'bottom');
			Cookie.dispose('laenderpaket');
			break;
			
		case 'at-premium':
			$('isLaenderpaket').set('value','at');
			$$('.laenderpaket-flag').addClass('laenderpaket-at');
			$('ln_100026').getParent().removeClass('unchecked').addClass('checked').setStyle('opacity',0.4);
			$('ln_100026').setProperty('disabled', true);
			$('ln_satzung').getParent().removeClass('unchecked').addClass('checked').setStyle('opacity',0.4).clone(true,true).inject($('ln_satzung').getParent(),'after');
			$('ln_satzung').getParent().destroy();
			$('ln_satzung').setProperty('disabled', true);
			$('satzungssection').getParent().setStyle('height','auto');
			$('satzungssection').setStyle('margin',0);
			$('ln_100029').getParent().removeClass('unselected').addClass('selected').setStyle('opacity',0.4).clone(true,true).inject($('ln_100029').getParent(),'after');
			$('ln_100029').getParent().destroy();
			$('ln_100029').setProperty('disabled', false);
			$$('.row_100025').hide();
			$$('.row_100030').hide();
			$$('.row_100033').hide();
			$('satzungspreis').set('html',$('ln_100029_preis').get('html'));
			$('optionalproducts').grab($('produktnr_6'),'bottom');
			Cookie.dispose('laenderpaket');
			break;
			
		case 'ch-premium':
			$('isLaenderpaket').set('value','ch');
			$$('.laenderpaket-flag').addClass('laenderpaket-ch');
			$('ln_100026').getParent().removeClass('unchecked').addClass('checked').setStyle('opacity',0.4);
			$('ln_100026').setProperty('disabled', true);
			$('ln_satzung').getParent().removeClass('unchecked').addClass('checked').setStyle('opacity',0.4).clone(true,true).inject($('ln_satzung').getParent(),'after');
			$('ln_satzung').getParent().destroy();
			$('ln_satzung').setProperty('disabled', true);
			$('satzungssection').getParent().setStyle('height','auto');
			$('satzungssection').setStyle('margin',0);
			$('ln_100030').getParent().removeClass('unselected').addClass('selected').setStyle('opacity',0.4).clone(true,true).inject($('ln_100030').getParent(),'after');
			$('ln_100030').getParent().destroy();
			$('ln_100030').setProperty('disabled', false);
			$$('.row_100025').hide();
			$$('.row_100029').hide();
			$$('.row_100033').hide();
			$('satzungspreis').set('html',$('ln_100030_preis').get('html'));
			$('optionalproducts').grab($('produktnr_6'),'bottom');
			Cookie.dispose('laenderpaket');
			break;
			
		case 'es-premium':
			$('isLaenderpaket').set('value','es');
			$$('.laenderpaket-flag').addClass('laenderpaket-es');
			$('ln_100026').getParent().removeClass('unchecked').addClass('checked').setStyle('opacity',0.4);
			$('ln_100026').setProperty('disabled', true);
			$('ln_satzung').getParent().removeClass('unchecked').addClass('checked').setStyle('opacity',0.4).clone(true,true).inject($('ln_satzung').getParent(),'after');
			$('ln_satzung').getParent().destroy();
			$('ln_satzung').setProperty('disabled', true);
			$('satzungssection').getParent().setStyle('height','auto');
			$('satzungssection').setStyle('margin',0);
			$('ln_100033').getParent().removeClass('unselected').addClass('selected').setStyle('opacity',0.4).clone(true,true).inject($('ln_100033').getParent(),'after');
			$('ln_100033').getParent().destroy();
			$('ln_100033').setProperty('disabled', false);
			$$('.row_100025').hide();
			$$('.row_100029').hide();
			$$('.row_100030').hide();
			$('info_satzung').hide();
			$('info_satzung_spanisch').show();
			$('satzungspreis').set('html',$('ln_100033_preis').get('html'));
			$('optionalproducts').grab($('produktnr_6'),'bottom');
			Cookie.dispose('laenderpaket');
			break;
		
		case 'uk-premium':
			$('isLaenderpaket').set('value','gb');
	  		$$('.laenderpaket-flag').addClass('laenderpaket-uk');
			$('optionalproducts').grab($('produktnr_6'),'bottom');
	  		Cookie.dispose('laenderpaket');
	  		break;
			
		default:
			break;
		
	};

	$$('.optionen .row').each(function(item, index) {
		if (index%2 !== 0) {
			item.addClass('stripeA');
		} else {
			item.addClass('stripeB');
		}
	});
	
	$$('#slide_ln .sectionToggle').each(function(item, index) {
		if (index%2 !== 0) {
			item.addClass('stripeA');
		} else {
			item.addClass('stripeB');
		}
	});

	updatePrice();
	
});
