// Ext.onReady(function(){
/*
 * // comboboxen für EN function calendar_en (id, displayLables, language){
 * Ext.QuickTips.init();
 * 
 * var selected_year = ''; var selected_month = ''; // wenn displayLables auf
 * true gesezt ist, werden die Labels (JAHR, MONAT und TAG angezeigt)
 * if(displayLables == true){ labelYear = getLabelText(language, 'year');
 * labelMonat = getLabelText(language, 'monat'); labelDay =
 * getLabelText(language, 'day'); } else{ labelYear = ''; labelMonat = '';
 * labelDay = ''; }
 * 
 *  // Combobox JAHR var now = new Date(); var end_year = now.getFullYear(); var
 * start_year = '1925';
 * 
 * function testYear(){ var dataYear = getYearList(start_year, end_year); var
 * yearArray = new Array(); for(var i = 0; i < dataYear.length; i++){ var
 * dataArray = new Array(); dataArray.push(dataYear[i].get('year'));
 * yearArray.push(dataArray); } return yearArray; }
 * 
 * 
 * var storeYear = new Ext.data.SimpleStore({ data : testYear(), fields: [
 * {name: 'year'}, {name: 'id'} ]
 * 
 * }); storeYear.loadData(testYear());
 * 
 *  // Combobox MONAT function testMonth(){ var dataMonth = getMonthList(); var
 * monthArray = new Array(); for(var i = 0; i < dataMonth.length; i++){ var
 * dataArray = new Array(); dataArray.push(dataMonth[i].get('month'));
 * monthArray.push(dataArray); } return monthArray; } var storeMonth = new
 * Ext.data.SimpleStore({ data : testMonth(), fields: [ {name: 'month'}, {name:
 * 'id'}
 *  ]
 * 
 * }); storeMonth.loadData(testMonth());
 *  // Combobox DAY
 * 
 * function testDay(){ var dataDay = getDayList(selected_year,selected_month);
 * var dayArray = new Array(); for(var i = 0; i < dataDay.length; i++){ var
 * dataArray = new Array(); dataArray.push(dataDay[i].get('day'));
 * dayArray.push(dataArray); } return dayArray; } var storeDay = new
 * Ext.data.SimpleStore({ data : testDay(), fields: [ {name: 'day'}, {name:
 * 'id'}
 *  ]
 * 
 * }); storeDay.loadData(testDay());
 * 
 * 
 * var day_combobox = new Ext.form.ComboBox({
 * 
 * fieldLabel: labelDay, displayField: 'day', valueField: 'day', name: 'day',
 * mode: 'local', id:'day', editable: false, triggerAction: 'all', emptyText:'',
 * border: true, width: 60, listWidth: 60, store : storeDay });
 * 
 * day_combobox.on( //Ext.form.Field this, Mixed newValue, Mixed oldValue
 * 'focus', function(f, n, o) { // validate day selected_year =
 * year_combobox.getValue() selected_month = month_combobox.getValue() var
 * selected_day = day_combobox.getValue() this.clearValue();
 * storeDay.loadData(testDay());
 * 
 * 
 * 
 *  } );
 * 
 * var month_combobox = new Ext.form.ComboBox({
 * 
 * fieldLabel: labelMonth, displayField: 'month', valueField: 'month', name:
 * 'month', mode: 'local', id:'month', editable: false, triggerAction: 'all',
 * emptyText:'', border: true, width: 60, listWidth: 60, store : storeMonth });
 * 
 * month_combobox.on( //Ext.form.Field this, Mixed newValue, Mixed oldValue
 * 'select', function(f, n, o) { selected_year = year_combobox.getValue();
 * selected_month = month_combobox.getValue(); var day_field =
 * Ext.getCmp('day'); var selected_day = day_combobox.getValue();
 * if(selected_day == ""){ day_field.clearValue(); storeDay.loadData(testDay()); }
 * if(selected_month == '2' && selected_day > 29){ day_field.clearValue();
 * storeDay.loadData(testDay()); } //month == "4" || month == "6" || month ==
 * "9" || month == "11" if((selected_month == '4' || selected_month == '6' ||
 * selected_month == '9' || selected_month == '11') && selected_day > 30){
 * day_field.clearValue(); storeDay.loadData(testDay()); }
 *  } );
 * 
 * 
 * var year_combobox = new Ext.form.ComboBox({ fieldLabel: labelYear,
 * displayField: 'year', valueField: 'year', name: 'year', mode: 'local',
 * id:'year', editable: false, triggerAction: 'all', emptyText:'', border: true,
 * width: 60, listWidth: 60, store : storeYear
 * 
 * });
 * 
 * year_combobox.on( //Ext.form.Field this, Mixed newValue, Mixed oldValue
 * 'select', function(f, n, o) { year_value = n; selected_year =
 * year_combobox.getValue(); selected_month = month_combobox.getValue(); var
 * month_field = Ext.getCmp('month'); var month_field_value =
 * Ext.getCmp('month').getValue(); var day_field = Ext.getCmp('day'); var
 * selected_day = day_field.getValue(); if(month_field_value == '2' &&
 * (!!((selected_year & 3) == 0 && (selected_year % 100 || (selected_year % 400 ==
 * 0 && selected_year()))))== true || selected_year != '' ){ if(selected_day ==
 * '30' || selected_day == '31'){ day_field.clearValue();
 * storeDay.loadData(testDay()); } } if(month_field_value == '2' &&
 * (!!((selected_year & 3) == 0 && (selected_year % 100 || (selected_year % 400 ==
 * 0 && selected_year()))))== false ){ if(selected_day > 28){
 * day_field.clearValue(); storeDay.loadData(testDay()); } } } );
 * 
 * var birthdayPanel = new Ext.form.FormPanel({ id: 'form-calendar', labelAlign:
 * 'top', frame:true, name: 'form-calendar', width: 628, //height:'auto',
 * border: false, //renderTo: Ext.get('calendar'), renderTo:
 * Ext.get('form-main'), layout: 'column', items: [{ layout: 'form',
 * columnWidth: .12, items: [year_combobox] }, { layout: 'form', columnWidth:
 * .12, items: [month_combobox] }, { layout: 'form', columnWidth: .12, items:
 * [day_combobox] }]
 * 
 * 
 * }); return birthdayPanel; }
 */
