/*Generated by Museando 2007*/

var Links=0;
var Everything=0;
var Compress=0;
var expdate = new Date ();
expdate.setTime(expdate.getTime() + (24 * 60 * 60 * 1000 * 31 * 9));

function getCookieVal (offset) {
    var endstr = document.cookie.indexOf (";", offset); //; signifies end of value
    if (endstr == -1)
	endstr = document.cookie.length; //if -1 then take it to the end
    return unescape(document.cookie.substring(offset, endstr)); //convert to readable text
}

function GetCookie (name) {
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) {
	var j = i + alen;
	if (document.cookie.substring(i, j) == arg)
	    return getCookieVal(j);
	i = document.cookie.indexOf(" ", i) + 1;
	if (i == 0) break; }
    return null; 
}

function SetCookie (name, value) {
    var argv = SetCookie.arguments;
    var argc = SetCookie.arguments.length;
    var expires = (argc > 2) ? argv[2] : null;
    var path = (argc > 3) ? argv[3] : null;
    var domain = (argc > 4) ? argv[4] : null;
    var secure = (argc > 5) ? argv[5] : false;
    document.cookie = name + "=" + escape (value) +
	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
	((path == null) ? "" : ("; path=" + path)) +
	((domain == null) ? "" : ("; domain=" + domain)) +
	((secure == true) ? "; secure" : ""); 
}


function AnchorHiLiter() {
    var anchor=location.hash;
    if (anchor) {
	re=RegExp('#','');
	posthash=anchor.replace(re,'');
	var as=document.getElementsByTagName("a");
	for (var i=0;i<as.length;i++){
	    if (as[i].name==posthash) 
	    {
		var node = as[i].parentNode;
		node.style.background = '#ffa';
		var a=document.createElement("a");
		a.setAttribute("href","#top");
		a.setAttribute("class","toplink");
		a.appendChild(document.createTextNode("[Arriba]"));
		node.insertBefore(a,node.childNodes[1]);
		/*MUH out of the loop*/
		break;
	    }
	}
    }
}

function SpanHiLiter() {
    var span=location.hash;
    if (span) {
	re=RegExp('#','');
	posthash=span.replace(re,'');
	var as=document.getElementsByTagName("span");
	for (var i=0;i<as.length;i++){
	    if (as[i].name==posthash || as[i].id==posthash) 
	    {
		as[i].style.background = '#ffa';
		/*MUH out of the loop*/
		break;
	    }
	}
    }
}

function setdisplay() {


    var spans = document.getElementsByTagName('span');
    for (i=0;i<spans.length;i++) {
	if (spans[i].className=='footnote') {
	    var notes=document.getElementById('footnote');
	    notes.className='footnoteButtonShow';
	    break;
	}
    }
    /*MUH 25-6-05
    var Links = GetCookie("Links");
    */
    var Links = 1;
    var Everything = GetCookie("Everything");
    if (Links==1) turnOn('links');
    if (Everything==1) turnOn('everything');

    var testFP = document.getElementById('widepixel');  
    if (testFP && testFP.width=='2000') {
	Compress = GetCookie("Compress");
	if (Compress==1) compress();
    }
    /*AnchorHiLiter();*/
    SpanHiLiter();
    googleSearchHighlight();

/*    color(); */
}

/* http://www.kryogenix.org/code/browser/searchhi/ */
/* Modified 20021006 to fix query string parsing and add case insensitivity */
function highlightWord(node,word) {
	// Iterate into this nodes childNodes
	if (node.hasChildNodes) {
		var hi_cn;
		for (hi_cn=0;hi_cn<node.childNodes.length;hi_cn++) {
			highlightWord(node.childNodes[hi_cn],word);
		}
	}
	
	// And do this node itself
	if (node.nodeType == 3) { // text node
		tempNodeVal = node.nodeValue.toLowerCase();
		tempWordVal = word.toLowerCase();
		if (tempNodeVal.indexOf(tempWordVal) != -1) {
			pn = node.parentNode;
			if (pn.className != "searchword") {
				// word has not already been highlighted!
				nv = node.nodeValue;
				ni = tempNodeVal.indexOf(tempWordVal);
				// Create a load of replacement nodes
				before = document.createTextNode(nv.substr(0,ni));
				docWordVal = nv.substr(ni,word.length);
				after = document.createTextNode(nv.substr(ni+word.length));
				hiwordtext = document.createTextNode(docWordVal);
				hiword = document.createElement("span");
				hiword.className = "searchword";
				hiword.appendChild(hiwordtext);
				pn.insertBefore(before,node);
				pn.insertBefore(hiword,node);
				pn.insertBefore(after,node);
				pn.removeChild(node);
			}
		}
	}
}

function googleSearchHighlight() {
	if (!document.createElement) return;
	ref = document.referrer;
	if (ref.indexOf('?') == -1) return;
	qs = ref.substr(ref.indexOf('?')+1);
	qsa = qs.split('&');
	for (i=0;i<qsa.length;i++) {
		qsip = qsa[i].split('=');
	        if (qsip.length == 1) continue;
        	if (qsip[0] == 'query' || qsip[0] == 'q' || qsip[0] == 'p') { 
		/* query= for local search, q= for Google, p= for Yahoo */
		    words = unescape(qsip[1].replace(/\+/g,' ')).split(/\s+/);
		    for (w=0;w<words.length;w++) {
			highlightWord(document.getElementsByTagName("body")[0],words[w]);
		    }
	        }
	}
}


function randHex() {
    var a = Math.floor(Math.random() * 256);
    var b = Math.floor(Math.random() * 256);
    var c = Math.floor(Math.random() * 256);
    return '#' + a.toString(16) + b.toString(16) + c.toString(16);
}

Colors = new Array ('#aca', '#ddd', '#ccc', '#bbb');

