{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil Verdana;}}
{\colortbl ;\red0\green0\blue255;}
{\*\generator Msftedit 5.41.15.1507;}\viewkind4\margt1080\margb720\margl1440\margr1440\paperw11906\paperh16838\psz9
{\*\jarte object RichPersist
  Version = 2
  LMarg = 1440
  RMarg = 1440
  TMarg = 1080
  BMarg = 720
  Equal = True
  Orient = 1
  Size = 9
  Width = 2100
  Height = 2970
  HdrMarg = 720
  FtrMarg = 720
  HdrFont.Charset = DEFAULT_CHARSET
  HdrFont.Color = clWindowText
  HdrFont.Height = -11
  HdrFont.Name = 'Arial'
  HdrFont.Style = []
  Wrap = 2
  WMark = 'None'
  WColor = 13822463
  BlackInk = True
  Duplex = 1
end
}\uc1\pard\f0\fs20 /* This script and many more are available free online at\par
The JavaScript Source!! {\field{\*\fldinst{HYPERLINK "http://javascript.internet.com"}}{\fldrslt{\ul\cf1 http://javascript.internet.com}}}\f0\fs20\par
Created by: Robert Nyman | {\field{\*\fldinst{HYPERLINK "http://www.robertnyman.com"}}{\fldrslt{\ul\cf1 http://www.robertnyman.com}}}\f0\fs20  */\par
/*\par
\tab GLT is developed by Robert Nyman, {\field{\*\fldinst{HYPERLINK "http://www.robertnyman.com"}}{\fldrslt{\ul\cf1 http://www.robertnyman.com}}}\f0\fs20\par
\tab For more information and copyright information,\par
 please see {\field{\*\fldinst{HYPERLINK "http://www.robertnyman.com/glt"}}{\fldrslt{\ul\cf1 http://www.robertnyman.com/glt}}}\f0\fs20\par
*/\par
\par
var GLT = \{\par
\tab // Customization parameters\par
\tab titleClassName : "glt-elm",\par
\tab topImagePath : "rounded-top.gif",\par
\tab bottomImagePath : "rounded-bottom.gif",\par
\tab suppressAltTooltipsInIE : true,\par
\tab timeBeforeShow : 100,\par
\tab titleOffsetX : 50,\par
\tab titleOffsetY : 10,\par
\tab fadeInTitle : true,\par
\tab fadeOutTitle : true,\par
\tab fadeStartLevel : 0.5,\par
\tab originalFadeLevel : 0.9,\par
\tab fadeIncrement : 0.1,\par
\tab timePerFadeStep : 50,\par
\par
\tab // GLT parameters\par
\tab titleElm : null,\par
\tab titleTextElm : null,\par
\tab titleTopImage : null,\par
\tab titleBottomImage : null,\par
\tab elementsWithTitles : null,\par
\tab currentElm : null,\par
\tab currentTitle : "",\par
\tab currentFadeLevel : 0,\par
\tab fadeTimer : null,\par
\par
\tab init : function ()\{\par
\tab\tab if(document.getElementById)\{\par
\tab\tab\tab this.elementsWithTitles = getElementsByAttribute(document, "*", "title");\par
\tab\tab\tab if(this.elementsWithTitles.length > 0)\{\par
\tab\tab\tab\tab this.titleElm = document.createElement("div");\par
\tab\tab\tab\tab this.titleElm.className = this.titleClassName;\par
\tab\tab\tab\tab if(this.topImagePath)\{\par
\tab\tab\tab\tab\tab this.titleTopImage = document.createElement("img");\par
\tab\tab\tab\tab\tab this.titleTopImage.setAttribute("src", this.topImagePath);\par
\tab\tab\tab\tab\tab this.titleElm.appendChild(this.titleTopImage);\par
\tab\tab\tab\tab\}\par
\tab\tab\tab\tab this.titleTextElm = document.createElement("p");\par
\tab\tab\tab\tab this.titleElm.appendChild(this.titleTextElm);\par
\tab\tab\tab\tab if(this.bottomImagePath)\{\par
\tab\tab\tab\tab\tab this.titleBottomImage = document.createElement("img");\par
\tab\tab\tab\tab\tab this.titleBottomImage.setAttribute("src", this.bottomImagePath);\par
\tab\tab\tab\tab\tab this.titleElm.appendChild(this.titleBottomImage);\par
\tab\tab\tab\tab\}\par
\tab\tab\tab\tab document.body.appendChild(this.titleElm);\par
\tab\tab\tab\tab this.useMSFilter = typeof this.titleElm.style.filter != "undefined";\par
\tab\tab\tab\tab this.applyEvents();\par
\tab\tab\tab\}\par
\tab\tab\}\par
\tab\},\par
\par
\tab applyEvents : function ()\{\par
\tab\tab var oElm;\par
\tab\tab var strClassName;\par
\tab\tab for(var i=0; i<this.elementsWithTitles.length; i++)\{\par
\tab\tab\tab oElm = this.elementsWithTitles[i];\par
\tab\tab\tab if(this.suppressAltTooltipsInIE)\{\par
\tab\tab\tab\tab oElm.setAttribute("alt", "");\par
\tab\tab\tab\}\par
\tab\tab\tab oElm.onmouseover = GLT.mouseOverElm;\par
\tab\tab\tab oElm.onmouseout = GLT.mouseOutElm;\par
\tab\tab\}\par
\tab\tab if(this.clickDocumentToClearFocus)\{\par
\tab\tab\tab this.addEvent(document, "click", function()\{FaT.clearFocus();\}, false);\par
\tab\tab\}\par
\tab\},\par
\par
\tab mouseOverElm : function (oEvent)\{\par
\tab\tab var oEvent = (typeof oEvent != "undefined")? oEvent : event;\par
\tab\tab if(typeof GLT != "undefined")\{\par
\tab\tab\tab GLT.startTimer(this, oEvent);\par
\tab\tab\tab oEvent.cancelBubble = true;\par
\tab\tab\tab oEvent.returnValue = false;\par
\tab\tab\tab if(oEvent.stopPropagation)\{\par
\tab\tab\tab\tab oEvent.stopPropagation();\par
\tab\tab\tab\}\par
\tab\tab\}\par
\tab\},\par
\par
\tab mouseOutElm : function (oEvent)\{\par
\tab\tab var oEvent = (typeof oEvent != "undefined")? oEvent : event;\par
\tab\tab if(typeof GLT != "undefined")\{\par
\tab\tab\tab GLT.hideTitle(this, oEvent);\par
\tab\tab\}\par
\tab\},\par
\par
\tab startTimer : function (oElm, oEvent)\{\par
\tab\tab if(!this.currentElm || this.currentElm != oElm || this.fadeTimer > 0)\{\par
\tab\tab\tab if(this.fadeTimer)\{\par
\tab\tab\tab\tab clearTimeout(this.fadeTimer);\par
\tab\tab\tab\}\par
\tab\tab\tab if(this.currentElm)\{\par
\tab\tab\tab\tab this.hideTitle(null, false, true);\par
\tab\tab\tab\}\par
\tab\tab\tab this.currentElm = oElm;\par
\tab\tab\tab this.currentTitle = this.currentElm.getAttribute("title");\par
\tab\tab\tab this.currentElm.setAttribute("title", "");\par
\tab\tab\tab this.currentX = oEvent.clientX;\par
\tab\tab\tab this.currentY = oEvent.clientY;\par
\tab\tab\tab this.fadeTimer = setTimeout("GLT.showTitle()", GLT.timeBeforeShow);\par
\tab\tab\}\par
    \},\par
\par
\tab stopTimer : function (oElm)\{\par
\tab\tab clearTimeout(GLT.fadeTimer);\par
    \},\par
\par
\tab showTitle : function ()\{\par
\tab\tab this.setTitlePos();\par
\tab\tab this.titleTextElm.innerHTML = this.currentTitle;\par
\tab\tab this.titleElm.style.visibility = "visible";\par
\tab\tab if(this.fadeInTitle)\{\par
\tab\tab\tab this.currentFadeLevel = this.fadeStartLevel;\par
\tab\tab\tab this.fadeIn();\par
\tab\tab\}\par
\tab\},\par
\par
\tab hideTitle : function (oElm, oEvent, forceHide)\{\par
\tab\tab if(this.currentElm && (oElm || forceHide))\{\par
\tab\tab\tab var bIsChildOfCurrentElm = false;\par
\tab\tab\tab if(typeof oEvent != "undefined" && typeof oEvent == "object")\{\par
\tab\tab\tab\tab var oEventTarget = (typeof oEvent.relatedTarget != "undefined")? oEvent.relatedTarget : oEvent.toElement;\par
\tab\tab\tab\tab if(oEventTarget)\{\par
\tab\tab\tab\tab\tab while(!bIsChildOfCurrentElm && oEventTarget && oEventTarget.nodeName && oEventTarget.nodeName.search(/body/i) == -1)\{\par
\tab\tab\tab\tab\tab\tab if(oEventTarget == oElm)\{\par
\tab\tab\tab\tab\tab\tab\tab bIsChildOfCurrentElm = true;\par
\tab\tab\tab\tab\tab\tab\tab break;\par
\tab\tab\tab\tab\tab\tab\}\par
\tab\tab\tab\tab\tab\tab oEventTarget = oEventTarget.parentNode;\par
\tab\tab\tab\tab\tab\}\par
\tab\tab\tab\tab\}\par
\tab\tab\tab\}\par
\tab\tab\tab if(!bIsChildOfCurrentElm)\{\par
\tab\tab\tab\tab this.stopTimer();\par
\tab\tab\tab\tab if(this.fadeOutTitle && (typeof forceHide == "undefined" || !forceHide))\{\par
\tab\tab\tab\tab\tab this.fadeOut();\par
\tab\tab\tab\tab\}\par
\tab\tab\tab\tab else\{\par
\tab\tab\tab\tab\tab clearTimeout(this.fadeTimer);\par
\tab\tab\tab\tab\tab this.currentElm.setAttribute("title", this.currentTitle);\par
\tab\tab\tab\tab\tab this.currentElm = null;\par
\tab\tab\tab\tab\tab this.titleElm.style.visibility = "hidden";\par
\tab\tab\tab\tab\}\par
\tab\tab\tab\}\par
\tab\tab\}\par
\tab\},\par
\par
\tab setTitlePos : function ()\{\par
\tab\tab var arrScroll = this.getWinSizeAndScroll();\par
\tab\tab var intTitleElmWidthAndPos = this.titleElm.offsetWidth + this.currentX + this.titleOffsetX;\par
\tab\tab var intDiff = intTitleElmWidthAndPos - arrScroll[0];\par
\tab\tab var intX = (intDiff > 0)? (this.currentX - intDiff) : (this.currentX + this.titleOffsetX);\par
\tab\tab this.titleElm.style.left = intX + arrScroll[2] + "px";\par
\tab\tab this.titleElm.style.top = this.currentY + arrScroll[3] + this.titleOffsetY + "px";\par
\tab\},\par
\par
\tab fadeIn : function (fadeOut)\{\par
\tab\tab this.currentFadeLevel = this.currentFadeLevel + this.fadeIncrement;\par
\tab\tab if(this.currentFadeLevel < this.originalFadeLevel)\{\par
\tab\tab\tab this.fadeTimer = setTimeout("GLT.fadeIn()", GLT.timePerFadeStep);\par
\tab\tab\}\par
\tab\tab else\{\par
\tab\tab\tab this.currentFadeLevel = this.originalFadeLevel;\par
\tab\tab\tab clearTimeout(this.fadeTimer);\par
\tab\tab\}\par
\tab\tab this.setFade();\par
\tab\},\par
\par
\tab fadeOut : function ()\{\par
\tab\tab this.currentFadeLevel = this.currentFadeLevel - this.fadeIncrement;\par
\tab\tab if(this.currentFadeLevel > this.fadeStartLevel)\{\par
\tab\tab\tab this.fadeTimer = setTimeout("GLT.fadeOut()", GLT.timePerFadeStep);\par
\tab\tab\}\par
\tab\tab else\{\par
\tab\tab\tab this.currentFadeLevel = this.originalFadeLevel;\par
\tab\tab\tab this.hideTitle(null, false, true);\par
\tab\tab\}\par
\tab\tab this.setFade();\par
\tab\},\par
\par
\tab setFade : function ()\{\par
\tab\tab // This line is b/c of a floating point bug in JavaScript\par
\tab\tab this.currentFadeLevel = Math.round(this.currentFadeLevel * 10) / 10;\par
\tab\tab if(this.titleElm)\{\par
\tab\tab\tab if(this.useMSFilter)\{\par
\tab\tab\tab\tab this.titleElm.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=" + (this.currentFadeLevel * 100) + ")";\par
\tab\tab\tab\}\par
\tab\tab\tab else\{\par
\tab\tab\tab\tab this.titleElm.style.opacity = this.currentFadeLevel;\par
\tab\tab\tab\}\par
\tab\tab\}\par
\tab\},\par
\par
\tab getWinSizeAndScroll : function ()\{\par
\tab\tab var intWidth = document.body.offsetWidth;\par
\tab\tab var intHeight = (typeof window.innerHeight != "undefined")? window.innerHeight : (document.documentElement && document.documentElement.clientHeight > 0)? document.documentElement.clientHeight : document.body.clientHeight;\par
\tab\tab var intXScroll = (typeof window.pageXOffset != "undefined")? window.pageXOffset : document.body.scrollLeft;\par
\tab\tab var intYScroll = (typeof window.window.pageYOffset != "undefined")? window.window.pageYOffset : (document.documentElement && document.documentElement.scrollTop > 0)? document.documentElement.scrollTop : document.body.scrollTop;\par
\tab\tab return [intWidth, intHeight, intXScroll, intYScroll];\par
\tab\},\par
\par
\tab closeSession : function (oEvent)\{\par
\tab\tab this.removeEvent(window, "load", function()\{GLT.init();\}, false);\par
\tab\tab GLT = null;\par
\tab\tab delete GLT;\par
\tab\},\par
\par
\tab addEvent : function (oObject, strEvent, oFunction, bCapture)\{\par
\tab\tab if(oObject)\{\par
\tab\tab\tab if(oObject.addEventListener)\{\par
\tab\tab\tab\tab oObject.addEventListener(strEvent, oFunction, bCapture);\par
\tab\tab\tab\}\par
\tab\tab\tab else if(window.attachEvent)\{\par
\tab\tab\tab\tab oObject.attachEvent(("on" + strEvent), oFunction)\par
\tab\tab\tab\}\par
\tab\tab\}\par
\tab\},\par
\par
\tab removeEvent : function (oObject, strEvent, oFunction, bCapture)\{\par
\tab\tab if(oObject)\{\par
\tab\tab\tab if(oObject.removeEventListener)\{\par
\tab\tab\tab\tab oObject.removeEventListener(strEvent, oFunction, false);\par
\tab\tab\tab\}\par
\tab\tab\tab else if(window.detachEvent)\{\par
\tab\tab\tab\tab oObject.detachEvent(("on" + strEvent), oFunction)\par
\tab\tab\tab\}\par
\tab\tab\}\par
\tab\}\par
\};\par
// ---\par
GLT.addEvent(window, "load", function()\{GLT.init();\}, false);\par
// ---\par
// Utility functions\par
// ---\par
function getElementsByAttribute(oElm, strTagName, strAttributeName, strAttributeValue)\{\par
\tab var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);\par
\tab var arrReturnElements = new Array();\par
\tab var oAttributeValue = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\\\s)" + strAttributeValue + "({\field{\*\fldinst{HYPERLINK "\\\\\\\\s|$)""}}{\fldrslt{\ul\cf1\\\\s|$)"}}}\f0\fs20 ) : null;\par
\tab var oCurrent;\par
\tab var oAttribute;\par
\tab for(var i=0; i<arrElements.length; i++)\{\par
\tab\tab oCurrent = arrElements[i];\par
\tab\tab oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName);\par
\tab\tab if(typeof oAttribute == "string" && oAttribute.length > 0)\{\par
\tab\tab\tab if(typeof strAttributeValue == "undefined" || (oAttributeValue && oAttributeValue.test(oAttribute)))\{\par
\tab\tab\tab\tab arrReturnElements.push(oCurrent);\par
\tab\tab\tab\}\par
\tab\tab\}\par
\tab\}\par
\tab return arrReturnElements;\par
\}\par
// ---\par
if(typeof Array.prototype.push != "function")\{\par
\tab Array.prototype.push = ArrayPush;\par
\tab function ArrayPush(value)\{\par
\tab\tab this[this.length] = value;\par
\tab\}\par
\}\par
\par
}
 