var _val_IE=(document.all);
var _val_NS=((document.geElementById)&&(!document.all))


var pestanaContratoActivo="";
var filaActiva="";

var pestanaDireccionActivo="";


function pestanaOver(tdpestana, sUC)
{
	var padre = tdpestana;
	var pestanaActiva="";
	
	while (padre.tagName !="TABLE")
		padre = padre.parentNode;
	
	//Para el control de usuario Direccion
	var sUCAux="";
	
	if (typeof(sUC) != "undefined")  {
		sUCAux=sUC + "_";
	}
	
	switch (padre.id) //para determinar la variable donde esta la pestana activa
	{
		case "tbContrato":
				pestanaActiva = pestanaContratoActivo;
				break;
				
		case sUCAux + "tbDireccion":
				pestanaActiva = eval(sUCAux + "pestanaDireccionActivo");
				break;
	}

	if (pestanaActiva !=tdpestana.id)
		tdpestana.className = "PestanaOver";
}

function pestanaOut(tdpestana, sUC)
{
	var padre = tdpestana;
	var pestanaActiva="";
	while (padre.tagName !="TABLE")
		padre = padre.parentNode;
		
	var sUCAux="";
	if (typeof(sUC) != "undefined")
		sUCAux =sUC + "_";
		
	switch (padre.id) //para determinar la variable donde esta la pestana activa
	{
		case "tbContrato":
				pestanaActiva = pestanaContratoActivo;
				break;
				
		case sUCAux + "tbDireccion":
				pestanaActiva = eval(sUCAux + "pestanaDireccionActivo");
				break;
	}

	if (pestanaActiva !=tdpestana.id)
		tdpestana.className = "PestanaOff";
}

function pestanaClick(tdpestana, sUC)
{
	var pestanaActiva ="";
	var tabla ="";
	var padre = tdpestana;
	while (padre.tagName !="TABLE")
		padre = padre.parentNode;

	var sUCAux="";
	if (typeof(sUC) != "undefined")
		sUCAux = sUC + "_";
	
	switch (padre.id) //para determinar la variable donde esta la pestana activa
	{
		case "tbContrato":
				pestanaActiva = pestanaContratoActivo;
				pestanaContratoActivo = tdpestana.id;
				break;
				
		case sUCAux + "tbDireccion":
				pestanaActiva = eval(sUCAux + "pestanaDireccionActivo");
				eval(sUCAux + "pestanaDireccionActivo = tdpestana.id");
				break;
	}
	if (pestanaActiva !="")
	{
		//eval(pestanaActiva +".className='PestanaOff';");
		var pest=document.getElementById(pestanaActiva);
		pest.className= 'PestanaOff';
		tabla = pestanaActiva.replace(sUCAux+"td",sUCAux+"tb");
		document.getElementById(tabla).style.display = 'none';
		//eval(tabla + ".style.display= 'none';");
	}
	tdpestana.className = "PestanaOn";
	tabla = tdpestana.id.replace(sUCAux+"td",sUCAux+"tb");
	document.getElementById(tabla).style.display = 'block';
}


function filaOver(fila)
{
	if (fila.id != filaActiva)
		fila.className = "filaOverPijama";
}

function filaOut(fila)
{
	if (fila.id !=filaActiva)
	{
		if (fila.id.indexOf("Impar")!=-1)
			fila.className = "fila1Pijama";
		else
			fila.className = "fila2Pijama";
	}
}

function filaClick(fila)
{
	if (filaActiva!="")
	{
		if (filaActiva.indexOf("Impar") !=-1)
			//eval(filaActiva + ".className='fila1Pijama';");
			document.getElementById(filaActiva).className='fila1Pijama';
		else
			//eval(filaActiva + ".className='fila2Pijama';");	
			document.getElementById(filaActiva).className='fila2Pijama';
	}
	filaActiva = fila.id;
	fila.className = "filaOnPijama";
}


	// Para contar los caracteres de un campo y si ha llagado al máximo
	// no dejar introducir ninguno más.
	// Se usa para los textarea, que no tienen maxlength
	function textCounter(field, maxlimit) {
		if (field.value.length >= maxlimit) // if too long...trim it!
			field.value = field.value.substring(0, maxlimit);
	}
