function trim(str) {
	return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}

function compruebaFormulario(frm) {
	
    // Comprobamos los campos
        
    // Precio
    var precio = frm.elements['PrecioHasta'];    
    
    if (precio) {
    
        var p = trim(precio.value); 
        p = p.replace(/,/, '.');
        
        if (p != '' && ((parseFloat(p) != p) || (p <= 0))) {
            alert('El precio máximo seleccionado no es válido(' + precio.value + ')');        
            precio.focus();
            return false;
        }
        
    }
    
    // Fechas
    var fechaDesde = frm.elements['FechaDesde'];
    var fechaHasta = frm.elements['FechaHasta'];
    
    if (fechaDesde && fechaHasta) {    
    
    	// Fecha de entrada        
    	if (!fechaDesde.value.match(/^\s*(\d{1,2}[\/\-\.]){2}(\d\d){1,2}\s*$/)) {
	        alert('La fecha de entrada no es correcta.');
            fechaDesde.focus();
            return false;    	        	
        }
        
        var fd = fechaDesde.value.split(/[\/\-\.]+/);   
        fd[2] = parseInt(fd[2], 10);
        if (fd[2] < 100) fd[2] = 2000 + parseInt(fd[2]);
        fd = new Date(fd[2], fd[1] - 1, fd[0]);
        
		var h = new Date();
        h.setHours(0,0,0,0);
        h.setDate(h.getDate() + 2);                
        
        if (fd < h) {
        	alert('La fecha de entrada no es correcta.');
            fechaDesde.focus();
            return false;
        }
        
        // Fecha de salida
    	if (!fechaHasta.value.match(/^\s*(\d{1,2}[\/\-\.]){2}(\d\d){1,2}\s*$/)) {
	        alert('La fecha de salida no es correcta.');
            fechaHasta.focus();
            return false;    	        	
        }
        
        var fh = fechaHasta.value.split(/[\/\-\.]+/);     
        fh[2] = parseInt(fh[2], 10);   
        if (fh[2] < 100) fh[2] = 2000 + parseInt(fh[2]);
        fh = new Date(fh[2], fh[1] - 1, fh[0]);
        
		
        if (fh <= fd) {
        	alert('La fecha de salida no es correcta.');
            fechaHasta.focus();
            return false;
        }
        
    }
            
    return true;

}

comprueba_fechas = function(frm, fd) {
    	
	
    fd = parseDate(fd || frm.elements['FechaDesde'].value);
    
	var ofh = frm.elements['FechaHasta'];
	var ofd = frm.elements['FechaDesde'];
	
	var fh = parseDate(ofh.value);
       
	   
	
	if (fd) {
				
		var dema = (new Date()).add('d', 2);	
		
		if (fd.getTime() < dema) {
			ofd.value = dema.format(this.format);
		}
		
		var dema = fd.add('d', 1);
		
		if (!fh || (dema.getTime() >= fh.getTime())) {
			ofh.value = dema.format(this.format);
		}
	}
    
}
