/* ****************************************************************************
Copyright 2006,
Todos los derechos Reservados
CM.COM E.U.
cmhenao@epm.met.co

El uso sin solicitud espresa a la compañia de esta libreria es una clara
violación a la propiedad intelectual y los derechos de autor.
Prohibida su distribucion y/o uso sin el permiso explicito de cm.com
**************************************************************************** */

/* ****************************************************************************
Autor: Jhon Alejandro Ramirez Velez
       Desarrollador
       Progress - WebSpeed
       jhalrave@epm.net.co
       jhalrave@gmail.com
**************************************************************************** */

var lRequiredLogin = false;
var sUrlNotLogin = "index.html";

var sUrlConsultaNit = "Consultas.wsa/ConsultaNit.html";
var sUrlConsultaRazon = "Consultas.wsa/ConsultaRazon.html";
var sUrlConsultaMatricula = "Consultas.wsa/ConsultaMatricula.html";
var sUrlConsultaRadicado = "Consultas.wsa/ConsultaRadicado.html";
var sUrlConsultaNombre = "Consultas.wsa/ConsultaNombre.html";
var sUrlConsultaDetalle = "DetalleTramite.wsa/DetalleTramite.html";

var LastConsulta = new Array();

var oFechaActual = new Date();
function cConsulta(){
  this.tipo = "";
  this.razon = "";
  this.nombre = "";
  this.matricula = "";
  this.nit = "";
  this.radicado = "";
  this.aniotramite = oFechaActual.getFullYear();  
}


function startIndex(){
  initForms('FBusquedas');
  oForm = document.forms['FBusquedas'];
  if(oForm){
     var oInput = oForm.elements['fechatramite'];
     if(oInput)
       oInput.caption = "Fecha Estimada de inicio del Tramite";
     var oInput = oForm.elements['aniotramite'];
     if(oInput){
       var oOption = null;
       var oDate = new Date();
       for(var iAnios = 0; iAnios <= iAniosTramites - 1; iAnios++){
         oOption = document.createElement("OPTION");
         oOption.value = oDate.getFullYear() - iAnios;
         oOption.innerText = oDate.getFullYear() - iAnios;
         oInput.appendChild(oOption);                
       }
       oInput.caption = "Año del Tramite";
     }
  }
}

var TipoConsulta = 0;

function ShowBusqueda(tipo){
  hideAllSearch();
  hideAllResponses();
  window.show('TBusqueda' + tipo);
  oForm = document.forms['FBusquedas'];
  if(oForm){
    var oConsulta = new cConsulta();
    var oInput = null;
    oConsulta.display(oForm);
    oForm.elements['razon'].mandatory = (tipo == 1?"yes":"no");    
    oForm.elements['matricula'].mandatory = (tipo == 2?"yes":"no");
    oForm.elements['nit'].mandatory = (tipo == 3?"yes":"no");
    oForm.elements['radicado'].mandatory = (tipo == 4?"yes":"no");
    oForm.elements['aniotramite'].mandatory = (tipo == 4?"yes":"no");
    oForm.elements['nombre'].mandatory = (tipo == 5?"yes":"no");
    var sField_focus;
    switch(tipo){
      case 1:
        sField_focus = 'razon';
      break;
      case 2:
        sField_focus = 'matricula';
      break;
      case 3:
        sField_focus = 'nit';
      break;
      case 4:
        sField_focus = 'radicado';
      break;
      case 5:
        sField_focus = 'nombre';
      break;
    }
    oInput = oForm.elements[sField_focus];
  }
  TipoConsulta = tipo;
  var oB1 = oForm.elements['bs_' + TipoConsulta];
  var oB = oForm.elements['bs_' + tipo];
  if(oB1){
    oB.swapNode(oB1);
  }

  if(oInput){
    oInput.focus();
  }
  
  LastConsulta = new Array();
  LastRow = new Array();
  return false;
}

