var http_request = false;
var request = false;
var comments_request = false;
var comment_id = '0';
var news_html = '0';
var num_comments = '0';
var num_comments_publish = '0';
var interval;
var editor = '0';
var pedido = "";
var firma;
var ratonX,ratonY;
var captcha = '1';
var Url = '0';

function METComentarios_newsNotify() {
	var notify = METComentarios_getHttpRequestObject();

    if (!notify) {
        return;
    }

    var send = '/notificarelacionadas';
//  alert ("enviando: " + send);
    notify.open('GET', send, true);
    notify.send(null);
}

function METComentarios_getComments(url, parameters) {
		http_request = false;
		if (window.XMLHttpRequest) { // Mozilla, Safari,...
				http_request = new XMLHttpRequest();
				if (http_request.overrideMimeType) {
						http_request.overrideMimeType('text/xml');
				}
		} else if (window.ActiveXObject) { // IE
				try {
						http_request = new ActiveXObject("Msxml2.XMLHTTP");
				} catch (e) {
						try {
								http_request = new ActiveXObject("Microsoft.XMLHTTP");
						} catch (e) {}
				}
		}
		if (!http_request) {
				alert('Cannot create XMLHTTP instance');
				return false;
		}
		http_request.onreadystatechange = METComentarios_writeComments;
		http_request.open('GET', url + parameters, true);
		http_request.send(null);
}

function METComentarios_writeComments() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var data = http_request.responseText;
            var parts = data.split ("###HTML###");
            var code = parts[1];
            var html = parts[0];

			if ( eval ) {
				eval (code);
			} else {
				window.execScript(code);
			}

		    element = document.getElementById('escribircomentariooculto');
			element.className = "alavista";

			if ( code ) {
			    if (obj.Closed == '0') {
					element = document.getElementById('escribircomentarioform');
					element.className = "alavista";
				}
			}

			document.getElementById('comments').innerHTML = '<img src="/blog_inicio_soitu/iconos/v1.x/v1.0/flecha_derecha.png" alt="flecha" id="flechacomentarios" />' + html;
		} else {
			alert('There was a problem with the request.');
		}
	}
}

function METComentarios_loadComments(url, sig, pag) {
	if ( sig != '0' )
		firma = sig;
	METComentarios_getComments('/comments/listcomment.pl', '?url='+ url + '&firma=' + firma + '&pag=' + pag  +'&test=' + Math.random()*5);
	Url = url;
}


function METComentarios_getHttpRequestObject() {
		http_rq = false;

		if (window.XMLHttpRequest) { // Mozilla, Safari,...
				http_rq = new XMLHttpRequest();
				if (http_rq.overrideMimeType) {
						http_rq.overrideMimeType('text/xml');
				}
		} else if (window.ActiveXObject) { // IE
				try {
						http_rq = new ActiveXObject("Msxml2.XMLHTTP");
				} catch (e) {
						try {
								http_rq = new ActiveXObject("Microsoft.XMLHTTP");
						} catch (e) {}
				}
		}
		if (!http_rq) {
				alert('Cannot create XMLHTTP instance');
				return false;
		}
		return http_rq;	
}


var comments_by_num;
function METComentarios_getCommentByNum(news, num) {
	comments_by_num = METComentarios_getHttpRequestObject();
	
	if (!comments_by_num) {
		return;
	}

	var send = '/comments/get_comment_by_number.pl?news='+ news +'&number='+ num + '&firma=' + firma ;
//	alert ("enviando: " + send);
	comments_by_num.onreadystatechange = METComentarios_showCommentsByNum;
	comments_by_num.open('GET', send, true);
	comments_by_num.send(null);
}

