/**
 * Elements 
 *   Form element implementation. these elemnts are copied or included in form
 * 
 * 
 * This file in temparaury. Used for component base implemntation base.
 * 
 * @author 		Sundar Murthi sundaramurthis@gmail.com
 * @date      	2008-07-25
 * @version 	0.0
 * 
 * Req ID 		2.2.3	Elements of form
 */

// Display error message
Ext.QuickTips.init();
// Turn on validation errors beside the field globally
Ext.form.Field.prototype.msgTarget = 'side';
	
var Elements = {};

Elements.mandatory		= " <span style='color: red;'>*</span> ";
Elements.optional		= " <span style='color: green;'>*</span> ";
Elements.choice			= " <span style='color: blue;'>*</span> ";

Elements.comboSource	= '/' + domain + 'application/quotes/comboSource.php';
Elements.comboFields	= ['id', 'value'];
Elements.comboData		= [['1','NoData1'],['2','NoData2']];

Elements.clone			= function(cElement){
	var clonedObj		= new Array();
	for (var i=0; i<cElement.length; i++){
		if(cElement[i] instanceof Ext.Component){
			clonedObj.push(cElement[i].cloneConfig());
		}else{
			if(cElement[i] && cElement[i].items){
				cElement[i].items = Elements.clone(cElement[i].items);
			}
			clonedObj.push(cElement[i]);
		}
		
	}
	
	return clonedObj;
};	

Elements.viewClone			= function(cElement){
	var clonedObj		= new Array();
	for (var i=0; i<cElement.length; i++){
		if(cElement[i] instanceof Ext.form.TextArea){
			clonedObj.push(new Ext.form.TextArea({
					xtype:"textarea", 
					readOnly:true,
					fieldLabel: cElement[i].fieldLabel.replace(Elements.mandatory, ''),
					style: "border:none; background:none;",
					name: cElement[i].name,
					hiddenId: cElement[i].hiddenId,
					id: cElement[i].id,
					width: 350
				}));
		}else if(cElement[i] instanceof Ext.form.TextField){
			clonedObj.push(new Ext.form.TextField({
					xtype:"textfield", 
					readOnly:true,
					fieldLabel: cElement[i].fieldLabel?cElement[i].fieldLabel.replace(Elements.mandatory, ''):'',
					style: "border:none; background:none;",
					hideLabel: cElement[i].hideLabel,
					name: cElement[i].name,
					hiddenId: cElement[i].hiddenId,
					id: cElement[i].id,
					width: cElement[i].width?cElement[i].width:350
				}));
		}else if(cElement[i] instanceof Ext.form.Radio){
			clonedObj.push(new Ext.form.Radio({
					xtype:"radio", 
					readOnly: true,
					disabled : true,
					width: 350,
					fieldLabel: cElement[i].fieldLabel?cElement[i].fieldLabel.replace(Elements.mandatory, ''):'',
					labelSeparator:  cElement[i].fieldLabel?':':'',
					style: "border:none; background:none;",
					hideLabel: cElement[i].hideLabel,
					name: cElement[i].name,
				    boxLabel: cElement[i].boxLabel,
					inputValue: cElement[i].inputValue,
					hiddenId: cElement[i].hiddenId,
					id: cElement[i].id
				}));
		}else if(cElement[i] instanceof Ext.form.Checkbox){
			clonedObj.push(new Ext.form.Checkbox({
					readOnly: true,
					disabled : true,
					fieldLabel: cElement[i].fieldLabel?cElement[i].fieldLabel.replace(Elements.mandatory, ''):'',
					style: "border: 1px;opacity: 1.0; background:none;",
					name: cElement[i].name,
				    boxLabel: cElement[i].boxLabel,
					inputValue: cElement[i].inputValue,
					hiddenId: cElement[i].hiddenId,
					hideLabel: cElement[i].hideLabel,
					id: cElement[i].id,
					width: cElement[i].width?cElement[i].width:350
				}));
		}else if(cElement[i] instanceof Ext.form.Field && !(cElement[i] instanceof Ext.form.Hidden)){
			clonedObj.push(new Ext.form.TextField({
					xtype:"textfield", 
					readOnly:true,
					fieldLabel: cElement[i].fieldLabel.replace(Elements.mandatory, ''),
					style: "border:none; background-color:none;",
					hiddenId: cElement[i].hiddenId,
					hideLabel: cElement[i].hideLabel,
					id: cElement[i].id,
					name: ((cElement[i].hiddenName)?cElement[i].hiddenName : cElement[i].name),
					width: cElement[i].width?cElement[i].width:350
				}));
		}else if(cElement[i] instanceof Ext.util.Observable){
			if(cElement[i].items ){//for container objects
					var originalcElement = cElement[i];
					var itmss = cElement[i].items.clone();
					if(typeof ads07 != 'undefined' && cElement[i] == ads07){//ads 07 clone issue
						var tmp22 = cElement[i];
					}else if(typeof ads04 != 'undefined' && cElement[i] == ads04){//ads 04 clone issue
						var tmp22 = cElement[i];
					}else if(typeof ads09 != 'undefined' && cElement[i] == ads09){//ads 09 clone issue
						var tmp22 = cElement[i];
					}else if(typeof ads11 != 'undefined' && cElement[i] == ads11){//ads 11 clone issue
						var tmp22 = cElement[i];
					}else if(typeof ads13 != 'undefined' && cElement[i] == ads13){//ads 13 clone issue
						var tmp22 = cElement[i];
					}else if(typeof ads03 != 'undefined' && cElement[i] == ads03){//ads 03 clone issue
						var tmp22 = cElement[i];
					}else if(typeof ads16 != 'undefined' && cElement[i] == ads16){//ads 16 clone issue
						var tmp22 = cElement[i];
					}else if(typeof ads17 != 'undefined' && cElement[i] == ads17){//ads 17 clone issue
						var tmp22 = cElement[i];
					}else{
						var tmp22 = cElement[i].cloneConfig();
					}
					tmp22.style= "border:none; background-color:none;";
					tmp22.title = cElement[i].title;
					tmp22.items.clear();
					if(!(cElement[i].checkboxToggle && cElement[i].collapsed )){
						itmss.each(function(item ,index,length){
							var arr = new Array();
							if(item.items && cElement[i].items.items && cElement[i].items.items[index] && cElement[i].items.items[index].items){
								item.items	= cElement[i].items.items[index].items;
							}
							arr.push(item);
							var arrCllone = Elements.viewClone(arr);
							if(cElement[i].items && cElement[i].items.items && cElement[i].items.items[index]){
								if(itmss.items[index].name){
									arrCllone[0].name= itmss.items[index].name;
								}
								if(itmss.items[index].hiddenName){
									arrCllone[0].hiddenName= itmss.items[index].hiddenName;
								}
								if(itmss.items[index].hiddenId){
									arrCllone[0].hiddenId= itmss.items[index].hiddenId;
								}
							}else{
								//console.log(cElement[i]);
							}
							tmp22.checkboxToggle	= false;
							tmp22.collapsible		= false;
							tmp22.add(arrCllone[0]);
						});
						
						clonedObj.push(tmp22);
					}else{
						if(cElement[i].checkboxToggle && cElement[i].collapsed){
							clonedObj.push({xtype:'label',html:''});
						}else{
							clonedObj.push(tmp22);
						}
					}
					
			}else{
				clonedObj.push(cElement[i].cloneConfig());
			}
		}else{
			if(cElement[i] && cElement[i].items){
				cElement[i].items = Elements.viewClone(cElement[i].items);
			}
			if(cElement[i] && cElement[i].xtype){
				switch(cElement[i].xtype){
					case 'textarea':
						clonedObj.push({
							xtype:"textarea", 
							readOnly:true,
							fieldLabel: cElement[i].fieldLabel.replace(Elements.mandatory, ''),
							style: "border:none; background:none;",
							name: cElement[i].name,
							hiddenId: cElement[i].hiddenId,
							id: cElement[i].id,
							width: 350
						});
						break;
					case 'textfield':
						break;
					case 'numberfield':
						clonedObj.push({
							xtype:"textfield", 
							readOnly:true,
							fieldLabel: cElement[i].fieldLabel.replace(Elements.mandatory, ''),
							hideLabel: cElement[i].hideLabel,
							style: "border:none; background:none;",
							name: cElement[i].name,
							hiddenId: cElement[i].hiddenId,
							id: cElement[i].id,
							width: cElement[i].width
						});
					 break;
					case 'hidden':
					 break; 	
					default:
						clonedObj.push(cElement[i]);
				}
			}else{
				clonedObj.push(cElement[i]);
			}
		}
		
	}
	
	return clonedObj;
};	


Elements.populateValues = function(values, form){
	for (var val in values){
		var formItem = form.find("hiddenId",val);
		if(formItem && formItem[0]){
			formItem[0].setValue(values[val]);
			formItem[formItem.length-1].setValue(values[val]);
		}else{// Try is there element with name
			var formItem = form.find("name",val);
			if(formItem && formItem[0]){
				if(formItem[0].xtype == 'radio'){
					//Handle group
					// handles only 2 options
					if(formItem[0].inputValue != values[val]
							&& values[val] != null){
						formItem[1].enable();
						formItem[1].setValue(true);
						formItem[0].setValue(false);
					}else{
						formItem[0].enable();
						formItem[0].setValue(true);
						formItem[1].setValue(false);
					}
				}try{
					formItem[0].setValue(values[val]);
					if(formItem[formItem.length-1].setValue){
						formItem[formItem.length-1].setValue(values[val]);
					}
				}catch(e){/*Ignore fail for radio*/}
			}else{
				var formItem = form.find("hiddenName",val);
				if(formItem && formItem[0]){
					formItem[0].setValue(values[val]);
					formItem[formItem.length-1].setValue(values[val]);
				}
			}
		}
		if(formItem && formItem[0]){
			if(formItem[0] instanceof Ext.form.ComboBox){
				formItem[0].store.on('load',function() {
						 	this.setValue(this.value);
						},formItem[0]);
			}
			if(values[val] == null || values[val] == ""){
				formItem[0].on('render',function(obj){
					try{
						obj.hide();
						this.getEl().up('.x-form-item').setDisplayed(false);
					}catch(e){}
				});
				formItem[formItem.length - 1].on('render',function(obj){
					try{
						obj.hide();
						this.getEl().up('.x-form-item').setDisplayed(false);
					}catch(e){}
				});
			}
		}
		if(val == 'hqPostalCode' && formItem && formItem[0] && !formItem[0].readOnly){
			formItem[0].fireEvent('blur',formItem[0]);
		}
	}
	return form;
};

Elements.clearValues		= function(cElement){
	if(cElement.items){
		cElement.items.each(function(item,index ,length){
			Elements.clearValues(item);
			if(item.value){
				item.value ='';
			}
			if(item.setValue){
				item.setValue('');
			}
		} );
	}
};

Elements.appendNamePostFix		= function(cElement,name){
	if(cElement.items){
		cElement.items.each(function(item,index ,length){
			if(item.hiddenName){
				item.hiddenName = item.hiddenName+'_'+name;
			}
			if(item.name){
				item.name = item.name+'_'+name;
			}
			if(item.hiddenId){
				item.hiddenId = item.hiddenId+'_'+name;
			}
			Elements.appendNamePostFix(item,name);
		} );
	}
};

Elements.disableChild		= function(cElement){
	if(cElement.items){
		cElement.items.each(function(item,index ,length){
			Elements.disableChild(item);
			item.disable();
		} );
	}
}

Elements.enableChild		= function(cElement){
	if(cElement.items){
		cElement.items.each(function(item,index ,length){
			item.enable();
			Elements.enableChild(item);
		} );
	}
}

Elements.expandPanel	= function(form,id){
	var formItem = form.find("checkboxName",id);
	if(formItem && formItem[0]){
		formItem[0].collapsed = false;
		formItem[0].expand();
	}
}

Elements.collapsePanel	= function(form,id){
	var formItem = form.find("checkboxName",id);
	if(formItem && formItem[0]){
		formItem[0].collapsed = true;
	}
	Elements.hidePanel(form,id);
}

