/* FUNCIONES INCLUIDAS:
 - - - - - - - - - - - - - - - - - - - - -
 * isEmpty -> Para comprobar si un string esta vacio
 -
 * IsChecked -> Para comprobar si un campo de tipo check de un solo valor esta marcado
 -
 * dameTextSelect-> devuelve el texto seleccionado de un campo tipo  select
 -
 * dameValorSelect -> devuelve el valor seleccionado en un campo tipo select
 -
 * ClearItems ->  Inicializa un control de lista desplegable
 -
 * validarFecha -> Valida una fecha en formato dd/mm/aaaa
 -
 * abrir_url -> Abre una url en una nueva ventana
 -
 * aniadir_valor_select -> añade una opción a un campo de tipo select
 -
 * eliminar_valor_select -> elimina las opciones seleccionadas de un campo de tipo select
 -
 * aniadir_valor_input -> añade el valor un campo de tipo text a un campo select
 -
 * select_all -> marca todas las opciones de un select como seleccionadas
 -
 * dameValorCheck -> devuelve el valor seleccionado de un check o vacio si no se ha seleccionado ninguno
 -
 * valores_checkeados -> devuelve los valores chequeados de un check separados por comas o vacio si no se ha marcado ninguno
 -
 * num_checkeados -> devuelve el numero de valores chequeados para un campo tipo check
 -
 * abrir_popup -> Abre una ventana si menus
 -
 * Trim -> Elimina espacios en blanco al principio y al final de una cadena de texto
 -
 * Apilar ->
 -
 * Volver ->
 - - - - - - - - - - - - - - - - - - - - - -
*/

<!--
//-->
/* FUNCION: validarFecha
 * Parametros:
 *	 campo - campo de tipo text que contiene la fecha a validar
 *	 mostraralerta
 * Descripción:
 * 	 Indica si una fecha es correcta. Deberá esta en formato dd/mm/aaaa
*/
function validarFecha(campo, mostraralerta) {
	
if (campo.value == ''){
	return true	
};



error="NO";
var nMes = parseInt(campo.value.substr(3, 2), 10);
var nAno = parseInt(campo.value.substr(6,4), 10);
var nDia = parseInt(campo.value.substr(0,2), 10);

//calculamos el numero maximo de dias del mes:
var nRes = 0;
switch (nMes){
     case 1: nRes = 31; break;
     case 2: nRes = 28; break; //si el año es bisiesto luego se le suma uno.
     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;
}
//numero maximo de dias si el año es bisiesto
if ((nMes == 2) && (nAno % 4) == 0){
	nRes=nRes + 1;
}

//primero comprobamos que los caracteres sean numerico y dentro de los parametros indicados:
if (!(campo.value.match("[0123][0123456789][/][01][0123456789][/][012][0123456789][0123456789][0123456789]"))){
	error="SI";
}

//comprobamos que el mes no sea mayor de 12
if (nMes>12){
	error="SI";
}
//comprobamos que el dia no sea mayor de del número de dias que puede tener el mes
if (nDia>nRes){
	error="SI";
}

//mostramos el mensaje si la fecha introducida no es correcta
if (error=="SI"){	
	if (mostraralerta){
		alert ( "La fecha introducida: " + campo.value + " no es válida.\nDebe introducirla en formato dd/mm/aaaa ");
		campo.value="";
		campo.focus();
		return true
	}else{
		return false
	}
}else{
	return true
}
}



/* FUNCION: isEmpty
 * Parametros:
 *    cadena de texto
 * Descripción:
 *	 devuelve true si la cadena pasada esta vacia
 *	 ignora espacios en blanco
*/
function isEmpty(s) {
	return !Boolean(s.replace(/^\s*|\s*$/g, "").length);
}
/* FUNCION: IsChecked
 * Parametros:
 *    campo de tipo check
 * Descripción:
 *	 devuelve true si el campo que le pasamos esta marcado
*/
function IsChecked(check) 
{ 
	if (check.checked){
     return "si"
  }else{
     return "no"
  } 
}