function METComentarios_showCommentsByNum() {
	if (comments_by_num.readyState == 4) {
		var status = "";
		try{
			status = comments_by_num.status;
		}
		catch(e){
			status = "Trouble accessing it";
		}
		
		if (status == 200) {
			var data = comments_by_num.responseText;
			var parts = data.split ("###HTML###");
			var code = parts[0];
			var html = parts[1];

			if ( eval ) {
				eval (code);
			} else {
				window.execScript(code);
			}

			var relation = obj.Relation;
			var comments = obj.Comments;
			
			document.getElementById("relation").value = relation;
			document.getElementById("comments_tip").innerHTML = html;
		}
	}
}


function METComentarios_getInnerText (node) {
	if (typeof node.textContent != 'undefined') {
		return node.textContent;
	}
	else if (typeof node.innerText != 'undefined') {
		return node.innerText;
	}
	else if (typeof node.text != 'undefined') {
		return node.text;
	}
	else {
		switch (node.nodeType) {
			case 3:
			case 4:
				return node.nodeValue;
				break;
			case 1:
			case 11:
				var innerText = '';
				for (var i = 0; i < node.childNodes.length; i++) {
					innerText += METComentarios_getInnerText(node.childNodes[i]);
				}
				return innerText;
				break;
			default:
				return '';
		}
	}
}

function METComentarios_showCaptcha() {
	METComentarios_checkText(document.getElementById('textarea_comment'), Url);
	if ( captcha ) {
		obj = document.getElementById('captcha');
	
		obj.innerHTML = "<div class='captcha'>\n<div class='imagencaptcha'> <img src='/captcha/captchaimg.pl' alt='captcha' \/> <\/div><!-- imagencaptcha --> <div class='pymas'> <p>Antes de enviar el comentario, necesitamos que confirmes que eres un ser humano.<\/p> <p><strong>Introduce el texto de izquierda:<\/strong><\/p><input type='text' type='text' name='capcha' \/> <p><a class='boton' href='javascript:document.getElementById(\"formcomentarios\").submit()'>Terminar y enviar comentario<\/a><\/p> <\/div><!-- cierre div pymas --> </div><!-- cierre div captcha -->";
	}

	//document.getElementById('comments_tip').style.visibility='hidden';
	METComentarios_showHideElement('comments_tip');
	METComentarios_showHideElement('captcha');
	METComentarios_showHideElement('boton_aceptar');

	document.getElementById('textarea_comment').onfocus = METComentarios_hideCaptcha;
	document.getElementById('id_autor').onfocus = METComentarios_hideCaptcha;
	captcha = 0;
}

function METComentarios_hideCaptcha() {

	METComentarios_showHideElement('comments_tip');
	METComentarios_showHideElement('captcha');
	METComentarios_showHideElement('boton_aceptar');

	document.getElementById('textarea_comment').onfocus = '';
	document.getElementById('id_autor').onfocus = '';
}

function METComentarios_showHideComments(cual) {

	METComentarios_showHideElement( "comentario" + cual );
	METComentarios_showHideElement( "desplegarcomentario" + cual );
}

function METComentarios_showHideElement(idElemento) {

	elemento = document.getElementById(idElemento);

	if (elemento.className  == "alavista")
		elemento.className = "oculto";
	else
		elemento.className = "alavista";

}


