function contarCaracteres(textarea, contador){
	
	var limite = 4000;
		
	if (textarea.value.length > limite) 
		textarea.value = textarea.value.substring(0, limite);
	else 
		contador.value = limite - textarea.value.length;
}

function contarCaracteresRespuesta(textarea, contador){
	
	var limite = 3800;
		
	if (textarea.value.length > limite) 
		textarea.value = textarea.value.substring(0, limite);
	else 
		contador.value = limite - textarea.value.length;
}

function selectRow(CB){
	if (CB.checked) 
		Pintar(CB);
	else
		DesPintar(CB);
}

function alwaysSelect(CB){
	CB.checked = true; 
}

function mensajeAlerta(mensaje) {
	alert(mensaje);
}

function Pintar(E){
	while (E.tagName!="TR")
		{E=E.parentNode;
	}
	E.className = "selectRow";
}

function DesPintar(E){
	while (E.tagName!="TR")
		{E=E.parentNode;
	}
	E.className = "";
}

function DesmarcarTodo(nomCBX){
	for (var i=1;i<document.forms[0].elements.length;i++) {
		var e = document.forms[0].elements[i];
		if (e.type == 'checkbox') {
			if (e.name == nomCBX) {
				if (e.checked) {
					DesPintar(e);
					e.checked = false;
				}
			}
		}
	}
}

function MarcarTodo(nomCBX){
	for (var i=1;i<document.forms[0].elements.length;i++) {
		var e = document.forms[0].elements[i];
		if (e.type == 'checkbox') {
			if (e.name == nomCBX) {
				if (e.checked) {
					DesPintar(e);
					e.checked = false;
				}
				if (e.checked == false) {
					Pintar(e);
					e.checked = true;
				}
			}
		}
	}
}

function MarqueTotal(CBX,nomCBX){
	if (CBX.checked) 
		MarcarTodo(nomCBX);
	else
		DesmarcarTodo(nomCBX);
}

function inhabilitarTeclaF11()
{
	var tecla=window.event.keyCode;
	if (tecla==122) {
		event.keyCode=0;
		event.returnValue=false;
	}
}

function validaNum(campoTipo,campoNumero) {
	
	if (campoTipo=='' && campoNumero=='')
		alert ('Debe seleccionar un Tipo y Escribir un Número de Documento');
	else {
		  if (campoTipo=='')
			 alert ('Debe seleccionar un Tipo de Documento');
		  else {
				if (campoNumero=='')
					alert ('Debe ingresar un Número de Documento');
				}
		 }
	return false;
}
//-----------------------------------------------------------------------
//Función para abrir una ventana , recibe el ancho y alto personalizados
//orlando_erazo@coomeva.com.co - 06/02/2004
//-----------------------------------------------------------------------
function abrirVentana(url,parametrosUrl, nombre, ancho, alto, retornar) {
	
	izquierda = (screen.width) ? (screen.width-ancho)/2 : 0;
	derecha = (screen.height) ? (screen.height-alto)/2 : 0;
	//Argumentos para crear la nueva ventana...
	argumentos = "width=" + ancho +",top=" + derecha +",left=" +izquierda + ",height=" + alto + ",toolbar=no,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,copyhistory=no";
	// En caso de que la url tenga parametros para pasar por request...
	if (parametrosUrl != '')
		nuevaVentana = window.open(url+parametrosUrl, nombre, argumentos);
	else
	//En caso de que la url no tenga parametros...
		nuevaVentana = window.open(url, nombre, argumentos);
	if (nuevaVentana != null) {
		// Asignamos a la nueva ventana una referencia a la ventana que creo
		if (nuevaVentana.opener == null) {
			nuevaVentana.opener = self;
		}
	}
	if (retornar) {
		return nuevaVentana;
	}
	
}
//--------------------------------------------------------------------------------
//Función para validar que en un cadena no existan caracteres distintos a numeros
//diegof_agudelo@coomeva.com.co - 06/02/2004
//--------------------------------------------------------------------------------
function valString(cadena) {

	  var checkOK = "0123456789"; 
	  var checkStr = cadena; 
	  var allValid = true; 
	  var decPoints = 0; 
	  var allNum = ""; 
	  
	  for (i = 0; i < checkStr.length; i++) { 
		ch = checkStr.charAt(i); 
		for (j = 0; j < checkOK.length; j++) 
		  if (ch == checkOK.charAt(j))
			break; 
		  if (j == checkOK.length) { 
		    allValid = false; 
		  	break; 
		  } 
		  allNum += ch; 
	  }	
	  if (!allValid) { 
		return (false); 
	  }
	  return (true); 
}

