// JavaScript Document

var ie_6=( navigator.appVersion.toLowerCase().indexOf('msie 6')!=-1 );	
var ie_7=( navigator.appVersion.toLowerCase().indexOf('msie 7')!=-1 );
var mozilla=( navigator.appVersion.toLowerCase().indexOf('msie')==-1 );
var ie = !mozilla;


var descripcion_cargar;
var imagen_cargar;

var id_intervalo_scrol = 0;
var velocidad_scrol = 14;
var tiempo_scrol = 50;
var scrolable;


if ( ie ){
	document.onmousewheel = rueda;
} else {
	window.addEventListener('DOMMouseScroll', rueda, false); 
}

window.onload=function(){ detecta_scrol(); }
window.onunload = function(){
								if ( id_ventana_imagen ){
									id_ventana_imagen.close();
								}
							}

function rueda(evento) 
{ 
	  if (!evento){ evento = window.event;  }
	  if ( scrolable ){
		  var velocidad_scrol_rueda=velocidad_scrol*2;
		  scrol(0);
		  if ( evento.wheelDelta <= 0 || evento.detail > 0) { 
				mueve_scrol('contenido_texto','contenido',-1,velocidad_scrol_rueda);
		  } 
		  else { 
				mueve_scrol('contenido_texto','contenido',1,velocidad_scrol_rueda);
		  } 
	  }
} 

function navegacion_flash(nombre_seccion,indice_seccion,indice_sala){

	if ( nombre_seccion!='' ){	
		var separador='/';
		var seccion_actual=location.href.split(separador)[ location.href.split(separador).length-1 ];
		var condicion_sala=( seccion_actual.indexOf('index_sala')!=-1 );
		var destinos=new Array;
		destinos[0]=(indice_sala>0)?'index_sala.php':'index.php';
		destinos[1]='novas.php';
		destinos[2]='axenda.php';
		destinos[3]='fotoblog.php';
		destinos[4]=(indice_sala>0)?'contacto.php':'boletin.php';
		destinos[5]='foro.php';
		destinos[6]='contacto.php';
		destinos[7]='area_privada.php';	
		if ( destinos[indice_seccion-1]!=null ){
			location.assign( destinos[indice_seccion-1] );	
		}
		else{
			alert('Página aún sin definir ...  \n');
		}
	}
	
}

// Función de Flash

function contenido_flash(pelicula,nombre,ancho,alto,color_fondo,cadena_variables){
	 if ( isIE == null ) {
          alert('Esta página requiere el archivo AC_RunActiveContent.js');
     } else {
		 if ( pelicula!='' && ( ancho>0 && alto>0 ) ){
			 	
			  AC_FL_RunContent(
				  'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
				  'width', ancho,
				  'height', alto,
				  'src', pelicula,
				  'quality', 'high',
				  'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
				  'align', 'middle',
				  'play', 'true',
				  'loop', 'true',
				  'scale', 'showall',
				  'wmode', 'transparent',
				  'menu', 'false',
				  'devicefont', 'false',
				  'id', 'polaroid',
				  'bgcolor', color_fondo,
				  'name', nombre,
				  'menu', 'true',
				  'allowFullScreen', 'false',
				  'allowScriptAccess','always',
				  'movie', pelicula,
				  'salign', '',
				  'FlashVars',cadena_variables
			  ); 
		 }
    }
}


// Funciones para el scroll de capas

function detecta_scrol(){
	
	var destino=document.getElementById('contenido_texto');
	var contenedor=document.getElementById('contenido');
	var scroles=document.getElementById('scrol_texto');
	var visibilidad;
	
	destino.style.visibility='hidden';
	
	if ( ie ){
		destino.style.posTop=0;
	}
	else{
		destino.style.top='0px';
	}
	
	scrolable=( destino.scrollHeight > contenedor.clientHeight );

	if ( scrolable ){
		destino.style.width=(contenedor.clientWidth-scroles.clientWidth-12)+'px';
		visibilidad='visible';
		setTimeout('document.getElementById(\''+destino.id+'\').style.visibility=\'visible\';',500);
	}
	else{
		destino.style.width=(contenedor.clientWidth)+'px';
		destino.style.visibility='visible';
		visibilidad='hidden';		
	}
	scroles.style.visibility=visibilidad;
}

function scrol(sentido){

	var destino=document.getElementById('contenido_texto');
	var contenedor=document.getElementById('contenido');
	
	if ( sentido!=0 && id_intervalo_scrol==0 ){
		id_intervalo_scrol=setInterval('mueve_scrol(\''+destino.id+'\',\''+contenedor.id+'\','+sentido+','+velocidad_scrol+')',tiempo_scrol);
	}
	if ( sentido==0 ){
		clearInterval(id_intervalo_scrol);
		id_intervalo_scrol=0;
	}
}

