//\//////////////////////////////////////////////////////////////////////////////////
//\  overLIB 3.50  --  This notice must remain untouched at all times.
//\  Copyright Erik Bosrup 1998-2001. All rights reserved.
//\
//\  By Erik Bosrup (erik@bosrup.com).  Last modified 2001-08-28.
//\  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 regarding 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.
//\//////////////////////////////////////////////////////////////////////////////////
//\mini


////////////////////////////////////////////////////////////////////////////////////
// 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; // PADX2 out
var PADY		=	31; // PADY2 out
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;
var CLOSECLICK		=	50;
var CSSOFF		=	51;
var CSSSTYLE		=	52;
var CSSCLASS		=	53;
var FGCLASS		=	54;
var BGCLASS		=	55;
var TEXTFONTCLASS	=	56;
var CAPTIONFONTCLASS	=	57;
var CLOSEFONTCLASS	=	58;
var PADUNIT		=	59;
var HEIGHTUNIT		=	60;
var WIDTHUNIT		=	61;
var TEXTSIZEUNIT	=	62;
var TEXTDECORATION	=	63;
var TEXTSTYLE		=	64;
var TEXTWEIGHT		=	65;
var CAPTIONSIZEUNIT	=	66;
var CAPTIONDECORATION	=	67;
var CAPTIONSTYLE	=	68;
var CAPTIONWEIGHT	=	69;
var CLOSESIZEUNIT	=	70;
var CLOSEDECORATION	=	71;
var CLOSESTYLE		=	72;
var CLOSEWEIGHT		=	73;


// Application Sharing SnapShots&#153; PowerPoint&reg; Presentations
// my vars to set all of Features&Functionality text in its own table, to our styles
var shownsharetext = "Show anything and share anything, whether you're using PlaceWare for collaborative meetings, interactive learning sessions, or large-scale virtual presentations. PlaceWare web conferencing provides the best way to help you communicate with remote teams, prospects, customers, partners, colleagues, and global audiences.";

var viewsharetext = "<span class=ServicesSubHeads>View Sharing / Application Sharing</span><br />Broadcast any visuals, applications, web pages, documents, or software to remote participants in real-time. Audience members will be able to see exactly what you are doing including all of your mouse movements and keyboard inputs. Present live from your desktop. Show anything on your computer instantly to remote audiences. You can choose to share a portion of your screen to keep your audience focused on the key information, share any application or document, or share your desktop with the audience.  Both Presenter and Premier Edition have View Sharing and Application Sharing.<br><br><span class=Services3SubHeads>What Do I do With It?</span><br>Using View Sharing allows you to:<ul><li>Take your audience on a tour of a Web site.  You control every movement and everything your audience sees.   Your audience follows exactly as if they were looking over your shoulder.<\/li><li>Use any presentation software in &quot;slide show&quot; mode and actually display the animations and transitions.  Size the adjustable view sharing frame to any size and go.<\/li><li>Demonstrate software products or provide training on software products through show and tell.   Your audience sees everything you do.   And, when you're ready to hand control over to any audience member, you can instantly click to application sharing and give remote control to any user.<\/li><li>Collaborate on complex documents, graphics or drawings.  For example, you can show complex project status charts, engineering drawings, or documents.<\/li><li>View Sharing can be recorded using our optional PlaceWare Replay\&#153; recordings.  Capture every move, every nuance.<\/li><\/ul>";

var appsharetext = "<span class=ServicesSubHeads>Application Sharing Remote Control</span><br />Give control of any application on your system to remote participants. PlaceWare's application sharing remote control is safe and secure and provides encoding to protect content plus access controls to prevent accidental or malicious damage to files. Attendees do not need any plug-ins to share, making it quick and easy to collaborate or provide hands-on learning.  Remote control allows you to hand control of any document, application, or your desktop to any remote participant.  Both you and the participant have full control of that application.   Remote control is available with our Premier Edition of Conference Center.<br /><br /><span class=Services3SubHeads>What do I do with it?</span><br />With Application Sharing you can: <ul><li>Provide live software demonstrations to remote prospects</li><li>Train remote learners by showing them how to do a task and then providing them with control so they learn by doing</li><li>Collaborate on documents or visuals with colleagues, partners, prospects, and customers</li><li>Take your audience on a virtual tour of any website or software product</li><li>Demonstrate customized applications to provide training or assistance</li><li>Provide help desk support to users located anywhere in the world</li></ul>";

var snapshots = "<span class=ServicesSubHeads>Snapshots&#153;</span><br />Capture any visual on your computer and show it to your audience. Once you've taken a SnapShot, use annotation tools to highlight information quickly and conveniently.<br /><br /><span class=Services3SubHeads>What do I do with it?</span><br />With SnapShots&#153; you can:<ul><li>Display portions of contracts or spreadsheets to clarify or highlight key information</li><li>Build training sessions quickly and easily by quickly grabbing appropriate presentation materials</li><li>Draw your audience's attention to important points by taking SnapShots of key visuals</li></ul>";