Elements.hidePanel	= function(form,id){
	var formItem = form.find("checkboxName",id);
	if(formItem && formItem[0]){
		formItem[0].hidden = true;
		formItem[0].title="";
		formItem[0].initialConfig.checkboxToggle = false;
		formItem[0].initialConfig.autoHeight = false;
		formItem[0].initialConfig.width='0';
		formItem.remove();
	}
}

/**
 *2.2.3.3	Publication department
 * If there is no store parameter use the 
 * code: $DEP_PUB = "departement_pub".
 * DEPRICATED not used after extend application component. (Except form 14)
 */
Elements.publication 	= [ {
								xtype: 'hidden',
								fieldLabel: 'Département de publication '+Elements.mandatory,
								hiddenName:'pubDepDepricated',
								/*store: new Ext.data.SimpleStore({
									url : Elements.comboSource,
									fields: Elements.comboFields,
									baseParams : {dbProperty : 'DEP_PUB'} 
								}),
								valueField:'id',*/
								displayField:'value',
								typeAhead: true,
								mode: 'local',
								editable: false,
								allowBlank: true, 
								triggerAction: 'all',
								emptyText:'Sélectionnez le département',
								selectOnFocus:true,
								width: 350,
				                hiddenId :'pubDepDepricated'
							} ];

//Elements.publication[0].store.load({add : false});

/**
 * 2.2.3.4	Place act
 *		
 */
Elements.placeAct		=	[ {
									xtype:'textfield',
				       		        fieldLabel: 'Lieu de l\'acte ',
					                name: 'actPlace',
					                width: 350,
					                hiddenId :'actPlace'
					         }];

/**
 * 2.2.3.5	Company type
 *		This function has in parameter an Ext.data.SimpleStore to display in the combobox list.
 *		If there is no store parameter use the code: $COMPANY_TYPE = "type_entreprise".
 *		
 */        		
Elements.companyType	=   [ {
									xtype: 'combo',
									fieldLabel: 'Choix forme de société '+Elements.mandatory,
									hiddenName:'companyType',
									style : 'white-space:nowrap;',
									store: new Ext.data.SimpleStore({
											url : Elements.comboSource,
											fields: Elements.comboFields,
											baseParams : {dbProperty : 'COMPANY_TYPE'}
										}),
									valueField:'id',
									displayField:'value',
									typeAhead: true,
									mode: 'local',
									editable: false,
									allowBlank: false,
									triggerAction: 'all',
									emptyText:'Sélectionnez le type',
									selectOnFocus:true,
									showToday:true,
									width: 350,
					                hiddenId :'companyType'
								}];

Elements.companyTypeText	=   [ {
									xtype:'textfield',
				       		       	fieldLabel: 'Dénomination sociale '+Elements.mandatory,
				       		       	fieldValue: 'Société en nom collectif',
					                name: 'companyType',
									hiddenName:'companyType',
									editable: false,
					                allowBlank: false,
					                hiddenId :'companyType',
					                width: 350
				            	}];  
								
Elements.companyType[0].store.load({add : false});

Elements.newCompanyType		= function(param){
	var companyTypeOBj = Elements.clone(Elements.companyType);
	companyTypeOBj[0].store.baseParams = {dbProperty : param};
	companyTypeOBj[0].store.load({add : false});
	return companyTypeOBj;
}

 /*
  * 2.2.3.6	Date of the act
  * 
  */
Elements.dateOfAct		= 	[ {
								xtype: 'datefield',
								fieldLabel: 'Date de l\'acte '+Elements.mandatory,
								name: 'actDate',
								allowBlank: false,
								editable: false,
								selectOnFocus:true,
								format: 'd/m/Y',
								maskRe: /^\/|[0-9]$/,
								width: 175,
								hiddenId :'actDate'
							}];

/**
 * 2.2.3.7	Social object
 *		
 */							
Elements.socialObject	= 	[ {
								xtype: 'textarea',
								fieldLabel: 'Objet social '+Elements.mandatory,
								allowBlank: false,
								name: 'socialObj',
								width: 350,
								hiddenId :'socialObj',
								hiddenName :'socialObj'
							} ];

Elements.socialObjectOptional	= 	[ {
								xtype: 'textarea',
								fieldLabel: 'Objet social ',
								allowBlank: true,
								name: 'socialObj',
								width: 350,
								hiddenId :'socialObj',
								hiddenName :'socialObj'
							} ];							

/**
 * 2.2.3.8	Company name
 *		
 */										
Elements.companyName	=	[ {
								xtype:'textfield',
			       		       	fieldLabel: 'Dénomination sociale '+Elements.mandatory,
				                name: 'companyName',
				                allowBlank: false,
				                labelStyle : 'white-space: nowrap; padding-right: 155px; -padding-right: 105px;',
				                hiddenId :'companyName',
				                width: 350
				            } ]	;

Elements.companyNameAcronym	=[{
				        		labelWidth: 240,
					            xtype:'fieldset',
					            autoHeight:true,
					            style: 'border: none;margin-bottom: 0px;padding: 0px;',
								autoWidth:true,
								collapsible: false,
					            defaultType: 'textfield',
					            items : Elements.companyName.concat([ {
										xtype:'textfield',
					       		       	fieldLabel: 'Sigle ',
						                name: 'sigle',
						                labelStyle : 'padding-right: 155px;',
						                allowBlank: true,
						                hiddenId :'sigle',
						                width: 350
						            } ]	)
						  } ];				            

/**
 * Company sigle
 *
 */
Elements.companySigle   =   [ {
				            	xtype:'textfield',
			       		        fieldLabel: 'Sigle ',
				                name: 'sigle',
				                hiddenId :'sigle',
				                width: 350
				            } ]	;

/**
 * 2.2.3.9	Form and capital
 *	
 *		This function has in parameter an Ext.data.SimpleStore to display in the combo box list
 *		If there is no store parameter use the code: $DEP_PUB = "departement_pub".	
 */

Elements.formAndCapital	= [ new Ext.form.ComboBox({
								fieldLabel: 'Forme de la société '+Elements.mandatory,
								hiddenName:'form',
								store: new Ext.data.SimpleStore({
									url : Elements.comboSource,
									fields : Elements.comboFields,
									baseParams : {dbProperty : 'DEP_PUB'}
								}),
								valueField:'id',
								displayField:'value',
								typeAhead: true,
								mode: 'local',
								editable: false,
								triggerAction: 'all',
								emptyText:'Sélectionnez la forme',
								selectOnFocus:true,
								width: 350,
				                allowBlank:false,
				                hiddenId :'form'
							}),
				            {
				            	xtype: 'textfield',
			       		        fieldLabel: 'Capital de '+Elements.mandatory,
				                name: 'capital',
				                allowBlank: false,
				                hiddenId: 'capital',
	                		    size: 14,
	                		    maxLength: 14,
	                		    minLength: 1,
				                maskRe: /^\.| |,|[0-9]$/,
				                regex: /^[0-9]+([\.| ]?[0-9]{3})*(,[0-9]{1,2})?$/,
				                regexText: 'Le format du champ est du type 99.999,99.',
				                width: 350
				            } ];
//Elements.formAndCapital[0].store.load({add : false});

Elements.newFormAndCapital		= function(param, param2){
	var ads05formAndCapital	= Elements.clone(Elements.formAndCapital);
	ads05formAndCapital[0].store.baseParams = {dbProperty : param};
	ads05formAndCapital[0].store.load({add : false});
	if(param2 != null)
		ads05formAndCapital[1].fieldLabel = param2 + Elements.mandatory;
	return ads05formAndCapital;
}
				            
/**
 * 2.2.3.10	RCS and City
 *		
 *		(1): This field contains maximum 11 letters.
 *		(2): This field has choice, if there is no store parameter use the code: $RCS_CITY = "villes_RCS".
 */
 Elements.rcsAndCity	=	[{
 								xtype:'panel',
							    autoHeight:true,
					            items :[{
										xtype:'panel',
										labelWidth: 120,
										defaults: {width: 600},
										items :[{
								            layout:'column',
								            items:[{
								                columnWidth:.5,
								                layout: 'form',
								                items: [{
								                	xtype:'textfield',
						       		       			fieldLabel: 'Numéro RCS '+Elements.mandatory,
							                		name: 'ad_rcs',
							                		size: 11,
							                		maxLength: 11,
							                		minLength: 9,
							                		width:150,
										            maskRe: /^ |[0-9]$/,
										            regex: /^[0-9]{3}( )?[0-9]{3}( )?[0-9]{3}$/,
										            regexText: 'Le format du champ est du type 111 111 111.',
							                		allowBlank: false,
							                		hiddenId: 'ad_rcs'
							            		}]
								            },{
								                columnWidth:.5,
								                layout: 'form',
								                items: [{
								                		xtype:'textfield',
														fieldLabel: 'Ville du greffe '+Elements.mandatory,
														hiddenName:'ad_city',
														//store: new Ext.data.SimpleStore({
															//url : Elements.comboSource,
															//fields: Elements.comboFields,
															//baseParams : {dbProperty : 'RCS_CITY'}
														//}),
														//valueField:'id',
														//displayField:'value',
														//typeAhead: true,
														//editable: false,
														//mode: 'local',
														//triggerAction: 'all',
														//emptyText:'Sélectionnez la ville',
														//selectOnFocus:true,
														width:150,
										                allowBlank:false,
										                hiddenId: 'ad_city'
													}
												]
								            }]
								        }]
									}]
					        }];
 
//Elements.rcsAndCity[0].items[0].items[0].items[1].items[0].store.load({add :false });

Elements.rcsAndCityText	=	[{
 								xtype:'panel',
							    autoHeight:true,
					            items :[{
										xtype:'panel',
										labelWidth: 120,
										defaults: {width: 600},
										items :[{
								            layout:'column',
								            items:[{
								                columnWidth:.5,
								                layout: 'form',
								                items: [{
								                	xtype:'textfield',
						       		       			fieldLabel: 'Numéro RCS '+Elements.mandatory,
							                		name: 'ad_rcs',
							                		size: 11,
							                		maxLength: 11,
							                		minLength: 9,
							                		width:150,
										            maskRe: /^ |[0-9]$/,
										            regex: /^[0-9]{3}( )?[0-9]{3}( )?[0-9]{3}$/,
										            regexText: 'Le format du champ est du type 111 111 111.',
							                		allowBlank: false,
							                		hiddenId: 'ad_rcs'
							            		}]
								            },{
								                columnWidth:.5,
								                layout: 'form',
								                items: [{
								                		xtype:'textfield',
														fieldLabel: 'Ville du greffe '+Elements.mandatory,
														hiddenName:'ad_city',
														editable: false,
														mode: 'local',
														selectOnFocus:true,
														width:150,
										                allowBlank:false,
										                hiddenId: 'ad_city'
													}
												]
								            }]
								        }]
									}]
					        }];
 
/**
 * 2.2.3.10.0	RCS and City
 *		
 *		(1): This field contains maximum 11 letters and is not mandatory
 *		(2): This field has choice, if there is no store parameter use the code: $RCS_CITY = "villes_RCS" and is not mandatory
 */
 Elements.rcsAndCityBis	=	[{
 								xtype:'panel',
							    autoHeight:true,
					            items :[{
										xtype:'panel',
										labelWidth: 120,
										defaults: {width: 600},
										items :[{
								            layout:'column',
								            items:[{
								                columnWidth:.5,
								                layout: 'form',
								                items: [{
								                	xtype:'textfield',
						       		       			fieldLabel: 'Numéro RCS',
							                		name: 'ad_rcs',
							                		size: 11,
							                		maxLength: 11,
							                		minLength: 9,
							                		width:150,
										            maskRe: /^ |[0-9]$/,
										            regex: /^[0-9]{3}( )?[0-9]{3}( )?[0-9]{3}$/,
										            regexText: 'Le format du champ est du type 111 111 111.',
							                		allowBlank: true,
							                		hiddenId: 'ad_rcs'
							            		}]
								            },{
								                columnWidth:.5,
								                layout: 'form',
								                items: [{
								                		xtype:'combo',
														fieldLabel: 'Ville du greffe',
														hiddenName:'ad_city',
														store: new Ext.data.SimpleStore({
															url : Elements.comboSource,
															fields: Elements.comboFields,
															baseParams : {dbProperty : 'RCS_CITY'}
														}),
														valueField:'id',
														displayField:'value',
														typeAhead: true,
														editable: false,
														mode: 'local',
														triggerAction: 'all',
														emptyText:'Sélectionnez la ville',
														selectOnFocus:true,
														width:150,
										                allowBlank: true,
										                hiddenId: 'ad_city'
													}
												]
								            }]
								        }]
									}]
					        }];
 
