//\//////////////////////////////////////////////////////////////////////////////////


//\  overLIB 3.30  --  This notice must remain untouched at all times.


//\  Copyright Erik Bosrup 1998-2000. All rights reserved.


//\


//\  By Erik Bosrup (erik@bosrup.com).  Last modified 2000-11-15.


//\  Portions by Dan Steinman (dansteinman.com). Additions by other people are


//\  listed on the overLIB homepage.


//\


//\  Get the latest version at http://www.bosrup.com/web/overlib/


//\


//\  This script is published under an open source license. Please read the license


//\  agreement online at: http://www.bosrup.com/web/overlib/license.html


//\  If you have questions regard the license please contact erik@bosrup.com.


//\


//\  This script library was originally created for personal use. By request it has


//\  later been made public. This is free software. Do not sell this as your own


//\  work, or remove this copyright notice. For full details on copying or changing


//\  this script please read the license agreement at the link above.


//\


//\  Please give credit on sites that use overLIB and submit changes of the script


//\  so other people can use them as well. This script is free to use, don't abuse.


//\//////////////////////////////////////////////////////////////////////////////////








////////////////////////////////////////////////////////////////////////////////////


// CONSTANTS


// Don't touch these. :)


////////////////////////////////////////////////////////////////////////////////////


var INARRAY		=	1;


var CAPARRAY		=	2;


var STICKY		=	3;


var BACKGROUND		=	4;


var NOCLOSE		=	5;


var CAPTION		=	6;


var LEFT		=	7;


var RIGHT		=	8;


var CENTER		=	9;


var OFFSETX		=	10;


var OFFSETY		=	11;


var FGCOLOR		=	12;


var BGCOLOR		=	13;


var TEXTCOLOR		=	14;


var CAPCOLOR		=	15;


var CLOSECOLOR		=	16;


var WIDTH		=	17;


var BORDER		=	18;


var STATUS		=	19;


var AUTOSTATUS		=	20;


var AUTOSTATUSCAP	=	21;


var HEIGHT		=	22;


var CLOSETEXT		=	23;


var SNAPX		=	24;


var SNAPY		=	25;


var FIXX		=	26;


var FIXY		=	27;


var FGBACKGROUND	=	28;


var BGBACKGROUND	=	29;


var PADX		=	30;


var PADY		=	31;


var PADX2		=	32;


var PADY2		=	33;


var FULLHTML		=	34;


var ABOVE		=	35;


var BELOW		=	36;


var CAPICON		=	37;


var TEXTFONT		=	38;


var CAPTIONFONT		=	39;


var CLOSEFONT		=	40;


var TEXTSIZE		=	41;


var CAPTIONSIZE		=	42;


var CLOSESIZE		=	43;


var FRAME		=	44;


var TIMEOUT		=	45;


var FUNCTION		=	46;


var DELAY		=	47;


var HAUTO		=	48;


var VAUTO		=	49;











////////////////////////////////////////////////////////////////////////////////////


// DEFAULT CONFIGURATION


// You don't have to change anything here if you don't want to. All of this can be


// changed on your html page or through an overLIB call.


////////////////////////////////////////////////////////////////////////////////////





// Main background color (the large area)


// Usually a bright color (white, yellow etc)#dee3ef


if (typeof ol_fgcolor == 'undefined') { var ol_fgcolor = "#dee3ef";}


	


// Border color and color of caption


// Usually a dark color (black, brown etc)#638ab5


if (typeof ol_bgcolor == 'undefined') { var ol_bgcolor = "#638ab5";}


	


// Text color


// Usually a dark color


if (typeof ol_textcolor == 'undefined') { var ol_textcolor = "#000000";}


	


// Color of the caption text


// Usually a bright color


if (typeof ol_capcolor == 'undefined') { var ol_capcolor = "#FFFFFF";}


	


// Color of "Close" when using Sticky


// Usually a semi-bright color


if (typeof ol_closecolor == 'undefined') { var ol_closecolor = "#9999FF";}





// Font face for the main text


if (typeof ol_textfont == 'undefined') { var ol_textfont = "Verdana,Arial,Helvetica";}





