var ventana=null;
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑ";
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyzáéíóúñü";
function abrirVentanaEmergente()
{
       
       var args=abrirVentanaEmergente.arguments;
       
	if(args.length==0){
	ventana=window.open('');
	}else if(args.length==1){
		ventana=window.open(args[0]);
	}else if(args.length==2){
		ventana=window.open(args[0],args[1]);
	}else if(args.length==3){
               ventana=window.open(args[0],args[1],args[2]);
        }
	chequearVentanaCerrada();
}
function chequearVentanaCerrada()
{
	if(window.closed)
		ventana=null;
	else
		setTimeout('chequearVentanaCerrada()','3000');
}

function esNumero(numStr)
{
	num = parseInt(numStr);
	//alert(numStr);
	if (isNaN(num))
	{
		//alert('Formato numérico no válido en '+numStr);
		return false;
	}
	else
	{
		return true;
	}
}
function esPlaca(placaStr){

	var pla0=/^[A-Z][A-Z][A-Z][0-9][0-9][0-9]$/;
	var pla1=/^[A-Z][A-Z][0-9][0-9][0-9][0-9]$/;
	var pla2=/^[A-Z][0-9][0-9][0-9][0-9][0-9]$/;
	var pla3=/^[A-Z][A-Z][A-Z][0-9][0-9]$/;
	var pla4=/^[A-Z][A-Z][0-9][0-9][0-9]$/;
	var pla5=/^[0-9][0-9][0-9][0-9][0-9]$/;
	var pla6=/^[0-9][0-9][0-9][0-9]$/;
	var pla7=/^[A-Z][A-Z][A-Z][0-9][0-9][A-Z]$/;
	var pla8=/^[0-9][0-9][0-9][A-Z]$/;
	var pla9=/^[0-9][0-9][0-9][0-9][0-9][0-9][0-9]$/;
	var pla10=/^[0-9][0-9][0-9][A-Z][A-Z]$/;
	var pla11=/^[S][I][N]$/;

  placaStr=placaStr.toUpperCase();
  
  var m= placaStr.match(pla0);
  //alert(placaStr+"..."+m)
  if (m==null)
		m= placaStr.match(pla1);
  if (m==null)
		m= placaStr.match(pla2);
  if (m==null)
		m= placaStr.match(pla3);
  if (m==null)
		m= placaStr.match(pla4);
  if (m==null)
		m= placaStr.match(pla5);
  if (m==null)
		m= placaStr.match(pla6);
  if (m==null)
		m= placaStr.match(pla7);
  if (m==null)
		m= placaStr.match(pla8);
  if (m==null)
		m= placaStr.match(pla9);
  if (m==null)
		m= placaStr.match(pla10);
   if (m==null)
		m= placaStr.match(pla11);

  if ((m == null) || (!placaStr) || (placaStr=""))
	{
		//alert("Formato de placa no válido")
		return false;
	}
  else
		return true;
}
function esFecha(dateStr) {
// Checks for the following valid date formats:
// MM/DD/YY   MM/DD/YYYY	MM-DD-YY   MM-DD-YYYY
// Also separates date into month, day, and year variables
 

//var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;

 //To require a 4 digit year entry, use this line instead:
 var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;

var matchArray = dateStr.match(datePat); // is the format ok?
if (matchArray == null) {
    alert("La fecha no esta en un formato válido.")
    return false;
}
month = matchArray[3]; // parse date into variables
day = matchArray[1];
year = matchArray[4];
if (month < 1 || month > 12) { // check month range
    alert("El mes debe estar entre 1 y 12.");
    return false;
}
if (day < 1 || day > 31) {
    alert("El día debe estar entre 1 y 31.");
    return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
    alert("El mes "+month+" no tiene 31 dias!")
    return false
}
if (month == 2) { // check for february 29th
    //alert("Estoy en febrero")
    var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
    if (day>29 || (day==29 && !isleap)) {
        alert("Febrero " + year + " no tiene " + day + " dias!");
        return false;
	}
}
    return true;  // date is valid
}

