/*******************************
NOMBRE: Página para las funciones en javascript
FECHA: 26/Jun/2002
NOTAS:  
MODIFICACIONES
*******************************/

var strSrcAnterior = '';
var strBgcolorAnterior = '';
var strDivActual = '';
var strForm = '';
var ns4;
ns4=(document.layers)? true:false;

///////////////////////////////////
//recibe un un objeto (espera un TD), el color para el objeto,
//el color de la letra para los links dentro del objeto, y
//el nombre de la clase para el objeto
//regresa la apariencia del objeto src y sus links con los datos recibidos
//esta función es llamada al hacer clic con el mouse en el objeto src
function mClk(src,strClaseTd)
	{ 
	if(event.srcElement.tagName=='TD')
		{
		src.children.tags('A')[0].click();
		}
	}

///////////////////////////////////
//recibe un un objeto (espera un TD), el color para el objeto,
//el color de la letra para los links dentro del objeto, y
//el nombre de la clase para el objeto
//regresa la apariencia del objeto src y sus links con los datos recibidos
//esta función es llamada al posicionar el mouse sobre el objeto src
function mOvr(src,clrOver,strColorLetra,strClaseTd,strStatus)
	{ 
	if (!src.contains(event.fromElement))
		{ 
		src.style.cursor = 'hand'; 
		src.bgColor = clrOver;
		src.children.tags('A')[0].style.color=strColorLetra;
		src.className = strClaseTd;
		status = strStatus;
		} 
	} 

///////////////////////////////////
//recibe un un objeto (espera un TD), el color para el objeto,
//el color de la letra para los links dentro del objeto, y
//el nombre de la clase para el objeto
//regresa la apariencia del objeto src y sus links con los datos recibidos
//esta función es llamada al sacar el mouse del objeto src
function mOut(src,clrIn,strColorLetra,strClaseTd)
	{ 
	if (!src.contains(event.toElement))
		{ 
		src.style.cursor = 'default'; 
		src.bgColor = clrIn; 
		src.children.tags('A')[0].style.color=strColorLetra;
		src.className = strClaseTd;
		status = '';
		} 
	} 


///////////////////////////////////
//recibe un objeto (espera un TD), 
//el color para el objeto con el puntero encima,
//el texto para el status del browser,
//el nombre del div que va a mostrar (si aplica)
//regresa la apariencia del objeto src y sus links con los datos recibidos
//esta función es llamada al posicionar el mouse sobre el objeto src
function MouseOverMenu(src,clrOver,strStatus,strNomDiv)
	{ 
		if (!ns4)
			{
				if (!src.contains(event.fromElement))
					{ 
						if (strSrcAnterior != '')
							{
							strSrcAnterior.bgColor = strBgcolorAnterior;
							}
						strSrcAnterior = src;
						strBgcolorAnterior = src.bgColor;
						src.style.cursor = 'hand'; 
						src.bgColor = clrOver;
						status = strStatus;
					} 
			}
		MuestraDiv(strNomDiv);
	} 

///////////////////////////////////
//Muestra el div con las secciones del menú 
//donde se encuentra el mouse
function MuestraDiv(strNomDiv)
	{
	OcultaDiv();
	if (strNomDiv != '')
			{
			strDivActual = strNomDiv;
			if (ns4)
				{
				document.layers[strDivActual].visibility='visible';
				}
			else
				{
				document.all.item(strDivActual).style.visibility='visible';
				}
			}
	}

/////////////////////////////////
//Oculta el div que se encuentra visible 
function OcultaDiv()
	{
	if (strDivActual != '')
		{
		if (ns4)
			{
			document.layers[strDivActual].visibility='hidden';
			}
		else
			{
			document.all.item(strDivActual).style.visibility='hidden';
			}
		}
	}

//////////////////////////////////////////////////////
// Esta funcion recibe el valor del objeto y le cambia los apostrofes por acentos para evitar un error de SQL
// si encuentra apóstrofes regresa el mismo valor pero con acentos en lugar de apóstrofes
function sinApostrofe(objValor)
	{
	var intCount = objValor.value.indexOf ("'", 0);
	var intRecCount=0;
	while (intCount > -1 )
		{
		objValor.value = objValor.value.substring (0, intCount) + "´" + objValor.value.substring(intCount + 1, objValor.value.length);
		intCount = objValor.value.indexOf ("'", intCount);
		intRecCount = intRecCount + 1;
		}
	}

///////////////////////////
//Recibe el nombre de la página 
//a donde va a ir y el nombre del 
//inputs escondidos y sus valores, esto
//es para los divs del menú principal
function IrA(strPagina,strInputs,strValores)
	{
	var objForm = eval('document.'+strForm)
	with(objForm)
		{
		if (strPagina != '')
			{
			action = strPagina;
			hdnInputs.value = strInputs;
			hdnValores.value = strValores;
			submit();
			}
		}
	}

////////////////////////////////////////////////
// Esta funcion recibe el valor del objeto y el tamaño de caracteres
// que puede tener, valida el tamaño del valor del objeto y borra los
// caracteres que se pasen del tamaño especificado
function Longitud(objValue, intTam)
	{
	if (objValue.value.length >= intTam)
		objValue.value = objValue.value.substr(0,intTam);
	}

