﻿var vez = Number(0);
function initRH01()
{
    var ctrl = getControl(document,'ddlSolNac','select');
    selSolNac(ctrl);
    var ctrl = getControl(document,'ddlSolEdoCiv','select');
    selSolEdoCiv(ctrl);
    var ctrl = getControl(document,'ddlSolRel','select');
    selSolRel(ctrl);
    var ctrl = getControl(document,'ddlConOcup','select');
    selOcupacion(ctrl);
    var ctrl = getControl(document,'ddlPadOcup','select');
    selOcupacion(ctrl);
    var ctrl = getControl(document,'ddlMadOcup','select');
    selOcupacion(ctrl);
    var ctrl = getControl(document,'chkbxConVive','input');
    pregVive(ctrl);
    var ctrl = getControl(document,'chkbxPadVive','input');
    pregVive(ctrl);
    var ctrl = getControl(document,'chkbxMadVive','input');
    pregVive(ctrl);
    evalHijos();
}

//funcion de comportamiento segun seleccion de Nacionalidad de Solicitante
//ctrl -> dropdownlist del q se selecciona la opcion
function selSolNac(ctrl)
{
    switch(ctrl.options[ctrl.selectedIndex].text)
	{
		case 'Seleccione':
		case 'Select':
					{
						document.getElementById('solNacEsp').style.display = 'none';
						document.getElementById('solRfcCurp').style.display = 'none';
						document.getElementById('solNoIMSS').style.display = 'none';
						break;
					}
		case 'Mexico':
					{
						document.getElementById('solNacEsp').style.display = 'none';
						document.getElementById('solRfcCurp').style.display = '';
						document.getElementById('txbxSolRFC').value = '';
						document.getElementById('txbxSolCURP').value = '';
						document.getElementById('solNoIMSS').style.display = '';
						document.getElementById('txbxSolNoIMSS').value = '';
						document.getElementById('solFecNac').style.display = 'none';
						break;
					}
		default:
		        {
		                document.getElementById('solNacEsp').style.display = '';
		                document.getElementById('txbxSolNacEsp').value = '';
						document.getElementById('solRfcCurp').style.display = 'none';
						document.getElementById('solNoIMSS').style.display = 'none';
						document.getElementById('solFecNac').style.display = '';
						document.getElementById('txbxSolFecNac').value = '';
						break;
		        }			
	}
}

//funcion de comportamiento segun seleccion de Estado Civil de Solicitante
//ctrl -> dropdownlist del q se selecciona la opcion
function selSolEdoCiv(ctrl)
{
    switch(ctrl.options[ctrl.selectedIndex].text)
	{
		case 'Seleccione':
		case 'Select':
					{
						document.getElementById('solEdoCivEsp').style.display = 'none';
						break;
					}
		case 'Otro':
		case 'Other':
					{
						document.getElementById('solEdoCivEsp').style.display = '';
						getControl(document, 'txbxSolEdoCivEsp', 'input').value = '';
						
						break;
					}
		default:
		        {
						document.getElementById('solEdoCivEsp').style.display = 'none';
						break;
		        }			
	}
}

//funcion de comportamiento segun seleccion de Estado Civil de Solicitante
//ctrl -> dropdownlist del q se selecciona la opcion
function selSolRel(ctrl)
{
    switch(ctrl.options[ctrl.selectedIndex].text)
	{
		case 'Seleccione':
		case 'Select':
					{
						document.getElementById('solRelEsp').style.display = 'none';
						break;
					}
		case 'Otro':
		case 'Other':
					{
						document.getElementById('solRelEsp').style.display = '';
						getControl(document, 'txbxSolRelEsp', 'input').value = '';
						break;
					}
		default:
		        {
						document.getElementById('solRelEsp').style.display = 'none';
						break;
		        }			
	}
}

