Ext.namespace('leads_viewport');

leads_viewport = function(){
	leads_viewport.superclass.constructor.call(this, {
	});
};

Ext.extend(leads_viewport, Ext.TabPanel, {
	initEvents : function(){
		leads_viewport.superclass.initEvents.call(this);
	},
	loadLead: function(){
		
		
		
		leadNavData = {
		 	"id":"leadNavData"
			,"iconCls":"icon-docs"
			,"text": _lang.my_lead_nav
			,"singleClickExpand":true
			,"children":[
				{
					 "id":"orderHist"
					,"text": _lang.my_leads
					,"leaf":true
					,listeners:{
						'click' : function(){
							lead_list_grid_store.reload();
						}
					}
				},{
					 "id":"newOrder"
					,"text": _lang.customer_go
					,"leaf":true
					,listeners:{
						'click' : function(){
							genNewLeadWin();
							_newLeadWin.show();
						}
					}
				}
			]		
		};
		
		var leadNavPanel = new Ext.tree.TreePanel({
			id:'leadNavPanel',
	        split:true,
	        region:'center',
	        layout:'fit',
	        frame:false,
	        rootVisible:false,
	        autoScroll:true,
	        loader: new Ext.tree.TreeLoader({
				preloadChildren: true,
				clearOnLoad: false
			}),
	        root: new Ext.tree.AsyncTreeNode({
	            text: _lang.my_lead_nav,
	            id:'root',
	            expanded:true,
	            children:[leadNavData]
	         }),
	        collapseFirst:true,
	        listeners: {afterlayout: { fn: function(){
						this.expandAll();
					}
				}
			}
	        
		});
		
		
		function delete_lead(btn) {
			if(btn=='yes')
			{
				var selectedRows = lead_list_grid.selModel.selections.items;
				var selectedKeys = lead_list_grid.selModel.selections.keys;
				var selectedVals = lead_list_grid.selModel.selections.values;
				var encoded_keys = Ext.encode(selectedKeys);
				Ext.Ajax.request({
					url:  ServerUrl + '' + modul_leads + '/updater.php',
					params: { 
						todo: "delete", //pass task to do to the server script
						lead_id: encoded_keys//the unique id(s)
					},
					success:function(response,options){
						lead_list_grid_store.reload();
						Ext.example.msg(_lang.success,_lang.success);
					}
				});
			}
		
		}
		
		function isAdminShowAllUser(){
			//alert(_loggedInRight_id);
			if(_loggedInRight_id == 1 || _loggedInRight_id == 21 || _loggedInRight_id == 22){
				
				/*sys_user_store.on('beforeload', function(){
					sys_user_store.baseParams = {
						'sort': 'last_name',
						'dir': 'ASC',
						search_string: '',
						user_id: _loggedInuserId,
						role_id: _loggedInRight_id,
						prog_lang: params.lang,
						todo: 'getAllUsers'
					};
				});*/
				
				var c_Field = new Ext.form.ComboBox({
					hideLabel: true,
					name: 'select_sys_user',
					id:'select_sys_user',
					store: sys_user_store,
				    displayField:'name',
				    valueField:'user_id',
				    editable:true,
				    typeAhead: false,
				    loadingText: '...',
				    mode: 'remote',
					triggerAction: 'all',
					resizable:true,
					minChars:1,
					style:'height:20px;',
					width: 350,
					height: 100,
					maxHeight:100,
					emptyText:'System-Benutzer',
					selectOnFocus:true,
					forceSelection:true,
					allowBlank:true,
					listeners: {
						select: {
							fn: function(record){
								//alert(Ext.getCmp('select_sys_user').getRawValue());
								lead_list_grid_store.on('beforeload', function() {
								     lead_list_grid_store.baseParams = {
								          'sort':'last_name'
								          ,'dir':'ASC'
								          ,search_string:''
								          ,user_id:Ext.getCmp('select_sys_user').getValue() 
								          ,role_id:_loggedInRight_id
								          ,prog_lang: params.lang
								          ,todo:'getAllLeads'
									};
								});
								lead_list_grid_store.reload();
								//alert(Ext.getCmp('select_sys_user').getValue());
							}
						}
					}
					
				});
				return c_Field;
			}else{
				return '';
			}
		}
		
		var lead_list_grid = new Ext.grid.GridPanel({
	        store: lead_list_grid_store,
			autoScroll:true,
			disabled:false,
			loadMask: true,
			frame:false,
			bodyStyle:'border:1px solid #D0D0D0;',
			disableSelection:false,
	        columns: [
	        	{
	            	id:'id_leadtype',
	            	header: 'Typ',
		        	menuDisabled:false,
		        	sortable:true,
		        	hide:true,
	            	dataIndex: 'id_leadtype',
	            	width:40,
	            	renderer: function(v, params, record){
	                    if(record.data.id_leadtype == 0){
	            			//return '<div style="background-image:url(/bin/images/none.png);width:16px;height:16px;" title="Kein Typ"></div>';
	                    	return '<div style="background-image:url(/bin/images/user_green.png);width:16px;height:16px;" title="Kunde"></div>';
	            		}
	            		if(record.data.id_leadtype == 1){
	            			return '<div style="background-image:url(/bin/images/user_green.png);width:16px;height:16px;" title="Kunde"></div>';
	            			
	            		}
						if(record.data.id_leadtype == 2){
							//return '<div style="background-image:url(/bin/images/error.png);width:16px;height:16px;" title="Reserviert"></div>';
	            			return '<div style="background-image:url(/bin/images/user_green.png);width:16px;height:16px;" title="Kunde"></div>';
	            		}
	                }
	            },
	            {
	            	id:'lead_id',
	            	header: _lang.lead_nr, 
		        	menuDisabled:false,
		        	sortable:true,
	            	dataIndex: 'lead_id',
	            	hidden:true,
	            	hide:true,
	            	width:60
	            },
	            {
	            	id:'lead_salutation',
	            	header: _lang.lead_sal, 
		        	menuDisabled:false,
		        	sortable:true,
	            	dataIndex: 'lead_salutation',
	            	hidden:true,
	            	hide:true,
	            	width:60
	            },
	            {
	            	id:'first_name',
	            	header: _lang.lead_first_name, 
		        	menuDisabled:false,
		        	sortable:true,
	            	hidden:true,
	            	hide:true,
	            	dataIndex: 'first_name'
	            },
	            {
	            	id:'last_name',
	            	header: _lang.lead_last_name, 
		        	menuDisabled:false,
		        	sortable:true,
	            	hidden:true,
	            	hide:true,
	            	dataIndex: 'last_name'
	            },
	            {
	            	id:'customer',
	            	header: _lang.lead_customer, 
		        	menuDisabled:true,
		        	sortable:false,
	            	dataIndex: 'customer'
	            },
	            {
	            	id:'street',
	            	header: _lang.lead_street, 
		        	menuDisabled:false,
		        	sortable:true,
	            	dataIndex: 'street'
	            },
	            {
	            	id:'street_no',
	            	header: _lang.lead_nr, 
		        	menuDisabled:false,
		        	sortable:true,
	            	dataIndex: 'street_no',
	            	width:60
	            },
	            {
	            	id:'zip',
	            	header: _lang.lead_zip, 
		        	menuDisabled:false,
		        	sortable:true,
	            	dataIndex: 'zip',
	            	width:60
	            },
	            {
	            	id:'city',
	            	header: _lang.lead_city, 
		        	menuDisabled:false,
		        	sortable:true,
	            	dataIndex: 'city'
	            },
	            {
	            	id:'country',
	            	header: _lang.lead_land, 
		        	menuDisabled:false,
		        	sortable:true,
	            	dataIndex: 'country'
	            }
//	            ,{
//	            	id:'active',
//	            	header: 'Aktiv', 
//		        	menuDisabled:false,
//		        	sortable:true,
//	            	dataIndex: 'active',
//	            	width:40
//	            }
	        ],
	        stripeRows: true,
	        viewConfig: {
            	forceFit:true
				//,emptyText: 'Bitte wählen Sie eine Benutzergruppe. <br>Ihre Suche hat keine Ergebnisse geliefert. Bitte verallgemeinern Sie Ihre Suche.'
	        },
	        height:'300',
	        layout: 'fit',
	        tbar: [
	            _lang.fast_search + ': ',  
	            new Ext.app.SearchField_for_Lead_search({
	                store: lead_list_grid_store,
	                id:'search_string_lead',
	                paramName:'search_string_lead',
	                emptyText: _lang.lead_some_data,
	                width:240,
	                listeners: {
	                	'blur': function(){
	                		Ext.getCmp('search_string_lead').emptyText = '';
							Ext.getCmp('search_string_lead').applyEmptyText();
	                	}
	                }
	            }),'-',
				isAdminShowAllUser(),
				'-',
	             new Ext.Button({
	           		text: _lang.lead_del_sel
	           		,iconCls:'def'
	           		,icon:'/bin/images/icons/delete.png'
	           		,handler : function(){
                		var selectedKeys = lead_list_grid.selModel.selections.keys; 
						if(selectedKeys.length > 0)
						{
							Ext.MessageBox.confirm(_lang.message,_lang.delete_message, delete_lead);
						}
            		}
	           })
	        ],
	        bbar: new Ext.PagingToolbar({
	            pageSize: 25,
	            id:'lead_list_grid_store_search_res_bbar',
	            store: lead_list_grid_store,
	            displayInfo: true,
	            displayMsg: ' {0} - {1} von {2}',
	            emptyMsg: _lang.no_data,
	            plugins: [new Ext.ux.PageSizePlugin()]
	        })
	    }); 
	    lead_list_grid.on('render', function(sm, rowIdx, r) {
			//alert("asd");
	    	lead_list_grid_store.on('beforeload', function() {
			     lead_list_grid_store.baseParams = {
			          'sort':'last_name'
			          ,'dir':'ASC'
			          ,search_string:''
			          ,user_id:_loggedInuserId 
			          ,role_id:_loggedInRight_id
			          ,prog_lang: params.lang
			          ,todo:'getAllLeads'
				};
			});
			lead_list_grid_store.load();
		});
		lead_list_grid.on('rowdblclick', function(sm, rowIdx, r) {
			var selectionModel = lead_list_grid.getSelectionModel();
			var r = selectionModel.getSelected();
			_actt_lead_id = r.data.lead_id;
			_act_lead_id = r.data.lead_id;
			//alert(_actt_lead_id);
			
			_act_res_start = r.data.res_start;
			_act_res_until = r.data.res_until;
			
			if(r.data.salutation_id == 3){
				_act_comp_pers_id = r.data.pers_id;
			}else{
				_act_comp_pers_id = "";
			}
			_act_pers_id = r.data.pers_id;
			_act_addr_id = r.data.addr_id;
			
			if(r.data.salutation_id == 3){
				_act_company = r.data.last_name;
			}else{
				_act_company = "";
			}
			_act_lead_name = r.data.customer;
			generate_lead_edit_window();
			_lead_edit_window.show();
			_lead_edit_window.doLayout();
		});
		
		
		
		var leadTabPanel = new Ext.TabPanel({
			layoutOnTabChange: true,
	        id:'leadTabPanel',
		    activeTab: 1
			,plain:true
			,activeTab: 0
			,monitorResize:true
			,frame:true
			,bodyStyle:'border:none;'
			,style:'border:none;'
			,deferredRender: true
			,layoutOnTabChange: true
			,ctCls: 'fr-tabpanel'
			,defaults: {
				 autoScroll: true
				,frame:true
		    }
		});
		leadTabPanel.add({
				title: _lang.lead_complete_list
				,id:'lead_list'
				,region:'center'
				,layout:'fit'
				,items:[lead_list_grid]
		});
		
		var leadNav = new Ext.Panel({
			region:'west',
			layout:'fit',
			width:210,
			items:[leadNavPanel],
			frame:true,
			collapsible:true,
			collapseMode: 'mini',
			split: true
		});
		
		var leadMain = new Ext.Panel({
			region:'center',
			layout:'fit',
			items:[leadTabPanel],
			frame:true
		});
		
		var lead_panel = new Ext.Panel({
			monitorResize:true
			,frame:true
			,region:'center'
			,layout:'border'
			,bodyStyle:'border:none;'
			,style:'border:none;'
			,deferredRender: true
			,layoutOnTabChange: true
			,items:[leadNav,leadMain]
		});
		return lead_panel;
	 }
});