 
//
// Funcion: muestra elementos ocultos inline
//
function mostrar(que){
  $(que).style.display = "inline";
}


//
// Funcion: muestra elementos ocultos block
//
function mostrarblock(que){
  $(que).style.display = "block";
}


//
// Funcion: muestra elementos ocultos block de multimedia y oculta otros
//
function mostrarblockmulti(que, bloque_id){

  // Antes de mostrar el bloque, reseteo todos los formularios
  // de imagenes, documentos o videos del mismo bloque
  for (i=0; i<document.forms.length; i++){
    nombre = document.forms[i].id;
    if (nombre.indexOf("form_img") != -1 || nombre.indexOf("form_doc") != -1){
      document.forms[i].reset();
    }
  }

  var id = que+bloque_id;
  $(id).style.display = "block";

  if (que == "img"){
    $("doc"+bloque_id).style.display = "none";
    $("iframedoc").style.display = "none";
    $("iframeimg").style.display = "none";
  }
  else if (que == "doc"){
    if ($("img"+bloque_id) != null){
      $("img"+bloque_id).style.display = "none";
      $("iframeimg").style.display = "none";
      $("iframedoc").style.display = "none";
    }
  }
}


//
// Funcion: oculta elementos visibles
//
function ocultar(que){
  $(que).style.display = "none";
}


//
// Funcion: limpia formulario y oculta elementos visibles
//
function ocultar_limpiar(formulario, que){
  $(formulario).reset();
  $(que).style.display = "none";

  if ($("iframeimg") != null)
    $("iframeimg").style.display = "none";
    
  if ($("iframedoc") != null)
    $("iframedoc").style.display = "none";
  //$("iframevid").style.display = "none";
}


//
// Funcion: envia los datos de un formulario manualmente por Ajax
//
function formularioajax(div, tag, rel) {

  new Ajax.Updater(div, rel, {asynchronous: true, evalScripts: true, parameters: Form.serialize(tag), requestHeaders:['X-Update', div]})
}



// ------------------------------------------ //
//                                            //
//          SUGERIDOR DE MUNICIPIOS           //
//                                            //
// ------------------------------------------ //

var i = 0;

//
// Funcion: espera para enviar la peticion de municipios
//
function esperar(rel){

  // Si hay mas peticiones, resetear el retardo
  if (i != 0){
     clearTimeout(timeout);
  }
  
  timeout = setTimeout('carga_municipios("' +rel+ '")', 1000);
  i = 1;
}


//
// Funcion: muestra una lista de municipios segun lo insertado por el usuario
//
function carga_municipios(rel){

  i = 0;
  
  var comunidad = $('comunidad').value;
  var provincia = $('provincia').value;
  var municipio = $('municipio').value;

  if (municipio != ""){
    var rel = rel+ "/" +comunidad+ "/" +provincia+ "/" +municipio;
    new Ajax.Updater('municipios', rel, {asynchronous: true, evalScripts: true, requestHeaders:['X-Update', 'municipios']})
  }
}


//
// Funcion: muestra una lista de provincias de una comunidad
//
function carga_provincias(rel, comunidad){

  if (comunidad == 1)
    var comunidad = $('comunidad').value;
    
  var rel = rel+ "/" +comunidad;
  new Ajax.Updater('provincias', rel, {asynchronous: true, evalScripts: true, requestHeaders:['X-Update', 'provincias']});
  
  // Vaciar posible valor de municipio
  vaciar_municipio();
}


//
// Funcion: vaciar campo de municipio e id oculto del mismo
//
function vaciar_municipio(){
  $('municipio').value = "";
  $('municipio_id').value = "";
  
  // Ocultar el posible listado de municipios desplegado
  ocultar_municipios();
}


//
// Funcion: vacia y oculta el listad de municipios
//
function ocultar_municipios(){
  $('municipios').innerHTML = "";
  $('municipios').style.display = "none";
}


//
// Funcion: aniadir eventos a un elemento determinado
//
function crearEvento(elemento, evento, funcion){

  // Para navegadores que no son explorer
  if (elemento.addEventListener) {
    elemento.addEventListener(evento, funcion, false);
    elemento.id_elemento = elemento.id;
    elemento.inner_elemento = elemento.innerHTML;    
  }
  
  // Para explorer
  else{
    elemento.attachEvent("on" +evento, funcion);
    elemento.id_elemento = elemento.id;
    elemento.inner_elemento = elemento.innerHTML;
  }
}


