/**
 * <p>Title: general</p>
 * <p>Description: Maneja funciones generales</p>
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Company: Data Tools</p>
 * @author Alvaro Guerrero.
 * @version 1.0
 */

function habilitarDocumento(valor,id)
{
	if(valor > 0 && valor < 7)
		document.getElementById(id).disabled = false;
	else
	{
		document.getElementById(id).disabled = true;
		document.getElementById(id).value = "";
	}
}

/**
 * Oculta o muestra un objeto
 * @param id Id asignado al objeto
 * @param valor ocultar o mostrar
 */
function ocultarObjeto(valor,id)
{
	
	if (valor == false) {
     document.getElementById(id).style.display = "none";
  }
	else if (valor == true){
     document.getElementById(id).style.display = "inline";
  }	
}

/**
 * Muestra un mensaje en un span obteniéndolo del id
 * @param id Id asignado al span
 * @param id str Cadena a mostrar en el span
 */

function validaNumero(obj,minimo,maximo)
{
	if(!isBlank(obj.value))
	{
		if(isInteger(obj.value))
		{
			display(obj.name+"_span", "");
			if(isInteger(minimo)&&minimo!='')
			{
				if(parseInt(obj.value)<minimo)
				{
					//alert();
					display(obj.name+"_span", "El valor mínimo es "+minimo);
					obj.select();
					obj.focus();
				}
			}
			if(isInteger(maximo)&&maximo!='')
			{
				if(parseInt(obj.value)>maximo)
				{
					display(obj.name+"_span", "El valor máximo es "+maximo);
					obj.select();
					obj.focus();
				}
			}
		}
		else
		{
			display(obj.name+"_span", "Debe ingresar un entero");
			obj.select();
			obj.focus();
		}
	}
	else
	{
		display(obj.name+"_span", "");
	}
}
/**
 * Muestra un mensaje en un span determinado
 * @param obj objeto a evaluar
 * @param span Cadena del nombre del span
 */
function validaNumeroSpan(obj,minimo,maximo,span)
{
	if(!isBlank(obj.value))
	{
		if(isInteger(obj.value))
		{
			display(span, "");
			if(isInteger(minimo)&&minimo!='')
			{
				if(parseInt(obj.value)<minimo)
				{
					//alert();
					display(span, "El valor mínimo es "+minimo);
					obj.select();
					obj.focus();
				}
			}
			if(isInteger(maximo)&&maximo!='')
			{
				if(parseInt(obj.value)>maximo)
				{
					display(span, "El valor máximo es "+maximo);
					obj.select();
					obj.focus();
				}
			}
		}
		else
		{
			display(span, "Debe ingresar un entero");
			obj.select();
			obj.focus();
		}
	}
	else
		display(span, "");
}

/**
 * Muestra un mensaje en un span obteniéndolo del id
 * @param id Id asignado al span
 * @param id str Cadena a mostrar en el span
 */

function arreglarTexto(obj)
{
	obj.value=Trim(obj.value.toUpperCase());
}
/**
 * Muestra un mensaje en un span obteniéndolo del id
 * @param id Id asignado al span
 * @param id str Cadena a mostrar en el span
 */

function display(id, str)
{
    document.all[id].innerHTML = str;
}


/**
 * Muestra un mensaje en un span obteniéndolo del id
 * @param id Id asignado al span
 * @param id str Cadena a mostrar en el span
 */
function habilitarCampo(arr, valor)
{
	alert(arr.lenght());
	if(valor > 0 && valor < 7){
	}
	else {
	}
}


var hour_field_length=0;
function TabNext(obj,event,len,next_field)
{
	if (event == "down")
		hour_field_length=obj.value.length;

	else if (event == "up")
	{
		if (obj.value.length != hour_field_length)
		{
			hour_field_length=obj.value.length;
			if (hour_field_length == len)
				next_field.focus();
		}
	}
}

function valida_entero(obj,minimo,maximo)
{
	var dato;
	var retorno;
	if (isInteger(obj.value))
	{
		retorno = 1;
		dato = parseInt(obj.value);
		if (minimo > dato || maximo < dato)
			retorno = 0;
	}
	else
		retorno = 0;
	return (retorno);
}


///////////////////////////////////////////////////////
//***************
//MANEJO DE HORAS
//***************

function ajustar_formato(obj)
{
	
	if (obj.value.length == 1)
		obj.value = '0'+obj.value;
	
}

function pasar_hora_minuto(campo)
{
	var hora = document.getElementById(campo+"_horas");
	var minuto = document.getElementById(campo+"_minutos");	
	
	if (hora.value.length == 2)
	{
		if (valida_entero(hora,0,23) == 1)
		{
			display(campo+"_span","");
			minuto.focus();
			ajustar_formato(hora);
		}
		else
		{
			display(campo+"_span","Hora invalida");
			hora.focus();
		}
	}
	/*else if (hora.value.length == 1)
	{
		
		minuto.focus();
		ajustar_formato(hora);
	}*/
	 
}

function ajustar_minuto(campo)
{
	var minuto = document.getElementById(campo+"_minutos");
	var hora = document.getElementById(campo+"_horas");
	var extra = parseInt(minuto.value) % 5;
	if (hora.value.length == 2)
	{
	var extra1 = hora.value.charAt(0);
	if(extra1 == "0")
	  hora.value = hora.value.charAt(1);	
	}  
   
	
	if (valida_entero(minuto,0,59) == 1)
	{
		if (extra >= 3)
			minuto.value = (minuto.value - extra) + 5;
		else
			minuto.value = minuto.value - extra;
	}
	else
	{
		display(campo+"_span","Minuto invalido");
		minuto.focus();
	}
	ajustar_formato(minuto);
}



