$.mobile.listview.prototype.options.filterPlaceholder = "Stichwort suchen...";
$.mobile.page.prototype.options.backBtnText = "Zur&uuml;ck";
$.mobile.page.prototype.options.addBackBtn = true;
$.mobile.loadingMessage = "Laden...";
$.mobile.defaultPageTransition = "none";
$.mobile.pageLoadErrorMessage = "Seite konnte nicht geladen werden";

$(document).ready(function() {
  $(document).on('click', '.feedback_submit_button', function(){
    var $feedBackForm = $('#feedback_form');
    if( $feedBackForm.length != 0 ) {
      var qnr = $(this).data('qnr');
      $feedBackForm.prop('action',$feedBackForm.prop('action') + '&qnr=' + qnr);
      $feedBackForm.submit();
    }
  });
  
  //Damit die Feedbackfragen und der Vor- und Nachspann zwar Linksbündig angezeigt, jedoch mittig
  //positioniert werden.
  //<div id="feedback_div">
  //  <div id="feedback_frage_div">
  //    <span id="feedback_frage_span"></span>
  //  </div>
  //</div>
  if($('#feedback_frage_span').length > 0) {
    $(window).resize(function(){
	  
	  //zunächst wird die vorgegebene Breite entfernt, damit der Text sich an die Bildschirmbreite anpassen kann
	  $('#feedback_frage_div').css('width', 'auto');
	  
	  var textbreite = $('#feedback_frage_span').width();
	  var divbreite = $('#feedback_div').width();
	  $('#feedback_frage_div').width(textbreite + 1);
	  $('#feedback_frage_div').css('margin-left', ((divbreite - textbreite) / 2 / divbreite * 100) + '%');
    });
    //Ready muss direkt auf feedback_frage_span abgefragt werden, document reicht nicht!!
    $('#feedback_frage_span').ready(function(){$(window).resize();});
  }
  
  if( $('#stichwort_suche').length>0 ) {
    $(window).resize(function(){ 
      // TODO Wieso genau 130, oder obs bei allen Browsern und dem Tablet passt, kann ich derzeit noch nicht sagen.
      $('.ui-input-search').width( $('#stichwort_suche').innerWidth() - 130 ); 
    });
    $(window).resize();
  }
});

/*
------------------------------datebox-mobile------------------------------
Beschreibung: http://dev.jtsage.com/jQM-DateBox/
*/
jQuery.extend(jQuery.mobile.datebox.prototype.options.lang, {
	'de': {
		setDateButtonLabel: "Datum setzen",
		setTimeButtonLabel: "Zeit setzen",
		setDurationButtonLabel: "Dauer setzen",
		calTodayButtonLabel: "heute",
		titleDateDialogLabel: "Datum setzen",
		titleTimeDialogLabel: "Zeit setzen",
		daysOfWeek: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],
		daysOfWeekShort: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
		monthsOfYear: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
		monthsOfYearShort: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
		durationLabel: ['Tage', 'Stunden', 'Minuten', 'Sekunden'],
		durationDays: ['Tag', 'Tage'],
		tooltip: "Offene Datumsauswahl",
		nextMonth: "Nächsten Monat",
		prevMonth: "Vorheriger Monat",
		timeFormat: 24,
		headerFormat: '%A, %B %-d, %Y',
		dateFieldOrder: ['d','m','y'],
		timeFieldOrder: ['h', 'i', 'a'],
		slideFieldOrder: ['y', 'm', 'd'],
		dateFormat: '%d.%m.%Y',
		useArabicIndic: false,
		isRTL: false,
		calStartDay: 0
	}
});

jQuery.extend(jQuery.mobile.datebox.prototype.options, {
	useLang: 'de'
});

/* Initialisieren der Bilder-Galerie */
$(document).on("pageinit", '.page-gallery', function initialize() { 
	$('#foto_gallery').galleria({
	  height: 375,	
	  width: 0,	      
	  imageCrop: false,
	  carousel: false,
	  clicknext: true,
	  swipe: true
	});	
});

/* ----------------------------google maps------------------------------
 * Beim Öffnen der Seite mit class="page-map" wird in einem div mit der id "map_canvas"
 * eine Google Map angezeigt. 
 * Das Ziel wird aus dem Feld mit id="address" ausgelesen
 */  
  
var map;

$(document).on("pageshow", '.page-map', function initialize() {      	    	    	
  //iPhone-Browser: Probleme mit Standortberechnung   	    	
  //if (navigator.geolocation) {
  //  navigator.geolocation.getCurrentPosition(showMap, onError);
  //} else {
	showMap(0);
  //}
});          
   
function showMap(position) {
  var latlng;
  if (position != 0) {
    latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);  
  } else {
    latlng = new google.maps.LatLng(50.2, 11.9);
  }	        	
  var myOptions = {zoom: 15, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP};				 
  map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);       
              		
  if (position != 0) {
	calcRoute(latlng, document.getElementById('address').value);
  } else {
	setMarker( document.getElementById('address').value);
  }		
}   
    
//Ermitteln der Koordinaten der gesuchten Adresse durch Geocoder
//und setzen eines Markers
function setMarker(address) {
  var geocoder = new google.maps.Geocoder();
  geocoder.geocode( { 'address': address}, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {       
   	  map.setCenter(results[0].geometry.location);       
      var marker = new google.maps.Marker({map: map, position: results[0].geometry.location, 
                                           draggable: false, animation: google.maps.Animation.DROP, title: address});       	        
    } else {
   	  map.setZoom(6);
 	}
  }, 'de');
}

//Zeichnen einer Route zwischen start und dest
function calcRoute(start, dest) {
  var directionsDisplay = new google.maps.DirectionsRenderer();
  var request = {
  	origin: start,
  	destination: dest,
	travelMode: google.maps.TravelMode.DRIVING
  };
  var directionsService = new google.maps.DirectionsService();
  directionsService.route(request, function(response, status) {
    if (status == google.maps.DirectionsStatus.OK) {
      directionsDisplay.setDirections(response);
    }
  });
  directionsDisplay.setMap(map);  		
 } 
function onError() {
	  if (navigator.geolocation) {   
	    contentString = "Fehler: Die Standortbestimmung schlug fehl."
	  } else {  
	    contentString = "Fehler: Ihr Browser unterstützt keine Standortbestimmung.";
	  }
	  $.mobile.showPageLoadingMsg( $.mobile.pageLoadErrorMessageTheme, contentString, true );
	  setTimeout( $.mobile.hidePageLoadingMsg, 2000 );
	  showMap(0);
	}