// ------------------------------------------ //
//                                            //
//          ADJUNTOS A UN CONTRATO            //
//                                            //
// ------------------------------------------ //

var swfu = new Array();

function aniadeAdjuntos(id){

	cuantos = parseInt($("contador" +id).value)+1;
	$("contador" +id).value = cuantos;
	contenedor = document.createElement("span");
	contenedor.id = "file" +cuantos+ "_" +id;
	contenedor.className = "nuevodoc";
	
	titulo = "titulo" +cuantos+ "_" +id;
	paratitulo  = "paratitulo" +cuantos+ "_" +id;
	descripcion = "descripcion" +cuantos+ "_" +id;
	archivo = "archivo" +cuantos+ "_" +id;

	contenedor.innerHTML='<label for="' +titulo+ '">Titulo (*)</label><input type="text" id="' +titulo+ '" name="titulo['+cuantos+']" size="50" /><br /><select id="' +paratitulo+ '" onChange="javascript:$(\'' +titulo+ '\').value=$(\'' +paratitulo+ '\').value" size="7">	<option value="Anuncio DOUE">Anuncio DOUE</option><option value="Anuncio BOE">Anuncio BOE</option><option value="Información en web externa">Información en web externa</option><option value="Pliego de Cláusulas Administrativas">Pliego de Cláusulas Administrativas</option><option value="Pliego de Prescripciones Técnicas">Pliego de Prescripciones Técnicas</option><option value="Pliego de Condiciones">Pliego de Condiciones</option><option value="Motivación de la Adjudicación">Motivación de la Adjudicación</option></select><br /><label for="' +descripcion+ '">Descripci&oacute;n </label><textarea id="' +descripcion+ '" name="description['+cuantos+']"  rows="2" cols="55" /></textarea><br /><label for="' +archivo+ '">Archivo (*)</label><input name="archivo['+cuantos+']" id="' +archivo+ '" type="file" size="38" /><br /><br /><a href="#" onclick="dropAdjunto('+cuantos+', '+id+'); return false;">Eliminar</a><hr />';

	$("listfiles" +id).appendChild(contenedor);
}

function dropAdjunto(numero, id){
  var borrado = $("file"+numero+ "_" +id);
  $("listfiles" +id).removeChild(borrado);
}


// ------------------------------------------ //
//                                            //
//       FOTOS ADJUNTAS A UNA PROMOCION       //
//                                            //
// ------------------------------------------ //

function aniadeFotos(){

	cuantos = parseInt($("contador").value)+1;
	$("contador").value = cuantos;
	contenedor = document.createElement("span");
	contenedor.id = "file" +cuantos;
	contenedor.className = "nuevafoto";

	tipofoto = "tipofoto" +cuantos;
	grande = "grande" +cuantos;
	muygrande = "muygrande" +cuantos;
	alt = "altim" +cuantos;
	pie = "pieim" +cuantos;

    contenedor.innerHTML = '<label for="' +tipofoto+ '">Tipo imagen</label><select id="' +tipofoto+ '" name="tipofoto[' +cuantos+ ']"><option value="imagen" selected>Foto</option><option value="plano">Plano</option><option value="situacion">Situaci&oacute;n</option></select><br /><label for="grande1">Baja resoluci&oacute;n (**)</label><input type="file" id="' +grande+ '" name="grande[' +cuantos+ ']" size="38" /> &nbsp;(min. 350 px - max. 1024 px de ancho)<br /><label for="' +muygrande+ '">Alta resoluci&oacute;n (**)</label><input type="file" id="' +muygrande+ '" name="muygrande[' +cuantos+ ']" size="38" /> &nbsp;(min. 900 px de ancho)<br /><label for="' +pie+ '">Pie de la imagen</label><input type="text" id="' +pie+ '" name="pieim[' +cuantos+ ']" value="" size="50" /><br /><label for="' +alt+ '">Texto alternativo de la imagen (*)</label><input type="text" id="' +alt+ '" name="altim[' +cuantos+ ']" value="" size="50" /><br /><br /><a href="#" onclick="dropFoto(' +cuantos+ '); return false;">Eliminar</a><hr />';

	$("listfiles").appendChild(contenedor);
}