function esHora(timeStr) {

        //alert("Hora"+ timeStr);
        var timePat = /^(\d{1,2})(:)(\d{1,2})/;

	var matchArray = timeStr.match(timePat); // is the format ok?
	if (matchArray == null) {
		alert("La hora no esta en un formato válido.");
		return false;
	}
	minutos = matchArray[3]; // parse date into variables
	horas = matchArray[1];

	if (horas < 0 || horas > 23){ // check horas range
		alert("La hora debe estar entre 0 y 23.");
		return false;
	}
	if (minutos < 0 || minutos > 59){
		alert("Los minutos deben estar entre 0 y 59.");
		return false;
	}
	return true;  // date is valid
}


function fechaMenor(f,h)
{
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
	var fechaa = f.match(datePat); 
	var hoy	  = h.match(datePat);  
	
		
	if(fechaa!=null)
	{
		month = parseInt(fechaa[3]); // parse date into variables
		day =   parseInt(fechaa[1]);
		year =  parseInt(fechaa[4]);
			 
		mh =	 parseInt(hoy[3]); // parse date into variables
		dh =	 parseInt(hoy[1]);
		yh =	 parseInt(hoy[4]);

		//alert(dh+"/"+mh+"/"+yh+"----"+day+"/"+month+"/"+year)
		if(year==yh)
		{
			if(month==mh)	
			{
				if(day>dh) 
				{
					alert("Le fecha entrada debe ser menor a la de hoy")				  
					return false;
				}
			}
			else
			{
				if(month > mh) 
				{
					//alert("Error mes")
					return false;
				} 
			}

		}
		else
		{
			if(year>yh)
			{
				//alert("Error anno")
				return false;
			}
	}	  
  }
  return true
 }
 
 function toDate(fecini, Fecfin)
{
var FEC;
FEC = split(Fecfin,"/");
var fechaFinal=new Date(parseInt(FEC[2],10),parseInt(parseInt(FEC[1],10)-1),parseInt(FEC[0],10));
uf=Date.parse(fechaFinal.toString());
FEC = split(fecini,"/");
var fechaInicial=new Date(parseInt(FEC[2],10),parseInt(parseInt(FEC[1],10)-1),parseInt(FEC[0],10));
fi=Date.parse(fechaInicial.toString());
if (fi>uf)
{
  alert ('La fecha no puede ser mayor a hoy');
  return false;
}
else{
 return true;
 
}

  
}

function split(source,separator)
{
var oldOffset,newOffset,i;
temp = new Array;
source = source+""
for (i = 0,oldOffset = 0; oldOffset < source.length; ++i)
{
newOffset = source.indexOf(separator, oldOffset)
if (newOffset == -1)
newOffset = source.length
temp[i] = source.substring(oldOffset, newOffset)
oldOffset = newOffset + 1
}
return temp
}

function EstaVacio(Dato){
  for (var i=0;i<Dato.length;i++){
    if (Dato.substring(i,i+1)!= " ")
    	return(false);
    }
  	return(true)
}

function menu(d){
	d.action="/quipux/menu/Menu.jsp";
	d.target="contenido";
}

// c es una letra del alfabeto espanol
function isLetter(c)  
{
    return( ( uppercaseLetters.indexOf( c ) != -1 ) ||
            ( lowercaseLetters.indexOf( c ) != -1 ) )
}

// c es un digito
function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

// s tiene solo numeros
function isNumber(s,objeto)
{   
    var i;
    var cadena="";
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if ( isDigit(c) ){
            cadena+=c;
        }
        objeto.value=cadena;
    }
    
}
// s tiene solo letras y numeros
function isAlphanumeric (s,objeto)
{   
    var i;
    var cadena="";
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if ( (isLetter(c) || isDigit(c) ) ){
            cadena+=c;
        }
        objeto.value=cadena;
    }
    
}
