/****************************************
(A) FUNCIONES GENERALES DE MANEJO DE EVENTOS.
****************************************/

// 1. Función para añadir eventos acumulativos.
function addEvent(obj, evType, fn) {
	if (obj.addEventListener) { // W3C DOM: Netscape 6, Mozilla...
		obj.addEventListener(evType, fn, true);
		return true;
	}
	else if (obj.attachEvent) { // MSIE 5+
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	}
	else {return false;}
}


// 2. Función para eliminar eventos.
function removeEvent(obj, evType, fn) {
	if (obj.removeEventListener) { // W3C DOM: Netscape 6, Mozilla...
		obj.removeEventListener(evType, fn, true);
		return true;
	}
	else if (obj.detachEvent) { // MSIE 5+
		var r = obj.detachEvent("on"+evType, fn);
		return r;
	}
	else {return false;}
}


// 3. Función para localizar el elemento origen de un evento.
function getEventSrc(e) {
	e = (e) ? e : ((window.event) ? window.event : "")
	if (e) {
		var elt
		if (e.target) {elt = (e.target.nodeType == 3) ? e.target.parentNode : e.target;}
		else {elt = e.srcElement;}
		return elt;
	}
	else {return false;}
}



/****************************************
(B) EVENTOS CONCRETOS DE USO EN TODAS LAS PÁGINAS.
****************************************/

// 1. Ponemos this.blur() a todos los links que tengan blur="true".
// <a blur="true">
/*
addEvent(window, 'load', function() {
	for (var i=0; i<allLinks.length; i++) {
		if (allLinks[i].getAttribute("blur")) {
			addEvent(allLinks[i], 'focus', blurLink);
		}
	}
});
*/
function blurLink(event) {
	var elt = getEventSrc(event);
	elt.blur();
}

// 2. Dificultamos la selección de imágenes.
// <img nomenu="true">
addEvent(window, 'load', function() {
	for (var i=0; i<allImages.length; i++) {
		if (allImages[i].getAttribute('nomenu')) {
			addEvent(allImages[i], 'contextmenu', retFalse);
			addEvent(allImages[i], 'selectstart', retFalse);
			addEvent(allImages[i], 'dragstart', retFalse);
		}
	}
});
function retFalse() {
	return false;
}



/****************************************
(C) FUNCIONES CONCRETAS DE USO EN TODAS LAS PÁGINAS.
****************************************/

// 1. Window.status en blanco. Usado tras salir de campos de formulario.
function statusBlank() {
	window.status = '';
	return true;
}
