//łąśó
//alert = function(s){ try { console.log(s); } catch(e){ }  }

function AppController() {
	var mapsHandler = null;
	
	var init = function(){
		//return;
		
		setAjaxErrorHandler();
		bindEvents();
		initMaps();
		initLastMinute();
		initAddFacility();
		initContact();
	};
	

	
	var bindEvents = function(){

	};	
	
	
	
	/* inicjuje kontakt*/
	var initContact = function(){		
		if(!document.getElementById('Contact')){ return; }
		var oContactController = new ContactController();
		oContactController.bindEvents();
	};		
	
	
	/* inicjuje dodaj obiekt*/
	var initAddFacility = function(){
		if(!document.getElementById('AddFacility')){ return; }
		var oAddFacilityController = new AddFacilityController();
		oAddFacilityController.initMap();
		oAddFacilityController.bindEvents();
	};	
	
	
	/* inicjuje last minute*/
	var initLastMinute = function(){
		if(!document.getElementById('LastMinute')){ return; }
		var oLastMinuteController = new LastMinuteController({});
		oLastMinuteController.bindEvents();
	};
	
	/* inicjuje główną mapę */
	var initMaps = function(){
		if(!document.getElementById('MapsContener')){ return; }
		ieMessage();
		/* ustawiam opcje mapy */
		mapsOptions = {
			weather : Util.getData('displayWeather')
		};
		
		/* inicjuje mapę */
		mapsHandle = Maps(mapsOptions);
		mapsHandle.toggleDisplay(true);
		
		/* sprawdzam czy odpalić szukanie albo pogode*/
		if(Util.getData('displaySearchResults')){
			checkForSearchData();
		} else if(Util.getData('displayWeather')){
			checkForWeatherData();
		}

		$('.mapToggleB').click(function(){
			mapsHandle.toggleDisplay();
		});
	}

	

	
	/* sprawdza czy nie sa ustawione kryteria wyszukiwania w JSDataContener */
	var checkForSearchData = function(){	
		var searchTypeAjax = Util.getData('searchTypeAjax');
		if(searchTypeAjax){		
			var kryteria = { kryteriaAjax : {}, kryteriaJS : {}};
			kryteria.kryteriaAjax['searchKryt_'+searchTypeAjax] = Util.getData(searchTypeAjax);			
			var searchTypeJS = Util.getData('searchTypeJS');
			if(searchTypeJS){
				kryteria.kryteriaJS[searchTypeJS] = Util.getData(searchTypeJS); 
			}
			mapsHandle.search(kryteria);
		}
	};


	/* sprawdza czy nie sa ustawione kryteria wyszukiwania w JSDataContener */
	var checkForWeatherData = function(){				
		var searchTypeAjax = Util.getData('searchTypeAjax');
		if(searchTypeAjax){	
			kryteria ={};
			kryteria['kryt_'+searchTypeAjax] = Util.getData(searchTypeAjax);			
			mapsHandle.showWeather({kryteria : kryteria });
		}
	};
	
	/** informacja dla userów IE6 */
	var ieMessage = function(){
		//$.cookie('IEInfo', '1', { expires: 7, domain: '.lekarzewpolsce.pl'});
		if($.cookie('IEInfo')){ return; };
		$.cookie('IEInfo', '1', { expires: 7 });
		setTimeout(function(){
				if(Util.czyIE6()){
					var message = 'Używasz przeglądarki która powstała prawie <u>10 lat temu!</u><br/> Aby korzystać z pełnej funkcjonajlności serwisu meteor24.pl<br/> zainstaluj jedną z <u>NOWOCZESNYCH</u>, <u>DARMOWYCH</u> oraz <u>BEZPIECZNYCH</u> przegladarek<br/> np: Mozilla Firefox (<a target="_blank" href="http://mozillapl.org/pobierz">pobierz</a>) lub Google Chrome (<a target="_blank" href="http://www.google.pl/chrome/index.html?hl=pl&brand=CHMA&utm_campaign=pl&utm_source=pl-ha-emea-pl-bk&utm_medium=ha">pobierz</a>)';
					Util.alert({ text : message ,  title : "uwaga"});
				}	
		}, 100);
	};
	
	var setAjaxErrorHandler = function(){
		$("body").ajaxError(function(event, request, settings){
			$('#loader-radar:visible').hide();
			if(request.status == 503){
				Util.alert({ text: 'Usługa czasowo niedostępna.' ,  title : "uwaga"});
			} if(request.status == 0){
				Util.alert({ text: 'Nie można nawiązać połączenia z serwerem.<br/> Sprawdź swoje łącze internetowe.' ,  title : "uwaga"});
			} else {
				Util.alert({ text: 'Wystąpił problem podczas połączenia z serwerem.' ,  title : "uwaga"});
			}	   
		});
	};
	
	init();
}


$(function(){
	AppController();
});