// Font face for the caption


if (typeof ol_captionfont == 'undefined') { var ol_captionfont = "Verdana,Arial,Helvetica";}





// Font face for the close text


if (typeof ol_closefont == 'undefined') { var ol_closefont = "Verdana,Arial,Helvetica";}





// Font size for the main text


if (typeof ol_textsize == 'undefined') { var ol_textsize = "1";}





// Font size for the caption


if (typeof ol_captionsize == 'undefined') { var ol_captionsize = "1";}





// Font size for the close text


if (typeof ol_closesize == 'undefined') { var ol_closesize = "1";}





// Width of the popups in pixels


// 100-300 pixels is typical


if (typeof ol_width == 'undefined') { var ol_width = "200";}





// How thick the ol_border should be in pixels


// 1-3 pixels is typical


if (typeof ol_border == 'undefined') { var ol_border = "1";}





// How many pixels to the right/left of the cursor to show the popup


// Values between 3 and 12 are best


if (typeof ol_offsetx == 'undefined') { var ol_offsetx = 10;}


	


// How many pixels to the below the cursor to show the popup


// Values between 3 and 12 are best


if (typeof ol_offsety == 'undefined') { var ol_offsety = 10;}





// Default text for popups


// Should you forget to pass something to overLIB this will be displayed.


if (typeof ol_text == 'undefined') { var ol_text = "Default Text"; }





// Default caption


// You should leave this blank or you will have problems making non caps popups.


if (typeof ol_cap == 'undefined') { var ol_cap = ""; }





// Decides if sticky popups are default.


// 0 for non, 1 for stickies.


if (typeof ol_sticky == 'undefined') { var ol_sticky = 0; }





// Default background image. Better left empty unless you always want one.


if (typeof ol_background == 'undefined') { var ol_background = ""; }





// Text for the closing sticky popups.


// Normal is "Close".


if (typeof ol_close == 'undefined') { var ol_close = "Close"; }





// Default vertical alignment for popups.


// It's best to leave RIGHT here. Other options are LEFT and CENTER.


if (typeof ol_hpos == 'undefined') { var ol_hpos = RIGHT; }





// Default status bar text when a popup is invoked.


if (typeof ol_status == 'undefined') { var ol_status = ""; }





// If the status bar automatically should load either text or caption.


// 0=nothing, 1=text, 2=caption


if (typeof ol_autostatus == 'undefined') { var ol_autostatus = 0; }





// Default height for popup. Often best left alone.


if (typeof ol_height == 'undefined') { var ol_height = -1; }





// Horizontal grid spacing that popups will snap to.


// 0 makes no grid, anything else will cause a snap to that grid spacing.


if (typeof ol_snapx == 'undefined') { var ol_snapx = 0; }





// Vertical grid spacing that popups will snap to.


// 0 makes no grid, andthing else will cause a snap to that grid spacing.


if (typeof ol_snapy == 'undefined') { var ol_snapy = 0; }





// Sets the popups horizontal position to a fixed column.


// Anything above -1 will cause fixed position.


if (typeof ol_fixx == 'undefined') { var ol_fixx = -1; }





// Sets the popups vertical position to a fixed row.


// Anything above -1 will cause fixed position.


if (typeof ol_fixy == 'undefined') { var ol_fixy = -1; }





// Background image for the popups inside.


if (typeof ol_fgbackground == 'undefined') { var ol_fgbackground = ""; }





// Background image for the popups frame.


if (typeof ol_bgbackground == 'undefined') { var ol_bgbackground = ""; }





// How much horizontal left padding text should get by default when BACKGROUND is used.


if (typeof ol_padxl == 'undefined') { var ol_padxl = 1; }





// How much horizontal right padding text should get by default when BACKGROUND is used.


if (typeof ol_padxr == 'undefined') { var ol_padxr = 1; }





// How much vertical top padding text should get by default when BACKGROUND is used.


if (typeof ol_padyt == 'undefined') { var ol_padyt = 1; }





// How much vertical bottom padding text should get by default when BACKGROUND is used.


if (typeof ol_padyb == 'undefined') { var ol_padyb = 1; }





