﻿function asl_onload(asmkp)
{
	$('#menu-navi_belegungsplan_bearbeiten').click(function(e) {
		e.preventDefault();
		window.open('/belegung/bearbeiten/asmkp/' + asmkp,'','menubar=no,toolbar=no,scrollbars=yes,hotkey=no,location=no');
	});
	
	
	$('#belegungform').submit( function(e) 
	{  
		e.preventDefault();
		$('.warten_fenster_1').css('display','block');
		
		var belegung = $('#belegungform').clone().removeAttr('id').attr('id','speichernform').css('display','none').insertAfter('body');
		$('#speichernform .belegung_zelle input').remove(':not(".aenderung")');
		
		var formular_daten = belegung.serialize(); /* alle <.belegung_zelle_input> elemente, die nicht .aenderung haben, wegfiltern */
		

		var verarbeiten = function(antwort)
		{
			if(antwort != 'Erfolgreich.')
			{
				if (antwort == "")
					antwort = "Keine Problembeschreibung vorhanden.";
				
				alert(	"Es ist ein Problem aufgetreten."
						+ "\n\nBitte melden Sie sich bei:\n\nRalf Asmus - Tel 039931 / 83981 - Email: r.asmus@webdesign-asmus.de"
						+ "\n\nProblembeschreibung:\n\n" 
						+ antwort		
				)
			}
		};
		
		$.ajax({
			type	: 'POST',
			url		: '/belegung/speichern/json/ja/asmkp/' + asmkp,
			data	: '&' + formular_daten,
			async	: false,
			success	: verarbeiten,
			dataType: 'text' /* datentyp der response - json | text | xml | html | ... */
		}); /* entspricht ausser dem async diesem hier: $.post('/belegung/speichern/json/ja', '&'+formular_daten, verarbeiten, 'text'); */
		
		// cleanup
		$('.warten_fenster_1').css('display','none');
		// bei allen gespeicherten Tagen auch den "vorher" wert neu setzen, damit folgende Aenderungen korrekt erkannt werden.
		$('td.aenderung').each( function(index)
				{
					$('#' + $(this).attr('id') + '_vorher').val($('#' + $(this).attr('id') + '_feld').val());
				});
		$('.aenderung').removeClass("aenderung");
		$('#speichernform').remove();
		enable_disable();	//nach dem Speichern das Warnungsfenster neu setzen.		
	});
	
	/* uebertraegt die Daten wie ein ganz normaler POST request */
	$('#belegungform-NICHT-genutzt').submit( function(e) 
	{  
		e.preventDefault();
		$('.warten_fenster_1').css('display','block');
		var formular_daten = $(this).serialize();
		var verarbeiten = function(antwort)
		{
			if(antwort != 'Erfolgreich.')
			{
				if (antwort == "")
					antwort = "Keine Problembeschreibung vorhanden.";
				
				alert(	"Es ist ein Problem aufgetreten."
						+ "\n\nBitte melden Sie sich bei:\n\nRalf Asmus - Tel 039931 / 83981 - Email: r.asmus@webdesign-asmus.de"
						+ "\n\nProblembeschreibung:\n\n" 
						+ antwort		
				)
			}
		};
		
		
		$.ajax({
			type	: 'POST',
			url		: '/belegung/speichern/json/ja/asmkp/' + asmkp,
			data	: '&'+formular_daten,
			async	: false,
			success	: verarbeiten,
			dataType: 'text'
		}); /* entspricht ausser dem async diesem hier: $.post('/belegung/speichern/json/ja', '&'+formular_daten, verarbeiten, 'text'); */
		
		$('.warten_fenster_1').css('display','none');
		$('.aenderung').removeClass("aenderung");
		
	});
	
	
	/*
	$('#speichern1').click(function(e) 
	{  
		$('.warten_fenster_1').css('display','block');  
	});
	*/
	
	setzeCookie('funktion_asl_onload', 'pos100');
}

function auswahl_markierung(thiso)
{
	/*
	for(idx=0; idx<=5; idx++)
	{
		document.getElementById("belegung"+idx).className="legendex";
	}
	thiso.className="legendex active";
	document.forms.belegungform["belegungart"].value=thiso.id.substr(8,1);
	*/
	elementid = '#'+thiso.id; 
	$('.legendex').removeClass('active');
	$(elementid).addClass('active');
	$("#belegungart").val(thiso.id.substr(8,1));
	
}

//thiso = das angeclickte element (this)
function tag_zelle_onclick(thiso, imgbase)
{
   elementid = '#'+thiso.id;
   belegungart = $('#belegungart').val(); // die in der Legende gewaehlte Belegungsart: 4= belegt, 0=frei usw.
   $(elementid).css('background','url(' + imgbase + '/belegung' + belegungart + '.gif)'); 
   $(elementid+'_feld').val(belegungart);  // angeklicktes formularfeld bekommt den wert aus der legende
   if ( $(elementid+'_feld').val() != $(elementid+'_vorher').val())
   {
	   $(elementid).addClass("aenderung");
	   $(elementid + '_feld').addClass("aenderung");
   }
   else
   {
	   $(elementid).removeClass("aenderung");
	   $(elementid + '_feld').removeClass("aenderung");
   }
   enable_disable();
}

function enable_disable()
{
	geaendert = $('input.aenderung');
	$('#meldung_geaendert').html(geaendert.size());
	if (geaendert.size() > 0)
	{
		$('.disabled').removeClass('unsichtbar');
		$('.enabled').removeClass('sichtbar');
		$('.enabled').addClass('unsichtbar');
		$('.disabled').addClass('sichtbar');
	}
	else
	{
		$('.disabled').removeClass('sichtbar');
		$('.enabled').removeClass('unsichtbar');
		$('.enabled').addClass('sichtbar');
		$('.disabled').addClass('unsichtbar');
	}
}


function toggle_legende(id_input)
{
	if (document.getElementById(id_input).checked)
		xdisplay = "none";
	else
		xdisplay = "block";
	
	$('#belegung1').css('display',xdisplay);
	$('#belegung2').css('display',xdisplay);
	$('#belegung3').css('display',xdisplay);
	$('#belegung5').css('display',xdisplay);
}

function Asm_Datum(datum)
{
	this.tagIndex = function(tag, monat, jahr) 
	{
		index = 0;
        yearStart = Asm_Asm.getProperty('belegung_abjahr');   // am 1.1.2010 faengt die Belegung in der DB an

        if (jahr > 2013)    //implementiert ist nur DB-Spalte asmup_site.belegung = 1500 Zeichen = 4 jahre: 2010-2013; rechtzeitig 2012 exception werfen in development
           if (ASM_APPLICATION_ENVIRONMENT == 'development') 
               throw new Asm_Exception('Asm_Site_Objekt: Hard coded Limit: DB Spalte asmup_site.belegung auf Jahr > 2013 umsetzen!');

        for (year = yearStart; year < jahr; year++)
        {
            //throw new Exception("Noch testen !!!!!!");
            if ( (year % 4) == 0)
               index += 366; //leapyear Schaltjahr
            else
               index += 365; 
        }
        
        //Tage der Monate bis zum datumBegin hinzufuegen
        for (mon = 1; mon < monat; mon++)
            index += this.cal_days_in_month(mon, jahr);
    	
        return index + tag - 1; //Zeichenketten-Index beginnt bei 0
	}
	
	
	this.cal_days_in_month = function(monat, jahr) 
	{
		var tage = { 1:31,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31 };
		if (monat == 2) 
			if ((year % 4) == 0)
				return 29;
			else
				return 28;
		else
			return tage[monat];
	}
}


