// JavaScript Document
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function validaCampo(name, expresion, sensitive, mensaje) {

	var parametros = (sensitive) ? 'i' : '';

	var obj = document.getElementsByName(name);
		obj = obj[0];

	var patron = new RegExp(expresion, parametros); 


	if(!patron.test(obj.value)) {
		
		alert(mensaje);
		return false;
		
	} else
		return true;

}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function v_txt(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 valida_num(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 v_select(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 v_email(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','.mx');
	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 v_confirmacion(id_1, id_2, pref) {
	//contenedor0 = document.getElementById(id_1);
	contenedor0 = document.getElementsByName(id_1);
	contenedor0 = contenedor0[0];
	//contenedor1 = document.getElementById(id_2);
	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 llena_select_fecha(id, modo, Min, Max, modo_meses) {
	//contenedor = document.getElementById(id);
	contenedor = document.getElementsByName(id);
	contenedor = contenedor[0];
	
	if(modo == 'dias')
	for(cont = 1; cont < 32; cont++) {
		if(cont < 10)
			cont = '0'+cont;
		newOption = new Option(cont,cont);					// new Option('text','value');
		contenedor.options[contenedor.length] = newOption;
	}
	else
	if(modo == 'años')
	for(cont = Min; cont <= Max; cont++) {
		newOption = new Option(cont,cont);
		contenedor.options[contenedor.length] = newOption;
	}
	else
	
	if(modo_meses == 'num')
		for(cont = 1; cont < 13; cont++) {
			if(cont < 10) cont = '0'+cont;
			newOption = new Option(cont,cont);
			contenedor.options[contenedor.length] = newOption;
		}
	else
	for(cont = 1; cont < 13; cont++) {
		switch(cont) {
			case 1  : mes = 'Enero'; break;
			case 2  : mes = 'Febrero'; break;
			case 3  : mes = 'Marzo'; break;
			case 4  : mes = 'Abril'; break;
			case 5  : mes = 'Mayo'; break;
			case 6  : mes = 'Junio'; break;
			case 7  : mes = 'Julio'; break;
			case 8  : mes = 'Agosto'; break;
			case 9  : mes = 'Septiembre'; break;
			case 10 : mes = 'Octubre'; break;
			case 11 : mes = 'Noviembre'; break;
			case 12 : mes = 'Diciembre'; break;
		}
		if(cont < 10)
			cont = '0'+cont;			// Para poder compararlo con formato 02, Numerico para ingresarlo a la base de datos
		
		newOption = new Option(mes,cont);
		contenedor.options[contenedor.length] = newOption;
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function llena_select_estados(id) {
	contenedor = document.getElementsByName(id);
	contenedor = contenedor[0];
	
	arreglo = new Array('Aguascalientes','Baja California Norte','Baja California Sur','Campeche','Chiapas','Chihuahua','Coahuila','Colima','Distrito Federal','Durango','Edo de Mexico','Guanajuato','Guerrero','Hidalgo','Jalisco','Michoacan','Morelos','Nayarit','Nuevo Leon','Oaxaca','Puebla','Queretaro','Quintanaroo','San Luis Potosi','Sinaloa','Sonora','Tlaxcala','Tabasco','Tamaulipas','Veracruz','Yucatan','Zacatecas');
	
	for(cont=0; arreglo.length > cont; cont++) {
		newOption = new Option(arreglo[cont],arreglo[cont]);
		contenedor.options[contenedor.length] = newOption;
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function lista_en_indice(id, cadena_de_comparacion, modo_comparacion) {
	//contenedor = document.getElementById(id);
	contenedor = document.getElementsByName(id);
	contenedor = contenedor[0];

	indice = contenedor.length;
	for(cont = 0; cont < indice; cont++) {
		if(eval('contenedor.options[cont].'+modo_comparacion) == cadena_de_comparacion) {
			contenedor.selectedIndex = cont;
			break;
		}	
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function radio_en_indice(forma_y_campo, n_indices, cadena_de_comparacion) {

	for(cont = 0; cont <= n_indices; cont++) {
		if(eval('document.'+forma_y_campo+'['+cont+'].value == "'+cadena_de_comparacion+'"')) {
			eval('document.'+forma_y_campo+'['+cont+'].checked = true');
			break;
		}	
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function fecha_de_hoy() {
fecha = new Date();
mes = fecha.getMonth();
mes = Number(mes)+1;
switch(mes) {
	case 1 : mes = '01'; break;
	case 2 : mes = '02'; break;
	case 3 : mes = '03'; break;
	case 4 : mes = '04'; break;
	case 5 : mes = '05'; break;
	case 6 : mes = '06'; break;
	case 7 : mes = '07'; break;
	case 8 : mes = '08'; break;
	case 9 : mes = '09'; break;
}
dia = fecha.getDate();
dia = Number(dia);
switch(dia) {
	case 1 : dia = '01'; break;
	case 2 : dia = '02'; break;
	case 3 : dia = '03'; break;
	case 4 : dia = '04'; break;
	case 5 : dia = '05'; break;
	case 6 : dia = '06'; break;
	case 7 : dia = '07'; break;
	case 8 : dia = '08'; break;
	case 9 : dia = '09'; break;
}
fecha_hoy = fecha.getFullYear()+'-'+mes+'-'+dia;
	return fecha_hoy;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function formato_monetario_con_decimales(numero) {
	
	if(numero.indexOf('.') == -1)
		numero += '.00';
	else
		numero = trunca_decimales(numero);
	
	return numero;
	
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function trunca_decimales(numero) {
	
	num = numero.split('.');
	num[1] = num[1].substring(0,2);
	
	if(num[0].length == 0 || Number(num[0]) == 0) num[0] = '0';
	if(num[1].length == 0) num[1] = '00'; else
	if(num[1].length == 1) num[1] = num[1]+'0';
	numero = num.join('.');
	
	return numero;
	
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function v_archivo(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 'avatar'	  :
				case 'icono'      :
				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 '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;
							
				case 'excel' : tipo_mime = mimes;
								mimes = new Array('xls');

								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 'xml'   : tipo_mime = mimes;
								mimes = new Array('xml');

								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 'documento' : tipo_mime = mimes;
								   mimes = new Array('pdf','doc','xls','txt','ppt','pps');

								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;
	
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*function pop_up_tamano_archivo(ruta_archivo) {
	ruta_archivo = '< ?= $_SESSION["url_sitio"];?>'+'/admin/includes/pop_up_archivo_size.php?archivo='+ruta_archivo;
	NewWindow_hide(ruta_archivo,'',300,150);
}
function NewWindow_hide(mypage, myname, w, h) {
	var winl = -100;
	var wint = -100;
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no'
	win = window.open(mypage, myname, winprops)
	if (parseInt(navigator.appVersion) >= 4) {
		win.window.focus();
	}
}*/
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*function formato_monetario(number) {
	number = '' + number;
	if (number.length > 3) {
		var mod = number.length % 3;
		var output = (mod > 0 ? (number.substring(0,mod)) : '');
		for (i=0 ; i < Math.floor(number.length / 3); i++) {
			if ((mod == 0) && (i == 0))
				output += number.substring(mod+ 3 * i, mod + 3 * i + 3);
			else
				output+= ',' + number.substring(mod + 3 * i, mod + 3 * i + 3);
			}
	return (output);
	}
else return number;
}*/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////