/*	
==================================================================

ltrim(string) : Returns a copy´of a string without trailing spaces.

==================================================================
*/

function ltrim(str){
  if(str==null) {
		return null;
	}
  for(var i=0;str.charAt(i)==" ";i++);
	return str.substring(i,str.length);
}

function rtrim(str){
  if(str==null) {
		return null;
	}
  for(var i=str.length-1;str.charAt(i)==" ";i--);
	return str.substring(0, i+1);
}

function trim(str) {
	return rtrim(ltrim(str));
}


//----------------------------------------------------------------------
//
//     Función : Mascara
// Descripción : Realiza la validación/transformación de un campo de
//               entrada
//  Parámetros : *  Cadena que indica el tipo de validación o 
//                  transformación que desamos según los siguientes
//                  indicadores:
//                   N Admite sólo expresiones Numéricas
//                   O Admite sólo expresiones Numéricas distintas de 0, cero
//                   I Admite sólo expresiones Numéricas sin signo
//                   D Admite sólo Dígitos (no admite puntos, espacios
//                     o símbolos matemáticos)
//                   A Admite sólo caracteres Alfanuméricos (sin
//                     espacios o símbolos de puntuación)
//                   L Admite sólo Letras (sin espacios o símbolos 
//                     de puntuación)
//                   M Convierte la entrada a Mayúsculas
//                   m Convierte la entrada a minúsculas
//                   S Convierte la entrada a su correspondiente sin 
//                     símbolos diacríticos, excepto en el caso de 
//                     la eñe (ñÑ)
//                   F Sólo admite digitos y los caracteres "/" y "-"
//                     se utiliza para fechas
//                   H Sólo admite digitos y el caracter ":"
//                     se utiliza para horas
//                   X Admite solo numeros y ","
//                   x Admite solo numeros y una sola coma "," JoRoPi 30/06/2004
//                   Y Admite solo numeros , "," y "-"
//                   Z Alfanuméricos y espacios en blanco 
//					 R No permite retorno de carro.
//					 T Igual que Z pero ademas permite "\" "ª" "º" "-" "." "/"
//                      para direcciones
//     Ejemplo : <input type="text" onkeypress="Mascara('MS')">
//       Notas : * En el caso de pasar N y D o A y L sólo tendrá 
//                 efecto al último de los valores pasados en el
//                 parámetro
//               * Los valores A, L, M, m, S pueden combinarse
//               * Los valores A, L, M, m, S son incompatibles 
//                 con N, D y F
//
//----------------------------------------------------------------------