//funcion de comportamiento segun seleccion de Ocupacion
//ctrl -> dropdownlist del q se selecciona la opcion
function selOcupacion(ctrl)
{
    var padre = ctrl.parentNode;
    var spanOcup = getControl(padre, 'ocupEsp', 'span');
    
    switch(ctrl.options[ctrl.selectedIndex].text)
	{
		case 'Otro':
		case 'Other':
					{
						spanOcup.style.display = '';
						break;
					}
		default:
		        {
						spanOcup.style.display = 'none';
						break;
		        }			
	}
}

//funcion q sirve para mostrar/ocultar informacion en caso de q vive la persona
//ctrl -> control checkbox q influye en comportamiento de controles
function pregVive(ctrl)
{
    if(ctrl.checked)
    {
        var spanDatosVive = getControl(ctrl.parentNode.parentNode, 'datosVive', 'span');
        spanDatosVive.style.display = '';
        limpiaCtrls(spanDatosVive);
        getControl(spanDatosVive, 'ocupEsp', 'span').style.display = 'none';
        var inputs = spanDatosVive.getElementsByTagName('input');
        var i, ctrlRadio;
        for(i = 0; i<inputs.length; i++)
        {
            if(inputs[i].type == 'radio')
            {
                ctrlRadio = inputs[i];
                selDom(ctrlRadio);
                break;
            }
        }
        
    }
    else
    {
        getControl(ctrl.parentNode.parentNode, 'datosVive', 'span').style.display = 'none';
    }
}

//funcion q sirve para mostrar/ocultar informacion de domicilio del Conyuge, Padre, Madre
//ctrl -> control radiobutton q influye en comportamiento de controles
function selDom(ctrl)
{
    var padre = ctrl.parentNode.parentNode;
    var spanDomicilio = getControl(padre, 'Domicilio', 'span');
    
    switch(ctrl.value)
	{
	    // 0 -> Mismo q solicitante
		case '0':
					{
					    spanDomicilio.style.display = 'none';
						break;
					}
		// 1 -> Otro
		case '1':
					{
					    spanDomicilio.style.display = '';
						break;
					}
		// 2 -> Mismo q Padre
		case '2':
					{
					    spanDomicilio.style.display = 'none';
						break;
					}
		default:
		            {
		                spanDomicilio.style.display = 'none';
						break;
		            }
	}
}