function dropFoto(numero){
  var borrado = $("file"+numero);
  $("listfiles").removeChild(borrado);
}

// -------------------------------------------------------------- //
//                                            				    //
//       DOCUMENTOS ADJUNTOS A UNA PROMOCION       //
//                                            				    //
// -------------------------------------------------------------- //

function aniadeAdjuntosPromo(){

	cuantos = parseInt($("contador").value)+1;
	$("contador").value = cuantos;
	contenedor = document.createElement("span");
	contenedor.id = "file" +cuantos;
	contenedor.className = "nuevodoc";

	titulo = "titulo" +cuantos;
	descripcion = "descripcion" +cuantos;
	archivo = "archivo" +cuantos;
	
    contenedor.innerHTML = '<label for="' +titulo+ '">T&iacute;tulo (*)</label><input type="text" id="' +titulo+ '" name="titulo[' +cuantos+ ']" size="50" /><br /><label for="' +descripcion+ '">Descripci&oacute;n</label><textarea id="' +descripcion+ '" name="description[' +cuantos+ ']" rows="2" cols="55"></textarea><br /><label for="' +archivo+ '">Archivo (*)</label><input type="file" id="' +archivo+ '" name="archivo[' +cuantos+ ']" size="38" /><br /><br /><a href="#" class="cls" onclick="dropAdjuntoPromo(' +cuantos+ '); return false;">Eliminar</a><hr />';
	
	$("listfilesdoc").appendChild(contenedor);
}


function dropAdjuntoPromo(numero){
  var borrado = $("file"+numero);
  $("listfilesdoc").removeChild(borrado);
}


// ------------------------------------------ //
//                                            //
//    POSICIONADOR DE ELEMENTOS MULTIMEDIA    //
//                                            //
// ------------------------------------------ //

//
// Funcion: guarda la posicion del cursor en el textarea
//
function guarda_posicion(el){

  var posicion = 0;
  
  // Resto de navegadores
  if (el.selectionStart){
    posicion = el.selectionStart;
  }
  
  // IE
  else if (document.selection){
    //el.focus();

    var r = document.selection.createRange();
    if (r == null) {
      posicion = 0;
    }

    var re = el.createTextRange();
    var rc = re.duplicate();
    re.moveToBookmark(r.getBookmark());
    rc.setEndPoint('EndToStart', re);

    posicion = rc.text.length;
  }
  
  $("posiciontext").value = posicion;
}


//
// Funcion: guardar los valores correspondientes para enviar al multimedio
//
function envia_posicion(textarea, id){

  $("n_textarea" +id).value = textarea;
  $("posicion" +id).value = $("posiciontext").value;
}


//
// Funcion: actualizar el textarea aniadiendo mas texto en la posicion almacenada
//
function aniademultimedia(textarea, posicion, multi){

  var nuevo_valor = $(textarea).value.substr(0, posicion)+ "[multimedia]" +multi+ "[/multimedia]" + $(textarea).value.substr(posicion);
  $(textarea).value = nuevo_valor;
}


//
// Funcion: muestra la caja del iframe correspondiente a un multimedio para validaciones
//
function muestra_iframe(iframe, id, error){

  // Mostrar resultado del error en caso de existir
  if (error){
    $(iframe).style.display = "block";
  }
  
  // Si se inserta multimedio correctamente -> ocultar la capa correspondiente
  else{
    if ($("img" +id) != null){
      $("img" +id).style.display = "none";
    }
    $("doc" +id).style.display = "none";
  }
}


// ------------------------------------------ //
//                                            //
//      ACCIONES DEL GESTOR DE CONTENIDOS     //
//                                            //
// ------------------------------------------ //