function Mascara(cTipo, evento)
{
	var tecla;
	if (_val_IE)
		tecla=evento.keyCode;
	else {
		tecla=evento.charCode;
		if ((tecla == 0) && (evento.keyCode == 13))
			tecla = 13;
	}
		
	var ret=true;	
	
	//Para que cuando se pulse una tecla de control, la procese correctamente. 
	//Excepto el enter que se puede filtrar
	if (tecla == 0)
		return ret;
		
  for ( nCont = 0; nCont < cTipo.length; nCont++ ) {
    switch ( cTipo.charAt( nCont ) ) {
					 
    case "R":
      if (tecla == 13)  {
        ret=false;
      }
      break;
    case "n":
      if ( isNaN( parseInt( String.fromCharCode( tecla ) ) ) 
           && String.fromCharCode( tecla ) != "-"
           && String.fromCharCode( tecla ) != "+"
           && String.fromCharCode( tecla ) != "," ) {
        ret = false;
      }
      break;
    case "N":
      if ( isNaN( parseInt( String.fromCharCode( tecla ) ) ) 
           && String.fromCharCode( tecla ) != "-"
           && String.fromCharCode( tecla ) != "+"
           && String.fromCharCode( tecla ) != "."
           && String.fromCharCode( tecla ) != "," ) {
        ret = false;
      }
      break;
    case "O":
      if ((isNaN(parseInt(String.fromCharCode(tecla))))  || ((parseInt(String.fromCharCode(tecla))))<=0){
          ret = false;
          }
      break;
    case "I":
      if ( isNaN( parseInt( String.fromCharCode( tecla ) ) ) 
           && String.fromCharCode( tecla ) != "."
           && String.fromCharCode( tecla ) != "," ) {
        ret = false;
      }
      break;
    case "D":
      if ( isNaN( parseInt( String.fromCharCode( tecla ) ) ) ) {
        ret = false;
      }
      break;
    case "L":
      if ( String.fromCharCode( tecla ).toUpperCase() == String.fromCharCode( tecla ).toLowerCase() ) {
        ret = false;
      }
      break;
    case "A":
      if ( String.fromCharCode( tecla ).toUpperCase() == String.fromCharCode( tecla ).toLowerCase() 
           && isNaN( parseInt( String.fromCharCode( tecla ) ) ) ) {
        ret = false;
        if (_val_IE)
					evento.returnValue= ret; 
				//alert("Retorno 1: " + ret);
				return ret;
      }
      break;

    case "Z":
      if ( String.fromCharCode( tecla ).toUpperCase() == String.fromCharCode( tecla ).toLowerCase() 
           && isNaN( parseInt( String.fromCharCode( tecla ) ) ) 
	   && String.fromCharCode( tecla ) != " " ) {
        ret = false;
        if (_val_IE)
					evento.returnValue= ret; 
				//alert("Retorno 2: " + ret);
				return ret;
      }
      break;
      
      case "T":
 
      if ( String.fromCharCode( tecla ).toUpperCase() == String.fromCharCode( tecla ).toLowerCase() 
           && isNaN( parseInt( String.fromCharCode( tecla ) ) ) 
	   && (String.fromCharCode( tecla ) != " " )
	   && (String.fromCharCode( tecla ) != "." )
	   && (String.fromCharCode( tecla ) != "," )
	   && (String.fromCharCode( tecla ) != ":" )
	   && (String.fromCharCode( tecla ) != "ª" )
	   && (String.fromCharCode( tecla ) != "º" )
	   && (tecla == 47)
	   && (tecla == 92)
	   && (String.fromCharCode( tecla ) != "-" )) {
        ret = false;
				if (_val_IE)
					evento.returnValue= ret; 
				//alert("Retorno 3: " + ret);	
				return ret;
      }
      break;
      
    case "Y":
    case "y": //GPP-0009 JJJIMENEZ
      if ( isNaN( parseInt( String.fromCharCode( tecla ) ) ) 
           && String.fromCharCode( tecla ) != "-"
           && String.fromCharCode( tecla ) != "."
           && String.fromCharCode( tecla ) != "," ) 
      {
        ret = false;
      }
      if(String.fromCharCode( tecla ) == "."){
				tecla = 44;					
				if (!sustituyeTecla(evento, tecla))
					return false;
      }
      //GPP-0009 JJJIMENEZ
      if ((cTipo.charAt(nCont) == "y") && (tecla == 44))
        if (evento.srcElement.value.indexOf(",") != -1)
          ret = false;
      if ((cTipo.charAt(nCont) == "y") && (tecla == 45))
        if (evento.srcElement.value.indexOf("-") != -1)
          ret = false;
      break;
      
   case "X":
   case "x":
      if ( isNaN( parseInt( String.fromCharCode( tecla ) ) )            
           && String.fromCharCode( tecla ) != "," 
           && String.fromCharCode( tecla ) != ".") {
        ret = false;
      }
      if(String.fromCharCode( tecla ) == "."){
        tecla = 44;
        if (!sustituyeTecla(evento, tecla))
					return false;
      }
      if ((cTipo.charAt(nCont) == "x") && (tecla == 44))
        if (evento.srcElement.value.indexOf(",") != -1)
          ret = false;
      break;
    case "M":
      tecla = String.fromCharCode( tecla ).toUpperCase().charCodeAt(0);
      // YMV - 18/01/2005 Para que funcione en NS
      if (!sustituyeTecla(evento, tecla))
				return false;
      break;
    case "m":
      tecla = String.fromCharCode( tecla ).toLowerCase().charCodeAt(0);
      if (! tuyeTecla(evento, tecla))
				return false;
      break;
    case "S":
      switch ( String.fromCharCode( tecla ) ) {
      case "À": case "Á": case "Â": case "Ã": case "Ä": case "Å":
        tecla = "A".charCodeAt(0); 
        break;
      case "Æ":
        tecla = "A".charCodeAt(0); 
        break;
      case "Ç":
        tecla = "C".charCodeAt(0); 
        break;
      case "È": case "É": case "Ê": case "Ë":
        tecla = "E".charCodeAt(0); 
        break;
      case "Ì": case "Í": case "Î": case "Ï":
        tecla = "I".charCodeAt(0); 
        break;
      case "Ð":
        tecla = "D".charCodeAt(0); 
        break;
      case "Ò": case "Ó": case "Ô": case "Õ": case "Ö": case "Ø":
        tecla = "O".charCodeAt(0); 
        break;
      case "Ù": case "Ú": case "Û": case "Ü":
        tecla = "U".charCodeAt(0); 
        break;
      case "Ý":
        tecla = "Y".charCodeAt(0); 
        break;
      case "à": case "á": case "â": case "ã": case "ä": case "å": case "æ":
        tecla = "a".charCodeAt(0); 
        break;
      case "ç":
        tecla = "c".charCodeAt(0); 
        break;
      case "è": case "é": case "ê": case "ë":
        tecla = "e".charCodeAt(0); 
        break;
      case "ì": case "í": case "î": case "ï":
        tecla = "i".charCodeAt(0); 
        break;
      case "ð": case "ò": case "ó": case "ô": case "õ": case "ö": case "ø":
        tecla = "o".charCodeAt(0); 
        break;
      case "ù": case "ú": case "û": case "ü":
        tecla = "u".charCodeAt(0); 
        break;
      case "ý": case "ÿ":
        tecla = "y".charCodeAt(0); 
        break;
      }
      if (!sustituyeTecla(evento, tecla))
				return false;
      break;
      
    case "F":
      if ( isNaN( parseInt( String.fromCharCode( tecla ) ) ) 
           && String.fromCharCode( tecla ) != "/"
	           && String.fromCharCode( tecla ) != "-" ) {
        ret = false;
      }
      break;
    case "H":
      if ( isNaN( parseInt( String.fromCharCode( tecla ) ) ) 
           && String.fromCharCode( tecla ) != ":" ) {
        ret = false;
      }
      if (tecla == 58)
        if (evento.srcElement.value.indexOf(":") != -1)
          ret = false;
      break;
    }
  }
  
  if (_val_IE)
		evento.returnValue= ret; 
		
	//alert("Retorno 4: " + ret);
	return ret;
}