function color() {
   var divs = document.getElementsByTagName('td');
   var i=0;
   for (j=0;j<divs.length;j++) {
       if (divs[j].className=='frontBox') {
	   divs[j].style.background=Colors[i]; 
	   i++;
       }
   }
}

function LayerShow(layer) {
    var el = document.getElementById(layer);
    el.style.display='block';
    linker(el);
}

function LayerHide(layer) {
    var el = document.getElementById(layer);
    el.style.display='none';
}

var LastGraph;
var GraphNotes=0;
function SPN(o) {
    if (Everything!=1) {
	if (LastGraph && o!=LastGraph) {
	    var spans = LastGraph.getElementsByTagName('span');
	    for (i=0;i<spans.length;i++) {
		if (spans[i].className=='footnoteShow') {
		    spans[i].className='footnote';
		}
	    }
	    GraphNotes=0;
	}
	
	LastGraph=o;
	
	var spans = o.getElementsByTagName('span');
	
	if (!GraphNotes) {
	    for (i=0;i<spans.length;i++) {
		if (spans[i].className=='footnote') {
		    spans[i].className='footnoteShow';
		}
		GraphNotes=1;
	    }
	}
	else {
	    for (i=0;i<spans.length;i++) {
		if (spans[i].className=='footnoteShow') {
		    spans[i].className='footnote';
		}
		GraphNotes=0;
	    }
	}
    }
}

function SPL(o) {
    if (Links!=1) {
	if (Links==0) {
	    linker(o);
	}
    }
}

function HPL(o) {
    if (Links!=1 && Links==0) {
	var as = o.getElementsByTagName('A');
	for (i=0;i<as.length;i++) {
	    as[i].className='contenthide';
	}
    }
}


function turnOn(state) {
    if (state=='links') {
	if (Links==0) {
	    linker(document);
	    Links=1;
	    SetCookie("Links","1",expdate);
	}
	else {
	    var as = document.getElementsByTagName('A');
	    for (i=0;i<as.length;i++) {
		as[i].className='';
	    }
	    Links=0;
	    SetCookie("Links","0",expdate);
	}
    }
    if (state=='everything') {
	if (Everything==0) {
	    var spans=document.getElementsByTagName("span");
	    for (var i=0;i<spans.length;i++){
		if (spans[i].className=="footnote") {
		    spans[i].className="footnoteShow";
		}
	    }
	    Everything=1;
	    SetCookie("Everything","1",expdate);
	}
	else {
	    var spans=document.getElementsByTagName("span");
	    for (var i=0;i<spans.length;i++){
		if (spans[i].className=="footnoteShow") {
		    spans[i].className="footnote";
		}
	    }
	    Everything=0;
	    SetCookie("Everything","0",expdate);
	}
    }
}

function compress() {
    var img = document.getElementById('widepixel');
    img.width='700';

    var mast = document.getElementById('mastHead');
    mast.className='mastHeadNarrow';

    var buttona = document.getElementById('compress');
    buttona.style.display='none';

    var buttonb = document.getElementById('expand');
    buttonb.style.display='inline';

    var divs = document.getElementsByTagName('div');
    var RE = new RegExp('(frontBox)', 'i');
    for (var i=0;i<divs.length;i++){
	if (RE.test(divs[i].className)) {
	    divs[i].style.position='relative';
	    divs[i].style.left='10px';
	}
    }

    var hs = document.getElementsByTagName('H3');
    for (var i=0;i<hs.length;i++){
	if (hs[i].className=='frontBoxHeaderAlt') {
	    hs[i].className='frontBoxHeaderAltInline';
	}
    }
    var body = document.getElementsByTagName('body');
    for (var i=0;i<body.length;i++){
	body[i].className='inside';
    }

    SetCookie("Compress","1",expdate);
}

function expand() {
    var img = document.getElementById('widepixel');
    img.width='2000';
    
    var mast = document.getElementById('mastHead');
    mast.className='mastHead';

    var buttona = document.getElementById('compress');
    buttona.style.display='inline';

    var buttonb = document.getElementById('expand');
    buttonb.style.display='none';
    
    var divs = document.getElementsByTagName('div');
    var RE = new RegExp('(frontBox)', 'i');
    for (var i=0;i<divs.length;i++){
	if (divs[i].className=='twoFrontBox') { 
	    divs[i].style.left='720px'; 
	    divs[i].style.position='absolute';
	}
	
	if (divs[i].className=='threeFrontBox') { 
	    divs[i].style.left='930px';
	    divs[i].style.position='absolute';
	}

	if (divs[i].className=='fourFrontBox') { 
	    divs[i].style.left='1140px';
	    divs[i].style.position='absolute';
	}


	if (divs[i].className=='fiveFrontBox') { 
	    divs[i].style.left='1350px';
	    divs[i].style.position='absolute';
	}

	if (divs[i].className=='sixFrontBox') { 
	    divs[i].style.left='1560px';
	    divs[i].style.position='absolute';
	}
    }

    var hs = document.getElementsByTagName('H3');
    for (var i=0;i<hs.length;i++){
	if (hs[i].className=='frontBoxHeaderAltInline') {
	    hs[i].className='frontBoxHeaderAlt';
	}
    }
    var body = document.getElementsByTagName('body');
    for (var i=0;i<body.length;i++){
	body[i].className='';
    }
    SetCookie("Compress","0",expdate);
}

function linker(o) {
    var URL = new RegExp('(http://|mailto:)', 'i');
    var fta = new RegExp('(^http://ftrain\.com)', 'i');
    var ftb = new RegExp('(^http://www\.ftrain\.com)', 'i');
    var as = o.getElementsByTagName('A');
    for (i=0;i<as.length;i++) {
	if (URL.test(as[i].href) && !fta.test(as[i].href) && !ftb.test(as[i].href)) {
	    as[i].className='external';
	}
	else as[i].className='internal';
    }
}