// If the user by default must supply all html for complete popup control.


// Set to 1 to activate, 0 otherwise.


if (typeof ol_fullhtml == 'undefined') { var ol_fullhtml = 0; }





// Default vertical position of the popup. Default should normally be BELOW.


// ABOVE only works when HEIGHT is defined.


if (typeof ol_vpos == 'undefined') { var ol_vpos = BELOW; }





// Default height of popup to use when placing the popup above the cursor.


if (typeof ol_aboveheight == 'undefined') { var ol_aboveheight = 0; }





// Default icon to place next to the popups caption.


if (typeof ol_caption == 'undefined') { var ol_capicon = ""; }





// Default frame. We default to current frame if there is no frame defined.


if (typeof ol_frame == 'undefined') { var ol_frame = self; }





// Default timeout. By default there is no timeout.


if (typeof ol_timeout == 'undefined') { var ol_timeout = 0; }





// Default javascript funktion. By default there is none.


if (typeof ol_function == 'undefined') { var ol_function = Function(); }





// Default timeout. By default there is no timeout.


if (typeof ol_delay == 'undefined') { var ol_delay = 0; }





// If overLIB should decide the horizontal placement.


if (typeof ol_hauto == 'undefined') { var ol_hauto = 0; }





// If overLIB should decide the vertical placement.


if (typeof ol_vauto == 'undefined') { var ol_vauto = 0; }











////////////////////////////////////////////////////////////////////////////////////


// ARRAY CONFIGURATION


// You don't have to change anything here if you don't want to. The following


// arrays can be filled with text and html if you don't wish to pass it from


// your html page.


////////////////////////////////////////////////////////////////////////////////////





// Array with texts.


var ol_texts = new Array("Array Text 0", "Array Text 1");





// Array with captions.


var ol_caps = new Array("Array Caption 0", "Array Caption 1");




















////////////////////////////////////////////////////////////////////////////////////


// END CONFIGURATION


////////////////////////////////////////////////////////////////////////////////////











////////////////////////////////////////////////////////////////////////////////////


// INIT


////////////////////////////////////////////////////////////////////////////////////








// Runtime variables init. Used for runtime only, don't change, not for config!


var o3_text = "";


var o3_cap = "";


var o3_sticky = 0;


var o3_background = "";


var o3_close = "Close";


var o3_hpos = RIGHT;


var o3_offsetx = 2;


var o3_offsety = 2;


var o3_fgcolor = "";


var o3_bgcolor = "";


var o3_textcolor = "";


var o3_capcolor = "";


var o3_closecolor = "";


var o3_width = 100;


var o3_border = 1;


var o3_status = "";


var o3_autostatus = 0;


var o3_height = -1;


var o3_snapx = 0;


var o3_snapy = 0;


var o3_fixx = -1;


var o3_fixy = -1;


var o3_fgbackground = "";


var o3_bgbackground = "";


var o3_padxl = 0;


var o3_padxr = 0;


var o3_padyt = 0;


var o3_padyb = 0;


var o3_fullhtml = 0;


var o3_vpos = BELOW;


var o3_aboveheight = 0;


var o3_capicon = "";


var o3_textfont = "Verdana,Arial,Helvetica";


var o3_captionfont = "Verdana,Arial,Helvetica";


var o3_closefont = "Verdana,Arial,Helvetica";


var o3_textsize = "1";


var o3_captionsize = "1";


var o3_closesize = "1";


var o3_frame = self;


var o3_timeout = 0;


var o3_timerid = 0;


var o3_allowmove = 0;


var o3_function = Function();


var o3_delay = 0;


var o3_delayid = 0;


var o3_hauto = 0;


var o3_vauto = 0;








// Display state variables


var o3_x = 0;


var o3_y = 0;


var o3_allow = 0;


var o3_showingsticky = 0;


var o3_removecounter = 0;





// Our layer


var over = null;








// Decide browser version


var ns4 = (document.layers)? true:false;


var ns6 = (document.getElementById)? true:false;


var ie4 = (document.all)? true:false;


var ie5 = false;





