Index: procesos/media/geocadena/js/formularios.js
===================================================================
--- procesos/media/geocadena/js/formularios.js	(revision 4376b17b529b906a3798b52b731dea3e8b82bb40)
+++ procesos/media/geocadena/js/formularios.js	(revision 9262abf33757dec31c0f7f493a68601fd073b7a0)
@@ -1,2 +1,11 @@
+/**
+ * @file formularios.js
+ * Contiene los formularios de consulta de la aplicación
+ * @author Ing. Roldan D. Vargas G. rvargas@cenditel.gob.ve
+ * @author Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL) nodo Mérida
+ * @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
+ * @date 15-10-2014
+ * @version 1.0.0
+ */
 Ext.QuickTips.init();
 // Habilita mensaje de error al lado del campo a nivel global
@@ -4,5 +13,6 @@
 
 /**
- * @brief Crea los formularios de consulta para filtrar información representada en el mapa sobre las cadenas de producción
+ * @brief Crea los formularios de consulta para filtrar información representada en el mapa sobre las cadenas de
+ * producción
  *
  * @author Ing. Roldan Vargas rvargas@cenditel.gob.ve
@@ -48,5 +58,6 @@
 
 /**
- * @brief Variable que contiene el formulario con las opciones de los indicadores estadísticos disponibles para la consulta
+ * @brief Variable que contiene el formulario con las opciones de los indicadores estadísticos disponibles para la
+ * consulta
  *
  * @author Ing. Roldan Vargas rvargas@cenditel.gob.ve
@@ -81,5 +92,6 @@
                             console.log("Consulta sobre empleos generados");
                             if (checked) {
-                                // Instrucciones que permiten mostrar solo los campos necesarios para la consulta del indicador seleccionado
+                                // Instrucciones que permiten mostrar solo los campos necesarios para la consulta del
+                                // indicador seleccionado
                                 Ext.getCmp('periodo_consulta').hide();
                                 Ext.getCmp('anho').allowBlank = true;
@@ -96,10 +108,12 @@
                     boxLabel: 'Proporción de empleos generados',
                     name: 'indicador',
-                    inputValue: 2, // Valor dado al indicador relacionado a la proporción de empleos registrados en SIGESIC
+                    inputValue: 2, // Valor dado al indicador relacionado a la proporción de empleos registrados en
+                    // SIGESIC
                     listeners: {
                         check: function(radio, checked) {
                             console.log("Consulta sobre proporción de empleos generados");
                             if (checked) {
-                                // Instrucciones que permiten mostrar solo los campos necesarios para la consulta del indicador seleccionado
+                                // Instrucciones que permiten mostrar solo los campos necesarios para la consulta del
+                                // indicador seleccionado
                                 Ext.getCmp('actividad_ciiu').hide();
                                 Ext.getCmp('actividad_ciiu').allowBlank = true;
@@ -116,10 +130,12 @@
                     boxLabel: 'Índice de especialización',
                     name: 'indicador',
-                    inputValue: 5, // Valor dado al indicador relacionado al índice de especialización según datos del SIGESIC
+                    inputValue: 5, // Valor dado al indicador relacionado al índice de especialización según datos del
+                    // SIGESIC
                     listeners: {
                         check: function(radio, checked) {
                             console.log("Consulta sobre el índice de especialización");
                             if (checked) {
-                                // Instrucciones que permiten mostrar solo los campos necesarios para la consulta del indicador seleccionado
+                                // Instrucciones que permiten mostrar solo los campos necesarios para la consulta del
+                                // indicador seleccionado
                                 Ext.getCmp('actividad_ciiu').show();
                                 Ext.getCmp('actividad_ciiu').allowBlank = false;
@@ -136,10 +152,12 @@
                     boxLabel: 'Proporción de la producción',
                     name: 'indicador',
-                    inputValue: 6, // Valor dado al indicador relacionado a la proporción de la producción según región seleccionada
+                    inputValue: 6, // Valor dado al indicador relacionado a la proporción de la producción según región
+                    // seleccionada
                     listeners: {
                         check: function(radio, checked) {
                             console.log("Consulta sobre la proporción de la producción");
                             if (checked) {
-                                // Instrucciones que permiten mostrar solo los campos necesarios para la consulta del indicador seleccionado
+                                // Instrucciones que permiten mostrar solo los campos necesarios para la consulta del
+                                // indicador seleccionado
                                 Ext.getCmp('actividad_ciiu').hide();
                                 Ext.getCmp('actividad_ciiu').allowBlank = true;
@@ -150,4 +168,7 @@
                                 Ext.getCmp('parroquia').show();
                                 Ext.getCmp('municipio').show();
+                                // Instrucciones que permiten cargar los datos de años disponibles para el tipo de
+                                // consulta a realizar
+                                cargar_datos_formulario(url_datos_ind, radio.getGroupValue());
                             }
                         }
@@ -157,10 +178,12 @@
                     boxLabel: 'Consumo Intermedio',
                     name: 'indicador',
-                    inputValue: 7, // Valor dado al indicador relacionado al consumo intermedio de las principales regiones del pais según datos del INE
+                    inputValue: 7, // Valor dado al indicador relacionado al consumo intermedio de las principales
+                    // regiones del pais según datos del INE
                     listeners: {
                         check: function(radio, checked) {
                             console.log("Consulta sobre el consumo de bienes intermedios necesarios para la producción");
                             if (checked) {
-                                // Instrucciones que permiten mostrar solo los campos necesarios para la consulta del indicador seleccionado
+                                // Instrucciones que permiten mostrar solo los campos necesarios para la consulta del
+                                // indicador seleccionado
                                 Ext.getCmp('actividad_ciiu').hide();
                                 Ext.getCmp('actividad_ciiu').allowBlank = true;
@@ -171,4 +194,5 @@
                                 Ext.getCmp('parroquia').show();
                                 Ext.getCmp('municipio').show();
+                                cargar_datos_formulario(url_datos_ind, radio.getGroupValue());
                             }
                         }
@@ -178,10 +202,12 @@
                     boxLabel: 'Proporción de bienes intermedios importados',
                     name: 'indicador',
-                    inputValue: 9, // Valor dado al indicador relacionado a la proporción de bienes intermedios importados requeridos para la producción nacional
+                    inputValue: 9, // Valor dado al indicador relacionado a la proporción de bienes intermedios
+                    // importados requeridos para la producción nacional
                     listeners: {
                         check: function(radio, checked) {
                             console.log("Consulta sobre la proporción de bienes intermedios importados");
                             if (checked) {
-                                // Instrucciones que permiten mostrar solo los campos necesarios para la consulta del indicador seleccionado
+                                // Instrucciones que permiten mostrar solo los campos necesarios para la consulta del
+                                // indicador seleccionado
                                 Ext.getCmp('actividad_ciiu').hide();
                                 Ext.getCmp('actividad_ciiu').allowBlank = true;
@@ -192,4 +218,5 @@
                                 Ext.getCmp('parroquia').show();
                                 Ext.getCmp('municipio').show();
+                                cargar_datos_formulario(url_datos_ind, radio.getGroupValue());
                             }
                         }
@@ -200,10 +227,12 @@
                     boxLabel: 'Población Económicamente Activa',
                     name: 'indicador',
-                    inputValue: 3, // Valor dado al indicador relacionado a la población económicamente activa según datos del INE
+                    inputValue: 3, // Valor dado al indicador relacionado a la población económicamente activa según
+                    // datos del INE
                     listeners: {
                         check: function(radio, checked) {
                             console.log("Consulta sobre la población económicamente activa");
                             if (checked) {
-                                // Instrucciones que permiten mostrar solo los campos necesarios para la consulta del indicador seleccionado
+                                // Instrucciones que permiten mostrar solo los campos necesarios para la consulta del
+                                // indicador seleccionado
                                 Ext.getCmp('actividad_ciiu').hide();
                                 Ext.getCmp('actividad_ciiu').allowBlank = true;
@@ -214,4 +243,5 @@
                                 Ext.getCmp('parroquia').hide();
                                 Ext.getCmp('municipio').hide();
+                                cargar_datos_formulario(url_datos_ind, radio.getGroupValue());
                             }
                         }
@@ -226,5 +256,6 @@
                             console.log("Consulta sobre la tasa de desempleo");
                             if (checked) {
-                                // Instrucciones que permiten mostrar solo los campos necesarios para la consulta del indicador seleccionado
+                                // Instrucciones que permiten mostrar solo los campos necesarios para la consulta del
+                                // indicador seleccionado
                                 Ext.getCmp('actividad_ciiu').hide();
                                 Ext.getCmp('actividad_ciiu').allowBlank = true;
@@ -235,4 +266,5 @@
                                 Ext.getCmp('parroquia').hide();
                                 Ext.getCmp('municipio').hide();
+                                cargar_datos_formulario(url_datos_ind, radio.getGroupValue());
                             }
                         }
@@ -242,10 +274,12 @@
                     boxLabel: 'Índice Nacional de Precios al Consumidor',
                     name: 'indicador',
-                    inputValue: 8, // Valor dado al indicador relacionado al índice nacional de precios al consumidor (INPC)
+                    inputValue: 8, // Valor dado al indicador relacionado al índice nacional de precios al consumidor
+                    // (INPC)
                     listeners: {
                         check: function(radio, checked) {
                             console.log("Consulta sobre el índice nacional de precios al consumidor");
                             if (checked) {
-                                // Instrucciones que permiten mostrar solo los campos necesarios para la consulta del indicador seleccionado
+                                // Instrucciones que permiten mostrar solo los campos necesarios para la consulta del
+                                // indicador seleccionado
                                 Ext.getCmp('actividad_ciiu').hide();
                                 Ext.getCmp('actividad_ciiu').allowBlank = true;
@@ -256,4 +290,5 @@
                                 Ext.getCmp('parroquia').hide();
                                 Ext.getCmp('municipio').hide();
+                                cargar_datos_formulario(url_datos_ind, radio.getGroupValue());
                             }
                         }
@@ -266,25 +301,20 @@
 
 /**
- * @brief Función que permite cargar los años de consulta para los indicadores estadísticos
+ * @brief Variable que contiene la configuración requerida para el store de años
  *
  * @author Ing. Roldan Vargas rvargas@cenditel.gob.ve
  * @author Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL) nodo Mérida
  * @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
- * @date 18-08-2014
- * @returns {Array} con los anhos a mostrar para la consulta
- */
-function cargar_anho() {
-    var anhos = [];
-    var d = new Date();
-
-    count = 0;
-    for (i=2010; i<= d.getFullYear(); i++) {
-        anhos[count] = [i, i];
-        count++;
-    }
-
-    return anhos;
-
-}
+ * @date 16-10-2014
+ * @type {autoDestroy: boolean, storeId: string, fields: {name: string, type: string}
+ */
+var anhos_store = new Ext.data.ArrayStore({
+    autoDestroy: true,
+    storeId: 'anhos_store',
+    fields: [
+        {name: 'display', type: 'string'},
+        {name: 'value', type: 'string'}
+    ]
+});
 
 /**
@@ -308,14 +338,24 @@
         {
             xtype: 'combo',
-            editable: true,
+            editable: false,
             id: 'anho',
             name: 'anho',
             fieldLabel: 'Año',
             allowBlank: false,
-            lazyRender: true,
-            selectOnFocus: true,
+            lazyRender: false,
+            selectOnFocus: false,
             forceSelection: true,
             emptyText: 'Seleccione año a consultar',
-            store: cargar_anho()
+            store: anhos_store,//cargar_anho()
+            valueField: 'value',
+            displayField: 'display',
+            mode: 'local',
+            triggerAction: 'all',
+            listeners: {
+               'afterrender': function(combo) {
+                    var selectedRecord = combo.getStore().getAt(0);
+                    combo.setValue(selectedRecord);
+                }
+            }
         },
         {
@@ -342,5 +382,6 @@
 
 /**
- * @brief Variable que contiene el formulario para la consulta de la actividad económica a georeferenciar en los indicadores estadísticos
+ * @brief Variable que contiene el formulario para la consulta de la actividad económica a georeferenciar en los
+ * indicadores estadísticos
  *
  * @author Ing. Roldan Vargas rvargas@cenditel.gob.ve
@@ -370,5 +411,6 @@
 
 /**
- * @brief Variable que contiene el formulario con las capas disponibles a geoireferenciar para los indicadores estadísticos
+ * @brief Variable que contiene el formulario con las capas disponibles a geoireferenciar para los indicadores
+ * estadísticos
  *
  * @author Ing. Roldan Vargas rvargas@cenditel.gob.ve
@@ -487,5 +529,6 @@
                 });
 
-                // Reglas que permiten mostrar la información sobre las distintas densidades de la capa dispuestas para los indicadores
+                // Reglas que permiten mostrar la información sobre las distintas densidades de la capa dispuestas para
+                // los indicadores
                 var rules = [
                     new OpenLayers.Rule({
@@ -672,2 +715,37 @@
     }]
 });
+
+/**
+ * @brief Función que permite cargar los años de consulta para los indicadores estadísticos
+ *
+ * @author Ing. Roldan Vargas rvargas@cenditel.gob.ve
+ * @author Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL) nodo Mérida
+ * @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
+ * @date 16-10-2014
+ */
+function cargar_datos_formulario(url, opcion) {
+    $.getJSON(url, {opcion: opcion}, function(datos) {
+        if (datos.resultado) {
+            // Variable que inicializa un arreglo vacío
+            var data = Array();
+
+            for (i=0; i<=datos.anhos.length; i++) {
+                if (typeof (datos.anhos[i]) != "undefined") {
+                    // Agrega los elementos que serán mostrados en el combo de años
+                    data.push([datos.anhos[i], datos.anhos[i]]);
+                }
+            }
+            
+            // carga los datos de los anhos de acuerdo a la opción seleccionada
+            anhos_store.loadData(data,false);
+            Ext.getCmp('anho').reset();
+            // carga los datos en el combo correspondiente a los años
+            Ext.getCmp('anho').store.reload(data);
+
+        }
+        else {
+            // Muestra un mensaje de alerta al usuario en caso de no poderse procesar la petición
+            Ext.Msg.alert('Error', e);
+        }
+    });
+}