var powerpoints = "<span class=ServicesSubHeads>PowerPoint&reg; Presentations</span><br />Upload your PowerPoint&reg; presentation before your presentation or present directly from your desktop. All uploaded slides are protected during transmission and storage using full 128-bit encryption. Plus, PowerPoint&reg; Presenter tools let you add specialized PlaceWare slides to your presentation as you build them.<br /><br /><span class=Services3SubHeads>What do I do with it?</span><br />Use PlaceWare's Slide Feature to:<ul><li>Assemble your presentation in advance, practice it, and deliver it perfectly without last minute scrambling</li><li>Show your best with PlaceWare high color display to capture and present graphics and visuals in detail</li><li>Add text slides, web slides, polls, and application slides in PowerPoint and have them appear in PlaceWare.   Use slide titles to identify each portion of your presentation</li><li>Add the presenter's picture and the presenter's title to all slides or add presenter's pictures to the appropriate section of a set of presentation materials.</li><li>Flip between multiple slide sets quickly and easily and provide seamless transitions from one presentation or presenter to another.</li></ul>";

var desktops = "<span class=ServicesSubHeads>Desktop Sharing</span><br />Broadcast the presenter's desktop to all participants.  Audience members will be able to see exactly what the presenter is doing including all mouse movements and keyboard inputs.<br /><br /><span class=Services3SubHeads>What do I do with it?</span><br />Use Desktop Sharing to:<ul><li>Show your audience how to complete any task on a computer from start to finish.  Your audience will be able to see anything on your desktop.</li><li>Allow you to have two or more applications open and show any combination of content to your audience.</li><li>Open any presentation software in slide show mode and show slides including all animations and transitions</li></ul>";

var documents = "<span class=ServicesSubHeads>Document Sharing</span><br />Show and broadcast any document to all participants. Any document can be displayed and broadcast.  To use document sharing, open any document and use the sharing feature to share anything with remote participants.<br /><br /><span class=Services3SubHeads>What do I do with it?</span><br />Use Document Sharing to:<ul><li>Display any document quickly and easily to facilitate learning. Open supporting materials and show them to your class.</li><li>Open additional resources and show them to remote participants during a marketing seminar or product launch.  Display any graphics, visuals, drawings, or documents.</li><li>Help close sales by showing sales tools and collateral documents to prospects and customers.</li></ul>";

var remotecontrol = "<span class=ServicesSubHeads>Remote Control</span><br />Attendees can control what is being show during the session. For example, if the presenter is application sharing a spreadsheet, attendees can take over control and the actions of either the presenter or the remote attendee are broadcasted to all meeting participants. The presenter has the ability to pass remote control to one or many participants at any time.  Attendees can control or change items on the actual document.   With PlaceWare, attendees do not need any plug-ins to participate.<br /><br /><span class=Services3SubHeads>What do I do with it?</span><br />Use Remote Control to:<ul><li>Work collaboratively on a project and have all changes made by participants saved on one document in one place.</li><li>Show learners how to accomplish a task and then let them show you they have learned the task.  For example, show students how to use a new software program and then give each learner the ability to show the rest of the class what they have learned.</li><li>Conduct dynamic sales demonstrations.  First, show your prospect your software product or web-based application.  You can easily hand them control of the application.</li><li>Work with your agencies and creative groups on projects in real time.   Open files and be able to give control of the application to anyone in the session.</li></ul>";

var createoncetxt = "Create your presentation or learning materials once and deliver them anywhere, anytime&#151;even from your desktop. Safely and securely upload and store your presentation for instant access by authorized presenters.  All content is encrypted using the same high security 128-bit encryption used by financial services institutions to protect confidential information.  In collaborative sessions, all content you create can be made available for review by project teams or in subsequent meetings.<br /><br /><span class=Services3SubHeads>What do I do with it?</span><br />With PlaceWare you can:<ul><li>Create product demonstrations and provide multiple sessions without having to reload or re-assemble content</li><li>Deliver high-impact sales demonstrations quickly and conveniently with consistent messages</li><li>Create online learning modules and enable multiple instructors easily access and deliver sessions</li></ul>";

var perfectprestxt = "<span class=ServicesSubHeads>PlaceWare Places for Perfect Presentations</span><br />Be prepared with PlaceWare Places. Upload your presentation in advance.  Add visuals, live web tours, or new interactive slides before your presentation begins.  Reorganize or modify visuals quickly and easily. When it's show time, all your materials are safely and securely stored and ready for use. Plus, you can access your presentation materials from any system with special presenter security keys.<br /><br /><span class=Services3SubHeads>What do I do with it?</span><br />Use PlaceWare Places to:<ul><li>Create a virtual room where you can assemble your presentation using multiple media elements anytime prior to your session.  Use PowerPoint slides, text slides, whiteboards, polls, and visuals to create your presentation.   Practice, modify the sequence of your presentation, and be comfortable prior to your session</li><li>Allow your co-presenters to enter your PlaceWare place anytime prior to the session to load materials, practice, or do a dry run.   Your materials are always safe and secure and instantly accessible with your personal access keys from any computer on the Internet.   You don't even need to bring your laptop with you</li><li>Delivering the same presentation multiple times?  Depend on the convenience and ease of use of PlaceWare Places.  Create your session materials once and deliver subsequent sessions easily without having to do anything but log in.  Assemble your session in advance, rehearse, and when you are ready, you have everything in one place ready for show time, anytime</li></ul>";

