function open_ext_link()
{
	// On récupère tous les liens de la page
	var links = document.getElementsByTagName('a');
	// On boucle sur les liens
	for (var i = 0 ; i < links.length ; ++i)  {
		// On teste si la classe est LinkOut
		if ((links[i].className == 'LinkOut')||(links[i].className == 'LinkFile'))  {
			// Une action de type onclick est ajoutée au lien
			links[i].onclick = function()  {
				window.open(this.href);
				return false;
			};
		}
	}
}

var cls = (function() {

	function re(cn) {

		return new RegExp("(^|\\s)" + cn + "(\\s|$)");

	}



	var that = {

		has: function(el, cn) {

			return re(cn).test(el.className);

		},



		add: function(el, cn) {

			if (!el.className) {

				el.className = cn;

			} else if (!that.has(el, cn)) {

				el.className += " " + cn;

			}

		},



		rem: function(el, cn) {

			el.className = el.className.replace(re(cn), function(m, c1, c2) { return c1 && c2; });

		},



		replace: function(el, cn, newCn) {

			el.className = el.className.replace(re(cn), "$1" + newCn + "$2");

		},



		query: function(cn, tn, root) {

			var els = (root || (root = document)).getElementsByTagName(tn || (tn = "*"));

			if (!els.length && root.all && tn === "*") {

				els = root.all;

			}



			var res = [], r = re(cn);

			for (var i = 0, el; (el = els[ i]); ++i) {

				if (r.test(el.className)) {

					res[res.length] = el;

				}

			}



			return res;

		}

	};

	return that;

})();