// Microsoft Stupidity Check(tm).


if (ie4) {


	if (navigator.userAgent.indexOf('MSIE 5')>0) {


		ie5 = true;


	}


	if (ns6) {


		ns6 = false;


	}


}








// 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;





	// 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;





	for (i = 0; i < arguments.length; i++) {


		


		if (parsemode == 0) {


			// Arg is command


			if (arguments[i] == INARRAY) { parsemode = INARRAY; }


			if (arguments[i] == CAPARRAY) { parsemode = CAPARRAY; }


			if (arguments[i] == STICKY) { parsemode = opt_STICKY(arguments[i]); }


			if (arguments[i] == BACKGROUND) { parsemode = BACKGROUND; }


			if (arguments[i] == NOCLOSE) { parsemode = opt_NOCLOSE(arguments[i]); }


			if (arguments[i] == CAPTION) { parsemode = CAPTION; }


			if (arguments[i] == LEFT) { parsemode = opt_HPOS(arguments[i]); }


			if (arguments[i] == RIGHT) { parsemode = opt_HPOS(arguments[i]); }


			if (arguments[i] == CENTER) { parsemode = opt_HPOS(arguments[i]); }


			if (arguments[i] == OFFSETX) { parsemode = OFFSETX; }


			if (arguments[i] == OFFSETY) { parsemode = OFFSETY; }


			if (arguments[i] == FGCOLOR) { parsemode = FGCOLOR; }


			if (arguments[i] == BGCOLOR) { parsemode = BGCOLOR; }


			if (arguments[i] == TEXTCOLOR) { parsemode = TEXTCOLOR; }


			if (arguments[i] == CAPCOLOR) { parsemode = CAPCOLOR; }


			if (arguments[i] == CLOSECOLOR) { parsemode = CLOSECOLOR; }


			if (arguments[i] == WIDTH) { parsemode = WIDTH; }


			if (arguments[i] == BORDER) { parsemode = BORDER; }


			if (arguments[i] == STATUS) { parsemode = STATUS; }


			if (arguments[i] == AUTOSTATUS) { parsemode = opt_AUTOSTATUS(arguments[i]); }


			if (arguments[i] == AUTOSTATUSCAP) { parsemode = opt_AUTOSTATUSCAP(arguments[i]); }


			if (arguments[i] == HEIGHT) { parsemode = HEIGHT; }


			if (arguments[i] == CLOSETEXT) { parsemode = CLOSETEXT; }


			if (arguments[i] == SNAPX) { parsemode = SNAPX; }


			if (arguments[i] == SNAPY) { parsemode = SNAPY; }


			if (arguments[i] == FIXX) { parsemode = FIXX; }


			if (arguments[i] == FIXY) { parsemode = FIXY; }


			if (arguments[i] == FGBACKGROUND) { parsemode = FGBACKGROUND; }


			if (arguments[i] == BGBACKGROUND) { parsemode = BGBACKGROUND; }


			if (arguments[i] == PADX) { parsemode = PADX; }


			if (arguments[i] == PADY) { parsemode = PADY; }


			if (arguments[i] == FULLHTML) { parsemode = opt_FULLHTML(arguments[i]); }


			if (arguments[i] == ABOVE) { parsemode = opt_VPOS(arguments[i]); }


			if (arguments[i] == BELOW) { parsemode = opt_VPOS(arguments[i]); }


			if (arguments[i] == CAPICON) { parsemode = CAPICON; }


			if (arguments[i] == TEXTFONT) { parsemode = TEXTFONT; }


			if (arguments[i] == CAPTIONFONT) { parsemode = CAPTIONFONT; }


			if (arguments[i] == CLOSEFONT) { parsemode = CLOSEFONT; }


			if (arguments[i] == TEXTSIZE) { parsemode = TEXTSIZE; }


			if (arguments[i] == CAPTIONSIZE) { parsemode = CAPTIONSIZE; }


			if (arguments[i] == CLOSESIZE) { parsemode = CLOSESIZE; }


			if (arguments[i] == FRAME) { parsemode = FRAME; }


			if (arguments[i] == TIMEOUT) { parsemode = TIMEOUT; }


			if (arguments[i] == FUNCTION) { parsemode = FUNCTION; }


			if (arguments[i] == DELAY) { parsemode = DELAY; }


			if (arguments[i] == HAUTO) { parsemode = opt_HAUTO(arguments[i]); }


			if (arguments[i] == VAUTO) { parsemode = opt_VAUTO(arguments[i]); }








		} else {


			if (parsemode < 0) {


				// Arg is maintext, unless INARRAY


				if (arguments[i] == INARRAY) {


					parsemode = INARRAY;


				} else {


					o3_text = arguments[i];


					parsemode = 0;


				}


			} else {


				// Arg is option for command


				if (parsemode == INARRAY) { parsemode = opt_INARRAY(arguments[i]); }


				if (parsemode == CAPARRAY) { parsemode = opt_CAPARRAY(arguments[i]); }


				if (parsemode == BACKGROUND) { parsemode = opt_BACKGROUND(arguments[i]); }


				if (parsemode == CAPTION) { parsemode = opt_CAPTION(arguments[i]); }


				if (parsemode == OFFSETX) { parsemode = opt_OFFSETX(arguments[i]); }


				if (parsemode == OFFSETY) { parsemode = opt_OFFSETY(arguments[i]); }


				if (parsemode == FGCOLOR) { parsemode = opt_FGCOLOR(arguments[i]); }


				if (parsemode == BGCOLOR) { parsemode = opt_BGCOLOR(arguments[i]); }


				if (parsemode == TEXTCOLOR) { parsemode = opt_TEXTCOLOR(arguments[i]); }


				if (parsemode == CAPCOLOR) { parsemode = opt_CAPCOLOR(arguments[i]); }


				if (parsemode == CLOSECOLOR) { parsemode = opt_CLOSECOLOR(arguments[i]); }


				if (parsemode == WIDTH) { parsemode = opt_WIDTH(arguments[i]); }


				if (parsemode == BORDER) { parsemode = opt_BORDER(arguments[i]); }


				if (parsemode == STATUS) { parsemode = opt_STATUS(arguments[i]); }


				if (parsemode == HEIGHT) { parsemode = opt_HEIGHT(arguments[i]); }


				if (parsemode == CLOSETEXT) { parsemode = opt_CLOSETEXT(arguments[i]); }


				if (parsemode == SNAPX) { parsemode = opt_SNAPX(arguments[i]); }


				if (parsemode == SNAPY) { parsemode = opt_SNAPY(arguments[i]); }


				if (parsemode == FIXX) { parsemode = opt_FIXX(arguments[i]); }


				if (parsemode == FIXY) { parsemode = opt_FIXY(arguments[i]); }


				if (parsemode == FGBACKGROUND) { parsemode = opt_FGBACKGROUND(arguments[i]); }


				if (parsemode == BGBACKGROUND) { parsemode = opt_BGBACKGROUND(arguments[i]); }


				if (parsemode == PADX2) { parsemode = opt_PADX2(arguments[i]); } // must be before PADX


				if (parsemode == PADY2) { parsemode = opt_PADY2(arguments[i]); } // must be before PADY


				if (parsemode == PADX) { parsemode = opt_PADX(arguments[i]); }


				if (parsemode == PADY) { parsemode = opt_PADY(arguments[i]); }


				if (parsemode == CAPICON) { parsemode = opt_CAPICON(arguments[i]); }


				if (parsemode == TEXTFONT) { parsemode = opt_TEXTFONT(arguments[i]); }


				if (parsemode == CAPTIONFONT) { parsemode = opt_CAPTIONFONT(arguments[i]); }


				if (parsemode == CLOSEFONT) { parsemode = opt_CLOSEFONT(arguments[i]); }


				if (parsemode == TEXTSIZE) { parsemode = opt_TEXTSIZE(arguments[i]); }


				if (parsemode == CAPTIONSIZE) { parsemode = opt_CAPTIONSIZE(arguments[i]); }


				if (parsemode == CLOSESIZE) { parsemode = opt_CLOSESIZE(arguments[i]); }


				if (parsemode == FRAME) { parsemode = opt_FRAME(arguments[i]); }


				if (parsemode == TIMEOUT) { parsemode = opt_TIMEOUT(arguments[i]); }


                                if (parsemode == FUNCTION) { parsemode = opt_FUNCTION(arguments[i]); }


				if (parsemode == DELAY) { parsemode = opt_DELAY(arguments[i]); }





			}


		}


	}





	if (o3_delay == 0) {


		return overlib330();


	} else {


		o3_delayid = setTimeout("overlib330()", o3_delay);


		return;


	}


}











