﻿Itsb_ContattiPage = function(config)
{
    Ext.apply(this, config);
	Ext.QuickTips.init();
	Ext.form.Field.prototype.msgTarget = 'side';

	var storeAppartamenti = new Ext.data.Store({
        url: 'Handler/AppartamentiHandler.ashx?action=list',  
        reader: new Ext.data.JsonReader({
            root:          'Itsb_Bean_Appartamento',
            totalProperty: 'rowcount',
            id:            'IdAppartamento'
        }, [
            {name: 'IdAppartamento'},
            {name: 'Tipologia'},
            {name: 'DescrizioneAppartamento'},
            {name: 'Indirizzo'},
            {name: 'Dettaglio1'},
            {name: 'Dettaglio2'},
            {name: 'Dettaglio3'},
            {name: 'Dettaglio4'},
            {name: 'Quantita'},
            {name: 'Immagine'}
        ])
    });        

    var comboAppartamenti = new Ext.form.ComboBox({
        store: storeAppartamenti,
		id: 'comboappartamentiemail',
		labelSeparator:'',
        valueField: 'IdAppartamento',
		displayField: 'Tipologia',
        typeAhead: true,
        mode: 'local',
        forceSelection: true,
        triggerAction: 'all',
        emptyText:'Seleziona una tipologia',
        selectOnFocus:true,
		fieldLabel:'Tipologia',
		allowBlank: false,
		blankText: 'Devi scegliere una tipologia di appartamento',
		anchor:'95%'
    });

	storeAppartamenti.load();
	
    var emailForm = new Ext.FormPanel({
		id: 'email-info-form',
		labelWidth:150,
		frame:true,
		border: true,
		layout: 'form',				
		items: [{
					xtype:'panel',
					layout: 'fit',
					border: false,
					frame:false,
					html :  '<img src="images/base/titolo_contatti.png" title="Contattaci" alt="Contattaci">'
				},{
					xtype:'panel',
					layout: 'fit',
					itemCls : 'testoCentrato',
					cls : 'testoCentrato',
					html :  'Per qualsiasi informazione riempite il seguente modulo. Vi risponderemo il prima possibile!<br/><br/>'
				},{
					xtype:'textfield',
					fieldLabel: 'Nome',
					labelSeparator:'',
					id: 'nomeemail',
					allowBlank: false,
					blankText: 'Devi digitare il tuo nome',
					anchor:'95%'
				}, {
					xtype:'textfield',
					labelSeparator:'',
					fieldLabel: 'Cognome',
					id: 'cognomeemail',
					allowBlank: false,
					blankText: 'Devi digitare il tuo cognome',
					anchor:'95%'
				}, {
					xtype:'textfield',
					labelSeparator:'',
					fieldLabel: 'Telefono',
					id: 'telefonoemail',
					allowBlank: false,
					blankText: 'Devi inserire un numero di telefono a cui possiamo ricontattarti',
					anchor:'95%'
				},
				comboAppartamenti
				,{
	                layout:'column',
	                items:[{
	                    columnWidth:.5,
						layout: 'form',
						labelWidth: 180,
						frame: false,
						defaultType: 'datefield',
						items: [{
								fieldLabel: 'Periodo Dal',
								name: 'startdt',
								id: 'startdt',
								anchor:'70%',
								format: 'd/m/Y',
								endDateField: 'enddt' // id of the end date field
							}]
						},{
		                    columnWidth:.5,
							layout: 'form',
							labelWidth: 150,
							frame: false,
							defaultType: 'datefield',
							items: [{
								fieldLabel: 'Periodo Al',
								name: 'enddt',
								id: 'enddt',
								anchor:'70%',
								format: 'd/m/Y',
								startDateField: 'startdt' // id of the start date field
							}]
		                }]
	            },{
					xtype: 'checkboxgroup',
		            fieldLabel: 'Servizi aggiuntivi',
		            itemCls: 'x-check-group-alt',
		            columns: 2,
					vertical: true,
		            items: [
		                {boxLabel: 'Biancheria da bagno', id:  'bianc-bagno'},
		                {boxLabel: 'Biancheria da camera', id: 'bianc-camera'},
		                {boxLabel: 'Pulizia giornaliera', id:  'pul-giorn'},
		                {boxLabel: 'Pulizia settimanale', id:  'pul-sett'}
		            ]
		        },{
					xtype:'textfield',
					labelSeparator:'',
					fieldLabel: 'Email',
					id: 'fromemail',
					allowBlank: false,
					blankText: 'Devi indicare un indirizzo email valido',
					vtype:'email',
					vtypeText : 'Indicare un indirizzo email valido',
					anchor:'95%'
				},{
					xtype:'htmleditor',
					id:'testoemail',
					labelSeparator:'',
					allowBlank: false,
					blankText: 'Devi digitare del testo',
					fieldLabel:'Messaggio',
					height:100,
					anchor:'95%'
				}],
		buttons: [{
			text: 'Invia il messaggio',
			id: 'btn-invia-email',
			listeners: {
					click:function(mi,e){
						Ext.MessageBox.confirm('Messaggio', 'Confermi l\'invio della tua email?', 
						function(btn){
									if(btn == 'yes')
									{
										if (!Ext.getCmp('nomeemail').isValid())
										{
											Ext.Msg.show({
												title:'Errore',
												msg: 'Devi inserire il tuo nome',
												buttons: Ext.Msg.OK,
												icon: Ext.MessageBox.ERROR 
											});
											return false;
										}
										if (!Ext.getCmp('cognomeemail').isValid())
										{
											Ext.Msg.show({
												title:'Errore',
												msg: 'Devi inserire il tuo cognome',
												buttons: Ext.Msg.OK,
												icon: Ext.MessageBox.ERROR 
											});
											return false;
										}
										if (!Ext.getCmp('telefonoemail').isValid())
										{
											Ext.Msg.show({
												title:'Errore',
												msg: 'Devi inserire un numero di telefono',
												buttons: Ext.Msg.OK,
												icon: Ext.MessageBox.ERROR 
											});
											return false;
										}
										if (!Ext.getCmp('comboappartamentiemail').isValid())
										{
											Ext.Msg.show({
												title:'Errore',
												msg: 'Devi scegliere una tipologia di appartamento',
												buttons: Ext.Msg.OK,
												icon: Ext.MessageBox.ERROR 
											});
											return false;
										}
										if (!Ext.getCmp('fromemail').isValid())
										{
											Ext.Msg.show({
												title:'Errore',
												msg: 'Devi inserire un indirizzo email corretto',
												buttons: Ext.Msg.OK,
												icon: Ext.MessageBox.ERROR 
											});
											return false;
										}
										if (Ext.getCmp('testoemail').getValue()=='')
										{
											Ext.Msg.show({
												title:'Errore',
												msg: 'Devi inserire un testo nel messaggio',
												buttons: Ext.Msg.OK,
												icon: Ext.MessageBox.ERROR 
											});
											return false;
										}
										
										Ext.Ajax.request({
											url:'handler/EmailHandler.ashx?action=invia',
											params:{
													cognomeemail:Ext.getCmp('cognomeemail').getValue(),
													nomeemail:Ext.getCmp('nomeemail').getValue(),
													telefonoemail:Ext.getCmp('telefonoemail').getValue(),
													tipoappartamentoemail:Ext.getCmp('comboappartamentiemail').getRawValue(),
													startdt:Ext.getCmp('startdt').getRawValue(),
													enddt:Ext.getCmp('enddt').getRawValue(),
													biancbagnoemail:Ext.getCmp('bianc-bagno').getValue(),
													bianccameraemail:Ext.getCmp('bianc-camera').getValue(),
													pulgiornemail:Ext.getCmp('pul-giorn').getValue(),
													pulsettimemail:Ext.getCmp('pul-sett').getValue(),
													fromemail:Ext.getCmp('fromemail').getValue(),
													testoemail:Ext.getCmp('testoemail').getValue()
												},
											success:function()
											{                                                                    
												Ext.Msg.show({
															title:'Info',
															msg:'Email inviata correttamente.',
															icon:Ext.Msg.INFO,
															buttons:Ext.Msg.OK,
															minWidth : 300,
															minProgressWidth:300
														});
												Ext.getCmp('email-info-form').getForm().reset();
											},
											failure:function()
											{
												Ext.Msg.show({
															title:'Errore nell\'invio dell\'email',
															msg:'L\'email non e\' stata inviata a causa di un errore. Digitare correttamente i campi',
															icon:Ext.Msg.ERROR,
															minWidth : 500,
															minProgressWidth:500,
															buttons:Ext.Msg.OK
														});
											}
										});
									}
							});
						}
					}
			},{
				text: 'Pulisci i campi',
				listeners: {
							click:function(mi,e){
								Ext.MessageBox.confirm('Messaggio', 'Confermi la pulizia di tutti i campi?', 
								function(btn){
									if(btn == 'yes')
									{
									Ext.getCmp('email-info-form').getForm().reset();
									}
								});
							}
					}
			}]
    });
	
	var contentContattiPage =  new Ext.Panel({
        collapsible: false,
        id:'center-panel-contatti-page',
		layout:'fit',
		frame:false,
		width: 880,
		height: 580,
		border : true,
		bodyStyle   : 'padding:5px',
		items:[emailForm]
    });
    
    Itsb_ContattiPage.superclass.constructor.call(this, {
        id          : config.id,
        title       : config.title,
        width       : 880,
        height      : 580,        
        layout      : 'fit',
        border      : false,
        bodyStyle   : 'padding:0px',
        modal       : true,
        plain       : true,
        resizable   : false,
        maximizable : true,
        autoDestroy : true,
		bbar        :[
			'->',
			{
                text: 'Chiudi e torna alla Home Page',
                iconCls: 'IconButton24px',
				id:'chiudi-button',
                iconAlign: 'right',
				scale:'medium',
				ctCls:'TextButton24px',
				handler: function(){                
		                Ext.getCmp(config.id).close();
					}
            }],
        items       : [contentContattiPage]
    });
};



Ext.extend(Itsb_ContattiPage, Ext.Window, {

    initComponent : function(){
        Itsb_ContattiPage.superclass.initComponent.call(this);             
    }
    
});
