// JavaScript Document

//Valida un campo requerido
function Requerido(cadena)
{
	if(cadena.length>0)
	{
		return true;
	}
	else
	{
		return false;
	}
}

//Valida una cadena de caracteres para determinar si es un número de teléfono
function EsTelefono(telefono)
{
    var er_tlfono = /(^[0-9\s\+\-])+$/;
    if(!er_tlfono.test(telefono)) 
	{
       return false;
    }
	else
	{	
		return true;
	}
}

//Valida una cadena de caracteres para determinar si es un email
function EsEmail(email)
{
	var er_email = /^(.+\@.+\..+)$/;
    if(!er_email.test(email)) 
	{
       return false;
	}
	else
	{
		return true;
	}
}

//Valida un valor que debe ser numérico
function EsNumero(numero)
{
	miInteger = parseInt(numero);
	if (isNaN(miInteger)) {return false;}
	else {return true;}

}

//Valida un valor que debe ser decimal
function EsFloat(numero)
{
	miFloat = parseFloat(numero);
	if(isNaN(miFloat)) {return false;}
	else {return true;}
}

function emailCheck (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){
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];

	if (user.match(userPat)==null){
		return false;
	}

	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null){
		  for (var i=1;i<=4;i++){
			if (IPArray[i]>255){
			return false;
			}
		}
		return true;
	}

	var domainArray=domain.match(domainPat);
	if (domainArray==null){
		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){
	   return false;
	}
	
	if (len<2) {
	   return false;
	}
}

/*charAt(indice)
Devuelve el carácter que hay en la posición indicada como índice. Las posiciones de un string empiezan en 0.

indexOf(carácter,desde)
Devuelve la posición de la primera vez que aparece el carácter indicado por parámetro en un string. Si no encuentra el carácter en el string devuelve -1. El segundo parámetro es opcional y sirve para indicar a partir de que posición se desea que empiece la búsqueda.

lastIndexOf(carácter,desde)
Busca la posición de un carácter exáctamente igual a como lo hace la función indexOf pero desde el final en lugar del principio. El segundo parámetro indica el número de caracteres desde donde se busca, igual que en indexOf.

replace(substring_a_buscar,nuevoStr)
Implementado en Javascript 1.2, sirve para reemplazar porciones del texto de un string por otro texto, por ejemplo, podríamos uilizarlo para reemplazar todas las apariciones del substring "xxx" por "yyy". El método no reemplaza en el string, sino que devuelve un resultante de hacer ese reemplazo. Acepta expresiones regulares como substring a buscar.

split(separador)
Este método sólo es compatible con javascript 1.1 en adelante. Sirve para crear un vector a partir de un String en el que cada elemento es la parte del String que está separada por el separador indicado por parámetro.

substring(inicio,fin)
Devuelve el substring que empieza en el carácter de inicio y termina en el carácter de fin. Si intercambiamos los parámetros de inicio y fin también funciona. Simplemente nos da el substring que hay entre el carácter menor y el mayor.

toLowerCase()
Pone todas los caracteres de un string en minúsculas.

toUpperCase()
Pone todas los caracteres de un string en mayúsculas.

toString()
Este método lo tienen todos los objetos y se usa para convertirlos en cadenas.

Hasta aquí hemos visto los métodos que nos ayudarán a tratar cadenas. Ahora vamos a ver otros métodos que son menos útiles, pero hay que indicarlos para que quede constancia de ellos. Todos sirven para aplicar estilos a un texto y es como si utilizásemos etiquetas HTML. Veamos cómo.

anchor(name)
Convierte en un ancla (sitio a donde dirigir un enlace) una cadena de caracteres usando como el atributo name de la etiqueta <A> lo que recibe por parámetro.

big()
Aumenta el tamaño de letra del string. Es como si colocásemos en un string al principio la etiqueta <BIG> y al final </BIG>.

blink()
Para que parpadee el texto del string, es como utilizar la etiqueta <BLINK>. Solo vale para Netscape.

bold()
Como si utilizásemos la etiqueta <B>.

fixed()
Para utilizar una fuente monoespaciada, etiqueta <TT>.

fontColor(color)
Pone la fuente a ese color. Como utilizar la etiqueta <FONT color=el_color_indicado>.

fontSize(tamaño)
Pone la fuente al tamaño indicado. Como si utilizásemos la etiqueta <FONT> con el atributo size.

italics()
Pone la fuente en cursiva. Etiqueta <I>.

link(url)
Pone el texto como un enlace a la URL indicada. Es como si utilizásemos la etiqueta <A> con el atributo href indicado como parámetro.

small()
Es como utilizar la etiqueta <SMALL>

strike()
Como utilizar la etiqueta <STRIKE>, que sirve para que el texto aparezca tachado.

sub()
Actualiza el texto como si se estuviera utilizando la etiqueta <SUB>, de subíndice.

sup()
Como si utilizásemos la etiqueta <SUP>, de superíndice.

getDate()
Devuelve el día del mes.

getDay()
Devuelve el día de la semana.

getHours()
Retorna la hora.

getMinutes()
Devuelve los minutos.

getMonth()
Devuelve el mes (atención al mes que empieza por 0).

getSeconds()
Devuelve los segundos.

getTime()
Devuelve los milisegundos transcurridos entre el día 1 de enero de 1970 y la fecha correspondiente al objeto al que se le pasa el mensaje.

getYear()
Retorna el año, al que se le ha restado 1900. Por ejemplo, para el 1995 retorna 95, para el 2005 retorna 105. Este método está obsoleto en Netscape a partir de la versión 1.3 de Javascript y ahora se utiliza getFullYear().

getFullYear()
Retorna el año con todos los dígitos. Usar este método para estar seguros de que funcionará todo bien en fechas posteriores al año 2000.

setDate()
Actualiza el día del mes.

setHours()
Actualiza la hora.

setMinutes()
Cambia los minutos.

setMonth()
Cambia el mes (atención al mes que empieza por 0).

setSeconds()
Cambia los segundos.

setTime()
Actualiza la fecha completa. Recibe un número de milisegundos desde el 1 de enero de 1970.

setYear()
Cambia el año recibe un número, al que le suma 1900 antes de colocarlo como año de la fecha. Por ejemplo, si recibe 95 colocará el año 1995. Este método está obsoleto a partir de Javascript 1.3 en Netscape. Ahora se utiliza setFullYear(), indicando el año con todos los dígitos.

setFullYear()
Cambia el año de la fecha al número que recibe por parámetro. El número se indica completo ej: 2005 o 1995. Utilizar este método para estar seguros que todo funciona para fechas posteriores a 2000. 
*/


/*
var i
for (i=0;i<=10;i++) {
    document.write(i)
} 

for (i=0;i<10;i++){
    document.write (i)
    escribe = dime si continúo
    if (escribe == "no")
       break
}


for (i=0;i<miArray.length;i++){
    document.write(miArray[i])
}

document.forms[0].campo2
document.forms[0].elements[1] 

switch (expersión) {
    case valor1:
       Sentencias a ejecutar si la expresión tiene como valor a valor1
       break
    case valor2:
       Sentencias a ejecutar si la expresión tiene como valor a valor2
       break
    case valor3:
       Sentencias a ejecutar si la expresión tiene como valor a valor3
       break
    default:
       Sentencias a ejecutar si el valor no es ninguno de los anteriores
} 

*/