var Reservation = new Object;
Reservation.lock = false;
Reservation.id_offers = false;
Reservation.ident = 'room';
Reservation.bookingScroll = 0;
Reservation._tracking = false;

//new PeriodicalExecuter(cookiesDump, 3);

function cookiesDump() {
	console.log(document.cookie);
}

Reservation.reset = function() {
	$('res_btn').hide();
	$('res_loading').hide();
}

Reservation.setDateFrom = function(d) {
	$('reservations__date_from').value = d;
}

Reservation.setDateTo = function(d) {
	$('reservations__date_to').value = d;
}

Reservation.setParams = function(p) {	
	if(p.date_from) { $('reservations__date_from').value = p.date_from; }
	if(p.date_to) { $('reservations__date_to').value = p.date_to; }
	if(p.id_offers) { Reservation.loadOffer(p.id_offers); }
	Reservation.updateRes();
}

Reservation.switchOffer = function(id,step2) {
	Reservation.switchTab(false);
	$$('.offer'+id)[0].addClassName('act');
	Reservation.loadOffer(id,step2);
	$('res_content_inner').scrollTop = 0;
}

Reservation.showStep = function(id) {
	
	var btn = ($('res_btn_submit').style.display != 'none');
	
	if (btn) {
	
		if (Reservation._tracking) {
		//console.log('tracking enabled step:'+id);
		}
		
		if (Reservation.id_offers && (id == 2)) {
			Reservation.loadOffer(Reservation.id_offers);
			id = 4;
		}
		
		if (id == 1) {
			Reservation.bookRooms();
		}
		if (id == 2) {
			Reservation.options();
		}
		if (id == 3) {
			Reservation.bookingForm();
		}
		
	}
}

Reservation.switchStep = function(id) {
		$$('#steps .step').each(function(n){
			n.removeClassName('act')
		});
		$('step' + id).addClassName('act');
}

Reservation.bookRooms = function(re) {	
	
	Reservation.overflow(false);
	Reservation.switchTab('pokoj');
	
	Reservation.ident = 'room';
	
	if (re) {
		Navi.loadContent('room',false,false,false,true);
	} else {
		Navi.loadContent('room',Reservation.pars);
	}
	Reservation.id_offers = false;
	$('res_btn').show();
	$('res_btn_submit').show();
	$('res_btn_submit').addClassName('next');
	$('res_btn_submit').removeClassName('close');
	$('res_btn_submit').show();
	$('res_btn_cancel').hide();
	$('step1').onclick = function() {
		Reservation.bookRooms();
	}
	$('res_btn_submit').onclick = function() {
		Reservation.options();
	}
	Reservation.switchStep(1);	
	
	if(Reservation._tracking) { GATracker.trackPageview('Pokoje'); }
}

Reservation.loadOffer = function(id,step2) {
	
	Reservation.overflow(true);
	Reservation.ident = 'offer';
	
	if(!id) { var id = Reservation.id_offers; }
	if(id) { var idtag = '/id/'+id; } else { var idtag = ''; }
	
	if (!step2) {
		var step2 = false;
	}
	
	Navi.loadContent('offer'+idtag,Reservation.pars,false,step2);
	Reservation.id_offers = id;
	Reservation.switchStep(1);
	$('res_btn').show();
	$('res_btn_submit').addClassName('next');
	$('res_btn_submit').removeClassName('close');
	$('res_btn_submit').show();
	$('res_btn_cancel').hide();
	
	if ($('offer_date_from')) {
		$('offer_date_from').show();
	}
	
	$('step1').onclick = function() {
		Reservation.loadOffer(Reservation.id_offers);
	}
	$('res_btn_submit').onclick = function() {
		Reservation.options();
	}
	
	GATracker._trackOffer = true;
}

Reservation.options = function() {
	Reservation.overflow(false);
	
	Navi.loadContent('options');
	$('res_btn_cancel').show();
	$('res_btn_cancel').onclick = function() {					
			if (!Reservation.id_offers) {
				Reservation.bookRooms();
			}
			else {
				Reservation.loadOffer(false);
			}
	}

	$('res_btn_submit').onclick = function() {
		Reservation.bookingForm();
	}
	Reservation.ident = 'options';
	Reservation.switchStep(2);
	
	if(Reservation._tracking) { GATracker.trackPageview('OpcjeDodatkowe');	}
}

Reservation.selectRoom = function(id) {
	$('reservations__id_rooms_types').value = id;	
	Reservation.updateRes();
}

Reservation.updateRes = function() {
	var pars = Form.serialize('res_form');
	Reservation.pars = pars;
	$('res_btn_submit').show();
	Navi.loadContent(Reservation.ident,pars);
}

Reservation.optionClick = function(id) {
	var options = $$('.option');
	var ref = false;
	options.each(function(e) {
		var inputid = e.down('input').value;
		if(inputid==id) { ref = e; }
	});
	
	var chk = $(ref).down('input');
	if(ref.type != 'checkbox') {		
		if (chk.checked) {
			chk.checked = false;
			ref.removeClassName('act');
		} else {
			chk.checked = true;
			ref.addClassName('act');
		}
	}
	$$('.tooltip').each(function(e){
		e.remove();
	});
	Reservation.updateRes();
}

Reservation.optionPlus = function(id) {
	
	var input = $$('.options-'+id)[0].down('.amount').down('input');
	var v = input.value;
	v++;
	input.value = v;
	Reservation.updateRes();
	
}

Reservation.optionMinus = function(id) {
	
	var input = $$('.options-'+id)[0].down('.amount').down('input');
	var v = input.value;
	v--;
	if (v < 1) {
		Reservation.optionClick(id);
	}
	else {
		input.value = v;
		Reservation.updateRes();
	}
	
}