Elements.rcsAndCityBis[0].items[0].items[0].items[1].items[0].store.load({add :false });    
     				            
 /**
  * Reusable elements
  */ 
 Elements.addressLocality	=	[{
					            		xtype:'textarea',
					                    fieldLabel: 'Adresse '+Elements.mandatory,
					                    name: 'ad_address',
					                    hiddenId: 'ad_address',
					                    width: 350,
										allowBlank:false
					                },{
										xtype:'panel',
							            autoHeight:true,
										autoWidth:true,
							            defaults: {width: 600},
										labelWidth: 120,
										items :[{
								            layout:'column',
								            items:[{
								                columnWidth:.5,
								                layout: 'form',
								                items: [{
								                    xtype:'textfield',
								                    fieldLabel: 'Code postal '+Elements.mandatory,
								                    name: 'ad_postal_code',
										            maskRe: /^[0-9]$/,
										            regex: /^[0-9]{5}$/,
										            regexText: 'Le format du champ est du type 00000.',
								                    maxLength: 5,
								                    minLength: 5,
													width:150,
													allowBlank:false,
													hiddenId: 'ad_postal_code'
								                }]
								            },{
								                columnWidth:.5,
								                layout: 'form',
								                items: [{
								                    xtype:'textfield',
								                    fieldLabel: 'Localité '+Elements.mandatory,
													name: 'ad_locality',
													width:150,
													allowBlank:false,
													hiddenId: 'ad_locality'
								                }]
								            }]
									  }]
								}];
								
Elements.addressLocalityOptional =	[{
				            		xtype:'textarea',
				                    fieldLabel: 'Adresse ',
				                    name: 'ad_address',
				                    hiddenId: 'ad_address',
				                    width: 350
				                },{
									xtype:'panel',
						            autoHeight:true,
									autoWidth:true,
						            defaults: {width: 600},
									labelWidth: 120,
									items :[{
							            layout:'column',
							            items:[{
							                columnWidth:.5,
							                layout: 'form',
							                items: [{
							                    xtype:'textfield',
							                    fieldLabel: 'Code postal',
							                    name: 'ad_postal_code',
									            maskRe: /^[0-9]$/,
									            regex: /^[0-9]{5}$/,
									            regexText: 'Le format du champ est du type 00000.',
							                    maxLength: 5,
							                    minLength: 5,
												width:150,
												hiddenId: 'ad_postal_code'
							                }]
							            },{
							                columnWidth:.5,
							                layout: 'form',
							                items: [{
							                    xtype:'textfield',
							                    fieldLabel: 'Localité',
												name: 'ad_locality',
												width:150,
												hiddenId: 'ad_locality'
							                }]
							            }]
								  }]
							}];
/**
 * 2.2.3.11	Simple headquarters
 *	 (1): This field must contain 5 numbers. No letter.	
 */
 
 Elements.getSimpleHeadquarters	= function(){
 
	 Elements.shqAddressLocality	=	Elements.clone(Elements.addressLocality);	
	 Elements.shqAddressLocality[0].name = 'hqAddress';
	 Elements.shqAddressLocality[0].hiddenId = 'hqAddress';
	 Elements.shqAddressLocality[1].items[0].items[0].items[0].name = 'hqPostalCode';
	 Elements.shqAddressLocality[1].items[0].items[0].items[0].hiddenId = 'hqPostalCode';
	 Elements.shqAddressLocality[1].items[0].items[1].items[0].name = 'hqLocality';
	 Elements.shqAddressLocality[1].items[0].items[1].items[0].hiddenId = 'hqLocality';
			
	 var simpleHQ		=	 [{
				        		labelWidth: 240,
					            xtype:'fieldset',
					            title: 'Siège social',
					            autoHeight:true,
								autoWidth:true,
								collapsible: false,
					            defaultType: 'textfield',
					            items : Elements.shqAddressLocality
						  }];
	return simpleHQ;
 }


/**
 * 2.2.3.12	Full headquarters
 *	Add RCS and City (2.2.3.10) to the Simple headquarters (2.2.3.11). 	
 */

 /*
 Elements.shqAddressLocality	=	Elements.clone(Elements.addressLocality);	
 Elements.shqAddressLocality[0].name = 'hqAddress';
 Elements.shqAddressLocality[0].hiddenId = 'hqAddress';
 Elements.shqAddressLocality[1].items[0].items[0].items[0].name = 'hqPostalCode';
 Elements.shqAddressLocality[1].items[0].items[0].items[0].hiddenId = 'hqPostalCode';
 Elements.shqAddressLocality[1].items[0].items[1].items[0].name = 'hqLocality';
 Elements.shqAddressLocality[1].items[0].items[1].items[0].hiddenId = 'hqLocality';
		
 Elements.simpleHQ		=	 [{
				        		labelWidth: 240,
					            xtype:'fieldset',
					            title: 'Siège social',
					            autoHeight:true,
								autoWidth:true,
								collapsible: false,
					            defaultType: 'textfield',
					            items : Elements.shqAddressLocality
						  }];
						  
Elements.fhqAddressLocality	=	Elements.clone(Elements.addressLocality);	
Elements.fhqAddressLocality[0].name = 'hqAddress';
Elements.fhqAddressLocality[0].hiddenId = 'hqAddress';
Elements.fhqAddressLocality[1].items[0].items[0].items[0].name = 'hqPostalCode';
Elements.fhqAddressLocality[1].items[0].items[0].items[0].hiddenId = 'hqPostalCode';
Elements.fhqAddressLocality[1].items[0].items[1].items[0].name = 'hqLocality';
Elements.fhqAddressLocality[1].items[0].items[1].items[0].hiddenId = 'hqLocality';

Elements.fhqRcsAndCity	=	Elements.clone(Elements.rcsAndCity);
Elements.rcsAndCity[0].items[0].items[0].items[0].items[0].name = 'hqRCSNumber';
 
Elements.fullHeadquarters		= [{
					        		labelWidth: 240,
						            xtype:'fieldset',
						            title: 'Siège social',
						            autoHeight:true,
									autoWidth:true,
									collapsible: false,
						            defaultType: 'textfield',
						            items :Elements.shqAddressLocality.concat(Elements.fhqRcsAndCity)
						          }];
*/
 Elements.getfullHeadquarters	= function(){
 
 	var fhqAddressLocality	=	Elements.clone(Elements.addressLocality);	
	fhqAddressLocality[0].name = 'hqAddress';
	fhqAddressLocality[0].hiddenId = 'hqAddress';
	fhqAddressLocality[1].items[0].items[0].items[0].name = 'hqPostalCode';
	fhqAddressLocality[1].items[0].items[0].items[0].hiddenId = 'hqPostalCode';
	fhqAddressLocality[1].items[0].items[1].items[0].name = 'hqLocality';
	fhqAddressLocality[1].items[0].items[1].items[0].hiddenId = 'hqLocality';
	
	var fhqRcsAndCity	=	Elements.clone(Elements.rcsAndCity);
	fhqRcsAndCity[0].items[0].items[0].items[0].items[0].name = 'hqRCSNumber';
	fhqRcsAndCity[0].items[0].items[0].items[1].items[0].name = 'hqRCSCity';
	fhqRcsAndCity[0].items[0].items[0].items[1].items[0].hiddenId = 'hqRCSCity';
	 
	var fullHeadquarters		= [new Ext.form.FieldSet({
					        		labelWidth: 240,
						            xtype:'fieldset',
						            title: 'Siège social',
						            autoHeight:true,
									autoWidth:true,
									collapsible: false,
						            defaultType: 'textfield',
						            items : fhqAddressLocality.concat(fhqRcsAndCity)
						          })];
 	
 	return fullHeadquarters;
 }
 		
/**
 * 2.2.3.13	Duration
 *		1): This field must contain 1 or 2 numbers. No letter.
 */		            

Elements.duration		=	[ {
								xtype: 'numberfield',
			       		        fieldLabel: 'Durée '+Elements.mandatory,
				                name: 'duration',
					            allowDecimals: 'false',
				                minLength: 1,
				                maxLength: 2,
				                allowBlank: false,
				                hiddenId: 'duration',
				                width: 350
				            } ];	
				            
Elements.durationOptional		=	[ {
								xtype: 'numberfield',
			       		        fieldLabel: 'Durée ',
				                name: 'duration',
					            allowDecimals: 'false',
				                minLength: 1,
				                maxLength: 2,
				                allowBlank: true,
				                hiddenId: 'duration',
				                width: 350
				            } ];					            
				            
/**
 * 2.2.3.14	Capital
 *		
 */
 Elements.capital		=	[{	xtype:'panel',
					            autoHeight:true,
								autoWidth:true,
								items :[{
						            layout:'column',
						            items:[{
						                columnWidth:.8,
						                layout: 'form',
						                items: [{
						                	  xtype:'textfield',
						                      fieldLabel: 'Au capital de '+Elements.mandatory,
								              name: 'capital',
								              allowBlank: false,
					                		  size: 14,
					                		  maxLength: 14,
					                		  minLength: 1,
								              maskRe: /^\.| |,|[0-9]$/,
								              regex: /^[0-9]+([\.| ]?[0-9]{3})*(,[0-9]{1,2})?$/,
								              regexText: 'Le format du champ est du type 99.999,99.',
								              width: 250
						                }]
						            },{
						                columnWidth:.2,
						                layout: 'form',
						                items: [{
						                    html: '(en euros)'
						                }]
						            }]
						  		}]
							},{	xtype:'panel',
					            autoHeight:true,
								autoWidth:true,
								items :[{
						            layout:'column',
						            items:[{
						                columnWidth:.8,
						                layout: 'form',
						                items: [{
						                	  xtype:'numberfield',
						                      fieldLabel: 'Divisé en ',
								              name: 'dividedIn',
					                		  allowDecimals: 'false',
								              width: 250
						                }]
						            },{
						                columnWidth:.2,
						                layout: 'form',
						                items: [{
						                	name: 'dividedIn',
						                    html: 'parts sociales'
						                }]
						            }]
						  		}]
							},{	xtype:'panel',
					            autoHeight:true,
								autoWidth:true,
								items :[{
						            layout:'column',
						            items:[{
						                columnWidth:.8,
						                layout: 'form',
						                items: [{
						                	  xtype:'textfield',
						                      fieldLabel: 'De ',
								              name: 'dividedOf',
							                  maskRe: /^\.| |,|[0-9]$/,
							                  regex: /^[0-9]+([\.| ]?[0-9]{3})*(,[0-9]{1,2})?$/,
							                  regexText: 'Le format du champ est du type 99.999,99.',
								              width: 250
						                }]
						            },{
						                columnWidth:.2,
						                layout: 'form',
						                items: [{
						                	name: 'dividedOf',
						                    html: 'euros chacune'
						                }]
						            }]
						  		}]
							}];		
				            
/**
 * 2.2.3.15	Capital for variable capital
 *		
 */