function sustituyeTecla(e, nuevaTecla) {
	if (_val_IE)
		e.keyCode = nuevaTecla;
	else {
		if (e.charCode != String.fromCharCode(e.charCode).toUpperCase().charCodeAt(0)) {
			var nuevatecla = String.fromCharCode(e.charCode).toUpperCase().charCodeAt(0);
			e.preventDefault();
			e.stopPropagation();
			// create and init a new event
			var newEvent = document.createEvent("KeyEvents");
			newEvent.initKeyEvent("keypress", true, true, document.defaultView, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, e.keyCode, nuevatecla);
			// dispatch new event in old event's place
			e.target.dispatchEvent(newEvent);
			return false;
		}	
	}	
	return true;
}

var vCalendario=null;
var ctlFecha=null;

function DlgSeleccionarFechaCC(caja, filtro, pob)
{
	ctlFecha = caja;
	var sFiltro;
	var ipob;
	if (typeof(filtro) == "undefined")
		sFiltro="Todos";
	else
		sFiltro=filtro;
		
	if (typeof(pob) == "undefined")
		ipob=-1;
	else
		ipob=pob;
		
	var alto = 180;
	var ancho = 170;
	var superior = (screen.availHeight - alto)/2;
	var izquierda = (screen.availWidth - ancho)/2;
	
	vCalendario= window.open(sDirVirtual + "Publicas/Utiles/Calendario.aspx?f=" + caja.value + "&Filtro=" + sFiltro+"&Pob=" + ipob, "BuscarLocal", "help=no,status=no,resizable=no,toolbar=no,menubar=no,width=" + ancho +"px, height=" + alto + "px, top=" + superior + "px, left=" + izquierda + "px");
	vCalendario.focus();
}