// 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.10 FUNCTION


////////////////////////////////////////////////////////////////////////////////////








// This function decides what it is we want to display and how we want it done.


function overlib330() {





	// 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_fgbackground = "BACKGROUND=\""+o3_fgbackground+"\"";


		}


		if (o3_bgbackground != "") {


			o3_bgbackground = "BACKGROUND=\""+o3_bgbackground+"\"";


		}





		// Prepare popup colors


		if (o3_fgcolor != "") {


			o3_fgcolor = "BGCOLOR=\""+o3_fgcolor+"\"";


		}


		if (o3_bgcolor != "") {


			o3_bgcolor = "BGCOLOR=\""+o3_bgcolor+"\"";


		}





		// Prepare popup height


		if (o3_height > 0) {


			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) {


	txt = "<TABLE WIDTH="+o3_width+" BORDER=0 CELLPADDING="+o3_border+" CELLSPACING=0 "+o3_bgcolor+" "+o3_height+"><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 "+o3_fgcolor+" "+o3_fgbackground+" "+o3_height+"><TR><TD VALIGN=TOP><FONT FACE=\""+o3_textfont+"\" COLOR=\""+o3_textcolor+"\" SIZE=\""+o3_textsize+"\">"+text+"</FONT></TD></TR></TABLE></TD></TR></TABLE>";


	set_background("");


	return txt;


}





