//INICIO estilo de funciones par alas listas de un click y doble click
function llenarckslista(src){
 src.click();
}
//FIN estilo de funciones par alas listas de un click y doble click
/////borrar de fechas
function limpiarfechac(campo){
	document.getElementById(campo).value='';
}
/////fin borrar de fechas

var er_mes31dias = /^(19[0-9][0-9]|20[0-1][0-9]|2020)\-(01|03|05|07|08|10|12)\-([1-3]0|[0-2][1-9]|31)$/
var er_mes30dias = /^(19[0-9][0-9]|20[0-1][0-9]|2020)\-(04|06|09|11)\-([1-3]0|[0-2][1-9])$/
var er_mes28dias = /^(19[0-9][0-9]|200[1-3]|200[5-7]|2009|201[0-1]|201[3-5]|201[7-9])\-(02)\-([1-2]0|[0-2][1-8]|[0-1]9])$/
var er_mes29dias = /^(1996|1992|1988|1984|1980|1976|1972|1968|1964|1962|1958|1954|1950|2000|2004|2008|2012|2016|2020)\-(02)\-([1-2]0|[0-2][1-9])$/
var er_email = /^(.+\@.+\..+)$/  

var nav4 = window.Event ? true : false;
//solo numeros naturales
function acceptNum(evt)
{	//NOTA: Backspace=8, Enter=13, '0'=48, '9'=57
	var keypr = nav4 ? evt.which : evt.keyCode;
	//alert(keypr)
	return (keypr <= 13 ||(keypr >= 48 && keypr <= 57));
}
//funcion solo letras
function acceptOnlyChar(evt)
{	//NOTA: 'Backspace'=8, 'Enter'=13, 'Alt'=18, 'barraespeciadora' = 32, '#'=35.  'punto'=46, 'De 0-9'=48,57, 'De A-Z'=65-90,'De a-z'=97-122,
	var keypr = nav4 ? evt.which : evt.keyCode;
//alert(keypr)

	return (keypr <=13 || keypr ==18 || keypr ==32 || keypr ==35 || keypr ==46 || (keypr >=48 && keypr <=57) || (keypr >=65 && keypr <=90) || (keypr >=97 && keypr <=122 ) || keypr==130 || keypr==193 || keypr==201 || keypr==205 || keypr==218 || keypr==209 || keypr==211 || keypr==225 || keypr==233 || keypr==237 || keypr==241 || keypr==243 || keypr==250);
}


//solo numeros naturales y un punto
function acceptNum1(evt)
{	//NOTA: Backspace=8, Enter=13, '.'=46, '0'=48, '9'=57
	var keypr = nav4 ? evt.which : evt.keyCode;
	//alert(keypr)
	return (keypr <= 13 || keypr == 46 ||(keypr >= 48 && keypr <= 57));
}

//solo mayusculas, minusculas, numeros, barraespacio, usar para Nombres, Direcciones
function acceptChar1(evt)
{	//NOTA: 'Backspace'=8, 'Enter'=13, 'Alt'=18, 'barraespeciadora' = 32, '#'=35.  'punto'=46, 'De 0-9'=48,57, 'De A-Z'=65-90,'De a-z'=97-122,
	var keypr = nav4 ? evt.which : evt.keyCode;
//alert(keypr)
	return (keypr <=13 || keypr ==18 || keypr ==32 || keypr ==35 || keypr ==46 || (keypr >=48 && keypr <=57) || (keypr >=65 && keypr <=90) || (keypr >=97 && keypr <=122));
}

//acceptChar4 no permite caracteres especiales solo numeros, minusculas y mayusculas el ( _ ) - (tildes)-(#)
// para direcciones