function enviarFormulario() {
	document.forms.forma.submit();
}

function cambiarPaso1()
{
	document.forms.forma.txtLogin.value = "coomeva";
	document.forms.forma.txtPassword.value = "coomeva";
	document.forms.forma.action.value = "iniciarSesionAlterna";
	enviarFormulario();
	return false;
}




var txtObjAno,txtObjMes,txtObjDia;
function colocarFechaSplit(txtAno,txtMes,txtDia)
{
	if(txtObjAno)
		txtObjAno.value = txtAno;
	if(txtObjMes)
		txtObjMes.value = txtMes;
	if(txtObjDia)
		txtObjDia.value = txtDia;
}

function colocarFechaArray2(){ 
	
	
	/*txtObjDia = null;
	txtObjMes = null;
	txtObjAno = null;
	
	txtObjDia = txtObjDia;
	txtObjMes = txtObjMes;
	txtObjAno = txtObjAno;*/	
	
	cal.setReturnFunction('colocarFechaSplit');
	
	//alert('Revisando '+txtDia +'-'+ txtMes +'-'+ txtAno);
}
function colocarFechaArray3(area, ancla, txtDia,txtMes,txtAno){ 
	var ObjText;
	//ancla.id   = eval('ancla.name+row.id');
	txtObjFT = area;
	txtObjDia = null;
	txtObjMes = null;
	txtObjAno = null;	
	if(txtDia && txtMes && txtAno)
	{
		txtObjDia = txtDia;
		txtObjMes = txtMes;
		txtObjAno = txtAno;
		cal.setReturnFunction('colocarFechaSplit');
	}	
	else
		cal.setReturnFunction("CP_tmpReturnFunction"); 
	cal.select(txtObjFT,ancla.id,'dd/MM/yyyy');
	//alert('Revisando '+txtDia +'-'+ txtMes +'-'+ txtAno);
}
function validaFechas(cadena) {

   //Separador para la introduccion de las fechas
   var separador = "/"
   var mensaje = "";
   if ( cadena.indexOf( separador ) != -1 ) {
        var posi1 = 0
        var posi2 = cadena.indexOf( separador, posi1 + 1 )
		if (posi2 == -1) {
			 return "invalida \n";
		}
		var posi3 = cadena.indexOf( separador, posi2 + 1 )
		if (posi3 == -1) {
			 return "invalida \n";
		}
		
		dia = cadena.substring( posi1, posi2 )
		
		if (isNaN(dia)) {
			return "invalida \n";
		} else {
			if (dia < 0 || dia > 31)
				return "invalida \n";
		}
		mes = cadena.substring( posi2 + 1, posi3 )
		if (isNaN(mes)) {
			return "invalida \n";
		} else {
			if (mes < 0 || mes > 12)
				return "invalida \n";
		}
        anio = cadena.substring( posi3 + 1, cadena.length )
		if (isNaN(anio)) {
			return "invalida \n";
		} else {
			if (anio.length != 4)
				return "invalida \n";
		}

   } else {
        return "invalida \n";
   }
   
   return "";
}

function checkdate(Mes_Dado,Dia_Dado,Anio_Dado)
{
    var Ano = eval(Anio_Dado);
    var Dias_Mes = "312831303130313130313031";
	if ((Ano % 4 == 0 && Ano % 100 != 0) || Ano % 400 == 0)
    {
		Dias_Mes = Dias_Mes.substring(0, 2) + "29" + Dias_Mes.substring(4, Dias_Mes.length);
    }
    var pos = Mes_Dado * 2;
    var Dia_Escogido = Dias_Mes.substring(pos,pos+2);
    if(Dia_Escogido!="" && eval(Dia_Escogido) >= Dia_Dado)
        return true;
    else
        return false;
}

/*-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --
  -- @Author		: Ing. Jose Luis Gonzalez - joseluisgonza@hotmail.com - Cel. 300-7903490
  -- @Date 			: 18-Octubre-2006 1pm
  -- @Modulo		: Admisiones
  -- @Caso de Uso		: Varios
  -- @Funcion		: ValidarFormatoFechaUtil(objeto input tipo texto donde esta la fecha)
  -- @Descripcion		: Valida el formato con el que debe ir la fecha
  -- @ param			: SoloValidar = Si 1 entonces valida y  limpia control. 0 =  no limpia control solo valida 
  -- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --*/ 
