var whitespace = " \t\n\r";
function isEmptystr (valor)
{   
	var i;
	if (isEmpty(valor)) return true;
	for (var i = 0; i < valor.length; i++)
	{   
		var c = valor.charAt(i);
	    if (whitespace.indexOf(c) == -1) return false;
	}
    return true;
}
function isEmpty(valor)
{   return ((valor == null) || (valor.length == 0))
}
function isEmptynum(valor)
{
	if ((valor=="") || (valor==0))
	{
		return true;
	}
	else
	{
		return false
	}
}
function isRif(valor)
{
	var str=valor;
	if (str.length != "12")
	{
		return false;		
	}
	else
	{
		var ch = str.substring(0,1);
		if (ch != "J" && ch != "N")
		{
			return false;		
		}
		else
		{
			var ch = str.substring(1,2);
			var ch2 = str.substring(10,11);
			if (ch != "-" || ch2 != "-")
			{
				return false;
			}
			else
			{
				var ch = str.substring(11,12);
				if (ch < "0" || "9" < ch)
				{
					return false;  
				}
				else
				{
					for (var i = 2; i < 10; i++)
					{      
						var ch = str.substring(i, i + 1);      
						if (ch < "0" || "9" < ch)
						{            
							return false;         
						}      
					}   
					return true;   
				}
			}
		}
	}
}
function isNumberpos(valor)
{
	if (valor==0)
	{
		return false;         
	}
	var str=valor;
	for (var i = 0; i < str.length; i++)
	{      
		var ch = str.substring(i, i + 1);      
		if (ch < "0" || "9" < ch){            
			return false;         
		}      
	}   
	return true;   
}
function isNumberdec(valor)
{
	if (valor==0)
	{
		return false;         
	}
	var str=valor;
	var contador=0;
	for (var i = 0; i < str.length; i++){      
	var ch = str.substring(i, i + 1);

	if ((ch < "0" || "9" < ch) && ch != '.')
	{            
		return false;
	} 
	else
	{
		if (ch == '.')
		{
			contador++;
		}
	}  
	if (contador>1) return false;
	if (contador==str.length) return false;
	
	}
	return true;   
}

function round (n, d) 
{
  n = n - 0;
  d = d==void(0) ? 2 : d
  var f = Math.pow(10, d);
  n = Math.round(n * f) / f;
  n += Math.pow(10, - (d + 1));
  n += '';
  return d == 0 ? n.substring(0, n.indexOf('.')) :
      n.substring(0, n.indexOf('.') + d + 1);
}
/*function isFecha(valor)
{
	var str=valor;
	if (str.length != "10")
	{
		return false;
	}
	else
	{
		var ch = str.substring(2,3);
		var ch2 = str.substring(5,6);
		if (ch != "/" || ch2 != "/")
		{
			return false;
		}
		else
		{
			var ch = str.substring(0,1);
			var ch2 = str.substring(1,2);
			var ch3 = str.substring(3,4);
			var ch4 = str.substring(4,5);
			if ((ch < "0" || "9" < ch) || (ch2 < "0" || "9" < ch2) || (ch3 < "0" || "9" < ch3) || (ch4 < "0" || "9" < ch4))
			{
				return false;
			}
			else
			{
				for (var i = 6; i < 10; i++)
				{      
					var ch = str.substring(i, i + 1);      
					if (ch < "0" || "9" < ch)
					{            
						return false;         
					}      
				}   
				return true;   
			}
		}
	}
}*/
function y2k(number)
{
	return (number < 1000) ? number + 1900 : number; 
}

var reason = '';

function isValidDate (myDate,sep,sep1)
{
// checks if date passed is in valid dd/mm/yyyy format

    if (myDate.length == 10) {
        if ((myDate.substring(2,3) == sep && myDate.substring(5,6) == sep) || (myDate.substring(2,3) == sep1 && myDate.substring(5,6) == sep1)) {
            var date  = myDate.substring(0,2);
            var month = myDate.substring(3,5);
            var year  = myDate.substring(6,10);

            var test = new Date(year,month-1,date);

            if (year == y2k(test.getYear()) && (month-1 == test.getMonth()) && (date == test.getDate())) {
                reason = '';
                return true;
            }
            else {
                reason = 'Fecha Invalida';
                return false;
            }
        }
        else {
            reason = 'Separadores invalidos';
            return false;
        }
    }
    else {
        reason = 'El formato de la fecha debe ser dd/mm/aaaa';
        return false;
    }
}