// Makes table with caption and optional close link


function ol_content_caption(text, title, close) {


	closing = "";


	if (close != "") {


		closing = "<TD ALIGN=RIGHT><A HREF=\"/\" onMouseOver=\"cClick();\"><FONT COLOR=\""+o3_closecolor+"\" FACE=\""+o3_closefont+"\" SIZE=\""+o3_closesize+"\">"+close+"</FONT></A></TD>";


	}


	if (o3_capicon != "") {


		o3_capicon = "<IMG SRC=\""+o3_capicon+"\"> ";


	}


	txt = "<TABLE WIDTH="+o3_width+" BORDER=0 CELLPADDING="+o3_border+" CELLSPACING=0 "+o3_bgcolor+" "+o3_bgbackground+" "+o3_height+"><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD><B><FONT COLOR=\""+o3_capcolor+"\" FACE=\""+o3_captionfont+"\" SIZE=\""+o3_captionsize+"\">"+o3_capicon+title+"</FONT></B></TD>"+closing+"</TR></TABLE><TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 "+o3_fgcolor+" "+o3_fgbackground+" "+o3_height+"><TR><TD VALIGN=TOP><FONT COLOR=\""+o3_textcolor+"\" FACE=\""+o3_textfont+"\" SIZE=\""+o3_textsize+"\">"+text+"</FONT></TD></TR></TABLE></TD></TR></TABLE>";


	set_background("");


	return txt;


}





// Sets the background picture, padding and lost more. :)


function ol_content_background(text, picture, hasfullhtml) {


	if (hasfullhtml) {


		txt = text;


	} else {


		txt = "<TABLE WIDTH="+o3_width+" BORDER=0 CELLPADDING=0 CELLSPACING=0 HEIGHT="+o3_height+"><TR><TD COLSPAN=3 HEIGHT="+o3_padyt+"></TD></TR><TR><TD WIDTH="+o3_padxl+"></TD><TD VALIGN=TOP WIDTH="+(o3_width-o3_padxl-o3_padxr)+"><FONT FACE=\""+o3_textfont+"\" COLOR=\""+o3_textcolor+"\" SIZE=\""+o3_textsize+"\">"+text+"</FONT></TD><TD WIDTH="+o3_padxr+"></TD></TR><TR><TD COLSPAN=3 HEIGHT="+o3_padyb+"></TD></TR></TABLE>";


	}


	set_background(picture);


	return txt;


}





