  function getText(valor, lista_disponibles){
  // Devuelve la descripcion del elemento de la lista cuyo valor sea igual al parametro valor
	for (var i=0; i < lista_disponibles.options.length; i++){
		if (lista_disponibles.options[i].value == valor)
			return lista_disponibles.options[i].text;
	}
  }

  function cpSelected(lista_disponibles, lista_seleccionados){             
  // Copia los elementos seleccionados de una lista a otra
	for (var i=0; i < lista_disponibles.options.length; i++){
		if (lista_disponibles.options[i].selected)
			lista_seleccionados.options[lista_seleccionados.length] = new Option(lista_disponibles.options[i].text, lista_disponibles.options[i].value);
	}
	return void(0);      
  }

  function rmElemento(lista){
  //Borra el elemento seleccionado de la lista
	for (var i=0; i < lista.options.length; i++){
		if (lista.options[i].selected)
			lista.options[i] = null;
	}
	return void(0);
  }

  function rmLista(lista){
	lista.options.length = 0;
  }


  function rmLista(lista){
  // Borrar toda una lista
	while (lista.options.length >=1 ){
		lista.options[0] = null;
	}
	return void(0);
  }

  function rmListaMala(lista){
  // Borrar toda una lista
	while (lista.options.length >=1 ){
		lista.options[0] = null;
	}
	return void(0);
  }
  
  function getPos(lista, valor){             
  // Selecciona el elemento de la lista cuyo value coincida con el parámetro valor 
	var pos = -1;
	for (var i=0; i < lista.options.length; i++){
		if (lista.options[i].value == valor) {
			pos = i;
			break;
		}
	}
	return pos;      
  }

  function selectByValor(lista, valor){             
  // Selecciona el elemento de la lista cuyo value coincida con el parámetro valor 

	for (var i=0; i < lista.options.length; i++){
		if (lista.options[i].value == valor) {
			lista.options[i].selected = true;
			break;
		}
	}
	return void(0);      
  }

  function selectRadioByValor(lista, valor){             
  // Selecciona el elemento de la lista de radiobutton cuyo value coincida con el parámetro valor 
	for (var i=0; i < lista.length; i++){
		//alert(lista.options[i].value);
		if (lista[i].value == valor) {
			lista[i].click();
			break;
		}
	}
	return void(0);      
  }

  function getTextRadioButton( elemRadio ){
  	var texto_sel = "";
	for ( i = 0; i < elemRadio.length; i++){
		if ( elemRadio[i].checked ) {
			texto_sel = elemRadio[i].value;
			break;
		}
	}
	if (texto_sel == "" && elemRadio.value != null) texto_sel = elemRadio.value;
	return texto_sel;
  }
  
  function selectRadioByValor(lista, valor){             
  // Selecciona el elemento de la lista de radiobutton cuyo value coincida con el parámetro valor 

	for (var i=0; i < lista.length; i++){
		if (lista[i].value == valor) {
			lista[i].click();
			break;
		}
	}
	return void(0);      
  }

  function selectRadioButton( elemRadio, campoSel ){
	for ( i = 0; i < elemRadio.length; i++){
		if ( elemRadio[i].checked ) {
			campoSel.value = elemRadio[i].value;
			break;
		}
	}
	return void(0);
  }
  
function emailCheck (emailStr) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	
	/* Begin with the coarse pattern to simply break up user@domain into
	   different pieces that are easy to analyze. */
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
		alert("La dirección e-mail parece ser incorrecta (compruebe los caracteres @ y .)")
		return false;
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	
	// See if "user" is valid 
	if (user.match(userPat)==null) {
		// user is not valid
		alert("El nombre de usuario parece no ser correcto.")
		return false;
	}
	
	/* if the e-mail address is at an IP address (as opposed to a symbolic
	   host name) make sure the IP address is valid. */
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		// this is an IP address
		  for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				alert("Direccion IP no valida!")
			return false;
			}
		}
		return true;
	}
	
	// Domain is symbolic name
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		alert("El nombre de dominio parece no ser correcto.")
		return false;
	}
	
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || 
		domArr[domArr.length-1].length>4) {
	   // the address must end in a two letter or three letter word.
	   alert("La dirección de correo debe acabar en 3 ó 4 letras de dominio o 2 de un país.")
	   return false
	}
	
	// Make sure there's a host name preceding the domain.
	if (len<2) {
	   var errStr="Esta dirección es desconocida como IP!"
	   alert(errStr)
	   return false
	}
	
	// If we've gotten this far, everything's valid!
	//alert('La direccion de e-mail introducida parace correcta. Gracias');
	return true;
}

function isNumberKey(evt)
{
	var charCode = (evt.which) ? evt.which : event.keyCode
	
	if (charCode > 31 && (charCode < 48 || charCode > 57))
		return false;
	
	return true;
}

function subDomain(url) { 
	// IF THERE, REMOVE WHITE SPACE FROM BOTH ENDS
	url = url.replace(new RegExp(/^\s+/),""); // START
	url = url.replace(new RegExp(/\s+$/),""); // END

	// IF FOUND, CONVERT BACK SLASHES TO FORWARD SLASHES
	url = url.replace(new RegExp(/\\/g),"/");

	// CHECK TO SEE IF THERE IS A DOT '.' LEFT IN THE STRING
	//var valida = (url.match(new RegExp(/\./g))) ? true : false;
	
	url_str = "((ht|f)tps?://[^[:blank:]\r\n]+)";
	//var valida =  (url.match(url_str))?true:false;

	var valida = (url.match(domainPat))?true:false;
	/*if (valida==null) {
		alert("El nombre de dominio parece no ser correcto.")
		return false;
	}*/

	return(valida); 
}

function isUrl(s) {
	var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
	return regexp.test(s);
}