function isFecha(myDate) 
{
	fecha=myDate;
	myDate=myDate.value;
	if (isValidDate(myDate,'/','-'))
	{
        var date  = myDate.substring(0,2);
        var month = myDate.substring(3,5);
        var year  = myDate.substring(6,10);
		fecha.value=date+'/'+month+'/'+year;
		return true;
	}
    else
	{
		alert(reason);
		return false;
	}
}

function isMail(valor)
{
	swOK=2
	var str=valor;
	for (var i=0;i<str.length;i++)
	{
		var ch=str.substring(i,i+1);
		if (ch=="@" || ch==".")
		{
			swOK=swOK-1;
		} 
	}
	if (swOK>0) 
	{
		return false;
	}
	else
	{
		return true;
	}
}
function isRango(desde,hasta)
{
	var fechahas=hasta;
	var fechades=desde;
	var diahas=fechahas.substring(0,2); 
	var meshas=fechahas.substring(3,5); 
	var anohas=fechahas.substring(6,10); 
	var diades=fechades.substring(0,2); 
	var mesdes=fechades.substring(3,5); 
	var anodes=fechades.substring(6,10); 
	var fechahas=new Date(anohas,meshas-1,diahas);
	var fechades=new Date(anodes,mesdes-1,diades);
	if (fechahas < fechades)
	{
		return false;
	}
	else
	{
		return true;
	}
}
function differenceBtw(desde,hasta)
{
	var fechahas=hasta;
	var fechades=desde;
	var diahas=fechahas.substring(0,2); 
	var meshas=fechahas.substring(3,5); 
	var anohas=fechahas.substring(6,10); 
	var diades=fechades.substring(0,2); 
	var mesdes=fechades.substring(3,5); 
	var anodes=fechades.substring(6,10); 
	var fechahas=new Date(anohas,meshas-1,diahas);
	var fechades=new Date(anodes,mesdes-1,diades);
	var valor=0;
	//Set 1 day in milliseconds
	var one_day=1000*60*60*24;
	valor=(fechahas.getTime()-fechades.getTime())/(one_day);
	return valor;
}
function isRangoHora(fecha,desde,hasta)
{
	var horahas=hasta;
	var horades=desde;
	//hora HASTA
	var ampmhas=hasta.value.substr(6,2);
	var horhas=hasta.value.substr(0,2);
	//convierte hora a formato 24H
	if (ampmhas=='PM' && (eval(horhas)>=1 && eval(horhas)<=11))
	{
		horhas=eval(horhas)+12;
	}
	if (ampmhas=='AM' && eval(horhas)==12)
	{
		horhas=00;
	}
	var minhas=hasta.value.substr(3,2);
	//hora DESDE
	var ampmdes=desde.value.substr(6,2);
	var hordes=desde.value.substr(0,2); 
	//convierte hora a formato 24H
	if (ampmdes=='PM' && eval(hordes)>=1 && eval(hordes)<=11)
	{
		hordes=eval(hordes)+12;
	}
	if (ampmdes=='AM' && eval(hordes)==12)
	{
		hordes=00;
	}
	var mindes=desde.value.substr(3,2);
	//dia
	var dia=fecha.value.substring(0,2); 
	var mes=fecha.value.substring(3,5); 
	var anno=fecha.value.substring(6,10); 

	var horahas=new Date(anno,mes-1,dia,horhas,minhas);
	var horades=new Date(anno,mes-1,dia,hordes,mindes);

	//verifica horario de oficina (7:00 AM a 6:00 PM)
	if ((eval(hordes)>=7 && eval(hordes)<=18) && (eval(horhas)>=7 && eval(horhas)<=18))
	{
		//verifica que la hora desde sea menor que la hora hasta
		if (horahas < horades)
		{
			alert("El rango de horas es incorrecto, la hora hasta debe ser menor que la hora desde");
			return false;
		}
		else
		{
			return true;
		}
	}
	else
	{
		alert("El rango de horas esta fuera de horario de oficina");
		return false;
	}
}
function keyToUpperCase(field, evt) 
{
	if (document.all) 
	{
		var c = event.keyCode;
		var C = String.fromCharCode(c).toUpperCase().charCodeAt(); 
		event.keyCode = C;
		return true;
	}
	else
	{
		return true;
	}
}
/*function keyToUpperCase(field, evt) {
  if (document.all) {
    var c = event.keyCode;
    var C = String.fromCharCode(c).toUpperCase().charCodeAt(); 
    event.keyCode = C;
    return true;
  }
  else if (document.layers) {
    var c = evt.which;
    var C = String.fromCharCode(c).toUpperCase().charCodeAt();
    netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserWrite');
    evt.which = C;
    return true;
  }
  else 
    return true;
}*/

