﻿/*!
 * Ext JS Library 3.0.0
 * Copyright(c) 2006-2009 Ext JS, LLC
 * licensing@extjs.com
 * http://www.extjs.com/license
 */
var MX_DATE_OUVERTURE = Ext.extend(Ext.util.Observable, {
    constructor: function(config){
        this.addEvents('finished'); // specify the events we're going to fire
        MX_DATE_OUVERTURE.constructor.call(this, config);
    },
    
    create: function(pid){
		var me = this;
		 
		this.json = Ext.util.JSON.decode('{"id":"77"}');
		this.panel = new Ext.Panel({});
		this.pid = pid;
		
		var connUrl='/fileadmin/ressources_mob/mt_search/mx/mx_date_ouverture/form_functions.php';
		var conn = new Ext.data.Connection();
		var responseObject = new Object();
		conn.request({
			url: connUrl,
			method: 'POST',
			params:{
				actionMobi: 'feImport',
				pid: this.pid
			},
			success: function(responseObject){	
				me.json = Ext.util.JSON.decode(responseObject.responseText);
				
				me.panel = new Ext.Panel({ 
					title: me.json.labels[0].title,
					id: 'mt_search_mx_date_ouverture',
					layout:'form',
					width:'auto',
					mobiClass: 'MX_DATE_OUVERTURE'
				});
				
				switch (me.json.id){
					case '1':	//Calendrier
						var df1 = new Ext.form.DateField({
							id: 'mt_search_mx_date_ouverture_datefield-1',
							width:100,
							allowBlank:true,
							format: 'd/m/Y',
							fieldLabel: me.json.labels[2].title,
							readOnly: true
						});
						var df2 = new Ext.form.DateField({
							id: 'mt_search_mx_date_ouverture_datefield-2',
							width:100,
							allowBlank:true,
							format: 'd/m/Y',
							fieldLabel: me.json.labels[3].title,
							readOnly: true
						});
						me.panel.add(df1);
						me.panel.add(df2);
						
						break;
					case '2':	//Calendrier 2	
						var df1 = new Ext.form.DateField({
							id: 'mt_search_mx_date_ouverture_datefield-1',
							width:100,
							allowBlank:true,
							format: 'd/m/Y',
							fieldLabel: me.json.labels[2].title,
							readOnly: true
						});
						me.panel.add(df1);
						
						// create a Record constructor:
						var rt = Ext.data.Record.create([
						    {name: 'title'},
						    {name: 'id'}
						]);
						var comboStore = new Ext.data.Store({
						    // explicitly create reader
						    reader: new Ext.data.ArrayReader(
						        {
						            idIndex: 0  // id for each record will be the first element
						        },
						        rt // recordType
						    )
						});
						
						var i = 0;
						while (i < me.json.blocks[0].length){
							var recData = {
							    title: me.json.blocks[0][i].value+' '+me.json.blocks[0][i].title,
							    id: me.json.blocks[0][i].value+' '+me.json.blocks[0][i].id
							};
							var r = new comboStore.recordType(recData, i); // create new record
							comboStore.insert(0, r); // insert a new record into the store (also see add)
							i++;
						}
			
						var combo= new Ext.form.ComboBox({
							id: 'mt_search_mx_date_ouverture_combo',
							store: comboStore,
							fieldLabel: me.json.labels[1].title,
							name: 'title',
							width: 100,
							displayField:'title',
							valueField:'id',
							mode: 'local',
							triggerAction: 'all'
						});
						me.panel.add(combo);
						
						break;
					default: 
						break;
				}
				
				me.fireEvent('finished', me.panel);
			},
			failure:function(){ 
				return '{}';
			}
		});
    },
	
	get: function(){
		var r = '';
		switch (this.json.id){
			case '1':	//Calendrier
				var d1 = Ext.getCmp('mt_search_mx_date_ouverture_datefield-1').getValue();
				if ((d1+'').length > 0){
					d1 = d1.format("Ymd");
				}
				var d2 = Ext.getCmp('mt_search_mx_date_ouverture_datefield-2').getValue();
				if ((d2+'').length > 0){
					d2 = d2.format("Ymd");
				}
				r = d1+'-'+d2;
				break;
			case '2':	//Calendrier 2
				var d1 = Ext.getCmp('mt_search_mx_date_ouverture_datefield-1').getValue();
				var d2combo = Ext.getCmp('mt_search_mx_date_ouverture_combo').getValue();
				if (d2combo.length > 0){
					var currentTime = new Date();
					var time = currentTime.getTime(); 
					if ((d1+'').length == 0){
						d1 = currentTime.format("Ymd");
					}else{
						d1 = d1.format("Ymd");
						time = d1.getTime();
						r = d1;
					}
					r = d1;
					
					var d2Arr = d2combo.split(" ",2);
					var duration = d2Arr[0];
					var unit = d2Arr[1];
					
					var d2 = new Date();
					if (unit == '757'){	//jour
						d2 = new Date(time + duration*24*3600*1000);
					}else if (unit == '762'){	//semaine
						d2 = new Date(time + duration*7*24*3600*1000);
					}else if (unit == '759'){	//mois
						d2 = new Date(time + duration*30*24*3600*1000);
					}
					
					d2 = d2.format("Ymd");
					r += '-'+d2;
				}else{
					r = '-';
				}
				break;
			default: 
				break;
		}
		r = 'do='+escape(r);
		return r;
	}
	
});

Ext.ux.SliderTip = Ext.extend(Ext.Tip, {
    minWidth: 10,
    offsets : [0, -10],
    init : function(slider){
        slider.on('dragstart', this.onSlide, this);
        slider.on('drag', this.onSlide, this);
        slider.on('dragend', this.hide, this);
        slider.on('destroy', this.destroy, this);
    },

    onSlide : function(slider){
        this.show();
        this.body.update(this.getText(slider));
        this.doAutoWidth();
        this.el.alignTo(slider.thumb, 'b-t?', this.offsets);
    },

    getText : function(slider){
        return String(slider.getValue());
    }
});