/* funciones*/
function updateCountry(sel) {
    sel.form.elements['reload'].value = 1;
    sel.form.elements['continue'].disabled = true;
    sel.form.submit();
}

function setActionResidenceCountry( sel ) {
	if (sel.value == 0) {
		return false;
	}
	sel.form.city.value = '';
    sel.form.action = 'registro-personal.php?countrysel='+sel.value+'#res_country';
    updateCountry(sel);
}

function getParentTR(e) {
    try {
        var p = e.parentNode;
        while(p && (p.nodeName !== 'TR')) {
            p = p.parentNode;
        }

        return p;
    } catch(ex) {
        alert(ex.description);
        alert(e);
    }
}

function validate(frm, edit) {
    var lbls = frm.getElementsByTagName('label');
    
    var e, errs = false;
    var mensaje_err = document.getElementById('mensaje_error');
    var div_doc_length = document.getElementById('document_length');
    var div_doc_format = document.getElementById('document_format');
    var tr_doc = document.getElementById('tr_document');

    // solo se usan en modo add
    if(!edit)
    {
        var CP = document.getElementById('char_pwd');
        CP.style.display = "none";

        var div_eml = document.getElementById('div_eml');
        div_eml.style.display = "none";
    }

    div_doc_length.style.display = "none";
    div_doc_format.style.display = "none";
    tr_doc.className = '';
    mensaje_err.innerHTML = '';


    var pwd_corta, email_diff, doc_number_error = false;
    
    for(var i = 0, j = lbls.length; i < j; i++) {
        var lbl = lbls.item(i);

        if(lbl && (lbl.className == 'requerido') && (e = document.getElementById(lbl.htmlFor)))
        {
            var tr = getParentTR(lbl);
            if((e.nodeName == 'INPUT' && !e.value) || (e.nodeName == 'TEXTAREA' && !e.value)
            || (e.nodeName == 'SELECT' && !e.multiple && !e.selectedIndex || e.selectedIndex==0))
            {
                errs = true;

                tr.oldClassName = tr.className;

                tr.className = 'requerido-incompleto';
            } else {
                tr.className = (tr.oldClassName ? tr.oldClassName : '');
            }
        }
    }
    try
    {
        var es = frm.elements;
		if (isEqualString(es['password'].value,es['cpassword'].value) == false) {
			getParentTR(es['password']).className = 'requerido-incompleto';
			getParentTR(es['cpassword']).className = 'requerido-incompleto';
			errs = true;
		} else {
			getParentTR(es['password']).className = '';
			getParentTR(es['cpassword']).className = '';
		}
		if (isEqualString(es['email_main'].value,es['cemail'].value) == false) {
			getParentTR(es['email_main']).className = 'requerido-incompleto';
			getParentTR(es['cemail']).className = 'requerido-incompleto';
			errs = true;
		} else {
			getParentTR(es['email_main']).className = '';
			getParentTR(es['cemail']).className = '';
		}
		if (isEmail(es['email_main'].value) == false) {
			getParentTR(es['email_main']).className = 'requerido-incompleto';
			errs = true;
		} else {
			getParentTR(es['email_main']).className = '';
		}
        if(es['phone1_type'])
        {

			var i = 1;

			if (((es['phone' + i + '_area'].value).length == 0)||((es['phone' + i + '_number'].value).length == 0)||(!es['phone' + i + '_type'].selectedIndex)) {
				getParentTR(es['phone' + i + '_type']).className = 'requerido-incompleto';
				errs = true;
			} else {
				getParentTR(es['phone' + i + '_type']).className = '';
			}

            for(var i = 2; i <= 3; i++) {
            	if (
                   (es['phone' + i + '_area'].value ||
                    es['phone' + i + '_number'].value) ||
                   es['phone' + i + '_type'].selectedIndex
            	) {
					if ((!es['phone' + i + '_type'].selectedIndex)) {
						getParentTR(es['phone' + i + '_type']).className = 'requerido-incompleto';
						errs = true;
					} else {
						getParentTR(es['phone' + i + '_type']).className = '';
					}
            	} else {
					getParentTR(es['phone' + i + '_type']).className = '';
            	}

            }
        }
    } catch(e) { }
    if(errs) {
        IF.style.display = "block";
    }else{
        IF.style.display = "none";
    }

    if(errs)
    {
        return false;
    }

    //validar pwd
    pwd_corta = validar_pwd();

    // validar email
    email_diff = validar_conf_email();

    // valida nro documento
    doc_number_error = valDocNumber();
    
    fuente_valida = valFuente();

    if( pwd_corta || email_diff || doc_number_error || fuente_valida)
    {
    	IF.style.display = "block";
        return false;
    }
}

/*** REGISTRO ESTUDIOS ***/

/*
 * Mostrar el combo de porcentaje de avance solo si se
 * selecciona estado "En Curso"
 */