function enterUppercase(field, evt) 
{
	if (document.all) 
	{
		var c = event.keyCode;
		if(String.fromCharCode(c).charCodeAt()==13)
		{
			event.keyCode = '';
		}
		else
		{
			if (field.value.length>100)
			{	
				event.keyCode = '';
			}
			else
			{
				var C = String.fromCharCode(c).toUpperCase().charCodeAt(); 
				event.keyCode = C;
			}
		}
		return true;
	}
	else
	{
		return true;
	}
}
function enterUppercaseBig(field, evt) 
{
	if (document.all) 
	{
		var c = event.keyCode;
		if(String.fromCharCode(c).charCodeAt()==13)
		{
			event.keyCode = '';
		}
		else
		{
			if (field.value.length>300)
			{	
				event.keyCode = '';
			}
			else
			{
				var C = String.fromCharCode(c).toUpperCase().charCodeAt(); 
				event.keyCode = C;
			}
		}
		return true;
	}
	else
	{
		return true;
	}
}
function enterForm(form) 
{
	if (String.fromCharCode(event.keyCode).charCodeAt()==13) 
	{
		event.keyCode = ''; 
		funvalidar(form);
		return null;
	}
}
function isKey(evt,form) 
{
	var keyChar = String.fromCharCode(evt.keyCode);
    if (keyChar == '|' || keyChar == '<' || keyChar == '>')
	{
		//getNextElement(evt,form).focus();
		evt.returnValue=false;
		return null;
	}
    else
	return false;
}

function enterTab(evt,form) 
{
	var keyChar = String.fromCharCode(evt.keyCode);
    if (keyChar == '+')
	{
		getNextElement(evt,form).focus();
		evt.returnValue=false;
		return null;
	}
    else
	return false;
}
function getNextElement(evt,form) 
{
	var e=evt.srcElement.id;
	e++;
	while (form.elements[e % form.elements.length].type=='hidden')
	{
		e++;
	}
	return form.elements[e % form.elements.length];
}
/*function getNextElement(evt,form) 
{
	for (var e = 0; e < form.elements.length; e++)
	{
		if (form.elements[e]==evt.srcElement)
		break;
	}
	e++;
	while (form.elements[e % form.elements.length].type=='hidden')
	{
		e++;
	}
	return form.elements[e % form.elements.length];
}*/

function enterTab3(evt, form, cont) 
{
	/*if (String.fromCharCode(event.keyCode).charCodeAt()==13) 
	{
		getNextElement(evt,form).focus();
		evt.returnValue=false;		
		return null;
	}*/
	
	if (String.fromCharCode(event.keyCode).charCodeAt()==13) 
	{
		i = cont;
		if (i > 10)
		{
			i = 1;
		}
		
		eval("form.num"+i+".focus()");
	}
}
function ReconvMonet(valor) //Función para la reconversióm monetaria
{
	var valorF;
	var valor1;
	valor1 = valor/1000;
	valorF = Math.round(valor1*100)/100;
	return valorF;
}

function keyToUpperCase(field, evt, valor) //función para que las letras que introduzcan en el campo txtconceptootros sean sólo mayúscula
{
	if (document.all) 
	{
		var c = event.keyCode;
		var C = String.fromCharCode(c).toUpperCase().charCodeAt(); 
		event.keyCode = C;
		return true;
	}
	else
	{
		return true;
	}
}


function trimAll( strValue ) //Función que limpia los espacios en blanco del campo
{
	var objRegExp = /^(\s*)$/;

	if(objRegExp.test(strValue))
	{
		strValue = strValue.replace(objRegExp, '');
		if( strValue.length == 0){ return strValue; }
	}

	//check for leading & trailing spaces

	objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;

	if(objRegExp.test(strValue))
	{
		//remove leading and trailing whitespace characters
		strValue = strValue.replace(objRegExp, '$2');
	}

	return strValue;
}