var placesteamstxt = "<span class=ServicesSubHeads>PlaceWare Places for Teams</span><br />Set up a team room for ongoing projects, customer meetings, staff or department meetings, or learning sessions. Participants can easily access materials, add content, or make comments.  During any session, you can easily access session notes from prior sessions to review action items, to do lists or project task lists.  And you can restrict access to the attendees you choose.<br /><br /><span class=Services3SubHeads>What do I do with it?</span><br />Use PlaceWare Places to:<ul><li>Create PlaceWare Places for your weekly team meetings.   Any materials can be instantly accessed including prior meeting notes, agendas, or presentations with the click of your mouse.  Create task lists, action items, parking lots, and collaborative meeting notes instantly.  Pull information from past sessions to share with your team.  For example, pull up last week's action item lists and be able to facilitate and speed up the process of status reports.   Use text slides for collaborative brainstorming knowing that every keystroke is available to each participant</li><li>Set up project rooms for each of your customers.   Use these virtual rooms to conduct business and keep important materials in one place.  You'll be able to instantly access all of the materials created in PlaceWare sessions with any computer connected to the Internet.  No need to even have to bring your own laptop along.  Just log in with your secure, encrypted login and special keys and get access to your PlaceWare Places</li><li>Create a team room for learners.   Give learners anytime, anywhere access to the room and they'll be able to review materials, edit existing materials, and add their own content to facilitate overall learning.   When the session meets, all materials are instantly accessible including new ones and all past materials used in the sessions</li></ul>";

var pwreplaytxt = "<span class=ServicesSubHeads>PlaceWare Replay&#153;</span><br />Record and save a copy of your session with PlaceWare Replay&#153;. Easier to use than a VCR, PlaceWare Replay captures everything in your session including the live demonstrations, annotations, notes, visuals and even live web slides. Recordings are automatically hosted in our store-and-stream iVault&#153; II network making them instantly available with the click of a URL. Access controls provide open, limited, or secure access to viewing recordings. You can even view reports to see recording trends.  All PlaceWare Replay recordings are hosted for you making it easy for anyone in the world to click on a URL and view the recording - no need to worry about IT or Webmaster involvement.   Or, download recordings to put them on a local network or server.<br /><br /><span class=Services3SubHeads>What do I do with it?</span><br />With PlaceWare Replay&#153; you can:<ul><li>Capture live training sessions and make the sessions available on-demand</li><li>Extend your reach by providing product demonstrations as recorded sessions; your prospects can view them at anytime by clicking on a URL</li><li>Record seminars and key executive presentations for later viewing</li><li>Provide tutorials of your software product quickly and conveniently</li><li>Record meetings to capture everything including annotations, notes, text slides, and live demonstrations</li><li>Add assessments or surveys to your recorded sessions to capture information from viewers as they complete viewing a PlaceWare Replay recording</li><li>Invite those who have attended a live session to an on-demand Replay of your session with an invitation and link to view the recording.</li><li>Each organizer can view lists of all recordings they've made, can change access controls or permissions, and can even download recordings or track usage.</li> <li>Search for any recording by name or by date range quickly and easily.</li></ul>";


var richtxt = "A variety of features allow you to interact directly with your audience. Share web content, visuals, applications and more to help them get the most out of their experience.";

var webslidestxt = "<span class=ServicesSubHeads>Web Slides</span><br />Take your audience to any live web page. Each attendee can click on links, fill out forms, or use interactive media. Add web slides to your presentation quickly and easily just by entering the URL. The preview feature allows you to see the page before you show it to your audience. You can also add Flash and other animations to your presentation. One click brings attendees back to the main presentation.<br /><br /><span class=Services3SubHeads>What do I do with it?</span><br />With Web Slides you can:<ul><li>Create interactive web forms on your website to gather data</li><li>At the end of a seminar, provide a survey form to gather information on your attendee's experience</li><li>For learning, provide individual assessments at the end of sessions</li><li>Bring attendees to live web pages instantly</li></ul>";

var pollingtxt = "<span class=ServicesSubHeads>InstantPolling&#153;</span><br />Receive instant feedback from your audience with real-time polling. Click the poll button, type a question and list possible answers. The poll will be instantly displayed Audience votes are tallied dynamically. Display the results as they come in or keep them hidden from audience view. At the end of the session a polling report can show you individual votes.<br><br><span class=Services3SubHeads>What Do I do With It?</span><br>Using InstantPolling&#153; allows you to:<ul><li>Gather data from your audience by providing frequent polls to key questions or topics.  For example, use polls during your virtual product launches to determine effectiveness</li><li>Put in quiz questions during training sessions to reemphasize or highlight important information. </li><li>During important decision-making meetings, use polls to gather each participant's vote and ensure that no participant is influenced by another person or the group's overall voting trends.  You can hide the results of polls and make them available only to presenters, close polls, and show results with the click of a button.</li><li>Use the polling reports to determine overall success of training programs, seminars, and meetings.</li></ul>";

var realtimetxt = "<span class=ServicesSubHeads>Real-Time Annotations</span><br />Draw, highlight and type directly on your slides in real-time in order to focus your audience's attention on the particular point you're discussing.  Multiple presenters can work on slides simultaneously and are assigned different annotation colors in order to differentiate each presenter's marks.<br><br><span class=Services3SubHeads>What Do I do With It?</span><br>Use annotations to:<ul><li>Provide visual cues to highlight important points to your audience</li><li>Highlight key point and draw audience attention to the relevant section of a document or graphic.</li><li>Step the audience through the key points of a slide</li><li>Use the annotation tools on one or more whiteboards to draw or illustrate your point</li></ul>";