// Add the additional 'advanced' VTypes
Ext.apply(Ext.form.VTypes, {

    capital : function(val, field) {
        if (field.initialCapitalField) {
            var cap = Ext.getCmp(field.initialCapitalField);
			if(parseFloat(val) >= parseFloat(cap.getValue()))
            	return true;
            else
            	return false;
        }
        return true;
    },

    capitalText : 'Le montant du capital maximum doit être supérieur au montant du capital minimum'
});

 
 Elements.variableCapital = [ {
 								xtype:'textfield',
			       		        fieldLabel: 'Capital minimum autorisé '+Elements.mandatory,
				                name: 'vcMinimumCapital',
				                hiddenId: 'vcMinimumCapital',
				                id: 'vcMinimumCapital',
	                		    size: 14,
	                		    maxLength: 14,
	                		    minLength: 1,
				                maskRe: /^\.| |,|[0-9]$/,
				                regex: /^[0-9]+([\.| ]?[0-9]{3})*(,[0-9]{1,2})?$/,
				                regexText: 'Le format du champ est du type 99.999,99.',
				                allowBlank:false,
				                width: 350
				            },{
				            	xtype:'textfield',
			       		        fieldLabel: 'Capital maximum '+Elements.mandatory,
				                name: 'vcMaximumCapital',
				                hiddenId: 'vcMaximumCapital',
	                		    size: 14,
	                		    maxLength: 14,
	                		    minLength: 1,
					            maskRe: /^\.| |,|[0-9]$/,
					            regex: /^[0-9]+([\.| ]?[0-9]{3})*(,[0-9]{1,2})?$/,
					            regexText: 'Le format du champ est du type 99.999,99.',
				                allowBlank:false,
				                width: 350,
				                vtype: 'capital',
				                initialCapitalField: 'vcMinimumCapital'
				            } ];	

 /**
  * 2.2.3.16	Physical person
  *
  * This element must have in parameter the begin of field name and a text. For example: parameter are "manager"
  * and "Name of the individual manage". Fields name are manager_civility, manager_ last_name, manager_first_name
  *		
  *  (1): This field has choice, if there is no store parameter use the code: $CIVILITY = "civility".
  *	(2): This field must contain 5 numbers.
  */
  Elements.civilityStore = new Ext.data.SimpleStore({
												url : Elements.comboSource,
												fields: Elements.comboFields,
												baseParams : {dbProperty : 'CIVILITY'}
											});
 Elements.physicalPerson 	=  [new Ext.form.FieldSet({
					        		labelWidth: 240,
						            title: 'Parameter 2',
						            autoHeight:true,
									autoWidth:true,
									collapsible: false,
						            defaultType: 'textfield',
						            items :[{
						            		xtype: 'combo',
											fieldLabel: 'Civilité '+Elements.mandatory,
											hiddenName:'ad_civility',
											store: Elements.civilityStore,
											valueField:'id',
											displayField:'value',
											typeAhead: true,
											mode: 'local',
											editable: false,
											triggerAction: 'all',
											emptyText:'Sélectionnez civilité',
											selectOnFocus:true,
											width: 350,
							                allowBlank:false
										},
							            {
						       		       fieldLabel: 'Nom '+Elements.mandatory,
							                name: 'ad_last_name',
							                allowBlank:false,
							                width: 350
							            },{
						       		       fieldLabel: 'Prénom '+Elements.mandatory,
							                name: 'ad_first_name',
							                allowBlank:false,
							                width: 350
							            }
							        ].concat(Elements.clone(Elements.addressLocality))
						    })];
 Elements.physicalPersonOptional 	=  [new Ext.form.FieldSet({
					        		labelWidth: 240,
						            title: 'Parameter 2',
						            autoHeight:true,
									autoWidth:true,
									collapsible: false,
						            defaultType: 'textfield',
						            items :[{
						            		xtype: 'combo',
											fieldLabel: 'Civilité ',
											hiddenName:'ad_civility',
											store: Elements.civilityStore,
											valueField:'id',
											displayField:'value',
											typeAhead: true,
											mode: 'local',
											editable: false,
											triggerAction: 'all',
											emptyText:'Sélectionnez civilité',
											selectOnFocus:true,
											width: 350
										},
							            {
						       		       fieldLabel: 'Nom ',
							                name: 'ad_last_name',
							                width: 350
							            },{
						       		       fieldLabel: 'Prénom ',
							                name: 'ad_first_name',
							                width: 350
							            }
							        ].concat(Elements.clone(Elements.addressLocalityOptional))
						    })];
 Elements.civilityStore.load({add : true});
 
 Elements.newPhysicalPerson			= function (param1,namePostFix,optional){
 	var physicalPerson1 = '';
 	if(optional == 'true') {
 		physicalPerson1 =  Elements.clone(Elements.physicalPersonOptional);
 	} else {
 		physicalPerson1 =  Elements.clone(Elements.physicalPerson);
 	}
 		
 	physicalPerson1 = physicalPerson1.concat([{xtype: 'hidden',
 								name: '1_'+namePostFix,
 								value: 'on'}]);
 		
	physicalPerson1[0].title	= param1;
	 
	 ///
	 physicalPerson1[0].items.items[0].name = "ad_civility";
	 physicalPerson1[0].items.items[1].name = "ad_last_name";
	 physicalPerson1[0].items.items[2].name = "ad_first_name";
	 physicalPerson1[0].items.items[3].name = "ad_address";
	 physicalPerson1[0].items.items[4].items.items[0].items.items[0].items.items[0].name = "ad_postal_code";
	 physicalPerson1[0].items.items[4].items.items[0].items.items[1].items.items[0].name = "ad_locality";
	 
	 Elements.appendNamePostFix(physicalPerson1[0],namePostFix);
	 return physicalPerson1;
 }
 
 Elements.PhysicalPersonRCS		= [new Ext.form.FieldSet({
					        		labelWidth: 240,
						            title: 'Parameter 2',
						            autoHeight:true,
									autoWidth:true,
									collapsible: false,
						            defaultType: 'textfield',
						            items :[{
						            		xtype: 'combo',
											fieldLabel: 'Civilité '+Elements.mandatory,
											hiddenName:'ad_civility',
											store: Elements.civilityStore,
											valueField:'id',
											displayField:'value',
											typeAhead: true,
											mode: 'local',
											editable: false,
											triggerAction: 'all',
											emptyText:'Sélectionnez civilité',
											selectOnFocus:true,
											width: 350,
							                allowBlank:false
										},
							            {
						       		       fieldLabel: 'Nom '+Elements.mandatory,
							                name: 'ad_last_name',
							                allowBlank:false,
							                width: 350
							            },{
						       		       fieldLabel: 'Prénom '+Elements.mandatory,
							                name: 'ad_first_name',
							                allowBlank:false,
							                width: 350
							            }
							        ].concat(Elements.clone(Elements.addressLocality))
							        .concat(Elements.clone(Elements.rcsAndCity))
						    })];
 
 Elements.PhysicalPersonRCSBis		= [new Ext.form.FieldSet({
					        		labelWidth: 240,
						            title: 'Parameter 2',
						            autoHeight:true,
									autoWidth:true,
									collapsible: false,
						            defaultType: 'textfield',
						            items :[{
						            		xtype: 'combo',
											fieldLabel: 'Civilité '+Elements.mandatory,
											hiddenName:'ad_civility',
											store: Elements.civilityStore,
											valueField:'id',
											displayField:'value',
											typeAhead: true,
											mode: 'local',
											editable: false,
											triggerAction: 'all',
											emptyText:'Sélectionnez civilité',
											selectOnFocus:true,
											width: 350,
							                allowBlank:false
										},
							            {
						       		       fieldLabel: 'Nom '+Elements.mandatory,
							                name: 'ad_last_name',
							                allowBlank:false,
							                width: 350
							            },{
						       		       fieldLabel: 'Prénom '+Elements.mandatory,
							                name: 'ad_first_name',
							                allowBlank:false,
							                width: 350
							            }
							        ].concat(Elements.clone(Elements.addressLocality))
							        .concat(Elements.clone(Elements.rcsAndCityBis))
						    })];
 
 Elements.newPhysicalPersonRCS			= function (param1,namePostFix){
 		var physicalPerson1 =  Elements.clone(Elements.PhysicalPersonRCS);
 		
 		physicalPerson1 = physicalPerson1.concat([{xtype: 'hidden',
 								name: '1_'+namePostFix,
 								value: 'on'}]);
 		
	 physicalPerson1[0].title	= param1;
	 
	 ///
	 physicalPerson1[0].items.items[0].name = "ad_civility";
	 physicalPerson1[0].items.items[1].name = "ad_last_name";
	 physicalPerson1[0].items.items[2].name = "ad_first_name";
	 physicalPerson1[0].items.items[3].name = "ad_address";
	 physicalPerson1[0].items.items[4].items.items[0].items.items[0].items.items[0].name = "ad_postal_code";
	 physicalPerson1[0].items.items[4].items.items[0].items.items[1].items.items[0].name = "ad_locality";
	 physicalPerson1[0].items.items[5].items.items[0].items.items[0].items.items[0].items.items[0].name = "ad_company_num_rcs";
	 physicalPerson1[0].items.items[5].items.items[0].items.items[0].items.items[1].items.items[0].name = "ad_company_ville_rcs";
	 physicalPerson1[0].items.items[5].items.items[0].items.items[0].items.items[1].items.items[0].hiddenName = "ad_company_ville_rcs";
	 
	 Elements.appendNamePostFix(physicalPerson1[0],namePostFix);
	 return physicalPerson1;
 }
 
 Elements.newPhysicalPersonRCSBis			= function (param1,namePostFix){
 		var physicalPerson1 =  Elements.clone(Elements.PhysicalPersonRCSBis);
 		
 		physicalPerson1 = physicalPerson1.concat([{xtype: 'hidden',
 								name: '1_'+namePostFix,
 								value: 'on'}]);
 		
	 physicalPerson1[0].title	= param1;
	 
	 ///
	 physicalPerson1[0].items.items[0].name = "ad_civility";
	 physicalPerson1[0].items.items[1].name = "ad_last_name";
	 physicalPerson1[0].items.items[2].name = "ad_first_name";
	 physicalPerson1[0].items.items[3].name = "ad_address";
	 physicalPerson1[0].items.items[4].items.items[0].items.items[0].items.items[0].name = "ad_postal_code";
	 physicalPerson1[0].items.items[4].items.items[0].items.items[1].items.items[0].name = "ad_locality";
	 physicalPerson1[0].items.items[5].items.items[0].items.items[0].items.items[0].items.items[0].name = "ad_company_num_rcs";
	 physicalPerson1[0].items.items[5].items.items[0].items.items[0].items.items[1].items.items[0].name = "ad_company_ville_rcs";
	 physicalPerson1[0].items.items[5].items.items[0].items.items[0].items.items[1].items.items[0].hiddenName = "ad_company_ville_rcs";
	 
	 Elements.appendNamePostFix(physicalPerson1[0],namePostFix);
	 return physicalPerson1;
 }
 