function showAdvancePercentage(sel, id)
{
    var ap = document.getElementById('AdvancePercentage' + (id ? id : ''));
    var selInd = sel.options[sel.selectedIndex].value;

    if( 'F' == selInd )
    {
        ap.className = 'finished';
    } else {
        ap.className = 'in-course';
    }

    var es = sel.form.elements;
    var disableDate = !(( 'U' == selInd ) || ( 'F' == selInd ));

    if(id) {
        es['fd[' + id + '][Date_Month]'].disabled =
        es['fd[' + id + '][Date_Year]'].disabled =
        disableDate;
    } else {
        es['n_fd[Date_Month]'].disabled =
        es['n_fd[Date_Year]'].disabled =
        disableDate;
    }

}

/*
 * Deshabilitar boton de continuar al agregar estudio
 */
function addStudyClick(btn)
{
    var tr   = document.getElementById('tr_add');
    var div  = document.getElementById('SaveStudy');

    tr.className      = '';
    div.style.display = 'none';

    return _studyClick(btn);
}

function editStudyClick(btn, id)
{
    return _studyClick(btn, id);
}

function _studyClick(btn, id)
{

    var frm = btn.form;
    var es = frm.elements;
    var suf, pre;
    var error_msg       = document.getElementById('mensaje_error');
    var study_status;
    var err_year, err_month, err_diff;


    if(id) {
        suf =  '[' + id + ']';
        pre = '';
        study_status    = document.getElementById('status' + suf).selectedIndex;
    } else {
        study_status    = document.getElementById('n_status').selectedIndex;
        suf = '';
        pre = 'n_';
        id = '';
    }

    var EI = document.getElementById('EmptyInstitute' + id);
    var ET = document.getElementById('EmptyTitle' + id);
    var EL = document.getElementById('EmptyLevel' + id);
    var ES = document.getElementById('EmptyStatus' + id);
    var ED = document.getElementById('EmptyDate' + id);


    var lbl = getParentTR(es[pre + 'institute' + suf]).getElementsByTagName('label')[0];
    var err = false;
    var tds = document.getElementById('Title' + id).childNodes;
    var e;
    var other_field     = (e = document.getElementById('n_other')) ? e.checked : false;
    var other_career    = (e = document.getElementById('n_other_career')) ? e.value : '';
    var this_title      = es[pre + 'study_level' + suf].value;

    getParentTR(lbl).className = 'none';

    EI.style.display = "none";
    ET.style.display = "none";
    EL.style.display = "none";
    ES.style.display = "none";
    ED.style.display = "none";

	
    for(var i = 0; i < tds.length; i++) {
        var td = tds.item(i);
        td.className = ('requerido-incompleto' == td.className) ? td.oldClassName : td.className;
    }

    if(!es[pre + 'institute' + suf].value) {
        getParentTR(lbl).className = 'requerido-incompleto';
        EI.style.display = "block";
        err = true;

    }

    if(es[pre + 'other' + suf].checked)
    {

        if(!es[pre + 'other_career' + suf].value)
        {
            for(var i = 0; i < tds.length; i++) tds.item(i).className = 'requerido-incompleto';

            es[pre + 'other_career' + suf].parentNode.className = 'show-errors';
            ET.style.display = "block";
            err = true;
        }
        else
        {
            for(var i = 0; i < tds.length; i++) {
                var td = tds.item(i);
                td.className = ('requerido-incompleto' == td.className) ? td.oldClassName : td.className;
            }

            es[pre + 'other' + suf].parentNode.className = 'hide-errors';
        }
    }

    var title;


    switch(es[pre + 'study_level' + suf].value)
    {
        case 'A':
            title = 'sec_career_id';
            break;

        case 'C':
            title = 'career_id';
            break;

        case 'B':
        case 'D':
        case 'E':
        case 'F':
            title = 'knowledge_area_id';
            break;

        default: err = true;
        break;
    }


    if(es[pre + 'study_level' + suf].value == 0)
    {
        EL.style.display = "block";
        err = true;
    }

    if(study_status == 0)
    {
        ES.style.display = "block";
        err = true;
    }


    if(title)
    {
        //alert(es[pre + title + suf].selectedIndex);

        var tr = getParentTR(es[pre + title + suf]);

        var tc = ('B' == es[pre + 'study_level' + suf].value) && !es[pre + 'other_career' + suf].value;

        for(var td = tr.firstChild; td; td = td.nextSibling)
        {
            td.oldClassName = td.className;
            td.className = (tc || (0 == es[pre + title + suf].selectedIndex)) ? 'requerido-incompleto' : td.oldClassName;
        }

        var career_condition  =  (0 == es[pre + title + suf].selectedIndex);
        var other_condition   = ( ((other_field == true) && (other_career == '')) || (other_field == false) );

        var study_condition = career_condition && other_condition;

        if(study_condition) {
			ET.style.display = "block";
			err = true;
			getParentTR(es[pre + 'study_level' + suf]).className = 'requerido-incompleto';
		} else {
			getParentTR(es[pre + 'study_level' + suf]).className = '';
		}
    } else {
		getParentTR(es[pre + 'study_level' + suf]).className = 'requerido-incompleto';
	}

    if(0 == es[pre + 'status' + suf].selectedIndex) {
		err = true;
		getParentTR(es[pre + 'status' + suf]).className = 'requerido-incompleto';
	}

    var chklast = true;

    // en curso
    if( study_status == 2 )
    {
        err_diff = false;
        chklast = false;
    }
    else
    {
        err_diff  = chkDates(id,'form_registro_estudios', false);
    }

    err_year  = chkYear(id, 'form_registro_estudios', false, chklast);
    err_month = chkMonth(id, 'form_registro_estudios', false, chklast);

    if(err_year || err_month || err_diff)
    {
        err = true;
    }


	if ((document.getElementById('n_knowledge_area_id').value == '0') && (document.getElementById('n_study_level').value == 'B')) {
		document.getElementById('EmptyArea').style.display = "block";
		err = true;
	} else {
		document.getElementById('EmptyArea').style.display = "none";
	}

    if(err)
    {
        //error_msg.innerHTML = 'Ingrese los campos requeridos';
        return false;
    }

    es['__action'].value = id ? 'editStudy' : 'addStudy';

    es['continue'].disabled = true;
    //es['__study_id'].value = id;


    return true;
}