function AceptarFechaCalendario(valor) {
	vCalendario = null;
	//if (typeof(ctlFecha) != "undefined") {
	if (ctlFecha != null) {
		ctlFecha.value=valor;		
	}
	ctlFecha=null;
}

function CerrarVentanaCalendario() {
	if (vCalendario!= null) {
		vCalendario.close();
		vCalendario= null;
		ctlFecha=null;
	}
}

//----------------------------------------------------------------------
//
//     Función : validarFecha
// Descripción : Valida la fecha usando la función Formato (formatos.js) fecha
//  Parámetros : caja:Caja de texto que contiene la fecha a validar
//     Retorno : 
//       Notas : Es llamada en el evento onBlur de la caja
//				    onBlur="validarFecha(this)"	
//----------------------------------------------------------------------
function validarFecha(caja){	
	if(caja.value!=""){
		var val = FormatoFecha(caja.value)
		if(val==""){
			alert('Formato de Fecha Incorrecto.');
			caja.focus();
			return false;
		}
		else{
			caja.value = val;
			return true;
		}
	}
}
//----------------------------------------------------------------------
//
//     Función : FormatoFecha
// Descripción : Realiza la transformación/validación de un dato tipo
//               fecha
//  Parámetros : Cadena con la fecha a trasformar
//     Retorno : Fecha con un formato dd/mm/yyyy o una cadena vacia si
//               el formato de entrada no era correcto
//       Notas : - Admite los formatos de entrada siguientes:
//                     d/m/yy
//                     dd/mm/yy
//                     dd/mm/yyyy 
//               - En el caso de incluir solo dos dígitos para el año,
//                 se interpreta como fecha del año 2000 los inferiores 
//                 o igual a 30.
//
//----------------------------------------------------------------------
function FormatoFecha( cFecha ) {
	
	// Comprobación de tamaño
	if ( cFecha.length < 6 || cFecha.length > 10 ) { 
		return "";
	}
	
	// Se cambian los '-' por '/'
	re = /-/g;
	cFecha = cFecha.replace(re, "/");
	
	// Buscar primer separador de la fecha
	var nSeparador1 = cFecha.indexOf( "/", 0 )
	if ( nSeparador1 < 1 || nSeparador1 > 2 ) {
		return "";
	}
	 
	// Obtener el día
	var cDia = cFecha.substring(0, nSeparador1)
	
	// Buscar el segundo separador de la fecha
	var nSeparador2 = cFecha.indexOf( "/", nSeparador1+1 )
	if ( nSeparador2 < nSeparador1+2 || nSeparador2 > nSeparador1+3 || cFecha.length-nSeparador2 < 2 ) 
	{
		return "";
	}
//--------------Modificaciones realizadas a la función original--------------------
	//Comprueba que no hay mas separadores
	var nSeparador3 = cFecha.indexOf( "/", nSeparador2+1 )
	if ( nSeparador3 > nSeparador2 ) {
		return "";
	}
	
//----------------------------------------------------------------------------------	
	// Obtener el mes
	var cMes = cFecha.substring(nSeparador1+1, nSeparador2)
	
	// Obtener el año
	var cYear = cFecha.substring(nSeparador2+1, cFecha.length)

	// Normalización del año
	if ( cYear.length == 1 || cYear.length == 3 ) {
		return "";
	}
	if ( cYear.length == 2 ) {
		if ( parseInt( cYear ) > 29 ) {
			cYear = "19" + cYear
		} else {
			cYear = "20" + cYear
		}
	}

	// Comprobación del mes
	if ( cMes < 1 || cMes >12 ) {
		return "";
	}
	
	// Comprobación básica del día
	if ( cDia < 1 || cDia >31) {
		return "";
	}
	
	// Comprobación del día en los meses con 30 días
	if ( (cMes==4 || cMes==6 || cMes==9 || cMes==11) && (cDia == 31 ) ) {
		return "";
	}
	
	// Comprobación del mes de febrero teniendo en cuenta los bisiestos	
	if ( cMes==2 ){
		if ( cDia > 29 ) {
			return "";
		}
		var bBisiesto;
		// Todos los años divisibles por 4, exceptuando los que siendo divisible por 100 no lo sean por 400
		if ( ( cYear / 4 == parseInt( cYear / 4 ) )  
		     && ! ( ( cYear / 100 == parseInt( cYear / 100 ) ) 
                         && ( cYear / 400 != parseInt( cYear / 400 ) ) ) ) {
			bBisiesto = true;
		} 
		else {
			bBisiesto = false;
		}
		if ( ! bBisiesto && cDia==29 ) {
			return "";
		}
	}
	
	// Normalización del Día
	if ( cDia.length == 1 ) { cDia = "0" + cDia; }
	
	// Normalización del mes
	if ( cMes.length == 1 ) { cMes = "0" + cMes; }
	
	// Retorno de la fecha normalizada
	return ( cDia + "/" + cMes + "/" + cYear );
	
}