var ewhitebdtxt = "<span class=ServicesSubHeads>Electronic Whiteboards</span><br />Illustrate an idea or draw a picture for your audience quickly and conveniently. As you draw or type text your audience sees exactly what you are creating in real-time.  In a collaborative session, all attendees can be given permission to use the whiteboard to capture ideas.  Each attendee has a different colored set of tools to use.<br><br><span class=Services3SubHeads>What Do I do With It?</span><br>Use Whiteboards to:<ul><li>Supplement or enhance collaborative meetings</li><li>Brainstorm ideas or concepts by allowing all participants to simultaneously type text on a whiteboard</li><li>Create drawings or flow charts to provide visuals to understand concepts</li><li>Create and save important meeting information</li></ul>";

var etexttxt = "<span class=ServicesSubHeads>Electronic Text Slides</span><br />Instantly create interactive text slides to capture agendas, meeting notes, action items, or to track progress of team meeting notes. Text slides can be prepared in advance or created instantly. In a collaborative session, you can give attendees the ability to type into text slides.  Plus, text slides are always saved automatically so you can refer to notes, action items, or other important information at any time.<br><br><span class=Services3SubHeads>What Do I do With It?</span><br>Use Text slides to:<ul><li>Create flexible and easily modified agendas.   After your meeting starts, you can easily modify the existing agenda, add new items, or modify existing ones.</li><li>Cut and paste textual information into a text slide and allow participants to easily modify the text.  Ideal for negotiations or creative applications where you want to work collaboratively on sections of a document in detail.</li><li>Develop action items, parking lots, and electronic flip charts.   During and after the session, participants can either cut and paste information into other applications or you can allow printing capability</li><li>Save text slides along with weekly meeting information and easily pull up last week's agenda, action items, and task lists to quickly review status of items without having to retype or locate them on your computer</li></ul>";

var seevurttxt = "<span class=ServicesSubHeads>See Your Audience Virtually</span><br />Audience members can change their seat colors to visually communicate their level of understanding or desired pace without interrupting your session. So you can immediately adjust your delivery in response to audience needs. Plus, presenters always know who is in a session and can view the seating chart for large sessions or the <I>who's here</I> tab for collaborative sessions.<br /><br /><span class=Services3SubHeads>What do I do with it?</span><br />Seeing your audience virtually lets you:<ul><li>Ask your audience to change their seat colors to confirm they are ready to proceed</li><li>Attendees can click on the <I><b>raise hand</b></I> to request assistance</li><li>Instruct your audience to use the colors to set the pace of the presentation to help you make sure you're not moving too slowly or too quickly</li><li>You can use the default labels and colors or change them before your session begins</li></ul>";

var qandatxt = "<span class=ServicesSubHeads>Live Q&amp;A</span><br />Audience members can ask questions and get answers without interrupting the presenter. While one person is presenting, another person or numerous people can serve as moderators and immediately respond to textual questions submitted from audience members. Answers can be provided directly to the questioner (private reply) or shared with the entire audience (post to all).<br /><br /><span class=Services3SubHeads>What do I do with it?</span><br />With live, interactive Q&amp;A you can:<ul><li>Invite experts from multiple locations to serve as moderators and answer questions while you continue presenting vital information to your audience</li><li>Help your learners or attendees get quick answers to their questions without having to wait until the end of the session</li></ul>";

var pimtxt = "<span class=ServicesSubHeads>Presenter Instant Messaging</span><br />Use the built-in chat capability for fast interaction and instant messaging (IM) between presenters. Perfect for communicating critical information while a live presentation is in session. All IM is private and not visible to your audience.<br /><br /><span class=Services3SubHeads>What do I do with it?</span><br />With flexible Presenter IM you can:<ul><li>Coordinate last-minute changes with other presenters by sending an instant message to any presenter</li><li>Each presenter can initiate or respond to multiple chat messages</li></ul>";

var audiencetxt = "<span class=ServicesSubHeads>Audience Instant Messaging/Chat</span><br />Presenters can enable the IM/chat feature for attendees at any point in a session. All chat is private between participants.  Presenters can always chat with each other and can enable or disable the audience chat feature.  In a Web Meeting Place, chat is always available for collaborative sessions.<br /><br /><span class=Services3SubHeads>What do I do with it?</span><br />With convenient audience instant messenger and chat you can:<ul><li>Provide the opportunity for audience members to discuss their opinions and ideas</li><li>Use IM/chat in breakout sessions to allow participants to discuss topics, share ideas and collaborate on projects</li></ul>";

var vurtplacestxt = "PlaceWare provides two types of virtual conference rooms&#151;Auditorium Places for large sessions and Meeting Places for smaller collaborative sessions. These virtual places are optimized with convenient features to make it even easier for you to present-and for your audience to have a more enjoyable and productive experience.";

var audiplacestxt = "<span class=ServicesSubHeads>Auditorium Places</span><br />PlaceWare Auditorium Places are ideal for delivering structured presentations to medium and large size groups. This one-to-many or few-to-many presentation environment is perfect for delivering formal presentations for sales, marketing, or corporate communications applications. Auditorium Places allow multiple presenters and can accommodate thousands of participants.<br /><br /><span class=Services3SubHeads>With PlaceWare Auditorium Places:</span><ul><li>See who is in attendance via the seating chart, and can strike up a private conversation in the audience with the text chat feature</li><li>Take advantage of the many advanced meeting facilitation features in Auditorium Places to address audience questions&#151;either publicly or privately, and selectively enable or disable interactive features such as slide review, chat, and questions</li><li>Only presenters can load slides, change and annotate slides, and create new content types like SnapShots, Web Tours, or application sharing</li><li>The audience is able to view the presentation, and can actively participate in the meeting via several interactive features</li><li>Audience members can ask questions of the presenters or separate moderators, provide spontaneous feedback via the seating chart, and can also interact with other members of the audience</li></ul>";