function mueve_scrol(id_destino,id_contenedor,sentido,velocidad){
	
	var destino=document.getElementById(id_destino);
	var contenedor=document.getElementById(id_contenedor);
	var error_scrol=false;
	var altura_contenedor=contenedor.clientHeight;
	var posicion_y;

	if ( ie ){
		posicion_y=destino.style.posTop;
	}
	else{
		posicion_y=destino.style.top;
	}

	if ( isNaN(posicion_y) ){ posicion_y=Number(posicion_y.substring(0,posicion_y.length-2)); }
	if ( isNaN(altura_contenedor) ){ altura_contenedor=Number(altura_contenedor.substring(0,altura_contenedor.length-2)); }
	
	if ( sentido>0 && posicion_y>=0 ){
		error_scrol=true;
	}
	if ( sentido<0 &&  posicion_y<= (-destino.clientHeight+(altura_contenedor-50)) ){
		error_scrol=true;
	}
	
	if ( !error_scrol ){
		if ( sentido>0 && Math.abs(posicion_y)<sentido*velocidad ){
			posicion_y=0;
		}
		else{
			posicion_y+=(sentido*velocidad);
		}	
		if ( ie ){
			destino.style.posTop=posicion_y;
		}
		else{
			destino.style.top=posicion_y+'px';
		}

	}
	else{
		scrol(0);
	}
		
}

function comprueba_popup(){
		if( !window.opener ){
			location.assign('index.php');
		}
}

function ventana_imagen(imagen,descripcion){
	if ( imagen!='' ){
		imagen_cargar=imagen;
		descripcion_cargar=descripcion;
		ventana('foto.html','foto','20x20','');
	}
}

function ventana(direccion,nombre_ventana,resolucion_ventana,modo){
	if ( direccion!='' ){
		var ancho;
		var alto;
		var resolucion = ( resolucion_ventana!='' )?resolucion_ventana.toLowerCase():'min';
		var id_ventana;
		
		switch (resolucion){
			case 'alta':
				ancho=1024;alto=768;
			break
			case 'media':
				ancho=800;alto=600;
			break
			case 'baja':
				ancho=640;alto=480;
			break
			case 'min':
				ancho=400;alto=300;
			break	
					
		}
		if ( resolucion.indexOf('x')!=-1 ){
			ancho=Number(resolucion.split('x')[0]);
			alto=Number(resolucion.split('x')[1]);
		}
		if ( modo!=null ){
			id_ventana = window.open(direccion,nombre_ventana,'top=0,left=0,width='+ancho+',height='+alto+',location=no,toolbar=no,scrollbars=no,resizable=no,status=no,menubar=no');
		}
		else{
			id_ventana = window.open(direccion,nombre_ventana,'top=0,left=0,width='+ancho+',height='+alto+',location=no,toolbar=no,scrollbars=yes,resizable=yes,status=no,menubar=no');
		}
		
		return id_ventana;
		
	} else{
		return false;
	}
}


function cargar_ventana_imagen(imagen,descripcion){
	if ( imagen!='' ){
		imagen_cargar = imagen;
		descripcion_cargar = descripcion;
		if ( id_ventana_imagen ){
			id_ventana_imagen.close();
		}
		id_ventana_imagen = ventana('foto.html','foto','50x50','');
	}
}


// Validación de formularios

