function trimstr(str) {

    var ini = 0;
    var fin = str.length - 1;
	
    while (ini <= fin && str.charAt(ini) == " ")
        ini++;
		
    if (ini <= fin) {
        while (str.charAt(fin) == " ")
            fin--;
        if (fin < str.length-1) {
            fin++;
            return str.substring(ini,fin);
        } else
            return str.substr(ini);
    } else
        return '';
} 

function esFecha(dd, mm, yy) {

	var hoy = new Date();
	var year = hoy.getYear();
	var diames = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

	if(((yy%4 == 0) && (yy%100 !=0) ) || (yy%400 == 0)) diames[1] = 29;
	
	if(yy > year){
		return false;
	}
	else 
	if((mm < 1) || (mm > 12)){
		//alert("mes fuera de rango");
		return false;
	} else 
		if(diames[mm-1] < dd){
		return false
	}

	return true; 
}

function caracteresValidosClave(str) {
// los caracteres validos son las letras mayusculas y minusculas - excepto
// la enie y las vocales acentuadas -, los numeros y los siguientes signos:
// . , - _ ' @ / & $ " % # ( ) y el espacio en blanco
    var flag = true;
    var i = 0;
    var validos = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    validos += validos.toLowerCase();
    validos += '0123456789';
    //validos += "'";
    while (i < str.length && flag){
        flag = (validos.indexOf(str.charAt(i++)) != -1);
    }
    return flag;
}

function caracteresValidosCorreo(str) {
// los caracteres validos son las letras mayusculas y minusculas - excepto
// la enie y las vocales acentuadas -, los numeros y los siguientes signos:
// . , - _ ' @ / & $ " % # ( ) y el espacio en blanco
    var flag = true;
    var i = 0;
    var validos = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    validos += validos.toLowerCase();
    validos += '0123456789@_.-';
    //validos += "'";
    while (i < str.length && flag){
        flag = (validos.indexOf(str.charAt(i++)) != -1);
    }
    return flag;
}