function anno(o) {
    o.parentNode.childNodes[3].style.display="inline";
}

function annohide(o) {
    o.parentNode.childNodes[3].style.display="none";
}



/* This notice must be untouched at all times.

wz_tooltip.js    v. 3.44

The latest version is available at
http://www.walterzorn.com
or http://www.devira.com
or http://www.walterzorn.de

Copyright (c) 2002-2005 Walter Zorn. All rights reserved.
Created 1. 12. 2002 by Walter Zorn (Web: http://www.walterzorn.com )
Last modified: 6. 12. 2006

Cross-browser tooltips working even in Opera 5 and 6,
as well as in NN 4, Gecko-Browsers, IE4+, Opera 7+ and Konqueror.
No onmouseouts required.
Appearance of tooltips can be individually configured
via commands within the onmouseovers.

LICENSE: LGPL

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License (LGPL) as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

For more details on the GNU Lesser General Public License,
see http://www.gnu.org/copyleft/lesser.html
*/



////////////////  GLOBAL TOOPTIP CONFIGURATION  /////////////////////
var ttAbove       = false;        // tooltip above mousepointer? Alternative: true
var ttBgColor     = "#e6ecff";
var ttBgImg       = "";           // path to background image;
var ttBorderColor = "#003399";
var ttBorderWidth = 1;
var ttDelay       = 500;          // time span until tooltip shows up [milliseconds]
var ttFontColor   = "#000066";
var ttFontFace    = "arial,helvetica,sans-serif";
var ttFontSize    = "11px";
var ttFontWeight  = "normal";     // alternative: "bold";
var ttLeft        = false;        // tooltip on the left of the mouse? Alternative: true
var ttOffsetX     = 12;           // horizontal offset of left-top corner from mousepointer
var ttOffsetY     = 15;           // vertical offset                   "
var ttOpacity     = 100;          // opacity of tooltip in percent (must be integer between 0 and 100)
var ttPadding     = 3;            // spacing between border and content
var ttShadowColor = "";
var ttShadowWidth = 0;
var ttStatic      = false;        // tooltip NOT move with the mouse? Alternative: true
var ttSticky      = false;        // do NOT hide tooltip on mouseout? Alternative: true
var ttTemp        = 0;            // time span after which the tooltip disappears; 0 (zero) means "infinite timespan"
var ttTextAlign   = "left";
var ttTitleColor  = "#ffffff";    // color of caption text
var ttWidth       = 300;
/*MUH 31-3-06*/
var ttforcevisible = false;   // safe position in the screen (tt_forcex,tt_forcey) independent of the event origin
var ttforcefromleft = 50;
var ttforcefrombottom = 50;
/**/

////////////////////  END OF TOOLTIP CONFIG  ////////////////////////



//////////////  TAGS WITH TOOLTIP FUNCTIONALITY  ////////////////////
// List may be extended or shortened:
var tt_tags = new Array("a","area","b","big","caption","center","code","dd","div","dl","dt","em","h1","h2","h3","h4","h5","h6","i","img","input","li","map","ol","p","pre","s", "select", "small","span","strike","strong","sub","sup","table","td","textarea","th","tr","tt","u","var","ul","layer");
/////////////////////////////////////////////////////////////////////



///////// DON'T CHANGE ANYTHING BELOW THIS LINE /////////////////////
var tt_obj = null,         // current tooltip
tt_ifrm = null,            // iframe to cover windowed controls in IE
tt_objW = 0, tt_objH = 0,  // width and height of tt_obj
tt_objX = 0, tt_objY = 0,
tt_offX = 0, tt_offY = 0,
xlim = 0, ylim = 0,        // right and bottom borders of visible client area
tt_sup = false,            // true if T_ABOVE cmd
tt_sticky = false,         // tt_obj sticky?
tt_wait = false,
tt_act = false,            // tooltip visibility flag
tt_sub = false,            // true while tooltip below mousepointer
tt_u = "undefined",
tt_mf = null,              // stores previous mousemove evthandler
// Opera: disable href when hovering <a>
tt_tag = null;             // stores hovered dom node, href and previous statusbar txt