function Consultar(oForm){
  var sMsg = "";
  
  oForm.validate();
  if(oForm.failed){
    alert(oForm.messages);
    return;
  }

  var sUrl = "";
  switch(TipoConsulta){
    case 1:
      sUrl = sUrlConsultaRazon;
    break;
    case 2:
      sUrl = sUrlConsultaMatricula;
    break;
    case 3:
      sUrl = sUrlConsultaNit;
    break;
    case 4:
      sUrl = sUrlConsultaRadicado;
    break;
    case 5:
      sUrl = sUrlConsultaNombre;
    break;
  }
  
  var oConsulta = new cConsulta();
  oConsulta.load(oForm);
  oConsulta.pagina = 1;
  oConsulta.url = sUrl;
  oConsulta.registros = iResultadosPorPagina;
  oConsulta.tipo = TipoConsulta;
  LastConsulta = new Array();
  LastRow = new Array();
  LastConsulta.push(oConsulta);
  EnviarConsulta(oConsulta);
}

function EnviarConsulta(oConsulta){
  var oRespuesta = new Object();
  oRespuesta.resultados = new Array();
  
  debugGroup('Busqueda', oConsulta);
  messageBox("Un momento por favor, estamos realizando la consulta", true);
  window.requester.sendRequest("POST", oConsulta.url, oConsulta.serialize('request'), GetConsultar, oRespuesta);
}

function GetConsultar(cargado, respuesta){
   messageBox("",false);
   if(window.requester.fault){
     alert("Error:\n" + respuesta.code + "\n" + respuesta.message);
     return;
   }
   if (cargado){
     debugGroup("Respuesta Consulta", respuesta);
     var oLastConsulta = LastConsulta[LastConsulta.length - 1];
     if(parseInt(respuesta.codigo) != 0){
       alert(respuesta.mensaje);
       return;
     }
     
     if(LastConsulta.length > 1){
       hideAllSearch();       
     }else{     
       window.show('TBusqueda' + oLastConsulta.tipo);
     }
     hideAllResponses();
     
     switch(oLastConsulta.tipo){
       case 1:
         MostrarComerciantes(respuesta);
       break;
       case 5:
         MostrarPersonas(respuesta);
       break;
       case 2:
       case 3:
       case 4:       
         MostrarTramites(respuesta);
       break;
     }     
   }else{
     alert(respuesta);
   }
}

function MostrarComerciantes(respuesta){
  if(parseInt(respuesta.registros) == 0){
    window.hide("TCComerciantesLabel,TCComerciantesPaginas,TCComerciantesResultados,TCComerciantesButtons");
    window.show("TCComerciantes,TCComerciantesNo");
    return;
  }
  
  var oTable = document.getElementById('TComerciantesCantidad');
  if(oTable){
    oTable.innerText = "La busqueda ha recuperado " + respuesta.registros + " Resultado(s)";
  } 
  
  oTable = document.getElementById('TComerciantes');
  if(oTable){
    if(LastConsulta.length > 0)
      oTable.consulta = LastConsulta[LastConsulta.length - 1];
    if(oTable.removeRange == null || oTable.removeRange == undefined){
      oTable.removeRange = _TableDeleteRange;        
    }
    oTable.removeRange(1);      
    respuesta.resultados.display(oTable);
  }  
  
  var oTable = document.getElementById('TComerciantesPaginas');
  if(oTable){
    if(parseInt(respuesta.registros) > iResultadosPorPagina){
      oTable.innerHTML = "";
      var oContainer = document.getElementById('TComerciantes');
      var iCont1 = 0;
      for(var iCont = respuesta.registros; iCont > 0; iCont = iCont - iResultadosPorPagina){
        var oA = document.createElement("A");
        oA.href = "";
        oA.onclick = IrAPagina;
        oA.pagina = ++iCont1;
        oA.table = oContainer;         
        oA.style.width = "15px";
        oA.innerText = iCont1;
        oA.style.border = "1px solid white";
        if(oContainer.consulta){
          if(oA.pagina == oContainer.consulta.pagina){
            oA.style.border = "1px solid #b2b2b2";
          }
        }else{
          if(iCont1 == 1){
            oA.style.border = "1px solid #b2b2b2";
          }
        }
        oTable.appendChild(oA);
      }
      oContainer.lastPage = iCont1;      
      window.show('TCComerciantesPaginas,TCComerciantesButtons');
    }else{
      window.hide('TCComerciantesPaginas,TCComerciantesButtons');
    }
  }  
  
  window.hide('TCComerciantesNo');
  window.show('TCComerciantes,TCComerciantesLabel,TCComerciantesResultados,TComerciantes');  
}