function acceptChar4(evt,cadena)
{	//NOTa: Backspace= 8, Enter= 13, '0'= 48, '9'=57, '.'= 46,'/'= 47, '_'=95,'#'=35
	var key = nav4 ? evt.which : evt.keyCode;
//alert(key);
	if(cadena.length==0)
	{	return (key <= 13 || key==95 || key==35 || key==45 || key==46 || key==44 || (key>=97 && key<=122) || (key >= 48 && key <= 57) || (key >= 65 && key <= 90) || key==130 || key==193 || key==201 || key==205 || key==218 || key==209 || key==211 || key==225 || key==233 || key==237 || key==241 || key==243 || key==250 || key==34 || key==39);
	}
	else
	{	return (key <= 13 || key==95 || key==32 || key==35 || key==45 || key==46 || key==44 || (key>=97 && key<=122) || (key >= 48 && key <= 57) || (key >= 65 && key <= 90) || key==130 || key==193 || key==201 || key==205 || key==218 || key==209 || key==211 || key==225 || key==233 || key==237 || key==241 || key==243 || key==250 || key==34 || key==39);
	}
}


//acceptchar6 solo recib numeros y (-) , para campos fechas
function acceptChar6(evt)
{	//NOTA: Backspace = 8, Enter = 13, '0' = 48, '9' = 57, '-' = 45,
	var key = nav4 ? evt.which : evt.keyCode;
	return (key <= 13 || key == 8 || key == 45 || (key >= 48 && key <= 57));
}

function trimAll(src)
{	sString=src.value;
	while (sString.substring(0,1) == ' ')
	{	sString = sString.substring(1, sString.length);
	}
    while (sString.substring(sString.length-1, sString.length) == ' ')
    {	sString = sString.substring(0,sString.length-1);
    }
    src.value=sString;
}

var expresion=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
function validarEmail(valor)
{	if (!expresion.test(valor))
	{	alert("La dirección de email es incorrecta.");
		//document.formulario.correo.focus();
//return (true)
	}
}

function accepturl(evt,cadena)
{	// NOTE: Backspace=8, Enter=13, '0'=48, '9'=57, '.'=46, '/'=47, '_'=95,'#'=35
	var key = nav4 ? evt.which : evt.keyCode;
    return (key <= 13 || key==95 || key==47 || key==58 || key==64 || key==46 || (key>=97 && key<=122) || (key >= 48 && key <= 57)  || key==61 || key==63);
}

//Texto que mostraremos de alerta
function capLock(e)
{	var kc=e.keyCode?e.keyCode:e.which;
	var sk=e.shiftKey?e.shiftKey:((kc==16)?true:false);
	if(((kc>=65&&kc<=90)&&!sk)||((kc>=97&&kc<=122)&&sk))
	{
		//if()
		
		try
		{			//alert("ANTES DEL MENSAJ");
		mensaje("mensaje1","La tecla Bloq Mayus esta activa, es posible que escriba incorrectamente su Contraseña",122,40);
		//alert("PASO POR el try");
		}
		catch(error)
		{	alert("La tecla Bloq Mayús esta activa, es posible que escriba incorrectamente su Contraseña");
		}
	}
}