var mtgplacetxt = "<span class=ServicesSubHeads>Meeting Places</span><br />PlaceWare Meeting Places are best suited for collaborative meetings of smaller groups including brainstorming, strategy sessions, sales demonstrations, hands-on learning labs, project meetings, and staff meetings. With a Meeting Place you can interact more intimately with your audience by quickly handing full control back and forth between presenters and audience members.<br /><br /><span class=Services3SubHeads>With PlaceWare Meeting Places:</span><ul><li>Provide true collaboration with the ability to save newly created content or review existing content from current or past sessions.</li><li>Allow controlled and secure access to meeting rooms before, during or between meeting sessions to facilitate collaboration.</li><li>In a collaborative working meeting, everyone can be enabled to annotate slides and create content</li><li>Each participant's contributions are identified uniquely in this setting, to eliminate confusion and create a successful environment</li><li>The host enables or disables tools to manage interaction</li><li>Audience members' ability to share content creation and management tools can be limited as the host sees fit-even on-the-fly during a meeting</li></ul>";



var easyschedtxt = "Send invitations automatically to remote attendees with Microsoft Outlook&reg;, Lotus Notes&reg;, or your own email application. Attendees can add session information to their calendar with one click. Create recurring meetings or sessions quickly and easily with RapidMeeting&#153;.  Each user can set their own preferences with PlaceWare RapidMeeting&#153; for Outlook or Notes and customize their email invitations to PlaceWare sessions.";

var outlooktxt = "<span class=ServicesSubHeads>Schedule Through Outlook&reg;, Attend With A Click </span><br />Schedule PlaceWare sessions right from Microsoft Outlook&reg; with PlaceWare RapidMeeting&#153;. Use your group addresses, address book and other features of Outlook&reg; to quickly and conveniently invite participants to your session. Set the meeting information in Outlook&reg; and your session is instantly scheduled. Attendees click on a link to enter your session or add the session to their Outlook&reg; calendar with one click. Use the Seat Availability feature to locate available times when you need to hold a larger sessions that may exceed your company's purchased licenses.<br><br><span class=Services3SubHeads>What Do I do With It?</span><br>Use automatic scheduling through Outlook or Notes to:<ul><li>Initiate an instant &quot;meet now&quot; meeting and invite anyone quickly right from your DSA (desktop scheduling application) such as Outlook and Notes</li><li>Schedule future sessions in your DSA and they're instantly scheduled and ready for you in PlaceWare.  Invite prospects, customers, vendors, or colleagues by using your familiar address book</li><li>Schedule training sessions and instantly schedule the PlaceWare session through your DSA.</li><li>Modify the default invitation copy to suit your individual needs with customizable text and preferences</li></ul>";

var oneclicktxt = "<span class=ServicesSubHeads>One-Click Instant Meetings</span><br />Create an instant or ad-hoc meeting through PlaceWare, Microsoft Outlook&reg; or Lotus Notes&reg;. Give access to colleagues, prospects, partners, or customers so you can quickly use visuals to get your point across.  Provide one-click access to sessions plus the ability to send instant invitations to your audience. With the optional recording feature, you can even record your instant meetings or scheduled meetings.<br /><br /><span class=Services3SubHeads>What do I do with it?</span><br />With one-click instant meetings:<ul><li>Salespeople can set up instant meetings with prospects to deliver their sales demonstration</li><li>Use Outlook to schedule training sessions using company distribution lists</li><li>Enjoy the convenience and flexibility of sending out customized invitations to your attendees with the click of your mouse</li><li>Make it easy for your attendees to attend PlaceWare sessions with the one-click access URL provided in invitations</li></ul>";

var secureacctxt = "<span class=ServicesSubHeads>Secure Access</span><br />Control access to meetings with Meeting IDs and Meeting Keys or through individual authentication via Access Control Lists. Create attendee keys or require individual user IDs and  passwords for each invited guest. As a presenter, you can decide what type of access control is most appropriate for your session.<br /><br /><span class=Services3SubHeads>What do I do with it?</span><br />Depend on PlaceWare secure access and content security to:<ul><li>Protect meeting access with 128-bit encrypted log in.  All meeting IDs, meeting keys, passwords, and user IDs are encrypted before sending anywhere.  Even PlaceWare basic service provides this level of security</li><li>Prevent unauthorized access by requiring each individual to have a unique user ID and password for any access</li><li>Ensure that your slide content is encrypted with full AES 128-bit encryption as it is uploaded, stored, and transmitted to any attendee</li><li>Provide the highest level of security available on the Internet today with our optional SSL (secure socket layer) service.  This supplements the levels described above in our standard service with yet another layer of security.</li></ul>";

var securecontenttxt = "<span class=ServicesSubHeads>Secure Content and Storage</span><br />All slide content is encrypted using 128-bit encryption to protect confidential information while in transit, while being stored, and when transmitted to each attendee in your session.   PlaceWare\'s network and data centers have passed rigorous security audits by third-party firms and from our key financial services customers.  PlaceWare is trusted by over 70% of the Dow 30 and 60% of the Fortune 100 companies for our security, reliability, and availability.";