/*
 * Mostrar el area de conocimiento solo si el nivel
 * es Master o Postgrado
 */
var __CSS = { '0': 'secundario', A: 'secundario', B: 'terciario', C: 'universitario', D: 'posgrado', E: 'master', F: 'doctorado' }

function showTitleFields(sel, id) {
	var ka = document.getElementById('Title' + (id ? id : ''));
	var v  = sel.options[sel.selectedIndex].value;

	ka.className = __CSS[v];

	var es = sel.form.elements;
	var chk = es[(id ? '' : 'n_') + 'other' + (id ? '[' + id + ']' : '')];
	var lbl = document.getElementById('lbl_other[' + (id ? id : '') + ']');

	try {

		if('A' == v) {
			chk.checked = false;
			disableOtherTitle();
		}

		if(chk) {
			if( 'B' == v  ) {
				chk.checked = true;
				chk.onclick();
				chk.style.display = 'none';
				lbl.style.display = 'none';
			} else {
				chk.style.display = 'inline';
				lbl.style.display = 'inline';
			}
		}
	} catch(e) { }
}

/*
 * Habilitar (o no) el campo de otra carrera
 * solo si se tilda esa opcion.
 * El combo Titulo se habilita a la inversa.
 */
function enableOtherCareer(chk, id)
{
    var es = chk.form.elements;

    if(id) {
        es['career_id[' + id +']'].disabled = chk.checked;
        //es['other_career[' + id + ']'].disabled = !chk.checked;
    } else {
        es['n_career_id'].disabled = chk.checked;
        //es['n_other_career'].disabled = !chk.checked;
    }
}

function removeStudy(id)
{
    if(confirmDelete()) {
        var tb = document.getElementById('Study' + id);
        var t = tb.parentNode;
        t.removeChild(tb);

        return true;
    }

    return false;
}

// Variables globales utilizadas por addLanguage
var LT, empty;

/*
 * Agregar un nuevo idioma para este usuario.
 * Utiliza JavaScript avanzado y el DOM.
 */
function addLanguage(frm) {
    var lang = frm.elements['languages'];
    var lvl  = frm.elements['language_levels'];

    if(!lang.selectedIndex || !lvl.selectedIndex) return false;

    frm.elements['continue'].disabled = true;

    frm.elements['__action'].value = 'Languages';

    var formAction = 'registro-estudios.php#set_idioma';
    frm.action = formAction;

    return true;
}

function onLanguageLevelChange(sel, old)
{
    if(!sel.selectedIndex) {
        for(var i = 0; i < sel.options.length; i++) {
            sel.options[i].selected = (sel.options[i].value == old);
        }
    }
}

/*
 * Quita un idioma
 */
function removeLanguage(id, frm)
{

    var tr = document.getElementById('lang_' + id);

    if(!tr) return false;

    LT.removeChild(tr);

    var rl = document.getElementById('remLanguage');

    rl.value = '1';

    frm.submit();
}

function validateStudies(frm)
{
    var IF = document.getElementById('IncompleteFields');
    IF.style.display = 'none';

    if(hasAddedStudy()) return false;

    var SK = document.getElementById('Skills');
    var lbls = SK.getElementsByTagName('label');
    var err = false;

    for(var i = 0, j = lbls.length; i < j; i++) {
        var lbl = lbls.item(i);

        if(lbl && ('requerido' == lbl.className) && (e = document.getElementById(lbl.htmlFor))) {
            var tr = getParentTR(lbl);

            if(e.selectedIndex) {
                tr.className = '';
            } else {
                err = true;
                tr.className = 'requerido-incompleto';
            }
        }
    }

    var lbls = document.getElementById('Languages').getElementsByTagName('label');

    for(var i = 0, j = lbls.length; i < j; i++) {
        var lbl = lbls.item(i);

        if(lbl && ('requerido' == lbl.className) && (e = document.getElementById(lbl.htmlFor))) {
            var tr = getParentTR(lbl);

            if(e.selectedIndex) {
                tr.className = '';
            } else {
                err = true;
                tr.className = 'requerido-incompleto';
            }
        }
    }

    if(err) {
        IF.style.display = 'block';
    }

    return !err;
}