function validar()
{	

var arreglo = new Array();
	var arregloObligatorios = new Array();
	var arregloEtiquetas = new Array();
	var cadena;
	var valorcadena;
	arregloObligatorios=document.formulario.obligatorios.value.split(",");
	arregloEtiquetas=document.formulario.etiquetas.value.split(",");
	for(i=0;i<arregloObligatorios.length;i++)
	{	cadena="document.formulario."+arregloObligatorios[i];
		valorcadena=eval(cadena);
		if(!valorcadena.value || valorcadena.value=='null')
		{	var dLeft= findPosX(document.getElementById(arregloObligatorios[i]));
			var dTop= findPosY(document.getElementById(arregloObligatorios[i]));
			ancho_c=document.getElementById(arregloObligatorios[i]).style.width;
			ancho_c=ancho_c.replace('px','');
			dLeft=parseInt(dLeft)+parseInt(ancho_c)-20;
			if(document.getElementById(arregloObligatorios[i]).type=='text' || document.getElementById(arregloObligatorios[i]).type=='textarea')
			{	mensajecampo="El campo "+arregloEtiquetas[i]+" está vacío!";
			}
			if(document.getElementById(arregloObligatorios[i]).type=='select-one')
			{	mensajecampo="Debe seleccionar una opción de esta lista!";
			}
			try
			{	mensaje("mensaje1",mensajecampo,dLeft,dTop-alto_encabezado);}
			catch(error)
			{	alert(mensajecampo);
			}
			valorcadena.focus();
			return ("no");
		}
	}
	try
	{	var nro_tablas=document.formulario.nro_tablas.value;
	}
	catch(error)
	{	var nro_tablas=1;
	}
    if(nro_tablas<='1')
	{	arreglo=document.formulario.inputs.value.split(",");
		var cadenafinal="";
		for(i=0;i<arreglo.length;i++)
		{	var coma=",";
			if(i==0)
			{	coma="";
			}
			cadena="document.formulario."+arreglo[i];
			valorcadena=eval(cadena);
			
			
			
			//Cambia "," a su equivalente HTML
//			valorcadena.value=strreplace("'","&#039;",valorcadena.value);
			valorsincoma=strreplace("'","&#039;",valorcadena.value);

			//Cambia "'" a su equivalente HTML
//			valorcadena.value=strreplace(",","&#044;",valorcadena.value);			
			valorsincomasincomilla=strreplace(",","&#044;",valorsincoma);
			
			if(valorcadena.type=='checkbox')
			{	if(valorcadena.checked==false)
				{	cadenafinal=cadenafinal+coma+"'null'";
				}
				else
				{	//cadenafinal=cadenafinal+coma+"'"+valorcadena.value+"'";
					cadenafinal=cadenafinal+coma+"'"+valorsincomasincomilla+"'";
				}
			}
			else
			{	if(valorcadena.value=='null')
				{	//cadenafinal=cadenafinal+coma+valorcadena.value;	
					cadenafinal=cadenafinal+coma+valorsincomasincomilla;
				}
				else
				{	cadenafinal=cadenafinal+coma+"'"+valorsincomasincomilla+"'";
				}
			}
		}
      }
	  else
	  {	for(j=0;j<nro_tablas;j++)
	  	{	arreglo=document.getElementById('inputs['+j+']').value.split(",");
			var cadenafinal="";
			for(i=0;i<arreglo.length;i++)
			{	var coma=",";
				if(i==0)
				{	coma="";
            	}
				cadena="document.formulario."+arreglo[i];
				valorcadena=eval(cadena);
				cadenafinal=cadenafinal+coma+"'"+valorcadena.value+"'";
			}
			document.getElementById('valores['+j+']').value=cadenafinal;
		}
	  }
      if(nro_tablas<='1')
	  {	document.formulario.valores.value=cadenafinal;
      }
	return ("si");
}

function formatCurrency(num)
{	existe=0;
	cadena=num;
	//alert(num)
	//NOTE: Backspace = 8, Enter = 13, '0' = 48, '9' = 57
	for(i=0;i<cadena.length;i++)
	{	if(cadena[i]=='.')
		{	existe=1;

		}
	}
	if(existe==0)
	{	num=num.toString().replace(/\$|\,/g,'');
		if(isNaN(num))
		num = "0";
		sign = (num == (num = Math.abs(num)));
		//alert(sign);
		num = Math.floor(num*100+0.50000000001);
		cents = num%100;
		num = Math.floor(num/100).toString();
		if(cents<10)
		cents = "0" + cents;
		for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+','+
		num.substring(num.length-(4*i+3));
		return (((sign)?'':'-') + num );
	}
	else
	{	num = num.toString().replace(/\$|\,/g,'');
		if(isNaN(num))
		num = "0";
		sign = (num == (num = Math.abs(num)));
		num = Math.floor(num*100+0.50000000001);
		cents = num%100;
		num = Math.floor(num/100).toString();
//if(cents<10)
//cents = "0" + cents;
		for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+','+
		num.substring(num.length-(4*i+3));
		return (((sign)?'':'-') + num + '.' + cents);
	}
}

