/*	
	2008.03.31, AA - Creation
	extObjects.js, extJs için initialize fonksiyonlarini barindirir.
*/

var featureInfoGrid = null;
var layerGrid		= null;

var operationsTabPanel 	  = null;   // sag tarafta, ölçüm, sorgu vs. işlemlerin bulunduğu tab. 
var dataTabPanel		  = null;	// GetFeatureInfo sonucunda dönen veriyi display eder. 

var dataStoreLayer        = null;  	// tüm tabaka listesi 
var dataStoreLayerColumns = null;   // son seçilen tabakanın kolonları... her kolon için "colName","displayName", "colType" alanlarını tutar. 
var dataStoreColumnValues = null;   // son seçilen kolonun değerleri... 

var comboLayer 	      	  = null;   
var comboLayerColumns 	  = null;
var comboColumnValues	  = null;
var operationsTabPanel    = null;
var layerCount      	  = 0;

// binary dataların jpeglerin... gösterildiği modal form. Sayfada sadece bir tane bulunur. 
var modalWindow			  = null; 
		

// tabakalara ait "name","title","queryable","opaque","crs","minX","minY","maxX","maxY" bilgilerini tutan dizi.
// getCapabilities'de alınır, sayfa ölene kadar tabaka listesine ihtiyaç duyulduğunda kullanılabilir.  
var layerArray 		= Array();  


  
// Comboboxlar falan doluyor.  
function ExtInitComponents(){
	/* AA, 21.01.2008, anlamadığım bir şekilde burada layerArray'i göstermiyor combobox. Ben de bu çıkış yolunu yazmak zorunda kaldım.
	normal şartlar altında temp değişkenine gerek kalmadan olay bitmeli.  */
	var temp = Array();
	for (i=0; i<layerArray.length; i=i+1){
		temp[i] = [ layerArray[i]["name"], layerArray[i]["title"], layerArray[i]["queryable"], layerArray[i]["opaque"], layerArray[i]["crs"], 
			        layerArray[i]["minX"], layerArray[i]["minY"], layerArray[i]["maxX"], layerArray[i]["maxY"] ];
	}

	dataStoreLayer = new Ext.data.SimpleStore({
    					fields : ["name","title","queryable","opaque","crs","minX","minY","maxX","maxY"],
    					data   : temp
					 });	
   		 
    /*comboLayer = new Ext.form.ComboBox({
         store         : dataStoreLayer,
         typeAhead	   : true,
         displayField  : 'title',
         valueField	   : 'name',
         mode		   : 'local',
         triggerAction : 'all',
         emptyText     : 'Tabaka seçiniz...',
         border 	   : true,	
         selectOnFocus : true,
         editable	   : false,	
         applyTo	   : 'combo-layer'
    });					        
    
    comboLayer.on( 'select', getMetadataEvent );
    
    comboLayerColumns = new Ext.form.ComboBox({
         store         : dataStoreLayerColumns,
         typeAhead	   : true,
         displayField  : 'displayName',
         valueField	   : 'colName',
         mode		   : 'local',
         triggerAction : 'all',
         emptyText     : 'Kolon seçiniz...',
         border 	   : true,	
         selectOnFocus : true,
         editable	   : false,
         applyTo	   : 'combo-layerColumns'
    });
    
	comboLayerColumns.setVisible(false);    
    comboLayerColumns.on( 'select', getColumnValuesEvent );
    
    comboColumnValues = new Ext.form.ComboBox({
         typeAhead	   : true,
         mode		   : 'local',
         triggerAction : 'all',
         emptyText     : 'Değer seçiniz...',
         border 	   : true,	
         selectOnFocus : true,
         editable	   : false,
         applyTo	   : 'combo-ColumnValues'
    });      
    
    comboColumnValues.setVisible(false);
    comboColumnValues.on( 'select', getFeatureInfoByColumnValueEvent );
    */
}


