// FUNCIONES GENERALES DE UTILIDAD

// Extendiendo elementos gracias a PROTOTYPE

function limpia_html(cadena) {
    /* Etiquetas */
    myregexp = new RegExp("<\/?[^>]+(>|$)", "g");
    res = cadena.replace(myregexp, "")
    /* Entidades */
    myregexp = new RegExp("&[^;]+(;|$)", "g");
    res = res.replace(myregexp, "*")
    return res
}

Event.observe(window, 'load',
    function() {
           
        lst_elems = $$(".cd")
        for (var i = 0 ; i < lst_elems.length; i++) {
            elem = lst_elems[i]
            elem.addClassName("mas");
            function control_desplegable(evento) {
                el_controlador = Event.element(evento);
                img_controlador = 
                    el_controlador.getElementsBySelector("img")[0]
                id_controlado = 
                    el_controlador.readAttribute("id").sub("c","");
                el_controlado = $(id_controlado);
                if (el_controlado.hasClassName("oculto")) {
                    el_controlador.removeClassName("mas");
                    el_controlador.addClassName("menos");
                    el_controlado.removeClassName("oculto");
                    el_controlado.show();
                }
                else {
                    el_controlado.addClassName("oculto");
                    el_controlador.removeClassName("menos");
                    el_controlador.addClassName("mas");
                    el_controlado.hide();
                }
                return false;
            }
                        
            Event.observe(elem, "click", control_desplegable);
        }
     }
);


Event.observe(window, 'load',
    function() {
           
        lst_elems = $$(".co")
        for (var i = 0 ; i < lst_elems.length; i++) {
            elem = lst_elems[i]
            elem.addClassName("masCo");
            function control_desplegable(evento) {
                el_controlador = Event.element(evento);
                img_controlador = 
                    el_controlador.getElementsBySelector("img")[0]
                id_controlado = 
                    el_controlador.readAttribute("id").sub("c","");
                el_controlado = $(id_controlado);
                
                id_recortado = 
                    el_controlador.readAttribute("id").sub("cd","e");
                el_recortado = $(id_recortado);
                
                if (el_controlado.hasClassName("oculto")) {
                    el_recortado.addClassName("oculto");
                    
                    el_controlador.removeClassName("masCo");
                    el_controlador.addClassName("menosCo");
                    el_controlado.removeClassName("oculto");
                    el_controlado.show();
                }
                else {
                	el_recortado.removeClassName("oculto");
                    el_controlado.addClassName("oculto");
                    el_controlador.removeClassName("menosCo");
                    el_controlador.addClassName("masCo");
                    el_controlado.hide();
                }
                return false;
            }      
            Event.observe(elem, "click", control_desplegable);
        }
     }
);
    
// ELIMINAR Y USAR PROTOTYPE
function getHTTPRequest() {
  http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
     http_request = new XMLHttpRequest();
  } else if (window.ActiveXObject) { // IE
     try {
        http_request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
        try {
           http_request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
     }
  }
 return http_request;
}

function muestra_oculta(szDivID, iState) {
   var obj = document.layers ? document.layers[szDivID] :
   document.getElementById ?  document.getElementById(szDivID).style :
   document.all[szDivID].style;
   obj.display = document.layers ? (iState ? "block" : "none") :
   (iState ? "block" : "none");
}

function switch_muestra_oculta(szDivID) {
	muestra_oculta(szDivID, false);
	return false;
}

function wopen(url, name, w, h) {
	// Adaptada a Explorer y Firefox
	//w += 32;
	//h += 96;
	
	w += 50;
	h += 150;
	/*if(window.showModalDialog) {
		window.showModalDialog(url, name)
	}
	else {*/
	var win = window.open(url,
			name,
			'width=' + w + ',height=' + h + ',' +
			'menubar=no,' +
			'status=no,toolbar=no,resizable=no,directories=no,' +
			'modal=yes,dependent=yes,dialog=yes');
		win.resizeTo(w, h);
		win.focus();
	/*}*/
}

function wclose(){
window.close()
}

function recicla_captcha() {
	var al = (new Date()).getTime();
	$('img_captcha').src='/imaxes/captcha' + "_" + al + ".png";
	return false;
}

function guardar_continuar() {
	$("continuar").value = "True";
	$("form_noticia").submit();
}

function guardar_editar_ficheros() {
  $("editar_ficheros").value = "True";
  $("form_noticia").submit();
}

function guardar_continuar_foto() {
    $("continuar").value = "True";
    $("form_galeria").submit();
}

function mostrar_estrellas(puntuacion, id_noticia) {
    /* USANDO PROTOTYPE */
	new Ajax.Request('/', {
	  method: 'get',
	  parameters: {
        accion: 'votar',
        id_noticia: id_noticia,
        puntuacion: puntuacion
      },
	  onSuccess: function(transport, json) {
        actualiza_votos(json);
        }
  	});
}

function actualiza_votos(json) {
    $("datos_votos").innerHTML = json.votos;
    $("datos_puntuacion").innerHTML = (json.puntuacion / json.votos).toPrecision(2).replace(".","'");
    
    puntos = (json.puntuacion / json.votos).toPrecision(1);
    
    for (var i = 0 ; i < 5 ; i++) {
        if(i < puntos) 
            {
                $('est_' + i).addClassName('vot');
            }
        else {
                $('est_' + i).removeClassName('vot');
            }
    }
        
}

function encender_est(id)
{
  	for (var i = 0 ; i < 5 ; i++)
  	{
    	if(i <= id) 
    	{
    		$('est_' + i).addClassName('encendido');
    	}
  	}
}

