1/*
2 * xbLibrary.js
3 * $Revision: 1.3 $ $Date: 2003/03/17 03:44:20 $
4 */
5
6/* ***** BEGIN LICENSE BLOCK *****
7 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
8 *
9 * The contents of this file are subject to the Mozilla Public License Version
10 * 1.1 (the "License"); you may not use this file except in compliance with
11 * the License. You may obtain a copy of the License at
12 * http://www.mozilla.org/MPL/
13 *
14 * Software distributed under the License is distributed on an "AS IS" basis,
15 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
16 * for the specific language governing rights and limitations under the
17 * License.
18 *
19 * The Original Code is Bob Clary code.
20 *
21 * The Initial Developer of the Original Code is
22 * Bob Clary.
23 * Portions created by the Initial Developer are Copyright (C) 2000
24 * the Initial Developer. All Rights Reserved.
25 *
26 * Contributor(s): Bob Clary <bc@bclary.com>
27 *
28 * ***** END LICENSE BLOCK ***** */
29
30if (!document.getElementById || navigator.userAgent.indexOf('Opera') != -1)
31{
32  // assign error handler for downlevel browsers
33  // Note until Opera improves it's overall support
34  // for JavaScript and the DOM, it must be considered downlevel
35
36  window.onerror = defaultOnError;
37
38  function defaultOnError(msg, url, line)
39  {
40    // handle bug in NS6.1, N6.2
41    // where an Event is passed to error handlers
42    if (typeof(msg) != 'string')
43    {
44        msg = 'unknown error';
45    }
46    if (typeof(url) != 'string')
47    {
48        url = document.location;
49    }
50
51    alert('An error has occurred at ' + url + ', line ' + line + ': ' + msg);
52  }
53}
54
55function xbLibrary(path)
56{
57  if (path.charAt(path.length-1) == '/')
58  {
59    path = path.substr(0, path.length-1)
60  }
61  this.path = path;
62}
63
64// dynamically loaded scripts
65//
66// it is an error to reference anything from the dynamically loaded file inside the
67// same script block.  This means that a file can not check its dependencies and
68// load the files for it's own use.  someone else must do this.
69
70xbLibrary.prototype.loadScript =
71function (scriptName)
72{
73  document.write('<script language="javascript" src="' + this.path + '/' + scriptName + '"><\/script>');
74};
75
76// default xbLibrary
77
78xblibrary = new xbLibrary('./');
79
80
81