/**
 * $Id: neteorDatePicker.js 1264 2009-03-11 09:53:58Z vincent $
 **/

/**
 * Date picker Ext plugin
 * @author	Neteor
 */

Date.monthNames =
   ["Janvier",
    "Février",
    "Mars",
    "Avril",
    "Mai",
    "Juin",
    "Juillet",
    "Août",
    "Septembre",
    "Octobre",
    "Novembre",
    "Décembre"];

Date.dayNames =
   ["Dimanche",
    "Lundi",
    "Mardi",
    "Mercredi",
    "Jeudi",
    "Vendredi",
    "Samedi"];

Ext.apply(Ext.form.DateField.prototype, {format: "d-m-Y"});

Ext.apply(Ext.DatePicker.prototype, {
	todayText : "Aujourd'hui",
	todayTip : "{0} (barre espace)",
	minText : "Cette date se situe avant la date minimum.",
	maxText : "Cette date se situe après la date maximum.",
	format : "d/m/y",
	disabledDaysText : "",
	disabledDatesText : "",
	monthNames : Date.monthNames,
	dayNames : Date.dayNames,
	nextText: "Mois suivant (Ctrl + Droite)",
	prevText: "Mois précédent (Ctrl + Gauche)",
	monthYearText: "Choisissez un mois (Ctrl + Haut/bas pour changer d'année)",
	startDay: 1 // Week start on Monday
});

Ext.form.DateFieldWithClearButton = Ext.extend(Ext.form.DateField, {
    initComponent : function(){
        Ext.form.DateFieldWithClearButton.superclass.initComponent.call(this);
        this.triggerConfig = {
            tag:'span', cls:'x-form-twin-triggers', cn:[
            {tag: "img", src: Ext.BLANK_IMAGE_URL, cls: "x-form-trigger " + this.trigger1Class},
            {tag: "img", src: Ext.BLANK_IMAGE_URL, cls: "x-form-trigger " + this.trigger2Class}
        ]};
    }
    ,trigger1Class:'x-form-date-trigger'
    ,trigger2Class:'x-form-clear-trigger'
    ,initTrigger : function(){
        var triggerclear = this.trigger.select('.x-form-clear-trigger', true);
        var triggershow = this.trigger.select('.x-form-date-trigger', true);
        triggerclear.on("click", this['onTriggerClearClick'], this, {preventDefault:true});
        triggershow.on("click", this['onTriggerClick'], this, {preventDefault:true});
        triggerclear.addClassOnOver('x-form-trigger-over');
        triggerclear.addClassOnClick('x-form-trigger-click');
        triggershow.addClassOnOver('x-form-trigger-over');
        triggershow.addClassOnClick('x-form-trigger-click');
        this.on('focus', function(){
            this.el.dom.readOnly = true;
        }, this);
    }
    ,onTriggerClearClick : function(){
        this.el.dom.value = '';
    }
});
Ext.reg('datefieldwithclearbutton', Ext.form.DateFieldWithClearButton);


function initCalendars() {
	var textFields = Ext.query('.ExtDateField');
	var dateFields = [];
	Ext.each(textFields, function(textField) {
		addDateField(textField);
	});
}

function addDateField(textField) {
		changeevent = $('#' + textField.id).attr('changeevent');
		dateset = textField.value;
		var dateField = new Ext.form.DateField({
			width: 120,
			displayMask: false,
			useQuickTips: false,
			showWeekNumber: false,
			startDay: 1,
			value: dateset,
			applyTo: textField,
			allowBlank: true,
			maxLength: 10,
			undoText: 'Effacer',
			renderOkUndoButtons: true,
			multiSelection: true,
			maxSelectionDays: 1,
			listeners: {
				undo: function(dp) {dp.clearSelectedDates(true);},
				afterdateclick: function(dp) {dp.disable();}
			}
		});
		if (changeevent != undefined) {
			onchangeFunction = new Function('dateField', 'var dt = new Date(dateField.getValue()); return ' + changeevent + '(dt.format(\'d-m-Y\'));');
			dateField.addListener('valid', onchangeFunction);
		}
}

function alertDate(date) {
	alert(date);
}

Ext.onReady(initCalendars, this);