function valida_form(objeto,formulario){
		
	if ( formulario && objeto ){
			if(objeto!=window){objeto.blur();}
			var obligatorios=new Array();
			var nombres=new Array();
			var tipo_obligatorios='';
			var campo;
			var campo_trim;
			var mensaje='';
			var mensaje_obligatorios='\n- Campos obrigatorios sen cubrir    ';
			var primero=null;
			var condicion=true;
			var condicion_adicional=true;
			var mensaje_adicional='';
			
			switch (formulario.name) {	
				case 'form_buscador':
					obligatorios=['texto_buscar'];
					nombres=['texto'];
					mensaje_obligatorios='\n- Indique un texto para a búsqueda    ';					
				break;
				case 'form_boletines':
					obligatorios=['usuario','clave'];
					nombres=['usuario','contrasinal'];
					mensaje_obligatorios='\n- Indique un usuario e un contrasinal    ';
				break
				case 'form_rexistro':
					obligatorios=['nombre','email','provincia','concello','nick','usuario','contrasena','contrasena_conf'];
					nombres=['nome','e-mail','provincia','concello','nick','usuario','contrasinal','confirmación do contrasinal'];
					condicion_adicional=( formulario.elements['contrasena'].value==formulario.elements['contrasena_conf'].value );
					condicion_adicional=condicion_adicional && (formulario.elements['contrasena'].value.length>3);
					if ( ar_nick!=null ){
						var nick=formulario.elements['nick'].value.toLowerCase();
						var error_nick=false;
						for (i=0;i<ar_nick.length;i++){
							if ( nick==ar_nick[i] ){ error_nick=true; }
						}
						if ( error_nick ){ 
							condicion_adicional=condicion_adicional && error_nick;
							mensaje_adicional+='\n- Xa existe un usuario co \'nick\' indicado   '; 
						}
					}
					mensaje_adicional+='\n- Os contrasinais han de coincidir e ter 4 caracteres como mínimo   ';
				break
				case 'form_foro_tema':
					obligatorios=['titulo','descripcion'];
					nombres=['título','descrición'];	
					mensaje_obligatorios='\n- Indique un título e unha descrición    ';
				break;				
				case 'form_foro_mensaje':
					obligatorios=['titulo','mensaje'];
					nombres=['título','mensaxe'];	
					mensaje_obligatorios='\n- Indique un título e unha mensaxe    ';
				break;
			}
			
			if (tipo_obligatorios=='or'){condicion=false;}
			
			for (i=0;i<obligatorios.length;i++){
				campo=formulario.elements[ obligatorios[i] ].value;
				campo_trim=campo;
				while ( campo_trim.indexOf(' ')!=-1 ){
					campo_trim=campo_trim.replace(' ','');
				}
				if (tipo_obligatorios=='or'){
					if ((campo!='')&&(campo_trim!='')){
						condicion=true;
						if (primero==''){primero=obligatorios[i];}
					}					
				}
				else{
					if ( (campo=='') || (campo_trim=='') ){
						condicion=false;
						if (mensaje_obligatorios!=''){mensaje=mensaje_obligatorios;}
						if (primero==null){primero=formulario.elements[ obligatorios[i] ];}
					}
				}
				if ( obligatorios[i]=='telefono' || obligatorios[i]=='fax' ){
					for (k=0;k<campo_trim.length;k++){
						campo_trim=campo_trim.replace('-','');
						campo_trim=campo_trim.replace('.','');
						campo_trim=campo_trim.replace('/','');
					}
					if ( isNaN(campo_trim) ){
						condicion=false;
						mensaje+='\n- Indique un '+nombres[i]+' válido   ';
					}
				}

			}
			// comprobación de la condición adicional
			if ( !condicion_adicional ){
				condicion=condicion_adicional;
				mensaje+=mensaje_adicional;
			}
			// comprobación final
			if (!condicion){
				mensaje='Detectaronse os seguintes erros:\n'+mensaje+'\n\n ';
				if ( primero ){primero.focus();}
				alert( mensaje );
			}
			else{
				formulario.submit();
			}
	}
	
}

function submit_campo(campo,nombre_campo,formulario,cod_tecla){
	if ( formulario ){
		var manda=false;
		if ( cod_tecla==13 ){
			manda=( campo.value!='' && ( nombre_campo=='' || ( nombre_campo!='' && ( formulario.elements[nombre_campo].value!='' ) ) ) );
		}
		if ( manda ){
			formulario.submit();
		}
	}
}

function alfanumericos(campo,nombre_campo,formulario,cod_tecla,evento){
	if ( formulario ){
		
		var cond_numeros = ( cod_tecla>=48 && cod_tecla<=57 );
		var cond_minusculas = ( cod_tecla>=97 && cod_tecla<=122 );
		var cond_mayusculas = ( cod_tecla>=65 && cod_tecla<=90 );
		var cond_guiones= ( cod_tecla==45 || cod_tecla==95 );
		var cond_correcto=( cond_numeros || cond_minusculas || cond_mayusculas || cond_guiones );
		
		var evento_tipo=evento.toLowerCase();
		
		switch ( evento_tipo ){
			case 'keypress':
				if ( ie ){ 
					return cond_correcto; 
				}
				else{
					return true;
				}
			break;
			case 'keyup':
				if ( !ie ){ 
					if ( !cond_correcto ){
						campo.value=campo.value.substring(0,campo.value.length-1);
					}
				}
			break;
		}

	}
}


// Funciones para poblar los combos