//
// Funcion: genera un nombre de pagina flotante para un documento
//
function genera_url(desde, para){

  var sinconvertir = new Array('á', 'é', 'í', 'ó', 'ú', 'à', 'è', 'ì', 'ò', 'ù', 'ä', 'ë', 'ï', 'ö', ' ', '.', ',', 'ñ', 'ç', ':', ';', '/', '?', '¿', 'ü', 'Ü', '"', '\'', '=', '²', 'ª', 'º', '(', ')', '+', '&', '$', '€','¨', '`', '^', '*', '!', '¡', '[', ']', '{', '}', '%', '\\', '|', '<', '>', '¬', '´', '@', '#');

  var convertir = new Array('a', 'e', 'i', 'o', 'u', 'a', 'e', 'i', 'o', 'u', 'a', 'e', 'i', 'o', '_', '_', '_', 'n', 'c', '', '', '', '', '', 'u', 'U', '', '', '', '', '', '', '', '', '_', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '');

  var texto = $(desde).value.toLowerCase();

  if ($(para).value == ""){
	for (var j=0; j<sinconvertir.length; j++){
	  texto = replaceAll(texto, sinconvertir[j], convertir[j]);
	}
	$(para).value = texto;
  }
}


//
// Funcion: reemplaza todas las apariciones de aguja en pajar :P
//
function replaceAll(text, busca, reemplaza){
  while (text.toString().indexOf(busca) != -1){
    text = text.toString().replace(busca, reemplaza);
  }
  return text;
}


//
// Funcion: confirmacion para la eliminacion de un elemento (nota de prensa, evento...)
//
function confirmar(tipo){

  if (tipo == "post"){
    var aviso = "¿Está seguro que desea eliminar esta nota de prensa?";
  
    if (!confirm(aviso))
      return false;
  }
  
  else if (tipo == "contrato"){
    var aviso = "¿Está seguro que desea eliminar este contrato y toda la información relacionada?";

    if (!confirm(aviso))
      return false;
  }
  
  else if (tipo == "contratodoc" || tipo == "promociondoc"){
    var aviso = "¿Está seguro que desea eliminar este archivo?";

    if (!confirm(aviso))
      return false;
  }
  
  else if (tipo == "subseccion"){
    var aviso = "¿Está seguro que desea eliminar este borrador?";

    if (!confirm(aviso))
      return false;
  }
    
  else if (tipo == "promocion"){
	var aviso = "¿Está seguro que desea eliminar esta promoción y toda la información relacionada?";

    if (!confirm(aviso))
      return false;
  }
  
  else if (tipo == "fotopromo"){
	var aviso = "¿Está seguro que desea eliminar esta foto de la promoción?";

    if (!confirm(aviso))
      return false;
  }

  else if (tipo == "publicacion"){
	var aviso = "¿Está seguro que desea eliminar esta publicación?";

    if (!confirm(aviso))
      return false;
  }
  
  else if (tipo == "fotopublicacion"){
	var aviso = "¿Está seguro que desea eliminar esta foto de la publicación?";

    if (!confirm(aviso))
      return false;
  }

  else if (tipo == "empleoferta"){
	var aviso = "¿Está seguro que desea eliminar esta oferta de empleo?";

    if (!confirm(aviso))
      return false;
  }

  else if (tipo == "flotante"){
	var aviso = "¿Está seguro que desea eliminar esta página flotante?";

    if (!confirm(aviso))
      return false;
  }
}


//
// Funcion: detectar si cambia el estado de un contrato y/o su fecha de estado
//
function cambia_estado(formulario){

  var estado_ant = $('estado_ant').value;
  var fecha_ant = $('fecha_estado_ant').value;
  
  var estado = $('estado').value;
  var fecha = $('fecha_estado').value;
  
  // Si cambia el estado y no la fecha
  if (estado != estado_ant && fecha == fecha_ant){
	var aviso = "AVISO: Se ha modificado el estado del expediente, pero no la fecha de cambio de estado ¿desea modificar también la fecha?";

    if (confirm(aviso))
      return false;
  }
  // Si cambia la fecha pero no el estado
  else if (estado == estado_ant && fecha != fecha_ant){
	var aviso = "AVISO: Se ha modificado la fecha de cambio de estado, pero no el estado del expediente ¿desea modificar también el estado?";
	
    if (confirm(aviso))
      return false;
  }
  
  formulario.submit();
}


//
// Funcion: peticion de publicacion de una seccion de elementos pendientes de publicacion
//
function publicar(url, seccion){

  var aviso = "¿Está seguro que desea publicar esta sección?";

  if (!confirm(aviso)){
    return false;
  }
  else{
    $("pendiente").style.display = "none";
    publicando(url, seccion);
  }
}



