// coding: utf-8
var possibleAnwendungen = [];	// mit möglichen Terminen
var keinPersonal;
var datum;
var timer;
var now = new Date();
var aktuelleUhrzeit;

var artikel;
var personal;

$(document).ready(function() {
	$('.jqmWindow').jqm();
	getUhrzeit();
	uhrzeitTimer = setInterval("getUhrzeit()",1000 * 60); // jede Minute die aktuelle Zeit neu berechnen
	
	$('#anwendungsDatumChooser .content').datepicker({
		dateFormat: "yy-mm-dd",
		minDate: 1,
		onSelect: function(dateText, inst) {
			$('#anwendungen .content').empty();
			$('#anwendungen').show();
			
			$.post(BASE_URL + 'ajaxResponder.php?action=getPossibleTermineByArtikel',{'datum' : dateText},function(data) {
				possibleAnwendungen = data.possibleAnwendungen;
				keinPersonal = data.keinPersonal;
				datum = dateText;
				if (possibleAnwendungen.length == 0) {
					alert('Es tut uns leid: An diesem Tag sind bereits alle Masseure ausgebucht. Bitte wählen Sie einen anderen Tag.');
				} else {
					displayAnwendungen();
				}
			});
			return false;
		}
	});
	
	$.post(BASE_URL + 'ajaxResponder.php?action=getData',function(data) {
		artikel = data.artikel;
		personal = data.personal;
	},'json');
});
function getUhrzeit() {
	
	var aktuelleStunden = now.getHours();
	var aktuelleMinuten = now.getMinutes();
	if (aktuelleMinuten < 10){
		aktuelleMinuten = "0" + String(aktuelleMinuten);
	}
	if (aktuelleStunden < 10){
		aktuelleStunden = "0" + String(aktuelleStunden);
	}
	aktuelleUhrzeit = aktuelleStunden+':'+aktuelleMinuten;
	var d = new Date();
	$('#Uhr').html(formatDate(d.getSqlDateTime().substr(0,10))+' '+aktuelleUhrzeit+' Uhr');
}
function displayAnwendungen() {
	$('#anwendungen .content').empty();
	$('#uhrzeiten .content').empty();
	$('#step2Date').html(formatDate(datum));
	var Artikel_ID, $anwendung;
	var action;

	for (var id in artikel) {
		Artikel_ID = id.replace(/ArtikelID_/,'');
		
		// per GET-Parameter nur einen bestimmten Artikel anzuzeigen, z.B.: http://massage.claudiustherme.de/?onlyshow=294
		if (onlyshow){
			if (Artikel_ID == onlyshow) {
				$anwendung = $('<li id="ArtikelID_'+Artikel_ID+'">'+artikel['ArtikelID_'+Artikel_ID]['Name']+'<span style="float: right;">('+artikel['ArtikelID_'+Artikel_ID]['Dauer']+' Min)</span></li>');
				
				var action = function(Artikel_ID) {
					if (typeof possibleAnwendungen[Artikel_ID] != 'undefined') {
						//$('#anwendungen').hide();
						displayZeiten(Artikel_ID);
						$('#anwendungen li').removeClass('chosen');
						$('#ArtikelID_'+Artikel_ID).addClass('chosen');
					}
				};
				
				addClickAction($anwendung, action, Artikel_ID);
				
				if (typeof possibleAnwendungen[Artikel_ID] == 'undefined') {
					$anwendung.addClass('disabled');
					$anwendung.attr('title','An diesem Tag leider nicht mehr erhältlich');
				} else {
					$anwendung.mouseenter(function() {$(this).addClass('hover');})
					.mouseleave(function() {$(this).removeClass('hover');});
				}
				$('#anwendungen .content').append($anwendung);	
				
			}
		} else {
			$anwendung = $('<li id="ArtikelID_'+Artikel_ID+'">'+artikel['ArtikelID_'+Artikel_ID]['Name']+'<span style="float: right;">('+artikel['ArtikelID_'+Artikel_ID]['Dauer']+' Min)</span></li>');
		
			var action = function(Artikel_ID) {
				if (typeof possibleAnwendungen[Artikel_ID] != 'undefined') {
					//$('#anwendungen').hide();
					displayZeiten(Artikel_ID);
					$('#anwendungen li').removeClass('chosen');
					$('#ArtikelID_'+Artikel_ID).addClass('chosen');
				}
			};
			
			addClickAction($anwendung, action, Artikel_ID);
			
			if (typeof possibleAnwendungen[Artikel_ID] == 'undefined') {
				$anwendung.addClass('disabled');
				$anwendung.attr('title','An diesem Tag leider nicht mehr erhältlich');
			} else {
				$anwendung.mouseenter(function() {$(this).addClass('hover');})
				.mouseleave(function() {$(this).removeClass('hover');});
			}
			$('#anwendungen .content').append($anwendung);
			
		}
	}
	$.scrollTo('#anwendungen', 800);
}