//----------------------------------------------------------------------
//     Función : compararFechaAMD
// Descripción : compara las fechas (para el año, mes y día)
//  Parámetros : año, mes y día de las dos fechas
//    Devuelve : devuelve 0 si son iguales, 1 si fecha1 es mayor y -1 si fecha1 es menor
//       Notas : 
//----------------------------------------------------------------------
function compararFechaAMD(a1, m1, d1, a2, m2, d2)
{
	if (a1 > a2)
	{
		return 1;
	}
	else
	{
		if (a1 < a2)
			return -1;
		else //los años son iguales
		{
			if (m1 > m2)
				return 1;
			else
			{
				if (m1 < m2)
					return -1;
				else //los meses son iguales
				{	
					if (d1>d2)
						return 1;
					else
					{
						if (d1<d2)
							return -1;
						else
							return 0;//la fecha es igual
					}
				}
			}
		}
	}
}

//----------------------------------------------------------------------
//     Función : compararFechaStr
// Descripción : compara las fechas pasadas en este formato dd/MM/yyyy
//  Parámetros : las dos fechas en este formato dd/MM/yyyy
//    Devuelve : devuelve 0 si son iguales, 1 si fecha1 es mayor y -1 si fecha1 es menor
//       Notas : 
//               Se comparan tambien si el anio es de dos digitos
//----------------------------------------------------------------------
function compararFechaStr (fechaini, fechafin)
{
	var prim,seg="";
	var dia,mes,anio="";
	var dia1,mes1,anio1="";
	
	prim=fechaini.indexOf("/");
	seg=fechaini.lastIndexOf("/");
	dia=fechaini.substring(0,prim);
	mes=fechaini.substring(prim+1,seg);
	if (dia.length == 2) {
	   if (dia.charAt(0) == 0) {
	     dia = dia.charAt(1);
	   }
	}
	if (mes.length == 2) {
	   if (mes.charAt(0) == 0) {
	     mes = mes.charAt(1);
	   }
	}
	anio=fechaini.substring(seg+1,fechaini.length);
	if ( anio.length == 2 ) {
		if ( parseInt( anio ) > 29 ) {
			anio = "19" + anio
		} else {
			anio = "20" + anio
		}
	}
	prim=fechafin.indexOf("/");
	seg=fechafin.lastIndexOf("/");
	dia1=fechafin.substring(0,prim);
	mes1=fechafin.substring(prim+1,seg);
	if (dia1.length == 2) {
	   if (dia1.charAt(0) == 0) {
	     dia1 = dia1.charAt(1);
	   }
	}
	if (mes1.length == 2) {
	   if (mes1.charAt(0) == 0) {
	     mes1 = mes1.charAt(1);
	   }
	}
	anio1=fechafin.substring(seg+1,fechafin.length);
	if ( anio1.length == 2 ) {
		if ( parseInt( anio1 ) > 29 ) {
			anio1 = "19" + anio1
		} else {
			anio1 = "20" + anio1
		}
	}
	var sol = compararFechaAMD(parseInt(anio), parseInt(mes), parseInt(dia), parseInt(anio1), parseInt(mes1), parseInt(dia1));
	return sol;
}