//
// Funcion: accion de publicar una seccion de elementos pendientes de publicacion
//
function publicando(url, seccion){

  $("enproceso").innerHTML = '<h2 class="subtitulos">Gestión de contenidos SEPES</h2><div class="titularesds"><img src="' +path+ 'img/ajax-loader.gif" alt="Cargando..." />&nbsp;Por favor, no realice usted NINGUNA acci&oacute;n. Se est&aacute; procediendo a la publicaci&oacute;n de los contenidos...</div>';

  new Ajax.Request(url+ "publipendientes/publicar/" +seccion, { method: 'post', onSuccess: function(respuesta){ location.href = url+ "inicio";} });
}



//
// Funcion: ejecutar una accion de actualizacion sobre base de datos
//
function ejecutar_accion(formulario){

  $('pendiente').style.display = "none";
  $('enproceso').style.display = "block";

  formulario.submit();
}


//
// Funcion: guardar borrador
//
function guardar_borrador(formulario, url, id, creacion){
    
  var borrador = $('borrador').value;
  
  if (borrador == 1){
    formulario.action = url+ "editar/" +id;
  }	
  else{ 
    if (creacion == 1){
	  $('borrador').value = 1;
	}
	
    formulario.action = url+ "guardar_borrador/" +id;
  }
  
  formulario.submit();
  return false;  
}


// -------------------------------------------------- //
//                                           	 	      //
//         OTROS GENERICOS - SITIO WEB       //
// 			                                           //
// ------------------------------------------------- //

function muestraOcultaElemento(idElemento){

  var elemento = document.getElementById(idElemento);
  var nuevaVisibilidad = '';
  
  if (elemento.style.display == 'none') {
    nuevaVisibilidad = 'block';
    document.getElementById("enlace_form_contacto").innerHTML = "Ocultar formulario para contactar con SEPES URBANA";
  }
  else{
    nuevaVisibilidad = 'none';
    document.getElementById("enlace_form_contacto").innerHTML = "Mostrar formulario para contactar con SEPES URBANA";
  }

  elemento.style.display = nuevaVisibilidad;
}


//
// Funcion: resetea todos los campos del formulario dado
//
function resetear(pagina, url_provincias){

  if (pagina == "promociones"){
    $('comunidad').value = 0;
    carga_provincias(url_provincias, 0);
    $('municipio').value = "";
    $('municipio_id').value = "";

    $('suelo_industrial').checked = false;
    $('suelo_residencial').checked = false;
    $('suelo_logistico').checked = false;
    $('terciario_comercial').checked = false;
    $('nave_industrial').checked = false;
    $('viviendas').checked = false;
    $('edificaciones').checked = false;
    
    var elemento = document.getElementById('promociones');
    if (elemento != null) {
      elemento.style.display = "none";
    }
    
    // Deselecciona en el mapa la Comunidad seleccionada
    var mapache = getMapFromId('MapaComunidadesId');
    var oxml = mapache.getXML();
    var modifiedXML = "";
    
    if (oxml.indexOf('f39912')) {
      modifiedXML = oxml.replace('f39912', 'a7b40a');
      mapache.setDataXML(modifiedXML);
    }
  }
  
  else if (pagina == "contratos"){

    $('tipocontrato1').checked = false;
    $('tipocontrato2').checked = false;
    $('tipocontrato3').checked = false;

    $('procedimiento1').checked = false;
    $('procedimiento2').checked = false;
    $('procedimiento3').checked = false;
    $('procedimiento4').checked = false;

    $('estado1').checked = false;
    $('estado2').checked = false;
    $('estado3').checked = false;
    $('estado4').checked = false;
    $('estado5').checked = false;

    $('termino').value = "";

    var elemento = document.getElementById('contratos');
    if (elemento != null){
      elemento.style.display = "none";
    }
  }
}


//
// Funcion: redirecciona al formulario de contacto correspondiente enviando
//          el destino
//
function contacto(formulario, destino){

  $('destino').value = destino;
  formulario.submit();
  return false;
}


//
// Funcion: despliega la capa con informacion parcelaria
//
function mostrar_parcelas(){
  Effect.Appear('verparcelas');
  $('mostparcelas').style.display = "none";
  return false;
}


//
// Funcion: pliega la capa con informacion parcelaria
//
function cerrar_parcelas(){
  Effect.Fade('verparcelas');
  $('mostparcelas').style.display = "block";
  return false;
}