// Comboboxen für DE
var now = new Date();
var end_year = now.getFullYear();
var start_year = '1900';
var selected_year = '';
var selected_month = '';

function displayCalender(fieldId, hideLables, language, container) {

	// wenn displayLables auf true gesezt ist, werden die Labels (JAHR, MONAT
	// und TAG angezeigt)
	if (hideLables == false) {
		labelYear = getLabelText(lang, 'year');
		labelMonth = getLabelText(lang, 'month');
		labelDay = getLabelText(lang, 'day');
	} else {
		labelYear = '';
		labelMonth = '';
		labelDay = '';
	}
	// Combobox JAHR

	var storeYear = new Ext.data.SimpleStore({
				data : testYear(),
				fields : [{
							name : 'year'
						}, {
							name : 'id'
						}]

			});
	storeYear.loadData(testYear());

	// Combobox MONAT

	var storeMonth = new Ext.data.SimpleStore({
				data : testMonth(),
				fields : [{
							name : 'month'
						}, {
							name : 'id'
						}

				]

			});
	storeMonth.loadData(testMonth());

	// Combobox DAY

	var storeDay = new Ext.data.SimpleStore({
				data : testDay(),
				fields : [{
							name : 'day'
						}, {
							name : 'id'
						}

				]

			});
	storeDay.loadData(testDay());

	var day_combobox = new Ext.form.ComboBox({
				fieldLabel : labelDay,
				displayField : 'day',
				valueField : 'day',
				labelSeparator : '',
				name : 'day',
				mode : 'local',
				id : fieldId + 'day',
				hideLabel : hideLables,
				editable : false,
				triggerAction : 'all',
				emptyText : getLabelText(lang, 'day'),
				border : true,
				width : 60,
				listWidth : 60,
				store : storeDay
			});

	day_combobox.on(
			// Ext.form.Field this, Mixed newValue, Mixed oldValue
			'focus', function(f, n, o) {
				// validate day
				selected_year = year_combobox.getValue();
				selected_month = month_combobox.getValue();
				var selected_day = day_combobox.getValue();
				this.clearValue();
				storeDay.loadData(testDay());
			});

	var month_combobox = new Ext.form.ComboBox({

				fieldLabel : labelMonth,
				displayField : 'month',
				labelSeparator : '',
				valueField : 'month',
				name : 'month',
				mode : 'local',
				hideLabel : hideLables,
				id : fieldId + 'month',
				editable : false,
				triggerAction : 'all',
				border : true,
				width : 60,
				listWidth : 60,
				emptyText : getLabelText(lang, 'month'),
				store : storeMonth
			});

	month_combobox.on(
			// Ext.form.Field this, Mixed newValue, Mixed oldValue
			'select', function(f, n, o) {
				selected_year = year_combobox.getValue();
				selected_month = month_combobox.getValue();
				var day_field = Ext.getCmp(fieldId + 'day');
				var selected_day = day_combobox.getValue();
				if (selected_day == "") {
					day_field.clearValue();
					storeDay.loadData(testDay());
				}
				if (selected_month == '02' && selected_day > 29) {
					day_field.clearValue();
					storeDay.loadData(testDay());
				}
				// month == "4" || month == "6" || month == "9" || month == "11"
				if ((selected_month == '04' || selected_month == '06'
						|| selected_month == '09' || selected_month == '11')
						&& selected_day > 30) {
					day_field.clearValue();
					storeDay.loadData(testDay());
				}

			});

	var year_combobox = new Ext.form.ComboBox({
				fieldLabel : labelYear,
				labelSeparator : '',
				displayField : 'year',
				valueField : 'year',
				name : 'year',
				mode : 'local',
				id : fieldId + 'year',
				editable : false,
				triggerAction : 'all',
				hideLabel : hideLables,
				border : true,
				width : 60,
				listWidth : 60,
				emptyText : getLabelText(lang, 'year'),
				store : storeYear
			});

	year_combobox.on(
			// Ext.form.Field this, Mixed newValue, Mixed oldValue
			'select', function(f, n, o) {
				year_value = n;
				selected_year = year_combobox.getValue();
				selected_month = month_combobox.getValue();
				var month_field = Ext.getCmp(fieldId + 'month');
				var month_field_value = Ext.getCmp(fieldId + 'month')
						.getValue();
				var day_field = Ext.getCmp(fieldId + 'day');
				var selected_day = day_field.getValue();
				if (month_field_value == '02'
						&& ((!!((selected_year & 3) == 0 && (selected_year % 100 || (selected_year % 400 == 0 && selected_year)))) == true || selected_year != '')) {
					if (selected_day == '30' || selected_day == '31') {
						day_field.clearValue();
						storeDay.loadData(testDay());
					}
				}
				if (month_field_value == '02'
						&& (!!((selected_year & 3) == 0 && (selected_year % 100 || (selected_year
								% 400 == 0 && selected_year)))) == false) {
					if (selected_day > 28) {
						day_field.clearValue();
						storeDay.loadData(testDay());
					}
				}
				if ((selected_month == '04' || selected_month == '06'
						|| selected_month == '09' || selected_month == '11')
						&& selected_day > 30) {
					day_field.clearValue();
					storeDay.loadData(testDay());
				}

			});
	if (lang == 'de') {
		// alert(fieldId);
		var calendarPanel = new Ext.form.FormPanel({
					id : fieldId,
					labelAlign : 'top',
					frame : true,
					name : 'form-calendar',
					border : false,
					baseCls : 'calendar',
					renderTo : Ext.get(container),
					layout : 'column',
					items : [{
								layout : 'form',
								width: 70,
								items : [day_combobox]
							}, {
								layout : 'form',
								width: 70,
								items : [month_combobox]
							}, {
								layout : 'form',
								width: 69,
								items : [year_combobox]
							}]

				});
	}
	// if(lang == 'en'){
	else {
		var calendarPanel = new Ext.form.FormPanel({
					id : fieldId,
					labelAlign : 'top',
					frame : true,
					name : 'form-calendar',
					border : false,
					baseCls : 'calendar',
					renderTo : Ext.get(container),
					layout : 'column',
					items : [{
						layout : 'form',
						width: 70,
						items : [year_combobox]
					}, {
						layout : 'form',
						width: 70,
						items : [month_combobox]
					}, {
						layout : 'form',
						width: 69,
						items : [day_combobox]
					}]

				});
	}

	if (container == '') {
		var calendarPanel = new Ext.form.FormPanel({
					id : fieldId,
					labelAlign : 'top',
					frame : true,
					name : 'form-calendar',
					width : 628,
					border : true,
					layout : 'column',
					items : [{
								layout : 'form',
								columnWidth : .12,
								items : [year_combobox]
							}, {
								layout : 'form',
								columnWidth : .12,
								items : [month_combobox]
							}, {
								layout : 'form',
								columnWidth : .12,
								items : [day_combobox]
							}]

				});
	}
	return calendarPanel;
}