function crea_combo(nombre,clase_css,estilos_css,eventos_js){
		if ( nombre!='' && !document.getElementById(nombre) ){
			var txt_html='';
			txt_html+='<select name="'+nombre+'" id="'+nombre+'"';
			if ( clase_css!='' ){
				txt_html+=' class="'+clase_css+'" ';	
			}
			if ( estilos_css!='' ){
				txt_html+=' style="'+estilos_css+'" ';
			}
			if ( eventos_js!='' ){
				txt_html+=' '+eventos_js+' ';
			}
			txt_html+='></select>';
			document.write(txt_html);
		}
}

function crear_opcion_combo(combo,texto_opcion,valor_opcion,elemento_seleccionado){
	if (combo && texto_opcion!=''){
		var opcion=document.createElement('option');
		opcion.text=texto_opcion;
		opcion.value=valor_opcion;
		combo.options.add(opcion);
		if (opcion.value==elemento_seleccionado){
			combo.selectedIndex=combo.options.length-1;
		}
	}
}

function vaciar_combos(id_combo,elemento_vacio,elemento_todos){
	if ( document.getElementById(id_combo) ){
			var combo=document.getElementById(id_combo);
			while ( combo.options.length>0 ){
				if (ie){
					combo.options.remove(0);
				}
				else{
					combo.options[0]=null; 
				}
			}
			var txt_todos;
			var txt_vacio=' ';
			switch ( id_combo.toLowerCase() ){
				default:
					txt_todos='Todos';
				break;
				case 'provincias':
				case 'provincia':
				case 'localidades':
					txt_todos='Todas';
				break;
			}
			if (elemento_vacio){
				crear_opcion_combo(combo,txt_vacio,'');
			}			
			if (elemento_todos){
				crear_opcion_combo(combo,txt_todos,'todos');
			}

	}
}

function poblar_combos(id_combo,valor_condicion,caso,elemento_vacio,elemento_todos,elemento_seleccionado){
	if ( document.getElementById(id_combo) ){
			var combo=document.getElementById(id_combo);
			var ar_origen=new Array();
			var condicion=( valor_condicion!=null && valor_condicion!='' && valor_condicion!='todos' && valor_condicion!='todas')?valor_condicion:null;
			var item_vacio=( elemento_vacio==null )?true:elemento_vacio;
			var item_todos=( elemento_todos==null )?false:elemento_todos;

			vaciar_combos(id_combo,item_vacio,item_todos);

			caso=caso.toLowerCase();
			
			switch( caso ) {
				case 'provincias':
				case 'provincia':
					ar_origen=eval('ar_'+caso);
					for (i=0;i<ar_origen.length;i++){
						crear_opcion_combo(combo,ar_origen[i][1],ar_origen[i][0],elemento_seleccionado);
					}
				break;
				case 'concellos':
				case 'concello':
					ar_origen=eval('ar_'+caso);
					for (i=0;i<ar_origen.length;i++){
						if ( ar_origen[i][1]==condicion || condicion==null ){
							crear_opcion_combo(combo,ar_origen[i][2],ar_origen[i][0],elemento_seleccionado);
						}
					}
				break;
				case 'localidades':
					ar_origen=ar_localidades;
					for (i=0;i<ar_origen.length;i++){
						if ( ar_origen[i][1]==condicion || condicion==null ){
							crear_opcion_combo(combo,ar_origen[i][2],ar_origen[i][0],elemento_seleccionado);
						}
					}
				break;
			}
			
	}
}

function valor_combos(id_combo,valor){
	if ( document.getElementById(id_combo) ){
			var combo=document.getElementById(id_combo);
			for (i=0;i<combo.options.length;i++){
				if ( combo.options[i].value==valor ){
					combo.options[i].selected=true;	
				}
			}
	}
}


// Redimensionar imágenes

var ar_intervalos=new Array();
var ar_imagenes=new Array();
var margen_pie=0;
var factor_aumento=1;
var tope=145;
var iguala_dim=false;

