	window.addEvent('domready', function(){
	
	$$('ul.tabs').each(function(tablist){
		var tabs = tablist.getChildren('li');
		var array = [];
		
		tabs.each(function(tab){
			//array.include( $(tab.get('rel')) );
			
			if( tab.hasClass('selected') )
				$(tab.get('rel')).setStyle('display', 'block');
			
			tab.addEvent('click', function() {
				var rel = tab.get('rel');
				
				$$('.tab-area').setStyle('display', 'none');
				$(rel).setStyle('display', 'block');
				
				tabs.removeClass('selected');
				tab.addClass('selected');
			});
			
		});
		
	});
	
		$$('#product-image img').set('src', $$('#tab-photos .image-list a.item')[0]);
		$$('#tab-photos .image-list a.item').addEvents({
			'click': function(event) {
				event.stop();
				
				$$('#product-image img').set('src', event.target);
			}
		});
		$$('.cvcToggle').addEvents({
			'click': function(event) {
				event.stop();
				if ($$('#cvc-popup #popup').getStyle('visibility') == 'hidden') {
					$$('#cvc-popup #popup').fade('in');
				}
				else {
					$$('#cvc-popup #popup').fade('out');
				}
			}
		});
		
		if ($$('#popup-wrap #popup')) {
			$$('#popup-wrap #popup').fade('in');
		}
		
		$$('.continueCheckout').addEvents({
			'click': function(event) {
				event.stop();
				$$('#popup-wrap #popup').fade('out');
			}
		});
		
		if ($$('.booking-window')[0].hasClass('hotel')) {
			$$('.booking-window input.numberAdults').addEvents({'keyup': bookingHotelInputChange});
			$$('.booking-window input.numberTeens').addEvents({'keyup': bookingHotelInputChange});
			$$('.booking-window input.numberChilds').addEvents({'keyup': bookingHotelInputChange});
			
			if ($$(".youthDiscount .childDiscount input").length > 0) {
				$$(".youthDiscount .childDiscount input").addEvent('click', function() {
					if ($$(".youthDiscount .teenDiscount input").length > 0) {
						$$(".youthDiscount .teenDiscount input")[0].checked = false;
					}
					bookingHotelInputChange();
				});
			}
			
			if ($$(".youthDiscount .teenDiscount input").length > 0) {
				$$(".youthDiscount .teenDiscount input").addEvent('click', function() {
					if ($$(".youthDiscount .childDiscount input").length > 0) {
						$$(".youthDiscount .childDiscount input")[0].checked = false;
					}
					bookingHotelInputChange();
				});
				$$(".youthDiscount .teenDiscount input")[0].checked = true;
			}
			
			$$('.numberSingle input').addEvents({'keyup': bookingHotelInputChange});
			$$('.numberDouble input').addEvents({'keyup': bookingHotelInputChange});
			$$('.numberTriple input').addEvents({'keyup': bookingHotelInputChange});
			
			$$('.singleRoom input').addEvent('click', checkBoxChange);
			$$('.doubleRoom input').addEvent('click', checkBoxChange);
			$$('.tripleRoom input').addEvent('click', checkBoxChange);
			
			$$('.booking-window .value-add input').addEvents({'click': bookingHotelInputChange});

			bookingHotelInputChange(null);
			$('output').setStyle('display', 'none');
		}
		else {
			$$('.booking-window input.numberAdults').addEvents({'keyup': bookingInputChange});
			$$('.booking-window input.numberTeens').addEvents({'keyup': bookingInputChange});
			$$('.booking-window input.numberChilds').addEvents({'keyup': bookingInputChange});

			$$('.booking-window .value-add input').addEvents({'click': bookingInputChange});
			bookingInputChange(null);
		}
	});
	
	function bookingInputChange(event) {
		var price = $$('.booking-window .price .value')[0].get('text');

		price = price.replace(/[^0-9]/g, '');
		
		var numAdults = Number($$('.booking-window input.numberAdults').get('value'));
		var numTeens = Number($$('.booking-window input.numberTeens').get('value'));
		
		var total = (price*numAdults)+((price/2)*numTeens);
		
		var valueAddedCheck = $$('.booking-window .value-add input');
		
		var totalValueAddedPrice = 0;
		for (var i = 0; i<valueAddedCheck.length; i++) {
			if (valueAddedCheck[i].get('checked')) {
				var valueAddedPrice = valueAddedCheck[i].getParent().getParent().getElement('.value-add-price').get('text');
				valueAddedPrice = Number(valueAddedPrice.replace('EUR', ''));
				
				totalValueAddedPrice += valueAddedPrice*(numAdults+numTeens);
				
			}
		}

		$$('.booking-window .price .total').set('html', (total+totalValueAddedPrice)+' &euro;');
	}
	
	function bookingHotelInputChange(event) {
		$('output').setStyle('display', 'block');

		var price = $$('.booking-window .price .value')[0].get('text');

/*		price = price.replace(/[^0-9]/g, '');*/
		
		var numAdults = Number($$('.booking-window input.numberAdults').get('value'));
		var numTeens = Number($$('.booking-window input.numberTeens').get('value'));
		var numChilds = Number($$('.booking-window input.numberChilds').get('value'));
		
		var singleChecked = $$('.singleRoom input')[0].checked;
		var doubleChecked = $$('.doubleRoom input')[0].checked;
		var tripleChecked = $$('.tripleRoom input')[0].checked;

		if (!singleChecked) {
			$$('.numberSingle input').set('value', '');
		}
		if (!doubleChecked) {
			$$('.numberDouble input').set('value', '');
		}
		if (!tripleChecked) {
			$$('.numberTriple input').set('value', '');
			
			if ($$(".youthDiscount .teenDiscount input").length > 0) {
				$$(".youthDiscount .teenDiscount input")[0].checked = false;
			}

			if ($$(".youthDiscount .childDiscount input").length > 0) {
				$$(".youthDiscount .childDiscount input")[0].checked = false;
			}
		}
				
		var numberSingle = Number($$('.numberSingle input').get('value'));
		var numberDouble = Number($$('.numberDouble input').get('value'));
		var numberTriple = Number($$('.numberTriple input').get('value'));

		var singleroomPrice = $$('.singleroomPrice')[0].get('text');
		var doubleroomPrice = $$('.doubleroomPrice')[0].get('text');
		var tripleroomPrice = $$('.tripleroomPrice')[0].get('text');

		var basePrice = $$('.totalPrice')[0].get('text');
		
		if (numAdults+numTeens+numChilds == 0) {
			$$('.singleRoom input').set('disabled', 'disabled');
			$$('.doubleRoom input').set('disabled', 'disabled');
			$$('.tripleRoom input').set('disabled', 'disabled');
		}
		if (numAdults+numTeens+numChilds >= 1) {
			$$('.singleRoom input').set('disabled', '');
			$$('.doubleRoom input').set('disabled', 'disabled');
			$$('.tripleRoom input').set('disabled', 'disabled');
		}
		if (numAdults+numTeens+numChilds >= 2) {
			$$('.singleRoom input').set('disabled', '');
			$$('.doubleRoom input').set('disabled', '');
			$$('.tripleRoom input').set('disabled', 'disabled');
		}
		if (numAdults+numTeens+numChilds >= 3) {
			$$('.singleRoom input').set('disabled', '');
			$$('.doubleRoom input').set('disabled', '');
			$$('.tripleRoom input').set('disabled', '');
		}
		
		if ((numAdults+numTeens+numChilds) == (numberSingle+numberDouble+numberTriple)) {
			$('output').setStyle('display', 'none');
			$$(".booking-window #bookingButton input").set('disabled', '');
			$$(".booking-window #bookingButton input").removeClass('disabled');
			$$(".booking-window #output").addClass('noerror');
		}
		else if ((numAdults+numTeens+numChilds) < (numberSingle+numberDouble+numberTriple)) {
			$('output').set('text', 'Total number of guests cannot be more than '+(numAdults+numTeens+numChilds)+'.');
			$$(".booking-window #bookingButton input").set('disabled', 'disabled');
			$$(".booking-window #bookingButton input").addClass('disabled');
			$$(".booking-window #output").removeClass('noerror');
		}
		else {
			$('output').set('text', 'Total number of guests must be '+(numAdults+numTeens+numChilds)+'.');
			$$(".booking-window #bookingButton input").set('disabled', 'disabled');
			$$(".booking-window #bookingButton input").addClass('disabled');
			$$(".booking-window #output").removeClass('noerror');
		}

		var total = 0;
		
		if (singleChecked) {
			total += (basePrice*numberSingle)+(singleroomPrice*numberSingle);
		}
		if (doubleChecked) {
			total += (basePrice*numberDouble);
		}
		
		if ((tripleChecked) && (numberTriple > 0)) {
			if ($$(".youthDiscount .childDiscount input")[0].checked) {
				total += (basePrice*numberTriple)+(basePrice*-0.5);
			}
			else if ($$(".youthDiscount .teenDiscount input")[0].checked) {
				total += (basePrice*numberTriple)+(basePrice*-0.25);
			}
			else {
				total += (basePrice*numberTriple)+(basePrice*-0.1);
			}
		}
		
		var valueAddedCheck = $$('.booking-window .value-add input');
		var totalValueAddedPrice = 0;
		for (var i = 0; i<valueAddedCheck.length; i++) {
			if (valueAddedCheck[i].get('checked')) {
				var valueAddedPrice = valueAddedCheck[i].getParent().getParent().getElement('.value-add-price').get('text');
				valueAddedPrice = Number(valueAddedPrice.replace('EUR', ''));
				
				totalValueAddedPrice += valueAddedPrice;
				
			}
		}
		
		total += totalValueAddedPrice;


		if (total > 0) {
			$$('.booking-window .price .total').set('html', addCommas(total.toFixed(0))+' &euro;');
		}
		else {
			$$('.booking-window .price .total').set('html', '0 &euro;');
		}

/*
		console.log('--------------');
		console.log('numAdults = '+numAdults);
		console.log('numTeens = '+numTeens);
		console.log('numChilds = '+numChilds);
		console.log('numberSingle = '+numberSingle);
		console.log('numberDouble = '+numberDouble);
		console.log('numberTriple = '+numberTriple);
		console.log('singleChecked = '+singleChecked);
		console.log('doubleChecked = '+doubleChecked);
		console.log('tripleChecked = '+tripleChecked);
*/
	}
	
	function tripleRoomCheck(event) {
		if (event.target.checked) {
			$$('.youthDiscount').setStyle('display', 'block');
		}
		else {
			$$('.youthDiscount').setStyle('display', 'none');
		}
	}
	
	function checkBoxChange(event) {
		bookingHotelInputChange(event);
		if (event.target.checked) {
			event.target.getParent().getParent().addClass('selected');
			event.target.getParent().getParent().removeClass('closed');
		}
		else {
			event.target.getParent().getParent().removeClass('selected');
			event.target.getParent().getParent().addClass('closed');
		}
	}
	
	function addCommas(nStr) {
		nStr += '';
		x = nStr.split('.');
		x1 = x[0];
		x2 = x.length > 1 ? '.' + x[1] : '';
		var rgx = /(\d+)(\d{3})/;
		while (rgx.test(x1)) {
			x1 = x1.replace(rgx, '$1' + '.' + '$2');
		}
		return x1 + x2;
	}