function testYear() {
	var dataYear = getYearList(start_year, end_year);
	var yearArray = new Array();
	for (var i = 0; i < dataYear.length; i++) {
		var dataArray = new Array();
		dataArray.push(dataYear[i].get('year'));
		yearArray.push(dataArray);
	}
	return yearArray;
}
function testMonth() {
	var dataMonth = getMonthList();
	var monthArray = new Array();
	for (var i = 0; i < dataMonth.length; i++) {
		var dataArray = new Array();
		dataArray.push(dataMonth[i].get('month'));
		monthArray.push(dataArray);
	}
	return monthArray;
}

function testDay() {
	var dataDay = getDayList(selected_year, selected_month);
	var dayArray = new Array();
	for (var i = 0; i < dataDay.length; i++) {
		var dataArray = new Array();
		dataArray.push(dataDay[i].get('day'));
		dayArray.push(dataArray);
	}
	return dayArray;
}

function getYearList(start_year, end_year) {
	var yearArray = new Array();
	var id = 1;

	var rev = Ext.data.Record.create([{
				name : 'id'
			}, {
				name : 'year'
			}]);

	for (var i = start_year; i <= end_year; i++) {

		nb = id++;
		yearArray.push(new rev({
					id : nb,
					year : i
				}));

	}

	return yearArray;
}