function MostrarPersonas(respuesta){
  if(parseInt(respuesta.registros) == 0){
    window.hide("TCPersonaLabel,TCPersonaPaginas,TCPersonaResultados,TCPersonaButtons");
    window.show("TCPersona,TCPersonaNo");
    return;
  }

  var oTable = document.getElementById('TPersonaCantidad');
  if(oTable){
    oTable.innerText = "La busqueda ha recuperado " + respuesta.registros + " Resultado(s)";
  } 
  
  oTable = document.getElementById('TPersona');
  if(oTable){
    if(LastConsulta.length > 0)
      oTable.consulta = LastConsulta[LastConsulta.length - 1];
    if(oTable.removeRange == null || oTable.removeRange == undefined){
      oTable.removeRange = _TableDeleteRange;        
    }
    oTable.removeRange(1);      
    respuesta.resultados.display(oTable);
  }  
  
  var oTable = document.getElementById('TPersonaPaginas');
  if(oTable){
    if(parseInt(respuesta.registros) > iResultadosPorPagina){
      oTable.innerHTML = "";
      var oContainer = document.getElementById('TPersona');
      var iCont1 = 0;
      for(var iCont = respuesta.registros; iCont > 0; iCont = iCont - iResultadosPorPagina){
        var oA = document.createElement("A");
        oA.href = "";
        oA.onclick = IrAPagina;
        oA.pagina = ++iCont1;
        oA.table = oContainer;         
        oA.style.width = "15px";
        oA.innerText = iCont1;
        oA.style.border = "1px solid white";
        if(oContainer.consulta){
          if(oA.pagina == oContainer.consulta.pagina){
            oA.style.border = "1px solid #b2b2b2";
          }
        }else{
          if(iCont1 == 1){
            oA.style.border = "1px solid #b2b2b2";
          }
        }
        oTable.appendChild(oA);
      }
      oContainer.lastPage = iCont1;      
      window.show('TCPersonaPaginas,TCPersonaButtons');
    }else{
      window.hide('TCPersonaPaginas,TCPersonaButtons');
    }
  }
    
  window.hide('TCPersonaNo');
  window.show('TCPersona,TCPersonaLabel,TCPersonaResultados,TPersona');  
}


function MostrarTramites(respuesta){
  if(parseInt(respuesta.nit) > 0){
    oTable = document.getElementById('TTramitesComerciante');
    if(oTable){
      respuesta.display(oTable);
    }  
    window.show('TCTramitesComerciante');
  }else{
    window.hide('TCTramitesComerciante');
  }
  
  if (LastRow.length > 0){
    window.show('TCTramitesBack');
  }else{
    window.hide('TCTramitesBack');
  }

  if(parseInt(respuesta.registros) == 0){
    window.hide("TCTramitesLabel,TCTramitesPaginas,TCTramitesResultados,TCTramitesButtons");
    window.show("TCTramites,TCTramitesNo");
    return;
  }

  var oTable = document.getElementById('TTramitesCantidad');
  if(oTable){
    oTable.innerText = "La busqueda ha recuperado " + respuesta.registros + " Resultado(s)";
  } 
  
  oTable = document.getElementById('TTramites');
  if(oTable){
    if(LastConsulta.length > 0)
      oTable.consulta = LastConsulta[LastConsulta.length - 1];
    if(oTable.removeRange == null || oTable.removeRange == undefined){
      oTable.removeRange = _TableDeleteRange;        
    }
    oTable.removeRange(1);      
    respuesta.resultados.display(oTable);
  }  
  
  
  var oTable = document.getElementById('TTramitesPaginas');
  if(oTable){
    if(parseInt(respuesta.registros) > iResultadosPorPagina){
      oTable.innerHTML = "";
      var oContainer = document.getElementById('TTramites');
      var iCont1 = 0;
      for(var iCont = respuesta.registros; iCont > 0; iCont = iCont - iResultadosPorPagina){
        var oA = document.createElement("A");
        oA.href = "";
        oA.onclick = IrAPagina;
        oA.pagina = ++iCont1;
        oA.table = oContainer;         
        oA.style.width = "15px";
        oA.innerText = iCont1;
        oA.style.border = "1px solid white";
        if(oContainer.consulta){
          if(oA.pagina == oContainer.consulta.pagina){
            oA.style.border = "1px solid #b2b2b2";
          }
        }else{
          if(iCont1 == 1){
            oA.style.border = "1px solid #b2b2b2";
          }
        }
        oTable.appendChild(oA);
      }
      oContainer.lastPage = iCont1;      
      window.show('TCTramitesPaginas,TCTramitesButtons');
    }else{
      window.hide('TCTramitesPaginas,TCTramitesButtons');
    }
  }  
  
  window.hide('TCTramitesNo');
  window.show('TCTramites,TCTramitesLabel,TCTramitesResultados,TTramites');  
  
}

