function enviar(forma, action){
	//alert(forma.name);
	//alert(action);
	//Valida los campos que tienen formato general...		
	if (validaCampos(forma)) return true;		
	//if (validacionNivel3(forma)) return true;	
	try {
		if (validacionNivel3(forma)) return true;
	} 
	catch(er) {
	}
		
	try { 
		if (validacionEspecial(forma)) return true;
	} 
	catch(er) {
	}
	
	try { 			
		if (VerificaExtensionImagen(forma)) return true;
	} 
	catch(er) {
	}
	forma.action=action;
	forma.submit();
}

function validar(forma, action){
	//alert(forma.name);
	//alert(action);
	//Valida los campos que tienen formato general...		
	try {
		if (validacionNivel3(forma)) return true;
	} 
	catch(er) {
	}
	//if (validacionNivel3(forma)) return true;		
	try { 
		if (validacionEspecial(forma)) return true;
	} 
	catch(er) {
	}		
	try { 			
		if (VerificaExtensionImagen(forma)) return true;
	} 
	catch(er) {
	}
}


function VerificaExtensionImagen(forma)
{
	var ext;
  	//Si está vacio, no hay nada que validar...
	if (forma.foto.value.replace(/ /g, '') == '') return false;
	
	//Obtiene la extension del archivo, con todo y punto.
	ext = forma.foto.value.substring(forma.foto.value.indexOf("."));
	valida=false;
	switch (ext)
	{
		case '.jpg' :
			return false;break;
		case '.bmp' :
			return false;break;
		case '.gif' :
			return false;break;
		case '.jpe' :
			return false;break;
		case '.png' :
			return false;break;					
		default :
			forma.foto.focus();
			window.alert("Los Tipos de Archivo Válidos como Foto, son los .jpg, .bmp, .gif, .jpe y .png");
			return true;
			break;	
	}	
}

// Función que pone en estatus 'checked' a los checkbox
// cuyo nombre coincida con cierto "valor" y cierto
// atributo enviado.
function AutoCheckSeg_old(obj_forma, valor, atributo){
	var arregloOriginal;
	var diferencia;
		arregloOriginal = valor.split("/")
		
	// El ciclo abarca a todos los objetos de la forma, que tengan el
	// atributo segcheck="1"
	for (i = 0; i < obj_forma.length; i++) {
		diferencia = false;	
		if (obj_forma.elements[i].atributo == "1"){
			arregloElemento = obj_forma.elements[i].name.split("/")
			for (contador = 0; contador < arregloOriginal.length; contador++) {
				if (arregloOriginal[contador]!=arregloElemento[contador]){
					diferencia=true;
				}
			}
			if (!diferencia){
				obj_forma.elements[i].checked = true;
			}
		}
    }
	return false;
}
// Funcion que recibe como parametro a un objeto "forma",
// del cual va a validar que no esten vacios al menos  uno de los "campos"
// que tengan el atributo segcheck="1"
function validacionNivel3(obj_forma){
	var field = obj_forma;
	var i;
	var contador;
	var existeSegcheck;
	existeSegcheck=false;
	contador=0;

	// Solamente cuando es un usuario de nivel 0, tiene que checar que haya obtenido derechos
	// en al menos una sucursal	
	if (field.administrador.value > 0 ) return false;

	// El ciclo abarca a todos los objetos de la forma, que tengan el
	// atributo segcheck="1"
	for (i = 0; i < field.length; i++) 
	{// field.length
		if (obj_forma.elements[i].segcheck == "1")
		{
			//alert(obj_forma.elements[i].name);
			existeSegcheck=true;
			if (!val_requerido(obj_forma.elements[i],'', 0))
			{
				//alert(obj_forma.elements[i].name);
				contador = contador+1;				
			}
		}
    }
	//Si no hubo ni un solo campo seleccionado, regresa true
	if (existeSegcheck==true && contador<1){
		alert("Debe Seleccionar al Menos una Sucursal.");
		return true;
	}
	return false;
}
	
// Funcion que recibe como parametro a un objeto "forma",
// del cual va a validar que no esten vacios todos aquellos "campos"
// que tengan el atributo requerido="1"
function validaCampos(obj_forma){
	var field = obj_forma;
	var i;
	
	// El ciclo abarca a todos los objetos de la forma, que tengan el
	// atributo requerido="1"
	for (i = 0; i < field.length; i++) {// field.length
		if (obj_forma.elements[i].requerido == "1"){
			if (val_requerido(obj_forma.elements[i],'df', 0)){
				return true;
			}
		}
    }
}

