// JavaScript Document
<!--
function categorias(categoria)
{
	document.buscar_categoria.categoriaS.value=categoria;
	document.buscar_categoria.submit();
}

function abre1(url){ 
   ancho=(screen.width)-200;
   alto=(screen.height)-300;
   window.open(url,'','width='+ancho+', height='+alto+', scrollbars, resizable, directories, location, menubar, status, titlebar, toolbar');
}

function subcategorias(categoria, subcategoria)
{
	document.buscar_subcategoria.categoriaS.value=categoria;
	document.buscar_subcategoria.subcategoriaS.value=subcategoria;
	document.buscar_subcategoria.submit();
}

function abre(url,ancho,alto){ 
   window.open(url,'','width='+ancho+',height='+alto+',,,,,status,,');
}

function abre2(url){ 
   ancho=(screen.width)-200;
   alto=(screen.height)-300;
   window.open(url,'','width='+ancho+', height='+alto+', scrollbars, resizable,,,, status,,');
}

function Trim( s ) 
{
	var i = 0;
	if( s.length > 0 ) 
	{
		while( s.charAt( i ) == " " )
			i++;
		if( i > 0 ) s = s.substring( i, s.length );
	}
	i = 0;
	if( s.length > 0 ) 
	{
		while( s.charAt( s.length - i - 1 ) == " " )
			i++;
		if( i > 0 ) s = s.substring( 0, s.length - i );
	}
	return s;
}

function valHora(oTxt){
var bOk = false;
var nHora = parseInt(oTxt.value.substr(0, 2), 10);
bOk = bOk || ((nHora >= 1) && (nHora <= 12));
return bOk;
}

function valMinutos(oTxt){
var bOk = false;
var nMinutos = parseInt(oTxt.value.substr(3, 2), 10);
bOk = bOk || ((nMinutos >= 0) && (nMinutos <= 59));
return bOk;
}

function valPunto(oTxt){
var bOk = false;
bOk = bOk || (oTxt.value.charAt(2) == ":");
return bOk;
}

function valHorario(oTxt)
{
	var bOk = true;
	if ((oTxt.value != "") && (oTxt.value !="00:00:00"))
	{
		bOk = bOk && (valHora(oTxt));
		bOk = bOk && (valPunto(oTxt));
		bOk = bOk && (valMinutos(oTxt));
	}
return bOk;
}

function esDigito(sChr){
var sCod = sChr.charCodeAt(0);
return ((sCod > 47) && (sCod < 58));
}

function valSep(oTxt){
var bOk = false;
bOk = bOk || ((oTxt.value.charAt(4) == "-") && (oTxt.value.charAt(7) == "-"));
bOk = bOk || ((oTxt.value.charAt(4) == "/") && (oTxt.value.charAt(7) == "/"));
return bOk;
}

function finMes(oTxt){
//var nMes = parseInt(oTxt.value.substr(3, 2), 10);
var nMes = parseInt(oTxt.value.substr(5, 2), 10);
var nRes = 0;
switch (nMes){
case 1: nRes = 31; break;
case 2: nRes = 29; break;
case 3: nRes = 31; break;
case 4: nRes = 30; break;
case 5: nRes = 31; break;
case 6: nRes = 30; break;
case 7: nRes = 31; break;
case 8: nRes = 31; break;
case 9: nRes = 30; break;
case 10: nRes = 31; break;
case 11: nRes = 30; break;
case 12: nRes = 31; break;
}
return nRes;
}

function valDia(oTxt){
var bOk = false;
var nDia = parseInt(oTxt.value.substr(8, 2), 10);

bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));

return bOk;
}

function valMes(oTxt){
var bOk = false;
var nMes = parseInt(oTxt.value.substr(5, 2), 10);

bOk = bOk || ((nMes >= 1) && (nMes <= 12));
return bOk;
}

function valAno(oTxt){
var bOk = true;
//var nAno = oTxt.value.substr(6);
var anno = Trim(oTxt.value);
var nAno = parseInt(anno.substr(0, 4), 10);
var cAno = anno.substring(0, 4);
bOk = bOk && ((cAno.length == 2) || (cAno.length == 4));
if (bOk){
for (var i = 0; i < cAno.length; i++){
bOk = bOk && esDigito(cAno.charAt(i));
//alert(nAno.charAt(i));
}
}
return bOk;
}