function valDatosPersonales(showAlert)
{
    var ddls = document.getElementsByTagName('select');
    var i, err, ctrlEv, ctrlNac, errTmp;
    
    err='';
    edadCURP(document.getElementById('txbxSolFecNac'))
    //Nacionalidad
    ctrlNac = getControl(document, 'ddlSolNac', 'select');
    if(ctrlNac.options[ctrlNac.selectedIndex].text == 'Seleccione'||
        ctrlNac.options[ctrlNac.selectedIndex].text == 'Select') 
         err += " - " + obtieneTexto('val01ErrNacionalidad') + "\n";//***" - Nacionalidad \n";
    if(ctrlNac.options[ctrlNac.selectedIndex].text == 'Otro'||
        ctrlNac.options[ctrlNac.selectedIndex].text == 'Other')
    {
        ctrlEv = getControl(document, 'txbxSolNacEsp', 'input');
        if(esTxbxVacio(ctrlEv))
            err += " - " + obtieneTexto('Especifique') + " " + obtieneTexto('val01ErrNacionalidad') + "\n";//***" - Especifique Nacionalidad \n";
    }
    
    //Apellido Paterno Solicitante
    ctrlEv = getControl(document, 'txbxSolApPaterno', 'input');
    if(esTxbxVacio(ctrlEv))
        err += " - " + obtieneTexto('ApPaterno') + "\n";//***" - Apellido Paterno \n"
        
    //Apellido Materno Solicitante
    ctrlEv = getControl(document, 'txbxSolApMaterno', 'input');
    if(esTxbxVacio(ctrlEv))
        err += " - " + obtieneTexto('ApMaterno') + "\n";//***" - Apellido Materno \n"
    
    //Nombre(s) Solicitante
    ctrlEv = getControl(document, 'txbxSolNombre', 'input');
    if(esTxbxVacio(ctrlEv))
        err += " - " + obtieneTexto('Nombre') + "\n";//***" - Nombre(s) \n"
        
    //Sexo
    ctrlEv = getControl(document, 'ddlSolSexo', 'select');
    if(ctrlEv.options[ctrlEv.selectedIndex].text == 'Seleccione'||
        ctrlEv.options[ctrlEv.selectedIndex].text == 'Select')
        err += " - " + obtieneTexto('val01ErrSexo') + "\n";//***" - Sexo \n";
    
    //Estado Civil
    ctrlEv = getControl(document, 'ddlSolEdoCiv', 'select');
    if(ctrlEv.options[ctrlEv.selectedIndex].text == 'Seleccione' ||
        ctrlEv.options[ctrlEv.selectedIndex].text == 'Select')
        err += " - " + obtieneTexto('val01ErrEdoCivil') + "\n";//***" - Estado Civil \n";
    if(ctrlEv.options[ctrlEv.selectedIndex].text == 'Otro' ||
        ctrlEv.options[ctrlEv.selectedIndex].text == 'Other')
    {
        ctrlEv = getControl(document, 'txbxSolEdoCivEsp', 'input');
        if(esTxbxVacio(ctrlEv))
            err += " - " + obtieneTexto('val01ErrEspEdoCivil') + "\n";//***" - Especifique Estado Civil \n";
    }
    
    //Religion
    ctrlEv = getControl(document, 'ddlSolRel', 'select');
    if(ctrlEv.options[ctrlEv.selectedIndex].text == 'Seleccione' ||
        ctrlEv.options[ctrlEv.selectedIndex].text == 'Select')
        err += " - " + obtieneTexto('val01ErrReligion') + "\n";//***" - Religion \n";
    if(ctrlEv.options[ctrlEv.selectedIndex].text == 'Otro' ||
        ctrlEv.options[ctrlEv.selectedIndex].text == 'Other')
    {
        ctrlEv = getControl(document, 'txbxSolRelEsp', 'input');
        if(esTxbxVacio(ctrlEv))
            err += " - " + obtieneTexto('val01ErrEspReligion') + "\n";//***" - Especifique Religion \n";
    }
    
    //RFC / CURP
    if(ctrlNac.options[ctrlNac.selectedIndex].text == 'Mexico')
    {
        ctrlEv = getControl(document, 'txbxSolRFC', 'input');
        if(esTxbxVacio(ctrlEv))
            err += " - " + obtieneTexto('val01ErrRFC') + "\n";//***" - RFC \n";
        else
        {
            errTmp = valRFC(ctrlEv);
            if (errTmp.length > 0)
		        err += '- ' + errTmp + "\n";//***'- ' + errTmp + '\n';
        }
        
        ctrlEv = getControl(document, 'txbxSolCURP', 'input');
        if(esTxbxVacio(ctrlEv))
            err += " - " + obtieneTexto('val01ErrCURP') + "\n";//***" - CURP \n";
        else
        {
            errTmp = valCURP(ctrlEv);
            if (errTmp.length > 0)
		        err += '- ' + errTmp + "\n";//***'- ' + errTmp + '\n';
        }
    }
    if(ctrlNac.options[ctrlNac.selectedIndex].text != 'Mexico')
    {
        ctrlEv = getControl(document, 'txbxSolFecNac', 'input');
        if(esTxbxVacio(ctrlEv))
            err += " - " + obtieneTexto('val01ErrFecNac') + "\n";//***" - RFC \n";
    }
    
    
    //Edad
    ctrlEv = getControl(document, 'txbxSolEdad', 'input');
    if(esTxbxVacio(ctrlEv))
        err += " - " + obtieneTexto('val01ErrEdad') + "\n";//***" - Edad \n"
    
    //No de IMSS
    if(ctrlNac.options[ctrlNac.selectedIndex].text == 'Mexico')
    {
        ctrlEv = getControl(document, 'txbxSolNoIMSS', 'input');
        if(esTxbxVacio(ctrlEv))
            err += " - " + obtieneTexto('val01ErrNoImss') + "\n";//***" - No. de IMSS \n";
    }
    
    //Telefonos
    ctrlEv = getControl(document, 'solTels', 'span');
    var tels = new Array();
    var telId = new RegExp('(WucTel){1,}');
    
    for(i=0; i<ctrlEv.childNodes.length; i++)
    {
        if(ctrlEv.childNodes[i].tagName == "SPAN" &&
            telId.test(ctrlEv.childNodes[i].id))
        {
            tels.push(ctrlEv.childNodes[i]);
        }
    }
    
    for(i=0; i<tels.length; i++)
    {
        if(tels[i].style.display == '' || tels[i].style.display == 'block')
        {
            var ctrlTmp;
            var padre = tels[i];
            errTmp = valTel(padre);
            
            if(errTmp.length > 0)
            {
                err += " = " + obtieneTexto('Telefono')  + " " + (i+1) + " =\n" + errTmp;//***'= Telefono ' + (i+1) + ' =\n' + errTmp;
            }
        }
        else
            break;
    }
    
    //Emails
    ctrlEv = getControl(document, 'solMails', 'span');
    var mails = new Array();
    var mailId = new RegExp('(WucMail){1,}');
    
    for(i=0; i<ctrlEv.childNodes.length; i++)
    {
        if(ctrlEv.childNodes[i].tagName == "SPAN" &&
            mailId.test(ctrlEv.childNodes[i].id))
        {
            mails.push(ctrlEv.childNodes[i]);
        }
    }
    
    for(i=0; i<mails.length; i++)
    {
        if(mails[i].style.display == '' || mails[i].style.display == 'block')
        {
            var ctrlTmp;
            var padre = mails[i];
            errTmp = valMail(padre);
            
            if(errTmp.length > 0)
            {
                err += " = " + obtieneTexto('Mail') + " " + (i+1) + " =\n" + errTmp;//***'= Email ' + (i+1) + ' =\n' + errTmp;
            }
        }
        else
            break;
    }
        
    //Domicilio Solicitante
    ctrlEv = getControl(document, 'upSolDom', 'div');
    ctrlEv = getControl(ctrlEv, 'spanDomicilio','span');
    errTmp = valDomicilio(ctrlEv);
    if(errTmp.length > 0)
    {
        err += " = " + obtieneTexto('val01ErrDomSol') + " =\n"+ errTmp;//***'= Domicilio Solicitante = \n' + errTmp;
    }
    
    //Conyuge
    ctrlEv = getControl(document, 'conyuge', 'span');
    var ctrlVive, ctrlApPat, ctrlApMat, ctrlNom;
    
    ctrlVive = getControl(ctrlEv, 'chkbxConVive', 'input');
    ctrlApPat = getControl(ctrlEv, 'ApPaterno', 'input');
    ctrlApMat = getControl(ctrlEv, 'ApMaterno', 'input');
    ctrlNom = getControl(ctrlEv, 'Nombre', 'input');
    
    if(ctrlVive.checked || !esTxbxVacio(ctrlApPat) || !esTxbxVacio(ctrlApMat) ||!esTxbxVacio(ctrlNom))
    {
        errTmp = valFamCercana(ctrlEv);
        if(errTmp.length > 0)
        {
            err += " = " + obtieneTexto('val01ErrPareja') + " =\n" + errTmp;//***'= Esposo(a) = \n' + errTmp;
        }
    }
    
    //Padre
    ctrlEv = getControl(document, 'padre', 'span');
    errTmp = valFamCercana(ctrlEv);
    if(errTmp.length > 0)
    {
        err += " = " + obtieneTexto('val01ErrPadre') + " =\n" + errTmp;//***'= Padre = \n' + errTmp;
    }
    
    //Madre
    ctrlEv = getControl(document, 'madre', 'span');
    errTmp = valFamCercana(ctrlEv);
    if(errTmp.length > 0)
    {
        err += " = " + obtieneTexto('val01ErrMadre') + " =\n" + errTmp;//***'= Madre = \n' + errTmp;
    }
    
    //Hijos
    ctrlEv = getControl(document, 'TieneHijos', 'span');
    var ctrlHijosSi = getControl(ctrlEv, 'rdbtnSolHijSi', 'input');
    var ctrlHijosNo = getControl(ctrlEv, 'rdbtnSolHijNo', 'input');
    
    if(!ctrlHijosSi.checked && !ctrlHijosNo.checked)
    {
        err += " = " + obtieneTexto('val01ErrHijos') + " =\n" + " - " + obtieneTexto('Pregunta') + "\n";//***"= Hijos =\n - Pregunta \n";
    }
    
    if(ctrlHijosSi.checked && !ctrlHijosNo.checked)
    {
        ctrlEv = getControl(document, 'solHijos', 'span');
        var hijos = new Array();
        var hijoId = new RegExp('(WucHijo){1,}');
        
        for(i=0; i<ctrlEv.childNodes.length; i++)
        {
            if(ctrlEv.childNodes[i].tagName == "SPAN" &&
                hijoId.test(ctrlEv.childNodes[i].id))
            {
                hijos.push(ctrlEv.childNodes[i]);
            }
        }
        
        for(i=0; i<hijos.length; i++)
        {
            if(hijos[i].style.display == '' || hijos[i].style.display == 'block')
            {
                var ctrlTmp;
                var padre = hijos[i];
                errTmp = valNomb(padre, 1);
                
                if(errTmp.length > 0)
                {
                    err += " = " + obtieneTexto('val01ErrHijo') + " " + (i+1) + " =\n" + errTmp;//***'= Hijo ' + (i+1) + ' =\n' + errTmp;
                }
            }
            else
                break;
        }
    }
    
    
    //Muestra de Errores posibles:
    if(err.length > 1)
    {
        var hdr = obtieneTexto('MsgVerifique') + "\n";//***'Verifique los siguientes campos:  \n';
        if(showAlert)
            alert(hdr + err);
        return hdr + err;
    }
    else
        return true;
}

