Ext.onReady(function() {

	GUI.saveFeatures = function() {
		
		var features = GUI.getSelectedFeaturesWKT();
		if (features == '' || features == null) {
			Ext.Msg.alert('Ei ole','Ei ole ühtegi ala veel valitud');
		} else {
			Ext.Ajax.request({
				url: '/geoweb/gui/savefeatures/',
				params: {'purpose':'getcombo'},
				success: function(result, request){
					var json = Ext.util.JSON.decode(result.responseText);
					if (json.success) {
						var store = new Ext.data.JsonStore({
							fields: ['id', 'name'],
							data : json.elements
						});
						
						var combo = new Ext.form.ComboBox({
							store: store,
							displayField:'name',
							valueField: 'id',
							typeAhead: true,
							mode: 'local',
							id: 'ot_combo',
							forceSelection: true,
							triggerAction: 'all',
							emptyText:'Valige element...',
							selectOnFocus:true
						});
						
						var window = new Ext.Window({
							title: 'Salvestamine',
							border: false,
							autoHeight: true,
							layout: 'fit',
							width: 300,
							//height: 200,
							items: [combo,{
								xtype: 'button',
								text: 'Salvesta',
								handler: function() {
									var features = GUI.getSelectedFeaturesWKT();
									if (features == '' || features == null) {
										Ext.Msg.alert('Elemendi salvestamine','Palun joonistage ja valige salvestatav element.');
									} else {  
										var objecttype = Ext.getCmp('ot_combo').getValue();
										if (objecttype == '') {
											Ext.Msg.alert('Objekti salvestamine','Palun valige elemendi klass.');
										} else {
											Ext.Ajax.request({
												url: '/geoweb/gui/savefeatures/',
												params: { 'features':features, 'objecttype': objecttype },
												
												success: function(result, request) {
													var json = Ext.util.JSON.decode(result.responseText);
													
													if (json.success) {
														//Ext.Msg.alert('jei','kÃµik lÃ¤ks Ãµnneks');
														var layer = map.getLayersByName('editlayer')[0];
														var selectedFeatures = layer.selectedFeatures.slice();
														var selectFeature = new OpenLayers.Control.SelectFeature(layer); 
														selectFeature.unselectAll(); 
														layer.destroyFeatures(selectedFeatures);
														GUI.showElementInfo(json.element_id);
														layer = map.getLayer(json.layer_id);
														layer.redraw(true);
													} else {
														switch (json.reason) {
															case 'wrong_geometry': 
																Ext.Msg.alert('title','Salvestada saab ainult punkte, jooni vÃ¶i polÃ¼gone.');
																break;
															case 'no_area_permission': 
																Ext.Msg.alert('title','Osa objekte asub vÃ¤ljaspool lubatud alasid.');
																break;
															case 'not_same_types': 
																Ext.Msg.alert('title','KÃµik salvestatavad kujundid peavad olema Ã¼hte liiki.');
																break;
															case 'no_object_type': 
																Ext.Msg.alert('title','Tuleb ikka korrektne elemendiklass valida (ilma hÃ¤kkimata seda ei nÃ¤e vist).');
																break;
															case 'no_object_type_perm': 
																Ext.Msg.alert('title','Ei ole Ãµigust salvestada sellist elementi.');
																break;
															default:
																Ext.Msg.alert('title','Ilmnes tundmatu viga.');
																break;    
														}     
													}   
												},
												failure: function(result, request) {
												   Ext.Msg.alert('Viga','Salvestamisel tekkis viga.'); 
												}
											});
										}
									}
								}
							}]
						});
						window.show();
					} else {
						switch (json.reason) {
							case 'no_elements': 
								Ext.Msg.alert('title','Ei ole Ã¼hegi elemendi lisamisÃµigust.');
								break;
							default:
								Ext.Msg.alert('title','Ilmnes tundmatu viga.');
								break;    
						} 
					}
				},
				failure: function(result, request){
					Ext.Msg.alert('ser','jama'); 
				}
			});
		}
	}
	
	toolbar2.add('-');

	var sf_button = new Ext.Toolbar.Button({
		handler: GUI.saveFeatures,
		iconCls: 'save_btn',
		minWidth: 16,
		tooltip: 'Salvesta valitud objektid'
	});

	toolbar2.add(sf_button);
	
});
