﻿// JScript File
    var numelemento = -1;
    var ctrl;
    //Validar registro de administrar proceso
    
    function validarRegistroProceso(txtNombreCargo,txtDescripcionCargo)    
    {
    
        var boolValidar = true;
        //Variable para que el foco quede en el primer objeto invalido
        var boolValidarFoco = true;
        
        var titulo = "Datos inva*lidos";
        var detalle = "Por favor revise la informacio*n requerida antes de continuar.";
        
        //Controles a validar
        var arrayControlValidate = new Array (1)
        arrayControlValidate[0] = txtNombreCargo;
        arrayControlValidate[1] = txtDescripcionCargo;
                
        var arrayControlMessage = new Array (1)
        arrayControlMessage[0] = "El nombre del cargo es un dato requerido.";
        arrayControlMessage[1] = "La descripcio*n del cargo es un dato requerido.";
        
        numelemento = -1;
        boolValidar = validarArreglo(arrayControlValidate);

        if (numelemento != -1) 
        {
            detalle = arrayControlMessage[numelemento];            
            boolValidar = false;
        }       

        //Mostrar mensaje con campos invalidos         
        if(!boolValidar)
        {
            opendivwin('900','350','mensajeGenerico.aspx?titulo=' + titulo + '&detalle=' + detalle + '&boton=Aceptar&ctrl='+ctrl);
            bloquear();
        }        
        return boolValidar;
    }
     
    function validarControl(id, fid) {
        var Control = document.getElementById(id);
        var ControlToFocus = document.getElementById(fid);
        if(Control.value == "0")
        {
            ControlToFocus.style.backgroundColor="#FFF3EC";
            ControlToFocus.focus();
            return(false);
        } else {
            ControlToFocus.style.backgroundColor="";
            return(true);
        }
    } 
    
    function validarFiltro(id, fid) {
        var Control = document.getElementById(id);
        var ControlToFocus = document.getElementById(fid);
        if(Control.value == "")
        {
            ControlToFocus.style.backgroundColor="#FFF3EC";
            ControlToFocus.focus();
            return(false);
        } else {
            ControlToFocus.style.backgroundColor="";
            return(true);
        }
    }     
    
    function validarCombo(id) {
        var obj = document.getElementById(id);
        if(obj.value == "-1")
        {
             obj.style.backgroundColor="#FFF3EC";
             obj.focus();
             return(false);
        }
        else
        {
            obj.style.backgroundColor="";
            return(true);
        }
    }
    
    //Validar registro envio requisicion4
    function validarRegistroEnviarRequisicion(txtNombreCargo,
                                            txtUsuarioRequisicion,
                                            txtCorreoElectronicoRequision)
    {
        var boolValidar = true;
        //Variable para que el foco quede en el primer objeto invalido
        var boolValidarFoco = true;
        var titulo = "Datos inva*lidos";
        var detalle = "Por favor revise la informacio*n requerida antes de continuar.";

        //Controles a validar
        var arrayControlValidate = new Array (2)
        arrayControlValidate[0] = txtNombreCargo;
        arrayControlValidate[1] = txtUsuarioRequisicion;
        arrayControlValidate[2] = txtCorreoElectronicoRequision;
        
         for(i=0;i<arrayControlValidate.length;i++)
         { 
            if(document.getElementById(arrayControlValidate[i]) != null)
            {
                var ctlValidar = document.getElementById(arrayControlValidate[i]);
                if(ctlValidar.value == "")
                {
                    ctlValidar.style.backgroundColor="#FFF3EC";
                    ctlValidar.style.border = "1px solid #FFB380";
                    boolValidar = false;
                    detalle = "El nombre del cargo es un dato requerido.";
                    
                    //Valida que el foco quede en el primer objeto invalido
                    if(boolValidarFoco == true)
                    {
                        boolValidarFoco = false;
                        ctlValidar.focus();
                    }
                }
                else
                {
                    ctlValidar.style.backgroundColor="";
                    ctlValidar.style.border = "1px solid #CCCCCC";
                    
                    //validar nombre
                    if(arrayControlValidate[i] == txtUsuarioRequisicion)
                    {
                        if(ctlValidar.value == "Nombre")
                        {
                            ctlValidar.style.backgroundColor="#FFF3EC";
                            ctlValidar.style.border = "1px solid #FFB380";
                            boolValidar = false;
                            detalle = "El usuario de requisicio*n es un dato requerido.";
                            
                            //Valida que el foco quede en el primer objeto invalido
                            if(boolValidarFoco == true)
                            {
                                boolValidarFoco = false;
                                ctlValidar.focus();
                            }
                        }
                    }
                }
            }
         }
        
        if (boolValidar) {
             //Validar correo electronico
            var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
            var strCorreo = document.getElementById(txtCorreoElectronicoRequision);
                   
            if(strCorreo.value.match(emailRegEx))
            {
                strCorreo.style.backgroundColor="";
                strCorreo.style.border = "1px solid #CCCCCC";
            }
            else
            {
                 strCorreo.style.backgroundColor="#FFF3EC";
                 strCorreo.style.border = "1px solid #FFB380";
                 boolValidar = false;
                 detalle = "Correo electro*nico inva*lido.";
                 
                 //Valida que el foco quede en el primer objeto invalido
                if(boolValidarFoco == true)
                {
                    boolValidarFoco = false;
                    strCorreo.focus();
                }
            }
        }

         //Mostrar mensaje con campos invalidos
        if(!boolValidar)
        {
            opendivwin('900','350','mensajeGenerico.aspx?titulo=' + titulo + '&detalle=' + detalle + '&boton=Aceptar');
            bloquear();
        }

        return boolValidar;
    }

    function validarRegistroEmpresaNumericos(arrayControlValidate)
    {
        for(i=0;i<arrayControlValidate.length;i++)
        { 
            var ctlValidar = document.getElementById(arrayControlValidate[i]);
            if(ctlValidar != null)
            {
                if (ctlValidar.value != "") {
                    if (isNaN(parseInt(ctlValidar.value)))
                    {
                        ctlValidar.style.backgroundColor="#FFF3EC";
                        ctlValidar.style.border = "1px solid #FFB380";
                        ctlValidar.focus();
                        return(i);
                    }
                }
            }
        }
        
        return(-1);
    }
    
    function validarEmail(valor) {
        if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(valor)){
            return (true)
        } else {
            return (false);
        }
    }

    function validarModificarEmpresa(txtRazonSocial, txtNit, txtDireccion, ddlIndustria, fileUpload)
    {
      var boolValidar = true;
        //Variable para que el foco quede en el primer objeto invalido
        var boolValidarFoco = true;
        var titulo = "Datos inva*lidos";
        var detalle = "Por favor revise la informacio*n requerida antes de continuar.";
        
        //Controles a validar registro general
        var arrayControlValidate = new Array (2)
        arrayControlValidate[0] = txtRazonSocial;
        arrayControlValidate[1] = txtNit;
        arrayControlValidate[2] = txtDireccion;
        
        
        var arrayControlMessage = new Array (10)
        arrayControlMessage[0] = "La razo*n social de la empresa es un dato requerido.";
        arrayControlMessage[1] = "Por favor digite el NIT de la empresa.";
        arrayControlMessage[2] = "La direccio*n de la empresa e sun dato requerido.";
        
        
        numelemento = -1;
        boolValidar = validarArreglo(arrayControlValidate);
        
        if (numelemento != -1) {
          detalle = arrayControlMessage[numelemento];
          boolValidar = false;
        }
        
        if (boolValidar) {
          arrayControlValidate = new Array (0)
          arrayControlValidate[0] = txtNit;
          
          arrayControlMessage = new Array (0)
          arrayControlMessage[0] = "El NIT es un dato nume*rico.";
            
          numelemento = validarRegistroEmpresaNumericos(arrayControlValidate);
          if (numelemento != -1) {
            detalle = arrayControlMessage[numelemento];
            boolValidar = false;
          }
        }
        
        if (boolValidar) {
          //Validar industria
          
          var industria  = document.getElementById(ddlIndustria);
          if(industria.value == "0")
          {
             boolValidar = false;
             industria.style.backgroundColor="#FFF3EC";
             detalle = "Debe seleccionar un sector de industria.";
             industria.focus();
          }
          else
          {
             document.getElementById(ddlIndustria).style.backgroundColor="";
          }
        }
        
        if (boolValidar)
        {
          
          var file = document.getElementById(fileUpload);
          if (file.value != '')
          {
            var fileName=file.value;  
            var extArray = new Array(".jpg", ".gif");
            //getting the file name
            while (fileName.indexOf("\\") != -1)
              fileName = fileName.slice(fileName.indexOf("\\") + 1);
            //Getting the file extension                     
            boolValidar = false
            var ext = fileName.slice(fileName.indexOf(".")).toLowerCase();
            //matching extension with our given extensions.
            for (var i = 0; i < extArray.length; i++) 
            {   if (extArray[i] == ext) {  boolValidar = true; } }  
            detalle = "Debe cargar archivos de tipo " + (extArray.join("  ")) + ".  \r\nSeleccione un nuevo archivo";
            file.focus();
          }       
        }
        
        if(!boolValidar)
        {
            opendivwin('900','350','mensajeGenerico.aspx?titulo=' + titulo + '&detalle=' + detalle + '&boton=Aceptar');
            bloquear();
        }
        
        return boolValidar;
    }

    function validarRegistroEmpresa(txtNombreApellidos,txtCargo,txtCorreoElectronico,txtClave,
        txtTelefono,txtRazonSocial,txtNit,txtDireccion,ddlIndustria,txtExtension)
    {
        var boolValidar = true;
        //Variable para que el foco quede en el primer objeto invalido
        var boolValidarFoco = true;
        var titulo = "Datos inva*lidos";
        var detalle = "Por favor revise la informacio*n requerida antes de continuar.";
        
        //Controles a validar registro general
        var arrayControlValidate = new Array (7)
        arrayControlValidate[0] = txtNombreApellidos;
        arrayControlValidate[1] = txtCargo;
        arrayControlValidate[2] = txtCorreoElectronico;
        arrayControlValidate[3] = txtClave;
        arrayControlValidate[4] = txtTelefono;
        arrayControlValidate[5] = txtRazonSocial;
        arrayControlValidate[6] = txtNit;
        arrayControlValidate[7] = txtDireccion;
        

        
        var arrayControlMessage = new Array (7)
        arrayControlMessage[0] = "Los nombres y apellidos son datos requeridos.";
        arrayControlMessage[1] = "El cargo de la persona de contacto es un dato requerido.";
        arrayControlMessage[2] = "Por favor proporcione un correo electrónico de contacto.";
        arrayControlMessage[3] = "La clave y su confirmacio*n son datos requeridos.";
        arrayControlMessage[4] = "El tele*fono es un dato requerido.";
        arrayControlMessage[5] = "La razo*n social de la empresa es un dato requerido.";
        arrayControlMessage[6] = "Por favor digite el NIT de la empresa.";
        arrayControlMessage[7] = "La direccio*n de la empresa e sun dato requerido.";

        
        numelemento = -1;
        boolValidar = validarArreglo(arrayControlValidate);
        
        if (numelemento != -1) {
            detalle = arrayControlMessage[numelemento];
            boolValidar = false;
        }
        
        if (boolValidar) {
            arrayControlValidate = new Array (1)
            arrayControlValidate[0] = txtTelefono;
            arrayControlValidate[1] = txtExtension;
            
            arrayControlMessage = new Array (2)
            arrayControlMessage[0] = "El tele*fono es un dato nume*rico.";
            arrayControlMessage[1] = "La Extensio*n es un dato nume*rico.";
            
            numelemento = validarRegistroEmpresaNumericos(arrayControlValidate);
            if (numelemento != -1) {
                detalle = arrayControlMessage[numelemento];
                boolValidar = false;
            }
        }
        
        if (boolValidar) {
            var obj = document.getElementById(txtCorreoElectronico);
            if (!validarEmail(obj.value)) {
                detalle = "Correo electro*nico incorrecto.";
                boolValidar = false;
            }
        }
           
        if (boolValidar) {
            //Validar industria
            
            var industria  = document.getElementById(ddlIndustria);
            if(industria.value == "0")
            {
                 boolValidar = false;
                 industria.style.backgroundColor="#FFF3EC";
                 detalle = "Debe seleccionar un sector de industria.";
                 industria.focus();
            }
            else
            {
                document.getElementById(ddlIndustria).style.backgroundColor="";
            }
        }
        
        //Mostrar mensaje con campos invalidos
        if(!boolValidar)
        {
            opendivwin('900','350','mensajeGenerico.aspx?titulo=' + titulo + '&detalle=' + detalle + '&boton=Aceptar');
            bloquear();
        }
        
        return boolValidar;
    }
    
    function validarLoginUsuario(txtCorreo,txtPassword)
    {
         var boolValidar = true;
        
        //Controles a validar registro general
        var arrayControlValidate = new Array (1)
        arrayControlValidate[0] = txtCorreo;
        arrayControlValidate[1] = txtPassword;
        
        boolValidar = validarArreglo(arrayControlValidate);
        
        //Validar correo electronico
        var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        var strCorreo = document.getElementById(txtCorreo);
               
        if(strCorreo.value.match(emailRegEx))
        {
            strCorreo.style.backgroundColor="";
            strCorreo.style.border = "1px solid #CCCCCC";
        }
        else
        {
             strCorreo.style.backgroundColor="#FFF3EC";
             strCorreo.style.border = "1px solid #FFB380";
             boolValidar = false;
             
             //Valida que el foco quede en el primer objeto invalido
            if(boolValidar)
            {
                boolValidarFoco = false;
                strCorreo.focus();
            }
        }
        
        //Mostrar mensaje con campos invalidos
        if(boolValidar == false)
        {
            opendivwin('900','350','mensajeGenerico.aspx?titulo=Datos no validos&detalle=Revise la informacio*n sombreada antes de continuar.&boton=Aceptar');bloquear();
        }
        
        return boolValidar;
    }
    
    function validarEnviarSolicitud(txtNombre,txtCorreo)
    {
        var boolValidar = true;
        if(document.getElementById(txtNombre).value == "Nombre")
        {
            document.getElementById(txtNombre).style.backgroundColor="#FFF3EC";
            document.getElementById(txtNombre).style.border = "1px solid #FFB380";
            document.getElementById(txtNombre).focus();
            opendivwin('900','350','mensajeGenerico.aspx?titulo=Datos no validos&detalle=Nombre requerido.&boton=Aceptar');bloquear();
            boolValidar = false;
        }
        else
        {
            document.getElementById(txtNombre).style.backgroundColor="";
            document.getElementById(txtNombre).style.border = "1px solid #CCCCCC";
        }
        
        var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        objCorreo = document.getElementById(txtCorreo);
        if(objCorreo.value.match(emailRegEx))
        {
            objCorreo.style.backgroundColor="";
            objCorreo.style.border = "3px solid #96B5DA";
        }
        else
        {
             objCorreo.style.backgroundColor="#FFF3EC";
             objCorreo.style.border = "1px solid #FFB380";
             if(boolValidar == true)
             {
                opendivwin('900','350','mensajeGenerico.aspx?titulo=Datos no validos&detalle=Correo electro*nico no valido.&boton=Aceptar');bloquear();        
             }
             boolValidar = false;
        }
               
        return boolValidar;
    }
    
    
    function validarCrearEditarUsuario(txtEmail,txtNombre,txtCargo,txtPassword,txtPassword2,txtTelefono,txtExtension,ddlRol)
    {
        var boolValidar = true;
        //Variable para que el foco quede en el primer objeto invalido
        var boolValidarFoco = true;
        var titulo = "Datos inválidos";
        var detalle = "Por favor revise la información requerida antes de continuar.";
        
        //Controles a validar registro general
        var arrayControlValidate = new Array (7)
        arrayControlValidate[0] = txtEmail;
        arrayControlValidate[1] = txtNombre;
        arrayControlValidate[2] = txtCargo;
        arrayControlValidate[3] = txtPassword;
        arrayControlValidate[4] = txtPassword2;
        arrayControlValidate[5] = txtTelefono;
        arrayControlValidate[6] = ddlRol;
        
        var arrayControlMessage = new Array (7)
        arrayControlMessage[0] = "Por favor proporcione un correo electrónico de contacto.";
        arrayControlMessage[1] = "Los nombres y apellidos son datos requeridos.";
        arrayControlMessage[2] = "El cargo de la persona de contacto es un dato requerido.";
        arrayControlMessage[3] = "La clave y su confirmación son datos requeridos.";
        arrayControlMessage[4] = "La clave y su confirmación son datos requeridos.";
        arrayControlMessage[5] = "El teléfono es un dato requerido.";
        arrayControlMessage[6] = "El rol es un dato requerido.";

        numelemento = -1;
        boolValidar = validarArreglo(arrayControlValidate);
        
        if (numelemento != -1) {
            detalle = arrayControlMessage[numelemento];
            boolValidar = false;
        }
        
        if (boolValidar) {
            arrayControlValidate = new Array (1)
            arrayControlValidate[0] = txtTelefono;
            arrayControlValidate[1] = txtExtension;
            
            arrayControlMessage = new Array (2)
            arrayControlMessage[0] = "El teléfono es un dato numérico.";            
            arrayControlMessage[1] = "La Extensión es un dato numérico.";
            
            numelemento = validarRegistroEmpresaNumericos(arrayControlValidate);
            if (numelemento != -1) {
                detalle = arrayControlMessage[numelemento];
                boolValidar = false;
            }
        }
        
        if (boolValidar) {
            var obj = document.getElementById(txtEmail);
            if (!validarEmail(obj.value)) {
                detalle = "Formato de correo electrónico incorrecto.";
                boolValidar = false;
            }
        }
        
        if (boolValidar) {
            //Validar contrasenas que sean iguales
            var obj = document.getElementById(txtPassword);
            var objtmp = document.getElementById(txtPassword2);

            if(obj.value != objtmp.value)
            {
                obj.style.backgroundColor="#FFF3EC";
                obj.style.border = "1px solid #FFB380";
                
                objtmp.style.backgroundColor="#FFF3EC";
                objtmp.style.border = "1px solid #FFB380";
                boolValidar = false;
                
                 //Valida que el foco quede en el primer objeto invalido
                 if(boolValidarFoco)
                 {
                   boolValidarFoco = false;
                   document.getElementById(txtPassword).focus();
                 }
                 detalle = "Los datos de clave y confirmación no coinciden.";
            }
            else
            {
                obj.style.backgroundColor="";
                objtmp.style.backgroundColor="";
                
                obj.style.border = "1px solid #CCCCCC";
                objtmp.style.border = "1px solid #CCCCCC";
            }
        }
        
        if (boolValidar) {
            var obj = document.getElementById(ddlRol);
            if (obj.selectedIndex < 1)
            {
                obj.style.backgroundColor="#FFF3EC";
                obj.style.border = "3px solid #FFB380";
                
                detalle = "Debe seleccionar un rol válido.";
                boolValidar = false;
            }
        }
        
        var objLtlTitulo = document.getElementById('lblTitulo');
        if(objLtlTitulo != null)
        {
            objLtlTitulo.value = 'Datos inválidos';
        }
        
        var objSubTitulo = document.getElementById('lblSubTitulo');
        if(objSubTitulo != null)
        {
            objSubTitulo.value ='Por favor revise la información requerida antes de continuar.';
        }
        
        var objLblMessage = document.getElementById('lblMessage');
        if(objLblMessage != null)
        {
            document.getElementById('lblMessage').value = detalle;
        }
        
        return boolValidar;
    }
    
    function validarArreglo(arrayControlValidate)
    {
         var boolValidar = true;
        //Variable para que el foco quede en el primer objeto invalido
        var boolValidarFoco = true;
    
        for(i=0;i<arrayControlValidate.length;i++)
        { 
            var ctlValidar = document.getElementById(arrayControlValidate[i]);
            
            if(ctlValidar != null) {
                if (trim(ctlValidar.value.replace(/\s/g, "")) == "")
                {
                    ctlValidar.style.backgroundColor="#FFF3EC";
                    ctlValidar.style.border = "1px solid #FFB380";
                    boolValidar = false;
                    
                    //Valida que el foco quede en el primer objeto invalido
                    if(boolValidarFoco)
                    {
                        boolValidarFoco = false;
                        numelemento = i;
                        ctrl=arrayControlValidate[i];
                    }
                }
                else
                {
                    ctlValidar.style.backgroundColor="";
                    ctlValidar.style.border = "1px solid #CCCCCC";
                }
            }
        }
         return boolValidar;
    }
    
    //Funcion usada en los controles de usuario 
    function minLenght (control,mensaje)
        {
            if (document.getElementById(control).value.length < 3) 
            {
                document.getElementById(control).style.backgroundColor="#FFF3EC";
                document.getElementById(control).focus();
                document.getElementById(mensaje).style.display = "block"
                return false;                
            }
            else            
            {
                document.getElementById(control).style.backgroundColor="";
                document.getElementById(control).style.border = "";                
                document.getElementById(mensaje).style.display = "none"
                return true;                    
            }
       }
    


    function colapsarFiltros(btnColapsable,trContent,trTransparent)
    {
        var colapsable = document.getElementById(btnColapsable);
        var content = document.getElementById(trContent);
        var trasnparent = document.getElementById(trTransparent);
        
        if (content && trasnparent && colapsable)
        {
            
            if((content.style.display == "block") || (content.style.display == ""))
            {
                content.style.display = "none";
                trasnparent.style.display = "none";
                colapsable.className = "btn_tipo10";
            }
            else
            {
                content.style.display = "block";
                trasnparent.style.display = "block";
                colapsable.className = "btn_tipo11";
            }
        }
    }    
   
   function confirmDelete(mensajeMostrar) 
	{
		if (confirm(mensajeMostrar)) 
		{
			return true;
		}
		else
		{return false;}
	}
	
	function mensajeTabInactiva()
    {
        opendivwin('900','350','mensajeGenerico.aspx?titulo=&detalle=Recuerde que debe completar y publicar la vacante para activar estas opciones&boton=Aceptar');bloquear();
    }