function addExtraSkillClick(btn)
{
    var es = btn.form.elements;

    if(((es['extra_skill_name'].value &&  es['skill_other'].checked)
      || es['opt_skill_id'].selectedIndex)
      && es['opt_skill_level'].selectedIndex)
    {
        es['continue'].disabled = true;
        es['__action'].value = "Skills";


        return true;
    }

    return false;
}

function showOtherSkill(chk)
{
    var SO = document.getElementById('SkillOther');

    SO.className = chk.checked ? 'skill-other' : 'skill-optional';
}

/*** REGISTRO EXPERIENCIA ***/

/*
 * Deshabilitar el boton de continuar
 */
function addExperienceClick(btn)
{

    var EF = document.getElementById('EmptyFields');
    var MT = document.getElementById('MaxTasks');
    var lbls = document.getElementById('NewExperience').getElementsByTagName('label');
    var frm = btn.form;
    var err = false;
    var err_year, err_month, err_diff = false;

    var ED = document.getElementById('EmptyDate');
    var trp = document.getElementById('tr_period');

    var divExp    = document.getElementById('AddExp');
    var tr        = document.getElementById('tr_add');

    ED.style.display = "none";
    trp.className = '';

    tr.ClassName             = '';
    divExp.style.display     = "none";

    EF.style.display = "none";
    MT.style.display = "none";

    for(var i = 0; i < lbls.length; i++)
    {
        var lbl = lbls.item(i);

        if(lbl && ('requerido' == lbl.className) && lbl.htmlFor)
        {
            var tr = getParentTR(lbl);

            tr.className = '';

            var e = document.getElementById(lbl.htmlFor);

            if(e && !e.value) {
                err = true;
                tr.className = 'requerido-incompleto';
                EF.style.display = "block";
            }
        }
    }

    var faid = frm.elements['n_functional_area_id'];

    if(!faid.selectedIndex) {
        err = true;
        getParentTR(faid).className = 'requerido-incompleto';
    } else {
        getParentTR(faid).className = '';
    }

    var sid = frm.elements['n_seniority_id'];

    if(!sid.selectedIndex) {
        err = true;
        getParentTR(sid).className = 'requerido-incompleto';
    } else {
        getParentTR(sid).className = '';
    }

//    var iid = frm.elements['n_industry_id'];

//    if(!iid.selectedIndex) {
//        err = true;
//        getParentTR(iid).className = 'requerido-incompleto';
//    } else {
//        getParentTR(iid).className = '';
//    }

    frm.elements['continue'].disabled = !err;

    err_year  = chkYear('', 'form_registro_experiencia', true, true);
    err_month = chkMonth('', 'form_registro_experiencia', true, true);

    if( !err_year && !err_month )
    {

        err_diff  = chkDates('', 'form_registro_experiencia', true);
    }

    if(err_year || err_month || err_diff)
    {
        err = true;
    }


    if ( !err )
    {

        // cantidad de caracteres para tareas
        var tasks_field = document.getElementById('n_tasks_description').value;
        var tr_tasks    = document.getElementById('tr_tareas');

        if(tasks_field.length > 700)
        {
            MT.style.display = "block";
            tr_tasks.className    = 'requerido-incompleto';

            return false;
        }
    }

    return !err;
}

function editExperienceClick(btn, id)
{
    var EF = document.getElementById('EmptyFields' + id);
    var MT = document.getElementById('MaxTasks' + id);
    var lbls = document.getElementById('Experience-' + id).getElementsByTagName('label');
    var frm = btn.form;
    var err = false;
    var suf = '[' + id + ']';

    var tasks_field = document.getElementById('tasks_description' + suf).value;
    var tr_tasks    = document.getElementById('tr_tareas'+id);
    var err_diff = false;

    var ED = document.getElementById('EmptyDate' + id);
    var trp = document.getElementById('tr_period' + id);

    ED.style.display = "none";
    trp.className = '';

    EF.style.display = "none";

    for(var i = 0; i < lbls.length; i++) {
        var lbl = lbls.item(i);

        if(lbl && ('requerido' == lbl.className) && lbl.htmlFor) {
            var tr = getParentTR(lbl);

            tr.className = '';

            var e = document.getElementById(lbl.htmlFor);

            if(e && !e.value) {
                err = true;
                tr.className = 'requerido-incompleto';
                EF.style.display = "block";
            }
        }
    }

    var faid = frm.elements['functional_area_id' + suf];

    if(!faid.selectedIndex) {
        err = true;
        getParentTR(faid).className = 'requerido-incompleto';
    } else {
        getParentTR(faid).className = '';
    }

    var sid = frm.elements['seniority_id' + suf];

    if(!sid.selectedIndex) {
        err = true;
        getParentTR(sid).className = 'requerido-incompleto';
    } else {
        getParentTR(sid).className = '';
    }

    var iid = frm.elements['industry_id' + suf];

    if(!iid.selectedIndex) {
        err = true;
        getParentTR(iid).className = 'requerido-incompleto';
    } else {
        getParentTR(iid).className = '';
    }

    frm.elements['continue'].disabled = !err;

    frm.elements['experience_id'].value = id;

    if ( !err )
    {

        if(tasks_field.length > 700)
        {
            //mensaje_err.innerHTML = 'La descripcion de las tareas realizadas no debe superar los 700 caracteres.';
            MT.style.display = "block";
            tr_tasks.className    = 'requerido-incompleto';

            return false;
        }
    }

    err_diff  = chkDates(id, 'form_registro_experiencia', true);

    if(err_diff)
    {
        err = true;
    }

    return !err;
}

