var acaboDeSalir = false; // para frenar el salto alocado cuando llena campos (usada en cambiarFoco())

function abrirCalendario(obj){
	var fecha;
	obj.disabled = true;
	fecha=window.showModalDialog('calendario.asp?fecha='+obj.value,'','dialogWidth:275px;dialogHeight:280px;status=no;help=no');
	
	if (!isNaN(parseInt(fecha,10))) obj.value = fecha;
	obj.disabled = false;
}

function abrirCalendarioEn(obj,path){
	var fecha;
	obj.disabled = true;
	fecha=window.showModalDialog(path+'calendario.asp?fecha='+obj.value,'','dialogWidth:275px;dialogHeight:280px;status=no;help=no');

	if (!isNaN(parseInt(fecha,10))) obj.value = fecha;
	obj.disabled = false;
}

// maneja el campo asociado a un checkbox que debe tomar valor binario
function clickCheckBox(estado,destino,si,no){
	if (estado){destino.value=si;} 	else {destino.value=no;}
}

function validar(condicion,campo,mensaje){
	if (!condicion){
		if (mensaje>'') alert(mensaje);
		try{campo.focus();}catch(e){};
		try{campo.select();}catch(e){};
		return false;
	}
	return true;
}

function fill0(campo,size){
	if (campo.value.length<size){
		var ceros = '';
		for (var i=0; i<size; i++) ceros+='0';
		var auxi = ceros + campo.value;
		var nuevoValor = auxi.substr(campo.value.length,size);
		return nuevoValor;
	}
	return campo.value;
}

function cambiarVisibilidad(id){
	if (document.getElementById(id)){
		if (document.getElementById(id).style.display=='none')
			document.getElementById(id).style.display='block';
		else document.getElementById(id).style.display='none';
	}
}

var xml;
if (window.ActiveXObject) xml = new ActiveXObject("Microsoft.XMLDOM");
if (document.implementation && document.implementation.createDocument) xml = document.implementation.createDocument("","",null);

//////////////
function removeChar( strValue, char ) {
  var objRegExp = new RegExp(char, "g"); //search for char globally
  return strValue.replace(objRegExp,'');
}

function replaceChar( strValue, char, char1 ) {
  var objRegExp = new RegExp(char, "g"); //search for char globally
  return strValue.replace(objRegExp,char1);
}

function validarEMail(strValue) {
	var objRegExp  = /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,3}(\.[a-z]{2}){0,2})$/i;
	  return objRegExp.test(strValue);
}

function clnInt(x) {
	return parseInt('0'+x, 10);
}
function clnFlt(x) {
	return parseFloat('0'+x);
}
function clnStr(x) {
	x = removeChar(x, '\'');
	var aux = x;
	aux = removeChar(aux, ' '); aux = removeChar(aux,'\r\n'); aux = removeChar(aux,'\n');
	if (aux=='') x='';
	return x;
}

function clnStrAltas(x) {
	x = removeChar(x, '\'');
	x = replaceChar(x,' ','_');
	return x;
}

function noExiste(obj, tipo) {
	if (obj.value=='') return true;
	var qry = "SELECT "+obj.name+" FROM "+tabla+" WHERE "+obj.name+"="+tipo+obj.value+tipo;
	if (existeRegistro(qry)) {
		return true;
	} else {
		alert('No existe un registro que tenga el valor '+obj.value+' en el campo '+obj.name);
		obj.focus();
		return false;
	}
}

function existe(obj, tipo) {
	if (obj.value=='') return true;
	
	var qry = "SELECT "+obj.name+" FROM "+tabla+" WHERE "+obj.name+"="+tipo+obj.value+tipo;
	if (!existeRegistro(qry)) {
		return true;
	} else {
		alert('El valor \''+obj.value+'\' para el campo \''+obj.name+'\' ya está siendo usado en otro registro.\nIngrese otro valor por favor.');
		obj.focus();
		return false;
	}
}

function existe2(obj, objHidden, tipo) {
	if (obj.value == '') return true;
	if (obj.value == objHidden.value) return true; // no cambió el valor, sale sin validar
	
	var qry = "SELECT "+obj.name+" FROM "+tabla+" WHERE "+obj.name+"="+tipo+obj.value+tipo;
	if (!existeRegistro(qry)) {
		return true;
	} else {
		alert('El valor \''+obj.value+'\' para el campo \''+obj.name+'\' ya está siendo usado en otro registro.\nIngrese otro valor por favor.');
		obj.focus() ;
		return false ;
	}
}

function existeRegistro(qry) { // Usa xmlExiste.asp
	try {
		xml.async = false;
		xml.onreadystatechange=verify;
		xml.load("xmlExiste.asp?qry="+qry);
		xmlObj = xml.documentElement;
	} catch(e) {
		return false;
	}
	
	if (xmlObj.hasChildNodes()) {
		var obj = xmlObj.childNodes;
		return eval(obj(0).text);
	}
	return false;
}

function swapIconosInhibir( idRef ) {
	var auxi, arreglo = false;
	if (eval('inhi'+idRef+'[0]')) arreglo = true;
	
	var eInhi = eval('inhi'+idRef);
	var eDesinhi = eval('desinhi'+idRef);

	if (arreglo) {
		for (var i=0; i<eInhi.length; i++) {	// hacer swap
			auxi = eInhi[i].style.display;
			eInhi[i].style.display = eDesinhi[i].style.display;
			eDesinhi[i].style.display = auxi;
		}
	} else {
		auxi = eInhi.style.display;
		eInhi.style.display = eDesinhi.style.display;
		eDesinhi.style.display = auxi;
	}
}

function arreglarNombre(nombre){
	var x = nombre.toString();
	if (x.length > 0) {
		x = x.substr(0,1).toUpperCase() + x.substr(1).toLowerCase();
		if (x.indexOf(' ', 0) != -1){
			var s = x.indexOf(' ',0)+1;
			x = x.substr(0,s) + arreglarNombre(x.substr(s));
		}
	}
	return x;
}

// ante un campo INPUT tipo TEXT con un checkbox asociado lo habilita o lo inhabilita limpiandolo al clikear
function habilitar(campo){
	var auxCampo = campo;

	if (eval('form1.'+auxCampo+'.disabled == true ')){
		eval('form1.'+auxCampo+'.disabled = false ;')
	}else{
		eval('form1.'+auxCampo+'.value = "" ;')
		eval('form1.'+auxCampo+'.disabled = true ;')
	}
	return true;
}

function isNumberInt(inputString){
	return (!isNaN(parseInt(inputString))) ? true : false;
}
//para podar caracteres no numericos en un campo 
function onlyNumbers(inputString){
	var digitos='1234567890';
	var aux = inputString;
	var aux2 = "";
	for (i=0;i<aux.length;i++){
		if (digitos.indexOf(aux.substr(i, 1),0)>-1) aux2 += aux.substr(i, 1);
	}
	return aux2;
}