function evalHijos()
{
    var _ctrlSpan, ctrlSi, _ctrlNo, _err;
    
    _ctrlSpan = getControl(document, 'solHijos', 'span');
    _ctrlSi = getControl(document, 'rdbtnSolHijSi', 'input');
    _ctrlNo = getControl(document, 'rdbtnSolHijNo', 'input');
    
    if(!_ctrlSi.checked && !_ctrlNo.checked)
    {
        _ctrlSpan.style.display = 'none';
        for(var i = 2 ; i <= 10 ; i++)
        {
            _ctrlWEmpServ = getControl(_ctrlSpan, 'WucHijo'+i, 'span');
            _ctrlWEmpServ.style.display = 'none';
        }
        getControl(_ctrlSpan, 'btnSolHijosAdd', 'input').disabled = false;
        getControl(_ctrlSpan, 'btnSolHijosRem', 'input').disabled = true;
    }
    if(_ctrlSi.checked && !_ctrlNo.checked)
    {
        _ctrlSpan.style.display = '';
    }
    if(!_ctrlSi.checked && _ctrlNo.checked)
    {
         _ctrlSpan.style.display = 'none';
         limpiaCtrls(_ctrlSpan);
         for(var i = 2 ; i <= 10 ; i++)
        {
            _ctrlWEmpServ = getControl(_ctrlSpan, 'WucHijo'+i, 'span');
            _ctrlWEmpServ.style.display = 'none';
        }
        getControl(_ctrlSpan, 'btnSolHijosAdd', 'input').disabled = false;
        getControl(_ctrlSpan, 'btnSolHijosRem', 'input').disabled = true;
    }
}

