diff --git a/Smarty.addons.php b/Smarty.addons.php
index 98bf5d8b..6874110c 100644
--- a/Smarty.addons.php
+++ b/Smarty.addons.php
@@ -700,7 +700,9 @@ function smarty_func_assign_debug_info($args, &$smarty_obj) {
function smarty_func_overlib_init($args, &$smarty_obj) {
// be sure to place overlib.js where Smarty can locate it.
// overlib.js came with the distribution of Smarty.
+ echo '
'."\n".''."\n";
return;
}
diff --git a/Smarty.class.php b/Smarty.class.php
index f32b8519..12d88290 100644
--- a/Smarty.class.php
+++ b/Smarty.class.php
@@ -602,7 +602,11 @@ class Smarty
\*======================================================================*/
function _generate_debug_output() {
+ // we must force compile the debug template in case the environment
+ // changed between separate applications.
ob_start();
+ $force_compile_orig = $this->force_compile;
+ $this->force_compile = true;
if($this->_process_template($this->debug_tpl, $compile_path))
{
if ($this->show_info_include) {
@@ -614,6 +618,7 @@ function _generate_debug_output() {
}
}
$results = ob_get_contents();
+ $this->force_compile = $force_compile_orig;
ob_end_clean();
return $results;
}
diff --git a/docs.sgml b/docs.sgml
index b6f6430e..635b9ee2 100644
--- a/docs.sgml
+++ b/docs.sgml
@@ -56,8 +56,8 @@
pull variables from them into the templates. The list goes on.
- We started out writing out a spec for a template engine about a year
- ago. After finishing the spec, we began to work on a template engine
+ We started out writing out a spec for a template engine back in late
+ 1999. After finishing the spec, we began to work on a template engine
written in C that would hopefully be accepted for inclusion with PHP.
Not only did we run into many complicated technical barriers, but there
was also much heated debate about exactly what a template engine should
@@ -1530,14 +1530,15 @@ email: zaphod@slartibartfast.com<br>
- Request Variables
+ {$smarty} reserved variable
- You can access request variables in Smarty via the special variable
- {$smarty}. You can access get, post, cookies, server, env and
- session variables with the syntax in the following examples.
+ You can access reserved variables in Smarty via the special
+ variable {$smarty}. You can access request variables such as get,
+ post, cookies, server, env and session variables with the syntax in
+ the following examples.
- Request variable access was added to Smarty 1.4.4.
+ The special variable {$smarty} was added to Smarty 1.4.4.
@@ -1565,6 +1566,20 @@ email: zaphod@slartibartfast.com<br>
{* display the variable "username" from merged get/post/cookies/server/env *}
{$smarty.request.username}
+
+
+
+ The current date can be displayed with {$smarty.now}. This is a unix
+ timestamp of the current date/time.
+
+
+
+displaying current date
+
+
+{* use the date_formate modifier to format the date *}
+{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}
+
diff --git a/libs/Smarty.class.php b/libs/Smarty.class.php
index f32b8519..12d88290 100644
--- a/libs/Smarty.class.php
+++ b/libs/Smarty.class.php
@@ -602,7 +602,11 @@ class Smarty
\*======================================================================*/
function _generate_debug_output() {
+ // we must force compile the debug template in case the environment
+ // changed between separate applications.
ob_start();
+ $force_compile_orig = $this->force_compile;
+ $this->force_compile = true;
if($this->_process_template($this->debug_tpl, $compile_path))
{
if ($this->show_info_include) {
@@ -614,6 +618,7 @@ function _generate_debug_output() {
}
}
$results = ob_get_contents();
+ $this->force_compile = $force_compile_orig;
ob_end_clean();
return $results;
}
diff --git a/overlib.js b/overlib.js
index d1049817..b239636e 100644
--- a/overlib.js
+++ b/overlib.js
@@ -1,16 +1,8 @@
-
-
+// Capture events, alt. diffuses the overlib function.
+if ( (ns4) || (ie4) || (ns6)) {
+ document.onmousemove = mouseMove
+ if (ns4) document.captureEvents(Event.MOUSEMOVE)
+} else {
+ overlib = no_overlib;
+ nd = no_overlib;
+ ver3fix = true;
+}
+
+
+// Fake function for 3.0 users.
+function no_overlib() {
+ return ver3fix;
+}
+
+
+
+////////////////////////////////////////////////////////////////////////////////////
+// PUBLIC FUNCTIONS
+////////////////////////////////////////////////////////////////////////////////////
+
+
+// overlib(arg0, ..., argN)
+// Loads parameters into global runtime variables.
+function overlib() {
+
+ // Load defaults to runtime.
+ o3_text = ol_text;
+ o3_cap = ol_cap;
+ o3_sticky = ol_sticky;
+ o3_background = ol_background;
+ o3_close = ol_close;
+ o3_hpos = ol_hpos;
+ o3_offsetx = ol_offsetx;
+ o3_offsety = ol_offsety;
+ o3_fgcolor = ol_fgcolor;
+ o3_bgcolor = ol_bgcolor;
+ o3_textcolor = ol_textcolor;
+ o3_capcolor = ol_capcolor;
+ o3_closecolor = ol_closecolor;
+ o3_width = ol_width;
+ o3_border = ol_border;
+ o3_status = ol_status;
+ o3_autostatus = ol_autostatus;
+ o3_height = ol_height;
+ o3_snapx = ol_snapx;
+ o3_snapy = ol_snapy;
+ o3_fixx = ol_fixx;
+ o3_fixy = ol_fixy;
+ o3_fgbackground = ol_fgbackground;
+ o3_bgbackground = ol_bgbackground;
+ o3_padxl = ol_padxl;
+ o3_padxr = ol_padxr;
+ o3_padyt = ol_padyt;
+ o3_padyb = ol_padyb;
+ o3_fullhtml = ol_fullhtml;
+ o3_vpos = ol_vpos;
+ o3_aboveheight = ol_aboveheight;
+ o3_capicon = ol_capicon;
+ o3_textfont = ol_textfont;
+ o3_captionfont = ol_captionfont;
+ o3_closefont = ol_closefont;
+ o3_textsize = ol_textsize;
+ o3_captionsize = ol_captionsize;
+ o3_closesize = ol_closesize;
+ o3_timeout = ol_timeout;
+ o3_function = ol_function;
+ o3_delay = ol_delay;
+ o3_hauto = ol_hauto;
+ o3_vauto = ol_vauto;
+ o3_closeclick = ol_closeclick;
+
+ o3_css = ol_css;
+ o3_fgclass = ol_fgclass;
+ o3_bgclass = ol_bgclass;
+ o3_textfontclass = ol_textfontclass;
+ o3_captionfontclass = ol_captionfontclass;
+ o3_closefontclass = ol_closefontclass;
+ o3_padunit = ol_padunit;
+ o3_heightunit = ol_heightunit;
+ o3_widthunit = ol_widthunit;
+ o3_textsizeunit = ol_textsizeunit;
+ o3_textdecoration = ol_textdecoration;
+ o3_textstyle = ol_textstyle;
+ o3_textweight = ol_textweight;
+ o3_captionsizeunit = ol_captionsizeunit;
+ o3_captiondecoration = ol_captiondecoration;
+ o3_captionstyle = ol_captionstyle;
+ o3_captionweight = ol_captionweight;
+ o3_closesizeunit = ol_closesizeunit;
+ o3_closedecoration = ol_closedecoration;
+ o3_closestyle = ol_closestyle;
+ o3_closeweight = ol_closeweight;
+
+
+ // Special for frame support, over must be reset...
+ if ( (ns4) || (ie4) || (ns6) ) {
+ o3_frame = ol_frame;
+ if (ns4) over = o3_frame.document.overDiv
+ if (ie4) over = o3_frame.overDiv.style
+ if (ns6) over = o3_frame.document.getElementById("overDiv");
+ }
+
+
+ // What the next argument is expected to be.
+ var parsemode = -1;
+
+ var ar = arguments;
+
+ for (i = 0; i < ar.length; i++) {
+
+ if (parsemode < 0) {
+ // Arg is maintext, unless INARRAY
+ if (ar[i] == INARRAY) {
+ o3_text = ol_texts[ar[++i]];
+ } else {
+ o3_text = ar[i];
+ }
+
+ parsemode = 0;
+ } else {
+ // Note: NS4 doesn't like switch cases with vars.
+ if (ar[i] == INARRAY) { o3_text = ol_texts[ar[++i]]; continue; }
+ if (ar[i] == CAPARRAY) { o3_cap = ol_caps[ar[++i]]; continue; }
+ if (ar[i] == STICKY) { o3_sticky = 1; continue; }
+ if (ar[i] == BACKGROUND) { o3_background = ar[++i]; continue; }
+ if (ar[i] == NOCLOSE) { o3_close = ""; continue; }
+ if (ar[i] == CAPTION) { o3_cap = ar[++i]; continue; }
+ if (ar[i] == CENTER || ar[i] == LEFT || ar[i] == RIGHT) { o3_hpos = ar[i]; continue; }
+ if (ar[i] == OFFSETX) { o3_offsetx = ar[++i]; continue; }
+ if (ar[i] == OFFSETY) { o3_offsety = ar[++i]; continue; }
+ if (ar[i] == FGCOLOR) { o3_fgcolor = ar[++i]; continue; }
+ if (ar[i] == BGCOLOR) { o3_bgcolor = ar[++i]; continue; }
+ if (ar[i] == TEXTCOLOR) { o3_textcolor = ar[++i]; continue; }
+ if (ar[i] == CAPCOLOR) { o3_capcolor = ar[++i]; continue; }
+ if (ar[i] == CLOSECOLOR) { o3_closecolor = ar[++i]; continue; }
+ if (ar[i] == WIDTH) { o3_width = ar[++i]; continue; }
+ if (ar[i] == BORDER) { o3_border = ar[++i]; continue; }
+ if (ar[i] == STATUS) { o3_status = ar[++i]; continue; }
+ if (ar[i] == AUTOSTATUS) { o3_autostatus = 1; continue; }
+ if (ar[i] == AUTOSTATUSCAP) { o3_autostatus = 2; continue; }
+ if (ar[i] == HEIGHT) { o3_height = ar[++i]; o3_aboveheight = ar[i]; continue; } // Same param again.
+ if (ar[i] == CLOSETEXT) { o3_close = ar[++i]; continue; }
+ if (ar[i] == SNAPX) { o3_snapx = ar[++i]; continue; }
+ if (ar[i] == SNAPY) { o3_snapy = ar[++i]; continue; }
+ if (ar[i] == FIXX) { o3_fixx = ar[++i]; continue; }
+ if (ar[i] == FIXY) { o3_fixy = ar[++i]; continue; }
+ if (ar[i] == FGBACKGROUND) { o3_fgbackground = ar[++i]; continue; }
+ if (ar[i] == BGBACKGROUND) { o3_bgbackground = ar[++i]; continue; }
+ if (ar[i] == PADX) { o3_padxl = ar[++i]; o3_padxr = ar[++i]; continue; }
+ if (ar[i] == PADY) { o3_padyt = ar[++i]; o3_padyb = ar[++i]; continue; }
+ if (ar[i] == FULLHTML) { o3_fullhtml = 1; continue; }
+ if (ar[i] == BELOW || ar[i] == ABOVE) { o3_vpos = ar[i]; continue; }
+ if (ar[i] == CAPICON) { o3_capicon = ar[++i]; continue; }
+ if (ar[i] == TEXTFONT) { o3_textfont = ar[++i]; continue; }
+ if (ar[i] == CAPTIONFONT) { o3_captionfont = ar[++i]; continue; }
+ if (ar[i] == CLOSEFONT) { o3_closefont = ar[++i]; continue; }
+ if (ar[i] == TEXTSIZE) { o3_textsize = ar[++i]; continue; }
+ if (ar[i] == CAPTIONSIZE) { o3_captionsize = ar[++i]; continue; }
+ if (ar[i] == CLOSESIZE) { o3_closesize = ar[++i]; continue; }
+ if (ar[i] == FRAME) { opt_FRAME(ar[++i]); continue; }
+ if (ar[i] == TIMEOUT) { o3_timeout = ar[++i]; continue; }
+ if (ar[i] == FUNCTION) { opt_FUNCTION(ar[++i]); continue; }
+ if (ar[i] == DELAY) { o3_delay = ar[++i]; continue; }
+ if (ar[i] == HAUTO) { o3_hauto = (o3_hauto == 0) ? 1 : 0; continue; }
+ if (ar[i] == VAUTO) { o3_vauto = (o3_vauto == 0) ? 1 : 0; continue; }
+ if (ar[i] == CLOSECLICK) { o3_closeclick = (o3_closeclick == 0) ? 1 : 0; continue; }
+ if (ar[i] == CSSOFF) { o3_css = ar[i]; continue; }
+ if (ar[i] == CSSSTYLE) { o3_css = ar[i]; continue; }
+ if (ar[i] == CSSCLASS) { o3_css = ar[i]; continue; }
+ if (ar[i] == FGCLASS) { o3_fgclass = ar[++i]; continue; }
+ if (ar[i] == BGCLASS) { o3_bgclass = ar[++i]; continue; }
+ if (ar[i] == TEXTFONTCLASS) { o3_textfontclass = ar[++i]; continue; }
+ if (ar[i] == CAPTIONFONTCLASS) { o3_captionfontclass = ar[++i]; continue; }
+ if (ar[i] == CLOSEFONTCLASS) { o3_closefontclass = ar[++i]; continue; }
+ if (ar[i] == PADUNIT) { o3_padunit = ar[++i]; continue; }
+ if (ar[i] == HEIGHTUNIT) { o3_heightunit = ar[++i]; continue; }
+ if (ar[i] == WIDTHUNIT) { o3_widthunit = ar[++i]; continue; }
+ if (ar[i] == TEXTSIZEUNIT) { o3_textsizeunit = ar[++i]; continue; }
+ if (ar[i] == TEXTDECORATION) { o3_textdecoration = ar[++i]; continue; }
+ if (ar[i] == TEXTSTYLE) { o3_textstyle = ar[++i]; continue; }
+ if (ar[i] == TEXTWEIGHT) { o3_textweight = ar[++i]; continue; }
+ if (ar[i] == CAPTIONSIZEUNIT) { o3_captionsizeunit = ar[++i]; continue; }
+ if (ar[i] == CAPTIONDECORATION) { o3_captiondecoration = ar[++i]; continue; }
+ if (ar[i] == CAPTIONSTYLE) { o3_captionstyle = ar[++i]; continue; }
+ if (ar[i] == CAPTIONWEIGHT) { o3_captionweight = ar[++i]; continue; }
+ if (ar[i] == CLOSESIZEUNIT) { o3_closesizeunit = ar[++i]; continue; }
+ if (ar[i] == CLOSEDECORATION) { o3_closedecoration = ar[++i]; continue; }
+ if (ar[i] == CLOSESTYLE) { o3_closestyle = ar[++i]; continue; }
+ if (ar[i] == CLOSEWEIGHT) { o3_closeweight = ar[++i]; continue; }
+ }
+ }
+
+ if (o3_delay == 0) {
+ return overlib350();
+ } else {
+ o3_delayid = setTimeout("overlib350()", o3_delay);
+
+ if (o3_sticky) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+}
+
+
+
+// Clears popups if appropriate
+function nd() {
+ if ( o3_removecounter >= 1 ) { o3_showingsticky = 0 };
+ if ( (ns4) || (ie4) || (ns6) ) {
+ if ( o3_showingsticky == 0 ) {
+ o3_allowmove = 0;
+ if (over != null) hideObject(over);
+ } else {
+ o3_removecounter++;
+ }
+ }
+
+ return true;
+}
+
+
+
+
+
+
+
+////////////////////////////////////////////////////////////////////////////////////
+// OVERLIB 3.50 FUNCTION
+////////////////////////////////////////////////////////////////////////////////////
+
+
+// This function decides what it is we want to display and how we want it done.
+function overlib350() {
+
+ // Make layer content
+ var layerhtml;
+
+ if (o3_background != "" || o3_fullhtml) {
+ // Use background instead of box.
+ layerhtml = ol_content_background(o3_text, o3_background, o3_fullhtml);
+ } else {
+ // They want a popup box.
+
+ // Prepare popup background
+ if (o3_fgbackground != "" && o3_css == CSSOFF) {
+ o3_fgbackground = "BACKGROUND=\""+o3_fgbackground+"\"";
+ }
+ if (o3_bgbackground != "" && o3_css == CSSOFF) {
+ o3_bgbackground = "BACKGROUND=\""+o3_bgbackground+"\"";
+ }
+
+ // Prepare popup colors
+ if (o3_fgcolor != "" && o3_css == CSSOFF) {
+ o3_fgcolor = "BGCOLOR=\""+o3_fgcolor+"\"";
+ }
+ if (o3_bgcolor != "" && o3_css == CSSOFF) {
+ o3_bgcolor = "BGCOLOR=\""+o3_bgcolor+"\"";
+ }
+
+ // Prepare popup height
+ if (o3_height > 0 && o3_css == CSSOFF) {
+ o3_height = "HEIGHT=" + o3_height;
+ } else {
+ o3_height = "";
+ }
+
+ // Decide which kinda box.
+ if (o3_cap == "") {
+ // Plain
+ layerhtml = ol_content_simple(o3_text);
+ } else {
+ // With caption
+ if (o3_sticky) {
+ // Show close text
+ layerhtml = ol_content_caption(o3_text, o3_cap, o3_close);
+ } else {
+ // No close text
+ layerhtml = ol_content_caption(o3_text, o3_cap, "");
+ }
+ }
+ }
+
+ // We want it to stick!
+ if (o3_sticky) {
+ o3_showingsticky = 1;
+ o3_removecounter = 0;
+ }
+
+ // Write layer
+ layerWrite(layerhtml);
+
+ // Prepare status bar
+ if (o3_autostatus > 0) {
+ o3_status = o3_text;
+ if (o3_autostatus > 1) {
+ o3_status = o3_cap;
+ }
+ }
+
+ // When placing the layer the first time, even stickies may be moved.
+ o3_allowmove = 0;
+
+ // Initiate a timer for timeout
+ if (o3_timeout > 0) {
+ if (o3_timerid > 0) clearTimeout(o3_timerid);
+ o3_timerid = setTimeout("cClick()", o3_timeout);
+ }
+
+ // Show layer
+ disp(o3_status);
+
+ // Stickies should stay where they are.
+ if (o3_sticky) {
+ o3_allowmove = 0;
+ return false;
+ } else {
+ return true;
+ }
+}
+
+
+
+////////////////////////////////////////////////////////////////////////////////////
+// LAYER GENERATION FUNCTIONS
+////////////////////////////////////////////////////////////////////////////////////
+
+// Makes simple table without caption
+function ol_content_simple(text) {
+ if (o3_css == CSSCLASS) txt = "";
+ if (o3_css == CSSSTYLE) txt = "";
+ if (o3_css == CSSOFF) txt = "";
+
+ set_background("");
+ return txt;
+}
+
+
+
+
+// Makes table with caption and optional close link
+function ol_content_caption(text, title, close) {
+ closing = "";
+ closeevent = "onMouseOver";
+
+ if (o3_closeclick == 1) closeevent = "onClick";
+ if (o3_capicon != "") o3_capicon = "
";
+
+ if (close != "") {
+ if (o3_css == CSSCLASS) closing = ""+close+" | ";
+ if (o3_css == CSSSTYLE) closing = ""+close+" | ";
+ if (o3_css == CSSOFF) closing = ""+close+" | ";
+ }
+
+ if (o3_css == CSSCLASS) txt = ""+o3_capicon+title+" | "+closing+"
|
";
+ if (o3_css == CSSSTYLE) txt = ""+o3_capicon+title+" | "+closing+"
|
";
+ if (o3_css == CSSOFF) txt = ""+o3_capicon+title+" | "+closing+"
|
";
+
+ set_background("");
+ return txt;
+}
+
+// Sets the background picture, padding and lots more. :)
+function ol_content_background(text, picture, hasfullhtml) {
+ if (hasfullhtml) {
+ txt = text;
+ } else {
+ if (o3_css == CSSCLASS) txt = "";
+ if (o3_css == CSSSTYLE) txt = "";
+ if (o3_css == CSSOFF) txt = "";
+ }
+ set_background(picture);
+ return txt;
+}
+
+// Loads a picture into the div.
+function set_background(pic) {
+ if (pic == "") {
+ if (ie4) over.backgroundImage = "none";
+ if (ns6) over.style.backgroundImage = "none";
+ } else {
+ if (ns4) {
+ over.background.src = pic;
+ } else if (ie4) {
+ over.backgroundImage = "url("+pic+")";
+ } else if (ns6) {
+ over.style.backgroundImage = "url("+pic+")";
+ }
+ }
+}
+
+
+
+////////////////////////////////////////////////////////////////////////////////////
+// HANDLING FUNCTIONS
+////////////////////////////////////////////////////////////////////////////////////
+
+
+// Displays the popup
+function disp(statustext) {
+ if ( (ns4) || (ie4) || (ns6) ) {
+ if (o3_allowmove == 0) {
+ placeLayer();
+ showObject(over);
+ o3_allowmove = 1;
+ }
+ }
+
+ if (statustext != "") {
+ self.status = statustext;
+ }
+}
+
+// Decides where we want the popup.
+function placeLayer() {
+ var placeX, placeY;
+
+ // HORIZONTAL PLACEMENT
+ if (o3_fixx > -1) {
+ // Fixed position
+ placeX = o3_fixx;
+ } else {
+ winoffset = (ie4) ? o3_frame.document.body.scrollLeft : o3_frame.pageXOffset;
+ if (ie4) iwidth = o3_frame.document.body.clientWidth;
+ if (ns4) iwidth = o3_frame.innerWidth; // was screwed in mozilla, fixed now?
+ if (ns6) iwidth = o3_frame.outerWidth;
+
+ // If HAUTO, decide what to use.
+ if (o3_hauto == 1) {
+ if ( (o3_x - winoffset) > ((eval(iwidth)) / 2)) {
+ o3_hpos = LEFT;
+ } else {
+ o3_hpos = RIGHT;
+ }
+ }
+
+ // From mouse
+ if (o3_hpos == CENTER) { // Center
+ placeX = o3_x+o3_offsetx-(o3_width/2);
+ }
+ if (o3_hpos == RIGHT) { // Right
+ placeX = o3_x+o3_offsetx;
+ if ( (eval(placeX) + eval(o3_width)) > (winoffset + iwidth) ) {
+ placeX = iwidth + winoffset - o3_width;
+ if (placeX < 0) placeX = 0;
+ }
+ }
+ if (o3_hpos == LEFT) { // Left
+ placeX = o3_x-o3_offsetx-o3_width;
+ if (placeX < winoffset) placeX = winoffset;
+ }
+
+ // Snapping!
+ if (o3_snapx > 1) {
+ var snapping = placeX % o3_snapx;
+ if (o3_hpos == LEFT) {
+ placeX = placeX - (o3_snapx + snapping);
+ } else {
+ // CENTER and RIGHT
+ placeX = placeX + (o3_snapx - snapping);
+ }
+ if (placeX < winoffset) placeX = winoffset;
+ }
+ }
+
+
+
+ // VERTICAL PLACEMENT
+ if (o3_fixy > -1) {
+ // Fixed position
+ placeY = o3_fixy;
+ } else {
+ scrolloffset = (ie4) ? o3_frame.document.body.scrollTop : o3_frame.pageYOffset;
+
+ // If VAUTO, decide what to use.
+ if (o3_vauto == 1) {
+ if (ie4) iheight = o3_frame.document.body.clientHeight;
+ if (ns4) iheight = o3_frame.innerHeight;
+ if (ns6) iheight = o3_frame.outerHeight;
+
+ iheight = (eval(iheight)) / 2;
+ if ( (o3_y - scrolloffset) > iheight) {
+ o3_vpos = ABOVE;
+ } else {
+ o3_vpos = BELOW;
+ }
+ }
+
+
+ // From mouse
+ if (o3_vpos == ABOVE) {
+ if (o3_aboveheight == 0) {
+ var divref = (ie4) ? o3_frame.document.all['overDiv'] : over;
+ o3_aboveheight = (ns4) ? divref.clip.height : divref.offsetHeight;
+ }
+
+ placeY = o3_y - (o3_aboveheight + o3_offsety);
+ if (placeY < scrolloffset) placeY = scrolloffset;
+ } else {
+ // BELOW
+ placeY = o3_y + o3_offsety;
+ }
+
+ // Snapping!
+ if (o3_snapy > 1) {
+ var snapping = placeY % o3_snapy;
+
+ if (o3_aboveheight > 0 && o3_vpos == ABOVE) {
+ placeY = placeY - (o3_snapy + snapping);
+ } else {
+ placeY = placeY + (o3_snapy - snapping);
+ }
+
+ if (placeY < scrolloffset) placeY = scrolloffset;
+ }
+ }
+
+
+ // Actually move the object.
+ repositionTo(over, placeX, placeY);
+}
+
+
+// Moves the layer
+function mouseMove(e) {
+ if ( (ns4) || (ns6) ) {o3_x=e.pageX; o3_y=e.pageY;}
+ if (ie4) {o3_x=event.x; o3_y=event.y;}
+ if (ie5) {o3_x=event.x+o3_frame.document.body.scrollLeft; o3_y=event.y+o3_frame.document.body.scrollTop;}
+
+ if (o3_allowmove == 1) {
+ placeLayer();
+ }
+}
+
+// The Close onMouseOver function for stickies
+function cClick() {
+ hideObject(over);
+ o3_showingsticky = 0;
+
+ return false;
+}
+
+
+// Makes sure target frame has overLIB
+function compatibleframe(frameid) {
+ if (ns4) {
+ if (typeof frameid.document.overDiv =='undefined') return false;
+ } else if (ie4) {
+ if (typeof frameid.document.all["overDiv"] =='undefined') return false;
+ } else if (ns6) {
+ if (frameid.document.getElementById('overDiv') == null) return false;
+ }
+
+ return true;
+}
+
+
+
+////////////////////////////////////////////////////////////////////////////////////
+// LAYER FUNCTIONS
+////////////////////////////////////////////////////////////////////////////////////
+
+
+// Writes to a layer
+function layerWrite(txt) {
+ txt += "\n";
+
+ if (ns4) {
+ var lyr = o3_frame.document.overDiv.document
+
+ lyr.write(txt)
+ lyr.close()
+ } else if (ie4) {
+ o3_frame.document.all["overDiv"].innerHTML = txt
+ } else if (ns6) {
+ range = o3_frame.document.createRange();
+ range.setStartBefore(over);
+ domfrag = range.createContextualFragment(txt);
+ while (over.hasChildNodes()) {
+ over.removeChild(over.lastChild);
+ }
+ over.appendChild(domfrag);
+ }
+}
+
+// Make an object visible
+function showObject(obj) {
+ if (ns4) obj.visibility = "show";
+ else if (ie4) obj.visibility = "visible";
+ else if (ns6) obj.style.visibility = "visible";
+}
+
+// Hides an object
+function hideObject(obj) {
+ if (ns4) obj.visibility = "hide";
+ else if (ie4) obj.visibility = "hidden";
+ else if (ns6) obj.style.visibility = "hidden";
+
+ if (o3_timerid > 0) clearTimeout(o3_timerid);
+ if (o3_delayid > 0) clearTimeout(o3_delayid);
+ o3_timerid = 0;
+ o3_delayid = 0;
+ self.status = "";
+}
+
+// Move a layer
+function repositionTo(obj,xL,yL) {
+ if ( (ns4) || (ie4) ) {
+ obj.left = xL;
+ obj.top = yL;
+ } else if (ns6) {
+ obj.style.left = xL + "px";
+ obj.style.top = yL+ "px";
+ }
+}
+
+
+
+
+
+////////////////////////////////////////////////////////////////////////////////////
+// PARSER FUNCTIONS
+////////////////////////////////////////////////////////////////////////////////////
+
+
+// Defines which frame we should point to.
+function opt_FRAME(frm) {
+ o3_frame = compatibleframe(frm) ? frm : ol_frame;
+
+ if ( (ns4) || (ie4 || (ns6)) ) {
+ if (ns4) over = o3_frame.document.overDiv;
+ if (ie4) over = o3_frame.overDiv.style;
+ if (ns6) over = o3_frame.document.getElementById("overDiv");
+ }
+
+ return 0;
+}
+
+// Calls an external function
+function opt_FUNCTION(callme) {
+ o3_text = callme()
+ return 0;
+}
+
+
+
+
+//end (For internal purposes.)
+////////////////////////////////////////////////////////////////////////////////////
+// OVERLIB 2 COMPATABILITY FUNCTIONS
+// If you aren't upgrading you can remove the below section.
+////////////////////////////////////////////////////////////////////////////////////
+
+// Converts old 0=left, 1=right and 2=center into constants.
+function vpos_convert(d) {
+ if (d == 0) {
+ d = LEFT;
+ } else {
+ if (d == 1) {
+ d = RIGHT;
+ } else {
+ d = CENTER;
+ }
+ }
+
+ return d;
+}
+
+// Simple popup
+function dts(d,text) {
+ o3_hpos = vpos_convert(d);
+ overlib(text, o3_hpos, CAPTION, "");
+}
+
+// Caption popup
+function dtc(d,text, title) {
+ o3_hpos = vpos_convert(d);
+ overlib(text, CAPTION, title, o3_hpos);
+}
+
+// Sticky
+function stc(d,text, title) {
+ o3_hpos = vpos_convert(d);
+ overlib(text, CAPTION, title, o3_hpos, STICKY);
+}
+
+// Simple popup right
+function drs(text) {
+ dts(1,text);
+}
+
+// Caption popup right
+function drc(text, title) {
+ dtc(1,text,title);
+}
+
+// Sticky caption right
+function src(text,title) {
+ stc(1,text,title);
+}
+
+// Simple popup left
+function dls(text) {
+ dts(0,text);
+}
+
+// Caption popup left
+function dlc(text, title) {
+ dtc(0,text,title);
+}
+
+// Sticky caption left
+function slc(text,title) {
+ stc(0,text,title);
+}
+
+// Simple popup center
+function dcs(text) {
+ dts(2,text);
+}
+
+// Caption popup center
+function dcc(text, title) {
+ dtc(2,text,title);
+}
+
+// Sticky caption center
+function scc(text,title) {
+ stc(2,text,title);
+}