/**
  * 2.2.3.17	Physical and moral person
  *		There are 3 parameters:
		The begin of field name like 2.2.3.16 Physical person.
		The text for physical person
		The text for moral person
		
		(1): Choice exclusive between the both. When the user chooses an element, 
				the frame associated appears with slide effect and another closes.
		(2): This field must contain 5 numbers. 
		(3): This field contains maximum 11 letters.
  */ 
 Elements.physicalAndMoralPersonPart2 			= [new Ext.form.FieldSet({
        		labelWidth: 240,
	            title: 'Paramerer 2 ',
	            autoHeight:true,
				autoWidth:true,
				collapsible: false,
				checkboxToggle:true,
	            defaultType: 'textfield',
	            items :[{
	       		       fieldLabel: 'Dénomination '+Elements.mandatory,
		                name: 'ad_designation',
		                allowBlank:false,
		                width: 350
		            },{
	       		       fieldLabel: 'Forme de la société '+Elements.mandatory,
		                name: 'ad_socity',
		                allowBlank:false,
		                width: 350
		            },{
		            	xtype: 'textfield',
	       		       	fieldLabel: 'Au capital de '+Elements.mandatory,
		                name: 'ad_capital',
		                allowBlank:false,
               		    size: 14,
               		    maxLength: 14,
               		    minLength: 1,
		                maskRe: /^\.| |,|[0-9]$/,
		                regex: /^[0-9]+([\.| ]?[0-9]{3})*(,[0-9]{1,2})?$/,
		                regexText: 'Le format du champ est du type 99.999,99.',
		                width: 350
		            }].concat(Elements.clone(Elements.addressLocality))
		              .concat(Elements.rcsAndCityText)
		              .concat([{
              						xtype: 'label',
              						text : 'Représentée par',
              						style: 'margin-left: 20px; font-family:tahoma,arial,helvetica,sans-serif; font-size:14px; color:#15428B; font-weight:bold'
	              				},
	              				{
				            		xtype: 'combo',
									fieldLabel: 'Civilité '+Elements.mandatory,
									hiddenName:'ad_civility',
									store: Elements.civilityStore,
									valueField:'id',
									displayField:'value',
									typeAhead: true,
									mode: 'local',
									editable: false,
									triggerAction: 'all',
									emptyText:'Sélectionnez civilité',
									selectOnFocus:true,
									width: 350,
					                allowBlank:false
								},
					            {
				       		       fieldLabel: 'Nom '+Elements.mandatory,
					                name: 'ad_last_name',
					                allowBlank:false,
					                width: 350
					            },{
				       		       fieldLabel: 'Prénom '+Elements.mandatory,
					                name: 'ad_first_name',
					                allowBlank:false,
					                width: 350
					            }
					        ].concat(Elements.clone(Elements.addressLocality)))
	        	})];
 Elements.physicalPerson2					= Elements.clone(Elements.physicalPerson);
 Elements.physicalPerson2[0].collapsible	= false; 	
 Elements.physicalPerson2[0].checkboxToggle	= true;
 Elements.physicalPerson2[0].collapsed 		= true;	
 Elements.physicalAndMoralPerson 			= Elements.physicalPerson2.concat(Elements.physicalAndMoralPersonPart2);
 
 Elements.physicalPerson3					= Elements.clone(Elements.PhysicalPersonRCS);
 Elements.physicalPerson3[0].collapsible	= false; 	
 Elements.physicalPerson3[0].checkboxToggle	= true;
 Elements.physicalPerson3[0].collapsed 		= true;	
 Elements.physicalAndMoralPerson2 			= Elements.physicalPerson3.concat(Elements.physicalAndMoralPersonPart2);
 
 
 Elements.newPhysicalAndMoralPerson			= function (param1,param2,namePostFix,is01RCSRequired){
 	 var physicalAndMoralPerson1 = '';
 	 if(is01RCSRequired){
 	 	physicalAndMoralPerson1 =  Elements.clone(Elements.physicalAndMoralPerson2);
 	 	physicalAndMoralPerson1[0].items.items[5].items.items[0].items.items[0].items.items[0].items.items[0].name= "ad_company_num_rcs";
 	 	physicalAndMoralPerson1[0].items.items[5].items.items[0].items.items[0].items.items[1].items.items[0].name= "ad_company_ville_rcs";
	 	physicalAndMoralPerson1[0].items.items[5].items.items[0].items.items[0].items.items[1].items.items[0].hiddenName= "ad_company_ville_rcs";
 	 }else{
 		physicalAndMoralPerson1 =  Elements.clone(Elements.physicalAndMoralPerson);
 	 }
 	 physicalAndMoralPerson1[0].checkboxName =	"1_"+namePostFix;
	 physicalAndMoralPerson1[0].checkboxToggle	= true;
	 physicalAndMoralPerson1[1].collapsed 		= true;	
	 Elements.disableChild(physicalAndMoralPerson1[1]);
	 physicalAndMoralPerson1[0].title	= param1;
	 physicalAndMoralPerson1[1].title	= param2;
	 physicalAndMoralPerson1[1].checkboxName 	=	"2_"+namePostFix;
	 
	 ///
	 physicalAndMoralPerson1[0].items.items[0].name = "ad_civility";
	 physicalAndMoralPerson1[0].items.items[1].name = "ad_last_name";
	 physicalAndMoralPerson1[0].items.items[2].name = "ad_first_name";
	 physicalAndMoralPerson1[0].items.items[3].name = "ad_address";
	 physicalAndMoralPerson1[0].items.items[4].items.items[0].items.items[0].items.items[0].name = "ad_postal_code";
	 physicalAndMoralPerson1[0].items.items[4].items.items[0].items.items[1].items.items[0].name = "ad_locality";
	 
	 // items name
	 //Set revant hidden names to populate
	 physicalAndMoralPerson1[1].items.items[0].name = "ad_company_denomination";
	 physicalAndMoralPerson1[1].items.items[1].name = "ad_company_type";
	 physicalAndMoralPerson1[1].items.items[2].name = "ad_company_capital";
	 physicalAndMoralPerson1[1].items.items[3].name = "ad_company_address";
	 physicalAndMoralPerson1[1].items.items[4].items.items[0].items.items[0].items.items[0].name= "ad_company_postal_code";
	 physicalAndMoralPerson1[1].items.items[4].items.items[0].items.items[1].items.items[0].name= "ad_company_locality";
	 physicalAndMoralPerson1[1].items.items[5].items.items[0].items.items[0].items.items[0].items.items[0].name= "ad_company_num_rcs";
	 physicalAndMoralPerson1[1].items.items[5].items.items[0].items.items[0].items.items[1].items.items[0].name= "ad_company_ville_rcs";
	 
	 // element 16 again
	 physicalAndMoralPerson1[1].items.items[7].name= "ad_civility";
	 physicalAndMoralPerson1[1].items.items[8].name= "ad_last_name";
	 physicalAndMoralPerson1[1].items.items[9].name= "ad_first_name";
	 physicalAndMoralPerson1[1].items.items[10].name= "ad_address";
	 physicalAndMoralPerson1[1].items.items[11].items.items[0].items.items[0].items.items[0].name= "ad_postal_code";
	 physicalAndMoralPerson1[1].items.items[11].items.items[0].items.items[1].items.items[0].name= "ad_locality";
	
	 //
	 
	 Elements.appendNamePostFix(physicalAndMoralPerson1[0],namePostFix);
	 Elements.appendNamePostFix(physicalAndMoralPerson1[1],namePostFix);
	 //physicalAndMoralPerson1[0].items[0].hiddenName = physicalAndMoralPerson1[0].items[0].hiddenName+namePostFix;
	 
	 return physicalAndMoralPerson1;
}
 
/**
 * 2.2.3.18	Physical person for partnership society
 *		
 */
 Elements.physicalPersonPartnershipSociety 			=   [{
										       		       fieldLabel: 'Propriétaire de '+Elements.mandatory,
											                name: 'wonerOf',
											                allowBlank:false
											            }].concat(Elements.physicalAndMoralPerson);
											            
 Elements.newPhysicalPersonPartnershipSociety		= function (param1,param2,namePostFix,ownerId){
 	 var physicalAndMoralPerson1 =  Elements.newPhysicalAndMoralPerson(param1,param2,namePostFix);
 	 return physicalAndMoralPerson1;
 	 /*return [{	xtype:'panel',
				autoHeight:true,
				autoWidth:true,
				items :[{
			            layout:'column',
			            items:[{
			                columnWidth:.7,
			                layout: 'form',
			                items: [{
			                	  xtype:'numberfield',
			                      fieldLabel: 'Parts sociales  '+Elements.mandatory,
					              name: ownerId,
					              allowBlank: false 
			                }]
			            },{
			                columnWidth:.2,
			                layout: 'form',
			                items: [{
			                    html: ''
			                }]
			            }]
			  		}]
		}].concat(physicalAndMoralPerson1);*/
 }

/**
 * 2.2.3.19	Clauses
 *		
 */
 Elements.clauses 			= [ {
 									xtype: 'textarea',
				       		       fieldLabel: 'Clauses d\'agrément',
					                name: 'clausesApproval',
					                hiddenId: 'clausesApproval',
				                	width: 350
					            },
					            {
					            	xtype: 'textarea',
				       		       fieldLabel: 'Organe social habilité',
					                name: 'commissionerSocialOrgan',
					                hiddenId: 'commissionerSocialOrgan',
				                	width: 350
					            } ];
 
/**
 * 2.2.3.20	Article number
 *		 (1): This field must numbers, 3 maximum. No letter.
 */
 Elements.articleNumber 	=  [{
 									xtype: 'numberfield',
				       		        fieldLabel: 'Numéro d\'article des status modifié ',
					                name: 'articleNumber',
					                allowDecimals: 'false',
				                	maxLength: 3,
				                	width: 175
					            }];
 Elements.articleNumber2 	=  [{
									xtype: 'numberfield',
							        fieldLabel: 'Numéro d\'article des status modifié ',
							        name: 'articleNumber2',
							        allowDecimals: 'false',
							        maxLength: 3,
							        width: 175
							 	}];
 Elements.articleNumber3 	=  [{
									xtype: 'numberfield',
							        fieldLabel: 'Numéro d\'article des status modifié ',
							        name: 'articleNumber3',
							        allowDecimals: 'false',
							        maxLength: 3,
							        width: 175
 								}];
/**
 * 2.2.3.21	RCS Register
 *		(1): This field has choice, if there is no store parameter use the code: $RCS_REGISTER = "enregistrement_RCS".
 */	  

 Elements.rcsRegister 		= 	[ {
 									xtype: 'combo',
									fieldLabel: 'RCS (greffe) où sera déposé l\'avis '+Elements.mandatory,
									hiddenName:'registerRCS',
									store: new Ext.data.SimpleStore({
										url : Elements.comboSource,
										fields: Elements.comboFields,
										baseParams : {dbProperty : 'RCS_CITY'}
									}),
									valueField:'id',
									displayField:'value',
									typeAhead: true,
									mode: 'local',
									editable: false,
					                allowBlank:false,
									triggerAction: 'all',
									emptyText:'Sélectionner le RCS',
									selectOnFocus:true,
									width:350,
									hiddenId:'registerRCS'
								} ];	
/*
 Elements.rcsRegister 		= 	[ new Ext.form.ComboBox({
										fieldLabel: 'RCS (greffe) où sera déposé l\'avis '+Elements.mandatory,
										labelStyle: 'width: 350px;',
										hiddenName:'registerRCS',
										store: new Ext.data.SimpleStore({
											url : Elements.comboSource,
											fields: Elements.comboFields,
											baseParams : {dbProperty : 'RCS_REGISTER'}
										}),
										valueField:'id',
										displayField:'value',
										typeAhead: true,
										mode: 'local',
										editable: false,
										triggerAction: 'all',
										emptyText:'Sélectionner le RCS',
										selectOnFocus:true,
										width:350,
										name:'registerRCS',
						                allowBlank:false
									}) ];		   
*/
Elements.rcsRegister[0].store.load({add:false});
									
/**
 * 2.2.3.22	Element for company by actions simplified
 *		
 */
 Elements.companyByActionsSimplified 		
 							 = [ {
 							 			xtype: 'textarea',
					       		        fieldLabel: 'Conditions d\'admission aux assemblées d\'actionnaires',
				                		width: 350,
						                name: 'admissionRequirement'
						            },
						            {
						            	xtype: 'textarea',
					       		        fieldLabel: 'Exercice du droit de vote',
				                		width: 350,
						                name: 'exercisingRightVote'
						            },{	
						            	labelWidth: 240,
						            	xtype:'fieldset',
						            	title: 'Clauses',
						            	autoHeight:true,
										autoWidth:true,
						            	defaultType: 'textfield',
						            	collapsible: true,
						            	collapsed: false,
						            	items : Elements.clauses
						        	} ];