// Loads a picture into the div.


function set_background(pic) {


	if (pic == "") {


		if (ie4) over.backgroundImage = "url(none)";


		if (ns6) over.style.backgroundImage = "url(none)";


		return;


	}


	


	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 {


		// If HAUTO, decide what to use.


		if (o3_hauto == 1) {


			if (ie4) iwidth = o3_frame.document.body.clientWidth;


			if (ns4) iwidth = o3_frame.innerWidth;


			if (ns6) iwidth = o3_frame.outerWidth;





			iwidth = (eval(iwidth)) / 2;


			if (o3_x > iwidth) {


				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 (o3_hpos == LEFT) { // Left


			placeX = o3_x-o3_offsetx-o3_width;


		}


	


		// 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);


			}


		}


	}





	


	


	// VERTICAL PLACEMENT


	if (o3_fixy > -1) {


		// Fixed position


		placeY = o3_fixy;


	} else {


		// 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 > iheight) {


				o3_vpos = ABOVE;


			} else {


				o3_vpos = BELOW;


			}


		}





		// From mouse


		if (o3_aboveheight > 0 && o3_vpos == ABOVE) {


			placeY = o3_y - (o3_aboveheight + o3_offsety);


		} 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);


			}


		}


	}








	// Actually move the object.	


	moveTo(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;


}








// 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;


	}





	return true;


}











////////////////////////////////////////////////////////////////////////////////////


// LAYER FUNCTIONS


////////////////////////////////////////////////////////////////////////////////////








// Writes to a layer


function layerWrite(txt) {


        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.display = "block"


}





// Hides an object


