function trim(str) {
	str.replace(/^\s*/, '').replace(/\s*$/, ''); 
	return str;
} 
function trim2(str) {
	while (str.substring(0,1) == ' ')
		str=str.substring(1,str.length);
	while (str.substring(str.length-1,str.length) == ' ')
		str=str.substring(0,str.length-1);
	return str;
} 

function alltrim(str) {
	// Remueve todos los espacios entre caracteres, a la izq. y der., y retorna la cadena reducida
	var i = 0;
	var j = 0;
	for (i=0; i<(str.length); i++) {
		if (str.charAt(i) != " ") {
			for (j=str.length - 1; j > i; j--) {
				if (str.charAt(j) != " ")
					break;
			}
			break;
		}
	}
	if (i > j)
		i = j;
	if (str.length > 0 && str.charAt(j) != " ")
		j++;
	return str.substring(i, j);
}

function es_ascii(str) {
//	if(trim(str)=="") return false;
	for (var i=0; i<str.length; i++) {
		if ((str.charAt(i) < " ") || ("~" < str.charAt(i) ) )
			return false;
	}
	return true;
}

function es_texto(str) {
//	if(trim(str)=="") return false;
	for (var i=0; i<str.length; i++) {
		if( (str.charCodeAt(i)!=13) && (str.charCodeAt(i)!=10) && !(" "<=str.charAt(i))   ) {
			//alert("Caracter no valido: "+str.charCodeAt(i));
			return false;
		}
	}
	return true;
}

function es_numero(str) {
//	if(trim(str)=="") return false;
	for (var i=0; i< str.length; i++) {
		if( ((str.charAt(i)<"0") || ("9"<str.charAt(i))) && "."!=str.charAt(i) )
			return false;
	}
	return true;
}

function es_entero(str) {
//	if(trim(str)=="") return false;
	for (var i=0; i< str.length; i++) {
		if( ((str.charAt(i)<"0") || ("9"<str.charAt(i))) && "-"!=str.charAt(i) )
			return false;
	}
	return true;
}

function es_fono(str) {
//	if(trim(str)=="") return false;
	for (var i=0; i<str.length; i++) {
		if( str.charAt(i)<"0" || "9"<str.charAt(i) )
			if( !(str.charAt(i)==" " || str.charAt(i)=="-" || str.charAt(i)=="(" || str.charAt(i)==")") )
				return false;
	}
	return true;
}

function es_fecha(str,fmt) {
//	return true;
	var i,j,k,l,v,s, r=false;
	var a=0,m=0,d=0,h=0,n=0;
	/* fmt=0 <=> aaa-mm-dd hh:mm */
	switch(fmt){
	case 0:
		if( (i=str.indexOf("-"))>0 ) {
			v= parseInt( str.substring(0,i) );
			if( 1900<=v && v<=2030 ) {
				a=v;
				if( (j=str.indexOf("-",i+1))!=-1 ) {
					v= parseInt( str.substring(i+1,j) );
					if( 1<=v && v<=12 ) {
						m=v;
						if( (k=str.indexOf(" ",j+1))!=-1 ) {
							v= parseInt( str.substring(j+1,k) );
							s= str.substring(k+1);
						}else{
							v= parseInt( str.substr(j+1) );
							s= "";
						}
						if( 1<=v && v<=31 ) {
							d=v;
							if(s==""){
								r=true;
								break;
							}
							//--- Buscar hora:minutos
							if( (l=s.indexOf(":"))>0 ) {
								v= parseInt( s.substring(0,l) );
								if( 0<=v && v <=23) {
									h=v;
									v=parseInt(s.substr(l+1) );
									if( 0<=v && v <=59) {
										n=v;
										r=true;
									}
								}
							}
						}
					}
				}
			}
		}
		break;
	case 1:

	}
	if(r){
		var dd= new Date(a,m-1,d,h,m);
		if( m != (dd.getMonth()+1) )
			r=false;
	}
	return r;
}

var strvalid_path="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZáéíóúñÁÉÍÓÚÑ:./_-\\ ";
function es_path(str) {
//	if(trim(str)=="") return false;
	for (var i=0; i<str.length; i++) {
		if(strvalid_path.indexOf(str.charAt(i))==-1 )
			return false;
	}
	return true;
}
var strvalid_fnlocal="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZáéíóúñÁÉÍÓÚÑ:._-\\ ";
function es_fnlocal(str) {
//	if(trim(str)=="") return false;
	for (var i=0; i<str.length; i++) {
		if(strvalid_path.indexOf(str.charAt(i))==-1 )
			return false;
	}
	return true;
}
function EstaChecked(rad){
	var r=false;
	for(i=0;i<=(rad.length-1);i++)
		if(rad[i].checked) r=true;
	return r;
}

//------------------------
function es_email(email)
{	//------------------------
var TXTU2InvalidEmailChars = "\"|&;<>!*\\";
var TXTAlertInvalidCharFoundInEmailAddr ="La dirección de e-mail contiene caracteres inválidos. Verifique y reintente.";
var TXTAlertAtSignMissingInEmailAddr ="La dirección de e-mail esta mal formada, verifique que el prefijo y el símbolo '@' estén.";
var TXTAlertBlankSpaceFoundInEmailAddr ="Los espacios en blanco no están permitidos en dirección de e-mail.";

	//-- verificar sólo caracteres ascii
	for (var i=0; i<email.length; i++) {
		if ((email.charAt(i) < " ") || ("~" < email.charAt(i) ) ) {
//			alert(TXTAlertInvalidCharFoundInEmailAddr);
			return false;
		}
	}
	//-- verificar caracteres no válidos
	var invalidChars = TXTU2InvalidEmailChars;
	for (var i = 0; i < invalidChars.length; i++) {
		if (email.indexOf(invalidChars.charAt(i)) != -1) {
//			alert(TXTAlertInvalidCharFoundInEmailAddr);
			return false;
		}
	}
	//-- verificar símbolo @
	if (email.indexOf("@") == -1){
//		alert(TXTAlertAtSignMissingInEmailAddr);
		return false;
	}
	//-- verificar espacios en blanco
	if (email.indexOf(" ") != -1){
//		alert(TXTAlertBlankSpaceFoundInEmailAddr);
		return false;
	}
	//-- si disponemos de expresiones regulares en browser
	if (window.RegExp) {
		var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
		var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
		var reg1 = new RegExp (reg1str);
		var reg2 = new RegExp (reg2str);
		if (reg1.test(email) || !reg2.test(email)) {
//			alert(TXTAlertInvalidCharFoundInEmailAddr);
			return false;
		}
	}
	return true;
}