/**
 * 2.2.3.23	Element for headquarters transfer
 *		1): Choice exclusive between the both. Use radio button.
 */    
 Elements.elementHeadquartersTransfer
 							=  	[ {
 									xtype: 'radio',
 									fieldLabel: 'Transfert ',
				       		        boxLabel: 'Transfert Même Ressort',
					                name: 'hqTransfer',
					                inputValue: '1',
					                checked: true,
					                id: 'hqTransfer1'
					            },
					            {
					            	xtype: 'radio',
					            	fieldLabel: '',
                        			labelSeparator: '',
				       		        boxLabel: 'Transfert Hors Ressort',
					                name: 'hqTransfer',
					                inputValue: '2',
					                id: 'hqTransfer2'
					            }];
					            
 /**
  * 2.2.3.24	Decided
  *		This function has in parameter an Ext.data.SimpleStore to display in the combobox list (1), 
  			if there is no store parameter use the code: $DECIDED_BY = "decide_par".
  */
 Elements.decided			= 	[ new Ext.form.ComboBox({
									fieldLabel: 'Décidé par '+Elements.mandatory,
									hiddenName:'decidedBy',
									hiddenId:'decidedBy',
									store: new Ext.data.SimpleStore({
										url : Elements.comboSource,
										fields: Elements.comboFields,
										baseParams : {dbProperty : 'DECIDED_BY'}
									}),
									valueField:'id',
									displayField:'value',
									typeAhead: true,
									mode: 'local',
									editable: false,
									triggerAction: 'all',
									emptyText:'Sélectionnez le décisionnaire',
									selectOnFocus:true,
									width:350,
					                allowBlank:false
								}),	new Ext.form.DateField({
										fieldLabel: 'Date de la décision '+Elements.mandatory,
										name: 'decidedDate',
										hiddenName:'decidedDate',
										format: 'd/m/Y',
									    maskRe: /^\/|[0-9]$/,
										width: 175,
										allowBlank:false
									})];
 Elements.decidedForm16_1	= 	{	xtype:'panel',
					            	autoHeight:true,
									items :[{
							            layout:'column',
							            items:[{
							                columnWidth:.7,
							                layout: 'form',
							                items: [{
							                		xtype: 'datefield',
													fieldLabel: 'Date de la décision '+Elements.mandatory,
													name: 'dissolutionDecidedDate',
													hiddenName:'dissolutionDecidedDate',
													format: 'd/m/Y',
												    maskRe: /^\/|[0-9]$/,
													width: 175,
													allowBlank:false
												}]
						            	},{
							                columnWidth:.1,
							                layout: 'form',
							                items: [
						                	   {
						                	   		xtype: 'combo',
													hiddenId:'dissolutionDecidedHour',
													store: new Ext.data.SimpleStore({
														url : Elements.comboSource,
														fields: Elements.comboFields,
														baseParams : {dbProperty : 'HOUR'}
													}),
													valueField:'id',
													displayField:'value',
													typeAhead: true,
													editable: false,
													triggerAction: 'all',
													selectOnFocus:true,
													emptyText:'heure',
				 									width: 60,
				 									hideLabel: true,
												    name: 'dissolutionDecidedHour',
												    hiddenName: 'dissolutionDecidedHour'
											   }
							                ]
						            	},{
							                columnWidth:.15,
							                layout: 'form',
							                items: [
						                	   {
						                	   		xtype: 'combo',
													hiddenId:'dissolutionDecidedMinute',
													store: new Ext.data.SimpleStore({
														url : Elements.comboSource,
														fields: Elements.comboFields,
														baseParams : {dbProperty : 'MINUTE'}
													}),
													valueField:'id',
													displayField:'value',
													typeAhead: true,
													editable: false,
													triggerAction: 'all',
													selectOnFocus:true,
													emptyText:'minute',
				 									width: 70,
				 									hideLabel: true,
												    name: 'dissolutionDecidedMinute',
												    hiddenName: 'dissolutionDecidedMinute'
											   }
							                ]
						            	}]
						  		 	}]
						  		};	
 Elements.decidedForm16_2	= 	{	xtype:'panel',
					            	autoHeight:true,
									items :[{
							            layout:'column',
							            items:[{
							                columnWidth:.7,
							                layout: 'form',
							                items: [{
							                		xtype: 'datefield',
													fieldLabel: 'Date de la décision '+Elements.mandatory,
													name: 'liquidationDecidedDate',
													hiddenName:'liquidationDecidedDate',
													format: 'd/m/Y',
												    maskRe: /^\/|[0-9]$/,
													width: 175,
													allowBlank:false
												}]
						            	},{
							                columnWidth:.1,
							                layout: 'form',
							                items: [
						                	   	{
						                	   		xtype: 'combo',
													hiddenId:'liquidationDecidedHour',
													store: new Ext.data.SimpleStore({
														url : Elements.comboSource,
														fields: Elements.comboFields,
														baseParams : {dbProperty : 'HOUR'}
													}),
													valueField:'id',
													displayField:'value',
													typeAhead: true,
													editable: false,
													triggerAction: 'all',
													selectOnFocus:true,
													emptyText:'heure',
				 									width: 60,
				 									hideLabel: true,
												    name: 'liquidationDecidedHour',
												    hiddenName: 'liquidationDecidedHour'
											   }
							                ]
						            	},{
							                columnWidth:.15,
							                layout: 'form',
							                items: [
						                	   {
						                	   		xtype: 'combo',
													hiddenId:'liquidationDecidedMinute',
													store: new Ext.data.SimpleStore({
														url : Elements.comboSource,
														fields: Elements.comboFields,
														baseParams : {dbProperty : 'MINUTE'}
													}),
													valueField:'id',
													displayField:'value',
													typeAhead: true,
													editable: false,
													triggerAction: 'all',
													selectOnFocus:true,
													emptyText:'minute',
				 									width: 70,
				 									hideLabel: true,
												    name: 'liquidationDecidedMinute',
												    hiddenName: 'liquidationDecidedMinute'
											   }
							                ]
						            	}]
						  		 	}]
						  		};							  						  		
 //Elements.decided[0].store.load({add : false});	
 
 Elements.newDecided		= function(param,nomBy,nomDate){
	var desided	= Elements.decided;
	if(nomBy){
//		desided[0].name = nomBy;
//		desided[0].hiddenName = nomBy;
//		desided[0].hiddenId = nomBy;
		nom = nomBy;
	} else nom = 'decidedBy';
	if(nomDate){
//		desided[1].name = nomDate;
//		desided[1].hiddenName = nomDate;
//		desided[1].hiddenId = nomDate;
		nomDate = nomDate;
	} else nomDate = 'decidedDate';
	
	var desided	= [new Ext.form.ComboBox({
		fieldLabel: 'Décidé par '+Elements.mandatory,
		hiddenName:nom,
		hiddenId:nom,
		store: new Ext.data.SimpleStore({
			url : Elements.comboSource,
			fields: Elements.comboFields,
			baseParams : {dbProperty : 'DECIDED_BY'}
		}),
		valueField:'id',
		displayField:'value',
		typeAhead: true,
		mode: 'local',
		editable: false,
		triggerAction: 'all',
		emptyText:'Sélectionnez le décisionnaire',
		selectOnFocus:true,
		width:350,
        allowBlank:false
	}),	new Ext.form.DateField({
			fieldLabel: 'Date de la décision '+Elements.mandatory,
			name: nomDate,
			hiddenName:nomDate,
			format: 'd/m/Y',
		    maskRe: /^\/|[0-9]$/,
			width: 175,
			allowBlank:false
		})];
	
	desided[0].store.baseParams = {dbProperty : param};
	desided[0].store.load({add : false});
	
	return desided;
}							
/**
 * 2.2.3.25	Transfer date
 *		
 */	
 Elements.transferDate		= 	[	new Ext.form.DateField({
											fieldLabel: 'Date du transfert '+Elements.mandatory,
											name: 'transferDate',
											format: 'd/m/Y',
								    		maskRe: /^\/|[0-9]$/,
											width: 175,
											allowBlank:false
								})];	
								
 /**
  * 2.2.3.26	New address
  *		1): This field must contain 5 numbers. No letter
  */
  Elements.newAddress		= 	[new Ext.form.FieldSet({	labelWidth: 240,
						            xtype:'fieldset',
						            title: 'Nouvelle adresse '+Elements.mandatory,
						            autoHeight:true,
									autoWidth:true,
									collapsible: false,
						            defaultType: 'textfield',
						            items : Elements.addressLocality,
									allowBlank:false
						        })];
Elements.getNewAddress			= function (namePostFix,title){
 		var newAddress1 =  Elements.clone(Elements.newAddress);
 		if(title && title != ""){// Eval 02.4
 			newAddress1[0].title = title;
 			newAddress1[0].items.items[0].hiddenId = "ad_address_"+namePostFix;
	 		newAddress1[0].items.items[1].items.items[0].items.items[0].items.items[0].hiddenId = "ad_postal_code_"+namePostFix;
	 		newAddress1[0].items.items[1].items.items[0].items.items[1].items.items[0].hiddenId = "ad_locality_"+namePostFix;
 		}
 		newAddress1 = newAddress1.concat([{xtype: 'hidden',
 								name: '1_'+namePostFix,
 								value: 'on'}]);
	 newAddress1[0].items.items[0].name = "ad_address_"+namePostFix;
	 newAddress1[0].items.items[1].items.items[0].items.items[0].items.items[0].name = "ad_postal_code_"+namePostFix;
	 newAddress1[0].items.items[1].items.items[0].items.items[1].items.items[0].name = "ad_locality_"+namePostFix;
	 return newAddress1;
 }						        
						        
  											

/**
 * 2.2.3.27	New name
 *		
 */ 	
 Elements.newName		=	[{
			       		       fieldLabel: 'Nouvelle dénomination '+Elements.mandatory,
			       		       name: 'newName',
			       		       width: 350,
			       		       allowBlank:false
				            }];		
				            
/**
 * 2.2.3.28	Radio capital variation
 *		(1): Choice exclusive between the both. Use radio button.
 */
 Elements.radioCapitalVariation		
 						=	[{
 								xtype: 'radio',
			       		        fieldLabel: 'Capital',
			       		        boxLabel: 'Augmentation de capital',
				                name: 'radioCapitalVariable',
				                inputValue: '1',
					            checked: true
				            },
				            {
				            	xtype: 'radio',
				            	fieldLabel: '',
                       			labelSeparator: '',
			       		        boxLabel: 'Diminution de capital',
				                name: 'radioCapitalVariable',
				                inputValue: '2'
				            }];			   
				            
/**
 * 2.2.3.29	Capital variation
 *		
 */	
 Elements.capitalVariation	= [{	
 								xtype:'panel',
					            autoHeight:true,
								items :[{
						            layout:'column',
						            items:[{
						                columnWidth:.7,
						                layout: 'form',
						                items: [{
						                	  xtype:'textfield',
						                      fieldLabel: 'Montant de la variation du capital  '+Elements.mandatory,
								              name: 'amountCapitalVariation',
				                		      size: 14,
				                		      maxLength: 14,
				                		      minLength: 1,
								              allowBlank: false,
								              maskRe: /^\.| |,|[0-9]$/,
								              regex: /^[0-9]+([\.| ]?[0-9]{3})*(,[0-9]{1,2})?$/,
								              regexText: 'Le format du champ est du type 99.999,99.',
									          width: 175

						                }]
						            },{
						                columnWidth:.2,
						                layout: 'form',
						                items: [{
						                    html: 'euros'
						                }]
						            }]
						  		 }]
						  		},{	
	 								xtype:'panel',
						            autoHeight:true,
									autoWidth:true,
									items :[{
							            layout:'column',
							            items:[{
							                columnWidth:.7,
							                layout: 'form',
							                items: [{
							                	  xtype:'textfield',
							                      fieldLabel: 'Montant du nouveau capital  '+Elements.mandatory,
									              name: 'amountNewCapital',
					                		      size: 14,
					                		      maxLength: 14,
					                		      minLength: 1,
									              allowBlank: false,
									              maskRe: /^\.| |,|[0-9]$/,
									              regex: /^[0-9]+([\.| ]?[0-9]{3})*(,[0-9]{1,2})?$/,
									              regexText: 'Le format du champ est du type 99.999,99.',
									              width: 175
	
							                }]
							            },{
							                columnWidth:.2,
							                layout: 'form',
							                items: [{
							                    html: 'euros'
							                }]
							            }]
							  		}]
							  	},{	
 									xtype:'textfield',
						            fieldLabel: 'Commentaires complémentaires ',
								    name: 'addComments',
								    width: 350
								}];	
					            
/**
 * 2.2.3.30	Radio modification of social object
 *		(1): Choice exclusive between the both. Use radio button.
 */
 Elements.radioModificationSocialObject	=	[new Ext.form.FieldSet({
					        		labelWidth: 240,
						            autoHeight:true,
									autoWidth:true,
									style:'margin-left: 15px;border-top: none;border-bottom: none;border-right: none;border-width: 3px;border-color: #15428B;',
									collapsible: false,
						            defaultType: 'radio',
						            items :[{
 												xtype : 'radio',
												fieldLabel: 'Remplacement de l\'objet social',
								                name: 'radioModificationSocialObject',
								                inputValue: '0',
								                boxLabel: '&nbsp;',
					           					checked: true
								            },
								            {
								            	xtype : 'radio',
							       		       	fieldLabel: 'Extension de l\'objet social',
								                name: 'radioModificationSocialObject',
								                inputValue: '1',
								                boxLabel: '&nbsp;'
								            }]})];				
								            
/**
 * 2.2.3.31	Modification of social object
 *		
 */		
 Elements.modificationSocialObject	=	[{
 											xtype:'textarea',
						       		        fieldLabel: 'Modification objet social '+Elements.mandatory,
							                name: 'modificationSocialObject',
							                allowBlank:false,
								    		width: 350
							            }];				
							            