var tt_db = (document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body? document.body : null,
tt_n = navigator.userAgent.toLowerCase(),
tt_nv = navigator.appVersion;
// Browser flags
var tt_op = !!(window.opera && document.getElementById),
tt_op6 = tt_op && !document.defaultView,
tt_op7 = tt_op && !tt_op6,
tt_ie = tt_n.indexOf("msie") != -1 && document.all && tt_db && !tt_op,
/* MUH 25-12-06 ie7 not used
tt_ie7 = tt_ie && typeof document.body.style.maxHeight != tt_u,
tt_ie6 = tt_ie && !tt_ie7 && parseFloat(tt_nv.substring(tt_nv.indexOf("MSIE")+5)) >= 5.5,
*/
tt_ie6 = tt_ie && parseFloat(tt_nv.substring(tt_nv.indexOf("MSIE")+5)) >= 5.5,
tt_n4 = (document.layers && typeof document.classes != tt_u),
tt_n6 = (!tt_op && document.defaultView && typeof document.defaultView.getComputedStyle != tt_u),
tt_w3c = !tt_ie && !tt_n6 && !tt_op && document.getElementById,
tt_ce = document.captureEvents && !tt_n6;

function tt_Int(t_x)
{
	var t_y;
	return isNaN(t_y = parseInt(t_x))? 0 : t_y;
}
function wzReplace(t_x, t_y)
{
	var t_ret = "",
	t_str = this,
	t_xI;
	while((t_xI = t_str.indexOf(t_x)) != -1)
	{
		t_ret += t_str.substring(0, t_xI) + t_y;
		t_str = t_str.substring(t_xI + t_x.length);
	}
	return t_ret+t_str;
}
String.prototype.wzReplace = wzReplace;
function tt_N4Tags(tagtyp, t_d, t_y)
{
	t_d = t_d || document;
	t_y = t_y || new Array();
	var t_x = (tagtyp=="a")? t_d.links : t_d.layers;
	for(var z = t_x.length; z--;) t_y[t_y.length] = t_x[z];
	for(z = t_d.layers.length; z--;) t_y = tt_N4Tags(tagtyp, t_d.layers[z].document, t_y);
	return t_y;
}
function tt_Htm(tt, t_id, txt)
{
	var t_bgc = (typeof tt.T_BGCOLOR != tt_u)? tt.T_BGCOLOR : ttBgColor,
	t_bgimg   = (typeof tt.T_BGIMG != tt_u)? tt.T_BGIMG : ttBgImg,
	t_bc      = (typeof tt.T_BORDERCOLOR != tt_u)? tt.T_BORDERCOLOR : ttBorderColor,
	t_bw      = (typeof tt.T_BORDERWIDTH != tt_u)? tt.T_BORDERWIDTH : ttBorderWidth,
	t_ff      = (typeof tt.T_FONTFACE != tt_u)? tt.T_FONTFACE : ttFontFace,
	t_fc      = (typeof tt.T_FONTCOLOR != tt_u)? tt.T_FONTCOLOR : ttFontColor,
	t_fsz     = (typeof tt.T_FONTSIZE != tt_u)? tt.T_FONTSIZE : ttFontSize,
	t_fwght   = (typeof tt.T_FONTWEIGHT != tt_u)? tt.T_FONTWEIGHT : ttFontWeight,
	t_opa     = (typeof tt.T_OPACITY != tt_u)? tt.T_OPACITY : ttOpacity,
	t_padd    = (typeof tt.T_PADDING != tt_u)? tt.T_PADDING : ttPadding,
	t_shc     = (typeof tt.T_SHADOWCOLOR != tt_u)? tt.T_SHADOWCOLOR : (ttShadowColor || 0),
	t_shw     = (typeof tt.T_SHADOWWIDTH != tt_u)? tt.T_SHADOWWIDTH : (ttShadowWidth || 0),
	t_algn    = (typeof tt.T_TEXTALIGN != tt_u)? tt.T_TEXTALIGN : ttTextAlign,
	t_tit     = (typeof tt.T_TITLE != tt_u)? tt.T_TITLE : "",
	t_titc    = (typeof tt.T_TITLECOLOR != tt_u)? tt.T_TITLECOLOR : ttTitleColor,
	t_w       = (typeof tt.T_WIDTH != tt_u)? tt.T_WIDTH  : ttWidth;
	if(t_shc || t_shw)
	{
		t_shc = t_shc || "#c0c0c0";
		t_shw = t_shw || 5;
	}
	if(tt_n4 && (t_fsz == "10px" || t_fsz == "11px")) t_fsz = "12px";

	var t_optx = (tt_n4? '' : tt_n6? ('-moz-opacity:'+(t_opa/100.0)) : tt_ie? ('filter:Alpha(opacity='+t_opa+')') : ('opacity:'+(t_opa/100.0))) + ';';
	var t_y = '<div id="'+t_id+'" style="position:absolute;z-index:1010;';
	t_y += 'left:0px;top:0px;width:'+(t_w+t_shw)+'px;visibility:'+(tt_n4? 'hide' : 'hidden')+';'+t_optx+'">' +
		'<table border="0" cellpadding="0" cellspacing="0"'+(t_bc? (' bgcolor="'+t_bc+'" style="background:'+t_bc+';"') : '')+' width="'+t_w+'">';
	if(t_tit)
	{
		t_y += '<tr><td style="padding-left:3px;padding-right:3px;" align="'+t_algn+'"><font color="'+t_titc+'" face="'+t_ff+'" ' +
			'style="color:'+t_titc+';font-family:'+t_ff+';font-size:'+t_fsz+';"><b>' +
			(tt_n4? '&nbsp;' : '')+t_tit+'</b></font></td></tr>';
	}
	t_y += '<tr><td><table border="0" cellpadding="'+t_padd+'" cellspacing="'+t_bw+'" width="100%">' +
		'<tr><td'+(t_bgc? (' bgcolor="'+t_bgc+'"') : '')+(t_bgimg? ' background="'+t_bgimg+'"' : '')+' style="text-align:'+t_algn+';';
	if(tt_n6) t_y += 'padding:'+t_padd+'px;';
	t_y += '" align="'+t_algn+'"><font color="'+t_fc+'" face="'+t_ff+'"' +
		' style="color:'+t_fc+';font-family:'+t_ff+';font-size:'+t_fsz+';font-weight:'+t_fwght+';">';
	if(t_fwght == 'bold') t_y += '<b>';
	t_y += txt;
	if(t_fwght == 'bold') t_y += '</b>';
	t_y += '</font></td></tr></table></td></tr></table>';
	if(t_shw)
	{
		var t_spct = Math.round(t_shw*1.3);
		if(tt_n4)
		{
			t_y += '<layer bgcolor="'+t_shc+'" left="'+t_w+'" top="'+t_spct+'" width="'+t_shw+'" height="0"></layer>' +
				'<layer bgcolor="'+t_shc+'" left="'+t_spct+'" align="bottom" width="'+(t_w-t_spct)+'" height="'+t_shw+'"></layer>';
		}
		else
		{
			t_optx = tt_n6? '-moz-opacity:0.85;' : tt_ie? 'filter:Alpha(opacity=85);' : 'opacity:0.85;';
			t_y += '<div id="'+t_id+'R" style="position:absolute;background:'+t_shc+';left:'+t_w+'px;top:'+t_spct+'px;width:'+t_shw+'px;height:1px;overflow:hidden;'+t_optx+'"></div>' +
				'<div style="position:relative;background:'+t_shc+';left:'+t_spct+'px;top:0px;width:'+(t_w-t_spct)+'px;height:'+t_shw+'px;overflow:hidden;'+t_optx+'"></div>';
		}
	}
	return(t_y+'</div>');
}
function tt_EvX(t_e)
{
	var t_y = tt_Int(t_e.pageX || t_e.clientX || 0) +
		tt_Int(tt_ie? tt_db.scrollLeft : 0) +
		tt_offX;

	if(ttforcevisible) t_y = ttforcefromleft;
	else
	/**/
	if(t_y > xlim) t_y = xlim;
	var t_scr = tt_Int(window.pageXOffset || (tt_db? tt_db.scrollLeft : 0) || 0);
	if(t_y < t_scr) t_y = t_scr;
	return t_y;
}
function tt_EvY(t_e)
{
	var t_y2;

	var t_y = tt_Int(t_e.pageY || t_e.clientY || 0) +
		tt_Int(tt_ie? tt_db.scrollTop : 0);

	/*MUH forcevisible*/
	if(ttforcevisible)
	{
		t_y = ylim-ttforcefrombottom;	
	}
	else
	/**/
	if(tt_sup && (t_y2 = t_y - (tt_objH + tt_offY - 15)) >= tt_Int(window.pageYOffset || (tt_db? tt_db.scrollTop : 0) || 0))
	{
		 t_y -= (tt_objH + tt_offY - 15);
	}
	else if(t_y > ylim || !tt_sub && t_y > ylim-24)
	{
		t_y -= (tt_objH + 5);
		tt_sub = false;
	}
	else
	{
		t_y += tt_offY;
		tt_sub = true;
	}
	return t_y;
}
function tt_ReleasMov()
{
	if(document.onmousemove == tt_Move)
	{
		if(!tt_mf && tt_ce) document.releaseEvents(Event.MOUSEMOVE);
		document.onmousemove = tt_mf;
	}
}
function tt_ShowIfrm(t_x)
{
	if(!tt_obj || !tt_ifrm) return;
	if(t_x)
	{
		tt_ifrm.style.width = tt_objW+'px';
		tt_ifrm.style.height = tt_objH+'px';
		tt_ifrm.style.display = "block";
	}
	else tt_ifrm.style.display = "none";
}
function tt_GetDiv(t_id)
{
	return(
		tt_n4? (document.layers[t_id] || null)
		: tt_ie? (document.all[t_id] || null)
		: (document.getElementById(t_id) || null)
	);
}
function tt_GetDivW()
{
	return tt_Int(
		tt_n4? tt_obj.clip.width
		: (tt_obj.style.pixelWidth || tt_obj.offsetWidth)
	);
}
function tt_GetDivH()
{
	return tt_Int(
		tt_n4? tt_obj.clip.height
		: (tt_obj.style.pixelHeight || tt_obj.offsetHeight)
	);
}

// Compat with DragDrop Lib: Ensure that z-index of tooltip is lifted beyond toplevel dragdrop element
function tt_SetDivZ()
{
	var t_i = tt_obj.style || tt_obj;
	if(t_i)
	{
		if(window.dd && dd.z)
			t_i.zIndex = Math.max(dd.z+1, t_i.zIndex);
		if(tt_ifrm) tt_ifrm.style.zIndex = t_i.zIndex-1;
	}
}
function tt_SetDivPos(t_x, t_y)
{
	var t_i = tt_obj.style || tt_obj;
	var t_px = (tt_op6 || tt_n4)? '' : 'px';
	t_i.left = (tt_objX = t_x) + t_px;
	t_i.top = (tt_objY = t_y) + t_px;
	//  window... to circumvent the FireFox Alzheimer Bug
	if(window.tt_ifrm)
	{
		tt_ifrm.style.left = t_i.left;
		tt_ifrm.style.top = t_i.top;
	}
}
function tt_ShowDiv(t_x)
{
	tt_ShowIfrm(t_x);
	if(tt_n4) tt_obj.visibility = t_x? 'show' : 'hide';
	else tt_obj.style.visibility = t_x? 'visible' : 'hidden';
	tt_act = t_x;
}
function tt_DeAlt(t_tag)
{
	if(t_tag)
	{
		if(t_tag.alt) t_tag.alt = "";
		if(t_tag.title) t_tag.title = "";
		var t_c = t_tag.children || t_tag.childNodes || null;
		if(t_c)
		{
			for(var t_i = t_c.length; t_i; )
				tt_DeAlt(t_c[--t_i]);
		}
	}
}
function tt_OpDeHref(t_e)
{
	var t_tag;
	if(t_e)
	{
		t_tag = t_e.target;
		while(t_tag)
		{
			if(t_tag.hasAttribute("href"))
			{
				tt_tag = t_tag
				tt_tag.t_href = tt_tag.getAttribute("href");
				tt_tag.removeAttribute("href");
				tt_tag.style.cursor = "hand";
				tt_tag.onmousedown = tt_OpReHref;
				tt_tag.stats = window.status;
				window.status = tt_tag.t_href;
				break;
			}
			t_tag = t_tag.parentElement;
		}
	}
}
function tt_OpReHref()
{
	if(tt_tag)
	{
		tt_tag.setAttribute("href", tt_tag.t_href);
		window.status = tt_tag.stats;
		tt_tag = null;
	}
}
function tt_Show(t_e, t_id, t_sup, t_delay, t_fix, t_left, t_offx, t_offy, t_static, t_sticky, t_temp, t_forcevisible/*MUH*/)
{
	if(tt_obj) tt_Hide();
	/*MUH*/
	ttforcevisible = t_forcevisible;

	tt_mf = document.onmousemove || null;
	if(window.dd && (window.DRAG && tt_mf == DRAG || window.RESIZE && tt_mf == RESIZE)) return;
	var t_sh, t_h;

	tt_obj = tt_GetDiv(t_id);
	if(tt_obj)
	{
		t_e = t_e || window.event;
		tt_sub = !(tt_sup = t_sup);
		tt_sticky = t_sticky;
		tt_objW = tt_GetDivW();
		tt_objH = tt_GetDivH();
		tt_offX = t_left? -(tt_objW+t_offx) : t_offx;
		tt_offY = t_offy;
		if(tt_op7) tt_OpDeHref(t_e);
		if(tt_n4)
		{
			if(tt_obj.document.layers.length)
			{
				t_sh = tt_obj.document.layers[0];
				t_sh.clip.height = tt_objH - Math.round(t_sh.clip.width*1.3);
			}
		}
		else
		{
			t_sh = tt_GetDiv(t_id+'R');
			if(t_sh)
			{
				t_h = tt_objH - tt_Int(t_sh.style.pixelTop || t_sh.style.top || 0);
				if(typeof t_sh.style.pixelHeight != tt_u) t_sh.style.pixelHeight = t_h;
				else t_sh.style.height = t_h+'px';
			}
		}

		xlim = tt_Int((tt_db && tt_db.clientWidth)? tt_db.clientWidth : window.innerWidth) +
			tt_Int(window.pageXOffset || (tt_db? tt_db.scrollLeft : 0) || 0) -
			tt_objW -
			(tt_n4? 21 : 0);
		ylim = tt_Int(window.innerHeight || tt_db.clientHeight) +
			tt_Int(window.pageYOffset || (tt_db? tt_db.scrollTop : 0) || 0) -
			tt_objH - tt_offY;

		tt_SetDivZ();
		if(t_fix) tt_SetDivPos(tt_Int((t_fix = t_fix.split(','))[0]), tt_Int(t_fix[1]));
		else tt_SetDivPos(tt_EvX(t_e), tt_EvY(t_e));

		var t_txt = 'tt_ShowDiv(\'true\');';
		if(t_sticky) t_txt += '{'+
				'tt_ReleasMov();'+
				'window.tt_upFunc = document.onmouseup || null;'+
				'if(tt_ce) document.captureEvents(Event.MOUSEUP);'+
				'document.onmouseup = new Function("window.setTimeout(\'tt_Hide();\', 10);");'+
			'}';
		else if(t_static) t_txt += 'tt_ReleasMov();';
		if(t_temp > 0) t_txt += 'window.tt_rtm = window.setTimeout(\'tt_sticky = false; tt_Hide();\','+t_temp+');';
		window.tt_rdl = window.setTimeout(t_txt, t_delay);

		if(!t_fix)
		{
			if(tt_ce) document.captureEvents(Event.MOUSEMOVE);
			document.onmousemove = tt_Move;
		}
	}
}
var tt_area = false;
function tt_Move(t_ev)
{
	if(!tt_obj) return;
	if(tt_n6 || tt_w3c)
	{
		if(tt_wait) return;
		tt_wait = true;
		setTimeout('tt_wait = false;', 5);
	}
	var t_e = t_ev || window.event;
	tt_SetDivPos(tt_EvX(t_e), tt_EvY(t_e));
	if(window.tt_op6)
	{
		if(tt_area && t_e.target.tagName != 'AREA') tt_Hide();
		else if(t_e.target.tagName == 'AREA') tt_area = true;
	}
}
function tt_Hide()
{
	if(window.tt_obj)
	{
		if(window.tt_rdl) window.clearTimeout(tt_rdl);
		if(!tt_sticky || !tt_act)
		{
			if(window.tt_rtm) window.clearTimeout(tt_rtm);
			tt_ShowDiv(false);
			tt_SetDivPos(-tt_objW, -tt_objH);
			tt_obj = null;
			if(typeof window.tt_upFunc != tt_u) document.onmouseup = window.tt_upFunc;
		}
		tt_sticky = false;
		if(tt_op6 && tt_area) tt_area = false;
		tt_ReleasMov();
		if(tt_op7) tt_OpReHref();
	}
}
function tt_Init()
{
	if(!(tt_op || tt_n4 || tt_n6 || tt_ie || tt_w3c)) return;

	var htm = tt_n4? '<div style="position:absolute;"></div>' : '',
	tags,
	t_tj,
	over,
	t_b,
	esc = 'return escape(';
	for(var i = tt_tags.length; i;)
	{--i;
		tags = tt_ie? (document.all.tags(tt_tags[i]) || 1)
			: document.getElementsByTagName? (document.getElementsByTagName(tt_tags[i]) || 1)
			: (!tt_n4 && tt_tags[i]=="a")? document.links
			: 1;
		if(tt_n4 && (tt_tags[i] == "a" || tt_tags[i] == "layer")) tags = tt_N4Tags(tt_tags[i]);
		for(var j = tags.length; j;)
		{--j;
			if(typeof (t_tj = tags[j]).onmouseover == "function" && t_tj.onmouseover.toString().indexOf(esc) != -1 && !tt_n6 || tt_n6 && (over = t_tj.getAttribute("onmouseover")) && over.indexOf(esc) != -1)
			{
				if(over) t_tj.onmouseover = new Function(over);
				var txt = unescape(t_tj.onmouseover());
				htm += tt_Htm(
					t_tj,
					"tOoLtIp"+i+""+j,
					txt.wzReplace("& ","&")
				);
				// window. to circumvent the FF Alzheimer Bug
				t_tj.onmouseover = new Function('e',
					'if(window.tt_Show && tt_Show) tt_Show(e,'+
					'"tOoLtIp' +i+''+j+ '",'+
					((typeof t_tj.T_ABOVE != tt_u)? t_tj.T_ABOVE : ttAbove)+','+
					((typeof t_tj.T_DELAY != tt_u)? t_tj.T_DELAY : ttDelay)+','+
					((typeof t_tj.T_FIX != tt_u)? '"'+t_tj.T_FIX+'"' : '""')+','+
					((typeof t_tj.T_LEFT != tt_u)? t_tj.T_LEFT : ttLeft)+','+
					((typeof t_tj.T_OFFSETX != tt_u)? t_tj.T_OFFSETX : ttOffsetX)+','+
					((typeof t_tj.T_OFFSETY != tt_u)? t_tj.T_OFFSETY : ttOffsetY)+','+
					((typeof t_tj.T_STATIC != tt_u)? t_tj.T_STATIC : ttStatic)+','+
					((typeof t_tj.T_STICKY != tt_u)? t_tj.T_STICKY : ttSticky)+','+
					((typeof t_tj.T_TEMP != tt_u)? t_tj.T_TEMP : ttTemp)+','+
					/*MUH*/
					((typeof t_tj.T_FORCEVISIBLE != tt_u)? t_tj.T_FORCEVISIBLE : ttforcevisible)+
					');'
				);
				t_tj.onmouseout = tt_Hide;
				tt_DeAlt(t_tj);
			}
		}
	}
	if(tt_ie6) htm += '<iframe id="TTiEiFrM" src="javascript:false" scrolling="no" frameborder="0" style="filter:Alpha(opacity=0);position:absolute;top:0px;left:0px;display:none;"></iframe>';
	t_b = document.getElementsByTagName? document.getElementsByTagName("body")[0] : tt_db;
	if(t_b && t_b.insertAdjacentHTML) t_b.insertAdjacentHTML("AfterBegin", htm);
	else if(t_b && typeof t_b.innerHTML != tt_u && document.createElement && t_b.appendChild)
	{
		var t_el = document.createElement("div");
		t_b.appendChild(t_el);
		t_el.innerHTML = htm;
	}
	else
		document.write(htm);
	if(document.getElementById) tt_ifrm = document.getElementById("TTiEiFrM");
}
//called in onload tt_Init();


var arrayTerm = new Array();
var arrayVariante = new Array();
var arrayDef = new Array();
var arrayImage = new Array();

function getText(el) {
  var text = "";
  for (var i = el.firstChild; i != null; i = i.nextSibling) {
    if (i.nodeType == 3 /* Node.TEXT_NODE, IE doesn't speak constants */)
      text += i.data;
    else if (i.firstChild != null)
      text += getText(i);
  }
  return text;
}

function FillGlossary(xmlDoc) 
{	
	var x = xmlDoc.getElementsByTagName('glosentry');
	for (i=0;i<x.length;i++)
	{
		arrayTerm[i]="";
		arrayVariante[i]="";
		arrayDef[i]="";
		arrayImage[i]="";
		for (j=0;j<x[i].childNodes.length;j++)
		{
			if (x[i].childNodes[j].nodeType != 1) continue;
			if(x[i].childNodes[j].nodeName == 'glosterm')
			{
				/*5-4-06*/
				var term = x[i].childNodes[j].getAttribute('texto');

				if(x[i].childNodes[j].getAttribute('variante'))
				{				
					arrayVariante[i] = term;	
				}
				else
				{
					arrayTerm[i] = term;	
				}
			}
			else if(x[i].childNodes[j].nodeName == 'glosdef')
			{			
				arrayDef[i] = getText(x[i].childNodes[j]);	

			}
			else if(x[i].childNodes[j].nodeName == 'img')
			{
				var image = x[i].childNodes[j].getAttribute('fichero');
				arrayImage[i] = image;	
			}
		}
	}
	tt_Init();
}

function GlossaryEntry(term) 
{	
	var entry;
	var termLowerCase = term.toLowerCase();
	var notfound = 'posibles' + arrayTerm.length + ' para ' + termLowerCase +' : ';
	for(i=0;i<arrayTerm.length;i++)
	{
		notfound += arrayTerm[i].toLowerCase() + ' ';
		if(arrayTerm[i].toLowerCase() == termLowerCase)
		{
			entry = arrayTerm[i].bold();
			if(arrayVariante[i].length > 0)
			{
				entry += " (plural " + arrayVariante[i].bold() + ")";
			}
			entry += ":<br/>" + arrayDef[i];
			if(arrayImage[i].length > 0)
			{
				entry += "<br/><img src=\'" + arrayImage[i] + "\' width=\'128\'/>";
			}
			return entry;
		}
	}
	for(i=0;i<arrayVariante.length;i++)
	{
		notfound += arrayVariante[i].toLowerCase() + ' ';
		if(arrayVariante[i].toLowerCase() == termLowerCase)
		{
			entry = arrayVariante[i].bold();
			if(arrayTerm[i].length > 0)
			{
				entry += " (singular " + arrayTerm[i].bold() + ")";
			}
			entry += ":<br/>" + arrayDef[i];			
			if(arrayImage[i].length > 0)
			{
				entry += "<br/><img src=\'" + arrayImage[i] + "\' width=\'128\'/>";
			}
			return entry;
		}
	}

	//alert(notfound);
	return "";

}

/*****************************************************************************************
          Script to import XML data files and make them available to JavaScript
                     v2.0.3 written by Mark Wilton-Jones, 13/04/2004
Updated 02/07/2004 to provide native Safari 1.2 and Opera 7.6 support using XMLHttpRequest
                   Updated 24/07/2004 to prevent a Safari caching bug
      Updated 02/10/2004 to include support for older Internet Explorer XML objects
 Updated 09/11/2004 to allow a delay for better response in browsers that use the iframe
******************************************************************************************

Please see http://www.howtocreate.co.uk/jslibs/ for details and a demo of this script
Please see http://www.howtocreate.co.uk/tutorials/jsexamples/importingXML.html for a demo and description
Please see http://www.howtocreate.co.uk/jslibs/termsOfUse.html for terms of use

To use this, insert the following into the head of your document:

<script type="text/javascript"><!--
//for older browsers like Netscape 4 ... if you care
window.onerror = function () { return true; }
//--></script>
<script src="PATH TO SCRIPT/importxml.js" type="text/javascript"></script>

This header file provides one function:
var canItWork = importXML( string: locationOfXMLFile, string: nameOfFunction[, optional boolean: allowCache[, optional boolean: delay]] );
eg.
var canItWork = importXML( 'myXML.xml', 'runThis' );

To support (Internet) Explorer 5 on Mac, the XML file should use a stylesheet:
<?xml-stylesheet type="text/css" href="blank.css"?>
Although that stylesheet could in fact be completely empty. Failure to do this will produce errors when you
try to manipulate the DOM of the XML file.

When the xml file has loaded, the named function will be run, and will be passed a reference to the document
object of the XML file. You can then manipulate the data in the file using W3C DOM scripting.

Browsers may cache the XML files (with Safari, the import fails if the file is already cached by the current page).
To prevent this, the script adds a timestamp to the end of each request URL (changes every millisecond).
If you do not want this timestamp to be added, pass the value 'true' as a third parameter.
var canItWork = importXML( 'myXML.xml', 'runThis', true );
This is not recommended.

Browsers that use the iframe may have problems if the XML takes a long time to load, as they will attempt to
access the data before it is ready. If you know that this might happen, you can use the delay parameter to
make the script wait for the specified amount of time before attemting to use the data, hopefully giving the
XML the chance to load. For example, to introduce a 2 second delay:
var canItWork = importXML( 'myXML.xml', 'runThis', false, 2000 );
_______________________________________________________________________________________*/


var MWJ_ldD = [];

function importXML( oURL, oFunct, oNoRand, oDelay ) {
	//note: in XML importing event handlers, 'this' refers to window
	if( !oNoRand ) { oURL += ( ( oURL.indexOf('?') + 1 ) ? '&' : '?' ) + ( new Date() ).getTime(); } //prevent cache
	if( window.XMLHttpRequest ) {
		//alternate XMLHTTP request - Gecko, Safari 1.2+ and Opera 7.6+
		MWJ_ldD[MWJ_ldD.length] = new XMLHttpRequest();
		MWJ_ldD[MWJ_ldD.length-1].onreadystatechange = new Function( 'if( MWJ_ldD['+(MWJ_ldD.length-1)+'].readyState == 4 && MWJ_ldD['+(MWJ_ldD.length-1)+'].status < 300 ) { '+oFunct+'(MWJ_ldD['+(MWJ_ldD.length-1)+'].responseXML); }' );
		MWJ_ldD[MWJ_ldD.length-1].open("GET", oURL, true);
		MWJ_ldD[MWJ_ldD.length-1].send(null);
		return true;
	}
	if( !navigator.__ice_version && window.ActiveXObject ) {
		//the Microsoft way - IE 5+/Win (ICE produces errors and fails to use try-catch correctly)
		try { //IE Mac has the property window.ActiveXObject but produces errors if you try and use it
			try { var tho = new ActiveXObject( 'Microsoft.XMLDOM' ); //newer
			} catch(e) { var tho = new ActiveXObject( 'Msxml2.XMLHTTP' ); } //older
			MWJ_ldD[MWJ_ldD.length] = tho;
			MWJ_ldD[MWJ_ldD.length-1].onreadystatechange = new Function( 'if( MWJ_ldD['+(MWJ_ldD.length-1)+'].readyState == 4 ) { '+oFunct+'(MWJ_ldD['+(MWJ_ldD.length-1)+']); }' );
			MWJ_ldD[MWJ_ldD.length-1].load(oURL);
			return true;
		} catch(e) {}
	}
	if( document.createElement && document.childNodes ) {
		//load the XML in an iframe
		var ifr = document.createElement('DIV');
		ifr.style.visibility = 'hidden'; ifr.style.position = 'absolute'; ifr.style.top = '0px'; ifr.style.left = '0px';
		//onload only fires in Opera so I use a timer for all
		if( !window.MWJ_XML_timer ) { window.MWJ_XML_timer = window.setInterval('MWJ_checkXMLLoad();',100); }
		ifr.innerHTML = '<iframe src="'+oURL+'" name="MWJ_XML_loader_'+MWJ_ldD.length+'" height="0" width="0"><\/iframe>';
		MWJ_ldD[MWJ_ldD.length] = oFunct+'MWJ_SPLIT'+(oDelay?oDelay:1)+'';
		document.body.appendChild(ifr);
		return true;
	}
	return false;
}

function MWJ_checkXMLLoad() {
	//check if each imported file is available (huge files may not have loaded completely - nothing I can do - use the delay to help)
	for( var x = 0; x < MWJ_ldD.length; x++ ) { if( MWJ_ldD[x] && window.frames['MWJ_XML_loader_'+x] ) {
		setTimeout( MWJ_ldD[x].split('MWJ_SPLIT')[0] + '(window.frames.MWJ_XML_loader_'+x+'.window.document);', parseInt(MWJ_ldD[x].split('MWJ_SPLIT')[1]) );
		MWJ_ldD[x] = false;
	} }
}

// Function to be launched during body.onload event
function Init ()
{
	setdisplay();
	importXML('Glosario.xml','FillGlossary');
}  