/*
 * Si el usuario indica "Sin experiencia"
 * deshabilitar todos los campos
 */
function withExperience(chk)
{
    var frm = chk.form;

    for(var i = 0; i < frm.elements.length; i++) {
        var e = frm.elements[i];

        if(e != chk && e.name != 'continue') {
            e.disabled = chk.checked;
        }
    }
}

/*
 * Actualizar la informacion segun la seleccion
 * de Industria
 */
function changeIndustry(sel, childID)
{
    var es = sel.form.elements;
    var child = es[childID];
    var opts = IndustryAreas[sel.options[sel.selectedIndex].value];

    child.options.length = 0;
    for(var i in opts) {
        child.options[child.options.length] = new Option(opts[i], i);
    }
}

function continueClick(btn)
{
    var es = btn.form.elements;

    if(es['wo_experience'] && es['wo_experience'].checked) return true;

    if( hasAddedExp() ) return false;

    var EI = document.getElementById('ExperienceIncomplete');
    EI.style.display = 'none';

    if(es['n_position'].value || es['n_tasks_description'].value) {
        if(!addExperienceClick(btn)) {
            return false;
        }
    } else if(es['wo_experience'] && !es['wo_experience'].checked) {
        EI.style.display = 'block';
        return false;
    }

    es['continue'].disabled = false;

    btn.form.submit();

    return true;
}

function enableEndDate(chk, id)
{
    var pre, suf;

    if(id) {
        pre = '';
        suf = '[' + id + ']';
    } else {
        id = suf = '';
        pre = 'n_';
    }

    var es = chk.form.elements;
    es[pre + 'fd' + suf + '[Date_Year]'].disabled = es[pre + 'fd' + suf + '[Date_Month]'].disabled = chk.checked;
}

function showOtherIndustryArea(sel, id)
{
    var O = document.getElementById('OtherIndustryArea' + (id ? id : ''));
    var isOther = ('0' == sel.options[sel.selectedIndex].value);

    O.style.display = isOther ? 'block' : 'none';
    O.disabled = !isOther;
}

/*** REGISTRO OBJETIVO ***/

/*
 * Actualizar la pagina con la informacion
 * correspondiente a la seleccion del combo
 */
function updateIndustryArea(sel)
{
    sel.form.elements['continue'].disabled = true;
    sel.form.submit();
}

function updateIndustry(sel)
{
    var I = sel.form.elements['industry'];
    if(sel.selectedIndex > 0) {
        I.value = '1';
    } else {
        I.value = '';
    }
}

/*
 * Deshabilitar el boton de continuar
 */
function addApplicantAreaClick(btn)
{
    var es = btn.form.elements;
    if(es['industry_id'].selectedIndex && es['industry_area_id'].selectedIndex) {
        es['continue'].disabled = true;
        return true;
    } else {
        es['continue'].disabled = false;
    }

    return false;
}

// Validar el formulario de objetivo
function validateTarget(frm)
{
    var divIncomplete = document.getElementById('IncompleteFields');

    try {

        // Seniorities
        if('0' == frm.elements['__seniorities'].value) {
            frm.elements['__seniorities'].value = '';
        }

        // work_schedule[]
        var ws = 0;
        for(var i = 0; i < frm.elements['work_schedule[]'].length; i++) {
            ws += frm.elements['work_schedule[]'][i].checked ? 1 : 0;
        }

        if(ws) {
            frm.elements['work_schedule'].value = '1';
        } else {
            frm.elements['work_schedule'].value = '';
        }

        var salary = parseFloat(frm.elements['salary_expectation'].value);
        if(isNaN(salary) || salary <= 0) {
            frm.elements['salary_expectation'].value = '';
        }
        return validateRequiredFields(frm);
    } catch(e) {
        return false;
    }
}

var __SENIORITIES__;
function addSeniority(chk)
{
    if('undefined' == typeof __SENIORITIES__) {
        __SENIORITIES__ = chk.form.elements['__seniorities'].value;
    }

    if(chk.checked) {
        __SENIORITIES__++;
    } else {
        __SENIORITIES__--;
    }

    chk.form.elements['__seniorities'].value = __SENIORITIES__;
}