///////////////////////////////////////////////
// Esta función da submit a la forma de la 
// búsqueda que tienen todas las páginas del sitio
function Buscar()
	{
	with(document.frmBuscar)
		{
		if (txtBuscar.value != '')
			IrA('Busqueda.asp','txtBuscar',txtBuscar.value);
		}
	}

////////////////////////////////////////////////
//no permite click derecho
/*function clickIE() 
	{if (document.all) return false;}
function clickNS(e) 
	{
	if (document.layers||(document.getElementById&&!document.all)) 
		{
		if (e.which==2||e.which==3) 
		return false;
		}
	}
if (document.layers) 
	{
	document.captureEvents(Event.MOUSEDOWN);
	document.onmousedown=clickNS;
	}
else 
	{
	document.onmouseup=clickNS;
	document.oncontextmenu=clickIE;
	}*/
	

//////////////////////////////////////////////////////
// Esta función valida si el valor del objeto recibido
// tiene formato tipo fecha en el formato mm/dd/aaaa
// regresa false si no es fecha, y true si sí es fecha
function esFecha(objTexto)
	{
	with (objTexto)
		{
		if (esVacio(value))
			{
			value = '';
			return false;
			}
			
		var dtmFormatoFecha = new Date(value)
		var strValorObjeto = value
		alert(dtmFormatoFecha.getDate()+'-----'+dtmFormatoFecha.getUTCDate())
		alert(isNaN(dtmFormatoFecha.getUTCDate()))
		if (isNaN(dtmFormatoFecha.getUTCDate()))
			{
			window.alert("Error: Fecha Incorrecta . . .\n\nEl formato de la fecha debe ser mm/dd/aaaa .....");
			value = '';
			return false;
			}
			
		var intCount= 0, intPosDiagonalDia, intPosDiagonalMes;
		var intPosDiagonal = strValorObjeto.indexOf("/");
		intPosDiagonalDia = intPosDiagonal;

		while (intPosDiagonal!=-1)
			{
			intCount++;
			intPosDiagonalMes = intPosDiagonal;
			intPosDiagonal= strValorObjeto.indexOf("/",intPosDiagonal+1);
			}

		if (intCount!=2)
			{
			window.alert("Fecha Incorrecta, el formato es mm/dd/aaaa .....");
			value = '';
			return false;
			}
		
		var intDia, intMes, intAnio;
		intMes = strValorObjeto.substr(0,intPosDiagonalDia);
		intDia = strValorObjeto.substr(intPosDiagonalDia+1,intPosDiagonalMes-(intPosDiagonalDia+1));
		intAnio = strValorObjeto.substr(intPosDiagonalMes+1,4);
		
		if (intMes < 1 || intMes > 12 || isNaN(intMes))
			{
			window.alert("Error: Fecha Incorrecta (mm/dd/aaaa)...\n\nEl numero del mes deber ser entre 1 y 12");
			value = '';
			return false;
			}
		if (intAnio < 1995 || isNaN(intAnio))
			{
			window.alert("Error: Fecha Incorrecta (mm/dd/aaaa)...\n\nPor favor el año debe ser mayor de 1995");
			value ='';
			return false;
			}
		if (intDia > UltimoDia(intMes,intAnio) || isNaN(intDia))	
			{
			window.alert("Error: Fecha Incorrecta (mm/dd/aaaa)... \n\nEste mes solo tiene " + UltimoDia(intMes,intAnio) + " dias.");
			value = '';
			return false;
			}
		if (intDia <= 0)	
			{
			window.alert("Error: Fecha Incorrecta (mm/dd/aaaa)... \n\nEl valor del día(dd) debe estar entre 1 y " + UltimoDia(intMes,intAnio) + ".");
			value = '';
			return false;
			}
		if (intMes.length == 1)
			{
			intMes = "0" + intMes;
			}
		if (intDia.length == 1)
			{
			intDia = "0" + intDia;
			}
			
		value = intMes + "/" + intDia + "/" + intAnio;
		return true;
		}
	}

//////////////////////////////////////////////////////
// Esta función busca el número de días del mes y año 
// que recibe y regresa el número de días que calculó
function UltimoDia(intMes,intAnio)
	{
	if (intMes==2)
		{
		if ((intAnio%4)==0)
			{
			return 29;
			}
		else 
			{
			return 28;
			}
		}
	else
		{
		if (intMes==0 || intMes==1 || intMes==3 || intMes==5 || intMes==7 || intMes==8 || intMes==10 || intMes==12)
			{
			return 31;
			}
		else 
			{
			return 30;
			}
		}
	}

///////////////////////////////////////////////////////
// Recibe un valor y checa si este valor no se dejó con 
// espacios en blanco regresando true si es el caso y
// false si no es así
function esVacio(strValor)
	{
	var intCont;
	for (intCont=0; intCont<=strValor.length; intCont++)
		{
		if (strValor.substr(intCont, 1) != " ")
			{
			break;
			}
		}
	if (intCont == strValor.length)
		{
		return true;
		}
	else
		{
		return false;
		}
	}
