Ext.BLANK_IMAGE_URL = 'extjs/resources/images/default/s.gif';

Ext.namespace('FORM');


Ext.onReady(function(){
					 
	Ext.QuickTips.init();
	document.charset="utf-8";
	Ext.get('divBottomMessage').hide();
	/* *************************************************************
	Function: Gestionnaire de message d'erreur
	************************************************************** */
	
	FORM.ErrorMessage = function(message){
		Ext.Msg.show({
		   title:'Error',
		   msg: message,
		   buttons: Ext.Msg.OK,
		   icon: Ext.MessageBox.ERROR,
		   width:400
		});		
	};
	
	FORM.WarningMessage = function(message){
		
		Ext.Msg.show({
		   title:'Warning',
		   msg: message,
		   buttons: Ext.Msg.OK,
		   icon: Ext.MessageBox.WARNING,
		   width:400
		});		
	};
	
	FORM.infoMessage = function(message){
		
		Ext.Msg.show({
		   title:'Information',
		   msg: message,
		   buttons: Ext.Msg.OK,
		   icon: Ext.MessageBox.INFO,
		   width:400
		});		
	}
	
	
	/* *************************************************************
	Function: Send email function
	************************************************************** */
	
	FORM.sendNewEmail = function(){
		
		
		
		if(userInfo.getForm().isValid() && sendEmailForm.getForm().isValid()){ 
				
				sendEmailButton.hide();
				
				var nameFriend1 = dest1NameField.getValue();
				var emailFriend1 = dest1EmailField.getValue();
				var nameFriend2 = dest2NameField.getValue();
				var emailFriend2 = dest2EmailField.getValue();
				var nameFriend3 = dest3NameField.getValue();
				var emailFriend3 = dest3EmailField.getValue();
				var titleElement = document.getElementById("titleElement");
				var title = titleElement.firstChild.nodeValue;
				
	
				userInfo.getForm().submit({
									   
					url: 'extjs/send_email_en.php',
					method: 'POST',
					params: {
						title: title,
						name1: nameFriend1,
						email1: emailFriend1,
						name2: nameFriend2,
						email2: emailFriend2,
						name3: nameFriend3,
						email3: emailFriend3	
					},
					
					success: function(form, action){			
						var objSuc = Ext.util.JSON.decode(action.response.responseText);	 
						
						if(!objSuc){
							FORM.ErrorMessage('Une erreur s\'est produite lors de la connexion, veuillez entrer les éléments a nouveau. ');
							sendEmailButton.show();	
						}
						else{		
							FORM.infoMessage("The newsletter has been sent. Thank you");
							sendEmailButton.show();
							commentField.reset();
							nameField.reset();
							emailField.reset();
							dest1NameField.reset();
							dest1EmailField.reset();
							dest2NameField.reset();
							dest2EmailField.reset();
							dest3NameField.reset();
							dest3EmailField.reset();
							Ext.get('divBottomMessage').show();
							
						}	
					},
					
					failure:function(form, action){
						var obj = Ext.util.JSON.decode(action.response.responseText);
						var message = obj.errors.msg;
						FORM.ErrorMessage(message);
						sendEmailButton.show();
					}			   						   
			});						  
		}
		else{
			FORM.WarningMessage('Invalid form');
		}
	}
	
	/* *************************************************************
	Form: Email
	************************************************************** */
	
	var nameField = new Ext.form.TextField({
		name: 'nameField',
		fieldLabel:'<span class="redStar">*</span> Name',
		id:'nameField',
		allowBlank:false,
		invalidClass: 'invalidField',
		width:210
	});
	
	var emailField = new Ext.form.TextField({
		name: 'emailField',
		allowBlank:false,
		fieldLabel:'<span class="redStar">*</span> E-mail',
		id:'emailField',
		vtype: 'email',
		invalidClass: 'invalidField',
		width:210
	});
	
	var commentField = new Ext.form.TextArea({
		name: 'commentField',
		fieldLabel:'<span class="redStar">*</span> Message',
		id:'commentField',
		allowBlank:false,
		invalidClass: 'invalidField',
		width:210,
		height:90,
		maxLength: 250
	});
	
	var userInfo = new Ext.FormPanel({
		labelWidth: 100,
		labelAlign:'left',
		frame:false,
		border: false,
		width: 450,
		items: [
				nameField,
				emailField,
				commentField
				]
    });
	
	/* ***************************************************************************** */
	
	var dest1NameField = new Ext.form.TextField({
		name: 'dest1NameField',
		fieldLabel:'<span class="redStar">*</span> Name 1',
		id:'dest1NameField',
		allowBlank:false,
		blankText:'Le nom du destinataire est requis',
		invalidClass: 'invalidField',
		width:180
	});
	
	var dest1EmailField = new Ext.form.TextField({
		name: 'dest1EmailField',
		allowBlank:false,
		fieldLabel:'<span class="redStar">*</span> E-mail 1',
		id:'dest1EmailField',
		blankText:'L\'adresse courriel est requise',
		vtype: 'email',    
		vtypeText: 'L\'adresse courriel doit etre de la forme user@domain.com',
		invalidClass: 'invalidField',
		width:180
	});
	
	var dest2NameField = new Ext.form.TextField({
		name: 'dest2NameField',
		fieldLabel:'Name 2',
		id:'dest2NameField',
		width:180
	});
	
	var dest2EmailField = new Ext.form.TextField({
		name: 'dest2EmailField',
		fieldLabel:'E-mail 2',
		id:'dest2EmailField',
		vtype: 'email',    
		vtypeText: 'L\'adresse courriel doit etre de la forme user@domain.com',
		invalidClass: 'invalidField',
		width:180
	});
	
	
	var dest3NameField = new Ext.form.TextField({
		name: 'dest3NameField',
		fieldLabel:'Name 3',
		id:'dest3NameField',
		width:180
	});
	
	var dest3EmailField = new Ext.form.TextField({
		name: 'dest3EmailField',
		fieldLabel:'E-mail 3',
		id:'dest3EmailField',
		vtype: 'email',
		invalidClass: 'invalidField',
		width:180
	});
	
	var sendEmailButton = new Ext.Button({
		id:'sendEmailButton',								 
		text: 'Send'
	});
	
	var sendEmailForm = new Ext.FormPanel({
		labelWidth: 100,
		labelAlign:'left',
		frame:false,
		border: false,
		width: 400,
		items: [
				dest1NameField,
				dest1EmailField,
				dest2NameField,
				dest2EmailField,
				dest3NameField,
				dest3EmailField
				]
    });
	
	sendEmailForm.render('divFormRight');
	userInfo.render('divFormLeft');
	sendEmailButton.render('divBottomButton');
	
	sendEmailButton.addListener('click', FORM.sendNewEmail);
	
	
	var enterKey = new Ext.KeyNav("dest3EmailField", {
		"enter" : FORM.sendNewEmail
	});
	
});
	
