//	********************************************************************************************************
//		CSearchChildFormHandler.js
//	********************************************************************************************************
//
//		CREATED FROM:	Robert Stiehler (idaSys)
//		CREATED AT:	14.10.2008
//		
//		UPDATES:
//
//	--------------------------------------------------------------------------------------------------------


//class CSearchChildFormHandler
//{
//public:
	function CSearchChildFormHandler()
	{
	//public:
		this.checkAndSubmit = declared_checkAndSubmit;
		this.setAbstractSearchForm = declared_setAbstractSearchForm;
		this.setNumberOfChildren = declared_setNumberOfChildren;
		
	//private:
		this.isValidChildDate = declared_isValidChildDate;
		this.isValidDate = declared_isValidDate;
		
		this.log = xajax_logStringToFile;
		
	//private attributes:
		this.abstractSearchForm = null;
		this.numberOfChildren = 0;
	}

//public:
	function declared_setAbstractSearchForm(model)
	{
		try
		{
			this.abstractSearchForm = model;
		}
		catch(e) {this.log("CSearchChildFormHandler::setAbstractSearchForm\n" + e.message, "logging/JSExceptionLog.txt");}
	}

//public:
	function declared_setNumberOfChildren(number)
	{
		try
		{
			this.numberOfChildren = number;
		}
		catch(e) {this.log("CSearchChildFormHandler::setNumberOfChildren\n" + e.message, "logging/JSExceptionLog.txt");}
	}

//public:
	function declared_checkAndSubmit()
	{
		try
		{			
			var BDayString = "";
			for(var i = 1; i <= this.numberOfChildren; i++)
			{
				var year = document.getElementById('dyn_gebjahr' + i).value;
				var month = document.getElementById('dyn_gebmonat' + i).value;
				var day = document.getElementById('dyn_gebtag' + i).value;
				
				if((year == "") || (month == "") || (day == ""))
				{
					alert(translationsTextSearchForm["VollstaendigesDatum"]);
					return;
				}
				else
				{
					if(!this.isValidDate(year, month, day))
					{
						alert(translationsTextSearchForm["Datum"] + ": " + day + "." + month + "." + year + " " + translationsTextSearchForm["IstNichtGueltig"] + "!")
						return;
					}
					
					if(!this.isValidChildDate(year, month, day))
					{
						alert(day + "." + month + "." + year + " " + translationsTextSearchForm["IstNichtImAlterbereich"] + "!")
						return;
					}
				}
				BDayString += day + '.' + month + '.' + year + '#';
			}
			
			var holder = document.getElementById("searchFormContent");
			while(holder.hasChildNodes())
				holder.removeChild(holder.lastChild);
			
			var ThisObjectNodeNumber = null;
			for(var i = 0; i < document.getElementById("searchFormContent").parentNode.childNodes.length; i++)
			{
				if(document.getElementById("searchFormContent").parentNode.childNodes[i].id == "searchFormContent")
					ThisObjectNodeNumber = i;
			}
			
			document.getElementById("searchFormContent").parentNode.replaceChild(this.abstractSearchForm, document.getElementById("searchFormContent").parentNode.childNodes[ThisObjectNodeNumber]);
			
			objSearchFormHandler.SearchSubmit(BDayString);
		}
		catch(e) {this.log("CSearchChildFormHandler::checkAndSubmit\n" + e.message, "logging/JSExceptionLog.txt");}
	}
	
//private:
	function declared_isValidChildDate(year, month, day)
	{
		try
		{
			var today = new Date();
			var yearTotal = (today.getYear() - 1);
			
			if(yearTotal < 2000)
				yearTotal += 1900;
				
			if((today.getMonth() + 1) == month)
			{
				if(today.getDate() >= day)
					yearTotal ++;
			}
			else if((today.getMonth() + 1) > month)
				yearTotal++;
	
			yearTotal -= year;
			if((yearTotal >= 12) ||(yearTotal < 0))
				return false;
			
			return true;
		}
		catch(e) {this.log("CSearchChildFormHandler::isValidChildDate\n" + e.message, "logging/JSExceptionLog.txt");}
	}
	
//private:
	function declared_isValidDate(year, month, day)
	{
		try
		{
			if(month == 4 || month == 6 || month == 9 || month == 11)
			{
				if(day > 30)
					return false;
			}
			else if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
			{
				if(day > 31)
					return false;
			}
			else if(month == 2 && year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
			{
				if(day > 29)
					return false;
			}
			else if(month == 2 && year % 4 != 0 || year % 100 == 0 && year % 400 != 0)
			{
				if(day > 28)
					return false;
			}
			
			return true;
		}
		catch(e) {this.log("CSearchChildFormHandler::isValidDate\n" + e.message, "logging/JSExceptionLog.txt");}		
	}
//};