function getMonthList() {

	var monthArray = new Array();
	var id = 1;

	var rev = Ext.data.Record.create([{
				name : 'id'
			}, {
				name : 'month'
			}]);

	for (var i = 1; i <= 12; i++) {
		if (i < 10) {
			i = '0' + i;
		}
		nb = id++;
		monthArray.push(new rev({
					id : nb,
					month : i
				}));

	}

	return monthArray;

}

function checkLeapYear(year) {
	var result = false;
	if (year != '') {
		if (!!((year & 3) == 0 && (year % 100 || (year % 400 == 0 && year()))) == true) {
			result = true;
		}
	}
	return result;
}

function getDayList(year, month) {
	var dayNumber = 31;
	if (month != "") {

		if (month == "04" || month == "06" || month == "09" || month == "11") {
			dayNumber = 30;
		}
		if (month == "02") {
			if (checkLeapYear(year) || year == "") {
				dayNumber = 29;
			} else {
				dayNumber = 28;
			}

		}
	}

	var dayArray = new Array();
	var id = 0;
	var rev = Ext.data.Record.create([{
				name : 'id'
			}, {
				name : 'day'
			}]);

	for (var i = 1; i <= dayNumber; i++) {
		if (i < 10) {
			i = '0' + i;
		}
		nb = id++;
		nb = id++;
		dayArray.push(new rev({
					id : nb,
					day : i
				}));
	}
	return dayArray;
}

