<!--
	function valid_tel_chars( evalstr ) {
		// El primer caracter debe ser un número o '('
		if (( evalstr.charAt( 0 ) < '0' || evalstr.charAt( 0 ) > '9' ) && evalstr.charAt( 0 ) != '(' ) return( false );
			// El resto de los caracteres puede ser un número o '-', ')', ' '
			for( i = 1; i < evalstr.length; i++ ) if (( evalstr.charAt( i ) < '0' || evalstr.charAt( i ) > '9' ) && ( evalstr.charAt( i ) != '-' && evalstr.charAt( i ) != ')' && evalstr.charAt( i ) != ' ')) return( false );
		return( true ); // Todo está bien
	};

	function valid_chars( evalstr, vchars ) {
		// Todos los caracteres contenidos en evalstr deben estar en vchars
		for( i = 1; i < evalstr.length; i++ ) if ( vchars.indexOf( evalstr.charAt( i )) == -1 ) return( false );
		return( true ); // Todo está bien
	};

	function valid_tel( evalstr ) {
		if ( !valid_tel_chars( evalstr )) return( false ); // El número de teléfono debe contener solo los caracteres '0' al '9', '-', '(', ')'
		return( true );
	};

	function valid_fax( evalstr ) {
		if ( !valid_tel_chars( evalstr )) return( false ); // El número de fax debe contener solo los caracteres '0' al '9', '-', '(', ')'
		return( true );
	};

	function valid_email( emailStr ) {
		var emailPat=/^(.+)@(.+)$/
		var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
		var validChars="\[^\\s" + specialChars + "\]"
		var quotedUser="(\"[^\"]*\")"
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
		var atom=validChars + '+'
		var word="(" + atom + "|" + quotedUser + ")"
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

		var matchArray=emailStr.match(emailPat)
		if (matchArray==null) {
			// alert("Email address seems incorrect (check @ and .'s)")
			return false
		}
		var user=matchArray[1]
		var domain=matchArray[2]
		if (user.match(userPat)==null) {
			// alert("The username doesn't seem to be valid.")
			return false
		}

		var IPArray=domain.match(ipDomainPat)
		if (IPArray!=null) {
			// this is an IP address
			for (var i=1;i<=4;i++) {
				if (IPArray[i]>255) {
					// alert("Destination IP address is invalid!")
					return false
				}
			}
			return true
		}

		// Domain is symbolic name
		var domainArray=domain.match(domainPat)
		if (domainArray==null) {
			// alert("The domain name doesn't seem to be valid.")
			return false
		}

		var atomPat=new RegExp(atom,"g")
		var domArr=domain.match(atomPat)
		var len=domArr.length
		if (domArr[domArr.length-1].length<2 || 
			domArr[domArr.length-1].length>3) {
			// alert("The address must end in a three-letter domain, or two letter country.")
			return false
		}

		if (len<2) {
			var errStr="This address is missing a hostname!"
			// alert(errStr)
			return false
		}

		// If we've gotten this far, everything's valid!
		return true;
	}

/*	function valid_email( evalstr ) {
		// Chequear que la dirección contenga el signo "@" y el signo ".", y que esos no son ni el primero ni el ultimo
		if ( evalstr.indexOf( '@', 0 ) == -1 || evalstr.indexOf( '.', 0 ) == -1 || 
			 evalstr.indexOf( '.', 0 ) == 0 || evalstr.indexOf( '@', 0 ) == 0 || 
			 evalstr.charAt( evalstr.length - 1 ) == '.' || evalstr.charAt( evalstr.length - 1 ) == '@' ) return( false );
		return( true );
	}; */

	function is_empty( s ) {
		s = trim( s );
		return s.length == 0;
	};

	function trim( s ) {
		var
			i = 0;
		if( s.length > 0 ) {
			while( s.charAt( i ) == " " )
				i++;
			if( i > 0 ) s = s.substring( i, s.length );
		}
		i = 0;
		if( s.length > 0 ) {
			while( s.charAt( s.length - i - 1 ) == " " )
				i++;
			if( i > 0 ) s = s.substring( 0, s.length - i );
		}
		 return s;
	};

	function checkLPChars( evalstr ) {
		// Solo se permiten letras, números y _
		for( i = 1; i < evalstr.length; i++ )
			if (( evalstr.charAt( i ) < '0' || evalstr.charAt( i ) > '9' ) && 
				( evalstr.charAt( i ) < 'A' || evalstr.charAt( i ) > 'Z' ) &&
				( evalstr.charAt( i ) < 'a' || evalstr.charAt( i ) > 'z' ) &&
				( evalstr.charAt( i ) != '_' ))
				return( false );
		return( true ); // Todo está bien
	}

	function parseDate(strDate ){
		//---- true or false for a date of form mm/dd/yy
		var i = 0;

		while( strDate.charAt( i ) == " " && i < strDate.length ) i++;
		if( i == strDate.length ) return false;
		strDate = strDate.substring( i, strDate.length - i );
		posSl = strDate.indexOf( "/" );
		if( posSl == -1 ) return false;
		MM = strDate.substring( 0, posSl );
		if( !intString( MM )) return false;
		strDate = strDate.substring( posSl + 1 )
		posSl = strDate.indexOf( "/" );
		if( posSl == -1 ) return false;
		DD = strDate.substring(0,posSl); 
		if( !intString( DD )) return false;
		strDate = strDate.substring( posSl + 1, strDate.length )
		inSp = strDate.indexOf( ' ' );
		if( inSp != -1 ) YY = strDate.substring( 0, inSp ); else YY = strDate;
		if( !intString( YY )) return false;
		day = parseInt( DD );
		month= parseInt( MM );
		year= parseInt( YY );
		if( year < 99 ) year += 2000 
		if( day > 31 || month > 12 || day == 0 || month == 0 ) return false;

		switch( month ){
			case 2: { 
				return( day == 29 && year % 4 == 0 ) || day < 29;
				break ;
			}
			case 4: 
			case 6: 
			case 9: 
			case 11: return( day < 31 )
		}
		return true;
	}

	function intString( strText ){
		//---  parse an int Value it ignore spc at begin and at end
		i = 0;
		total = strText.length
		if( total == 0 ) return false;
		while( strText.charAt( i ) == ' ' && i < total ) i++;
		while( strText.charAt( total - 1 ) == ' ' && total - 1 > i ) total--;
		if( i == total ) return false;
		while( i < total && strText.charAt( i ) >= '0' && strText.charAt( i ) <= '9' ) i++;
		return( i >= total );
	}
	
	function parseTime(strTime ){
		//---- true or false for a time of form hh:mm
		var i = 0;

		while( strTime.charAt( i ) == " " && i < strTime.length ) i++;
		if( i == strTime.length ) return false;
		strTime = strTime.substring( i, strTime.length - i );
		posSl = strTime.indexOf( ":" );
		if( posSl == -1 ) return false;
		HH = strTime.substring( 0, posSl );
		if( !intString( MM )) return false;
		MM = strTime.substring( posSl + 1 )
		if( !intString( MM )) return false;
		hou = parseInt( DD );
		min = parseInt( MM );
		if (( hou < 0 ) || ( hou > 12 )) return false;
		if (( min < 0 ) || ( min > 59 )) return false;
		return true;
	}
	
	function valid_Float(strFloat ){
		return  valid_chars( trim(strFloat),"1234567890.") && strFloat.indexOf('.') == strFloat.lastIndexOf('.') ;
	}
//-->