function METImages_showPhotoInline(direccion,anchoImagen,altoImagen,piefoto,firma) {

		// antes de nada, comprobamos si hay otra foto abierta, y la cerramos
		if (document.getElementById('contenedorAmpliarFoto')) { METComentarios_hideElement('contenedorAmpliarFoto');METComentarios_hideElement('cortina');}

		var YscrollVertical = document.documentElement.scrollTop; // la posicion Y del scroll

		var anchoPantalla = document.documentElement.clientWidth; // el ancho del campo de vision del usuario
		var altoPantalla = document.documentElement.clientHeight; // el ancho del campo de vision del usuario

		var anchoContenedor = 990; // el ancho del conentedor con toda la noticia

		if(anchoImagen > anchoContenedor)  // si la foto es demasiado ancha, forzamos el tamano maximo al del contenedor
		{
				altoImagen = ( (anchoContenedor-30) * altoImagen ) / anchoImagen;
				anchoImagen = (anchoContenedor-30);
		}

		var posicionX = (anchoContenedor / 2) - ( anchoImagen / 2 ); // centramos el div horizontalmente

		var posicionY = (altoPantalla/2) - ( altoImagen / 2 ) - (anchoImagen / 10); // centramos el div verticalmente

		if ( posicionY < 0 ) posicionY = 0; // si el div de la imagen se pasa por arriba, lo ponemos al 0

		// el div con el id
		var elDivId = document.createElement('div');
		elDivId.setAttribute ("id","contenedorAmpliarFoto");


		altototalpagina = document.body.offsetHeight;

		// el div con la cortina
		var elDivCortina = document.createElement('div');
		elDivCortina.className = "cortina";
		elDivCortina.setAttribute ("id","cortina");
		elDivCortina.style.height = altototalpagina + "px";


		// el div con todo
		var elDiv = document.createElement('div');
		elDiv.className = 'fotoAmpliada';


		elDiv.style.width = anchoImagen+"px";

		elDivId.style.left = "0px";

		elDivId.style.top = YscrollVertical+posicionY+"px";


		// ahora la imagen
		var imagen = document.createElement('img');
		imagen.src = direccion;
		imagen.setAttribute( "height", altoImagen);

		imagen.style.width = anchoImagen + "px";
		imagen.style.height = altoImagen + "px";

		// el div piedefoto
		var elDivPie = document.createElement('div');
		elDivPie.className = "piedefoto";

		// el boton cerrar superior
		var elDivCerrarSuperior = document.createElement('div');
		elDivCerrarSuperior.className = 'cerrarsuperior';
		var enlaceCerrarSuperior = document.createElement('a');
		var textoCerrarSuperior = document.createTextNode('cerrar');
		enlaceCerrarSuperior.appendChild(textoCerrarSuperior);
		enlaceCerrarSuperior.href="javascript:METComentarios_hideElement('contenedorAmpliarFoto');METComentarios_hideElement('cortina')";
		elDivCerrarSuperior.appendChild(enlaceCerrarSuperior);

		// el boton cerrar
		var elDivCerrar = document.createElement('div');
		elDivCerrar.className = 'cerrar';
		var enlaceCerrar = document.createElement('a');
		var textoCerrar = document.createTextNode('cerrar');
		enlaceCerrar.appendChild(textoCerrar);
		enlaceCerrar.href="javascript:METComentarios_hideElement('contenedorAmpliarFoto');METComentarios_hideElement('cortina')";
		elDivCerrar.appendChild(enlaceCerrar);

		// la firma
		var elDivFirma = document.createElement('div');
		elDivFirma.className = 'firma';
		var textoFirma = document.createTextNode(firma);
		elDivFirma.appendChild(textoFirma);


		// el parrafo
		var parrafo = document.createElement('p');
		var textoPie = document.createTextNode(piefoto);
		parrafo.appendChild(textoPie);

		document.body.appendChild(elDivCortina);

		elDiv.appendChild(elDivCerrarSuperior);
		elDiv.appendChild(imagen);

		elDivPie.appendChild(parrafo);
		elDivPie.appendChild(elDivFirma);


		elDiv.appendChild(elDivPie);
		elDiv.appendChild(elDivCerrar);
		elDivId.appendChild(elDiv);


		document.body.appendChild(elDivId);

		elemento = document.getElementById("cortina"); // si hacemos clic fuera de la foto, que se quite igualmente
		elemento.onclick = function() {
				METComentarios_hideElement("contenedorAmpliarFoto");
				METComentarios_hideElement("cortina");
		}


}

function METComentarios_hideElement(cualId) {
		var elemento = document.getElementById(cualId);
		// cogemos el padre del elemento con parentNode
		var padre = elemento.parentNode;
		// y nos ventilamos al hijo
		padre.removeChild(elemento);
}