function showStates(country,agregado)
{
	if (agregado != '') agregado = agregado + '&';
    document.location = document.location.pathname + '?'+agregado+'country=' + country;
}

function testeo()
{

    var el = document.getElementById('__action');
    //alert('before submit');
    //alert(el.value);
    return true;
}

function setAction(action)
{

    var el = document.getElementById('__action');
    el.value = action;
    return true;

}

function removeSkill()
{

    setAction('Skills');
    return confirmDelete();

}

function validar_pwd()
{
    if(!document.getElementById('password')) return false;

    var passwd = document.getElementById('password').value;
    var mensaje_err = document.getElementById('mensaje_error');
    var tr_pwd      = document.getElementById('tr_password');
    var tr_confpwd      = document.getElementById('tr_confpwd');
    var CP              = document.getElementById('char_pwd');
    var pwd_corta = false;

    CP.style.display = "none";

    if(passwd.length < 4)
    {
        CP.style.display = "block";
        //mensaje_err.innerHTML = 'La contraseña debe poseer como mínimo 4 caracteres';
        tr_pwd.className  = 'requerido-incompleto';
        tr_confpwd.className = tr_pwd.className;

        pwd_corta = true;
    }

    return pwd_corta;

}

function validar_conf_email()
{
    if(!document.getElementById('cemail')) return false;

    var mensaje_err = document.getElementById('mensaje_error');
    var email_m = document.getElementById('email_main').value;
    var email_c = document.getElementById('cemail').value;
    var tr_conf      = document.getElementById('conf_eml');
    var tr_eml      = document.getElementById('eml_main');
    var div_eml      = document.getElementById('div_eml');
    var email_diff = false;

    if( email_m != email_c  )
    {

        div_eml.style.display = "block";
        tr_conf.className  = 'requerido-incompleto';
        tr_eml.className   = tr_conf.className;

        email_diff = true;

    }

    return email_diff;

}

function disableOtherTitle()
{

    //var other_title = document.getElementById('other_title');
    //other_title.style.display = "none";

}

function valFuente()
{
	var fuente = document.getElementById('visit_reason_id').value;
	if(fuente==0) {
		return true;
	}
	else {
		return false;
	}
}

function valDocNumber()
{
    var tr_doc = document.getElementById('tr_document');
    var document_number = document.getElementById('document_number').value;
    var div_doc_length = document.getElementById('document_length');
    var div_doc_format = document.getElementById('document_format');

    div_doc_length.style.display = "none";
    div_doc_format.style.display = "none";

    if(document_number.length < 6 )
    {
        div_doc_length.style.display = "block";
        tr_doc.className = 'requerido-incompleto';
		
        return true;;
    }

    var texto_buscar = new RegExp(/^[0-9]+$/);
    var resultado;

    resultado = document_number.search(texto_buscar);

    if( resultado < 0)
    {
        div_doc_format.style.display = "block";
        tr_doc.className = 'requerido-incompleto';

        return true;
    }

    return false;

}

function chkYear(id, frmname, valExpActual, chklast)
{

    var form = document.getElementById(frmname);
    var pre, suf;
    var sd, fd, syear, eyear;
    var experiencia_actual = false;
    var condition;

    if(id)
    {
          pre = '';
          suf = '[' + id + '][Date_Year]';
    }
    else
    {
          pre = 'n_'
          suf = '[Date_Year]';
          id  = '';
    }


    var ED = document.getElementById('EmptyDate' + id);
    var tr = document.getElementById('tr_period' + id);

    isyear = form.elements[pre + 'sd' + suf].selectedIndex;
    ieyear = form.elements[pre + 'fd' + suf].selectedIndex;

    syear = form.elements[pre + 'sd' + suf][isyear].value;
    eyear = form.elements[pre + 'sd' + suf][ieyear].value;

    //ED.style.display = "none";
    //tr.className = '';

    condition = (syear <= 0) ;

    //alert('condition' + condition );

    if( chklast )
    {
        condition = condition || (eyear<= 0) ;
    }

    if( valExpActual )
    {
        experiencia_actual = document.getElementById('to_date' + id).checked;

        if(experiencia_actual)
        {
            condition = (syear <= 0);
        }
    }

    //alert('condition' + condition );

    if( condition )
    {
        ED.style.display = "block";
        tr.className = 'requerido-incompleto';

        //alert('cambia estilo');

        return true;
    }

    return false;

}

function chkMonth(id, frmname, valExpActual, chklast)
{

    var form = document.getElementById(frmname);
    var pre, suf;
    var sd, fd, smonth, emonth;
    var condition;

    if(id)
    {
          pre = '';
          suf = '[' + id + '][Date_Month]';
    }
    else
    {
          pre = 'n_'
          suf = '[Date_Month]';
          id  = '';
    }

    var ED = document.getElementById('EmptyDate' + id);
    var tr = document.getElementById('tr_period' + id);


    ismonth = form.elements[pre + 'sd' + suf].selectedIndex;
    iemonth = form.elements[pre + 'fd' + suf].selectedIndex;

    smonth = form.elements[pre + 'sd' + suf][ismonth].value;
    emonth = form.elements[pre + 'sd' + suf][iemonth].value;

    //ED.style.display = "none";
    //tr.className = '';

    condition = (smonth <= 0) ;

    if( chklast )
    {
        condition = condition || (emonth<= 0) ;
    }


    if( valExpActual )
    {
        experiencia_actual = document.getElementById('to_date' + id).checked;

        if(experiencia_actual)
        {
            condition = (smonth <= 0);
        }
    }

    if( condition )
    {
        ED.style.display = "block";
        tr.className     = 'requerido-incompleto';

        return true;
    }

    return false;

}