function ValidarFormatoFechaUtil(txtfecha, SoloValidar){
	//si el text esta vacio no hay problema dejelo pasar.
	if(txtfecha.value == "")
	 {
	   return false;
	 }
	
	var Fecha= new String(txtfecha.value)	// Crea un string
	var Text = '. El formato debe ser (DD/MM/YYYY)';
	var RealFecha= new Date()	// Para sacar la fecha de hoy
	// Cadena Año
	var Ano= new String(Fecha.substring(Fecha.lastIndexOf("/")+1,Fecha.length))
	// Cadena Mes
	var Mes= new String(Fecha.substring(Fecha.indexOf("/")+1,Fecha.lastIndexOf("/")))
	// Cadena Día
	var Dia= new String(Fecha.substring(0,Fecha.indexOf("/")))
    
	//Si no existe alguno ya con eso lo saca.
	if(Ano == "" || Mes == "" || Dia == "")
	 {
	    alert('El formato no es válido'+Text)
		if(SoloValidar){
		  txtfecha.value = "";
		}
	   return false;
	 }
	
	//alert('Año : '+Ano+" Mes : "+Mes+" Dia: "+Dia);
	//Validemos los tamaños
	if(Dia.length != 2  )
	 {
	    alert('El día no es válido'+Text)
		if(SoloValidar){
		  txtfecha.value = "";
		}
		//txtfecha.select();
		return false;
	 }
	if(Mes.length != 2  )
	 {
	    alert('El mes no es válido'+Text)
		if(SoloValidar){
		  txtfecha.value = "";
		}
		//txtfecha.select();
		return false;
	 }	 
	
	
	// Valido el año
	if (isNaN(Ano) || Ano.length<4 || parseFloat(Ano)<1900){
        	alert('El año no es válido'+Text)
			//txtfecha.select();
		if(SoloValidar){
		  txtfecha.value = "";
		}

		return false;
	}
	// Valido el Mes
	if (isNaN(Mes) || parseFloat(Mes)<1 || parseFloat(Mes)>12){
		alert('El mes no es válido'+Text)
		if(SoloValidar){
		  txtfecha.value = "";
		}

		//txtfecha.select();
		return false;
	}
	// Valido el Dia
	
	if (isNaN(Dia) || parseFloat(Dia)<1 || parseFloat(Dia)>31){
		alert('El día no es válido'+Text);
		if(SoloValidar){
		  txtfecha.value = "";
		}

		//txtfecha.select();
		return false;
	}
	
	
	if (checkdate(Mes-1,Dia,Ano) == false) {
			alert('El día no es válido')
		if(SoloValidar){
		  txtfecha.value = "";
		}
			return false;
		}
	
	
 return true;
}

/*-- ---------------------------------------------------------------------------------------------------------------------------------- --
  -- @Author		: Ing. Jose Luis Gonzalez - joseluisgonza@hotmail.com - Cel. 300-7903490
  -- @Date 		          : 23-Febr-2007 1:13PM
  -- @Caso de Uso	          : varios
  -- @Funcion		: colocarFechaArray
  -- @Param	                     : area = objdonde se colocara la fecha., ancla = objecto tipo anchor que ejecuta el llamado del calendario.
  --                                        row  = el objecto tipo ROW. 
  -- @Ejemplo		:colocarFechaArray(frmGenerarAdmision.txtFechaFinServ, this, this.parentNode.parentNode)
  -- @Descripcion	          : Llama al calendario desde un multiregistro.
  -- ---------------------------------------------------------------------------------------------------------------------------------- --*/ 
function colocarFechaArray (area, ancla, row){ 
	var ObjText;
	ancla.id   = eval('ancla.name+row.id');
	cal.setReturnFunction("CP_tmpReturnFunction");
	cal.select(area,ancla.id,'dd/MM/yyyy');
}