/* FUNCION: dameValorSelect
 * Parametros:
 *	 field - campo de tipo select cuyo valor se quiere obtener
 * Descripción:
 * 	 Obtiene el valor seleccionado de un campo de tipo SELECT de un formulario
 *	 si no se ha seleccionado ningun valor devuelve una cadena vacia
*/
function dameValorSelect(field){
	var i = field.selectedIndex;
 	if (i == -1)   return "";
  else   return (field.options[i].value == "") ? "": field.options[i].value;
}	


/* FUNCION: dameTextSelect
 * Parametros:
 *	 field - campo de tipo select cuyo valor se quiere obtener
 * Descripción:
 * 	 Obtiene el valor seleccionado de un campo de tipo SELECT de un formulario
 *	 si no se ha seleccionado ningun valor devuelve una cadena vacia
*/
function dameTextSelect(field){
	var i = field.selectedIndex;
  if (i == -1)   return "";
  else   return field.options[i].text;
}	


/* FUNCION: ClearItems
 * Parametros:
 *	 control - campo de tipo select
 * Descripción:
 * 	 Inicializa un control de lista desplegable
*/
function ClearItems( control ){
  for (var i=0; i < control.options.length; i++){
   	control.options[i] = null;
    }
  control.options.length = 0;
}


/* FUNCION: abrir_url
 * Parametros:
 *	 enlace - enlace a abrir
 * Descripción:
 * 	 abre el enlace que contiene como valor el campo que le pasamos
*/
function abrir_url(enlace){
	if ((enlace == '') || (enlace == 'http://')){
		alert('Debe indicar una url valida');
	}else{
		if (enlace.substring(0,7) != 'http://'){
			enlace = 'http://' + enlace;
			window.open(enlace);
		}else{
			window.open(enlace);
		}
	}	
}

/* FUNCION: aniadir_valor_select
 * Parametros:
 *	 selectlista - campo de tipo select con el valor a añadir
 *	 selectdestino - campo de tipo select donde añadiremos la opción
 * Descripción:
 * 	 -
*/
function aniadir_valor_select(selectlista,selectdestino){
	
	var nuevovalor = dameValorSelect(selectlista);
	var nuevotext = dameTextSelect(selectlista);
	
	if (nuevovalor!=''){
		var i = selectdestino.options.length;
		var existe = false;
		for(var j=0; j < i; j++){
			if (selectdestino.options[j].value==nuevovalor){
				existe = true;
			}
		}
	}else{
		existe = true;
	}
	if(!existe){
		selectdestino.options[i]= new Option (Trim(nuevotext), Trim(nuevovalor));
	}
	selectlista.selectedIndex = "";
	
}


/* FUNCION: eliminar_valor_select
 * Parametros:
 *	 fieldselect - campo de tipo select del que se va eliminar una opcion
 * Descripción:
 * 	 elimina las opciones seleccionadas de un campo de tipo select
*/
function eliminar_valor_select(fieldselect){
	
	var i = fieldselect.length;
	for (var j=0;j<i;j++){
		if (fieldselect.options[j].selected == true){
			fieldselect.options[j] = null;
			i -= 1;
			j -= 1;
		}
	}
}

/* FUNCION: aniadir_valor_input
 * Parametros:
 *	 intput- campo de tipo select con el valor a añadir
 *	 selectdestino - campo de tipo select donde añadiremos la opción
 * Descripción:
 * 	 añade el valor un campo de tipo text a un campo select
*/
function aniadir_nueva_empresa(field,selectdestino){
	
	var nuevotext=field.value;
	var i = selectdestino.options.length;
	var existe = false;
	
	if (!isEmpty(nuevotext)){
		for(var j=0; j < i; j++){
			if (selectdestino.options[j].text==nuevotext){
				existe = true;
			}
		}
		nuevovalue = '-=' + nuevotext;
		if(!existe){
			selectdestino.options[i]= new Option (Trim(nuevotext), Trim(nuevovalue));
		}
		field.value = "";
	}
}