var powertxt = "Detailed real-time usage reports let you track attendance to your sessions and events so you can see who attended and for how long. View trend reports for sessions and recordings to get a big picture view of how your company is using PlaceWare. See statistics on each of your recordings to measure how they are being used and by whom.  Reports are exportable in standard CSV format so they can be used with other systems.  Billing codes are carried from profiles and sessions into reports to make it easy to track usage in your company.<ul><li>Administrator Reports:  Meeting Trends, Recording Trends, Summary Report</li><li>Organizer Reports: Meeting and Recording Lists (attendance, poll reports, connection time)</li></ul>";

var billingtxt = "<span class=ServicesSubHeads>Billing Codes</span><br />Anyone who schedules sessions can be assigned a default cost center or billing code.  Billing code reports can be run to determine usage by department or cost center.<br><br><span class=Services3SubHeads>What Do I do With It?</span><br>Use billing codes to:<ul></li><li>Purchase PlaceWare for multiple departments and quickly and easily be able to bill back usage by department</li><li>Gather the data you need to meet your company's policies, procedures, and budgetary needs quickly and easy</ul>";

var multisessiontxt = "<span class=ServicesSubHeads>Manage Multiple Sessions Easily</span><br />Each meeting scheduler can easily access his or her own private list of sessions, which can be modified, re-scheduled, re-keyed for access control or deleted. Search and filtering let you quickly locate current/future, past or ongoing session. Lists can also help you manage your recordings so you can easily locate specific recordings or track viewers.<br />See PlaceWare Conference Center in action&#151;check out our <a href=../demos/demos.cfm class=Services3SubHeads>Online Demos</a> or <a href=../ordering/free_trial.cfm class=Services3SubHeads>try PlaceWare Conference Center free!</a>";

var easyacctadmintxt = "<span class=ServicesSubHeads>Easy Account Administration</span><br />Your company's PlaceWare administrator can add new users, view high level reports, and set default parameters for your company Conference Center. Administrators can create new users, give permissions and set roles, create and edit groups of users quickly and easily.<span class=Services3SubHeads>What do I do with it?</span><br />Put the power of PlaceWare to work for your company and put the power of setting up new accounts, monitoring usage, and setting all permissions into the hands of your organization.  It's fast and easy to have any user management – adding new users, editing users, or deleting users, searching meetings or recordings, and reviewing overall reports.  This helps your company take full advantage of the PlaceWare service without any complexity.   Real time reports provide insight into your Conference Center use.";
 


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

// Set horizontal and vertical for all boxes here:
// Sets the popups horizontal position to a fixed column.
// Anything above -1 will cause fixed position.
if (typeof ol_fixx == 'undefined') { var ol_fixx = 590; }

// Sets the popups vertical position to a fixed row.
// Anything above -1 will cause fixed position.
if (typeof ol_fixy == 'undefined') { var ol_fixy = 340; }


// Main background color (the large area)
// Usually a bright color (white, yellow etc)
if (typeof ol_fgcolor == 'undefined') { var ol_fgcolor = "FFFFFF";}
	
// Border color and color of caption
// Usually a dark color (black, brown etc)
if (typeof ol_bgcolor == 'undefined') { var ol_bgcolor = "399C7B";}
	
// How much horizontal left padding text should get by default when BACKGROUND is used.
if (typeof ol_padxl == 'undefined') { var ol_padxl = 12; }

// How much horizontal right padding text should get by default when BACKGROUND is used.
if (typeof ol_padxr == 'undefined') { var ol_padxr = 9; }

// How much vertical top padding text should get by default when BACKGROUND is used.
if (typeof ol_padyt == 'undefined') { var ol_padyt = 8; }

// How much vertical bottom padding text should get by default when BACKGROUND is used.
if (typeof ol_padyb == 'undefined') { var ol_padyb = 4; }

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

// Text color
// Usually a dark color
if (typeof ol_textcolor == 'undefined') { var ol_textcolor = "949494";}
	
// 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 = "";}

// 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
// When using CSS this will be very small.
if (typeof ol_textsize == 'undefined') { var ol_textsize = "1";}

// Font size for the caption
// When using CSS this will be very small.
if (typeof ol_captionsize == 'undefined') { var ol_captionsize = "2";}

// Font size for the close text
// When using CSS this will be very small.
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 = "300";}

// 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 = 1; }

// 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". REMOVED "CLOSE" 
if (typeof ol_close == 'undefined') { var ol_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; }

// 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 = ""; }



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



// If the user has to click to close stickies.
if (typeof ol_closeclick == 'undefined') { var ol_closeclick = 0; }

// This variable determines if you want to use CSS or inline definitions.
// CSSOFF=no CSS    CSSSTYLE=use CSS inline styles    CSSCLASS=use classes
if (typeof ol_css == 'undefined') { var ol_css = CSSOFF; }

// Main background class (eqv of fgcolor)
// This is only used if CSS is set to use classes (ol_css = CSSCLASS)
if (typeof ol_fgclass == 'undefined') { var ol_fgclass = ""; }

// Frame background class (eqv of bgcolor)
// This is only used if CSS is set to use classes (ol_css = CSSCLASS)
if (typeof ol_bgclass == 'undefined') { var ol_bgclass = ""; }

// Main font class
// This is only used if CSS is set to use classes (ol_css = CSSCLASS)
if (typeof ol_textfontclass == 'undefined') { var ol_textfontclass = ""; }