Reservation.checkboxClick = function(ref) {
	if(ref.checked == true) { ref.checked = false; } else { ref.checked = true;	}
}

Reservation.optionsPopupShow = function(ref) {
	var content = ref.down('.info_content').innerHTML;
	if ($('options_more_content').innerHTML == content) {
		Reservation.optionsPopupClose();
	} else {
		$('options_more_content').innerHTML = content;
		var pop = $('options_more_popup'); pop.show();
	}
}

Reservation.optionsPopupClose = function() {
	$('options_more_content').innerHTML = '';
	$('options_more_popup').hide();
}

Reservation.bookingForm = function() {	
	$('res_content_inner').scrollTop = 0;
	Reservation.bookingScroll = 0;
		
	if($('res_btn_submit').style.display != 'none') {		
		$('res_content_inner').makeClipping();		
		Navi.loadContent('bookingform');
		$('res_btn_cancel').addClassName('prev');
		$('res_btn_submit').removeClassName('next');
		$('res_btn_submit').removeClassName('close');
		$('res_btn_cancel').show();
		$('res_btn_cancel').onclick = function() {			
			if(Reservation.ident == 'offer') {
				Reservation.loadOffer(false);
			} else {
				Reservation.options();
			}
		}
		$('res_btn_submit').onclick = function() {
			Reservation.book();
		}
		Reservation.switchStep(3);
	}
	
	if(Reservation._tracking) { GATracker.trackPageview('FormularzRezerwacyjny');	}
}

Reservation.vouchers = function(id,cat) {	
	Reservation.switchTab('vouchers');
	Reservation.overflow(true);
	$('res_btn_cancel').hide();
	$('res_btn_submit').onclick = function() {
		Reservation.voucherBookingForm();
	}
	$('res_btn_submit').hide();
	if(id) {
		var v = new Object;
		v.id_vouchers = id;
	} else {
		var v = false;
	}
	
	if(cat) {
		var pars = 'vouchers_cat='+cat;
	} else {
		var pars = 'v=0';
	}
	
	Navi.loadContent('vouchers',pars,false,false,false,v);
	Reservation.ident = 'vouchers';
	Reservation.switchStep(1);
	
	if(Reservation._tracking) { GATracker.trackPageview('Vouchery');	}
}

Reservation.voucherBookingForm = function(s) {	
	
	if (s) {
		var b = $('booking_scroll');
		if (b) {
			var o = b.scrollTop;			
		}
		Reservation.bookingScroll = o;
	} else {
		Reservation.bookingScroll = 0;
	}
	
	$('res_btn_submit').show();
	
	Reservation.overflow(true);
		
	var pars = Form.serialize('res_form');
	Reservation.pars = pars;
	Navi.loadContent('voucherbookingform',pars);
	
	$('res_btn_cancel').addClassName('prev');
	$('res_btn_submit').removeClassName('next');
	$('res_btn_submit').removeClassName('close');
	$('res_btn_cancel').show();
	$('res_btn_cancel').onclick = function() {			
		Reservation.vouchers();
	}
	$('res_btn_submit').onclick = function() {
		Reservation.book();
	}
	Reservation.switchStep(3);
	
	if(Reservation._tracking) { GATracker.trackPageview('FormularzRezerwacyjny'); }
		
}

Reservation.voucherSwitchCat = function(id) {
	$('voucher_cat').select('.catlink').each(function(e){
		e.removeClassName('act');
	});
	$('voucher_cat'+id).addClassName('act');	
	$('reservations__id_offers_cat').value = id;
	Reservation.updateRes();
	$('res_btn_submit').hide();
}

Reservation.chooseVoucher = function(id) {
	$('reservations__id_offers').value = id;
	//Reservation.updateRes();
	Reservation.optionsPopupClose();
	Reservation.voucherBookingForm();
}

Reservation.showVoucher = function(id) {
	
	Navi.loadContent('showvoucher','item_id='+id,'options_more_content');
	var pop = $('options_more_popup'); pop.show();
	
}

Reservation.discounts = function() {
	Reservation.overflow(false);
	Reservation.switchTab('discounts')
	
	$('res_btn_cancel').hide();
	$('res_btn_submit').hide();
	
	Navi.loadContent('discounts');
	
	if(Reservation._tracking) { GATracker.trackPageview('PromocjeIRabaty');	}
}

Reservation.book = function() {
	if(validate($('res_form'))) {		
		pars = Form.serialize('res_form');
		var payment = $('payment__method').value;
		if (payment == 3) {
			Payment.validateCard();
		} else {
			Reservation.submitBooking();
		}
	}
	
}

Reservation.submitBooking = function() {
	pars = Form.serialize('res_form');
	
	Navi.loadContent('book', pars);
	$('res_btn_cancel').hide();
	$('res_btn_submit').onclick = function(){
		window.parent.HotelSystems.hide();
	}
	$('res_btn_submit').addClassName('close');
	Reservation.switchStep(3);	
}

Reservation.offersPage = function(page) {
	var nx = 0-((230*(page-1)));
	new Effect.Move('res_offers_pages', { x: nx, y: 0, mode: 'absolute' });
	//$('res_offers_pages').style.left = +'px';
	$$('#res_pages a').each(function(n) { n.removeClassName('act'); });
	$('res_page'+page).addClassName('act');
}


Reservation.switchTab = function(id) {
	$$('.offer').each(function(n) { n.removeClassName('act'); });
	$$('.tab').each(function(e) {
		e.removeClassName('act');
	});
	if (id) {
		$('res_' + id).addClassName('act');
	}
}

Reservation.overflow = function(o) {
	$('res_content_inner').scrollTop = 0;
	if(o) { var val = 'auto'; } else { var val = 'hidden'; }
	$('res_content_inner').style.overflow = val;
}