//Funcion que se ejecuta cuando se selecciona el radiobutton de hijos
function pregHijosSi(ctrl)
{
    if(ctrl.checked)
    {
        var spanDatosVive = getControl(ctrl.parentNode.parentNode, 'solHijos', 'span');
        spanDatosVive.style.display = '';
    }
    else
    {
        getControl(ctrl.parentNode.parentNode, 'solHijos', 'span').style.display = 'none';
    }
}
//Funcion que se ejecuta cuando se selecciona el radiobutton de no tener hijos
function pregHijosNo(ctrl)
{
    if(!ctrl.checked)
    {
        var spanDatosVive = getControl(ctrl.parentNode.parentNode, 'solHijos', 'span');
        spanDatosVive.style.display = '';
    }
    else
    {
        getControl(ctrl.parentNode.parentNode, 'solHijos', 'span').style.display = 'none';
        ctrlEv = getControl(document, 'solHijos', 'span');
        limpiaCtrls(ctrlEv);
        var hijos = new Array();
        var hijoId = new RegExp('(WucHijo){1,}');
        
        for(i=1; i<ctrlEv.childNodes.length; i++)
        {
            if(ctrlEv.childNodes[i].tagName == "SPAN" &&
                hijoId.test(ctrlEv.childNodes[i].id))
            {
                ctrlEv.childNodes[i].style.display = 'none';                
            }
        }
        
        
    }
}