function habilitar_hora(campo,valor)
{
	var hora = document.getElementById(campo + "_horas");
	var minuto = document.getElementById(campo + "_minutos");
	
	if (valor == 'S')
	{
		hora.disabled = false;
		minuto.disabled = false;
	}
	else
	{
		hora.disabled = true;
		minuto.disabled = true;
	}
}


////////////////////////////////////////////////////////
//****************
//MANEJO DE FECHAS
//****************

function quitar_slash(obj)
{
	var SplitDate;
	var numero = "";
	if(!isBlank(obj.value))
	{
		SplitDate = obj.value.split("/");
		for(i=0;i<SplitDate.length;i++)		
			numero = numero+SplitDate[i];		

		obj.value=numero;
		obj.focus();
	}
}

function validarFecha(obj, fecha_min, fecha_max)
{
//alert(obj.value);
//alert(fecha_max);
	if(!isBlank(obj.value))
	{
		var fecha = obj.value;
		var day = fecha.substr(0,2);
		var month = fecha.substr(2,2);
		var year = fecha.substr(4,4);

		obj.value = day+"/"+month+"/"+year;

		if(isDate(obj.value,"d/MM/y") == true)
		{
			display(obj.name+"_span", "");
			
						
			if (compareDates(obj.value,"d/MM/y",fecha_max,"d/MM/y") == 1)
			{
				display(obj.name+"_span","La fecha no puede ser mayor a "+fecha_max);
				obj.focus();				
			}
			else if (compareDates(fecha_min,"d/MM/y",obj.value,"d/MM/y") == 1)
			{
				display(obj.name+"_span","La fecha no puede ser menor a "+fecha_min);
				obj.focus();				
			}
		}
		else
		{
			display(obj.name+"_span", "Formato de fecha inválido");
			obj.focus();
		}
	}
}

function validarFecha_fe(obj, fecha_min, fecha_max,formato_fecha)
{
	if(!isBlank(obj.value))
	{
		var fecha = obj.value;
		var day = fecha.substr(0,2);
		var month = fecha.substr(2,2);
		var year = fecha.substr(4,4);

		obj.value = day+"/"+month+"/"+year;

		if(isDate(obj.value,formato_fecha) == true)
		{
			display(obj.name+"_span", "");
			
						
			if (compareDates(obj.value,formato_fecha,fecha_max,formato_fecha) == 1)
			{
				display(obj.name+"_span","La fecha no puede ser mayor a "+fecha_max);
				obj.focus();				
			}
			else if (compareDates(fecha_min,formato_fecha,obj.value,formato_fecha) == 1)
			{
				display(obj.name+"_span","La fecha no puede ser menor a "+fecha_min);
				obj.focus();				
			}
		}
		
		else
		{
			display(obj.name+"_span", "Formato de fecha inválido");
			obj.focus();
		}
	}
}

function habilitar_fecha(obj,valor)
{
	var boton = document.getElementById(obj.name + "_calendar");
	if (valor == 'S')
	{
		obj.disabled = false;
		boton.disabled = false;
	}
	else
	{
		obj.disabled = true;
		boton.disabled = true;
	}
}

///////////////////////////////////////
//*************************************
//MANEJO DE LISTA DESPLEGABLE CON CAMPO
//*************************************

//FUNCIÓN AUTOCOMPLETAR
//Tomada de http://www.mattkruse.com/
//Modificada por David Cerón

function autoCompletar (field, select, property)
{
	var found = false;	
	
	for (var i = 0; i < select.length; i++)
	{
		if (select.options[i][property].toUpperCase().indexOf(field.value.toUpperCase()) == 0)
		{
			found=true;
			break;
		}
	}
	if (found)
		select.selectedIndex = i;
	else
		select.selectedIndex = -1;
	if (field.createTextRange)
	{
		if (!found)
		{
			field.value=field.value.substring(0,field.value.length-1); 
			return;
		}
		var cursorKeys ="8;46;37;38;39;40;33;34;35;36;45;";
		if (cursorKeys.indexOf(event.keyCode+";") == -1)
		{
			var r1 = field.createTextRange();
			var oldValue = r1.text;
			var newValue = found ? select.options[i][property] : oldValue;
			if (newValue != field.value)
			{
				field.value = newValue;
				var rNew = field.createTextRange();
				rNew.moveStart('character', oldValue.length) ;
				rNew.select();
			}
		}
	}
}

function habilitar_lista_campo(obj,valor)
{
	var campo = document.getElementById(obj.name + "_campo");
	if (valor == 'S')
	{
		obj.disabled = false;
		campo.disabled = false;
	}
	else
	{
		obj.disabled = true;
		campo.disabled = true;
	}
}


/////////////////////////////////////////////////////////////////////////
//*******************
//FUNCIONES GENERALES
//*******************

//**********************
//Abrir una pagina en una nueva ventana

function Abrir_Ventana(pagina)
{
	var settings = 'height=screen.availHeight,width=screen.availWidth,top=0,left=0,resizable,scrollbars,status';

	win = window.open(pagina,'',settings);
	win.moveTo(0,0);
	if (win.document.all)
		win.top.window.resizeTo(screen.availWidth,screen.availHeight);
	else if (win.document.layers||win.document.getElementById)
	{
		if (win.top.window.outerHeight<screen.availHeight||win.top.window.outerWidth<screen.availWidth)
		{
			win.top.window.outerHeight = screen.availHeight;
			win.top.window.outerWidth = screen.availWidth;
		}
	}
	win.window.focus();
}