fmtMoney = function( n, c, d, t )
{	n=strreplace(",","",n);
	signo=n.indexOf('-');
	punto=n.indexOf(d);
	if(punto=='-1')
	n=n.concat('.00');
//alert(n)
	var m = ( c = Math.abs( c ) + 1 ? c : 2, d = d || ",", t = t || ".", /(\d+)(?:(\.\d+)|)/.exec( n + "" ) ), x = m[1].length % 3;
//alert(m)
	x= (( x ? m[1].substr( 0, x ) + t : "" ) + m[1].substr( x ).replace( /(\d{3})(?=\d)/g, "$1" + t ) + ( c ? d + ( +m[2] ).toFixed( c ).substr( 2 ) : "" ));
	if(signo!='-1')
	{	x='-'+x;
	}
	return x;
};

function strreplace(busca,sust,cadena)
{	return cadena.split(busca).join(sust);
}

function Browser()
{	var ua, s, i;
	this.isIE    = false;
	this.isNS    = false;
	this.version = null;
	
	ua = navigator.userAgent;
	
	s = "MSIE";
	if ((i = ua.indexOf(s)) >= 0)
	{	this.isIE = true;
		this.version = parseFloat(ua.substr(i + s.length));
		return;
	}

	s = "Netscape6/";
	if ((i = ua.indexOf(s)) >= 0)
	{	this.isNS = true;
		this.version = parseFloat(ua.substr(i + s.length));
		return;
	}
//Treat any other "Gecko" browser as NS 6.1.
	s = "Gecko";
	if ((i = ua.indexOf(s)) >= 0)
	{	this.isNS = true;
		this.version = 6.1;
		return;
	}
}

var browser = new Browser();
//Global object to hold drag information.
var dragObj = new Object();
dragObj.zIndex = 0;

function dragStart(event, id)
{	var el;
	var x, y;
//If an element id was given, find it. Otherwise use the element being
// clicked on.

	if (id)
	{	dragObj.elNode = document.getElementById(id);
	}
	else
	{	if (browser.isIE)
		dragObj.elNode = window.event.srcElement;
		if (browser.isNS)
		dragObj.elNode = event.target;

//If this is a text node, use its parent element.
		if (dragObj.elNode.nodeType == 3)
		dragObj.elNode = dragObj.elNode.parentNode;
	}

//Get cursor position with respect to the page.
	if (browser.isIE)
	{	x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
		y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
	}
	if (browser.isNS)
	{	x = event.clientX + window.scrollX;
		y = event.clientY + window.scrollY;
	}

//Save starting positions of cursor and element.
	dragObj.cursorStartX = x;
	dragObj.cursorStartY = y;
	dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
	dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);

	if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
	if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = 0;

//Update element's z-index.

	dragObj.elNode.style.zIndex = ++dragObj.zIndex;
	
//Capture mousemove and mouseup events on the page.

	if (browser.isIE)
	{	document.attachEvent("onmousemove", dragGo);
		document.attachEvent("onmouseup",	dragStop);
		window.event.cancelBubble = true;
		window.event.returnValue = false;
	}
	if (browser.isNS)
	{	document.addEventListener("mousemove", dragGo,   true);
		document.addEventListener("mouseup",   dragStop, true);
		event.preventDefault();
	}
}

