var MSG_DELETE;
function confirmDelete() {
    return confirm(MSG_DELETE);
}

function parentTR(e) {
    if(!e) return null;

    if('TR' == e.nodeName.toUpperCase()) {
        return e;
    } else {
        return parentTR(e.parentNode);
    }
}

function validateRequiredFields(frm) {
    var labels = frm.getElementsByTagName('label');
    var e, ok = true;
	var es = frm.elements;
	if (typeof isNewSelector == 'undefined') {
		isNewSelector = false;
	}
	if (typeof isNewReg == 'undefined') {
		isNewReg = false;
	}

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

        if( lbl
            && ( ('requerido' == lbl.className) || ( 'requerido top_text' == lbl.className ) )
            && lbl.htmlFor
            && (e = document.getElementById(lbl.htmlFor))
            && ('hidden' != e.type))
        {

            var tr = parentTR(e);

            tr.className = tr.oldClassName ? tr.oldClassName : '';

            if(!e.value)
            {

                ok = false;
                tr.oldClassName = tr.className;
                tr.className = 'requerido-incompleto';
            }
            else if('SELECT' == e.nodeName.toUpperCase())
            {

                //var cond = ('0' == e.options[e.selectedIndex].value);

                var cond = ( e.options[e.selectedIndex].value <= 0);

                if(cond)
                {
                    ok = false;
                    tr.oldClassName = tr.className;
                    tr.className = 'requerido-incompleto';
                }
            }
        }
    }

    
	if (es['email_main'] != undefined) {
		if (isEmail(es['email_main'].value) == false) {
			getParentTR(es['email_main']).className = 'requerido-incompleto';
			ok = false;
		} else {
			getParentTR(es['email_main']).className = '';
		}
	}
              
    if (isNewSelector == true) {
		// deve validar email e confirmacao de email, senha e confirmacao de senha

		if (es['password'] != undefined) {
			if (isEqualString(es['password'].value,es['cpassword'].value) == false) {
				getParentTR(es['password']).className = 'requerido-incompleto';
				getParentTR(es['cpassword']).className = 'requerido-incompleto';
				ok = false;
			} else {
				getParentTR(es['password']).className = '';
				getParentTR(es['cpassword']).className = '';
			}
		}     

		if (isEqualString(es['email_main'].value,es['cemail_main'].value) == false) {
			getParentTR(es['email_main']).className = 'requerido-incompleto';
			getParentTR(es['cemail_main']).className = 'requerido-incompleto';
			ok = false;
		} else {
			getParentTR(es['email_main']).className = '';
			getParentTR(es['cemail_main']).className = '';
		}
	
		if ((isNumeric(es['phone_area'].value) == false)||(isNumeric(es['phone_number'].value) == false)) {
			getParentTR(es['phone_area']).className = 'requerido-incompleto';
			ok = false;
		} else {
			getParentTR(es['phone_area']).className = '';
		}

		if ((es['mobile_area'].value=='')&&(es['mobile_number'].value=='')) {
			// nao valida.
			getParentTR(es['mobile_area']).className = '';
		} else {
			if ((isNumeric(es['mobile_area'].value) == false)||(isNumeric(es['mobile_number'].value) == false)) {
				getParentTR(es['mobile_area']).className = 'requerido-incompleto';
				ok = false;
			} else {
				getParentTR(es['mobile_area']).className = '';
			}
		}


		if (es['email_alt'].value==''){
			// nao valida.
			getParentTR(es['email_alt']).className = '';
		} else {
			if (isEmail(es['email_alt'].value) == false) {
				getParentTR(es['email_alt']).className = 'requerido-incompleto';
				ok = false;
			} else {
				getParentTR(es['email_alt']).className = '';
			}
		}


    } // endif isNewSelector


    if (isNewReg == true) {
		// deve validar email e confirmacao de email, senha e confirmacao de senha
		if ((es['phone2_area'].value=='')&&(es['phone2_number'].value=='')) {
			// nao valida
			getParentTR(es['phone2_area']).className = '';
		} else {
			if ((isNumeric(es['phone2_area'].value) == false)||(isNumeric(es['phone2_number'].value) == false)) {
				getParentTR(es['phone2_area']).className = 'requerido-incompleto';
				ok = false;
			} else {
				getParentTR(es['phone2_area']).className = '';
			}
		}
		if ((es['fax_area'].value=='')&&(es['fax_number'].value=='')) {
			// nao valida
			getParentTR(es['fax_area']).className = '';
		} else {
			if ((isNumeric(es['fax_area'].value) == false)||(isNumeric(es['fax_number'].value) == false)) {
				getParentTR(es['fax_area']).className = 'requerido-incompleto';
				ok = false;
			} else {
				getParentTR(es['fax_area']).className = '';
			}
		}
	}     


    if(ok) return true;

    var IF = document.getElementById('IncompleteFields');

    try { IF.style.display = "block"; }
    catch(e) { alert('Debe definir un elemento con ID IncompleteFields'); }

    return false;
}

function checkAll(chk)
{
    var es = chk.form.elements;

    for(var i = 0, j = es.length; i < j; i++) {
        var e = es[i];

        if(e != chk && e.type.toLowerCase() == 'checkbox') {
            e.checked = chk.checked;

            if('function' == typeof e.onclick) e.onclick();
        }
    }
}

function inspect(o) { s=[];for(var i in o)s[s.length]=i+': '+(o[i]);s.sort();alert(s.join(', ')); }

function setAction(btn)
{
    btn.form.elements['__action'].value = btn.name;
}

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 == 0) {
			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 getParentTR(e)
{
    try {
        var p = e.parentNode;
        while(p && (p.nodeName !== 'TR')) {
            p = p.parentNode;
        }

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