function validaTecla(obj_campo, keyCode, tipo ) {
	switch(tipo)
	{
		case "entero" :
			var pattern =/^\d*$/;
			break;
		case "calificacion" :
			if ((keyCode > 47 && keyCode < 58) || (keyCode == 46)){
				event.returnValue = true;
				return true;
			}
			else{
				event.returnValue = false;			
				return false;
			}
			break;
		case "correo" :
			if ((keyCode > 47 && keyCode < 58) ||(keyCode > 64 && keyCode < 91)||(keyCode > 96 && keyCode < 123)|| (keyCode == 95)|| (keyCode == 45)|| (keyCode == 46) || (keyCode == 64)){
				event.returnValue = true;
				return true;
			}
			else{
				event.returnValue = false;			
				return false;
			}
			break;
		case "rfc" :
			if ((keyCode > 47 && keyCode < 58) ||(keyCode > 64 && keyCode < 91)||(keyCode > 96 && keyCode < 123)|| (keyCode == 45) || (keyCode == 32)){
				event.returnValue = true;
				return true;
			}
			else{
				event.returnValue = false;			
				return false;
			}
			break;			
		case "fecha" :
			if ((keyCode > 46 && keyCode < 58)){
				event.returnValue = true;
				return true;
			}
			else{
				event.returnValue = false;			
				return false;
			}
			break;			
		default :
			var pattern =/^$/;		
			break;		
	}	
	if(!pattern.test(obj_campo.value + String.fromCharCode (keyCode))) {
		event.returnValue =false;
	}
}

function validaDato(obj_campo, str_mensaje, tipo ) {
	var pattern;
	switch (tipo)
	{
		case "entero" :
			pattern =/^\d*$/;
			break;	
		case "calificacion" :
			pattern = /^(((100(?:\.0{1,2})?|0*?\.\d{1,2}|\d{1,2}(?:\.\d{1,2})?))|())$/;
			break;
		case "correo" :
			pattern =/^(([a-zA-Z0-9_\-])+(\.([a-zA-Z0-9_\-])+)*@((\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\]))|((([a-zA-Z0-9])+(([\-])+([a-zA-Z0-9])+)*\.)+([a-zA-Z])+(([\-])+([a-zA-Z0-9])+)*)))*$/;
			break;
		case "rfc" :
			pattern =/^(([A-Za-z]{3,4}[ |\-]{0,1}[0-9]{6}[ |\-]{0,1})([0-9A-Za-z]{3})*)*$/;
			break;					
		case "fecha_ddmmaaaa" :
			if (  isDate(obj_campo, str_mensaje, "dd/mm/aaaa")  ){
				event.returnValue = true;
				return true;
			}
			else{
				event.returnValue = false;
				return false;
			}			
			break;
		case "fecha_mmddaaaa" :
			if (  isDate(obj_campo, str_mensaje, "mm/dd/aaaa")  ){
				event.returnValue = true;
				return true;
			}
			else{
				event.returnValue = false;
				return false;
			}			
			break;					
		default :
			pattern =/^$/;
			break;
	}//termina switch
	if(!pattern.test(obj_campo.value)) salidaError(obj_campo, str_mensaje, tipo )
}

