jQuery(document).ready(function($){
	// ## Few functions:
	
	
	
	// returns main id of form with # for given element
	function parrent_id(element) {
		var string = $(element).parents('.fz_reservation').attr('name');
		string = string.replace('_fzform','');
		string = '#' + string;
		return string;
	}
	
	// returns main id of form withOUT # for given element
	function parrent_id_name(element) {
		var string = $(element).parents('.fz_reservation').attr('name');
		string = string.replace('_fzform','');
		return string;
	}
	
	// changes date to string in format yyyy-mm-dd
	function fzDF(date) {
		var d = date.getDate();
		if (d<10) d = "0" + d;
		var m = date.getMonth();
		m = m*1+1;
		if (m<10) m = "0" + m;
		var y = date.getFullYear();
		var full = y + "-" + m + "-" + d;
		return full;
	}
	
	// ## Actions:
	
	// Calendar actions
	$('.datepicker').datepicker({
		dateFormat: 'yy-mm-dd',
		inline: true,
		onSelect: function(dateText, inst) {
			var id = this.id;
			id = id.replace(parrent_id_name(this)+'_datepicker','');
			var myDate = $(this).datepicker('getDate');
			// left calendar
			if (id == 1) { 
				// update date in left input
				$(parrent_id(this)+'_start-date').attr('value',dateText);
				// update hidden input
				var date_arr = dateText.split('-');
				$(parrent_id(this)+'_fzform input[name="od_dzien"]').attr('value',date_arr[2]*1);
				$(parrent_id(this)+'_fzform input[name="od_miesiac"]').attr('value',date_arr[1]*1);
				$(parrent_id(this)+'_fzform input[name="od_rok"]').attr('value',date_arr[0]);
				
				// block part of right calendar
				myDate.setDate(myDate.getDate()+1);
				$(parrent_id(this)+'_datepicker2').datepicker('option', 'minDate', new Date(myDate.getFullYear(),myDate.getMonth(),myDate.getDate()) );
				
				// update date in right calendar and input
				hisDate = new Date();
				hisDate = myDate;
				hisDate.setDate(hisDate.getDate()+1);
				$(parrent_id(this)+'_end-date').attr('value',fzDF(hisDate));
				// update hidden input
				var dateStr = fzDF(hisDate);
				var date_arr = dateStr.split('-');
				$(parrent_id(this)+'_fzform input[name="do_dzien"]').attr('value',date_arr[2]*1);
				$(parrent_id(this)+'_fzform input[name="do_miesiac"]').attr('value',date_arr[1]*1);
				$(parrent_id(this)+'_fzform input[name="do_rok"]').attr('value',date_arr[0]);
				$(parrent_id(this)+'_datepicker2').datepicker('setDate', hisDate );
			}
			if (id == 2) {
				// update date in right input
				$(parrent_id(this)+'_end-date').attr('value',dateText);
				// update hidden input
				var date_arr = dateText.split('-');
				$(parrent_id(this)+'_fzform input[name="do_dzien"]').attr('value',date_arr[2]*1);
				$(parrent_id(this)+'_fzform input[name="do_miesiac"]').attr('value',date_arr[1]*1);
				$(parrent_id(this)+'_fzform input[name="do_rok"]').attr('value',date_arr[0]);
			}
			$(this).hide();
		}
	});
	
	$('.datepicker1').mouseleave(function(){
		$(this).hide();
	});
	
   	$('.datepicker2').mouseleave(function(){
		$(this).hide();
	});
    	
	$('.start-date').mouseenter(function(){
		$(parrent_id(this)+'_datepicker1').toggle();
	});
	
	$('.end-date').mouseenter(function(){
		$(parrent_id(this)+'_datepicker2').toggle();
	});
	
	// room count change
	$('.lp_list li').click(function(){
		$(parrent_id(this)+'_lp_list li').removeClass('lp_active');
		$(parrent_id(this)+'_lp_list li').removeClass('lp_noactive');
		$(parrent_id(this)+'_lp_list li').addClass('lp_noactive');
		$(this).removeClass('lp_noactive');
		$(this).addClass('lp_active');
		var id = this.id;
		id = id.replace(parrent_id_name(this)+'_fz_spokoj','');
		id = id * 1;
		$(parrent_id(this)+'_fzform .fz_pokoj').hide();
		if (id > 0) { 
			$(parrent_id(this)+'_fz_pokoj1').show();
			$(parrent_id(this)+'_fzform .fz_pokoje').width(152);
		}
		if (id > 1) { 
			$(parrent_id(this)+'_fz_pokoj2').show();
			$(parrent_id(this)+'_fzform .fz_pokoje').width(304);
		}
		if (id > 2) { 
			$(parrent_id(this)+'_fz_pokoj3').show();
			$(parrent_id(this)+'_fzform .fz_pokoje').width(456);
		}
		// update hidden input
		$(parrent_id(this)+'_fzform input[name="ilosc"]').attr('value',id);
	});
	
	// add number of persons in room
	$('.lo_plus').click(function(){
		var id = this.id;
		id = id.replace('_plus','');
		var before = $('#'+id).attr('value')*1;
		if (before < 7) {
			$('#'+id).attr('value',before+1);
			var id2 = id.replace('_lo','_o');
			after = $('#'+id).attr('value')*1;
			// room number
			var num = id2.replace('_o','');
			num = num.replace(parrent_id_name(this)+'_fz_pokoj',''); 
			// update hidden input
			$(parrent_id(this)+'_fzform input[name="room'+num+'count"]').attr('value',after);
			// adding icons inside
			$('#'+id2).empty();
			var i;
			for(i=0;i<after;i++) {
				$('#'+id2).append('<img src="/img/fz_person.gif" class="fz_person" />');
			}
			var id3 = id+'_counter';
			$('#'+id3).empty();
			$('#'+id3).text(after);
		}
	});
	
	// subtract number of persons in room
	$('.lo_minus').click(function(){
		var id = this.id;
		id = id.replace('_minus','');
		var before = $('#'+id).attr('value')*1;
		if (before > 1) {
			$('#'+id).attr('value',before-1);
			var id2 = id.replace('_lo','_o');
			after = $('#'+id).attr('value')*1;
			// room number
			var num = id2.replace('_o','');
			num = num.replace(parrent_id_name(this)+'_fz_pokoj','');
			// update hidden input 
			$(parrent_id(this)+'_fzform input[name="room'+num+'count"]').attr('value',after);
			// adding icons inside
			$('#'+id2).empty();
			var i;
			for(i=0;i<after;i++) {
				$('#'+id2).append('<img src="/img/fz_person.gif" class="fz_person" />');
			}
			var id3 = id+'_counter';
			$('#'+id3).empty();
			$('#'+id3).text(after);
		}
	});
	
	// ## Defaults:
	
	// give start date
	var fromDate = new Date(); 
	fromDate.setDate(fromDate.getDate()+3);
	$('.datepicker1').datepicker('option', 'minDate', new Date() );
	$('.datepicker1').datepicker('setDate', fromDate );
	$('.start-date').attr('value',fzDF(fromDate));
	var dateStr1 = fzDF(fromDate);
	var date_arr = dateStr1.split('-');
		$('.fz_reservation input[name="od_dzien"]').attr('value',date_arr[2]*1);
		$('.fz_reservation input[name="od_miesiac"]').attr('value',date_arr[1]*1);
		$('.fz_reservation input[name="od_rok"]').attr('value',date_arr[0]);
	
	// give block date
	var blockDate = new Date(); 
	blockDate.setDate(blockDate.getDate()+4);
	$('.datepicker2').datepicker('option', 'minDate', blockDate );
	
	// give end date
	var toDate = new Date();
	toDate.setDate(toDate.getDate()+5);
	$('.datepicker2').datepicker('setDate', toDate );
	$('.end-date').attr('value',fzDF(toDate));
	var dateStr2 = fzDF(toDate);
	var date_arr = dateStr2.split('-');
		$('.fz_reservation input[name="do_dzien"]').attr('value',date_arr[2]*1);
		$('.fz_reservation input[name="do_miesiac"]').attr('value',date_arr[1]*1);
		$('.fz_reservation input[name="do_rok"]').attr('value',date_arr[0]);
	
	// check one room in all forms
	$('.fz_reservation input[name="ilosc"]').attr('value',1);
	
	// in FF do refresh doesn't couse lost data in number of persons in rooms
	var j;
	for (j=1;j<4;j++) {
		jQuery.each($('.fz_pokoj'+j+'_lo'), function(element) {
			after = $(parrent_id(this)+'_fz_pokoj'+j+'_lo').attr('value')*1;
			$(parrent_id(this)+'_fz_pokoj'+j+'_o').empty();
			var i;
			for(i=0;i<after;i++) {
				$(parrent_id(this)+'_fz_pokoj'+j+'_o').append('<img src="/img/fz_person.gif" class="fz_person" />');
			}
			$(parrent_id(this)+'_fz_pokoj'+j+'_lo_counter').empty();
			$(parrent_id(this)+'_fz_pokoj'+j+'_lo_counter').text(after);
			$(parrent_id(this)+'_fzform input[name="room'+j+'count"]').attr('value',after);
			
		});
	}
	
});