/**
 * 2.2.3.32	Change leadership
 *		 (1): This field has choice, if there is no store parameter use the code: $LEADER_TITLE = "titre_dirigeant".
 */							         
 Elements.changeLeadership	=   [ new Ext.form.ComboBox({
									fieldLabel: 'Titre du dirigeant concerné '+Elements.mandatory,
									hiddenName:'titleLeadership',
									hiddenId:'titleLeadership',
									store: new Ext.data.SimpleStore({
										url : Elements.comboSource,
										fields: Elements.comboFields,
										baseParams : {dbProperty : 'LEADER_TITLE'}
									}),
									valueField:'id',
									displayField:'value',
									typeAhead: true,
									mode: 'local',
									editable: false,
									triggerAction: 'all',
									emptyText:'Sélectionnez le titre',
									selectOnFocus:true,
									width:350,
					                allowBlank:false
								}),{	
					            	labelWidth: 240,
					            	xtype:'fieldset',
					            	title: 'Nomination dirigeant avec remplacement',
					            	autoHeight:true,
									autoWidth:true,
									collapsible: false,
									checkboxToggle:true,
									checkboxName: 'lastLeadershipAds09',
					            	defaultType: 'textfield',
					            	items : [{
					       		       fieldLabel: 'Ancien dirigeant  '+Elements.mandatory,
						                name: 'lastLeadership',
						                allowBlank:false,
										width: 350
						            },{
					       		       fieldLabel: 'Motif de départ  '+Elements.mandatory,
						                name: 'departureReason',
						                allowBlank:false,
										width: 350
						            }]
 								}];
 Elements.changeLeadership[0].store.load({add : false});					            	

/**
 * 2.2.3.33	Application date
 *		
 */		
 Elements.applicationDate	=	[	new Ext.form.DateField({
											fieldLabel: 'Date d\'effet',
											name: 'applicationDate',
											format: 'd/m/Y',
								   			maskRe: /^\/|[0-9]$/,
											width: 175
										})];		  

/**
 * 2.2.3.34	Dissolution
 *		(1): This field must contain 5 numbers. No letter.
		(2): Choice exclusive between the both. If the user chooses the second element, the frame appears with slide effect.
		(3): This field has choice, if there is no store parameter use the code: $HEADQUARTER_LIQUIDATION = "siege_liquidation".
		(4): If the checkbox is selected, fields are disabled.
 
 */
 Elements.dissolutionStore	= new Ext.data.SimpleStore({
									url : Elements.comboSource,
									fields: Elements.comboFields,
									baseParams : {dbProperty : 'DISSOLUTION'}
								});
								
 Elements.dissolution	=  	[new Ext.form.FieldSet({
					        		labelWidth: 240,
						            autoHeight:true,
									autoWidth:true,
									style:'margin-left: 15px;border-top: none;border-bottom: none;border-right: none;border-width: 3px;border-color: #15428B;',
									collapsible: false,
						            defaultType: 'radio',
						            items :[{
					xtype:'panel',
		            autoHeight:true,
					autoWidth:true,
		            defaults: {width: 600},
					items :[{
			            layout:'column',
			            items:[{
			                columnWidth:.5,
			                layout: 'form',
			                items: [{
			                	hideLabel: true,
			                	fieldLabel: 'Liquidation',
			                	xtype : 'radio',
			                	name: 'liquidationHQRadio',
			                	inputValue: '0',
			                	checked: true,
			                    boxLabel: 'Siège de la liquidation',
								width:300
			                }]
			            },{
			            	columnWidth:.5,
			            	layout: 'form',
			                items: [{
				            	xtype: 'combo',
								hiddenName:'liquidationHQCombobox',
								store: Elements.dissolutionStore,
								valueField:'id',
								displayField:'value',
								typeAhead: true,
								mode: 'local',
								editable: false,
								triggerAction: 'all',
								emptyText:'Sélectionnez le commentaire',
								selectOnFocus:true,
								width:300,
								hideLabel: true,
				                allowBlank:false
			                }]
						}]
			        }]
				},{
					xtype:'panel',
		            autoHeight:true,
					autoWidth:true,
		            defaults: {width: 600},
					items :[{
			            layout:'column',
			            items:[{
			                columnWidth:.5,
			                layout: 'form',
			                items: [{
			                	fieldLabel: 'Liquidation',
			                	hideLabel: true,
			                	xtype : 'radio',
			                	name: 'liquidationHQRadio',
			                	inputValue: '1',
			                    boxLabel: 'Entrez le siège de la liquidation',
								width:300
			                }]
			            },{
			            	columnWidth:.5,
			            	layout: 'form',
			                items: [{
			                	xtype:'label',
			                	width:300
			                }]
			            }]
			        }]
                }]}),{
                	labelWidth: 240,
		            xtype:'fieldset',
		            autoHeight:true,
					autoWidth:true,
					collapsible: false,
		            defaultType: 'textfield',
		            items :Elements.clone(Elements.addressLocality)
		        },{
        		labelWidth: 240,
	            xtype:'fieldset',
	            title: 'La correspondance doit être adressée',
	            autoHeight:true,
				autoWidth:true,
				collapsible: false,
	            defaultType: 'textfield',
	            items :[{
	            		xtype: 'checkbox',
			            fieldLabel: 'Est fixée au siège social de la liquidation',
	                    name: 'fixedHQCheckbox',
	                    hiddenId: 'fixedHQCheckbox',
	                    width: 10
			        }].concat(Elements.clone(Elements.addressLocalityOptional))
	        }];
 Elements.dissolutionStore.load({add : false}); 
 
 Elements.liquidationHQ	=  	[new Ext.form.FieldSet({
					        		labelWidth: 240,
						            autoHeight:true,
									autoWidth:true,
									style:'margin-left: 15px;border-top: none;border-bottom: none;border-right: none;border-width: 3px;border-color: #15428B;',
									collapsible: false,
						            defaultType: 'radio',
						            items :[{
					xtype:'panel',
		            autoHeight:true,
					autoWidth:true,
		            defaults: {width: 600},
					items :[{
			            layout:'column',
			            items:[{
			                columnWidth:.5,
			                layout: 'form',
			                items: [{
			                	hideLabel: true,
			                	fieldLabel: 'Liquidation',
			                	xtype : 'radio',
			                	name: 'liquidationHQRadio',
			                	inputValue: '0',
			                	checked: true,
			                    boxLabel: 'Siège de la liquidation',
								width:300
			                }]
			            },{
			            	columnWidth:.5,
			            	layout: 'form',
			                items: [{
				            	xtype: 'combo',
								hiddenName:'liquidationHQCombobox',
								store: Elements.dissolutionStore,
								valueField:'id',
								displayField:'value',
								typeAhead: true,
								mode: 'local',
								editable: false,
								triggerAction: 'all',
								emptyText:'Sélectionnez le commentaire',
								selectOnFocus:true,
								width:300,
								hideLabel: true,
				                allowBlank:false
			                }]
						}]
			        }]
				},{
					xtype:'panel',
		            autoHeight:true,
					autoWidth:true,
		            defaults: {width: 600},
					items :[{
			            layout:'column',
			            items:[{
			                columnWidth:.5,
			                layout: 'form',
			                items: [{
			                	fieldLabel: 'Liquidation',
			                	hideLabel: true,
			                	xtype : 'radio',
			                	name: 'liquidationHQRadio',
			                	inputValue: '1',
			                    boxLabel: 'Entrez le siège de la liquidation',
								width:300
			                }]
			            },{
			            	columnWidth:.5,
			            	layout: 'form',
			                items: [{
			                	xtype:'label',
			                	width:300
			                }]
			            }]
			        }]
			     }]}),{
			     	labelWidth: 240,
		            xtype:'fieldset',
		            autoHeight:true,
					autoWidth:true,
					collapsible: false,
		            defaultType: 'textfield',
		            items :Elements.clone(Elements.addressLocality)

                }];
 
/**
 * 2.2.3.35	Closing dissolution
 (1): Choice exclusive between the both. If the user chooses the second element, the date field is enabled.
 *		
 */		
 Elements.closingDissolution	=	[new Ext.form.FieldSet({
					        		labelWidth: 240,
						            autoHeight:true,
									autoWidth:true,
									style:'margin-left: 15px;border-top: none;border-bottom: none;border-right: none;border-width: 3px;border-color: #15428B;',
									collapsible: false,
						            defaultType: 'radio',
						            items :[{
										xtype : 'radio',
										fieldLabel: 'Date de la dissolution',
					       		        boxLabel: 'A compter de ce jour',
						                name: 'dissolutionDateRadio',
						                inputValue: '1',
						                checked: true, 
			           					width: 350
						            },{
						            	xtype : 'radio',
					       		       	fieldLabel: '',
	                        			labelSeparator: '',
					       		        boxLabel: 'Choisir une date',
						                name: 'dissolutionDateRadio',
						                inputValue: '0',
						                width: 350
						            }]}),
									{
										fieldLabel: 'Sélectionnez la date'+Elements.optional,
						            	xtype: 'datefield',
										name: 'dissolutionDate',
										format: 'd/m/Y',
								    	maskRe: /^\/|[0-9]$/,
										allowBlank:false,
										width:175
									}
							];
 
/**
 * 2.2.3.35	Closing liquidation
 (1): Choice exclusive between the both. If the user chooses the second element, the date field is enabled.
 *		
 */		
 Elements.closingLiquidation	=	[new Ext.form.FieldSet({
					        		labelWidth: 240,
						            autoHeight:true,
									autoWidth:true,
									style:'margin-left: 15px;border-top: none;border-bottom: none;border-right: none;border-width: 3px;border-color: #15428B;',
									collapsible: false,
						            defaultType: 'radio',
						            items :[{
										xtype : 'radio',
										fieldLabel: 'Date de la clôture',
					       		        boxLabel: 'A compter de ce jour',
						                name: 'closureDateRadio',
						                inputValue: '1',
						                checked: true, 
			           					width: 350
						            },{
						            	xtype : 'radio',
					       		       	fieldLabel: '',
	                        			labelSeparator: '',
					       		        boxLabel: 'Choisir une date',
						                name: 'closureDateRadio',
						                inputValue: '0',
						                width: 350
						            }]}),
									{
										fieldLabel: 'Sélectionnez la date'+Elements.optional,
						            	xtype: 'datefield',
										name: 'closureDate',
										format: 'd/m/Y',
								    	maskRe: /^\/|[0-9]$/,
										allowBlank:false,
										width:175
									}
							];
 						
/**
 * 2.2.3.36	Dissolution date
 *		
 */
 Elements.dissolutionDate	=  [ new Ext.form.DateField({
						fieldLabel: 'Date de la dissolution '+Elements.mandatory,
						name: 'dissolutionDate',
						format: 'd/m/Y',
						maskRe: /^\/|[0-9]$/,
						width: 175,
						allowBlank:false
					})];	
					
/**
 * 2.2.3.37	Transfer funds trade first part
 *		
 */											
 Elements.transferFundsTradeFirst = 	[	new Ext.form.DateField({
													fieldLabel: 'Date de l\'acte '+Elements.mandatory,
													name: 'actDate',
													format: 'd/m/Y',
								    				maskRe: /^\/|[0-9]$/,
													width: 175,
													allowBlank:false
												}),
											{
							       		       fieldLabel: 'Lieu d\'enregistrement '+Elements.mandatory,
								                name: 'transferRecordingPlace',
								                width: 350,
								                allowBlank:false
								            },	
											new Ext.form.DateField({
													fieldLabel: 'Date d\'enregistrement '+Elements.mandatory,
													name: 'transferRecordingDate',
													format: 'd/m/Y',
								    				maskRe: /^\/|[0-9]$/,
													width: 175,
													allowBlank:false
												}),
											{
							       		       fieldLabel: 'Ville '+Elements.mandatory,
								                name: 'transferCity',
								                width: 350,
								                allowBlank:false
								            },{
							       		       fieldLabel: 'Case '+Elements.mandatory,
								                name: 'transferCase',
								                width: 350,
								                allowBlank:false
								            },{
							       		       fieldLabel: 'Bordereau '+Elements.mandatory,
								                name: 'transferSlip',
								                width: 350,
								                allowBlank:false
								            },{
							       		       fieldLabel: 'Extrait',
								                name: 'transferFolio',
								                width: 350
								            }];

