Ext.namespace('Cascade.panel.lager');
Cascade.panel.lager.auswahl_klemmsystem = function() 
{
	var form,_gridTable,idx;
	var bBlock = false;
	
	var storeTraegerArt = new Ext.data.SimpleStore({
		id		: 'id',
		fields	: ['id', 'text']
	});
	
	var storeTraegerGroesse = new Ext.data.SimpleStore({
		id		: 'id',
		fields	: ['id', 'text']
	});
	
	var storeTable = new Ext.data.SimpleStore({
		fields : [
			{ name: 'id'		}, 
			{ name: 'typ' 		},
			{ name: 'abhebelast' },
			{ name: 'querlast' },
			{ name: 'klemmspalt' },
			{ name: 'gewicht' },
			{ name: 'preis' }
		] 
	} );
	
	var storeFunction = new Ext.data.SimpleStore({
		id		: 'id',
		fields	: ['id', 'text']
	});
	
	var storeFunction_LFUSS = new Ext.data.SimpleStore({
		id		: 'id',
		fields	: ['id', 'text']
	});
	
	var _deleteTableStore = function(){
		Ext.getCmp('lager.auswahl_klemmsystem_tabelle').getStore().loadData([]);
		if(Ext.getCmp('move-next').hidden == false)
			_setTableSelEvent('-');		
	}
	
	var _onActionComplete = function(strform, action){ //Wenn benötigt erweitern
		Cascade.app.getNextPanel(form,action); //Next Dialog		
	};
	
	var _setRadioEvent = function(oClicked, bChecked){
		if(!bBlock && bChecked){
			_deleteTableStore();
			Ext.Ajax.request( {
				url 	: 'lager.auswahl-klemmsystem/setRadio',
				params  : {
					'radiogroup' : oClicked.name,
					'radiovalue' : oClicked.inputValue
				},
				success : function(response, options) {
					var message	= Ext.util.JSON.decode(response.responseText);
					if(message)
						Cascade.panel.lager.auswahl_rollenlager_setGuiValue(message);
				}
			});	
		}
	}
	
	var _setCheckEvent = function(oCheck,strValue,oRet){
		if(!bBlock){
			_deleteTableStore();
			Ext.Ajax.request( {
				url 	: 'lager.auswahl-klemmsystem/setCheckBox',
				params  : {
					'checkboxid'	: oCheck.id,
					'checkboxvalue' : strValue
				},
				success : function(response, options) {
					var message	= Ext.util.JSON.decode(response.responseText);
					if(message)
						Cascade.panel.lager.auswahl_klemmsystem_setGuiValue('LAGER_KLEMMSYSTEM',message);
				}
			});	
		}
	};
	
	var _setComboBoxEvent = function(combo, record, idx){
		if(!bBlock){
			_deleteTableStore();
			var strComboBoxId 		= combo.id;
			var strSelectionValueId	= combo.getValue();
			Ext.Ajax.request( {
				url 	: 'lager.auswahl-klemmsystem/setComboBox',
				params  : {
					'comboboxid'	: strComboBoxId,
					'comboboxvalue' : strSelectionValueId
				},
				success : function(response, options) {
					var message	= Ext.util.JSON.decode(response.responseText);
					if(message)
						Cascade.panel.lager.auswahl_klemmsystem_setGuiValue('LAGER_KLEMMSYSTEM',message);
				}
			});	
		}
	}
	
	var _setNumberfieldEvent = function(field, newValue, oldValue){
		if(!bBlock){
			_deleteTableStore();
			Ext.Ajax.request( {
				url 	: 'lager.auswahl-klemmsystem/setNumberfield',
				params  : {
					'numberfieldid'		: field.id,
					'numberfieldvalue' 	: newValue
				},
				success : function(response, options) {
					var message	= Ext.util.JSON.decode(response.responseText);
					if(message)
						Cascade.panel.lager.auswahl_klemmsystem_setGuiValue('LAGER_KLEMMSYSTEM',message);
				}
			});	
		}
	};
	
	/**
	 * @private Button event function -search results-
	 */
	var _setButtonEvent = function(){
		if(!bBlock){
			_deleteTableStore();
			Ext.Ajax.request({   
			    url		: 'lager.auswahl-klemmsystem/getButton',
				success	: function( response, options){
					var message	= Ext.util.JSON.decode(response.responseText);
					Cascade.panel.lager.auswahl_klemmsystem_setGuiValue('LAGER_KLEMMSYSTEM',message);
				}
			});	
		}
	}
	
	/**
	 * @private Table selection function
	 * @param [rowId] {String} selection id 
	 */
	var _setTableSelEvent = function(rowIndex,rowId){
		if(!bBlock){
			Ext.Ajax.request({   
			    url		: 'lager.auswahl-klemmsystem/setTableSel',
			    params  : {
					'selection'	: rowIndex,
					'rowId'		: rowId
				},
				success	: function( response, options){
					if(rowId == '-')
						Ext.getCmp('move-next').hide();
					else
						Ext.getCmp('move-next').show();
				}
			});	
		}
	}
	return {
		setBlockEvent : function(bBlockEvent){
			bBlock = bBlockEvent;
		},
		getStore : function(){
			return ({
				'storeTraegerArt'		: storeTraegerArt,
				'storeTraegerGroesse'	: storeTraegerGroesse,
				'storeTable'			: storeTable,
				'storeFunction'			: storeFunction,
				'storeFunction_LFUSS'   : storeFunction_LFUSS
			});			
		},
		getSelectionTable: function(){
			return _gridTable.getSelections();
		},
		setResetName : function(){
			bBlock = true;
			var oAdd = { 
				id		: form.getId(), 
				idx		: idx, 
				title	: form.title 
			};
			Cascade.app.setRemoveEntryFromHistory();
			Cascade.app.setAddEntryToHistory(oAdd);
			bBlock = false;
		},
		init: function(idx){
			this.idx = idx;
			bBlock = true;
			if (!form) {				
				// erzeuge Tabelle für Suchresultate Lager
				_gridTable = new Ext.grid.GridPanel(
				{
					id		: 'lager.auswahl_klemmsystem_tabelle',
					style 	: 'padding-top: 5px',
					store 	: storeTable,
					height	: 250,
					columns	: [{ 	
						// Typ
						header: '$TCH_TYP$', 
						width: 160, 
						sortable: true, 
						dataIndex: 'typ'
					},{
						// Abhebelast
						header: '$TCH_ABHEBELAST$', 
						width: 120, 
						sortable: true,
						dataIndex: 'abhebelast' 
					},{ 
						// Querlast
						header: '$TCH_QUERLAST$', 
						width: 120, 
						sortable: true,
						dataIndex: 'querlast' 
					},{
						// Abhebelast
						header: '$TCH_KLEMMSPALT$', 
						width: 120, 
						sortable: true,
						dataIndex: 'klemmspalt' 
					},{ 
						// Gewicht
						header: '$TCH_GEWICHT$', 
						width: 65, 
						sortable: true,
						dataIndex: 'gewicht' 
					},{ 
						// Preis
						header: 'W_V_S_V', 
						width: 85, 
						sortable: true,
						dataIndex: 'preis' 
					}],
					sm: new Ext.grid.RowSelectionModel( { singleSelect: true} ),
					width			: 710,
					//autoWidth: true,
					height			: 120,					
					frame			: false,
					border			: false,
					title			: '',
					header			: false,
					listeners	: {	
						'headerclick' : function(grid,colIndex,e){
						},
						'cellclick' : function(grid, rowIndex, colIndex, e ) {
							_setTableSelEvent(rowIndex,storeTable.getAt(rowIndex).data.id)
						}
					}					
				});
				
				form = new Ext.FormPanel({
					frame		: true,
					id			: 'lager.auswahl_klemmsystem',
					title		: 'WIRD_VOM_SERVER_VORGEGEBEN',
					bodyStyle	: 'padding-left: 5px',
					listeners: {
						'actioncomplete': _onActionComplete
					},
					items: [{
						layout		:'column',
						border		: false,
						labelStyle	: 'font-size:11px',
						items : [{
							xtype		: 'fieldset',
							title		: '$LAGER_FUNCTION_LABEL$',
							id			: 'LAGER_KLEMMSYSTEM_FUNCTION',
							width		: 230,
							height		: 155,	
							style		: 'margin-left: 5px ; padding: 5px',					
							items		: [{
								layout 		: 'form',
								border 		: false,
								labelWidth	: 110,
								items		: [{
									xtype			: 'combo',
									id				: 'LAGER_KLEMMSYSTEM_FUNCTION_FC',
									fieldLabel		: '$IDC_LAGERART_LABEL$',
									labelSeparator	: '',
									labelAlign		: 'left',
									hiddenName		:'LAGER_KLEMMSYSTEM_FUNCTION_FC_NAME',
									store			: storeFunction,
									listWidth		: 140,
									listeners		: {
										'select': _setComboBoxEvent
									},
									valueField		: 'id',
									displayField	: 'text',
									typeAhead		: true,
									mode			: 'local',
									triggerAction	: 'all',
									selectOnFocus	: true,
									width			: 80,
									editable		: false
								},{
									xtype		: 'fieldset',
									title		: '$IDC_ZUSATZFUNKTIONEN_LABEL$',
									width		: 210,
									id			: 'LAGER_KLEMMSYSTEM_FUNCTION_ZUSATZFUNKTIONS',
									height		: 105,	
									style		: 'margin-left: 5px ; padding: 5px',					
									items		: [{
										layout 		: 'form',
										border 		: false,
										labelWidth	: 95,
										defaults	: {
											xtype 		: 'checkbox',
											hideLabel	: true,
											listeners	: {
						                        'check': _setCheckEvent
                    						}		
										},
										items		: [{
											boxLabel: '$IDC_ABHEBESICHERUNG_LABEL$',
											id		: 'LAGER_KLEMMSYSTEM_FUNCTION_FC_AB'
										},{
											boxLabel: '$IDC_ABHEBESICHERUNG_4X_LABEL$',
											id		: 'LAGER_KLEMMSYSTEM_FUNCTION_FC_AB4'
										},{
											boxLabel: '$IDC_GLEITUNTERLAGE_LABEL$',
											id		: 'LAGER_KLEMMSYSTEM_FUNCTION_FC_GLT'
										}]
									},{
										layout 		: 'column',
										border 		: false,
										labelWidth	: 95,
										height		: 100,
										width		: 350,
										id			: 'LAGER_KLEMMSYSTEM_FUNCTION_FC_LFUSS_FORM',
										items		: [
										{
											layout 		: 'form',
											border 		: false,
											labelWidth	: 95,
											columnWidth	: .75,
											items		: [{
												xtype			: 'combo',
												id				: 'LAGER_KLEMMSYSTEM_FUNCTION_FC_LFUSS',
												fieldLabel		: '$IDC_LAGERFUSSBREITE_LABEL$',
												labelSeparator	: '',
												labelAlign		: 'left',
												hiddenName		:'LAGER_KLEMMSYSTEM_FUNCTION_FC_LFUSS_NAME',
												store			: storeFunction_LFUSS,
												listWidth		: 140,
												listeners		: {
													'select': _setComboBoxEvent
												},
												valueField		: 'id',
												displayField	: 'text',
												typeAhead		: true,
												mode			: 'local',
												triggerAction	: 'all',
												selectOnFocus	: true,
												width			: 80,
												editable		: false
											}]
										},{ // TestField + Event - Standard hidden
											layout 		: 'form',
											border 		: false,
											columnWidth	: .23,
											id			: 'LAGER_KLEMMSYSTEM_SONST_BREITE_FORM',
											items		: [{
												xtype			: 'numberfield',
												hideLabel		: true,
												fieldLabel		: '$IDS_OBERFL_SONST$',
												id				: 'LAGER_KLEMMSYSTEM_SONST_BREITE',
												labelSeparator	: '&nbsp;',
												width			: 70,
												listeners: {
													'change': _setNumberfieldEvent
												}
											}]
										}]
									}]
								}]
							}]
						},{
							 //Lagersystem
							xtype		: 'fieldset',
							title		: '$LAGER_FUNCTION_LABEL$',
							id			: 'LAGER_LAGERSYSTEM_FUNCTION',
							style		: 'padding-left: 5px',
							width		: 250,
							height		: 155,				
							items		: [{
								layout		: 'form',
								style		: 'padding-left: 5px',
								border		: false,
								items		: [{
									xtype		: 'fieldset',
									title		: '$IDC_ABHEBESICHERUNG_LABEL$',
									autoWidth	: true,
									autoHeight	: true,								
									items		: [{	
										layout		: 'form',
										hideLabels	: true,
										defaultType	: 'radio',
										items		: [{
											id			: 'LAGER_KLEMMSYSTEM_FUNCTION_ABHEBESICHERUNG_OHNE',
											inputValue	: 'OHNE',
											boxLabel	: '$ID_OHNE$',
											name		: 'LAGER_LS_ABHEBESICHERUNG',
											listeners	: {
				                                'check': _setRadioEvent
				                            }
										},{
											id			: 'LAGER_KLEMMSYSTEM_FUNCTION_ABHEBESICHERUNG_MIT',
											inputValue	: 'MIT',
											boxLabel	: '$ID_MIT$',
											name		: 'LAGER_LS_ABHEBESICHERUNG',
											listeners	: {
				                                'check': _setRadioEvent
				                            }
										}]
									}]
								}]							
							}]
						},{
							xtype		: 'fieldset',
							title		: '$LAGER_TRAEGER_LABEL$',
							id			: 'LAGER_KLEMMSYSTEM_TRAEGER',
							width		: 230,
							height		: 155,	
							style		: 'margin-left: 5px ; padding: 5px',					
							items		: [{
								layout 		: 'form',
								border 		: false,
								labelWidth	: 95,
								items		: [{
									xtype			: 'combo',
									id				: 'LAGER_KLEMMSYSTEM_TRAEGER_ART',
									fieldLabel		: '$IDC_PROFILART_RH_LABEL$',
									labelSeparator	: '',
									labelAlign		: 'left',
									hiddenName		:'LAGER_TRAEGER_ART_NAME',
									store			: storeTraegerArt,
									listWidth		: 140,
									listeners		: {
										'select': _setComboBoxEvent
									},
									valueField		: 'id',
									displayField	: 'text',
									typeAhead		: true,
									mode			: 'local',
									triggerAction	: 'all',
									selectOnFocus	: true,
									width			: 80,
									editable		: false
								}]
							},{
								layout 		: 'form',
								border 		: false,
								labelWidth	: 95,
								items		: [{
									xtype			: 'combo',
									id				: 'LAGER_KLEMMSYSTEM_TRAEGER_GROESSE',
									fieldLabel		: '$IDC_TRAEGERGROESSE_LABEL$',
									labelSeparator	: '',
									labelAlign		: 'left',
									hiddenName		:'LAGER_TRAEGER_GROESSE_NAME',
									store			: storeTraegerGroesse,
									listWidth		: 140,
									listeners		: {
										'select': _setComboBoxEvent
									},
									valueField		: 'id',
									displayField	: 'text',
									typeAhead		: true,
									mode			: 'local',
									triggerAction	: 'all',
									selectOnFocus	: true,
									width			: 80,
									editable		: false
								}]
							},{
								layout 	: 'table',
								border	: false,
								width	: 220,
								items	: [{
									layout 		: 'form',
									border 		: false,
									width		: 190,
									labelWidth	: 95,
									items		: [{
										xtype			: 'numberfield',
										fieldLabel		: '$IDC_TRAEGERHOEHE_LABEL$',
										id				: 'LAGER_KLEMMSYSTEM_TRAEGER_HOEHE',
										labelSeparator	: '&nbsp;',
										width			: 80,
										listeners: {
											'change': _setNumberfieldEvent
										}
									}]
								},{
									xtype		: 'textfield',
									value		: 'mm',
									hideLabels	: true,
									readOnly	: true,
									width		: 30,
									cls			: 'textfield-transparent'
								}]
							},{
								layout 	: 'table',
								border	: false,
								width	: 220,
								items	: [{
									layout 		: 'form',
									border 		: false,
									width		: 190,
									labelWidth	: 95,
									items		: [{
										xtype			: 'numberfield',
										fieldLabel		: '$IDC_TRAEGERBREITE_LABEL$',
										id				: 'LAGER_KLEMMSYSTEM_TRAEGER_BREITE',
										labelSeparator	: '&nbsp;',
										width			: 80,
										listeners: {
											'change': _setNumberfieldEvent
										}
									}]
								},{
									xtype		: 'textfield',
									value		: 'mm',
									hideLabels	: true,
									readOnly	: true,
									width		: 30,
									cls			: 'textfield-transparent'
								}]
							},{
								layout 	: 'table',
								border	: false,
								width	: 220,
								items	: [{
									layout 		: 'form',
									border 		: false,
									width		: 190,
									labelWidth	: 95,
									items		: [{
										xtype			: 'numberfield',
										fieldLabel		: '$FLANSCHDICKE$',
										id				: 'LAGER_KLEMMSYSTEM_TRAEGER_FLANSCHDICKE',
										labelSeparator	: '&nbsp;',
										width			: 80,
										listeners: {
											'change': _setNumberfieldEvent
										}
									}]
								},{
									xtype		: 'textfield',
									value		: 'mm',
									hideLabels	: true,
									readOnly	: true,
									width		: 30,
									cls			: 'textfield-transparent'
								}]
							}]
						}/*,{
							width 		: 220,
							layout		: 'form',
							border  	: false,
							style		: 'padding-left: 10px',
							id			: 'LAGER_KLEMMSYSTEM_PICTURE',
							html		: '<img src="EasyKatImages/NO_PICTURE.jpg" style="cursor:pointer" />'			
						}*/]						
					},{ //ZEILE 2 - BUTTON
						xtype	: 'button',
						minWidth: 130,
						style	: 'margin-top: 10px;',
						text	: '$IDC_SUCHEN_BUT$',
						handler	: function(){
							_setButtonEvent();
						}
					},
					_gridTable
					]
				});
				
				var cp = Ext.getCmp('center-panel');
				cp.insert(idx, form);
				cp.doLayout();
			}
			
			form.getForm().reset();
			bBlock = false;
			
			
			Ext.Ajax.request({   
			    url		: 'lager.auswahl-klemmsystem/getInitalValues',
				success	: function( response, options){
					bBlock = true;
					_deleteTableStore();
					var message	= Ext.util.JSON.decode(response.responseText);
					Cascade.panel.lager.auswahl_klemmsystem_setGuiValue('LAGER_KLEMMSYSTEM',message);
				}
			});	
		}
	}
}();