/**
 * Transfer of headquarters
 * 		Transfer of headquarters  form, collect input from user 
 *
 * @package 	forms
 * @author    	Sundar Murthi sundaramurthis@gmail.com
 * @date      	2008-07-25
 * @copyright 	TCM
 * 
 * @version 	2.0
 *
 * @Req ID  	2.2.4.7	(Transfer of headquarters )
 * 
 *	2.2.3.3 Publication department
 *	2.2.3.23 Element for headquarters transfer
 * 	2.2.3.8 Company name
 * 	2.2.3.9 Form and capital parameter(create store with the code $COMPANY_FORM = forme_societe)
 *	2.2.3.12 Full headquarters
 *	2.2.3.24 Decided parameter(create store with the code $DECIDED_BY_01 = decide_par)
 *	2.2.3.25 Transfer date
 *	2.2.3.26 New address
 *	2.2.3.16 Physical person parameter(decide_par) (Display only if Transfer Hors Ressort is selected 
 *			in Element for headquarters transfer and if (Socit  responsabilit limite  or Socit  responsabilit 
 *			limite  capital variable or Socit  responsabilit limite  associ unique) is selected)
 *	2.2.3.7 Social object
 *	2.2.3.13 Duration
 *	2.2.3.20 Article number
 *	2.2.3.21 RCS Register
 * 
 * Eval 02
 *  Req 2.6 dynamic rcs city
 */