function validaFecha(oTxt)
{
	var bOk = true;
	if ((oTxt.value != "") && (oTxt.value !="0000-00-00"))
	{
		bOk = bOk && (valAno(oTxt));
		bOk = bOk && (valMes(oTxt));
		bOk = bOk && (valDia(oTxt));
		bOk = bOk && (valSep(oTxt));
	}
	
return bOk;
}

function IsNum(numstr) {
	if (numstr+"" == "undefined" || numstr+"" == "null" || numstr+"" == "")	
		return false;
	var cnum= Trim(numstr);
	if (cnum == "0") 	return true;
	var isValid = true;
	var decCount = 0;		// number of decimal points in the string
	numstr += "";	
	for (i = 0; i < numstr.length; i++) {
		if (numstr.charAt(i) == ".")
			decCount++;
    	if (!((numstr.charAt(i) >= "0") && (numstr.charAt(i) <= "9") || 
				(numstr.charAt(i) == "-") || (numstr.charAt(i) == "."))) {
			//alert ('entre')
       	isValid = false;
       	break;
		} else if ((numstr.charAt(i) == "-" && i != 0) ||
				(numstr.charAt(i) == "." && numstr.length == 1) ||
			  (numstr.charAt(i) == "." && decCount > 1)) {
		//alert ('entre1')
      	isValid = false;
       	break;
      }         	         	       
   } // END for   
   	return isValid;
}  // end IsNum

function DiffDays(S2, S1) {
 var X = ReadISO8601date(S2) ; if (X<0) return "Date 1 bad"
 var Y = ReadISO8601date(S1) ; if (Y<0) return "Date 2 bad"
 return (Date.UTC(X[0], X[1]-1, X[2])-Date.UTC(Y[0], Y[1]-1, Y[2]))/86400000
 }
 
function valida_fecha(planilla) {
var time = new Date()
 dia1 = time.getDate()
 if (dia1 < 10) dia1='0'+dia1
 mes1 = time.getMonth()
 mes1 = mes1+1
 mesx=mes1
 if (mes1 < 10) mes1='0'+mes1
 ano1 = time.getFullYear()
 cadena = ano1+'-'+mes1+'-'+dia1
 cadena2=eval("document.forms."+planilla+".fecha.value")
 alert (cadena+" y "+cadena2)
var cadena2=''
 if (cadena2 == '') {
	 alert ("Por favor entre un valor para la fecha");
	 return false
 }
 resta = DiffDays(cadena2, cadena)
alert ('Valor de la resta:' + resta)
if (resta >= 0) {
alert ('Fecha no válida, solamente puede seleccionar la fecha o anterior')
return false
} else return true

}
  function calendarCallback(date, month, year)
  {
   if (date < 10 ) date= "0" + date;
   if (month < 10) month="0" + month;
   date = year + '-' + month + '-' + date;
   document.general.fechai.value = date;
   document.general.fecha.value = date;
   }
   
function EsFecha(oTxt) {
	var bOk = true;
	var fecha = Trim(oTxt);
	if ((fecha == "") || (fecha == "00/00/0000") || (fecha == "00-00-0000")) {bOk = true;}
	else if (fecha.length != 10) {bOk = false;}
	else 
	{
		// Validar el año
        var cAno = fecha.substr(6, 4);
        var nAno = parseInt(fecha.substr(6, 4), 10);		
        for (var i = 0; i < cAno.length; i++)
          bOk = bOk && esDigito(cAno.charAt(i));
		// Validar el mes
        var nMes = parseInt(fecha.substr(3, 2), 10);
        bOk = bOk && ((nMes >= 1) && (nMes <= 12));
        // Ultimo dia del mes
		nRes = new Array(13); 
		nRes[1] = 31;
        if ((nAno%4)==0) 
		  {nRes[2] = 29;} 
		else 
		  {nRes[2] = 28;}
        nRes[3] = 31;
        nRes[4] = 30;
        nRes[5] = 31;
        nRes[6] = 30;
        nRes[7] = 31;
        nRes[8] = 31;
        nRes[9] = 30;
        nRes[10] = 31;
        nRes[11] = 30;
        nRes[12] = 31;
        // Validar el dia
		var nDia = parseInt(fecha.substr(0, 2), 10);
        bOk = bOk && ((nDia >= 1) && (nDia <= nRes[nMes]));
		// Validar el separador
		bOk = bOk && ((fecha.charAt(2) == "-") || (fecha.charAt(2) == "/"));
        bOk = bOk && ((fecha.charAt(5) == "-") || (fecha.charAt(5) == "/"));
	}
return bOk;
}


// -->