//----------------------------------------------------------------------
//
//     Función : fechaMayor
// Descripción : Comprueba si la segunda fecha es mayor o igual a la primera
//----------------------------------------------------------------------
function fechaMenorOIgual(sFecha_Inicio, sFecha_Fin)
{
	var tFecha_Inicio;
	var tFecha_Fin;
	
	if ((sFecha_Inicio != "") &&
		(sFecha_Fin != ""))
	{
		tFecha_Inicio = new Date(sFecha_Inicio.substring(6, 10), sFecha_Inicio.substring(3, 5), sFecha_Inicio.substring(0, 2));
		tFecha_Fin = new Date(sFecha_Fin.substring(6, 10), sFecha_Fin.substring(3, 5), sFecha_Fin.substring(0, 2));
		if (tFecha_Fin < tFecha_Inicio)
			return false;
	}
	return true;
}

function fechaMenor(sFecha_Inicio, sFecha_Fin)
{
	var tFecha_Inicio;
	var tFecha_Fin;
	
	if ((sFecha_Inicio != "") &&
		(sFecha_Fin != ""))
	{
		tFecha_Inicio = new Date(sFecha_Inicio.substring(6, 10), sFecha_Inicio.substring(3, 5), sFecha_Inicio.substring(0, 2));
		tFecha_Fin = new Date(sFecha_Fin.substring(6, 10), sFecha_Fin.substring(3, 5), sFecha_Fin.substring(0, 2));
		if (tFecha_Fin <= tFecha_Inicio)
			return false;
	}
	return true;
}

// función para ver si un control existe.
function ExisteControl(ctl) {
	if (ctl == null) {
		return false;
	}
	return true;
}

// Funciones para seleccionar una fila de un combo, ya sea por el texto o por el valor
function SelComboPorTexto(ddl, texto) {
	if (ExisteControl(ddl)) {
		if (ddl.options.length > 0) {
			var i;
			for (i=0; i<ddl.options.length; i++) {
				if (ddl.options[i].text==texto) {
					ddl.selectedIndex=i;
					i=ddl.options.length;
				}
			}
		}
	}
}

function SelComboPorValor(ddl, valor) {
	if (ExisteControl(ddl)) {
		if (ddl.options.length > 0) {
			var i;
			for (i=0; i<ddl.options.length; i++) {
				if (ddl.options[i].value==valor) {
					ddl.selectedIndex=i;
					i=ddl.options.length;
				}
			}
		}
	}
}			


