	function trim( str )
	{
	   return str.replace( /^\s*|\s*$/g, "" );
	}
	
	function sinSaltosLinea( str )
	{
	    str = str.replace(/\t/g,"");
	    str = str.replace(/\n/g,"<br>");
	   return str.replace(/\r/g,"");
	 
	}
	
	// funcion que controla la cadena para cortar en caso de que existan palabras grandes 
	function controlLinea (cadena,tamanioLinea) {
		var palabras = cadena.split(" ");
		
		// ya tengo las palabras ahora me las recorro y voy creando una nueva cadena
		var cadenaResultado = '';
		var tamanioActual = 0;
		for (var i=0;i< palabras.length;i++) {
			 if (palabras[i] == '\n') {
				tamanioActual = 0;
				cadenaResultado += '\n';
			 }
			 else {	
				 if ((palabras [i].length + tamanioActual) > tamanioLinea) {
				 
						// la supera la linea por lo que cortamos la palabra cuantas veces haga falta
						var sobrepaso = palabras [i].length - tamanioLinea;
						
						// trato la palabra actual
						// hasta que llege al final de la palabra, lo corto y lo pongo
						cadenaResultado += palabras[i].substring(0,tamanioLinea - tamanioActual);
						cadenaResultado += '\n';
						
						palabras[i] = palabras[i].substring(tamanioLinea - tamanioActual,palabras[i].length);
						tamanioActual = 0;
						// ya tengo lo que resta de la palabra que tengo que ir a?adiendo en trozos a la cadena
						var numeroLineasContenidas = Math.floor(palabras [i].length / tamanioLinea);
						
		
						for (var j=0;j<= numeroLineasContenidas ; j++) {
							// tenemos una linea ya que entra
							
		
							if (palabras [i].length <= tamanioLinea) {
								cadenaResultado += palabras [i];
								cadenaResultado += ' ';
								tamanioActual += palabras [i].length + 1;
								palabras [i] = '';
								
							} else {
								cadenaResultado += palabras [i].substring(0,tamanioLinea);
								cadenaResultado += '\n';
								palabras [i] = palabras [i].substring(tamanioLinea,palabras [i].length);
								tamanioActual = 0;
							}
						}
						
						
					}else {
						// no ha superado el total de la linea
						cadenaResultado += palabras [i] + " ";
						tamanioActual += palabras [i].length + 1;
						
					} 
				}
		}	 
		return cadenaResultado;
	}
	
	
	function sinComillas( str )
	{
		str = str.replace (/\"/g,"'");
		return str;
	}
	
	function sinComillasSimples( str )
	{
		str = str.replace (/\'/g,'"');
		return str;
	}
	
	function sinSaltosLineaABlancos( str )
	{
	    str = str.replace(/\t/g," ");
	    str = str.replace(/\n/g," ");
	   return str.replace(/\r/g," ");
	}
	
	function borrarBlancos( str )
	{
	  return str.replace(/\s/g,"");
	}

	function checkEMail( email )
	{
		if ( /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test( email ) )
			return true;
		else
			return false;
	}

	function onlyLettersAndNumbers( string )
	{
		chars = string.toString();
		
		for ( var i = 0; i < chars.length; i++ )
		{
			var char = chars.charAt( i );
			
			if ( ( char < "0" ) ||
			     ( char > "9" && char < "A" ) ||
			     ( char > "Z" && char < "a" ) ||
			     ( char > "z" ) )
				return false;
		}
		
		return true;
	}
	
	function checkFloat( value )
	{
		if ( value == '' ) return false;
		
		rExp = /,/g;
		
		newValue = new String( value );
		value = newValue.replace( rExp, "." );
		
		if ( isNaN( value ) || ( isNaN( parseFloat( value ) ) ) )
		{
			return false;
		}
		
		return true;
	}

	function checkValidImageExtension( value )
	{
		var extension = value.substring( value.length - 3, value.length );
		
		extension = extension.toLowerCase();
		
		if ( extension == 'jpg' || extension == 'gif' || extension == 'png' )
		{
			return true;
		}
		else
		{
			alert( 'S?lo se admiten im?genes en formato GIF, JPG y PNG' );
			return false;
		}
	}
	
	function noCommas( control )
	{
		control.value = control.value.replace(/,/, '.');
	}
	
	
	//Campo numerico que no contenga un .
	function chkEntero(campo){
	if (!isNaN(campo.value)) {
		// es un numero 
		var numero = campo.value;
		if (numero.indexOf(".") != -1) {
			alert("Debe introducir un numero entero");
			campo.focus();
			campo.blur();
			campo.select();
			return false;
		}else{
			return true;
	}
  } else {
  	return false;
  		}
	}
	
	
	function getW(){
	var w;
		if(document.innerWidth){ w=document.innerWidth;
		} else if(document.documentElement.clientWidth){ w=document.documentElement.clientWidth;
		} else if(document.body){ w=document.body.clientWidth; }
		return w;
	}
	
	function getH(){
		var h;
		if(document.innerHeight){ h=document.innerHeight;
		} else if(document.documentElement.clientHeight){ h=document.documentElement.clientHeight;
		} else if(document.body){ h=document.body.clientHeight; }
		return h;
	}
	
	// funcion que comprueba que una variable esta definida o no
	function isdefined( variable)
	{
		    return (typeof(window[variable]) == "undefined")?  false: true;	
	}
	
   // funcion para usar una imagen mientras cargamos cosas de ajax
	function useLoadingImage(imageSrc) {
  		var loadingImage;
		  if (imageSrc) loadingImage = imageSrc;
		  else loadingImage = "images/ajax-loader.gif";
			dwr.engine.setPreHook(function() {
		      var disabledImageZone = dwr.util.byId('disabledImageZone');
	      if (!disabledImageZone) {
    	  disabledImageZone = document.createElement('div');
	      disabledImageZone.setAttribute('id', 'disabledImageZone');
	      disabledImageZone.style.position = "absolute";
    	  disabledImageZone.style.zIndex = "1000";
	      disabledImageZone.style.left = "0px";
    	  disabledImageZone.style.top = "0px";
	      disabledImageZone.style.width = "100%";
    	  disabledImageZone.style.height = "100%";
    	  // disabledImageZone.style.background = "red";
    	  
	      var imageZone = document.createElement('img');
    	  imageZone.setAttribute('id','imageZone');
	      imageZone.setAttribute('src',imageSrc);
    	  imageZone.style.position = "absolute";
	      imageZone.style.top = "0px";
	      imageZone.style.right = "0px";
    	  disabledImageZone.appendChild(imageZone);
	      document.body.appendChild(disabledImageZone);
       }
       else {
	      dwr.util.byId('imageZone').src = imageSrc;
    	  disabledImageZone.style.visibility = 'visible';
	   }
  	});
  	
  	dwr.engine.setPostHook(function() {
    dwr.util.byId('disabledImageZone').style.visibility = 'hidden';
  	});
   }
   
   function init() {
   		// useLoadingMessage('Cargando');
   		useLoadingImage("images/ajax-loader.gif");
   }
   
   
   function getUrlEncode (path) {
   		var urlDecodificada = unescape(path);
   		var rutaCodificada = '';
   		urlDecodificada = urlDecodificada.substring(7,urlDecodificada.length);
   		rutaCodificada = 'http://'+ escape(urlDecodificada);
   		return rutaCodificada;
   }
   
   
   
	
	