// Valida si es una fecha válida en el formato mm/dd/aaaa.
// Nota: requiere la funcion "diasDelMes"
function isDate(obj_campo, str_mensaje,formato){
	//Usando Expresiones Regulares.
	var date = obj_campo.value
	if (obj_campo.value =="" ){
		return false;
	}
	//Para formato mm/dd/aaaa
	//original:
	//var date_pattern =/^((0?[1-9]|1[0-2])\/(0?[1-9]|[12]\d|3[01])\/(\d{2}){1,2})$/;
		
	//Para formato dd/mm/aaaa
	switch (formato)
		{
			case "dd/mm/aaaa"	:
				var date_pattern =/^((0?[1-9]|[12]\d|3[01])\/(0?[1-9]|1[0-2])\/(\d{2}){1,2})$/; 								
				//var date_pattern =/^((0?[1-9]|1[0-2])\/(0?[1-9]|[12]\d|3[01])\/(\d{2}){1,2})$/; 				
				break;				
			case "mm/dd/aaaa"	:
				var date_pattern =/^((0?[1-9]|1[0-2])\/(0?[1-9]|[12]\d|3[01])\/(\d{2}){1,2})$/; 
				//var date_pattern =/^((0?[1-9]|1[0-2])\/(0?[1-9]|[12]\d|3[01])\/(\d{2}){1,2})$/; 
				break;
			default :
				//por default, toma "dd/mm/aaaa"
				var date_pattern =/^((0?[1-9]|1[0-2])\/(0?[1-9]|[12]\d|3[01])\/(\d{2}){1,2})$/;			
				break;
		}//termina switch		
	if(!date_pattern.test(date)){
		salidaError(obj_campo,str_mensaje, "fecha");
		return true;
	}
	var aDate = date.split("/");
	switch (formato)
		{
			case "dd/mm/aaaa"	:				
				if(aDate[2].length==2) aDate[2] = (eval(aDate[2])>30)?"19":"20"+ aDate[2];
				if(eval(aDate[0])>diasDelMes(eval(aDate[2]),eval(aDate[1]))){
					salidaError(obj_campo,str_mensaje, "fecha");
					return true;	
				}
				break;		
			case "mm/dd/aaaa"	:
				if(aDate[2].length==2) aDate[2] = (eval(aDate[2])>30)?"19":"20"+ aDate[2];
				if(eval(aDate[1])>diasDelMes(eval(aDate[2]),eval(aDate[0]))){
					salidaError(obj_campo,str_mensaje, "fecha");
					return true;
				}
				break;
			default :
				//por default, toma "dd/mm/yyyy"
				if(aDate[2].length==2) aDate[2] = (eval(aDate[2])>30)?"19":"20"+ aDate[2];
				if(eval(aDate[0])>diasDelMes(eval(aDate[2]),eval(aDate[1]))){
					salidaError(obj_campo,str_mensaje, "fecha");
					return true;	
				}
				break;	
		}//termina switch		
	return false;
}
//Funcion que regresa el numero de dias de cada mes, 
// dependiendo el año
function diasDelMes(aaaa,mes){
	if (mes == 4 || mes == 6 ||  mes == 9 || mes == 11)
	    return 30;
	else if (mes == 2){
    	if (aaaa % 4 > 0)
			return 28;
		else if (aaaa % 100 == 0 && aaaa % 400 > 0)
			return 28;
	    else
    		return 29;
	}
	else return 31;
}