function carga_imagen(ruta_imagen,descripcion_imagen,id_capa_imagen){
		if ( ruta_imagen!='' ){
			var extension=ruta_imagen.split('.')[ ruta_imagen.split('.').length-1 ].toLowerCase();
			var ar_extensiones=new Array('jpg','jpeg','gif','png');
			var error_extension=true;
			var capa_destino;	
			var descripcion=( descripcion_imagen=='' || descripcion_imagen==null )?'':descripcion_imagen;
			var intervalo;
			ar_imagenes.push( new Image() );
			ar_imagenes[ ar_imagenes.length-1 ].src=ruta_imagen;
			if ( id_capa_imagen!='' && id_capa_imagen!=null ){
				if ( document.getElementById(id_capa_imagen) ){
					capa_destino=document.getElementById( id_capa_imagen );
				}
			}
			else{
				capa_destino=document.getElementById( 'cont_img_'+ar_imagenes.length );
			}
			for (i=0;i<ar_extensiones.length;i++){
				if ( extension==ar_extensiones[i] ){
					error_extension=false;
				}
			}

			if ( error_extension ){
				capa_destino.innerHTML='<a href=\"descarga_fichero.php?fichero='+ruta_imagen+'\" class=\"link_novas\">Prema para descargar a foto en formato '+extension.toUpperCase()+'</a>';
			}
			else{
				intervalo=setInterval('comprueba_imagen('+(ar_imagenes.length-1)+',\''+capa_destino.id+'\',\''+descripcion+'\','+tope+','+iguala_dim+')',300);
				ar_intervalos.push(intervalo);	
			}
		}
}
	
function comprueba_imagen(indice_imagen,id_capa,descripcion_imagen,tope_tamano,iguala_dimension){
		var imagen=ar_imagenes[ indice_imagen ];
		if ( imagen.width > 0 && imagen.height > 0 ){
			var texto_html='';
			var ancho=imagen.width;
			var alto=imagen.height;
			var margen_imagen;
			var estilos_temp;
			var capa_destino=document.getElementById(id_capa);
			var tope_max=( !isNaN(tope_tamano) && tope_tamano>0 )?tope_tamano:tope;
			var intervalo;
			var capa_scrol;
			
			if ( ancho>=alto && ancho>tope_max ){
				alto=parseInt((alto*tope_max)/ancho);
				ancho=tope_max;
				if ( iguala_dimension ){
					if ( alto < tope_max ){ancho=(ancho*tope_max)/alto;alto=tope_max;}
				}
			}
			if ( alto>ancho && alto>tope_max ){
				ancho=parseInt((ancho*tope_max)/alto);
				alto=tope_max;
				if ( iguala_dimension ){
					if ( ancho < tope_max ){alto=(alto*tope_max)/ancho;ancho=tope_max;}
				}
			}	
			if ( document.images[id_capa] && capa_destino.src!=null ){
				with ( capa_destino ){
					src=imagen.src;
					width=(ancho*factor_aumento);
					height=(alto*factor_aumento);
					title=descripcion_imagen;
				}
			}
			else{
				if ( iguala_dim ){
					estilos_temp='margin:0px;';
					if ( ancho>tope_max ){
						estilos_temp+='margin-left:-'+parseInt((ancho-tope_max)/2)+'px;"';
					}
					/*
					if ( alto>tope_max ){
						estilos_temp+='margin-top:-10px;"';
					}
					*/
					margen_imagen='style="'+estilos_temp+'"';
				}
				texto_html+='<img src="'+imagen.src+'" width="'+(ancho*factor_aumento)+'" height="'+(alto*factor_aumento)+'" title="'+descripcion_imagen+'" '+margen_imagen+'/>';
				capa_destino.innerHTML=texto_html;
			}
			//capa_destino.style.visibility='visible';
			clearInterval( ar_intervalos[ indice_imagen ] );
			if ( document.getElementById('contenido_texto') ){
				capa_scrol=document.getElementById('contenido_texto');
			}
			ar_intervalos[ indice_imagen ]=setInterval('retardo_visibilidad_imagen('+indice_imagen+',\''+capa_destino.id+'\',\''+capa_scrol.id+'\')',700);
		}
}

// Función a mayores para esperar por la visibilidad del resto por el scroll
function retardo_visibilidad_imagen(indice_imagen,id_capa,capa_scrol){
		if ( ar_imagenes[ indice_imagen ] && document.getElementById(id_capa) ){
			
			var condicion_principal=true;
			var capa_principal;
			var capa_destino= document.getElementById(id_capa);
			
			if ( document.getElementById(capa_scrol) ){
				capa_principal=document.getElementById(capa_scrol);
				condicion_principal= ( capa_principal.style.visibility='visible' );
			}
			if ( condicion_principal ){
				capa_destino.style.visibility='visible';
				clearInterval( ar_intervalos[ indice_imagen ] );
			}
		}
}




// Funciones generales

function color_letra(elemento,colorin){
	if ( elemento ){
		elemento.style.color=colorin;
	}
}

function color_fondo(elemento,colorin){
	if ( elemento ){
		elemento.style.backgroundColor=colorin;
	}
}

function ventana_status(txt_estado){
	if (txt_estado==null){txt_estado='';}
	window.status=txt_estado;
	return true;
}