// Caption font class
// This is only used if CSS is set to use classes (ol_css = CSSCLASS)
if (typeof ol_captionfontclass == 'undefined') { var ol_captionfontclass = ""; }

// Close font class
// This is only used if CSS is set to use classes (ol_css = CSSCLASS)
if (typeof ol_closefontclass == 'undefined') { var ol_closefontclass = ""; }

// Unit to be used for the text padding above
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
// Options include "px", "%", "in", "cm" and more
if (typeof ol_padunit == 'undefined') { var ol_padunit = "px";}

// Unit to be used for height of popup
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
// Options include "px", "%", "in", "cm" and more
if (typeof ol_heightunit == 'undefined') { var ol_heightunit = "px";}

// Unit to be used for width of popup
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
// Options include "px", "%", "in", "cm" and more
if (typeof ol_widthunit == 'undefined') { var ol_widthunit = "px";}

// Font size unit for the main text
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_textsizeunit == 'undefined') { var ol_textsizeunit = "px";}

// Decoration of the main text ("none", "underline", "line-through" or "blink")
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_textdecoration == 'undefined') { var ol_textdecoration = "none";}

// Font style of the main text ("normal" or "italic")
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_textstyle == 'undefined') { var ol_textstyle = "normal";}

// Font weight of the main text ("normal", "bold", "bolder", "lighter", ect.)
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_textweight == 'undefined') { var ol_textweight = "normal";}

// Font size unit for the caption
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_captionsizeunit == 'undefined') { var ol_captionsizeunit = "px";}

// Decoration of the caption ("none", "underline", "line-through" or "blink")
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_captiondecoration == 'undefined') { var ol_captiondecoration = "none";}

// Font style of the caption ("normal" or "italic")
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_captionstyle == 'undefined') { var ol_captionstyle = "normal";}

// Font weight of the caption ("normal", "bold", "bolder", "lighter", ect.)
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_captionweight == 'undefined') { var ol_captionweight = "bold";}

// Font size unit for the close text
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_closesizeunit == 'undefined') { var ol_closesizeunit = "px";}

// Decoration of the close text ("none", "underline", "line-through" or "blink")
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_closedecoration == 'undefined') { var ol_closedecoration = "none";}

// Font style of the close text ("normal" or "italic")
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_closestyle == 'undefined') { var ol_closestyle = "normal";}

// Font weight of the close text ("normal", "bold", "bolder", "lighter", ect.)
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_closeweight == 'undefined') { var ol_closeweight = "normal";}



////////////////////////////////////////////////////////////////////////////////////
// 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.
if (typeof ol_texts == 'undefined') { var ol_texts = new Array("Text from that array at ln 375", "Text 1"); }

// Array with captions.
if (typeof ol_caps == 'undefined') { var ol_caps = new Array("SNS", "Caption 2"); }


////////////////////////////////////////////////////////////////////////////////////
// END CONFIGURATION
// Don't change anything below this line, all configuration is above.
////////////////////////////////////////////////////////////////////////////////////







////////////////////////////////////////////////////////////////////////////////////
// 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;
var o3_closeclick = 0;

var o3_css = CSSOFF;
var o3_fgclass = "";
var o3_bgclass = "";
var o3_textfontclass = "";
var o3_captionfontclass = "";
var o3_closefontclass = "";
var o3_padunit = "px";
var o3_heightunit = "px";
var o3_widthunit = "px";
var o3_textsizeunit = "px";
var o3_textdecoration = "";
var o3_textstyle = "";
var o3_textweight = "";
var o3_captionsizeunit = "px";
var o3_captiondecoration = "";
var o3_captionstyle = "";
var o3_captionweight = "";
var o3_closesizeunit = "px";
var o3_closedecoration = "";
var o3_closestyle = "";
var o3_closeweight = "";