function salidaError(obj_campo,str_mensaje, tipo ){
	 if (str_mensaje.length > 0) {
		obj_campo.focus();
		obj_campo.select()
		switch (tipo)
		{
			case "entero" :
			 	if (str_mensaje.toLowerCase() == 'df' && obj_campo.title.length   >0 ) str_mensaje = 'El Valor Proporcionado en el Dato "' + obj_campo.title + '" no es Válido. Debe ser un Número Entero Mayor que Cero.' 	
				if (str_mensaje.toLowerCase() == 'df' && obj_campo.title.length == 0 ) str_mensaje = 'El Valor Proporcionado Debe ser un Número Entero Mayor que Cero.'
				alert (str_mensaje);
				break;
			case "calificacion" :
			 	if (str_mensaje.toLowerCase() == 'df' && obj_campo.title.length   >0 ) str_mensaje = 'El Valor Proporcionado en el Dato "' + obj_campo.title + '" no es Válido. Debe ser un Número entre 0 y 100, con máximo 2 decimales.' 	
				if (str_mensaje.toLowerCase() == 'df' && obj_campo.title.length == 0 ) str_mensaje = 'El Valor Proporcionado Debe ser un Número entre 0 y 100, con máximo 2 decimales.'
				alert (str_mensaje);
				break; 					
			case "fecha" :
			 	if (str_mensaje.toLowerCase() == 'df' && obj_campo.title.length   >0 ) str_mensaje =  obj_campo.title
				if (str_mensaje.toLowerCase() == 'df' && obj_campo.title.length == 0 ) str_mensaje = 'La Fecha Proporcionada no es Válida.'
//			 	if (str_mensaje.toLowerCase() == 'df' && obj_campo.title.length   >0 ) str_mensaje = 'La Fecha Proporcionada en el Dato "' + obj_campo.title + '" no es Válida. Debe tener el Formato "mm/dd/aaaa".' 	
//				if (str_mensaje.toLowerCase() == 'df' && obj_campo.title.length == 0 ) str_mensaje = 'La Fecha Proporcionada Debe tener el Formato "mm/dd/aaaa".'
				alert (str_mensaje);
				break; 
			default :
				if (str_mensaje.toLowerCase() == 'df' && obj_campo.title.length >0 ) str_mensaje = 'Error en el Tipo de Dato Ingresado en "' + obj_campo.title + '".'
			 	if (str_mensaje.toLowerCase() == 'df' && obj_campo.title.length == 0 ) str_mensaje = 'Error en el Tipo de Dato Ingresado.'
				alert (str_mensaje);
				break; 
		}//termina switch
	 }
}
/*
 ' *********************************************************
 ' Proposito: Valida caracteres .
 ' Entrada: obj_campo - campo a validar
 '			int_int_modo - tipo de validación
 '					   0 - personalizado
 '					   1 - numerico enteros
 '					   2 - numerico general
 '					   3 - letras sin espacios
 '					   4 - alfanumerico, espacio , enteros
 '					   5 - correo letras, _- , @, enteros
 '					   6 - path 
 '					   7 - path, direcciones url  
 '			str_caracteres - caracteres perzonalizados
 ' Retorno: true - caracteres invalidos
 '			false - caracteres validos
 ' *********************************************************
 */

 function caracteres(obj_campo,tipo,str_caracteres){
	 var str_valido='', str_letra, str_invalido='',str_numero,str_temporal;
	 var int_valido = 1;
	 str_letra =  'abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZáéíóúÁÉÍÓÚ'
	 str_numero = '1234567890.'
	 if (int_modo == 0) str_valido = '';
	 if (int_modo == 1) str_valido = str_numero;
	 if (int_modo == 2) str_valido = str_numero + '.-';
	 if (int_modo == 3) str_valido = str_letra;
	 if (int_modo == 4) str_valido = str_letra + str_numero + ' ';
	 if (int_modo == 5) str_valido = str_letra + str_numero + '@._-';
	 if (int_modo == 6) str_valido = str_letra + str_numero + '_.\/\\: ';
	 if (int_modo == 7) str_valido = str_letra + str_numero + '_.\/\\:?%&#=';
	 str_valido = str_valido + str_caracteres;
	 for (var int_i=0; int_i<obj_campo.value.length; int_i++){
		 str_temporal = obj_campo.value.substring(int_i, int_i+1);
		 if (str_valido.indexOf(str_temporal) == -1){
			 int_valido = 0;
			 if (str_invalido.indexOf(str_temporal) == -1) str_invalido = str_invalido + str_temporal;
		 }		
	 }
	 if (int_valido == 0) {
	 alert("CARACTER(ES) INVALIDO(S) :\n\n ( " + str_invalido + " )");
	 obj_campo.focus();
	 obj_campo.select();
	 return true; 
   }
   return false;
 }

function mensaje(str_mensaje){ //v3.0
  alert(str_mensaje);
}

function tecleaEnteroOld(keyCode) {
if (keyCode < 48 || keyCode > 57) event.returnValue = false;
}