function displayZeiten(Artikel_ID) {
	$('#uhrzeiten .content').empty();
		$('#uhrzeiten').show();
	
	var terminDatum = Date.getFromSqlDateTime(datum+' '+'00:00:00');
	
	
	for (var Uhrzeit in possibleAnwendungen[Artikel_ID]) {
	
		terminDatum.setHours(Uhrzeit.substr(0,2));
		terminDatum.setMinutes(Uhrzeit.substr(3,2));
		
		if (terminDatum.getTime() < now.getTime() + (1000*60*60*12)) continue;
		var $zeit = $('<li class="zeit" id="Z'+Uhrzeit.substr(0,5).replace(/:/,'')+'"><span>'+Uhrzeit.substr(0,5)+'</span>'+(keinPersonal?'':'<ul class="personalListe"></ul>')+'</li>');
		for (var id in possibleAnwendungen[Artikel_ID][Uhrzeit]) {
			var Personal_ID = possibleAnwendungen[Artikel_ID][Uhrzeit][id];
			if (Personal_ID == 0 &! keinPersonal) continue; // Wenn mehr als nur der Dummy Dienst haben ignoriere die Dummydienstzeiten.
			
			var args = [];
			args[0] = Artikel_ID;
			args[1] = Uhrzeit;
			args[2] = Personal_ID;
			
			action = function(args) {
				displayBuchung(args[0], args[1], args[2]);
				$('#uhrzeiten li').removeClass('chosen');
				$('#Z'+args[1].substr(0,5).replace(/:/,'')).addClass('chosen');
			};
			
			if (Personal_ID == 0 && keinPersonal) {
				addClickAction($zeit, action, args);
			} else {
				var myPersonal = personal[Personal_ID];
				var $personal = $('<li class="personal">'+myPersonal.Vorname+' '+myPersonal.Name+'</li>');
				$zeit.find('ul').append($personal);
				addClickAction($personal, action, args);
			}
		}
		if (keinPersonal || (!keinPersonal && $zeit.find('ul li').length > 0)) $('#uhrzeiten .content').append($zeit);
	}
	
	addHoverAction();
	$.scrollTo('#uhrzeiten', 800);
}


function displayBuchung(Artikel_ID, Uhrzeit, Personal_ID) {
	var personalText = Personal_ID == 0?'':'bei '+personal[Personal_ID].Vorname+' '+personal[Personal_ID].Name;
	var Dauer = artikel['ArtikelID_'+Artikel_ID]['Dauer'];
	
	
	$('.Anwendungsname').html(artikel['ArtikelID_'+Artikel_ID].Name+'<span style="display: block; float: right; font-size: 0.9em;">am '+dateConvert(datum)+' von '+Uhrzeit.substr(0,5)+' Uhr bis '+min2h(h2min(Uhrzeit)+Dauer)+' Uhr</span>');
	if (typeof artikel['ArtikelID_'+Artikel_ID]['Onlinetext'] == 'string') $('.Anwendungsbeschreibung').html(artikel['ArtikelID_'+Artikel_ID]['Onlinetext']);
	else $('.Anwendungsbeschreibung').empty();
	$('.Personalname').html(personalText);
	
	$('#Artikel_ID').val(Artikel_ID);
	$('#Uhrzeit').val(Uhrzeit);
	$('#Datum').val(datum);
	$('#Personal_ID').val(Personal_ID);
	
	$('#geschlecht').empty();
	if (Personal_ID == 0) {
		$('#geschlecht').append('<span style="font-weight: bold;">Wollen Sie von einem Mann oder von einer Frau massiert werden?</span><select id="Terminbemerkung" name="Terminbemerkung"><option value="">keine Präferenz</option><option value="Bitte bei einer Frau">Frau</option><option value="Bitte bei einem Mann">Mann</option></select>');
	}
	
	
	$('#buchung').show();
	$.scrollTo('#buchung', 800);
}
/*---------------------------------------------------------------------evtl. durch besseres plugin ersetzen------------------*/
function addHoverAction() {
	$('#uhrzeiten li span').mouseenter(function() {
			$('ul.personalListe').fadeOut();
			$(this).parent().fadeTo('fast',1);
			clearTimeout(timer);
			$(this).addClass('hover');
			if (!keinPersonal) {
				var $personalListe = $(this).parent().find('ul');
				var numPersonal = $personalListe.find('li').length;
				var offset = -(numPersonal + 1);
				var self = this;
				$('li.zeit').not($(self).parent()).fadeTo('slow',0.3);
				$personalListe.find('li').each(function() {
					offset += 2;
					$(this).css({	
						'top': offset+'em',
						'left': '32px'
					});
				});
				
				$personalListe.fadeIn();
			}
		}
	)
	.mouseleave(function() {
			$(this).removeClass('hover');
			
			if (!keinPersonal) {
				timer = setTimeout(function(){$('ul.personalListe').fadeOut();$('li.zeit').fadeTo('slow',1);} , 1000);
				
			}
		}
	);
	$('.personal').mouseenter(function() {
			clearTimeout(timer);
			$(this).addClass('hover');
	})
	.mouseleave(function() {
			$(this).removeClass('hover');
			timer = setTimeout(function(){$('ul.personalListe').fadeOut();$('li.zeit').fadeTo('slow',1);} , 1000);
		}
	);
}
function dateConvert(string) {
	var year = string.substring(0,4);
	var month = string.substring(5,7);
	var day = string.substring(8,10);
	return day+'.'+month+'.'+year;
}
function bucheVorlaeufigenTermin(Datum, Uhrzeit, Artikel_ID, Kunden_ID, Terminbemerkung) {
	var postArray = {
		'Datum':Datum,
		'Uhrzeit':Uhrzeit,
		'Artikel_ID':Artikel_ID,
		'Personal_ID':0,
		'Kunden_ID':Kunden_ID,
		'Gebucht_von':'online', 
		'Terminbemerkung':Terminbemerkung,
		'Status':'inZahlung',
		'2session':1
	};
	$.post(BASE_URL + 'ajaxResponder.php?action=newTermin',postArray,function(data){
		if (data.success) {
			$('.bezahlButton').submit();
		} else {
			alert(data.message);
		}
	},'json');
	
}