function chkDates(id,frmname, valExpActual)
{

    var form = document.getElementById(frmname);
    var pre, sufMonth, sufYear;
    var smonth, emonth, syear, eyear, condition, actual;

    if(id) {
          pre = '';
          sufMonth = '[' + id + '][Date_Month]';
          sufYear = '[' + id + '][Date_Year]';
          actual  = 'to_date[' + id + ']';
    } else {
          pre = 'n_'
          sufMonth = '[Date_Month]';
          sufYear = '[Date_Year]';
          id  = '';
          actual = 'to_date';
    }

    //alert('func chk dates');
    //alert('antes de if');

    // exp actual
    if( valExpActual ) {

        //alert( 'valExpActual: ' + valExpActual );

        experiencia_actual = document.getElementById(actual).checked;

        //alert( 'experiencia_actual: ' + experiencia_actual );

        if(experiencia_actual) {
            return false;
        }
    }

    //alert('despues de if');

    var ED = document.getElementById('DateDiff' + id);
    var tr = document.getElementById('tr_period' + id);


    smonth = form.elements[pre + 'sd' + sufMonth].value;
    emonth = form.elements[pre + 'fd' + sufMonth].value;

    syear = form.elements[pre + 'sd' + sufYear].value;
    eyear = form.elements[pre + 'fd' + sufYear].value;
                           
    invalidDate = false;
    
    invalidDate = ( eyear < syear ) || ( ( eyear == syear ) && ( emonth < smonth )  );

    ED.style.display = "none";
    tr.className = '';

    if( invalidDate == true )
    {
        ED.style.display = "block";
        tr.className = 'requerido-incompleto';

        return true;
    }

    return false;
}

function hasAddedStudy()
{

    // elementos
    var n_study_level       = document.getElementById('n_study_level').selectedIndex;
    var n_knowledge_area_id = document.getElementById('n_knowledge_area_id').selectedIndex;
    var n_career_id         = document.getElementById('n_career_id').selectedIndex;
    var n_sec_career_id     = document.getElementById('n_sec_career_id').selectedIndex;
    var n_institute         = document.getElementById('n_institute').value;
    var n_status            = document.getElementById('n_status').selectedIndex;
    var n_sd_month          = document.getElementById('n_sd[Date_Month]').selectedIndex;
    var n_sd_year           = document.getElementById('n_sd[Date_Year]').selectedIndex;
    var n_fd_month          = document.getElementById('n_fd[Date_Month]').selectedIndex;
    var n_fd_year           = document.getElementById('n_fd[Date_Year]').selectedIndex;
    var div                 = document.getElementById('SaveStudy');
    var tr                  = document.getElementById('tr_add');
    var condition;

    condition = ( n_study_level > 0) ||
                ( n_knowledge_area_id > 0) ||
                ( n_career_id > 0 ) ||
                ( n_sec_career_id > 0 ) ||
                ( n_institute != '' ) ||
                ( n_status > 0 ) ||
                ( n_sd_month > 0 ) ||
                ( n_sd_year > 0 ) ||
                ( n_fd_month > 0 ) ||
                ( n_fd_year > 0 );

    if(condition)
    {
        div.style.display = 'block';
        tr.className      = 'requerido-incompleto';
    }

    return condition;

}

function hasAddedExp()
{

    var n_sd_month          = document.getElementById('n_sd[Date_Month]').selectedIndex;
    var n_sd_year           = document.getElementById('n_sd[Date_Year]').selectedIndex;
    var n_fd_month          = document.getElementById('n_fd[Date_Month]').selectedIndex;
    var n_fd_year           = document.getElementById('n_fd[Date_Year]').selectedIndex;

    var to_date              = document.getElementById('to_date');
    var n_company            = document.getElementById('n_company').value;
    var n_industry_id        = document.getElementById('n_industry_id').selectedIndex;
    var n_industry_area_id   = document.getElementById('n_industry_area_id').selectedIndex;
    var n_functional_area_id = document.getElementById('n_functional_area_id').selectedIndex;
    var n_position           = document.getElementById('n_position').value;
    var n_seniority_id       = document.getElementById('n_seniority_id').selectedIndex;
    var n_employees_managed  = document.getElementById('n_employees_managed').value;
    var n_tasks_description  = document.getElementById('n_tasks_description').value;
    var div                  = document.getElementById('AddExp');
    var tr                   = document.getElementById('tr_add');
    var condition;

    condition =
                ( n_sd_month > 0 ) ||
                ( n_sd_year > 0 ) ||
                ( n_fd_month > 0 ) ||
                ( n_fd_year > 0 ) ||
                ( to_date.checked ) ||
                ( n_company != '' ) ||
                ( n_industry_id > 0 ) ||
                ( n_industry_area_id > 0 ) ||
                ( n_functional_area_id > 0 ) ||
                ( n_position != '' ) ||
                ( n_seniority_id > 0 ) ||
                ( parseInt(n_employees_managed) > 0 ) ||
                ( n_tasks_description != '' );

    if(condition)
    {
        div.style.display = 'block';
        tr.className      = 'requerido-incompleto';
    }

    return condition;

}