function hideObject(obj) {


        if (ns4) obj.visibility = "hide"


        else if (ie4) obj.visibility = "hidden"


	else if (ns6) obj.style.display = "none"


        


	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 moveTo(obj,xL,yL) {


	if ( (ns4) || (ie4) ) {


	        obj.left = xL;


	        obj.top = yL;


	} else if (ns6) {


		obj.style.left = xL;


		obj.style.top = yL;


	}		


}

















////////////////////////////////////////////////////////////////////////////////////


// PARSER FUNCTIONS


////////////////////////////////////////////////////////////////////////////////////








// Sets text from array.


function opt_INARRAY(id) {


	o3_text = ol_texts[id];


	return 0;


}





// Sets caption from array.


function opt_CAPARRAY(id) {


	o3_cap = ol_caps[id];	


	return 0;


}





// Sets stickiness.


function opt_STICKY(unused) {


	o3_sticky = 1;


	return 0;


}





// Sets background picture.


function opt_BACKGROUND(file) {


	o3_background = file;


	return 0;


}





// Sets use of close text.


function opt_NOCLOSE(unused) {


	o3_close = "";


	return 0;


}





// Sets caption.


function opt_CAPTION(text) {


	o3_cap = text;


	return 0;


}





// Sets hpos, for LEFT, RIGHT and CENTER.


function opt_HPOS(pos) {


	o3_hpos = pos;


	return 0;


}





// Sets the x offset


function opt_OFFSETX(offset) {


	o3_offsetx = offset;


	return 0;


}





// Sets the y offset


function opt_OFFSETY(offset) {


	o3_offsety = offset;


	return 0;


}








// Sets the fg color


function opt_FGCOLOR(clr) {


	o3_fgcolor = clr;


	return 0;


}





// Sets the bg color


function opt_BGCOLOR(clr) {


	o3_bgcolor = clr;


	return 0;


}





// Sets the text color


function opt_TEXTCOLOR(clr) {


	o3_textcolor = clr;


	return 0;


}





// Sets the caption color


function opt_CAPCOLOR(clr) {


	o3_capcolor = clr;


	return 0;


}





// Sets the close color


function opt_CLOSECOLOR(clr) {


	o3_closecolor = clr;


	return 0;


}





// Sets the popup width


function opt_WIDTH(pixels) {


	o3_width = pixels;


	return 0;


}





// Sets the popup border width


function opt_BORDER(pixels) {


	o3_border = pixels;


	return 0;


}





// Sets the status bar text


function opt_STATUS(text) {


	o3_status = text;


	return 0;


}





// Sets that status bar text to the text


function opt_AUTOSTATUS(val) {


	o3_autostatus = 1;


	return 0;


}





// Sets that status bar text to the caption


function opt_AUTOSTATUSCAP(val) {


	o3_autostatus = 2;


	return 0;


}





// Sets the popup height


function opt_HEIGHT(pixels) {


	o3_height = pixels;


	o3_aboveheight = pixels;


	return 0;


}





// Sets the close text.


function opt_CLOSETEXT(text) {


	o3_close = text;


	return 0;


}





// Sets horizontal snapping


function opt_SNAPX(pixels) {


	o3_snapx = pixels;


	return 0;


}





// Sets vertical snapping


function opt_SNAPY(pixels) {


	o3_snapy = pixels;


	return 0;


}





// Sets horizontal position


function opt_FIXX(pos) {


	o3_fixx = pos;


	return 0;


}





// Sets vertical position


function opt_FIXY(pos) {


	o3_fixy = pos;


	return 0;


}





// Sets the fg background


function opt_FGBACKGROUND(picture) {


	o3_fgbackground = picture;


	return 0;


}





// Sets the bg background


function opt_BGBACKGROUND(picture) {


	o3_bgbackground = picture;


	return 0;


}





// Sets the left x padding for background


function opt_PADX(pixels) {


	o3_padxl = pixels;


	return PADX2;


}





// Sets the top y padding for background


function opt_PADY(pixels) {


	o3_padyt = pixels;


	return PADY2;


}





// Sets the right x padding for background


function opt_PADX2(pixels) {


	o3_padxr = pixels;


	return 0;


}





// Sets the bottom y padding for background


function opt_PADY2(pixels) {


	o3_padyb = pixels;


	return 0;


}





// Sets that user provides full html.


function opt_FULLHTML(unused) {


	o3_fullhtml = 1;


	return 0;


}





// Sets vpos, for ABOVE and BELOW


function opt_VPOS(pos) {


	o3_vpos = pos;


	return 0;


}





// Sets the caption icon.


function opt_CAPICON(icon) {


	o3_capicon = icon;


	return 0;


}





// Sets the text font


function opt_TEXTFONT(fontname) {


	o3_textfont = fontname;


	return 0;


}





// Sets the caption font


function opt_CAPTIONFONT(fontname) {


	o3_captionfont = fontname;


	return 0;


}





// Sets the close font


function opt_CLOSEFONT(fontname) {


	o3_closefont = fontname;


	return 0;


}





// Sets the text font size


function opt_TEXTSIZE(fontsize) {


	o3_textsize = fontsize;


	return 0;


}





// Sets the caption font size


function opt_CAPTIONSIZE(fontsize) {


	o3_captionsize = fontsize;


	return 0;


}





// Sets the close font size


function opt_CLOSESIZE(fontsize) {


	o3_closesize = fontsize;


	return 0;


}





// 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) || (ns6) ) over = o3_frame.overDiv.style


	}





	return 0;


}





// Sets the popup timeout (note: 1 sec = 1000)


function opt_TIMEOUT(maxtime) {


	o3_timeout = maxtime;


	return 0;


}





// Calls an external function


function opt_FUNCTION(callme) {


	o3_text = callme()


	return 0;


}





// Sets the popup delay (note: 1 sec = 1000)


function opt_DELAY(waittime) {


	o3_delay = waittime;


	return 0;


}





// Sets the auto horizontal option


function opt_HAUTO(onoff) {


	if (o3_hauto == 0) {


		o3_hauto = 1;


	} else {


		o3_hauto = 0;


	}


	return 0;


}





// Sets the auto vertical option


function opt_VAUTO(onoff) {


	if (o3_vauto == 0) {


		o3_vauto = 1;


	} else {


		o3_vauto = 0;


	}


	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);


}