function METComentarios_checkText(obj, url) {
    text = obj.value;

    var m = text.match(/#[0-9]+/g);
    var str = "";
    if (m) {
        for (i = 0; i < m.length; i++) {
            //alert ("s vale: "+str+"\\n adding: "+m[i]);
            str = str + m[i] + ",";
        }
	}

	var m = text.match(/n\xBA {0,1}[0-9]+/g);
	if (m) {
		for (i = 0; i < m.length; i++) {
		//alert ("s vale: "+str+"\\n adding: "+m[i]);
			str = str + m[i] + ",";
		}
	}
	
	var m = text.match(/comentario [0-9]+/g);
	if (m) {
		for (i = 0; i < m.length; i++) {
		//alert ("s vale: "+str+"\\n adding: "+m[i]);
			str = str + m[i] + ",";
		}
		str = str.replace(/comentario /g, "");
	}

	if ( str ) {
        var num = str.replace(/[; <#&n\xBA]/g, "");
        if (pedido != num) {
            METComentarios_getCommentByNum(url, num);
            pedido = num;
            }
    }


}

function METComentarios_textEvent(e, url) {
    if (e.keyCode == '32' || e.keyCode == '13' ) {
        if (e.target) targ = e.target;
        else if (e.srcElement) targ = e.srcElement;
        if (targ.nodeType == 3) // Safari bug
            targ = targ.parentNode;

        METComentarios_checkText(targ, url);
    }

    return true; // Continue handling
}


function METComentarios_createTipComments(numeroComentario,textoComentario,autor, obj) {

	ratonY = METUtils_calcPosition (obj, "offsetTop");
	ratonX = METUtils_calcPosition (obj, "offsetLeft");

	var elDivTip = document.createElement('div'); // creamos el div
	elDivTip.className = "tip"; // le ponemos class .tip
	elDivTip.setAttribute("id", "tip"); // asignamos el id #tip
	
	var elDivComentario = document.createElement('div');
	elDivComentario.className = "comentario";
	
	// numero comentario
	var elDivNComentario = document.createElement('div');
	elDivNComentario.className = "numero"; 
	var texto = document.createTextNode('Comentario nš '+numeroComentario);
	elDivNComentario.appendChild(texto);
	
	// textocomentario
	var elDivTextoComentario = document.createElement('div');
	elDivTextoComentario.className = "texto"; 
	elDivTextoComentario.setAttribute("id", "comentario_texto");

	// firma
	var elDivFirma = document.createElement('div');
	elDivFirma.className = "firma";
	var texto = document.createTextNode('por ');
	elDivFirma.appendChild(texto);
	var spanAutor = document.createElement('span');
	var texto = document.createTextNode(autor);
	spanAutor.appendChild(texto);
	elDivFirma.appendChild(spanAutor);

	elDivComentario.appendChild(elDivNComentario);
	elDivComentario.appendChild(elDivTextoComentario);
	elDivComentario.appendChild(elDivFirma);

	elDivTip.appendChild(elDivComentario);
	
	document.body.appendChild(elDivTip);
	
	document.getElementById('comentario_texto').innerHTML = textoComentario;	
	
	elemento = document.getElementById('tip');
	
	var posX = ratonX;
	var posY = ratonY;
	var anchoPantalla = document.body.clientWidth;
	
	if( ( posX + 400) > anchoPantalla ) posX = anchoPantalla - 440;
	
	elemento.style.top = posY+20+"px"; // ... le asignamos las x,y del raton
	elemento.style.left = posX+"px";
	elemento.style.display = "block";
	
} // METComentarios_createTipComments

function METUtils_calcPosition(obj, attr) {
	var val=0;
	while (obj) {
		val+=obj[attr];
		obj=obj.offsetParent
	}
	return val
} // METUtils_calcPosition