function apagar_est(id)
{	
	for (var i = 0 ; i < 5 ; i++)
   	{
   	    if(i <= id) 
    	{
    		$('est_' + i).removeClassName('encendido');
    	}
   	}
}



incremento = 0;
tamano = 0;
original = 13;
titular = 12;
function aumentar () {

if (tamano < 18)
{
	incremento+=1;
	tamano = original + incremento;
	$("noticia").style.fontSize = tamano + "px";
	$("cintillo").style.fontSize = tamano + "px";
	$("titular").style.fontSize = tamano + titular + "px";
	$("tags").style.fontSize = tamano  + "px";
	$("autor").style.fontSize = tamano + 2 + "px";
	$("cuerpo").style.fontSize = tamano + 2 + "px";
}
}
function reducir () {

if ((tamano == 0) ||(tamano >8))
{
	incremento-=1;
	tamano = original + incremento;
	$("noticia").style.fontSize = tamano + "px";
	$("cintillo").style.fontSize = tamano + "px";
	$("titular").style.fontSize = tamano + titular + "px";
	$("tags").style.fontSize = tamano + "px";
	$("autor").style.fontSize = tamano + 2 + "px";
	$("cuerpo").style.fontSize = tamano + 2 + "px";
}

}


function votar_comentario(id_co, puntos_co, indice_bloque) {
    /* USANDO PROTOTYPE */
	new Ajax.Request('/', {
	  method: 'get',
	  parameters: {
        accion: 'comentario_votar',
        id: id_co,
        puntos: puntos_co,
        indice: indice_bloque
      },
	  onSuccess: function(transport, json) {
	  	if(json.error == false){
        	actualiza_comentario(json);
        }
        else {sm(json.error,400,100);}
        }
  	});
}


function actualiza_comentario(json) {
	new Ajax.Request('/', {
	  method: 'get',
	  parameters: {
        accion: 'comentario_actualiza',
        id: json.id_comentario,
        indice: json.indice
      },
	  onSuccess: function(transport) {
		var divCom = $('com_' + json.id_comentario);
		divCom.update(transport.responseText);
		ver_texto(json.indice)
	  }
  	});
        
}

function votar_comentario_com(id_co, puntos_co, indice_bloque) {
    /* USANDO PROTOTYPE */
    new Ajax.Request('/', {
      method: 'get',
      parameters: {
        accion: 'comentario_votar',
        id: id_co,
        puntos: puntos_co,
        indice: indice_bloque
      },
      onSuccess: function(transport, json) {
        if(json.error == false){
            actualiza_comentario_com(json);
        }
        else {sm(json.error,400,100);}
        }
    });
}


function actualiza_comentario_com(json) {
    new Ajax.Request('/', {
      method: 'get',
      parameters: {
        accion: 'comentario_actualiza_com',
        id: json.id_comentario,
        indice: json.indice
      },
      onSuccess: function(transport) {
        var divCom = $('com_' + json.id_comentario);
        divCom.update(transport.responseText);
        ver_texto(json.indice)
      }
    });
        
}




function ver_texto(indice) {
     elem = $("cd" + indice);
     elem.addClassName("masCo");
       function control_desplegable(evento) {
      el_controlador = Event.element(evento);
      img_controlador = 
          el_controlador.getElementsBySelector("img")[0]

      el_controlado = $("d" + indice);
      
      el_recortado = $("e" + indice);
      
      if (el_controlado.hasClassName("oculto")) {
          el_recortado.addClassName("oculto");
          
          el_controlador.removeClassName("masCo");
          el_controlador.addClassName("menosCo");
          el_controlado.removeClassName("oculto");
          el_controlado.show();
      }
      else {
      	el_recortado.removeClassName("oculto");
          el_controlado.addClassName("oculto");
          el_controlador.removeClassName("menosCo");
          el_controlador.addClassName("masCo");
          el_controlado.hide();
      }
      return false;
  }
              
  Event.observe(elem, "click", control_desplegable);
 }


function carga_select_dependiente(params, ajaxurl, objetodestino, nomrespuesta){
	params = eval(params);
	new Ajax.Request(ajaxurl, {
		method:'get', 
		encoding:'UTF-8',
		parameters:eval(params),
		onLoading: function(){
			objetodestino.innerHTML = "";
			objetodestino.options[0] = new Option("Espere...","0");
		},
		onFailure:function(){
			objetodestino.innerHTML = "";
			objetodestino.options[0] = new Option("Error","0");
		},
		onSuccess: function(transport, json){
				respuesta = json[nomrespuesta];
				objetodestino.innerHTML = ''; 
				for (var i = 0; i < respuesta.length; i++){
					op = new Option(respuesta[i][1],respuesta[i][0]);
					objetodestino.options[i] = op;
				}
		}
	});
	
}


function seleccionar(){
   document.form_copiar.texto_copia.select();
} 


function reset_submit(formName) {
	Form.disable(formName);
	$(formName).submit();
}

Event.observe(window, 'load',
  function() {
     elem = $("superespecial");
    
     function control_especiales(evento) {
        el_controlador = Event.element(evento);
        if (el_controlador.checked == true) {
           $("opciones_superespecial").removeClassName("oculto");
        }else {
           $("opciones_superespecial").addClassName("oculto");
        }
      }    
      if (elem != null)
        Event.observe(elem, "click", control_especiales);
  });


function videoCodigo(p) {
	if (p == true) {
		$('editor_video_fichero').addClassName('oculto');
		$('editor_video_codigo').removeClassName('oculto');
		
		$('tipo_video').value = 'codigo';
	}
	else {
		$('editor_video_codigo').addClassName('oculto');
		$('editor_video_fichero').removeClassName('oculto');
		
		$('tipo_video').value = 'fichero';
	}
}