var LastRow = new Array();

function VerComerciante(){
  var oTr = window.event.srcElement;
  for(;oTr.tagName != "TR";){
    oTr = oTr.parentElement;
  }
  LastRow.push(oTr);
  var oConsulta = new Object();
  oConsulta.pagina = 1;
  oConsulta.url = sUrlConsultaMatricula;
  oConsulta.registros = iResultadosPorPagina;
  oConsulta.matricula = oTr.displayObject.matricula;
  oConsulta.tipo = 2;
  LastConsulta.push(oConsulta);
  EnviarConsulta(oConsulta);
}

function IrAPagina(){
  var oA = window.event.srcElement;
  var oTable = oA.table;
  var oConsulta = oTable.consulta;
  if(oConsulta.pagina == oA.pagina){
    window.event.returnValue = false;
    return false; 
  }
  oConsulta.pagina = oA.pagina;
  EnviarConsulta(oConsulta);  
  window.event.returnValue = false;
  return false; 
}

function Anterior(sId){
  var oTable = document.getElementById(sId);
  if(oTable){
    var oConsulta = oTable.consulta;
    if(oConsulta.pagina == 1){
      window.event.returnValue = false;
      return false; 
    }
    oConsulta.pagina = parseInt(oConsulta.pagina) - 1;
    EnviarConsulta(oConsulta);
  }  
  window.event.returnValue = false;
  return false; 
}

function Siguiente(sId){
  var oTable = document.getElementById(sId);
  if(oTable){
    var oConsulta = oTable.consulta;
    if(oConsulta.pagina == oTable.lastPage){
      window.event.returnValue = false;
      return false; 
    }
    oConsulta.pagina = parseInt(oConsulta.pagina) + 1;
    EnviarConsulta(oConsulta);  
  }  
  window.event.returnValue = false;
  return false; 
}


function hideAllSearch(){
  window.hide('TBusqueda');
  for(var i = 0; i < 6; i++){
    window.hide('TBusqueda' + i);
  }
}

function hideAllResponses(){
  window.hide('TBusqueda,TCComerciantes,TCPersona,TCTramites,TCDetalleTramite');
}

function back(){
  LastConsulta.pop();
  var oTr = LastRow.pop();
  for(;oTr.tagName != "TABLE";){
    oTr = oTr.parentElement;
  }
  
  var oConsulta = oTr.consulta;
  EnviarConsulta(oConsulta);    
}

function verDetalle(){
  var oTr = window.event.srcElement;
  for(;oTr.tagName != "TR";){
    oTr = oTr.parentElement;
  }
  LastConsulta.push(null);
  LastRow.push(oTr);
  var sUrl = sUrlConsultaDetalle + "?radicado=" + oTr.displayObject.radicado + "&anio=" + oTr.displayObject.anio + "&tipo=" + oTr.displayObject.tptr + "&matricula=" + oTr.displayObject.matricula + "&tpcm=" + oTr.displayObject.tpcm + "&r=" + (Math.random() * 1000000);
  debugMessage("Llamando " + sUrl);
  var oDiv = document.getElementById('TDetalleTramite');
  if(oDiv){
    requester.requestHTMLFragment('POST', sUrl, oDiv);
  }
  hideAllSearch();
  hideAllResponses();
  window.show('TCDetalleTramite');

}

function TTramites_fecha_display(oCell, oObject){
  oCell.innerHTML = "Nro.&nbsp;" + oObject.radicado + " de&nbsp;" + oObject.fecha;
}