// 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) || (navigator.userAgent.indexOf('MSIE 6') > 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;
	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 = "<TABLE WIDTH="+o3_width+" BORDER=0 CELLPADDING="+o3_border+" CELLSPACING=0 class=\""+o3_bgclass+"\"><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 class=\""+o3_fgclass+"\"><TR><TD VALIGN=TOP><FONT class=\""+o3_textfontclass+"\">"+text+"</FONT></TD></TR></TABLE></TD></TR></TABLE>";
	if (o3_css == CSSSTYLE) txt = "<TABLE WIDTH="+o3_width+" BORDER=0 CELLPADDING="+o3_border+" CELLSPACING=0 style=\"background-color: "+o3_bgcolor+"; height: "+o3_height+o3_heightunit+";\"><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 style=\"color: "+o3_fgcolor+"; background-color: "+o3_fgcolor+"; height: "+o3_height+o3_heightunit+";\"><TR><TD VALIGN=TOP><FONT style=\"font-family: "+o3_textfont+"; color: "+o3_textcolor+"; font-size: "+o3_textsize+o3_textsizeunit+"; text-decoration: "+o3_textdecoration+"; font-weight: "+o3_textweight+"; font-style:"+o3_textstyle+"\">"+text+"</FONT></TD></TR></TABLE></TD></TR></TABLE>";
	if (o3_css == CSSOFF) 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 = "";
	closeevent = "onMouseOver";

	if (o3_closeclick == 1) closeevent = "onClick";
	if (o3_capicon != "") o3_capicon = "<IMG SRC=\""+o3_capicon+"\"> ";

	if (close != "") {
		if (o3_css == CSSCLASS) closing = "<TD ALIGN=RIGHT><A HREF=\"/\" "+closeevent+"=\"return cClick();\" class=\""+o3_closefontclass+"\">"+close+"</A></TD>";
		if (o3_css == CSSSTYLE) closing = "<TD ALIGN=RIGHT><A HREF=\"/\" "+closeevent+"=\"return cClick();\" style=\"color: "+o3_closecolor+"; font-family: "+o3_closefont+"; font-size: "+o3_closesize+o3_closesizeunit+"; text-decoration: "+o3_closedecoration+"; font-weight: "+o3_closeweight+"; font-style:"+o3_closestyle+";\">"+close+"</A></TD>";
		if (o3_css == CSSOFF) closing = "<TD ALIGN=RIGHT><A HREF=\"/\" "+closeevent+"=\"return cClick();\"><FONT COLOR=\""+o3_closecolor+"\" FACE=\""+o3_closefont+"\" SIZE=\""+o3_closesize+"\">"+close+"</FONT></A></TD>";
	}

	if (o3_css == CSSCLASS) txt = "<TABLE WIDTH="+o3_width+" BORDER=0 CELLPADDING="+o3_border+" CELLSPACING=0 class=\""+o3_bgclass+"\"><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD><FONT class=\""+o3_captionfontclass+"\">"+o3_capicon+title+"</FONT></TD>"+closing+"</TR></TABLE><TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 class=\""+o3_fgclass+"\"><TR><TD VALIGN=TOP><FONT class=\""+o3_textfontclass+"\">"+text+"</FONT></TD></TR></TABLE></TD></TR></TABLE>";
	if (o3_css == CSSSTYLE) txt = "<TABLE WIDTH="+o3_width+" BORDER=0 CELLPADDING="+o3_border+" CELLSPACING=0 style=\"background-color: "+o3_bgcolor+"; background-image: url("+o3_bgbackground+"); height: "+o3_height+o3_heightunit+";\"><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD><FONT style=\"font-family: "+o3_captionfont+"; color: "+o3_capcolor+"; font-size: "+o3_captionsize+o3_captionsizeunit+"; font-weight: "+o3_captionweight+"; font-style: "+o3_captionstyle+";\">"+o3_capicon+title+"</FONT></TD>"+closing+"</TR></TABLE><TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 style=\"color: "+o3_fgcolor+"; background-color: "+o3_fgcolor+"; height: "+o3_height+o3_heightunit+";\"><TR><TD VALIGN=TOP><FONT style=\"font-family: "+o3_textfont+"; color: "+o3_textcolor+"; font-size: "+o3_textsize+o3_textsizeunit+"; text-decoration: "+o3_textdecoration+"; font-weight: "+o3_textweight+"; font-style:"+o3_textstyle+"\">"+text+"</FONT></TD></TR></TABLE></TD></TR></TABLE>";
// This one used for our dropdown
	if (o3_css == CSSOFF) txt = "<TABLE WIDTH="+o3_width+" BORDER=0 CELLPADDING="+o3_border+" CELLSPACING=0 "+o3_bgcolor+" "+o3_bgbackground+" "+o3_height+"><TR><TD><TABLE WIDTH=300 BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD WIDTH=10>&nbsp;</TD><TD WIDTH=290><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 WIDTH=5>&nbsp;</TD><TD VALIGN=TOP><FONT COLOR=\""+o3_textcolor+"\" FACE=\""+o3_textfont+"\" SIZE=\""+o3_textsize+"\">"+text+"</FONT></TD><TD WIDTH=5>&nbsp;</TD></TR><TR><TD COLSPAN=3>&nbsp;</TD></TR></TABLE></TD></TR></TABLE>";

	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 = "<TABLE WIDTH="+o3_width+o3_widthunit+" BORDER=0 CELLPADDING=0 CELLSPACING=0 HEIGHT="+o3_height+o3_heightunit+"><TR><TD COLSPAN=3 HEIGHT="+o3_padyt+o3_padunit+"></TD></TR><TR><TD WIDTH="+o3_padxl+o3_padunit+"></TD><TD VALIGN=TOP WIDTH="+(o3_width-o3_padxl-o3_padxr)+o3_padunit+"><FONT class=\""+o3_textfontclass+"\">"+text+"</FONT></TD><TD WIDTH="+o3_padxr+o3_padunit+"></TD></TR><TR><TD COLSPAN=3 HEIGHT="+o3_padyb+o3_padunit+"></TD></TR></TABLE>";
		if (o3_css == CSSSTYLE) txt = "<TABLE WIDTH="+o3_width+o3_widthunit+" BORDER=0 CELLPADDING=0 CELLSPACING=0 HEIGHT="+o3_height+o3_heightunit+"><TR><TD COLSPAN=3 HEIGHT="+o3_padyt+o3_padunit+"></TD></TR><TR><TD WIDTH="+o3_padxl+o3_padunit+"></TD><TD VALIGN=TOP WIDTH="+(o3_width-o3_padxl-o3_padxr)+o3_padunit+"><FONT style=\"font-family: "+o3_textfont+"; color: "+o3_textcolor+"; font-size: "+o3_textsize+o3_textsizeunit+";\">"+text+"</FONT></TD><TD WIDTH="+o3_padxr+o3_padunit+"></TD></TR><TR><TD COLSPAN=3 HEIGHT="+o3_padyb+o3_padunit+"></TD></TR></TABLE>";
		if (o3_css == CSSOFF) 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 = "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);
}