function ExtInitLayout(){
		
    Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
	  	        
    operationsTabPanel = new Ext.TabPanel({
                    		border:false,
                    		activeTab:0,                       		                             
                    		items:[{ no: 0,
                    				 contentEl: 'coords-panel',
                            	 	 title: 'Görünüm',
                             	 	 autoScroll:true
                           		   },
                           		   { no: 1, 
                            	 	 contentEl: 'measure-panel',
                             	 	 title: 'Ölçüm',
                               	 	 autoScroll: true
                            	   },
                            	   { no: 2,
                             	 	 contentEl: 'metadata-panel',
                             	 	 title: 'Sorgu',
                             	 	 autoScroll: true
                            	   }/*, öylesine bir grid koymak istersek günün birinde...
									new Ext.grid.PropertyGrid({
                             		 title: 'Property Grid',                              		 
                              		 source: {
                                   		"(name)": "Properties Grid",
                                   		"grouping": false,
                                   		"autoFitColumns": true,
                                   		"productionQuality": false,
                                   		"created": new Date(Date.parse('10/15/2006')),
                                   		"tested": false,
                                   		"version": .01,
                                   		"borderWidth": 1
                                 	}
                         		});*/
                         	]
                        });
                         		
	dataTabPanel = new Ext.TabPanel({ border : false });     
	            
	dataTabPanel.on('beforetabchange', function( TP, newTab, currentTab){ dataGridChange( TP, newTab, currentTab); } );
	dataTabPanel.on('tabchange', function( TP, newTab){ vikvik( TP, newTab); } );
	                                   		
    mapPanel	 = new Ext.TabPanel({
                   		region:'center',                   		
                    	deferredRender:false,
                    	activeTab:0,
                    	items:[{
                        	contentEl:'Map-panel',
                        	title: 'Kent Rehberi',
                        	autoScroll:false
                    	}]
                   });
    northpanel	 = new Ext.TabPanel({
                   		region:'north',                   		
                    	deferredRender:false,   
                    	activeTab:0,                 	
                    	items:[{
                        	contentEl:'north_panel',
                        	title: '',
                        	autoScroll:false
                    	}]
                   });
    
   // mapPanel.on( 'bodyresize', function(P, width, height) { resizeMap(width, height); } );
    
    var viewport = new Ext.Viewport({
        layout:'border',
        items:[new Ext.BoxComponent({ // raw
                    region:'north',
                    el: 'north_panel',
                    height:32
                }),
        		{
                region:'south',
                //contentEl: 'GetFeatureInfo_Area',
                title:'Öznitelik Bilgileri',
                split:true,
                height: 150,
                minSize: 100,
                maxSize: 200,
				layout : 'fit',   
				collapsible: true,                                   
                margins:'0 0 0 0',
                items: dataTabPanel                    
               },{
                region:'east',
                title:'Bilgi',
                split:true,                    
                width: 225,
                minSize: 175,
                maxSize: 400,
                margins:'0 5 0 0',
                collapsible: true,
            	layout : 'fit',
                //layout:'accordion',                          
                layoutConfig:{animate:true},
                items: operationsTabPanel                
               }, {
                region:'west',
                id:'layer-panel',                
                title:'Tabakalar',
                contentEl: 'getMap_Layers',
                split:true,
                width: 200,
                minSize: 175,
                maxSize: 400,
                margins:'0 0 0 5',
                layout:'fit',     
                collapsible: true,
                layoutConfig:{animate:true},
                items :layerGrid
                /* sol tarafta aşağı yukarı şekilli bir sekme vardı - ama sonra stabil olarak tabakaların kalması daha kullanışlı. 
                ,
                items: [{
                          contentEl: 'getMap_Layers',
                          title:'Tabakalar / Görünüm',
                          border:false,
                          iconCls:'nav'
                        },{
                    	  contentEl: 'metadata-panel',
                          title:'Tabakalar / Bilgi -- Silinebilir',                          
                          border:false,
                          iconCls:'settings'
                        }]*/ 
               },
                mapPanel
          ]
    });     
}

