// JavaScript Document
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function vTxt(name, Min, Max, modo_n, modo_ce, obligado, pref) {

	contenedor = document.getElementsByName(name);
	contenedor = contenedor[0];
	
	flag = true;

	name_mostrar = name.replace(pref, '');
	name_mostrar = name_mostrar.split('_');

	for(i = 0; i < name_mostrar.length; i++)
		name_mostrar[i] = name_mostrar[i].replace( name_mostrar[i].charAt(0) , name_mostrar[i].charAt(0).toUpperCase() );
	
	name_mostrar = name_mostrar.join(' ');
	
	/* Verifica si el minimo/maximo es 1 para el alert */
	text_final1 = (Min == 1) ? ' caracter!!!' : ' caracteres!!!';
	text_final2 = (Max == 1) ? ' caracter!!!' : ' caracteres!!!';

	if(obligado != 'no' || contenedor.value != '') {
		/* Verifica el minimo de caracteres */
		if(contenedor.value.length < Min) {
			alert("El campo '"+name_mostrar+"' debe contener al menos " + Min + text_final1);
			contenedor.focus();
			flag = false;
			return false;
		}
		/* Verifica el maximo (*si es 0 no tiene limite de caracteres) */
		if(flag == true)
			if(Max != 0)
				if(contenedor.value.length > Max) {
					alert("El campo '"+name_mostrar+"' debe contener máximo " + Max + text_final2);
					contenedor.focus();
					flag = false;
					return false;
				}
		/* Verifica que no contenga números */
		if(flag == true)
		if(modo_n == 'sinN')
			if(!isNaN(contenedor.value) && contenedor.value != '') {
				alert("El campo '" + name_mostrar + "' no debe contener números!!!");
				contenedor.focus();
				flag = false;
				return false;
			}
		/* Verifica que solo contenga los siguientes caracteres */
			/* Verifica que si puede tener números puede llevar . y los 10 digitos */
		if(modo_n == 'sinN')
		caracteres = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ áéíóúÁÉÍÓÚ.-_:/";
		else
		caracteres = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ áéíóúÁÉÍÓÚ0123456789.-_:/";
		
		if(flag == true)
		if(modo_ce == 'sinCE')
			for(i=0; i < contenedor.value.length; i++) {
				ubicacion = contenedor.value.substring(i, i + 1);
				if(caracteres.indexOf(ubicacion) == -1) {

					alert("No se acepta el caracter '" + ubicacion + "' en el campo '" + name_mostrar + "'!!!");	

					var tr = contenedor.createTextRange();
					    tr.findText(ubicacion);
						tr.select();

						contenedor.focus();

					flag = false;
					return false;

					break;

				}
			}
			
		return true;
	} else return true;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function vNum(id, Min, Max, modo_num, obligado, pref) {
	contenedor = document.getElementsByName(id);
	contenedor = contenedor[0];
	
	flag = true;
	
	id_mostrar = id.replace(pref, '');
	id_mostrar = id_mostrar.split('_');

	for(i = 0; i < id_mostrar.length; i++)
		id_mostrar[i] = id_mostrar[i].replace( id_mostrar[i].charAt(0) , id_mostrar[i].charAt(0).toUpperCase() );
	
	id_mostrar = id_mostrar.join(' ');

	/* Verifica si el minimo/maximo es 1 para el alert */
	text_final1 = (Min == 1) ? ' dígito!!!' : ' dígitos!!!';
	text_final2 = (Max == 1) ? ' dígito!!!' : ' dígitos!!!';
	
	if(obligado != 'no' || contenedor.value != '') {
		/* Verifica el minimo de digitos */
		if(contenedor.value.length < Min) {
			alert("El campo '"+id_mostrar+"' debe ser un número que contenga al menos " + Min + text_final1);
			contenedor.focus();
			flag = false;
			return false;
		}
		/* Verifica mayor a 0 */
		if(contenedor.value <= 0) {
			alert("El campo '"+id_mostrar+"' debe ser mayor a cero!!!");
			contenedor.focus();
			flag = false;
			return false;
		}		
		/* Verifica el maximo (*si es 0 no tiene limite de caracteres) */
		if(flag == true)
			if(Max != 0)
				if(contenedor.value.length > Max) {
					alert("El campo '"+id_mostrar+"' debe ser un número que contenga máximo " + Max + text_final2);
					contenedor.focus();
					flag = false;
					return false;
				}
		
		/* Verifica que sea numero entero o decimal */
		if(flag == true)
			if(isNaN(contenedor.value)) {
				alert("El campo '"+id_mostrar+"' debe ser numérico!!!");
				contenedor.focus();
				flag = false;
				return false;
			}
		
		/* Verifica que sea numero entero*/
		caracteres = '.';
		if(flag == true)
			if(modo_num == 'int')
				for(i=0; i < contenedor.value.length; i++) {
					ubicacion = contenedor.value.substring(i, i + 1);
					if(caracteres.indexOf(ubicacion) != -1) {
						alert("No se aceptan números decimales en el campo '" + id_mostrar + "'!!!");
						contenedor.focus();
						return false;
						break;
					}
				}
		return true;
	} else return true;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function vFechas(name, comparacion, pref) {
	
	try {
		
			var fecha1 = document.getElementsByName(name);
			fecha1 = fecha1[0];
			var fecha2 = document.getElementsByName(comparacion);
			fecha2 = fecha2[0];
			
			var fecha_mostrar1 = name.replace(pref, '');
			var fecha_mostrar2 = comparacion.replace(pref, '');
			
			if(fecha1.value != '' && fecha2.value != ''){
			
				fecha_separada1 = fecha1.value.split('-');
				fecha_separada2 = fecha2.value.split('-');
			
				if (parseInt(fecha_separada1[0]) == parseInt(fecha_separada2[0]) && parseInt(fecha_separada1[1]) == parseInt(fecha_separada2[1]) && parseInt(fecha_separada1[2]) < parseInt(fecha_separada2[2])){
					
						return true;
					
				} else if (parseInt(fecha_separada1[0]) == parseInt(fecha_separada2[0]) && parseInt(fecha_separada1[1]) < parseInt(fecha_separada2[1])) {
						
						return true;
						
				} else if (parseInt(fecha_separada1[0]) <= parseInt(fecha_separada2[0])) {
						
						return true;
						
				} else {
				
						alert("La fecha del campo " + fecha_mostrar2 + " debe ser mayor a el de " + fecha_mostrar1 + " !!!");
						fecha2.focus();
						return false;
				
				}
				
			} else if(fecha1.value == '' && fecha2.value != ''){
				
				alert ("Debe seleccionar una fecha en el campo " + fecha_mostrar1 + " !!!" );
				return false;
			
			} else if(fecha1.value != '' && fecha2.value == ''){
				
				alert ("Debe seleccionar una fecha en el campo " + fecha_mostrar2 + " !!!" );
				return false;
			
			} else{
				
				alert ("Debe seleccionar una fecha en el campo " + fecha_mostrar1 + " y en el campo "+ fecha_mostrar2 +" !!!" );
				return false;
			
			}
				
	} catch(e) {
		
		alert(e.name + '\nfuncion: v_fechas() \n\n' + e.message);
		
	}
		

}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function vSelect(id, cadena_comparacion, pref) {

	contenedor = document.getElementsByName(id);
	contenedor = contenedor[0];

	id_mostrar = id.replace(pref, '');
	id_mostrar = id_mostrar.split('_');

	for(i = 0; i < id_mostrar.length; i++)
		id_mostrar[i] = id_mostrar[i].replace(id_mostrar[i].charAt(0), id_mostrar[i].charAt(0).toUpperCase());

	id_mostrar = id_mostrar.join(' ');

	if(contenedor.options[contenedor.selectedIndex].value == cadena_comparacion) {

	   alert("Debe seleccionar una opción de la lista '" + id_mostrar + "'!!!");
	   contenedor.focus();
	   
	   return false;

	}

	return true;

}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function vEmail(id, obligado, pref) {
	contenedor = document.getElementsByName(id);
	contenedor = contenedor[0];

	id_mostrar = id.replace(pref, '');
	id_mostrar = id_mostrar.split('_');

	for(i = 0; i < id_mostrar.length; i++)
		id_mostrar[i] = id_mostrar[i].replace( id_mostrar[i].charAt(0) , id_mostrar[i].charAt(0).toUpperCase() );
	
	id_mostrar = id_mostrar.join(' ');
	
	flag = true;
	caracteres = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-.0123456789@';
	
	if(obligado != 'no' || contenedor.value != '') {
		for(i=0; i < contenedor.value.length; i++) {
			ubicacion = contenedor.value.substring(i, i + 1);
			if(caracteres.indexOf(ubicacion) == -1) {
				alert("No se acepta el caracter '" + ubicacion + "' en el '"+id_mostrar+"''!!!");	
				contenedor.focus();
				flag = false;
				return false;
				break;
			}
	}
	
	//Para formato xxx@xxx.xx xxx....
	if(flag == true)
		if(contenedor.value.length < 10) {
			alert("El '"+id_mostrar+"' es demasiado corto para ser correcto!!!");
			contenedor.focus();
			flag = false;
			return false;
		}
		
	// Checa q exista solo 1 @
	if(flag == true) {
		for(i=0, cont=0; i < contenedor.value.length; i++) {
			caracter = contenedor.value.substring(i, i + 1);
			if(caracter == '@')
				cont++;
			}
		if(cont != 1) {
			if(cont > 1)
				alert("Solo debe de existir una '@' en el campo '"+id_mostrar+"'!!!");
			else
				alert("Debe de existir '@' en el campo '"+id_mostrar+"'!!!");
			
			flag = false;
			contenedor.focus();
			return false
		}
	}
	
	// Checa que la arroba este antes de 3 caracteres: xxx@
	if(flag == true)
		if(contenedor.value.indexOf('@') < 3) {
			alert("Al parecer el campo '"+id_mostrar+"' es incorrecto, debido a que deben ir 3 caracteres antes del '@'!!!");
			flag = false;
			contenedor.focus();
			return false;
		}
		
	if(flag == true)
		if(contenedor.value.indexOf('@') < 3) {
			alert("Al parecer el campo '"+id_mostrar+"' es incorrecto, debido a que deben ir al menos tres caracteres antes del '@'!!!");
			flag = false;
			contenedor.focus();
			return false;
		}

	pos_arroba = contenedor.value.indexOf('@');
	dominio = contenedor.value.substring(pos_arroba+1, contenedor.value.length);
	arreglo_extenciones = new Array('.co','.com','.net','.org','.info','.biz','.tv','.us','.cc','.name','.bz','.uk','.de','.be','.nz','.at','.ws','.edu');
	if(flag == true) {
		for(i=0,cont=0; i < arreglo_extenciones.length; i++) {
			if(dominio.indexOf(arreglo_extenciones[i]) != -1) {
				cont++;
				extencion = arreglo_extenciones[i];
			}
		}
		if(cont == 0) {
			alert("Al parecer el campo '"+id_mostrar+"' es incorrecto, debido a que debe llevar una extención válida (.com, .net, etc.)!!!");
			flag = false;
			contenedor.focus();
			return false;
		}
	}
	if(flag == true) 
		if(dominio.indexOf(extencion) < 3) {
			alert("Al parecer el campo '"+id_mostrar+"' es incorrecto, debido a que deben ir tres caracteres entre el '@' y la extención '"+extencion+"'!!!");
			flag = false;
			contenedor.focus();
			return false;
	}
/*	extencion = dominio.substring(dominio.indexOf(extencion)+1, dominio.length);
	extencion = extencion.split('.');
	
	if(flag == true) 
		if(extencion[0] > 3 || extencion[1] > 3 || extencion[2] > 3) {
			alert("La extención de la dirección de correo de '"+id_mostrar+"' es demasiado larga!!!");
			return false
		}*/
	return true;
	
  } else return true;
  
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function vConfirmacion(id_1, id_2, pref) {

	contenedor0 = document.getElementsByName(id_1);
	contenedor0 = contenedor0[0];

	contenedor1 = document.getElementsByName(id_2);
	contenedor1 = contenedor1[0];
	
	id_mostrar = id_1.replace(pref, '');
	id_mostrar = id_mostrar.split('_');

	for(i = 0; i < id_mostrar.length; i++)
		id_mostrar[i] = id_mostrar[i].replace(id_mostrar[i].charAt(0), id_mostrar[i].charAt(0).toUpperCase());

	id_mostrar = id_mostrar.join(' ');
	
	if(contenedor0.value != contenedor1.value) {

		alert("El campo '"+id_mostrar+"' no coincide con la confirmación!!!");
		contenedor1.focus();
		return false;

	} else
		return true;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function vArchivo(id, mimes, obligado) {
	
	contenedor = document.getElementsByName(id);
	contenedor = contenedor[0];
	
	flag = true;
	
	if(obligado != 'no' || contenedor.value != '') {
		
		if(contenedor.value == '') {
			alert('Debe de ingresar la ruta del archivo!!!');
			contenedor.focus();
			flag = false;
			return false;
		}
		//C:\x.jpg
		
		if(flag == true)
			if(contenedor.value.length < 8) {
				alert('El nombre del archivo es demasiado corto pasa ser correcto!!!');
				contenedor.focus();
				flag = false;
				return false;
			}
		if(flag == true)
			if(contenedor.value.indexOf('.') == -1) {
				alert('Al parecer el nombre del archivo no contiene una extención!!!');
				contenedor.focus();
				flag = false;
				return false;
			}
		
		if(flag == true) {

			ver = contenedor.value.substr(contenedor.value.length-5,contenedor.value.length).toLowerCase();
			ver = ver.split('.');
			
			switch(mimes) {

				case 'literatura'  : tipo_mime = mimes;
								     mimes = new Array('xls','doc','ppt','pdf','txt','jpg');

								for(cont = 0,cont_flag = 0,mensaje_mimes = ''; cont < mimes.length; cont++)
									if(ver[1] != mimes[cont]) {
										
										mensaje_mimes += '*.'+mimes[cont]+'\n';
										cont_flag++;
										
									}
									
								if(cont_flag == mimes.length) {
									
									alert('Los tipos de archivos validos para ' + tipo_mime + ' son:\n\n'+mensaje_mimes);
									contenedor.focus();
									return false;
									
								} else
									return true;
				
							break;

				case 'imagen'     : tipo_mime = mimes;
								    mimes = new Array('jpg');

								for(cont = 0,cont_flag = 0,mensaje_mimes = ''; cont < mimes.length; cont++)
									if(ver[1] != mimes[cont]) {
										
										mensaje_mimes += '*.'+mimes[cont]+'\n';
										cont_flag++;
										
									}
									
								if(cont_flag == mimes.length) {
									
									alert('Los tipos de archivos validos para ' + tipo_mime + ' son:\n\n'+mensaje_mimes);
									contenedor.focus();
									return false;
									
								} else
									return true;
				
							break;

				case 'banner'    : tipo_mime = mimes;
								    mimes = new Array('jpg','swf');

								for(cont = 0,cont_flag = 0,mensaje_mimes = ''; cont < mimes.length; cont++)
									if(ver[1] != mimes[cont]) {
										
										mensaje_mimes += '*.'+mimes[cont]+'\n';
										cont_flag++;
										
									}
									
								if(cont_flag == mimes.length) {
									
									alert('Los tipos de archivos validos para ' + tipo_mime + ' son:\n\n'+mensaje_mimes);
									contenedor.focus();
									return false;
									
								} else
									return true;
				
							break;
							
				/*
				case 'video' : tipo_mime = mimes;
								mimes = new Array('mpg','mpeg','wmv');

								for(cont = 0,cont_flag = 0,mensaje_mimes = ''; cont < mimes.length; cont++)
									if(ver[1] != mimes[cont]) {
										
										mensaje_mimes += '*.'+mimes[cont]+'\n';
										cont_flag++;
										
									}
									
								if(cont_flag == mimes.length) {
									
									alert('Los tipos de archivos validos para ' + tipo_mime + ' son:\n\n'+mensaje_mimes);
									contenedor.focus();
									return false;
									
								} else
									return true;
				
							break;
				*/

				default		  : if(ver[1].length < 2 ) {
					
									alert('La extención del nombre del archivo es menos de 2 caracteres y parece ser no correcta!!!');
									contenedor.focus();
									return false;
								} else								
								if(ver[1].length > 3 ) {
									
									alert('La extención del nombre del archivo es de mas de 3 caracteres y parece ser no correcta!!!');
									contenedor.focus();
									return false;
									
								} else
									return true;
				
							break;
				
			}
	
		}
		
	} else return true;
	
}