$(document).ready(function() {
	var dagar_pa_svenska = ['Söndag', 'Måndag', 'Tisdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lördag'];	
	$("#datum").datepicker({
		
		altField: 'input#datum',
		altFormat: 'yy-mm-dd',
		minDate: new Date(),
		dayNames: dagar_pa_svenska,
		dayNamesMin: ['Sön', 'Mån', 'Tis', 'Ons', 'Tors', 'Fre', 'Lör'],
		monthNames: ['Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December'],
		monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'],
		nextText: 'Nästa',
		prevText: 'Föregående',
		firstDay: 1,
		beforeShowDay: function (dateText) {
			var dag = new Date(Date.parse(dateText)).getDay();
			var terapeut = $('#terapeut option:selected').attr('value').toString();
			var tillgangliga_dagar = terapeuter[terapeut]['dagar'];
			
			for (var i = 0; i < tillgangliga_dagar.length; i++) {
				if (tillgangliga_dagar[i] === dag) {
					return [true];
				}
			}
			
			return [false];
		},
		onSelect: function(dateText) {

			var dag = new Date(dateText).getDay();
			var terapeut = $('#terapeut option:selected').attr('value').toString();
			var tillgangliga_dagar = terapeuter[terapeut]['dagar'];
			
			//Apparently error with indexOf()
			var dagExists = false;
			for (var i = 0; i < tillgangliga_dagar.length; i++) {
				if (tillgangliga_dagar[i] === dag) {
					dagExists = true;
					break;
				}
			}
			
			if (!dagExists) {	
				var namn = terapeuter[terapeut]['namn'];
				
				if (namn == null) {
					namn = "";
				}
				
				var dagarPaSvenska = dagar_pa_svenska[dag].toString();
				
				if (dagarPaSvenska != null) {
					dagarPaSvenska = dagarPaSvenska.toLowerCase();
				}
					
				alert(namn + " är inte tillgänglig för behandling på " + dagarPaSvenska + "ar. Var god välj en annan dag.");
				$('#datum').attr('value', ''); // ta bort datumet ur inputten
				this.datepicker('show');
			}

			// hämta vilka lediga tider som finns via ajax och uppdatera $('#klockan)...
			changeTillgangligaTider(terapeut);
		}
	});
	
	if ($('#presentkortorders')) {
		if (location.hash) {
			var row_to_highlight = location.hash.substring(1);
			$('#' + row_to_highlight).addClass('highlight');
		}
	}


	$('#terapeut').change(changeBehandlingar);
	if($('#boka-behandling').length > 0)
		changeTerapeuterLoad($('#behandling'));
	$('#behandling').change(changeTerapeuter);
	$('#promotion').cycle({
		delay: 5000,
		speed: 1000
	});
	
	$('a.behandla').click(behandlaPopup);
});

function changeBehandlingar(e) {
	/*var terapeut_id = $(e.target).attr('value');
	var myTemplate = $.template('<option value="${id}">${namn}</option>');

	$('#behandling').empty();

	for (i in behandlingarByTerapeut[terapeut_id]) {
		$('#behandling').append(myTemplate, {'id' : behandlingarByTerapeut[terapeut_id][i], 'namn' : behandlingar[behandlingarByTerapeut[terapeut_id][i]]});
	}*/
	
	$('#datum').attr('value', '');
	var terapeut = $('#terapeut option:selected').attr('value').toString();
	changeTillgangligaTider(terapeut);
}

function changeTerapeuter(e) {
	var behandling_id = $('#behandling option:selected').parent('optgroup').attr('id').split(/_/)[1];
	var myTemplate = $.template('<option value="${id}">${namn}</option>');
	
	$('#terapeut').empty();
	
	for (i in terapeuterByBehandlingar[behandling_id]) {
		$('#terapeut').append(myTemplate, {'id' : terapeuterByBehandlingar[behandling_id][i], 'namn' : terapeuter[terapeuterByBehandlingar[behandling_id][i]]['namn']});
	}
	
	$('#datum').attr('value', '');
	var terapeut = $('#terapeut option:selected').attr('value').toString();
	changeTillgangligaTider(terapeut);
}

function changeTerapeuterLoad(el) {
	var selected = $('#terapeut option:selected').attr('value');
	var behandling_id = $('#behandling option:selected').parent('optgroup').attr('id').split(/_/)[1];
	var myTemplate = $.template('<option value="${id}">${namn}</option>');

	$('#terapeut').empty();

	for (i in terapeuterByBehandlingar[behandling_id]) {
		$('#terapeut').append(myTemplate, {'id' : terapeuterByBehandlingar[behandling_id][i], 'namn' : terapeuter[terapeuterByBehandlingar[behandling_id][i]]['namn']});
	}
	
	$('#terapeut option[value=\'' + selected + '\']').attr('selected', true);
}

function changeTillgangligaTider(terapeut_id) 
{
	var myTemplate = $.template('<option value="${kl}">${kl}</option>');

	$('#klockan').empty();
	
	var behandling_id = $('#behandling').val();
	var datum = $('#datum').val();

	$.getJSON('/behandlingar/get-lediga-tider/terapeut/' + terapeut_id + '/behandling/' + behandling_id + '/datum/' + datum, function(json) {
		
		if (json != null && json.length != '0') 
		{
			for (i in json) 
			{
				$('#klockan').append(myTemplate, {'kl' : json[i]});
			}
		} 
		else 
		{
			var dag = new Date(datum).getDay();
			var terapeut = $('#terapeut option:selected').attr('value').toString();
			
			var namn = terapeuter[terapeut]['namn'];
			if(namn == null)
				namn = "ogiltligt datum ";
			else
				namn = namn + " är fullbokad ";
			
			alert(namn + datum.toString() + '. Var god välj en annan dag.');
			$('#datum').attr('value', ''); // ta bort datumet ur inputten
			$('#datum').datepicker('show');
		}
	});
}

function behandlaPopup(event) {
	var id = $(this).attr('id').split(/_/)[1];
	
	window.open("/intra/behandla/id/" + id, "behandlaWindow", "status = 0, height = 340, width = 400, resizable = 1" );
}
