

function FacilityDetailsController(){
	var _mainWrapper = null;
	var _photosWrapper = null;
	var _obiektID = 0;

	/**
	 * inicjalizacja kontrollera
	 */
	this.initialize = function(){
		_mainWrapper = $('#daneObiektu');
		_obiektID = getData('FacilityID');

		//zdjecia
		/*
		_photosWrapper = _mainWrapper.find('#zdjecia');		
		if(typeof(zdjecia_arr) != 'undefined' && zdjecia_arr.length > 1){
			_photosWrapper.find('.numberTotal').html(zdjecia_arr.length);
			_photosWrapper.find('.fotocounter').fadeIn();
			_photosWrapper.find('.photoChangeB').fadeIn();
		}
		*/
		bindEvents();
		
		$('.injectionTarget').html('<img src="graf/ajax-loader.gif"/>');
		
		//setTimeout(function(){preloadIMG();}, 5000);
		setTimeout(function(){ 
			initializeContactForm();
		}, 2500);
		
		setTimeout(function(){ 
			initializeBWM();
			initializeOpinie();
			initializeMap();
		}, 4000);
		
		initializeGallery();
	};

	/**
	 * bindowanie eventów
	 */
	var bindEvents = function(){
		/*
		_mainWrapper.find('.photoChangeB').click(function(){
			zm_ob(parseInt($(this).attr('alt')), this);
		});
		*/
		$('.similarListings a').click(function(){
			if(!$(this).attr('href')){
				return;
			}

			var data = {
				src : window.location.href,
				dst : $(this).attr('href'),
				order : $(this).attr('data-order'),
				listName : $(this).parents('.list').attr('data-list-name')
			};
		
			$.get('index.php?funkcja=getStatistics', data);
			setTimeout(function(){window.location = data.dst;}, 500);
			return false;
		});	


		$('.showCoordinatesB').click(function(){
			//$.get('index.php?funkcja=getStatisticsGPS');
			
			$('.coordinatesIMG').attr('src', 'coordinates,' + _obiektID + '.jpg')
			$('.showCoordinatesB').hide();
			$('.coordinatesData').show();
		});


		$('.getMiniprzewodnikB').click(function(){
			var el = $(this);
			el.html(el.attr("data-text"));
			setTimeout(function(){
				el.remove();
			}, 9000);
			getMiniprzewodnik();
		});
	};
   
	/**
	 * inicjalizacja galerii
	 */
	var initializeGallery = function(){
		$('.lightBox').lightBox({fixedNavigation:true});
	};


	/** 
	*	inicjalizowanie formularzy kontaktowych
	*/
	var preloadIMG = function(){
		var preloadKontener=document.getElementById('preloadKontener');
		if (!preloadKontener){
			preloadKontener = document.createElement('div');
			preloadKontener.id='preloadKontener';
			preloadKontener.style.display='none';
			document.body.appendChild(preloadKontener);
			var img=null;
			var r='';
			if(typeof(zdjecia_arr)=='undefined'){return;}
			for (var i=0; i<zdjecia_arr.length; i++){
				img = document.createElement('img');
				img.src=zdjecia_arr[i].src;
				preloadKontener.appendChild(img);	
			}				
		}
	};
	
	/** 
	*	inicjalizowanie opinii
	*/	
	var initializeOpinie = function(){
		Meteor.Addons.Core.LoadModules("Opinie");
	};
	
	
	
	/** 
	*	inicjalizowanie mapy
	*/	
	var initializeMap = function(){
		var meteorMaps = new Meteor.MapsManager(); 
		meteorMaps.showMap({beforeShowCallback :function(){}, afterShowCallback : function(){}}); 	
	};

	
	/** 
	*	inicjalizowanie formularzy kontaktowych
	*/
	var initializeContactForm = function(){
		var langShort = getData('LangShort');
		var contactFormCSSInLine = getData('ContactFormCSSInLine');
		var html = '<iframe class="contactForm"  frameborder="0" src="http://add.meteor24.pl/miniservice/?c=ContactFacilityIFrame&amp;facilityID=' + _obiektID + '&amp;externalCSSInLine=' + contactFormCSSInLine + '&amp;site=meteor.turystyka.pl&amp;showNewsletterCheckbox=1&amp;lang=' + langShort + '"  border="0"></iframe>'
		_mainWrapper.find('div.appendContactForm .injectionTarget').html(html);
		
	};

	/** 
	*	inicjalizowanie BWM
	*/
	var initializeBWM = function(){
		var langShort = getData('LangShort');		
		var html = '<iframe src="http://bwm.emeteor.pl/index.php?funkcja=uzytkownik&id=' + _obiektID + '&r=1&j=' + langShort + '"  scrolling="auto" border="0" marginheight="0" marginwidth="0" frameborder="0" ></iframe>'
		_mainWrapper.find('div.appendBWM .injectionTarget').html(html);
		
	};
	
	
	/** 
	*	pobiera dane z ukrytych p�l DOMu
	*	@return mixed
	*/	
	var getData = function(key){
		return _mainWrapper.find('.dataContainer .data' + key).val();
	};
	
	
	var getMiniprzewodnik = function(){

		var url = "index.php?routerEnabled=1&c=Obiekt&a=getMiniprzewodnik&dom=" + _obiektID;
		$("body").append('<iframe style="display: none;" src="' + url + '"></iframe>');
	}
	
}