/*-- ---------------------------------------------------------------------------------------------------------------------------------- --
  -- @Author		: Ing. Federico G. Rocha Martínez - federico_rocha@coomeva.com.co - Cel. 316-2922294
  -- @Date 		: 05-Feb-2007
  -- @Caso de Uso	: varios
  -- @Funcion		: checkFechaDadaConBase
  -- @Param	        : 
  -- fecha  	    = 	Objeto Date de Javascript, que 
  						indica la fecha origen a comparar con la fecha destino.
     fechaActual 	=	Objeto Date de Javascript, que 
						indica la fecha destino a comparar con la fecha origen.
	 tipoBusqueda 	= 	Alcance Respuesta 
						0-Hasta Dia 1- Hasta Hora 2- Hasta Minuto 3- Hasta Segundo
  -- @Retorno		:-1 [ fecha < fechaActual ]; 0 [ fecha = fechaActual ]; 1 [ fecha > fechaActual ]; 
  -- @Ejemplo		:checkFechaDadaConBase(new Date(2007,5,20),new Date(2007,5,30),0)
  			retorna 
  -- @Descripcion	:Compara dos fechas y devuelve un resultado dependiendo del valor de retorno.
  -- ---------------------------------------------------------------------------------------------------------------------------------- --*/				
//Retorna un codigo de comparación
// -1 Si fecha < fechaActual
//  0 Si fecha = fechaActual
//  1 Si fecha > fechaActual
function checkFechaDadaConBase(fecha,fechaActual,tipoBusqueda)//0-Hasta Dia 1- Hasta Hora 2- Hasta Minuto 3- Hasta Segundo
{
	//var fechaActual = fechaBase;
	//alert('Revisando con nivel '+tipoBusqueda);
	if(!fecha || !fechaActual || fechaActual.getFullYear() > fecha.getFullYear())
		return -1;
	else
	{
		//alert('Checkeando con <'+fechaActual.getFullYear()+"-"+fecha.getFullYear()+">");
		if(fechaActual.getFullYear() == fecha.getFullYear())
		{
			if(fechaActual.getMonth() > fecha.getMonth())
				return -1;
			else
			{
				///alert('Checkeando con <'+fechaActual.getMonth()+"-"+fecha.getMonth()+">");
				if(fechaActual.getMonth() == fecha.getMonth())
				{					
					if(fechaActual.getDate() > fecha.getDate())
						return -1;
					else
					{
						//alert('Checkeando con <'+fechaActual.getDate()+"-"+fecha.getDate()+">");
						if(fechaActual.getDate() == fecha.getDate())
						{
							//alert('Checkeando con <'+fechaActual.getHours()+"-"+fecha.getHours()+">");
							if(tipoBusqueda == 0)
								return 0;
							else
							{								
								if(fechaActual.getHours() > fecha.getHours())
									return -1;
								else
								{
									//alert('Checkeando con <'+fechaActual.getHours()+"-"+fecha.getHours()+">");
									if(fechaActual.getHours() == fecha.getHours())
									{
										//alert('Checkeando con <'+fechaActual.getMinutes()+"-"+fecha.getMinutes()+">");
										if(tipoBusqueda == 1)
											return 0;
										if(fechaActual.getMinutes() > fecha.getMinutes())
											return -1;
										else
										{
											//alert('Checkeando con <'+fechaActual.getMinutes()+"-"+fecha.getMinutes()+">");
											if(fechaActual.getMinutes() == fecha.getMinutes())
											{
												if(tipoBusqueda == 2)
													return 0;
												if(fechaActual.getSeconds() > fecha.getSeconds())
													return -1;
												else
												{
													if(fechaActual.getSeconds() == fecha.getSeconds())
														return 0;
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	return 1;	
}

function setFocus(campo)
{
	var obj = document.getElementById(campo);
	obj.focus();		
}

//-----------------------------------------------------------------------
//Función para abrir una ventana , recibe el ancho y alto personalizados
//orlando_erazo@coomeva.com.co - 06/02/2004
//-----------------------------------------------------------------------
function abrirVentana2(url,parametrosUrl, nombre, ancho, alto, retornar) {
	
	izquierda = (screen.width) ? (screen.width-ancho)/2 : 0;
	derecha = (screen.height) ? (screen.height-alto)/2 : 0;
	//Argumentos para crear la nueva ventana...
	argumentos = "width=" + ancho +",top=" + derecha +",left=" +izquierda + ",height=" + alto + ",toolbar=no,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,copyhistory=no";
	// En caso de que la url tenga parametros para pasar por request...
	if (parametrosUrl != '')
		nuevaVentana = window.open(url+parametrosUrl, nombre, argumentos);
	else
	//En caso de que la url no tenga parametros...
		nuevaVentana = window.open(url, nombre, argumentos);
	if (nuevaVentana != null) {
		// Asignamos a la nueva ventana una referencia a la ventana que creo
		if (nuevaVentana.opener == null) {
			nuevaVentana.opener = self;
		}
	}
	if (retornar) {
		return nuevaVentana;
	}
	
}