// funcion para evaluar los datos de la "familia cercana" [padre, madre, conyuge]
// padre -> span contenedor de los datos de padre / madre / conyuge
function valFamCercana(padre)
{
    var err = "", ctrlTmp, ctrlVive, errTmp = "";
    
    ctrlVive = getControl(padre, 'Vive', 'input');
    
    ctrlTmp = getControl(padre, 'ApPaterno', 'input');
    if(esTxbxVacio(ctrlTmp))
        err += " - " + obtieneTexto('ApPaterno') + "\n";//***" - Apellido Paterno \n";
    
    ctrlTmp = getControl(padre, 'ApMaterno', 'input');
    if(esTxbxVacio(ctrlTmp))
        err += " - " + obtieneTexto('ApMaterno') + "\n";//***" - Apellido Materno \n";
    
    ctrlTmp = getControl(padre, 'Nombre', 'input');
    if(esTxbxVacio(ctrlTmp))
        err += " - " + obtieneTexto('Nombre') + "\n";//***" - Nombre(s) \n";
    
    if(ctrlVive.checked)
    {
        ctrlTmp = getControl(padre, 'Ocup', 'select');
        if(ctrlTmp.options[ctrlTmp.selectedIndex].text == 'Seleccione' ||
            ctrlTmp.options[ctrlTmp.selectedIndex].text == 'Select')
        {
            err += " - " + obtieneTexto('Ocupacion') + "\n";//***" - Ocupacion \n";
        }
        if(ctrlTmp.options[ctrlTmp.selectedIndex].text == 'Otro' ||
            ctrlTmp.options[ctrlTmp.selectedIndex].text == 'Other')
        {
            ctrlTmp = getControl(padre, 'OcupEsp', 'input');
            if(esTxbxVacio(ctrlTmp))
                err += " - " + obtieneTexto('Especifique') + " " + obtieneTexto('Ocupacion') + "\n";//***" - Especifique Ocupacion \n";
        }
        
        rdbtns = padre.getElementsByTagName('input');
        regexCtrl = new RegExp('(DomOtr){1,}');
        for(i=0; i<rdbtns.length; i++)
        {
            if(rdbtns[i].type == 'radio')
            {
                if(rdbtns[i].checked)
                {
                    errTmp = "";
                    if(regexCtrl.test(rdbtns[i].id))
                    {
                        ctrlTmp = getControl(padre, 'spanDomicilio', 'span');
                        errTmp = valDomicilio(ctrlTmp);
                        if(errTmp.length > 0)
                            errTmp = " * " + obtieneTexto('Domicilio') + "\n" + errTmp;//***" * Domicilio * \n" + errTmp;
                    }
                    break;
                }
                else
                {
                    errTmp = " - " + obtieneTexto('Pregunta') + " " + obtieneTexto('Domicilio') + "\n";//***" - Pregunta Domicilio \n";
                }
                    
            }
        }
        if(errTmp.length > 0)
            err += errTmp;
    }
    
    return err;
}