/**
 * 2.2.3.38	Transfer funds trade second part
 *		
 */
 Elements.transferFundsTradeSecond =	[{
						       		       fieldLabel: 'Nature du fonds de commerce '+Elements.mandatory,
							                name: 'transferBusiness',
							                width: 350,
							                allowBlank:false
							            },{
							       		       fieldLabel: 'Enseigne',
								                name: 'sigle', //WARN not sigle used as alias for banner
								                width: 350,
								                allowBlank:true
								            }].concat(Elements.getNewAddress('pm3','Lieu d\'exploitation'))
							            .concat([{	xtype:'panel',
								            autoHeight:true,
											autoWidth:true,
											items :[{
									            layout:'column',
									            items:[{
									                columnWidth:.8,
									                layout: 'form',
									                items: [{
									                	  xtype:'textfield',
									                      fieldLabel: 'Prix de cession  '+Elements.mandatory,
											              name: 'transferPrice',
							                		      size: 14,
							                		      maxLength: 14,
							                		      minLength: 1,
											              allowBlank: false,
											              maskRe: /^\.| |,|[0-9]$/,
											              regex: /^[0-9]+([\.| ]?[0-9]{3})*(,[0-9]{1,2})?$/,
											              regexText: 'Le format du champ est du type 99.999,99.',
														  width: 250
									                }]
									            },{
									                columnWidth:.2,
									                layout: 'form',
									                items: [{
									                    html: 'euros'
									                }]
									            }]
									  		}]
									  	},	
										new Ext.form.DateField({
												fieldLabel: 'Date d\'entrée en possession '+Elements.mandatory,
												name: 'transferPossession',
												width: 175,
												format: 'd/m/Y',
								    			maskRe: /^\/|[0-9]$/,
												allowBlank:false
										}),
										{
		 									xtype: 'radio',
		 									fieldLabel: 'Pour les oppositions, s\'adresser à '+Elements.mandatory,
						       		        boxLabel: 'Au fonds de commerce',
							                name: 'transferOppositionRadio',
							                inputValue: '1',
							                checked: true,
							                id: 'transferOppositionRadio1'
							            },
							            {
							            	xtype: 'radio',
							            	fieldLabel: '',
		                        			labelSeparator: '',
						       		        boxLabel: 'Entrer une adresse d\'opposition',
							                name: 'transferOppositionRadio',
							                inputValue: '2',
							                id: 'transferOppositionRadio2'
							            },
										{
						       		        fieldLabel: '',
		                        			labelSeparator: '',
							                name: 'transferOpposition',
							                allowBlank:false,
							                width: 350
							            }]);		 
							            

 Elements.transferFundsTradeCorrespondance =	[{
						       		       fieldLabel: 'Adresse de correspondance '+Elements.mandatory,
							                name: 'transferCorrespondance',
							                width: 350,
							                allowBlank:false
							            }];
/**
 * 2.2.3.39	Correction or additive
 *		(1): Choice exclusive between the both. If the user chooses correction, the older mention (3) is mandatory. Else the older mention is disabled.
(2): This field has choice, if there is no store parameter use the code: $NEWSPAPER_PUB = "journal_publication".
  (4): This field must contain 5 numbers. No letter
 */
 Elements.correctionAdditive =	 [{
				        			xtype:'radio',
				        			checked: true,
				        			fieldLabel: 'Additif / Rectificatif',
				       		        boxLabel: 'Additif',
					                name: 'additiveCorrection',
					                inputValue: '1',
					            	checked: true					                
					            },{
					            	xtype:'radio',
					            	fieldLabel: '',
                        			labelSeparator: '',
				       		        boxLabel: 'Rectificatif',
					                name: 'additiveCorrection',
					                inputValue: '2'
					            },{
					            	xtype: 'textfield',
				       		        fieldLabel: 'Numéro d\'annonce concerné ',
					                name: 'announceNumber',
					                maxLength: 7,
					                width: 350,
					                allowBlank:true
					            },new Ext.form.ComboBox({
					            	fieldLabel: 'Journal de parution '+Elements.mandatory,
									hiddenName:'newspaper',
									store: new Ext.data.SimpleStore({
										url : Elements.comboSource,
										fields: Elements.comboFields,
										baseParams : {dbProperty : 'NEWSPAPER_PUB'}
									}),
									valueField:'id',
									displayField:'value',
									typeAhead: true,
									mode: 'local',
									editable: true,
									triggerAction: 'all',
									emptyText:'Selectionnez un journal',
									selectOnFocus:true,
									width: 350,
					                allowBlank:false
								}),	
								new Ext.form.DateField({
										fieldLabel: 'Date de parution '+Elements.mandatory,
										name: 'publishingDate',
										format: 'd/m/Y',
								    	maskRe: /^\/|[0-9]$/,
										width: 175,
										allowBlank:false
								}),{
									xtype: 'textarea',
				       		        fieldLabel: 'Dénomination sociale de la société concernée '+Elements.mandatory,
					                name: 'companyName',
					                width: 350,
					                allowBlank:false
					            },{
									xtype: 'textarea',
				       		        fieldLabel: 'Ancienne mention',
					                name: 'olderMention',
					                width: 350
					            },{
									xtype: 'textarea',
				       		        fieldLabel: 'Nouvelle mention '+Elements.mandatory,
					                name: 'newMention',
					                width: 350,
					                allowBlank:false
					            }];
Elements.correctionAdditive[3].store.load({add : false});
					            
/**
 * 2.2.3.40	Announce nature
 *		(1): This field has choice, if there is no store parameter use the code: $AD_NATURE = "nature_annonce".
 */	
 Elements.announceNature =	[	new Ext.form.ComboBox({
										fieldLabel: 'Nature de l\'annonce '+Elements.mandatory,
										hiddenName:'announceNature',
										store: new Ext.data.SimpleStore({
											url : Elements.comboSource,
											fields: Elements.comboFields,
											baseParams : {dbProperty : 'AD_NATURE'}
										}),
										valueField:'id',
										displayField:'value',
										typeAhead: true,
										mode: 'local',
										editable: false,
										triggerAction: 'all',
										emptyText:'Sélectionnez la nature de l\'annonce',
										selectOnFocus:true,
										width: 350,
						                allowBlank:false
									})];
									
  Elements.announceNature[0].store.load({add: false});									
/**
 * 2.2.3.41	Free text
 *		
 */												            
 Elements.freeText 		=		[{
									xtype: 'textarea',
									fieldLabel: 'Texte Libre '+Elements.mandatory,
									name: 'freeText',
									width: 350,
									allowBlank:false
								}];	
								
								
Elements.buttonBar		= 	new Ext.Panel({
					            	xtype:'panel',
							    	autoHeight:true,
									autoWidth:true,
									buttons: [new Ext.Button(cancelFormAction),
												new Ext.Button(submitFormAction)]
					        });
					        
Elements.confirmButtonBar		= 	new Ext.Panel({
					            	xtype:'panel',
							    	autoHeight:true,
									autoWidth:true,
									buttons: [new Ext.Button(modifyFormAction),
												new Ext.Button(submitFormConfirmAction)]
					        });					        	

				        	
/**
 * Evaluation 1, Req:  2.2
 * Select manager status
 */
 
Elements.kindOfManagerStore = new Ext.data.SimpleStore({
												url : Elements.comboSource,
												fields: Elements.comboFields,
												baseParams : {dbProperty : 'MANAGER_TYPE'}
											}); 
 
Elements.physicalPersonAds05 	=  [new Ext.form.FieldSet({
					        		labelWidth: 240,
						            title: 'Parameter 2',
						            autoHeight:true,
									autoWidth:true,
									collapsible: false,
						            defaultType: 'textfield',
						            items :[{
												xtype: 'combo',
												fieldLabel: 'Type de gérant '+Elements.mandatory,
												hiddenName:'ad_manager_type',
												store: Elements.kindOfManagerStore,
												valueField:'id',
												displayField:'value',
												typeAhead: true,
												mode: 'local',
												editable: false,
												allowBlank: false, 
												triggerAction: 'all',
												emptyText:'Selectionnez le type de gérant',
												selectOnFocus:true,
												width: 350,
								                hiddenId :'ad_manager_type'
											},{
						            		xtype: 'combo',
											fieldLabel: 'Civilité '+Elements.mandatory,
											hiddenName:'ad_civility',
											store: Elements.civilityStore,
											valueField:'id',
											displayField:'value',
											typeAhead: true,
											mode: 'local',
											editable: false,
											triggerAction: 'all',
											emptyText:'Sélectionnez civilité',
											selectOnFocus:true,
											width: 350,
							                allowBlank:false
										},
							            {
						       		       fieldLabel: 'Nom '+Elements.mandatory,
							                name: 'ad_last_name',
							                allowBlank:false,
							                width: 350
							            },{
						       		       fieldLabel: 'Prénom '+Elements.mandatory,
							                name: 'ad_first_name',
							                allowBlank:false,
							                width: 350
							            }
							        ].concat(Elements.clone(Elements.addressLocality))
						    })];
 Elements.kindOfManagerStore.load({add : true});
 
 Elements.newPhysicalPersonAds05			= function (param1,namePostFix){
 		var physicalPerson1 =  Elements.clone(Elements.physicalPersonAds05);
 		
 		physicalPerson1 = physicalPerson1.concat([{xtype: 'hidden',
 								name: '1_'+namePostFix,
 								value: 'on'}]);
 		
	 physicalPerson1[0].title	= param1;
	 
	 ///
	 physicalPerson1[0].items.items[0].name = "ad_manager_type";
	 physicalPerson1[0].items.items[1].name = "ad_civility";
	 physicalPerson1[0].items.items[2].name = "ad_last_name";
	 physicalPerson1[0].items.items[3].name = "ad_first_name";
	 physicalPerson1[0].items.items[4].name = "ad_address";
	 physicalPerson1[0].items.items[5].items.items[0].items.items[0].items.items[0].name = "ad_postal_code";
	 physicalPerson1[0].items.items[5].items.items[0].items.items[1].items.items[0].name = "ad_locality";
	 
	 Elements.appendNamePostFix(physicalPerson1[0],namePostFix);
	 return physicalPerson1;
 }							

	
 /**
  * 2.1.13.2	Change leadership
  *		 
  */							         
  Elements.changeLeadershipAds17	=   new Ext.form.FieldSet({
											 labelWidth: 240,
										     xtype:'fieldset',
										     title: 'Nomination dirigeant avec remplacement',
										     autoHeight:true,
											 autoWidth:true,
											 collapsible: false,
											 checkboxToggle:true,
											 checkboxName: 'lastLeadershipAds17',
										     defaultType: 'textfield',
										     items : [ {
			 				       		       fieldLabel: 'Ancien dirigeant  '+Elements.mandatory,
			 					                name: 'lastLeadership',
			 					                allowBlank:false,
			 									width: 350
			 					            },{
			 				       		       fieldLabel: 'Motif de départ  '+Elements.mandatory,
			 					                name: 'departureReason',
			 					                allowBlank:false,
			 									width: 350
			 					            }]});
  
  Elements.changeLeadershipTitleAds17	=   [ new Ext.form.ComboBox({
		fieldLabel: 'Titre du dirigeant concerné '+Elements.mandatory,
		hiddenName:'titleLeadership',
		hiddenId:'titleLeadership',
		store: new Ext.data.SimpleStore({
			url : Elements.comboSource,
			fields: Elements.comboFields,
			baseParams : {dbProperty : 'LEADER_TITLE'}
		}),
		valueField:'id',
		displayField:'value',
		typeAhead: true,
		mode: 'local',
		editable: false,
		triggerAction: 'all',
		emptyText:'Sélectionnez le titre',
		selectOnFocus:true,
		width:350,
      allowBlank:false
	})];
  Elements.changeLeadershipTitleAds17[0].store.load({add : false});	
  Elements.MoreInfo    =    [{
		   			 fieldLabel: '',
		   			 labelSeparator: '',
		   			 hideLabel: true,
		   	         xtype:'checkbox',
		   	         width: 400,
		   	         boxLabel: 'Les statuts ont été modifiés en conséquence',
		   	         name: 'moreInformation1',
		   	         hiddenId: 'moreInformation1'
			        }]