var ads05;
function initAds05() {
	 var ads05FormAndCapital = 	Elements.newFormAndCapital('COMPANY_TYPE');
	 var ads05Desided 		 =  Elements.newDecided('DECIDED_BY_ASS_GEN_MIX_GER_PROC_V');
	 if(!ads05){
		 ads05 = new Ext.FormPanel({
		 	 labelWidth: 250,
		     frame:true,
		     title: 'Transfert de siège',
		     bodyStyle:'padding:5px 5px 0',
		     defaultType: 'textfield',
		     itemCls: 'form-label-style',
		     items: Elements.clone(Elements.publication)
		     				.concat(Elements.elementHeadquartersTransfer)
		     				.concat(Elements.companyNameAcronym)
		     				.concat([{xtype: 'hidden',
	 								name: 'dummyforindex'}])
		     				.concat(ads05FormAndCapital)
		     				.concat(Elements.getfullHeadquarters())
		     				.concat(ads05Desided)
		     				.concat(Elements.transferDate)
		     				.concat(Elements.getNewAddress('pm2'))
		     				.concat(Elements.newPhysicalPersonAds05('Le gérant', 'pm1'))
		     				.concat(Elements.socialObject)
		     				.concat(Elements.duration)
		     				.concat(Elements.socialObjectOptional)
		     				.concat(Elements.durationOptional)
		     				.concat(Elements.articleNumber)
		     				.concat(Elements.clone(Elements.rcsRegister))
		});
	}
	var hqTransfer1 = ads05.items.items[1];
	var hqTransfer2 = ads05.items.items[2];
	var siegeSocial = ads05.items.items[7];
	var siegeSocialPostalCode = siegeSocial.items.items[1].items.items[0].items.items[0].items.items[0];
	var nowVelleAddress = ads05.items.items[11];
	var nowVellePostalCode = nowVelleAddress.items.items[1].items.items[0].items.items[0].items.items[0];
	
	ads05.updateFields	= function(obj, record, index){
        var regexp = /^.*sv[i|p]?$/;
        var match = ads05.items.items[5].getValue() != null ? regexp.exec(ads05.items.items[5].getValue()) : false;
        try{
	        if(hqTransfer1.checked){
	        	//hide object and duration
	        	ads05.items.items[15].hide();
	        	ads05.items.items[16].hide();
	        	ads05.items.items[17].hide();
	        	ads05.items.items[18].hide();
	        	try{
	        		ads05.items.items[15].getEl().up('.x-form-item').setDisplayed(false);
	        		ads05.items.items[16].getEl().up('.x-form-item').setDisplayed(false);
	        		ads05.items.items[17].getEl().up('.x-form-item').setDisplayed(false);
	        		ads05.items.items[18].getEl().up('.x-form-item').setDisplayed(false);
	        	}catch(e){}
	        	ads05.items.items[15].disable();
	        	ads05.items.items[16].disable();
	        	ads05.items.items[17].disable();
	        	ads05.items.items[18].disable();
				
	            //hide manager block
        		Elements.disableChild(ads05.items.items[13]);
	        	ads05.items.items[13].hide();
        		ads05.items.items[14].value="off";
        		if(ads05.items.items[14].setValue){
					ads05.items.items[14].setValue("off");
	        	}
	        	
	        	//recover postal code
	        	var postalCode = siegeSocialPostalCode.getValue();
				if(postalCode && postalCode.length > 1){
    				ads05.updateRcs(postalCode.substring(0,2));
    			}else{
    				ads05.updateRcs('00');
    			}
	        }else{
	        	if(!match) {
		        	ads05.items.items[15].hide();
		        	ads05.items.items[16].hide();
		        	ads05.items.items[17].hide();
		        	ads05.items.items[18].hide();
		        	try{
		        		ads05.items.items[15].getEl().up('.x-form-item').setDisplayed(false);
		        		ads05.items.items[16].getEl().up('.x-form-item').setDisplayed(false);
		        		ads05.items.items[17].getEl().up('.x-form-item').setDisplayed(false);
		        		ads05.items.items[18].getEl().up('.x-form-item').setDisplayed(false);
		        	}catch(e){}
		        	ads05.items.items[15].disable();
		        	ads05.items.items[16].disable();
		        	ads05.items.items[17].disable();
		        	ads05.items.items[18].disable();
		        	
					Elements.enableChild(ads05.items.items[13]);
					ads05.items.items[13].show();
					ads05.items.items[14].value="on";
					if(ads05.items.items[14].setValue){
						ads05.items.items[14].setValue("on");
					}
	        	} else {
	        		Elements.disableChild(ads05.items.items[13]);
	        		ads05.items.items[13].hide();
	        		ads05.items.items[14].value="off";
	        		if(ads05.items.items[14].setValue){
						ads05.items.items[14].setValue("off");
		        	}
		        	ads05.items.items[17].hide();
		        	ads05.items.items[18].hide();
		        	try{
		        		ads05.items.items[17].getEl().up('.x-form-item').setDisplayed(false);
		        		ads05.items.items[18].getEl().up('.x-form-item').setDisplayed(false);
		        	}catch(e){}
		        	ads05.items.items[17].disable();
		        	ads05.items.items[18].disable();
		        	
	        		ads05.items.items[15].enable();
					ads05.items.items[16].enable();
					ads05.items.items[15].show();
					ads05.items.items[16].show();
					
					try{
						ads05.items.items[15].getEl().up('.x-form-item').setDisplayed(true);
						ads05.items.items[16].getEl().up('.x-form-item').setDisplayed(true);
					}catch(e){}
	        	}
	        	//siegeSocialPostalCode.setReadOnly(true);
	        	var nowVellePostalCode_ads05 = nowVellePostalCode.getValue();
	        	if(nowVellePostalCode_ads05 && nowVellePostalCode_ads05.length > 1){
    				ads05.updateRcs(nowVellePostalCode_ads05.substring(0,2));
    				//siegeSocialPostalCode.setValue(siegeSocialPostalCode.getValue());
    			}else{
    				ads05.updateRcs('00');
    			}
	        }
        }catch(e){/*Ignore on load error*/}
    };
	
	ads05.items.items[15].on('render',function(obj){
					try{
						obj.hide();
						this.getEl().up('.x-form-item').setDisplayed(false);
					}catch(e){}
				});
	ads05.items.items[16].on('render',function(obj){
					try{
						obj.hide();
						this.getEl().up('.x-form-item').setDisplayed(false);
					}catch(e){}
				});
	
	ads05.items.items[17].on('render',function(obj){
					try{
						obj.hide();
						this.getEl().up('.x-form-item').setDisplayed(false);
					}catch(e){}
				});
	ads05.items.items[18].on('render',function(obj){
					try{
						obj.hide();
						this.getEl().up('.x-form-item').setDisplayed(false);
					}catch(e){}
				});
	

	window.setTimeout(function() {
		ads05.items.items[5].on('select',ads05.updateFields);
	    //ads05.items.items[2].on('check',ads05.updateFields);
	    hqTransfer1.on('check',ads05.updateFields);
	    //hqTransfer2.on('check',ads05.updateFields);
	}, 100);
    
    //Eval 02 Req 2.6    
    //nowVelleAddress postal code on blur
    nowVellePostalCode.on('blur',function(obj){
    	if(!hqTransfer1.checked){
    		//siegeSocialPostalCode.setValue(siegeSocialPostalCode.getValue());
	    	ads05.updateRcs(obj.getValue().substring(0,2));
	    }else{
	    	var val = siegeSocialPostalCode.getValue();
	    	if(val && val.length > 1){
    			ads05.updateRcs(val.substring(0,2));
    		}
    	}	
    });
    
    siegeSocialPostalCode.on('blur',function(obj){
    	if(!ads05.items.items[2].checked){
	    	ads05.updateRcs(obj.getValue().substring(0,2));
	    }else{
	    	var val = nowVellePostalCode.getValue();
	    	if(val && val.length > 1){
    			ads05.updateRcs(val.substring(0,2));
    		}
    	}	
    });
    
    ads05.updateRcs = function(departmentNumber){
    	var val = ads05.items.items[20].getValue();
    	var registerComboBox = 0;
    	ads05.items.items[20].store.baseParams = {dbProperty : 'RCS_CITY_'+departmentNumber};
    	ads05.items.items[20].store.load({add : false});
    	ads05.items.items[20].clearValue();
    	ads05.items.items[20].store.on('load', function(obj){
    		if(val 
    				&& ads05.items.items[20].store.find('id', val) != -1
    				&& registerComboBox == 0){
    			registerComboBox = 1;
        		ads05.items.items[20].setValue(val);
        	}
    	});
    }
}

function getViewOnlyAds05(values,pm1){
	if(pm1 == 2){
		ads05.items.items[13].title = '';
	}
	
	var viewObject 	= Elements.viewClone([ads05])[0];	
	Elements.populateValues(values, viewObject);
	return viewObject;
}