/** 
*	kontroller opini
*/
function ReviewController(){
	var _mainWrapper = null;
	var _listItems = null;
	var _pageLimit = 5;
	var _currentPage = 1;
	var _lastPageNumber = 0
	
	/** 
	*	inicjalizowanie kontrollera
	*/
	this.initialize = function(){
		_mainWrapper = $('.reviewContainer');
		_listItems = _mainWrapper.find('.reviewWrapper');
		_listItems.hide();
		
		_lastPageNumber = Math.ceil(_listItems.length / _pageLimit);
		
		if(_listItems.length > _pageLimit){
			_mainWrapper.find('.paging').show();
		}
		
		showPage(1);
		bindEvents();
	};

	/** 
	*	bindowanie event�w
	*/	
	var bindEvents = function(){
		_mainWrapper.find('.paging .pagingNext').click(function(){			
			showPage(_currentPage + 1);
			
		});
		
		
		_mainWrapper.find('.paging .pagingPrevious').click(function(){
			if(_currentPage > 1){
				showPage(_currentPage - 1);
			}
		});		
	};

	/** 
	*	wy��czanie niedost�pnych przycisk�w
	*/	
	var disableUnavailableButtons = function(){		
		_mainWrapper.find('.paging .pagingPage').removeClass('pagingPageDisabled');
		if(_currentPage == 1){
			_mainWrapper.find('.paging .pagingPrevious').addClass('pagingPageDisabled');
		}

		if(_currentPage == _lastPageNumber){
			_mainWrapper.find('.paging .pagingNext').addClass('pagingPageDisabled');
		}
		
		
	};
	
	/** 
	*	bindowanie event�w
	*/	
	var showPage = function(pageNumber){
		
		
		var offsetStart = (pageNumber - 1) * _pageLimit;
		var offsetEnd = offsetStart + _pageLimit;
		
		
		if(offsetStart >= _listItems.length){
			return;
		}		
		//console.log(pageNumber + '    ' + offsetStart + '     ' + offsetEnd + '   ' + _listItems.length);
		_listItems.hide();

		_listItems.each(function(i){
			if(i >= offsetStart && i < offsetEnd){
				$(this).show();
			} else {
				$(this).hide();
			}
		});
		_currentPage = pageNumber;
		disableUnavailableButtons();
		
	};	
	
};


$(function(){
	if (document.getElementById('daneObiektu') == null){
		return;
	}

	var ctrl = new FacilityDetailsController();
	ctrl.initialize();
	
	var oReviewController = new ReviewController();
	oReviewController.initialize();
});