function tecleaCalificacion(keyCode) { // 46 es el punto decimal.
if ((keyCode < 48 || keyCode > 57) && !(keyCode == 46))  event.returnValue = false;
}
  
	function val_input_longitud(obj_campo,int_modo,int_longitud){
	 if (obj_campo.value.length > int_longitud){
		 obj_campo.focus();
		 alert ('Ha excedido el limite de '+int_longitud+' caracteres'); 
		 return true;
	 }
	 return false;
 }

  function val_requeridoOld(obj_campo, str_mensaje, int_index ){  	
  	if (obj_campo.type == 'text' || obj_campo.type == 'textarea'){
	  	if (obj_campo.value.replace(/ /g, '') == ''){
			if (str_mensaje.length > 0) {
				obj_campo.focus();
			 	if (str_mensaje.toLowerCase() == 'df' && obj_campo.title.length >0 ) str_mensaje = 'Favor de Proporcionar la Información del dato "' + obj_campo.title + '".'
			 	if (str_mensaje.toLowerCase() == 'df' && obj_campo.title.length == 0 ) str_mensaje = 'Favor de Proporcionar la Información del Dato Indicado.'
				alert (str_mensaje);
			 }
			 return true;
		 }
		 return false;
	}
	if (obj_campo.type == 'select'  || obj_campo.type == 'select-one'){
		if (obj_campo.selectedIndex <= int_index ){
			if (str_mensaje.length > 0) {
				obj_campo.focus();			
			 	if (str_mensaje.toLowerCase() == 'df' && obj_campo.title.length >0 ) str_mensaje = 'Favor de Seleccionar una Opción Válida del dato "' + obj_campo.title + '".'
			 	if (str_mensaje.toLowerCase() == 'df' && obj_campo.title.length == 0 ) str_mensaje = 'Favor de Seleccionar una Opción Válida del Dato Indicado.'
				alert (str_mensaje);
			 }
			obj_campo.focus();
			return true;
		}
		return false;
	}
	else{
		for (i=0; i < obj_campo.length; i++){
			if (obj_campo[i].checked) return false
		}
		if (str_mensaje.length > 0) {
				obj_campo[0].focus();//Selecciona el primer elemento del conjunto de "radios"
			 	if (str_mensaje.toLowerCase() == 'df' && obj_campo.title.length >0 ) str_mensaje = 'Favor de Proporcionar la Información del dato "' + obj_campo.title + '".'
			 	if (str_mensaje.toLowerCase() == 'df' && obj_campo.title.length == 0 ) str_mensaje = 'Favor de Proporcionar la Información del Dato Indicado.'
				alert (str_mensaje);
			 }
		return true;
	}
 }
 
 function val_requerido(obj_campo, str_mensaje, int_value ){
  	if (obj_campo.type == 'checkbox'){
	  	if (obj_campo.checked == false){
			//obj_campo.style.background='D7E7EF';	
			if (str_mensaje.length > 0) {
				obj_campo.focus();
				if (str_mensaje.toLowerCase() == 'df' && obj_campo.nombreAlert.length >0 ) str_mensaje = 'Favor de Proporcionar la Información del dato "' + obj_campo.nombreAlert + '".'
			 	if (str_mensaje.toLowerCase() == 'df' && obj_campo.nombreAlert.length == 0 ) str_mensaje = 'Favor de Proporcionar la Información del Dato Indicado.'
				alert (str_mensaje);
				obj_campo.focus();
				//obj_campo.style.background='D7E7EF';
			 }
			 return true;
		 }
		 return false;
	}		 
  	if (obj_campo.type == 'text' || obj_campo.type == 'textarea' || obj_campo.type == 'password'){
	  	if (obj_campo.value.replace(/ /g, '') == ''){
			//obj_campo.style.background='FFFFFF';
			obj_campo.style.background='D7E7EF';	
			//alert("requerido");
			if (str_mensaje.length > 0) {
			//alert("requerido2");
				//obj_campo.style.background='D7E7EF';
				obj_campo.focus();
				//obj_campo.style.background='D7E7EF';
				if (str_mensaje.toLowerCase() == 'df' && obj_campo.nombreAlert.length >0 ) str_mensaje = 'Favor de Proporcionar la Información del dato "' + obj_campo.nombreAlert + '".'
			 	if (str_mensaje.toLowerCase() == 'df' && obj_campo.nombreAlert.length == 0 ) str_mensaje = 'Favor de Proporcionar la Información del Dato Indicado.'
				alert (str_mensaje);
				obj_campo.style.background='D7E7EF';
				obj_campo.focus();
			 }
			 return true;
		 }
		 return false;
	}
	if (obj_campo.type == 'select'  || obj_campo.type == 'select-one'){
		if (obj_campo.value <= int_value ){
			if (str_mensaje.length > 0) {
				obj_campo.focus();
			 	if (str_mensaje.toLowerCase() == 'df' && obj_campo.nombreAlert.length >0 ) str_mensaje = 'Favor de Seleccionar una Opción Válida del dato "' + obj_campo.nombreAlert + '".'
			 	if (str_mensaje.toLowerCase() == 'df' && obj_campo.nombreAlert.length == 0 ) str_mensaje = 'Favor de Seleccionar una Opción Válida del Dato Indicado.'
				alert (str_mensaje);
			 }
			obj_campo.focus();
			return true;
		}
		return false;
	}
	else{
		//Si es tipo archivo, no lo toma en cuenta...
		if (obj_campo.type == 'file') return false;
		
		for (i=0; i < obj_campo.length; i++){
			if (obj_campo[i].checked) return false;
		}
		if (str_mensaje.length > 0) 
		{
				if (obj_campo.length > 0) //Si no hay "radios", ni entra
				{
					obj_campo[0].focus();//Selecciona el primer elemento del conjunto de "radios", en caso de que exista.
			 		if (str_mensaje.toLowerCase() == 'df' && obj_campo.nombreAlert.length >0 ) str_mensaje = 'Favor de Proporcionar la Información del dato "' + obj_campo.nombreAlert + '".'
			 		if (str_mensaje.toLowerCase() == 'df' && obj_campo.nombreAlert.length == 0 ) str_mensaje = 'Favor de Proporcionar la Información del Dato Indicado.'
					alert (str_mensaje);
				}	
		 }
		return true;
	}
}