function dragGo(event)
{	var x, y;
//Get cursor position with respect to the page.
	if (browser.isIE)
	{	x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
		y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
	}
	if (browser.isNS)
	{	x = event.clientX + window.scrollX;
		y = event.clientY + window.scrollY;
	}
//Move drag element by the same amount the cursor has moved.
	dragObj.elNode.style.left = (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";
	dragObj.elNode.style.top  = (dragObj.elStartTop  + y - dragObj.cursorStartY) + "px";
	
	if (browser.isIE)
	{	window.event.cancelBubble = true;
		window.event.returnValue = false;
	}
	if (browser.isNS)
	event.preventDefault();
}

function dragStop(event)
{	//Stop capturing mousemove and mouseup events.
	if (browser.isIE)
	{	document.detachEvent("onmousemove", dragGo);
		document.detachEvent("onmouseup",	dragStop);
	}
	if (browser.isNS)
	{	document.removeEventListener("mousemove", dragGo,	true);
		document.removeEventListener("mouseup",   dragStop, true);
	}
}

function ayuda_i()
{	document.getElementById('boxB').style.display='';
}

//funcuiones para cuadros de dialogos
var tiempo=100;
function fadeMensaje(idm)
{	var objeto= document.getElementById(idm).style;
	if(tiempo>0)
	{	objeto.opacity=tiempo/100;
		objeto.filter="alpha(opacity="+tiempo+")";
		tiempo=tiempo-1;
		if(tiempo<10)
		{	cerrar_mensaje(idm);
		}
		setTimeout("fadeMensaje('"+idm+"')",10);
	}
}

function mensaje(idm,texto,posicionx,posiciony)
{	var objeto= window.document.getElementById(idm).style;
	window.document.getElementById('c_mensaje').innerHTML=texto;
	objeto.opacity=1;
	objeto.filter="alpha(opacity=100)";
	window.document.getElementById(idm).style.top=posiciony+"px";
	window.document.getElementById(idm).style.left=posicionx+"px";
	window.document.getElementById(idm).style.display='';
	window.document.getElementById(idm).focus();
	tiempo=100;
	setTimeout("fadeMensaje('"+idm+"')",2500);
}

function cerrar_mensaje(idm)
{	document.getElementById(idm).style.display='none';
}

function crearDialogo(idm,iddiv)
{	texto="<div id="+idm+" class=mensaje style=\"position:absolute;display:none\"><div class=\"h_mes\" ><a href=\"javascript:cerrar_mensaje('"+idm+"');\" title=\"Cerrar cuadro de dialogo\" style=\"text-decoration:none;\"><image border=0 src=\"images/x_mes.gif\"></a></div><div class=\"c_mes\" id=\"c_mensaje\">&nbsp;s</div><div class=\"f_mes\">&nbsp;</div></div>";
	document.getElementById(iddiv).innerHTML+=texto;
}
//fin funciones para cuadros de dialogo

//funciones para calcula la posicion x y y de un objeto
function findPosX(obj)
{	var curleft = curtop = 0;
	if (obj.offsetParent)
	{	curleft = obj.offsetLeft
		while (obj = obj.offsetParent)
		{	curleft += obj.offsetLeft
		}
	}
	return curleft;
}
function findPosY(obj)
{	var curleft = curtop = 0;
	if (obj.offsetParent)
	{	curtop = obj.offsetTop
		//alert(curtop);
		while (obj = obj.offsetParent)
		{	curtop += obj.offsetTop
			// alert(curtop);
		}
	}
 	return curtop;
}
//fin calculo de posiciones

function ocultarGuardar()
{	document.getElementById('b_guardar').style.display='none';
	document.getElementById('b_espere').style.display='';
}
function ocultarEspere()
{	document.getElementById('b_guardar').style.display='';
	document.getElementById('b_espere').style.display='none';
}

function llenar_todos(limite,tipo)
{	var cadena="document.formulario.borrar";
	for(i=0;i<limite;i++)
	{	inputtemp=cadena+i;
		inputcheck=eval(inputtemp);
		if(tipo==1)
		{	inputcheck.checked=true;
			xx=1;
		}
		if(tipo==2)
		{	inputcheck.checked=false;
			xx=0;
		}
	}
}