function mustSaveCV()
{

    if(hasAddedExp())
    {
        return false;
    }

    document.getElementById('view_cv').value = 1;

    return true;
}

function selectAllIndustries()
{

    var elements = document.forms['jt'].elements;
    var industry = elements['industry_id[]'];
    var selectAll   = document.getElementById('all_ind').checked;

    if(selectAll)
    {
        for( var i=0; i<industry.options.length; i++)
        {
                 industry.options[i].selected = true;
        }
    }

}

function isEmail(sEmail) {
    // Boolean, returns TRUE if the string passed is a valid email format string.
	var regEmail = /^([\w-]+\.?)*\w+@([\da-zA-z-]+\.)+[a-zA-z]{2,3}$/
	if (sEmail==null || sEmail == "") { 
		if (isEmail.arguments.length == 1) {
			return true;
		} else {
			return (isEmail.arguments[1] == true);
		}
	} else {
		return regEmail.test(sEmail)
	}
}

function isNumeric(strString) {
    // Boolean, returns TRUE if the string passed is blank or numeric only.
	var strValidChars = "0123456789";
	var strChar;
	var blnResult = true;
	if (strString.length == 0) return false;
	//  test strString consists of valid characters listed above
	for (i = 0; i < strString.length && blnResult == true; i++) {
		strChar = strString.charAt(i);
		if (strValidChars.indexOf(strChar) == -1) {
			blnResult = false;
		}
	}
	return blnResult;
}

function isEqualString(Str1,Str2) {
    // Boolean, returns TRUE if the strings passed are identical.
    // Returns FALSE if an empty string is passed.
	if (Str1.length == 0) return false;
	if (Str1 == Str2) {
		return true;
	} else {
		return false;
	}
}

function selStateID(frm) {
    var opts = frm.elements['state_id[]'].options;
    for(var i = 0; i < opts.length; i++) {
        opts[i].selected = true;
    }
}


function dw_move(fbox, tbox)
{

    fbox = document.getElementById(fbox);
    tbox = document.getElementById(tbox);

    if(!tbox || !fbox) return false;

    var arrFbox = new Array();
    var arrTbox = new Array();
    var arrLookup = new Array();

    for(var i = 0; i < tbox.options.length; i++) {
        arrLookup[tbox.options[i].text] = tbox.options[i].value;
        arrTbox[i] = tbox.options[i].text;
    }

    var fLength = 0;
    var tLength = arrTbox.length;
    for(var i = 0; i < fbox.options.length; i++) {
        arrLookup[fbox.options[i].text] = fbox.options[i].value;
        if (fbox.options[i].selected && fbox.options[i].value != "") {
            arrTbox[tLength] = fbox.options[i].text;
            tLength++;
        } else {
            arrFbox[fLength] = fbox.options[i].text;
            fLength++;
        }
    }

    arrFbox.sort();
    arrTbox.sort();

    fbox.length = 0;
    tbox.length = 0;

    for(var c = 0; c < arrFbox.length; c++) {
        var no = new Option();
        no.value = arrLookup[arrFbox[c]];
        no.text = arrFbox[c];
        fbox[c] = no;
    }

    for(var c = 0; c < arrTbox.length; c++) {
        var no = new Option();
        no.value = arrLookup[arrTbox[c]];
        no.text = arrTbox[c];
        tbox[c] = no;
    }

    return false;
}
 
function CheckDoc() {
	var error = '';
	if (document.FormReg.birth_country.value == '0') {
		document.FormReg.birth_country.focus();
		error = 'Debe ingresar su pais de residencia\n';
	}
	if (document.FormReg.document_number.value == '') {
		document.FormReg.document_number.focus();
		error += 'Debe ingresar su documento\n';
	}
	var noalpha = /^[0-9]{6,11}$/;
	if (noalpha.test(document.FormReg.document_number.value)) {
		
	} else {
		document.FormReg.document_number.focus();
		error += 'Número de documento inválido. \nIngréselo nuevamente.\n';
	}
	if (error != '') {
		//alert(error);
		return false;
	}
}

var IF;
var onLoad = window.onload;
window.onload = function(event) {
    // Almacenar en la variable LT la tabla de idiomas
    LT = document.getElementById('LanguagesTable');
    IF = document.getElementById('IncompleteFields');
    if(IF) IF.style.display = "none";

    if('function' == typeof onLoad) onLoad(event);
}