//-----------------------------------------------------------
// Comienza seccion de funciones de AJAX... -->
//-----------------------------------------------------------

	function handleHttpResponse() { 
	    if (http.readyState == 4) {
	       if (http.status == 200) { 
	          if (http.responseText.indexOf('invalid') == -1) {
	             // Armamos un array, usando los 3 caracteres |*| para separar elementos
				 //alert("http.responseText= " + http.responseText);
	             results = http.responseText.split("|*|"); 
				 
				 if (results[0] == "creaComboAJAX")
				 {
					 document.getElementById("cajaAJAX").innerHTML = results[1];
					 //document.getElementById("caja").terminado = 1;
				 }
	             enProceso = false;
	          }
	       }
	    }
	}
	
	//creaComboAJAX(tabla,name,clase,nombreAlert,title,selected,requerido,filtro,orderby,sql, atributosObjeto, valueOption0, TextOption0, valuePreOption, TextPreOption, ValuePosOption , TextPosOption )
	//function creaComboAJAX(tabla,name,clase,nombreAlert,title,selected,requerido,filtro,orderby,sql, atributosObjeto, valueOption0, TextOption0, valuePreOption, TextPreOption, ValuePosOption , TextPosOption )
	function creaComboAJAX(tabla,name,clase,nombreAlert,title,selected,requerido,filtro,orderby,sql, atributosObjeto, valueOption0, TextOption0, valuePreOption, TextPreOption, ValuePosOption , TextPosOption )
	{
	    if (!enProceso && http)//  original
		//if (http)  //  cambio de TONY
		{
			var nombre = "creaComboAJAX";
			//alert(nombre);
			//var valor = escape(document.getElementById("emailUsuario").value);
			//alert ("valor= " + valor);
			var url = "funcionesAJAX.asp?nombre=" + nombre
						+ "&tabla="+ tabla 
						+ "&name="+ name 
						+ "&clase="+ clase 
						+ "&nombreAlert="+ nombreAlert 
						+ "&title="+ title
						+ "&selected="+ selected 
						+ "&requerido="+ requerido 
						+ "&filtro="+filtro
						+ "&orderby="+orderby
						+ "&sql="+ sql
						+ "&atributosObjeto=" + atributosObjeto
						+ "&valueOption0=" + valueOption0
						+ "&TextOption0=" + TextOption0
						+ "&valuePreOption=" + valuePreOption
						+ "&TextPreOption=" + TextPreOption
						+ "&ValuePosOption=" + ValuePosOption
						+ "&TextPosOption=" + TextPosOption;
			//alert(url);
			http.open("GET", url, true);
			http.onreadystatechange = handleHttpResponse;
			enProceso = true;
			http.send(null);
		}
	}
	
	function getHTTPObject() {
	    var xmlhttp;
	    /*@cc_on
	    @if (@_jscript_version >= 5)
	       try {
	          xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	       } catch (e) {
	          try {
	             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	          } catch (E) { xmlhttp = false; }
	       }
	    @else
	    xmlhttp = false;
	    @end @*/
	    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
	       try {
	          xmlhttp = new XMLHttpRequest();
	       } catch (e) { xmlhttp = false; }
	    }
	    return xmlhttp;
	}
	
	var enProceso = false; // lo usamos para ver si hay un proceso activo
	var http = getHTTPObject(); // Creamos el objeto XMLHttpRequest

//-----------------------------------------------------------
// <-- ...Termina seccion de funciones de AJAX
//-----------------------------------------------------------