/* FUNCION: select_all
 * Parametros:
 *	 field - campo de tipo select 
 * Descripción:
 * 	 marca todas las opciones de un select como seleccionadas
*/
function select_all(field){
	var numvalores = field.length;
	for (i=0;i<numvalores;i++){
		field[i].selected = true;
	}
}


/* FUNCION: dameValorCheck
 * Parametros:
 *	 check - campo de tipo radio
 * Descripción:
 * 	 devuelve el valor seleccionado de un check o vacio si no se ha seleccionado ninguno
*/
function dameValorCheck(check){ 
	var index;
	var chequeado;

	valor = '';
  for (index = 0; index < check.length; ++index){ 
  	if (check[index].checked == true){	
    	valor = check[index].value;
    } 
	} 
	return valor	
}
 

/* FUNCION: valores_checkeados
 * Parametros:
 *	 check - campo de tipo checked
 * Descripción:
 * 	 devuelve los valores chequeados de un check separados por comas 
 *   o vacio si no se ha marcado ninguno
*/
function valores_checkeados(check) { 
	var index;
	var chequedados;
	
	chequedados = '';
  inicio=true; 
   
	//-->Check de varias opciones
  if (check[0]){ 
 	 for (index = 0; index < check.length; ++index) { 
			if (check[index].checked == true){	
				if (inicio){
					chequedados += check[index].value;
					inicio = false; 
				}else{
	    		chequedados += ',' + check[index].value;
    		}
    	} 
		} 
	//-->Check de una sola opción
	}else{
	  if (check.checked){
    	chequedados = check.value;
  	}
 	}	 
 return chequedados
} 



/* FUNCION: num_checkeados
 * Parametros:
 *	 check - campo de tipo checked
 * Descripción:
 * 	 devuelve el numero de valores chequeados para un campo tipo check
*/
function num_checkeados(check) { 
	var index;
	var num = 0;
   
	//-->Check de varias opciones
  if (check[0]){ 
 	 for (index = 0; index < check.length; ++index) { 
			if (check[index].checked == true){
					num += 1;
    	} 
		} 
	//-->Check de una sola opción
	}else{
	  if (check.checked){
    	num += 1;
  	}
 	}	 
 return num
} 

/* FUNCION: num_opciones_select
 * Parametros:
 *	 fieldselect - campo de tipo select
 * Descripción:
 * 	 devuelve el numero de opciones que tiene un campo select
*/
function num_opciones_select(fieldselect){
	var i = fieldselect.length;
	return i;
}


function abrir_popup(url, ancho, alto) {
	izquierda = (screen.width) ? (screen.width-ancho)/2 : 100;
	arriba = (screen.height) ? (screen.height-alto)/2 : 100;
	opciones = 'toolbar=0, titlebar=NO, location=0,directories=0,status=0,menubar=0,scrollbars=1, resizable=1,width=' + ancho + ',height=' + alto + ',left=' + izquierda + ',top=' + arriba + '';
  window.open(url, 'popup', opciones);
}

function LTrim(s){
	// Devuelve una cadena sin los espacios del principio
	var i=0;
	var j=0;
	
	s = s.replace("&nbsp;", "");
	// Busca el primer caracter <> de un espacio
	for(i=0; i<=s.length-1; i++)
		if(s[i] != ' '){
			j=i;
			break;
		}
	return s.substring(j, s.length);
}
function RTrim(s){
	// Quita los espacios en blanco del final de la cadena
	var j=0;
	
	s = s.replace("&nbsp;", "");
	// Busca el último caracter <> de un espacio
	for(var i=s.length-1; i>-1; i--)
		if(s[i] != ' '){
			j=i;
			break;
		}
	return s.substring(0, j+1);
}
function Trim(s){
	// Quita los espacios del principio y del final
	return LTrim(RTrim(s));
}


function Apilar (){
	top.superior.document.fnavegacion.Ret.value = location.href;
}

function Volver(){
	if(top.superior.document.fnavegacion.Ret.value == ''){
		top.contenido.location.href = '/admin/convenios/listado.php';
	}else{
		top.contenido.location.href = top.superior.document.fnavegacion.Ret.value;
	}
}


//-->
