//obiekt do zarządzania ustawieniem daty wynajecia pokoju

var datepicker={
	
	picker1:null,
	
	picker2:null,
	
	tomorrow_date:null,
	
	//laduje ustawienia wstepne datepickera
	init_picker:function(){
		this.picker1=$('#calen1');
		this.picker2=$('#calen2');
		
		this.set_tomorrow_date();
	},
	
	
	//oblicza  jutrzejsza date
	set_tomorrow_date:function(){

		var today_date=new Date();
		
		//var g=new Date(today_date.setDate(today_date.getDate()+1));

		//this.tomorrow_date=g;
		this.tomorrow_date=today_date;
		
	},
	
	//przkształca string na obiekt date
	get_date:function(date){

	    var date_array=date.split('/');
	    var date= new Date(date_array[2],date_array[1]-1,date_array[0]);
	    return date;
		
	},
	
	//loaduje ustawienia wstepne datepicker (dzien jutrzejszy i nastepny dzien)
	set_start:function(startDate,endDate){

		if(startDate=='null'){
		
			var date=this.tomorrow_date;
			
			var next_day=this.add_day(date);
		}
		else{
			var date=this.get_date(startDate);
			
			var next_day=this.get_date(endDate);
		}
		
		min2=this.add_day(date);
	
		this.picker1.datepicker("setDate" , date);	
		this.picker2.datepicker("setDate" , next_day);
		this.picker1.datepicker( "option", "minDate", this.tomorrow_date);
		this.picker2.datepicker( "option", "minDate", min2);
  
		room_list.set_date();
		
	},
	add_day:function(date){
	
		var retur_date=new Date(date);
		
		retur_date.setDate(date.getDate() + 1);
	   
	    return retur_date;
	},
	
	change:function(){
		
		

		var date1=this.picker1.datepicker( "getDate" );
		var date2=this.picker2.datepicker( "getDate" );


		if(date1>=date2){

			this.picker2.datepicker("setDate" , datepicker.add_day(date1));
			
		}

	
		this.picker2.datepicker( "option", "minDate", datepicker.add_day(date1));
  
	}
};


var pokoje={

		img_src:null,
		url:url_ajax ,
		
		//opisuje ile jest pozycji na liscie pokoi zarezerwowanych przydaje sie do pokazywania alertu brak dostepnych pokoi
		reserved_room:0,
		
		get_available_room_list:function(){
		
			
	
			//pokaz pierwszy z luisty w szegolowym opisie
		},
		
		//pokaz opis szczegółowy pokoju
		show_one:function(id){
			
			local_url=this.url+'roomdetail/format/html?id='+id;
						
				$.ajax({ url: ""+local_url+"", 
						success:{
								"application/json":function(data){
																var file = JSON.parse(data.data);
			
																$('.room_pictures_field img').attr('src', ''+pokoje.img_src+file+'');
																},
								"text/html":function(data){pokoje.add_room(data)}
						}  
					
				});
		},
		
		//dodanie pokoju do koszyka rezerwacji
		add_room: function(data){ 
			
				$('.room_contener').html(''+data.data+'');
				var options = { 
				        target:'#reserved_room_list',   // target element(s) to be updated with server response
				        success: function(){
					 		
						 	
					 		var il=$('tr[name="reserved_room"]').length;
					 		//na podstawie porownania wczesniejssej ilosci wierszy oraz aktualnych sadzi czy jest wolny pokoj czy nie
						 	if(il==pokoje.reserved_room){
						 
					 			alert('brak wolnych pokoi tego typu');
					 				
					 		}
						 	
						 	room_list.set_reserved_room_list('add');
				    	}
				 }; 
				 $('#add_room').ajaxForm(options);
		},
		
		//usuwanie pokoju z koszyka rezerwacji
		delroom:function(id){
			
			local_url=this.url+'addroom/format/html?id='+id+'&delete=1';
				//$.getJSON(this.url,function(data){
			
			$.ajax({ url: ""+local_url+"", success: function(data){

				$('#reserved_room_list').html(data);
				pokoje.reserved_room=pokoje.reserved_room-1;
				pokoje.set_summary();
		      }});
		},
				
		//ustawia widok podsumowania pokaż/ukryj
		set_summary:function(){
			
			 //zaciemni wszystko do dodawania pokoju
			if(this.reserved_room==0){
				$('#reserved_room_list').hide();
			}
			else{
				$('#reserved_room_list').show();
			}

		},
		init:function(){
			
			src=$('.room_pictures_field img').attr('src');
			this.img_src=src;
		
		}
		
};
var room_list={

		url:url_ajax,
		
		//ustawia data w zmiennej sesyjnej
		set_date:function(){
	
			local_url=this.url+'setdate?startDate='+datepicker.picker1.val()+'&endDate='+datepicker.picker2.val()+'';
			
			
	//zmienianie
			$.ajax({ url: ""+local_url+"" 
				,async:true
			, success: function(){
				room_list.show_reserver_list();
				
			   }
			
			

			});
			
			
		},
		
		//pobranie listy zarezerwowanych pokoi 
		show_reserver_list:function(){
			local_url=this.url+'addroom/format/html';
			
			$.ajax({ url: ""+local_url+"",async:true, success: function(data){
				
													room_list.set_reserved_room_list(data);
													}
			
			});
		},
		
		//ustawia treść html - liste zarezerwowanych pokoi  w widoku
		set_reserved_room_list:function(data){
			if(data!=='add')
			{
				
				$('#reserved_room_list').html(data);
			}
			pokoje.reserved_room=$('tr[name="reserved_room"]').length;
			pokoje.set_summary();
		}
};

$(document).ready(function() {		
	datepicker.init_picker();
	
	pokoje.init();
	
}); 

$(document).ready(function() {
	$(function() {
		$("#calen1").datepicker({buttonImage: '/reservation/public/images/calendar_icon_big.png',showOn: 'both', dateFormat: 'dd/mm/yy',firstDay: 1});
		$("#calen2").datepicker({buttonImage: '/reservation/public/images/calendar_icon_big.png', showOn: 'both', dateFormat: 'dd/mm/yy',firstDay: 1});
		
		$("#calen1").change(function() {
										datepicker.change(this);
									
										room_list.set_date();
										
							}
		);
		$("#calen2").change(function() {
			
										room_list.set_date();
							}
		);
	});
  });


  
 
	

