aboutsummaryrefslogtreecommitdiffstats
path: root/src/extras/sos-html-logs
diff options
context:
space:
mode:
authornavid <navid@ef72aa8b-4018-0410-8976-d6e080ef94d8>2007-12-10 09:39:46 +0000
committernavid <navid@ef72aa8b-4018-0410-8976-d6e080ef94d8>2007-12-10 09:39:46 +0000
commit09d32a855b52efcef55e33bf11a87e7ddfdb84c9 (patch)
tree4219a83444739fefc078667e4368f68e965da878 /src/extras/sos-html-logs
parent453bcc1ec4ec8afc9c46eb32605b2fd8316cc4c5 (diff)
downloadsos-09d32a855b52efcef55e33bf11a87e7ddfdb84c9.tar.gz
developement moved to http://code.google.com/p/logpox
git-svn-id: svn+ssh://svn.fedorahosted.org/svn/sos/trunk@465 ef72aa8b-4018-0410-8976-d6e080ef94d8
Diffstat (limited to 'src/extras/sos-html-logs')
-rw-r--r--src/extras/sos-html-logs/lib/__init__.py0
-rw-r--r--src/extras/sos-html-logs/lib/database.py26
-rw-r--r--src/extras/sos-html-logs/lib/helpers.py41
-rw-r--r--src/extras/sos-html-logs/lib/logs_abstraction.py415
-rw-r--r--src/extras/sos-html-logs/lib/parsers/__init__.py0
-rw-r--r--src/extras/sos-html-logs/lib/parsers/crazyclock_parser.py24
-rw-r--r--src/extras/sos-html-logs/lib/parsers/dmapper_parser.py106
-rw-r--r--src/extras/sos-html-logs/lib/parsers/simple_parser.py29
-rw-r--r--src/extras/sos-html-logs/lib/parsers/simple_parser.rules38
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/BabelFish.js58
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/ajaxcontentmws.js181
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/arrow.gifbin88 -> 0 bytes
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/calendarmws.js621
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/calendarmws_lang.js700
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/cornerBL.gifbin205 -> 0 bytes
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/cornerBR.gifbin208 -> 0 bytes
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/cornerTL.gifbin207 -> 0 bytes
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/cornerTR.gifbin206 -> 0 bytes
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/edgeB.gifbin47 -> 0 bytes
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/edgeL.gifbin48 -> 0 bytes
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/edgeR.gifbin48 -> 0 bytes
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/edgeT.gifbin47 -> 0 bytes
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/exit.gifbin866 -> 0 bytes
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/flower.gifbin4255 -> 0 bytes
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/iframecontentmws.js53
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/license.html265
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/loading.gifbin674 -> 0 bytes
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/objectcontentmws.js16
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/oval.gifbin3662 -> 0 bytes
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/overlibCompat.js30
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/overlibConfig.txt641
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/overlibmws.js666
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/overlibmws_bubble.js199
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/overlibmws_crossframe.js44
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/overlibmws_debug.js120
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/overlibmws_draggable.js85
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/overlibmws_exclusive.js58
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/overlibmws_filter.js184
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/overlibmws_function.js44
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/overlibmws_hide.js81
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/overlibmws_iframe.js93
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/overlibmws_modal.js149
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/overlibmws_overtwo.js129
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/overlibmws_print.js141
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/overlibmws_regCore.js75
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/overlibmws_scroll.js70
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/overlibmws_shadow.js113
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/overlibmwslogo.gifbin1403 -> 0 bytes
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/print.gifbin866 -> 0 bytes
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/pushpin.gifbin1854 -> 0 bytes
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/quotation.gifbin1080 -> 0 bytes
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/semitrans.gifbin757 -> 0 bytes
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/showCalendar.gifbin200 -> 0 bytes
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/sprintf.js133
-rw-r--r--src/extras/sos-html-logs/share/html/overlib/square.gifbin2580 -> 0 bytes
-rwxr-xr-xsrc/extras/sos-html-logs/sos-html-logs670
56 files changed, 0 insertions, 6298 deletions
diff --git a/src/extras/sos-html-logs/lib/__init__.py b/src/extras/sos-html-logs/lib/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/src/extras/sos-html-logs/lib/__init__.py
+++ /dev/null
diff --git a/src/extras/sos-html-logs/lib/database.py b/src/extras/sos-html-logs/lib/database.py
deleted file mode 100644
index d1082f52..00000000
--- a/src/extras/sos-html-logs/lib/database.py
+++ /dev/null
@@ -1,26 +0,0 @@
-try: from pysqlite2 import dbapi2 as sqlite
-except: print "python-sqlite is missing. Exiting."; sys.exit(1)
-
-from threading import Lock
-
-class myDB_class:
- def __init__(self):
- self.dbcon = sqlite.connect(":memory:", check_same_thread=False)
- self.dbcon.row_factory = sqlite.Row
-# self.dbcur = dbcon.cursor()
- self.dblock = Lock()
-
- self.execute("create table events(eid INTEGER PRIMARY KEY AUTOINCREMENT, date KEY, host, position, parser, message, css_style, tooltip BLOB)")
-
- def execute(self, query):
- self.dblock.acquire()
- toret = self.dbcon.execute(query)
- self.dblock.release()
- return toret
-
- def execute_and_fetch(self, query):
- self.dblock.acquire()
- dbcur = self.dbcon.execute(query)
- toret = dbcur.fetchall()
- self.dblock.release()
- return toret
diff --git a/src/extras/sos-html-logs/lib/helpers.py b/src/extras/sos-html-logs/lib/helpers.py
deleted file mode 100644
index 995cf16b..00000000
--- a/src/extras/sos-html-logs/lib/helpers.py
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env python
-
-def ksort(d, func = None):
- keys = d.keys()
- keys.sort(func)
- return keys
-
-class Memoize:
- """Memoize(fn) - an instance which acts like fn but memoizes its arguments
- Will only work on functions with non-mutable arguments
- """
- def __init__(self, fn):
- self.fn = fn
- self.memo = {}
- def __call__(self, *args):
- if not self.memo.has_key(args):
- self.memo[args] = self.fn(*args)
- return self.memo[args]
-
-class SQL:
- def __init__(self):
- self.dbcon = sqlite.connect(":memory:", check_same_thread=False)
- self.dbcur = self.dbcon.cursor()
-
- self.dbcon.execute("create table events(date, host, position, message, css_style)")
-
- def execute(self, query):
- return self.dbcon.execute(query)
-
-def color_gradient(src, dst, percent):
- csrc = [ col for col in src ]
- cdst = [ col for col in dst ]
- toret = []
-
- for inc in range(0,3):
- toret.append(csrc[inc] + ((cdst[inc] - csrc[inc]) * percent / 100))
-
- return toret
-
-def rgb_to_hex(rgb):
- return "%X%X%X" % (rgb[0], rgb[1], rgb[2])
diff --git a/src/extras/sos-html-logs/lib/logs_abstraction.py b/src/extras/sos-html-logs/lib/logs_abstraction.py
deleted file mode 100644
index 5708c960..00000000
--- a/src/extras/sos-html-logs/lib/logs_abstraction.py
+++ /dev/null
@@ -1,415 +0,0 @@
-#!/usr/bin/env python
-
-import os, sys, time, re, pdb
-from threading import Thread, Lock
-from helpers import *
-from operator import itemgetter
-import traceback
-
-class cluster_class:
-
- def __init__(self):
- self.hosts = {}
- self.index = {}
- self.daemon_log_counter = []
- self.parsers = []
-
- def host_names(self):
- return ksort(self.hosts)
-
- def register_parser(self, parser_class):
- self.parsers.append(parser_class)
-
- def get_parser(self, parser_name):
- for parser in self.parsers:
- if parser.__class__.__name__ == parser_name:
- return parser
-
- def get_host(self, host):
- return self.hosts[host]
-
- def tell(self):
- toret = {}
- for host in self.hosts:
- toret[host] = self.hosts[host].tell()
- return toret
-
- def tell_sum(self):
- toret = 0
- for host in self.hosts:
- toret += self.hosts[host].tell()
- return toret
-
- def size(self):
- toret = 0
- for host in self.hosts:
- toret += self.hosts[host].size()
- return toret
-
- def seek(self, positions):
- # make sure positions in argument are valid
- for host in self.hosts:
- if host not in positions.keys():
- print "cannot find", positions
- raise "Invalid_Positions"
-
- # seek each host to saved position
- for host in positions:
- self.hosts[host].seek(positions[host])
-
- return True
-
- def seek_beginning(self):
- for host in self.hosts:
- self.hosts[host].seek(0)
-
- return True
-
- def add_log(self, logname):
- log = logfile_class(logname)
- hostname = log.hostname()
- sys.stderr.write("""adding log "%s" for host %s\n""" % (logname, hostname))
- if not self.hosts.has_key(hostname):
- self.hosts[hostname] = host_class()
- self.hosts[hostname].add_log(log)
-
- def get_position_by_date(self, goto_date):
- try:
- return self.index[goto_date]["position"]
- except KeyError:
- # can't find position in cache, calculate on the fly
- #
- for cmp_date in ksort(self.index):
- if goto_date <= cmp_date:
- return self.index[cmp_date]["position"]
- return None
-
- def parse(self, threaded = False):
-
- if threaded and (not hasattr(self,"parse_t") or self.parse_t == None):
- self.parse_t = Thread(target=self.parse, name='parse-thread', args = [True] )
- self.parse_t.start()
- return self.parse_t
-
- print "parsing begins"
-
- daemon_log_counter = {}
-
- self.seek_beginning()
-
- for date in self:
-
- self.index[date.date] = { "position":date.position, "log_counter":{} }
-
- for host in self.hosts:
- self.index[date.date]["log_counter"][host]=0
-
- try:
- for log in date[host]:
- self.index[date.date]["log_counter"][host]+=1
-
- for parser_class in self.parsers:
- parser_class.parse_line(date, log)
-
- # count how many logs per daemon
- try:
- daemon_log_counter[log.daemon()]+=1
- except KeyError:
- daemon_log_counter[log.daemon()]=1
-
- except "Eof":
- # no more logs for this host
- pass
-
- self.daemon_log_counter = sorted(daemon_log_counter.items(), key=itemgetter(1), reverse=True)
-
- print "parsing ends."
-
- def eof(self):
- for host in self.hosts:
- if not self.hosts[host].eof():
-# print "All logs are not EOF yet", host
- return False
- print "All logs are EOF!"
- return True
-
- def __iter__(self):
- return self
-
- def next(self):
- if self.eof():
- raise StopIteration
-
- return log_date_class(cluster = self)
-
- def instance(self):
- toret = cluster_class()
-
- for host in self.hosts:
- toret.hosts[host] = host_class()
-
- for log in self.hosts[host].logs:
- toret.hosts[host].logs.append(logfile_class(log.fname))
-
- toret.index = self.index
- toret.daemon_log_counter = self.daemon_log_counter
- toret.parsers = self.parsers
-
- return toret
-
-class log_date_class:
- def __init__(self, cluster):
- self.cluster = cluster
- self.date = None
- self.hosts = cluster.hosts.keys()
-
- self.position = cluster.tell()
-
- newtime = None
-
- # 1st run, must find out what is the oldest date for each host
- for host in self.hosts:
- while True:
- try:
- newtime = time.strptime("2007 " + cluster.hosts[host].readline()[0:15], "%Y %b %d %H:%M:%S")
- except "Eof":
- break
- except ValueError:
- print "parsing error in line", cluster.hosts[host].tell()
- else:
- break
-
- if newtime:
- if not self.date or newtime < self.date:
- self.date = newtime
-
- if not cluster.hosts[host].eof():
- cluster.hosts[host].backline()
-
- # this should almost never happen, but just in case.
- if not self.date:
- raise "Strange_Eof"
-
- def __str__(self):
- return time.strftime("%b %d %H:%M:%S", self.date)
-
- def __getitem__(self, host):
- return log_date_host(self.cluster, self.cluster.hosts[host], self.date)
-
- def __iter__(self):
- return self
-
-class log_date_host:
- def __init__(self, cluster, host, date):
- self.cluster = cluster
- self.host = host
- self.date = date
-
- self.parent_date = date
-
- def __iter__(self):
- return self
-
- def next(self):
- position = self.host.tell()
-
- self.host.readline()
-
- try:
- if time.strptime("2007 " + self.host.cur_line[0:15], "%Y %b %d %H:%M:%S") <= self.date:
- return log_line_class(self.parent_date, self.host, position, self.host.cur_line)
- except:
- return log_line_class(self.parent_date, self.host, position, self.host.cur_line)
-
- self.host.backline()
-
- raise StopIteration
-
-class log_line_class:
- def __init__(self, date, host, position, line):
- self.host = host
- self.position = position
- self.line = line
- self.parse = Memoize(self.parse_uncached)
-
- self.parent_date = date
- self.parent_host = host
-
- def parse_uncached(self):
- try:
- return re.findall(r"""^(... .. ..:..:..) %s ([-_0-9a-zA-Z \.\/\(\)]+)(\[[0-9]+\])?(:)? (.*)$""" % self.hostname(), self.line)[0]
- except:
- return [ None, None, None, None, None ]
-
- def __str__(self):
- return self.line
-
- def date(self):
- try:
- return time.strptime("2007 " + self.line[0:15], "%Y %b %d %H:%M:%S")
- except:
- return False
-
- def hostname(self):
- return self.line[16:].split(" ", 1)[0]
-
- def daemon(self):
- return self.parse()[1]
-
- def message(self):
- return self.parse()[4]
-
-class host_class:
-
- def __init__(self):
- self.logs = []
-
- self.log_idx = 0 # first log
- self.log_ptr = 0 # first char
-
- self.cur_line = None
-
- def __str__(self):
- return self.hostname()
-
- def add_log(self, logfile):
-
- for inc in range(0,len(self.logs)):
- if logfile.time_end() < self.logs[inc].time_begin():
- self.logs.insert(inc, logfile)
- break
- else:
- self.logs.append(logfile)
-
- def hostname(self):
- return self.logs[0].hostname()
-# try: return self.logs[0].hostname()
-# except: return None
-
- def tell(self):
- sumsize = 0
- if self.log_idx > 0:
- for inc in range(0, self.log_idx):
- sumsize += self.logs[inc].size()
- try:
- sumsize += self.fp().tell()
- except TypeError:
- pass
- return sumsize
-
- def size(self):
- sumsize = 0
- for inc in range(0, len(self.logs)):
- sumsize += self.logs[inc].size()
- return sumsize
-
- def eof(self):
- if self.tell() >= self.size():
- return True
- return False
-
- def seek(self, offset, whence = 0):
- if whence == 1: offset = self.tell() + offset
- elif whence == 2: offset = self.size() + offset
-
- sumsize = 0
- for inc in range(0, len(self.logs)):
- if offset <= sumsize + self.logs[inc].size():
- offset -= sumsize
- self.log_idx = inc
- self.log_ptr = offset
- self.logs[inc].seek(offset)
- return True
- sumsize += self.logs[inc].size()
- raise "Off_Boundaries"
-
- def seek_and_read(self, offset, whence = 0):
- self.seek(offset, whence)
- return self.readline()
-
- def time(self):
- return time.strptime("2007 " + self.cur_line[0:15], "%Y %b %d %H:%M:%S")
-
- def fp(self):
- return self.logs[self.log_idx]
-
- def backline(self):
- self.seek(-len(self.cur_line), 1)
-
- def readline(self):
- if self.eof():
- raise "Eof"
-
- while True:
- position = self.fp().tell()
- fromfile = self.fp().fname
- toret = self.fp().readline()
- if len(toret) == 0:
- if self.log_idx < len(self.logs):
- self.log_idx += 1
- self.fp().seek(0)
- continue
- else:
- return ""
-
- if len(toret) > 0 or toret == "":
- self.cur_line = toret
- self.cur_file = fromfile
- self.cur_pos = position
- return toret
- else:
- print "invalid line", toret
-
-class logfile_class:
-
- def __init__(self,fname):
- self.fname = fname
- self.fp = open(fname)
-
- def hostname(self):
- pos = self.fp.tell()
- self.seek(0)
- toret = self.fp.readline()[16:].split(" ")[0]
- self.fp.seek(pos)
- return toret
-
- def time_begin(self):
- pos = self.fp.tell()
- self.fp.seek(0)
- toret = time.strptime(self.fp.readline()[0:15], "%b %d %H:%M:%S")
- self.fp.seek(pos)
- return toret
-
- def time_end(self):
- pos = self.fp.tell()
- bs = 1024
- if self.size() < bs: bs = self.size()
- self.fp.seek(-bs, 2)
- buf = self.fp.read(bs)
- bufsplit = buf.split("\n")
- bufsplit.reverse()
- for line in bufsplit:
- if len(line) == 0: continue
- try: toret = time.strptime(line[0:15], "%b %d %H:%M:%S")
- except ValueError: print "Error in conversion"; continue
- else: break
- self.fp.seek(pos)
- return toret
-
- def size(self):
- return os.path.getsize(self.fname)
-
- def eof(self):
- return self.fp.tell() > self.size()
-
- def readline(self):
- return self.fp.readline()
-
- def seek(self,pos):
-# if cmdline["verbose"]:
-# print "seeking to position %d for file %s" % (pos, self.fname)
-# traceback.print_stack()
- self.fp.seek(pos)
-
- def tell(self):
- return self.fp.tell()
diff --git a/src/extras/sos-html-logs/lib/parsers/__init__.py b/src/extras/sos-html-logs/lib/parsers/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/src/extras/sos-html-logs/lib/parsers/__init__.py
+++ /dev/null
diff --git a/src/extras/sos-html-logs/lib/parsers/crazyclock_parser.py b/src/extras/sos-html-logs/lib/parsers/crazyclock_parser.py
deleted file mode 100644
index 3e794a6f..00000000
--- a/src/extras/sos-html-logs/lib/parsers/crazyclock_parser.py
+++ /dev/null
@@ -1,24 +0,0 @@
-import time
-import soshtmllogs.parsers_base as parsers_base
-
-class crazyclock_Parser(parsers_base.base_Parser_class):
-
- def initialize(self):
- # in this dict, we store the last date for each host
- self.last_date = {}
-
- def parse_line(self, date, log):
-
- if date.date != log.date():
- self.add_event(log, "Time skew (%d seconds in the past)" % int(time.mktime(date.date) - time.mktime(log.date())), "color:purple; background-color:yellow")
-
- self.last_date[log.parent_host] = log.date()
-
- return
-
- def analyse_line(self, log):
-
- yield """The following line matched the rule:<BR>"""
- yield """<DIV STYLE="margin-top: 10px; padding: 10px 10px 10px 10px; margin-bottom: 10px; background-color: white; border: 1px dotted black;">%s</B></DIV>""" % log.line
-
- yield "The logged time for this message is before the one for the previous message appearing in the log."
diff --git a/src/extras/sos-html-logs/lib/parsers/dmapper_parser.py b/src/extras/sos-html-logs/lib/parsers/dmapper_parser.py
deleted file mode 100644
index 279df50e..00000000
--- a/src/extras/sos-html-logs/lib/parsers/dmapper_parser.py
+++ /dev/null
@@ -1,106 +0,0 @@
-import re
-import soshtmllogs.parsers_base as parsers_base
-
-class dmapper_Parser(parsers_base.base_Parser_class):
- default_css = "color:black; background-color:orange; font-size:larger"
-
- def initialize(self):
- self.db.execute("create table dmapper(disk PRIMARY KEY, host INTEGER, channel INTEGER, id INTEGER, lun INTEGER)")
-
- def parse_line(self, date, logline):
-
- # kernel: sd 1:0:0:49152: Attached scsi disk sdt
- found = re.findall(r"""^sd (.+):(.+):(.+):(.+): Attached scsi disk (.+)$""", logline.message())
- if found:
- # we can learn a little about the layout
- found = found[0]
- self.db.execute("""replace into dmapper(disk,host,channel,id,lun) values ("%s",%d,%d,%d,%d)"""
- % (found[4], int(found[0]), int(found[1]), int(found[2]), int(found[3]))
- )
-
- found = re.findall(r"""^Attached scsi disk (.+) at scsi(.+), channel (.+), id (.+), lun (.+)$""", logline.message())
- if found:
- # we can learn a little about the layout
- found = found[0]
- self.db.execute("""replace into dmapper(disk,host,channel,id,lun) values ("%s",%d,%d,%d,%d)"""
- % (found[0], int(found[1]), int(found[2]), int(found[3]), int(found[4]))
- )
-
- #Nov 7 12:55:38 itrac415 kernel: SCSI error : <2 0 3 0> return code = 0x20000
- found = re.findall(r"""^SCSI error : <(.+)> return code = (.+)$""", logline.message())
- if found:
- found = found[0]
- scsi_address_split = [ int(sid) for sid in found[0].split(" ") ]
- results = self.db.execute_and_fetch("select disk from dmapper where host = %d AND channel = %d AND id = %d AND lun = %d" %
- (scsi_address_split[0], scsi_address_split[1], scsi_address_split[2], scsi_address_split[3])
- )
- for row in results: found[0] = row["disk"]
- self.add_event(logline, "SCSI error on %s - %s" % (found[0], self._get_did_error(found[1])), self.default_css)
- return
-
- found = re.findall(r"""^end_request: I/O error, dev (.*), sector .*$""", logline.message())
- if found:
- self.add_event(logline, "I/O error on %s" % (found[0]), self.default_css)
- return
-
- if logline.daemon() != "multipathd":
- return
-
- found = re.findall(r"""(.*): mark as failed$""", logline.message())
- if found:
- disk = self._get_disk_from_majmin(found[0])
- self.add_event(logline, "Multipath path %s (%s) failed" % (found[0], disk), self.default_css)
- return
-
- found = re.findall(r"""(.*): reinstated$""", logline.message())
- if found:
- disk = self._get_disk_from_majmin(found[0])
- self.add_event(logline, "Multipath path %s (%s) reinstated" % (found[0], disk), self.default_css)
- return
-
- return
-
- def _get_disk_from_majmin(self, majmin):
- major, minor = majmin.split(":")
- major, minor = int(major), int(minor)
-
- block_majors = [8, 65, 66, 67, 68, 69, 70, 71, 128, 129, 130, 131, 132, 133, 134, 135]
-
- disk = (block_majors.index(major) * 16) + int(minor / 16)
- partition = minor % 16
-
- # 97 = ord('a')
- # 25 = ord('z') - ord('a')
-
- rchar = chr(97 + (disk % 25))
-
- if disk > 25:
- lchar = chr(97 - 1 + int(disk / 25))
- rchar = chr(ord(rchar)-1)
- else:
- lchar = ""
-
- return "sd" + lchar + rchar
-
- def _get_did_error(self, hexerr):
- # hexherr = 0x20000
-
- if not hexerr.startswith("0x"):
- return "Unknown error code (%s)" % hexerr
-
- err = hexerr[2]
-
- if err == "0": return "DID_OK (NO error)"
- if err == "1": return "DID_NO_CONNECT (Couldn\\'t connect before timeout period)"
- if err == "2": return "DID_BUS_BUSY (BUS stayed busy through time out period)"
- if err == "3": return "DID_TIME_OUT (TIMED OUT for other reason)"
- if err == "4": return "DID_BAD_TARGET (BAD target)"
- if err == "5": return "DID_ABORT (Told to abort for some other reason)"
- if err == "6": return "DID_PARITY (Parity error)"
- if err == "7": return "DID_ERROR (Internal error)"
- if err == "8": return "DID_RESET (Reset by somebody)"
- if err == "9": return "DID_BAD_INTR (Got an interrupt we weren't expecting)"
- if err == "a": return "DID_PASSTHROUGH (Force command past mid-layer)"
- if err == "b": return "DID_SOFT_ERROR (The low level driver just wish a retry)"
- if err == "c": return "DID_IMM_RETRY (Retry without decrementing retry count)"
- if err == "d": return "DID_REQUEUE (Requeue command (no immediate retry) also without decrementing the retry count)"
diff --git a/src/extras/sos-html-logs/lib/parsers/simple_parser.py b/src/extras/sos-html-logs/lib/parsers/simple_parser.py
deleted file mode 100644
index 9beb10f8..00000000
--- a/src/extras/sos-html-logs/lib/parsers/simple_parser.py
+++ /dev/null
@@ -1,29 +0,0 @@
-import ConfigParser, re
-import soshtmllogs.parsers_base as parsers_base
-
-class simple_Parser(parsers_base.base_Parser_class):
-
- def initialize(self):
- self.config = ConfigParser.ConfigParser()
- self.config.readfp(open('/usr/lib/python2.4/site-packages/soshtmllogs/parsers/simple_parser.rules'))
-
- def parse_line(self, date, log):
-
- for section in self.config.sections():
- match = False
-
- if self.config.has_option(section, "find"):
- if log.line.find(self.config.get(section, "find")) >= 0:
- match = True
- elif self.config.has_option(section, "regex"):
- if re.match(self.config.get(section, "regex"), log.line):
- match = True
-
- if not match:
- continue
-
- self.add_event(log, section, "color:green; background-color:yellow; font-size:larger")
-
- return
-
- return None
diff --git a/src/extras/sos-html-logs/lib/parsers/simple_parser.rules b/src/extras/sos-html-logs/lib/parsers/simple_parser.rules
deleted file mode 100644
index 724fbfa8..00000000
--- a/src/extras/sos-html-logs/lib/parsers/simple_parser.rules
+++ /dev/null
@@ -1,38 +0,0 @@
-[Syslog restart (possible system restart)]
-regex = .*syslogd .*: restart.$
-
-[System reboot]
-regex = ^kernel: Linux version
-
-[Fencing node]
-regex = ^.*fencing node
-
-[Fencing node succeeded]
-regex = .*fence ".*" success
-
-[Fencing node failed]
-regex = .*fence ".*
-
-[Quorum lost]
-find = quorum lost, blocking activity
-
-[Quorum regained]
-find = quorum regained, resuming activity
-
-[Segmentation fault]
-find = segfault at
-
-[Inittab reloaded]
-find = Re-reading inittab
-
-[Init line respawning too fast]
-find = respawning too fast: disabled for
-
-[Ext3 file-system error]
-find = EXT3-fs error
-
-[File-system remounted read-only]
-find = Remounting filesystem read-only
-
-[Shutting down]
-find = shutdown: shutting down
diff --git a/src/extras/sos-html-logs/share/html/overlib/BabelFish.js b/src/extras/sos-html-logs/share/html/overlib/BabelFish.js
deleted file mode 100644
index ed45ecfc..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/BabelFish.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- BabelFish.js - Script for using the AltaVista BabelFish translation service.
- Adapted by Foteos Macrides for use with the overlibmws code set.
- See http://www.macridesweb.com/oltest/BabelFish.html for a demonstration.
- Initial: October 26, 2003 - Last Revised: April 17, 2004
-*/
-OLtrans_en = new Image();
-OLtrans_en.src = "http://babelfish.altavista.com/static/i/af/trans_en.gif"
-OLtrans_en_off = new Image();
-OLtrans_en_off.src = "http://babelfish.altavista.com/static/i/af/trans_en_off.gif"
-
-var OLbfURL = location.href;
-
-if (location.href.indexOf("babelfish.altavista.com") == -1) {
-var BabelFish =
-'<div class="babelfish">'
-+'<p align="center"><strong>Note:</strong> This page can be viewed in a different language by '
-+'selecting the corresponding flag below.</p>'
-+'<p align="center">'
-+'<!--script type="text/javascript" src="http://www.altavista.com/r?entr"></script-->'
-+'<Map name="translate_eng">'
-+'<AREA COORDS="0,1,129,38" SHAPE="rect" target="translate" '
-+'title="Go to Babel Fish home page/" '
-+'href="http://babelfish.altavista.com">'
-+'<AREA COORDS="5,110,32,126" SHAPE="rect" target="translate" '
-+'title="Translate English to Chinese." '
-+'href="http://babelfish.altavista.com/babelfish/tr?doit=done&url='+OLbfURL+'&lp=en_zh">'
-+'<AREA COORDS="38,110,65,126" SHAPE="rect" target="translate" '
-+'title="Translate English to German." '
-+'href="http://babelfish.altavista.com/babelfish/tr?doit=done&url='+OLbfURL+'&lp=en_de">'
-+'<AREA COORDS="70,110,95,126" SHAPE="rect" target="translate" '
-+'title="Translate English to Japanese." '
-+'href="http://babelfish.altavista.com/babelfish/tr?doit=done&url='+OLbfURL+'&lp=en_ja">'
-+'<AREA COORDS="99,110,123,126" SHAPE="rect" target="translate" '
-+'title="Translate English to Korean." '
-+'href="http://babelfish.altavista.com/babelfish/tr?doit=done&url='+OLbfURL+'&lp=en_ko">'
-+'<AREA COORDS="8,130,31,146" SHAPE="rect" target="translate" '
-+'title="Translate English to French." '
-+'href="http://babelfish.altavista.com/babelfish/tr?doit=done&url='+OLbfURL+'&lp=en_fr">'
-+'<AREA COORDS="39,130,65,146" SHAPE="rect" target="translate" '
-+'title="Translate English to Italian." '
-+'href="http://babelfish.altavista.com/babelfish/tr?doit=done&url='+OLbfURL+'&lp=en_it">'
-+'<AREA COORDS="70,130,93,146" SHAPE="rect" target="translate" '
-+'title="Translate English to Portuguese." '
-+'href="http://babelfish.altavista.com/babelfish/tr?doit=done&url='+OLbfURL+'&lp=en_pt">'
-+'<AREA COORDS="100,130,125,146" SHAPE="rect" target="translate" '
-+'title="Translate English to Spanish." '
-+'href="http://babelfish.altavista.com/babelfish/tr?doit=done&url='+OLbfURL+'&lp=en_es">'
-+'</Map>'
-+'<img src="http://babelfish.altavista.com/static/i/af/trans_en.gif" '
-+'width="131" height="156" usemap="#translate_eng" border="0"><br></p>'
-+'<p align="center">The translations are done via the AltaVista Babel Fish service.</p></div>';
-}else{
-var BabelFish =
-'<div class="babelfish"><p align="center">'
-+'<img src="http://babelfish.altavista.com/static/i/af/trans_en_off.gif" '
-+'width="131" height="156" border="0"></p></div>';
-}
diff --git a/src/extras/sos-html-logs/share/html/overlib/ajaxcontentmws.js b/src/extras/sos-html-logs/share/html/overlib/ajaxcontentmws.js
deleted file mode 100644
index e041ae71..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/ajaxcontentmws.js
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- ajaxcontentmws.js - Foteos Macrides (author and Copyright holder)
- Initial: June 22, 2006 - Last Revised: March 2, 2007
- Wrapper function set for getting and using the responseText and / or
- responseXML from a GET or POST XMLHttpRequest, which can be used to
- generate dynamic content for overlib or overlib2 calls, or to modify
- the content of a displayed STICKY popup dynamically.
-
- For GET Use:
- onmouseover="return OLgetAJAX(url, command, delay, css);"
- onmouseout="OLclearAJAX();" (if delay > 0)
- or:
- onclick="OLgetAJAX(url, command, 0, css); return false;"
- or:
- onload="OLgetAJAX(url, command, 0, css);
-
- Where:
- url (required)
- is a quoted string, or unquoted string variable name or array entry, with
- the full, relative, or partial URL for a file or a server-side script (php,
- asp, or cgi, e.g. perl), and may have a query string appended (e.g.,
- 'http://my.domain.com/scripts/myScript.php?foo=bar&life=grand').
- And:
- command (required)
- is the function reference (unquoted name without parens) of a function to
- be called when the server's response has been received (it could instead be
- an inline function, i.e., defined within the 2nd argument, or a quoted string
- for a function with parens and any args)
- And:
- delay (may be omitted unless css is included)
- is an unquoted number indicating the number of millisecs to wait before
- initiating an XMLHttpRequest GET request. It should be 0 when using onclick
- or onload, but may be a modest value such as 300 for onmouseover to avoid
- any chatter of requests. When used with onmouseover, include:
- onmouseout="OLclearAJAX();"
- to clear the request if the user does not hover for at least that long. If
- the popup is not STICKY, include an nd or nd2 call, e.g.,
- onmouseout="OLclearAJAX(); nd();"
- And:
- css (may be omitted)
- is a quoted string with the CSS class (e.g. 'ovfl510' for
- .ovfl510 {width:510px; height:145px; overflow:auto; ...} ) for a div to
- encase the responseText and set the width, height and scrollbars in the
- main text area of the popup, or the unquoted number 0 if no encasing div
- is to be used.
-
- For POST substitute OLpostAJAX(url, qry, command, delay, css);
- Where
- qry (required)
- is the string to be posted, typically a query string (without a lead ?)
- and the other arguments are as above.
-
- See http://www.macridesweb.com/oltest/AJAX.html for more information.
-*/
-
-// Initialize our global variables for this function set.
-var OLhttp=false,OLcommandAJAX=null,OLdelayidAJAX=0,OLclassAJAX='',
-OLresponseAJAX='',OLdebugAJAX=false;
-
-// Create a series of wrapper functions (e.g. OLcmdT#() for ones which
-// use OLhttp.responseText via the OLresponseAJAX global, and OLcmdX#()
-// for ones which use OLhttp.responseXML) whose reference (unquoted name
-// without parens) is the 2nd argument in OLgetAJAX(url,command,delay,css)
-// calls. This one is for the first example in the AJAX.html support
-// document, to use the OLresponseAJAX global as the lead argument for an
-// overlib popup. Put your functions in the head, or in another imported
-// .js file, so that they will not be affected by updates of this .js file.
-//
-function OLcmdExT1() {
- return overlib(OLresponseAJAX, TEXTPADDING,0, CAPTIONPADDING,4,
- CAPTION,'Example with AJAX content via <span '
- +'class="yellow">responseText</span>.&nbsp; Popup scrolls with the window.',
- WRAP, BORDER,2, STICKY, CLOSECLICK, SCROLL,
- MIDX,0, RELY,100,
- STATUS,'Example with AJAX content via responseText of XMLHttpResponse');
-}
-
-// Alert for old browsers which lack XMLHttpRequest support.
-function OLsorryAJAX() {
- alert('Sorry, AJAX is not supported by your browser.');
- return false;
-}
-
-// Check 2nd arg for function
-function OLchkFuncAJAX(ar){
- var t=typeof ar;return (((t=='function'))||((t=='string')&&(/.+\(.*\)/.test(ar))));
-}
-
-// Alert for bad 2nd argument
-function OLnotFuncAJAX(m) {
- if(over)cClick();
- alert('The 2nd arg of OL'+m+'AJAX is not a function reference, nor an inline function, '
- +'nor a quoted string with a function indicated.');
- return OLclearAJAX();
-}
-
-// Alert for indicating an XMLHttpRequest network error.
-function OLerrorAJAX() {
- alert('Network error '+OLhttp.status+'. Try again later.');
- return false;
-}
-
-// Returns a new XMLHttpRequest object, or false for older browsers
-// which did not yet support it. Called as OLhttp=OLnewXMLHttp() via
-// the OLgetAJAX(url,command,delay,css) wrapper function.
-//
-function OLnewXMLHttp() {
- var f=false,req=f;
- if(window.XMLHttpRequest)eval(new Array('try{',
- 'req=new XMLHttpRequest();','}catch(e){','req=f;','}').join('\n'));
- /*@cc_on @if(@_jscript_version>=5)if(!req)
- eval(new Array('try{','req=new ActiveXObject("Msxml2.XMLHTTP");',
- '}catch(e){','try{','req=new ActiveXObject("Microsoft.XMLHTTP");',
- '}catch(e){','req=f;','}}').join('\n')); @end @*/
- return req;
-}
-
-// Handle the OLhttp.responseText string from the XMLHttpRequest object.
-function OLdoAJAX() {
- if(OLhttp.readyState==4){
- if(OLdebugAJAX)alert(
- 'OLhttp.status = '+OLhttp.status+'\n'
- +'OLhttp.statusText = '+OLhttp.statusText+'\n'
- +'OLhttp.getAllResponseHeaders() = \n'
- +OLhttp.getAllResponseHeaders()+'\n'
- +'OLhttp.getResponseHeader("Content-Type") = '
- +OLhttp.getResponseHeader("Content-Type")+'\n');
- if(!OLhttp.status||OLhttp.status==200){
- OLresponseAJAX=OLclassAJAX?'<div class="'+OLclassAJAX+'">':'';
- OLresponseAJAX += OLhttp.responseText;
- OLresponseAJAX += OLclassAJAX?'</div>':'';
- if(OLdebugAJAX)alert('OLresponseAJAX = \n'+OLresponseAJAX);
- OLclassAJAX=0;
- return (typeof OLcommandAJAX=='string')?eval(OLcommandAJAX):OLcommandAJAX();
- }else{
- OLclassAJAX=0;
- return OLerrorAJAX();
- }
- }
-}
-
-// Actually make the request initiated via OLgetAJAX or OLpostAJAX, or
-// invoke a "permission denied" alert if a cross-domain URL was used.
-function OLsetAJAX(url,qry) {
- qry=(qry||null);var s='',m=(qry)?'POST':'GET';
- OLdelayidAJAX=0;eval(new Array('try{','OLhttp.open(m,url,true);',
- '}catch(e){','s=e','OLhttp=false;','}').join('\n'));if(!OLhttp){
- alert(s+'\n(Cross-domain access not permitted)');return false;}if(qry)
- OLhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
- OLhttp.onreadystatechange=OLdoAJAX;
- OLhttp.send(qry);
-}
-
-// Clear or abort any delayed OLsetAJAX call or pending request.
-function OLclearAJAX() {
- if(OLdelayidAJAX){clearTimeout(OLdelayidAJAX);OLdelayidAJAX=0;}
- if(OLhttp&&!OLdebugAJAX){OLhttp.abort();OLhttp=false;}
- return false;
-}
-
-// Load a new XMLHttpRequest object into the OLhttp global, load the
-// OLcommandAJAX and OLclassAJAX globals, and initiate a GET request
-// via OLsetAJAX(url) to populate OLhttp.
-function OLgetAJAX(url,command,delay,css) {
- if(!OLchkFuncAJAX(command))return OLnotFuncAJAX('get');
- OLclearAJAX();OLhttp=OLnewXMLHttp();if(!OLhttp)return OLsorryAJAX();
- OLcommandAJAX=command;delay=(delay||0);css=(css||0);OLclassAJAX=css;
- if(delay)OLdelayidAJAX=setTimeout("OLsetAJAX('"+url+"')",delay);
- else OLsetAJAX(url);
-}
-
-// Load a new XMLHttpRequest object into the OLhttp global, load the
-// OLcommandAJAX and OLclassAJAX globals, and initiate a POST request
-// via OLsetAJAX(url,qry) to populate OLhttp.
-function OLpostAJAX(url,qry,command,delay,css) {
- if(!OLchkFuncAJAX(command))return OLnotFuncAJAX('post');
- OLclearAJAX();OLhttp=OLnewXMLHttp();if(!OLhttp)return OLsorryAJAX();
- qry=(qry||0);OLcommandAJAX=command;delay=(delay||0);css=(css||0);OLclassAJAX=css;
- if(delay)OLdelayidAJAX=setTimeout("OLsetAJAX('"+url+"','"+qry+"')",delay);
- else OLsetAJAX(url,qry);
-}
diff --git a/src/extras/sos-html-logs/share/html/overlib/arrow.gif b/src/extras/sos-html-logs/share/html/overlib/arrow.gif
deleted file mode 100644
index 71b08c1b..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/arrow.gif
+++ /dev/null
Binary files differ
diff --git a/src/extras/sos-html-logs/share/html/overlib/calendarmws.js b/src/extras/sos-html-logs/share/html/overlib/calendarmws.js
deleted file mode 100644
index 3e5aabac..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/calendarmws.js
+++ /dev/null
@@ -1,621 +0,0 @@
-/*
- calendermws.js - Script for generating calender popups and selecting dates for form
- submissions. See http://www.macridesweb.com/oltest/calendarmws.html for a demonstration.
- Initial: November 9, 2003 - Last Revised: November 23, 2006
-
-****
- Original: Kedar R. Bhave (softricks@hotmail.com)
- Web Site: http://www.softricks.com
- (uses window popups)
-
- Modifications and customizations to work with the overLIB v3.50
- Author: James B. O'Connor (joconnor@nordenterprises.com)
- Web Site: http://www.nordenterprises.com
- Developed for use with http://home-owners-assoc.com
- Note: while overlib works fine with Netscape 4, this function does not work very
- well, since portions of the "over" div end up under other fields on the form and
- cannot be seen. If you want to use this with NS4, you'll need to change the
- positioning in the overlib() call to make sure the "over" div gets positioned
- away from all other form fields
- The O'Connor script and many more are available free online at:
- The JavaScript Source!! http://javascript.internet.com
-
- Further modifications made by Foteos Macrides (http://www.macridesweb.com/oltest/)
- and Bill McCormick (wpmccormick@freeshell.org) for overlibmws
-*/
-
-var ggPosX = -1;
-var ggPosY = -1;
-var ggInactive = 0;
-var ggOnChange = null;
-
-var ggWinContent = "";
-
-var weekend = [0,6];
-var weekendColor = "#e0e0e0";
-var fontface = "Verdana";
-var fontsize = 8; // in "pt" units; used with "font-size" style element
-
-var gNow = new Date();
-
-Calendar.Months = ["January", "February", "March", "April", "May", "June",
-"July", "August", "September", "October", "November", "December"];
-
-// Non-Leap year Month days..
-Calendar.DOMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
-// Leap year Month days..
-Calendar.lDOMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
-
-function Calendar(p_item, p_month, p_year, p_format) {
- if ((p_month == null) && (p_year == null)) return;
-
- if (p_month == null) {
- this.gMonthName = null;
- this.gMonth = null;
- this.gYearly = true;
- } else {
- this.gMonthName = Calendar.get_month(p_month);
- this.gMonth = new Number(p_month);
- this.gYearly = false;
- }
-
- this.gYear = p_year;
- this.gFormat = p_format;
- this.gBGColor = "white";
- this.gFGColor = "black";
- this.gTextColor = "black";
- this.gHeaderColor = "black";
- this.gReturnItem = p_item;
-}
-
-Calendar.get_month = Calendar_get_month;
-Calendar.get_daysofmonth = Calendar_get_daysofmonth;
-Calendar.calc_month_year = Calendar_calc_month_year;
-
-function Calendar_get_month(monthNo) {
- return Calendar.Months[monthNo];
-}
-
-function Calendar_get_daysofmonth(monthNo, p_year) {
- /*
- Check for leap year ..
- 1.Years evenly divisible by four are normally leap years, except for...
- 2.Years also evenly divisible by 100 are not leap years, except for...
- 3.Years also evenly divisible by 400 are leap years.
- */
- if ((p_year % 4) == 0) {
- if ((p_year % 100) == 0 && (p_year % 400) != 0)
- return Calendar.DOMonth[monthNo];
-
- return Calendar.lDOMonth[monthNo];
- } else
- return Calendar.DOMonth[monthNo];
-}
-
-function Calendar_calc_month_year(p_Month, p_Year, incr) {
- /*
- Will return an 1-D array with 1st element being the calculated month
- and second being the calculated year
- after applying the month increment/decrement as specified by 'incr' parameter.
- 'incr' will normally have 1/-1 to navigate thru the months.
- */
- var ret_arr = new Array();
-
- if (incr == -1) {
- // B A C K W A R D
- if (p_Month == 0) {
- ret_arr[0] = 11;
- ret_arr[1] = parseInt(p_Year) - 1;
- } else {
- ret_arr[0] = parseInt(p_Month) - 1;
- ret_arr[1] = parseInt(p_Year);
- }
- } else if (incr == 1) {
- // F O R W A R D
- if (p_Month == 11) {
- ret_arr[0] = 0;
- ret_arr[1] = parseInt(p_Year) + 1;
- } else {
- ret_arr[0] = parseInt(p_Month) + 1;
- ret_arr[1] = parseInt(p_Year);
- }
- }
- return ret_arr;
-}
-
-function Calendar_calc_month_year(p_Month, p_Year, incr) {
- /*
- Will return an 1-D array with 1st element being the calculated month
- and second being the calculated year
- after applying the month increment/decrement as specified by 'incr' parameter.
- 'incr' will normally have 1/-1 to navigate thru the months.
- */
- var ret_arr = new Array();
-
- if (incr == -1) {
- // B A C K W A R D
- if (p_Month == 0) {
- ret_arr[0] = 11;
- ret_arr[1] = parseInt(p_Year) - 1;
- } else {
- ret_arr[0] = parseInt(p_Month) - 1;
- ret_arr[1] = parseInt(p_Year);
- }
- } else if (incr == 1) {
- // F O R W A R D
- if (p_Month == 11) {
- ret_arr[0] = 0;
- ret_arr[1] = parseInt(p_Year) + 1;
- } else {
- ret_arr[0] = parseInt(p_Month) + 1;
- ret_arr[1] = parseInt(p_Year);
- }
- }
- return ret_arr;
-}
-
-// This is for compatibility with Navigator 3, we have to create and discard one object
-// before the prototype object exists.
-new Calendar();
-
-Calendar.prototype.getMonthlyCalendarCode = function() {
- var vCode = "";
- var vHeader_Code = "";
- var vData_Code = "";
-
- // Begin Table Drawing code here..
- vCode += ('<div align="center"><table border="1" bgcolor="' + this.gBGColor +
- "\" style='font-size:" + fontsize + "pt;'>");
-
- vHeader_Code = this.cal_header();
- vData_Code = this.cal_data();
- vCode += (vHeader_Code + vData_Code);
-
- vCode += '</table></div>';
-
- return vCode;
-}
-
-Calendar.prototype.show = function() {
- var vCode = "";
-
- var vDate = new Date();
- vDate.setMonth(this.gMonth);
- vDate.setFullYear(this.gYear);
- var vNowMonth = gNow.getMonth();
- var vNowYear = gNow.getFullYear();
- var yOK=!ggInactive||vNowYear<vDate.getFullYear()?1:0;
- var mOK=!ggInactive||(yOK||
- (vNowYear<=vDate.getFullYear()&&vNowMonth<vDate.getMonth()))?1:0;
-
- // build content into global var ggWinContent
- ggWinContent += ('<div style="font-family:\'' + fontface + '\';font-weight:bold;'
- +'font-size:' + fontsize + 'pt;text-align:center;">');
- ggWinContent += (this.gMonthName + ' ' + this.gYear);
- ggWinContent += '</div>';
-
- // Show navigation buttons
- var prevMMYYYY = Calendar.calc_month_year(this.gMonth, this.gYear, -1);
- var prevMM = prevMMYYYY[0];
- var prevYYYY = prevMMYYYY[1];
-
- var nextMMYYYY = Calendar.calc_month_year(this.gMonth, this.gYear, 1);
- var nextMM = nextMMYYYY[0];
- var nextYYYY = nextMMYYYY[1];
-
- ggWinContent += ('<table width="100%" border="1" cellspacing="0" cellpadding="0" '
- +'bgcolor="#e0e0e0" style="font-size:' + fontsize
- +'pt;"><tr><td align="center">');
- ggWinContent += ('['
- +(yOK?'<a href="javascript:void(0);" '
- +'title="Go back one year" '
- +'onmouseover="window.status=\'Go back one year\'; return true;" '
- +'onmouseout="window.status=\'\'; return true;" '
- +'onclick="Build(\'' + this.gReturnItem + '\', \'' + this.gMonth + '\', \''
- +(parseInt(this.gYear)-1) + '\', \'' + this.gFormat + '\');"'
- +'>':'')
- +'&lt;&lt;Year'
- +(yOK?'</a>':'')
- +']</td><td align="center">');
- ggWinContent += ('['
- +(mOK?'<a href="javascript:void(0);" '
- +'title="Go back one month" '
- +'onmouseover="window.status=\'Go back one month\'; return true;" '
- +'onmouseout="window.status=\'\'; return true;" '
- +'onclick="Build(\'' + this.gReturnItem + '\', \'' + prevMM + '\', \''
- +prevYYYY + '\', \'' + this.gFormat + '\');"'
- +'>':'')
- +'&lt;Mon'
- +(mOK?'</a>':'')
- +']</td><td align="center">');
- ggWinContent += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td align="center">';
- ggWinContent += ('[<a href="javascript:void(0);" '
- +'title="Go forward one month" '
- +'onmouseover="window.status=\'Go forward one month\'; return true;" '
- +'onmouseput="window.status=\'\'; return true;" '
- +'onclick="Build(\'' + this.gReturnItem + '\', \'' + nextMM + '\', \''
- +nextYYYY + '\', \'' + this.gFormat + '\');"'
- +'>Mon&gt;</a>]</td><td align="center">');
- ggWinContent += ('[<a href="javascript:void(0);" '
- +'title="Go forward one year" '
- +'onmouseover="window.status=\'Go forward one year\'; return true;" '
- +'onmouseout="window.status=\'\'; return true;" '
- +'onClick="Build(\'' + this.gReturnItem + '\', \'' + this.gMonth + '\', \''
- +(parseInt(this.gYear)+1) + '\', \'' + this.gFormat + '\');"'
- +'>Year&gt;&gt;</a>]</td></tr></table><div style="font-size:3px;">'
- +'&nbsp;</div>');
-
- // Get the complete calendar code for the month, and add it to the content var
- vCode = this.getMonthlyCalendarCode();
- ggWinContent += vCode;
-}
-
-Calendar.prototype.showY = function() {
- var vCode = "";
- var i;
-
- ggWinContent += ('<div style="font-family:\'' + fontface + '\';font-weight:bold;'
- +'font-size:' + (fontsize+1) +'pt;text-align:center;">' + this.gYear +'</div>');
-
- var vDate = new Date();
- vDate.setDate(1);
- vDate.setFullYear(this.gYear);
- var vNowYear = gNow.getFullYear();
- var yOK=!ggInactive||vNowYear<vDate.getFullYear()?1:0;
-
- // Show navigation buttons
- var prevYYYY = parseInt(this.gYear) - 1;
- var nextYYYY = parseInt(this.gYear) + 1;
-
- ggWinContent += ('<table width="100%" border="1" cellspacing="0" cellpadding="0" '
- +'bgcolor="#e0e0e0" style="font-size:' + fontsize + 'pt;"><tr><td '
- +'align="center">');
- ggWinContent += ('['
- +(yOK?'<a href="javascript:void(0);" '
- +'title="Go back one year" '
- +'onmouseover="window.status=\'Go back one year\'; return true;" '
- +'onmouseout="window.status=\'\'; return true;" '
- +'onclick="Build(\'' + this.gReturnItem + '\', null, \'' + prevYYYY + '\', \''
- +this.gFormat + '\');">':'')
- +'&lt;&lt;Year'
- +(yOK?'<a>':'')
- +']</td><td align="center">');
- ggWinContent += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td align="center">';
- ggWinContent += ('[<a href="javascript:void(0);" '
- +'title="Go forward one year" '
- +'onmouseover="window.status=\'Go forward one year\'; return true;" '
- +'onmouseout="window.status=\'\'; return true;" '
- +'onclick="Build(\'' + this.gReturnItem + '\', null, \'' + nextYYYY + '\', \''
- +this.gFormat + '\');">Year&gt;&gt;</a>]</td></tr></table>');
-
- // Get the complete calendar code for each month.
- // start a table and first row in the table
- ggWinContent += ('<table width="100%" border="0" cellspacing="0" cellpadding="2" '
- +'style="font-size:' + fontsize + 'pt;"><tr>');
- for (i=0; i<12; i++) {
- // start the table cell
- ggWinContent += '<td align="center" valign="top">';
- this.gMonth = i;
- this.gMonthName = Calendar.get_month(this.gMonth);
- vCode = this.getMonthlyCalendarCode();
- ggWinContent += (this.gMonthName + '/' + this.gYear + '<div '
- +'style="font-size:2px;">&nbsp;</div>');
- ggWinContent += vCode;
- ggWinContent += '</td>';
- if (i == 3 || i == 7) ggWinContent += '</tr><tr>';
- }
- ggWinContent += '</tr></table>';
-}
-
-Calendar.prototype.cal_header = function() {
- var vCode = '<tr>';
- vCode += ('<td width="14%" style="font-family:' + fontface + ';color:'
- +this.gHeaderColor + ';font-weight:bold;">Sun</td>');
- vCode += ('<td width="14%" style="font-family:' + fontface + ';color:'
- +this.gHeaderColor + ';font-weight:bold;">Mon</td>');
- vCode += ('<td width="14%" style="font-family:' + fontface + ';color:'
- +this.gHeaderColor + ';font-weight:bold;">Tue</td>');
- vCode += ('<td width="14%" style="font-family:' + fontface + ';color:'
- +this.gHeaderColor + ';font-weight:bold;">Wed</td>');
- vCode += ('<td width="14%" style="font-family:' + fontface + ';color:'
- +this.gHeaderColor + ';font-weight:bold;">Thu</td>');
- vCode += ('<td width="14%" style="font-family:' + fontface + ';color:'
- +this.gHeaderColor + ';font-weight:bold;">Fri</td>');
- vCode += ('<td width="16%" style="font-family:' + fontface + ';color:'
- +this.gHeaderColor + ';font-weight:bold;">Sat</td>');
- vCode += '</tr>';
- return vCode;
-}
-
-Calendar.prototype.cal_data = function() {
- var vDate = new Date();
- vDate.setDate(1);
- vDate.setMonth(this.gMonth);
- vDate.setFullYear(this.gYear);
-
- var vNowDay = gNow.getDate();
- var vNowMonth = gNow.getMonth();
- var vNowYear = gNow.getFullYear();
-
- var yOK=!ggInactive||vNowYear<=vDate.getFullYear()?1:0;
- var mOK=!ggInactive||vNowYear<vDate.getFullYear()||
- (vNowYear==vDate.getFullYear()&&vNowMonth<=vDate.getMonth())?1:0;
- var ymOK=yOK&&mOK?1:0;
- var dOK=!ggInactive||vNowYear<vDate.getFullYear()||vNowMonth<vDate.getMonth()?1:0;
-
- var vFirstDay=vDate.getDay();
- var vDay=1;
- var vLastDay=Calendar.get_daysofmonth(this.gMonth, this.gYear);
- var vOnLastDay=0;
- var vCode = '<tr>';
- var i,j,k,m;
- var orig = eval("document." + this.gReturnItem + ".value").toString();
- /*
- Get day for the 1st of the requested month/year..
- Place as many blank cells before the 1st day of the month as necessary.
- */
- for (i=0; i<vFirstDay; i++) { vCode +=
- ('<td width="14%"' + this.write_weekend_string(i)
- +'style="font-family:\'' + fontface + '\';text-align:center;">&nbsp;</td>');
- }
-
- // Write rest of the 1st week
- for (j=vFirstDay; j<7; j++) { vCode +=
- ('<td width="14%"' + this.write_weekend_string(j) +'style="font-family:\''
- + fontface + '\';text-align:center;">'
- +((ymOK)&&(vDay>=vNowDay||dOK)?'<a href="javascript:void(0);" '
- +'title="set date to ' + this.format_data(vDay) + '" '
- +'onmouseover="window.status=\'set date to ' + this.format_data(vDay) + '\'; '
- +'return true;" '
- +'onmouseout="window.status=\'\'; return true;" '
- +'onclick="document.' + this.gReturnItem + '.value=\'' + this.format_data(vDay)
- +'\';ggPosX= -1;ggPosY= -1;' + OLfnRef + 'cClick();'
- +'if((ggOnChange)&&(document.' + this.gReturnItem + '.value!=\'' + orig
- +'\'))ggOnChange();">':'')
- + this.format_day(vDay)
- +((ymOK)&&(vDay>=vNowDay||dOK)?'</a>':'')
- +'</td>');
- vDay += 1;
- }
- vCode += '</tr>';
-
- // Write the rest of the weeks
- for (k=2; k<7; k++) {
- vCode += '<tr>';
- for (j=0; j<7; j++) { vCode +=
- ('<td width="14%"' + this.write_weekend_string(j)
- +'style="font-family:\'' + fontface + '\';text-align:center;">'
- +((ymOK)&&(vDay>=vNowDay||dOK)?'<a '
- +'href="javascript:void(0);" '
- +'title="set date to ' + this.format_data(vDay) + '" '
- +'onmouseover="window.status=\'set date to ' + this.format_data(vDay)
- +'\'; return true;" '
- +'onmouseout="window.status=\'\'; return true;" '
- +'onclick="document.' + this.gReturnItem + '.value=\''
- + this.format_data(vDay) + '\';ggPosX= -1;ggPosY= -1;'
- + OLfnRef + 'cClick();'
- +'if((ggOnChange)&&(document.' + this.gReturnItem + '.value!=\''
- +orig + '\'))ggOnChange();">':'')
- + this.format_day(vDay)
- +((ymOK)&&(vDay>=vNowDay||dOK)?'</a>':'')
- +'</td>');
- vDay += 1;
- if (vDay > vLastDay) {
- vOnLastDay = 1;
- break;
- }
- }
- if (j == 6) vCode += '</tr>';
- if (vOnLastDay == 1) break;
- }
-
- // Fill up the rest of last week with proper blanks, so that we get proper square blocks
- for (m=1; m<(7-j); m++) { vCode +=
- ('<td width="14%"' + this.write_weekend_string(j+m) + 'style="font-family:\''
- + fontface + '\';color:gray;text-align:center;">&nbsp;</td>');
- }
- return vCode;
-}
-
-Calendar.prototype.format_day = function(vday) {
- var vNowDay = gNow.getDate();
- var vNowMonth = gNow.getMonth();
- var vNowYear = gNow.getFullYear();
-
- if (vday == vNowDay && this.gMonth == vNowMonth && this.gYear == vNowYear)
- return ('<span style="color:red;font-weight:bold;">' + vday + '</span>');
- else
- return (vday);
-}
-
-Calendar.prototype.write_weekend_string = function(vday) {
- var i;
-
- // Return special formatting for the weekend day.
- for (i=0; i<weekend.length; i++) {
- if (vday == weekend[i])
- return (' bgcolor="' + weekendColor + '"');
- }
-
- return "";
-}
-
-Calendar.prototype.format_data = function(p_day) {
- var vData;
- var vMonth = 1 + this.gMonth;
- vMonth = (vMonth.toString().length < 2) ? "0" + vMonth : vMonth;
- var vMon = Calendar.get_month(this.gMonth).substr(0,3).toUpperCase();
- var vFMon = Calendar.get_month(this.gMonth).toUpperCase();
- var vY4 = new String(this.gYear);
- var vY2 = new String(this.gYear.substr(2,2));
- var vDD = (p_day.toString().length < 2) ? "0" + p_day : p_day;
-
- switch (this.gFormat) {
- case "MM\/DD\/YYYY" :
- vData = vMonth + "\/" + vDD + "\/" + vY4;
- break;
- case "MM\/DD\/YY" :
- vData = vMonth + "\/" + vDD + "\/" + vY2;
- break;
- case "MM-DD-YYYY" :
- vData = vMonth + "-" + vDD + "-" + vY4;
- break;
- case "YYYY-MM-DD" :
- vData = vY4 + "-" + vMonth + "-" + vDD;
- break;
- case "MM-DD-YY" :
- vData = vMonth + "-" + vDD + "-" + vY2;
- break;
- case "DD\/MON\/YYYY" :
- vData = vDD + "\/" + vMon + "\/" + vY4;
- break;
- case "DD\/MON\/YY" :
- vData = vDD + "\/" + vMon + "\/" + vY2;
- break;
- case "DD-MON-YYYY" :
- vData = vDD + "-" + vMon + "-" + vY4;
- break;
- case "DD-MON-YY" :
- vData = vDD + "-" + vMon + "-" + vY2;
- break;
- case "DD\/MONTH\/YYYY" :
- vData = vDD + "\/" + vFMon + "\/" + vY4;
- break;
- case "DD\/MONTH\/YY" :
- vData = vDD + "\/" + vFMon + "\/" + vY2;
- break;
- case "DD-MONTH-YYYY" :
- vData = vDD + "-" + vFMon + "-" + vY4;
- break;
- case "DD-MONTH-YY" :
- vData = vDD + "-" + vFMon + "-" + vY2;
- break;
- case "DD\/MM\/YYYY" :
- vData = vDD + "\/" + vMonth + "\/" + vY4;
- break;
- case "DD\/MM\/YY" :
- vData = vDD + "\/" + vMonth + "\/" + vY2;
- break;
- case "DD-MM-YYYY" :
- vData = vDD + "-" + vMonth + "-" + vY4;
- break;
- case "DD-MM-YY" :
- vData = vDD + "-" + vMonth + "-" + vY2;
- break;
- case "DD.MM.YYYY" :
- vData = vDD + "." + vMonth + "." + vY4;
- break;
- case "DD.MM.YY" :
- vData = vDD + "." + vMonth + "." + vY2;
- break;
- default :
- vData = vMonth + "\/" + vDD + "\/" + vY4;
- }
-
- return vData;
-}
-
-function Build(p_item, p_month, p_year, p_format) {
- var gCal = new Calendar(p_item, p_month, p_year, p_format);
-
- // Customize your Calendar here..
- gCal.gBGColor="white";
- gCal.gLinkColor="black";
- gCal.gTextColor="black";
- gCal.gHeaderColor="darkgreen";
-
- // initialize the content string
- ggWinContent = "";
-
- // Check for DRAGGABLE support
- if (typeof ol_draggable == 'undefined') DRAGGABLE = DONOTHING;
-
- // Choose appropriate show function
- if (gCal.gYearly) {
- // Note: you can set ggPosX and ggPosY as part of the onclick javascript
- // code before you call the show_yearly_calendar function:
- // onclick="ggPosX=20;ggPosY=5;show_yearly_calendar(...);"
- if (OLns6) {
- if (ggPosX == -1) ggPosX = 20;
- if (ggPosY == -1) ggPosY = 10;
- }
- if (fontsize == 8) fontsize = 6;
- // generate the calendar
- gCal.showY();
- } else {
- if (fontsize == 6) fontsize = 8;
- gCal.show();
- }
-
- // Clear any previous EXCLUSIVE setting
- o3_exclusive=0;
- // If X and Y positions are not specified use MIDX and RELY
- if (ggPosX == -1 && ggPosY == -1) {
- overlib(ggWinContent, AUTOSTATUSCAP, STICKY, EXCLUSIVE, DRAGGABLE,
- CLOSECLICK, TEXTSIZE,'8pt', CAPTIONSIZE,'8pt', CLOSESIZE,'8pt',
- CAPTION,'Select a date', MIDX,0, RELY,10);
- // Otherwise use FIXX and FIXY
- } else {
- // Make sure popup is on screen
- var X = ((ggPosX < 10)?0:ggPosX - 10), Y = ((ggPosY < 10)?0:ggPosY - 10);
- window.scroll(X, Y);
- // Put up the calendar
- overlib(ggWinContent, AUTOSTATUSCAP, STICKY, EXCLUSIVE, DRAGGABLE,
- CLOSECLICK, TEXTSIZE,'8pt', CAPTIONSIZE,'8pt', CLOSESIZE,'8pt',
- CAPTION,'Select a date', FIXX,ggPosX, FIXY,ggPosY);
- // Reset the position variables
- ggPosX = -1; ggPosY = -1;
- }
-}
-
-function show_calendar() {
- var p_item // Return Item.
- var p_month // 0-11 for Jan-Dec; 12 for All Months.
- var p_year // 4-digit year
- var p_format // Date format (YYYY-MM-DD, DD/MM/YYYY, ...)
- fontsize = 8;
-
- p_item = arguments[0];
- if (arguments[1] == "" || arguments[1] == null || arguments[1] == '12')
- p_month = new String(gNow.getMonth());
- else
- p_month = arguments[1];
- if (arguments[2] == "" || arguments[2] == null)
- p_year = new String(gNow.getFullYear().toString());
- else
- p_year = arguments[2];
- if (arguments[3] == "" || arguments[3] == null)
- p_format = "YYYY-MM-DD";
- else
- p_format = arguments[3];
-
- if (OLns4) return overlib('Sorry, your browser does not support this feature. '
- +'Manually enter<br>' + p_format,
- FGCOLOR,'#ffffcc', TEXTSIZE,2, STICKY, NOCLOSE, OFFSETX,-10, OFFSETY,-10,
- WIDTH,110, BASE,2);
-
- Build(p_item, p_month, p_year, p_format);
-}
-
-function show_yearly_calendar() {
- var p_item // Return Item.
- var p_year // 4-digit year
- var p_format // Date format (YYYY-MM-DD, DD/MM/YYYY, ...)
-
- p_item = arguments[0];
- if (arguments[1] == "" || arguments[1] == null)
- p_year = new String(gNow.getFullYear().toString());
- else
- p_year = arguments[1];
- if (arguments[2] == "" || arguments[2] == null)
- p_format = "YYYY-MM-DD";
- else
- p_format = arguments[2];
-
- if (OLns4) return overlib('Sorry, your browser does not support this feature. '
- +'Manually enter<br>' + p_format,
- FGCOLOR,'#ffffcc', TEXTSIZE,2, STICKY, NOCLOSE, OFFSETX,-10, OFFSETY,-10,
- WIDTH,110, BASE,2);
-
- Build(p_item, null, p_year, p_format);
-}
diff --git a/src/extras/sos-html-logs/share/html/overlib/calendarmws_lang.js b/src/extras/sos-html-logs/share/html/overlib/calendarmws_lang.js
deleted file mode 100644
index 6232e789..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/calendarmws_lang.js
+++ /dev/null
@@ -1,700 +0,0 @@
-/*
- calendermws_lang.js - Script with multi-language support for generating calender popups
- and selecting dates for form submissions.
- See http://www.macridesweb.com/oltest/calendarmws_lang.html for a demonstration.
- Initial (calendarmws.js): November 9, 2003 - Last Revised: November 23, 2006
-
-****
- Original: Kedar R. Bhave (softricks@hotmail.com)
- Web Site: http://www.softricks.com
- (uses window popups)
-
- Modifications and customizations to work with the overLIB v3.50
- Author: James B. O'Connor (joconnor@nordenterprises.com)
- Web Site: http://www.nordenterprises.com
- Developed for use with http://home-owners-assoc.com
- Note: while overlib works fine with Netscape 4, this function does not work very
- well, since portions of the "over" div end up under other fields on the form and
- cannot be seen. If you want to use this with NS4, you'll need to change the
- positioning in the overlib() call to make sure the "over" div gets positioned
- away from all other form fields
- The O'Connor script and many more are available free online at:
- The JavaScript Source!! http://javascript.internet.com
-
- Further modifications made by Foteos Macrides (http://www.macridesweb.com/oltest/),
- Bodo Hantschmann (http://www.hantschmann.org) - multi-language support, and
- Bill McCormick (wpmccormick@freeshell.org) - draggable support, for overlibmws.
-
- Requires sprintf.js from the overlibmws distribution.
-*/
-
-var ggPosX = -1;
-var ggPosY = -1;
-var ggInactive = 0;
-var ggOnChange = null;
-var ggLang = 'eng';
-
-var ggWinContent = "";
-
-var weekend = [0,6];
-var weekendColor = "#e0e0e0";
-var fontface = "Verdana";
-var fontsize = 8; // in "pt" units; used with "font-size" style element
-
-var calmsg = new Array();
-var datFormat = new Array();
-var CalendarMonths = new Array();
-var CalendarWeekdays = new Array();
-
-/* -----------------------------------------------------------------------------------------
- Languages (set via the value of the ggLang global)
-
- 'eng' - English
- 'ger' - German
- 'esp' - Spanish
- 'dut' - Dutch / Netherlands
-
- for more languages:
- greetings from babelfish ;-) (Hint: Use always english as base, that gives the best
- results.
- ----------------------------------------------------------------------------------------- */
-
-/* -------------------------------
- English
- ------------------------------- */
-calmsg["eng"] = new Array;
-calmsg["eng"][0] = "One year backward";
-calmsg["eng"][1] = "One year forward";
-calmsg["eng"][2] = "One month backward";
-calmsg["eng"][3] = "One month forward";
-calmsg["eng"][4] = "Set date";
-calmsg["eng"][5] = "Select date";
-calmsg["eng"][6] = "Your Browser does NOT support this feature. Update asap, please!<br />";
-calmsg["eng"][7] = "Year";
-calmsg["eng"][8] = "Click to close";
-datFormat["eng"] = "MM/DD/YYYY";
-CalendarMonths["eng"] = new Array("January", "February", "March", "April", "May", "June",
- "July", "August", "September", "October", "November", "December");
-CalendarWeekdays["eng"] = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
-
-/* -------------------------------
- German
- ------------------------------- */
-calmsg["ger"] = new Array;
-calmsg["ger"][0] = "Ein Jahr zur&uuml;ck";
-calmsg["ger"][1] = "Ein Jahr vorw&auml;rts";
-calmsg["ger"][2] = "Einen Monat zur&uuml;ck";
-calmsg["ger"][3] = "Einen Monat vorw&auml;rts";
-calmsg["ger"][4] = "Datum setzen";
-calmsg["ger"][5] = "Datum w&auml;hlen";
-calmsg["ger"][6] = "Leider unterst&uuml;tzt Ihr Browser dieses Feature nicht. "
- +"Bitte updaten!<br />";
-calmsg["ger"][7] = "Jahr";
-calmsg["ger"][8] = "Zum schlie&szlig;en klicken";
-datFormat["ger"] = "DD.MM.YYYY";
-CalendarMonths["ger"] = new Array("Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni",
- "Juli", "August", "September", "Oktober", "November", "Dezember");
-CalendarWeekdays["ger"] = new Array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa");
-
-/* -------------------------------
- Spanish
- ------------------------------- */
-calmsg["esp"] = new Array;
-calmsg["esp"][0] = "Un año atras";
-calmsg["esp"][1] = "Un año adelante";
-calmsg["esp"][2] = "Un mes atras";
-calmsg["esp"][3] = "Un mes adelante";
-calmsg["esp"][4] = "Fije la fecha";
-calmsg["esp"][5] = "Seleccione la fecha";
-calmsg["esp"][6] = "Su browser no apoya esta característica. ¡Actualización cuanto antes, "
- +"por favor!<br />";
-calmsg["esp"][7] = "Año";
-calmsg["esp"][8] = "Tecleo a cerrarse";
-datFormat["esp"] = "DD.MM.YYYY";
-CalendarMonths["esp"] = new Array("Enero", "Febrero", "Marcha", "Abril", "Puede", "Junio",
- "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
-CalendarWeekdays["esp"] = new Array("Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa");
-
-/* -------------------------------
- Dutch
- ------------------------------- */
-calmsg["dut"] = new Array;
-calmsg["dut"][0] = "Één jaar achteruit";
-calmsg["dut"][1] = "Één jaar voorwaarts";
-calmsg["dut"][2] = "Één maand achteruit";
-calmsg["dut"][3] = "Één maand voorwaarts";
-calmsg["dut"][4] = "Overname datum";
-calmsg["dut"][5] = "Selecteer datum";
-calmsg["dut"][6] = "Uw Browser steunt deze eigenschap niet. Update zo vlug mogelijk, "
- +"tevreden!<br />";
-calmsg["dut"][7] = "Jaar";
-calmsg["dut"][8] = "klik aan het sluiten";
-datFormat["dut"] = "DD.MM.YYYY";
-CalendarMonths["dut"] = new Array("Januari", "Februari", "Maart", "April", "Mei", "Juni",
- "Juli", "Augustus", "September", "Oktober", "November", "December");
-CalendarWeekdays["dut"] = new Array("Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za");
-
-var gNow = new Date();
-
-Calendar.CellWidth = ["14%", "14%", "14%", "14%", "14%", "14%", "16%"];
-
-// Non-Leap year Month days..
-Calendar.DOMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
-// Leap year Month days..
-Calendar.lDOMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
-
-function Calendar(p_item, p_month, p_year, p_format) {
- if ((p_month == null) && (p_year == null)) return;
-
- if (p_month == null) {
- this.gMonthName = null;
- this.gMonth = null;
- this.gYearly = true;
- } else {
- this.gMonthName = Calendar.get_month(p_month);
- this.gMonth = new Number(p_month);
- this.gYearly = false;
- }
-
- this.gYear = p_year;
- this.gFormat = p_format;
- this.gBGColor = "white";
- this.gFGColor = "black";
- this.gTextColor = "black";
- this.gHeaderColor = "black";
- this.gReturnItem = p_item;
-}
-
-Calendar.get_month = Calendar_get_month;
-Calendar.get_daysofmonth = Calendar_get_daysofmonth;
-Calendar.calc_month_year = Calendar_calc_month_year;
-
-function Calendar_get_month(monthNo) {
- return Calendar.Months[monthNo];
-}
-
-function Calendar_get_daysofmonth(monthNo, p_year) {
- /*
- Check for leap year ..
- 1.Years evenly divisible by four are normally leap years, except for...
- 2.Years also evenly divisible by 100 are not leap years, except for...
- 3.Years also evenly divisible by 400 are leap years.
- */
- if ((p_year % 4) == 0) {
- if ((p_year % 100) == 0 && (p_year % 400) != 0)
- return Calendar.DOMonth[monthNo];
-
- return Calendar.lDOMonth[monthNo];
- } else
- return Calendar.DOMonth[monthNo];
-}
-
-function Calendar_calc_month_year(p_Month, p_Year, incr) {
- /*
- Will return an 1-D array with 1st element being the calculated month
- and second being the calculated year
- after applying the month increment/decrement as specified by 'incr' parameter.
- 'incr' will normally have 1/-1 to navigate thru the months.
- */
- var ret_arr = new Array();
-
- if (incr == -1) {
- // B A C K W A R D
- if (p_Month == 0) {
- ret_arr[0] = 11;
- ret_arr[1] = parseInt(p_Year) - 1;
- } else {
- ret_arr[0] = parseInt(p_Month) - 1;
- ret_arr[1] = parseInt(p_Year);
- }
- } else if (incr == 1) {
- // F O R W A R D
- if (p_Month == 11) {
- ret_arr[0] = 0;
- ret_arr[1] = parseInt(p_Year) + 1;
- } else {
- ret_arr[0] = parseInt(p_Month) + 1;
- ret_arr[1] = parseInt(p_Year);
- }
- }
- return ret_arr;
-}
-
-function Calendar_calc_month_year(p_Month, p_Year, incr) {
- /*
- Will return an 1-D array with 1st element being the calculated month
- and second being the calculated year
- after applying the month increment/decrement as specified by 'incr' parameter.
- 'incr' will normally have 1/-1 to navigate thru the months.
- */
- var ret_arr = new Array();
-
- if (incr == -1) {
- // B A C K W A R D
- if (p_Month == 0) {
- ret_arr[0] = 11;
- ret_arr[1] = parseInt(p_Year) - 1;
- } else {
- ret_arr[0] = parseInt(p_Month) - 1;
- ret_arr[1] = parseInt(p_Year);
- }
- } else if (incr == 1) {
- // F O R W A R D
- if (p_Month == 11) {
- ret_arr[0] = 0;
- ret_arr[1] = parseInt(p_Year) + 1;
- } else {
- ret_arr[0] = parseInt(p_Month) + 1;
- ret_arr[1] = parseInt(p_Year);
- }
- }
- return ret_arr;
-}
-
-// This is for compatibility with Navigator 3, we have to create and discard one object
-// before the prototype object exists.
-new Calendar();
-
-Calendar.prototype.getMonthlyCalendarCode = function() {
- var vCode = "";
- var vHeader_Code = "";
- var vData_Code = "";
-
- // Begin Table Drawing code here..
- vCode += ('<div align="center"><table border="1" bgcolor="' + this.gBGColor
- +'" style="font-size:' + fontsize + 'pt;">');
-
- vHeader_Code = this.cal_header();
- vData_Code = this.cal_data();
- vCode += (vHeader_Code + vData_Code);
-
- vCode += '</table></div>';
-
- return vCode;
-}
-
-Calendar.prototype.show = function() {
- var vCode = "";
-
- var vDate = new Date();
- vDate.setMonth(this.gMonth);
- vDate.setFullYear(this.gYear);
- var vNowMonth = gNow.getMonth();
- var vNowYear = gNow.getFullYear();
- var yOK=!ggInactive||vNowYear<vDate.getFullYear()?1:0;
- var mOK=!ggInactive||(yOK||
- (vNowYear<=vDate.getFullYear()&&vNowMonth<vDate.getMonth()))?1:0;
-
- // build content into global var ggWinContent
- ggWinContent += sprintf('<div style="font-family:\'%s\';font-weight:bold;'
- +'font-size:%spt;text-align:center;">%s %s</div>',
- fontface, fontsize, this.gMonthName, this.gYear);
-
- // Show navigation buttons
- var prevMMYYYY = Calendar.calc_month_year(this.gMonth, this.gYear, -1);
- var prevMM = prevMMYYYY[0];
- var prevYYYY = prevMMYYYY[1];
-
- var nextMMYYYY = Calendar.calc_month_year(this.gMonth, this.gYear, 1);
- var nextMM = nextMMYYYY[0];
- var nextYYYY = nextMMYYYY[1];
-
- var nav_cell = '<td align="%s">&nbsp;[<a href="javascript:void(0);" title="%s" '
- +'onmouseover="window.status=\'%s\'; return true;" '
- +'onmouseout="window.status=\'\'; return true;" '
- +'onclick="Build(\'%s\',\'%s\',\'%s\',\'%s\');">%s%s%s<\/a>]&nbsp;</td>';
- var nav_cell_inactive = '<td align="%s">&nbsp;[%s%s]&nbsp;</td>'
-
- ggWinContent += '<table width="100%" border="0" cellspacing="0" cellpadding="0" '
- +'bgcolor="#e0e0e0" style="font-size:' + fontsize + 'pt;">';
- ggWinContent += '<tr>';
- ggWinContent += yOK?sprintf(nav_cell,
- 'left', calmsg[ggLang][0], calmsg[ggLang][0],
- this.gReturnItem, this.gMonth, (parseInt(this.gYear)-1), this.gFormat,
- '&lt;&lt;', (parseInt(this.gYear)-1), ''):
- sprintf(nav_cell_inactive, 'left', '&lt;&lt;', (parseInt(this.gYear)-1));
- ggWinContent += sprintf(nav_cell,
- 'right', calmsg[ggLang][1], calmsg[ggLang][1],
- this.gReturnItem, this.gMonth, (parseInt(this.gYear)+1), this.gFormat,
- '', (parseInt(this.gYear)+1), '&gt;&gt;');
- ggWinContent += '</tr><tr>';
- ggWinContent += mOK?sprintf(nav_cell,
- 'left', calmsg[ggLang][2], calmsg[ggLang][2],
- this.gReturnItem, prevMM, prevYYYY, this.gFormat, '&lt;',
- Calendar.Months[prevMM], ''):
- sprintf(nav_cell_inactive, '&lt;', Calendar.Months[prevMM]);
- ggWinContent += sprintf(nav_cell,
- 'right', calmsg[ggLang][3], calmsg[ggLang][3],
- this.gReturnItem, nextMM, nextYYYY, this.gFormat, '',
- Calendar.Months[nextMM], '&gt;');
- ggWinContent += '</tr></table><div style="font-size:3px;">&nbsp;</div>';
-
- // Get the complete calendar code for the month, and add it to the content var
- vCode = this.getMonthlyCalendarCode();
- ggWinContent += vCode;
-}
-
-Calendar.prototype.showY = function() {
- var vCode = "";
- var i;
-
- ggWinContent += sprintf(
- '<div style="font-family:\'%s\';font-weight:bold;font-size:%spt;'
- +'text-align:center;">%s</div>', fontface, fontsize+1, this.gYear);
- // Show navigation buttons
- var prevYYYY = parseInt(this.gYear) - 1;
- var nextYYYY = parseInt(this.gYear) + 1;
-
- var vDate = new Date();
- vDate.setFullYear(this.gYear);
- var vCode = "";
- var vNowYear = gNow.getFullYear();
- var yOK=!ggInactive||vNowYear<vDate.getFullYear()?1:0;
-
- ggWinContent += '<table width="100%" ' + sprintf(
- 'border="1" cellspacing="0" cellpadding="0" bgcolor="%s" '
- +'style="font-size:%spt;">', '#e0e0e0', fontsize);
- ggWinContent += '<tr>';
- ggWinContent += yOK?sprintf(
- '<td align="center">[<a href="javascript:void(0);" title="%s" '
- +'onmouseover="window.status=\'%s\'; return true;" '
- +'onmouseout="window.status=\'\'; return true;" '
- +'onclick="Build(\'%s\', null, \'%s\', \'%s\');">&lt;&lt;%s</a>]</td>',
- calmsg[ggLang][0], calmsg[ggLang][0], this.gReturnItem,
- prevYYYY, this.gFormat, (parseInt(this.gYear)-1)):
- sprintf('<td align="center">[&lt;&lt;%s]</td>',(parseInt(this.gYear)-1));
- ggWinContent += '<td align="center">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>';
- ggWinContent += sprintf(
- '<td align="center">[<a href="javascript:void(0);" title="%s" '
- +'onmouseover="window.status=\'%s\'; return true;" '
- +'onmouseout="window.status=\'\'; return true;" '
- +'onclick="Build(\'%s\', null, \'%s\', \'%s\');">%s&gt;&gt;</a>]</td>',
- calmsg[ggLang][1], calmsg[ggLang][1], this.gReturnItem,
- nextYYYY, this.gFormat, (parseInt(this.gYear)+1));
- ggWinContent += '</tr></table>';
-
- // Get the complete calendar code for each month.
- // start a table and first row in the table
- ggWinContent += '<table width="100%" border="0" cellspacing="0" cellpadding="2" '
- +'style="font-size:' + fontsize + 'pt;"><tr>';
- for (i=0; i<12; i++) {
- // start the table cell
- ggWinContent += '<td align="center" valign="top">';
- this.gMonth = i;
- this.gMonthName = Calendar.get_month(this.gMonth);
- vCode = this.getMonthlyCalendarCode();
- ggWinContent += (this.gMonthName + '/' + this.gYear+ '<div '
- +'style="font-size:2px;">&nbsp;</div>');
- ggWinContent += vCode;
- ggWinContent += '</td>';
- if (i == 3 || i == 7) ggWinContent += '</tr><tr>';
- }
- ggWinContent += '</tr></table>';
-}
-
-Calendar.prototype.cal_header = function() {
- var vCode = '<tr>';
- for (i=0; i<7; i++) { vCode += sprintf(
- '<td width="%s" style="font-family:\'%s\';font-weight:bold;color:%s; '
- +'text-align:center;">%s</td>',
- Calendar.CellWidth[i], fontface, this.gHeaderColor, Calendar.Weekdays[i]);
- }
- return (vCode + '</tr>');
-}
-
-Calendar.prototype.cal_data = function() {
- var vDate = new Date();
- vDate.setDate(1);
- vDate.setMonth(this.gMonth);
- vDate.setFullYear(this.gYear);
-
- var vNowDay = gNow.getDate();
- var vNowMonth = gNow.getMonth();
- var vNowYear = gNow.getFullYear();
-
- var yOK=!ggInactive||vNowYear<=vDate.getFullYear()?1:0;
- var mOK=!ggInactive||vNowYear<vDate.getFullYear()||
- (vNowYear==vDate.getFullYear()&&vNowMonth<=vDate.getMonth())?1:0;
- var ymOK=yOK&&mOK?1:0;
- var dOK=!ggInactive||vNowYear<vDate.getFullYear()||vNowMonth<vDate.getMonth()?1:0;
-
- var vFirstDay=vDate.getDay();
- var vDay=1;
- var vLastDay=Calendar.get_daysofmonth(this.gMonth, this.gYear);
- var vOnLastDay=0;
- var vCode = '<tr>';
- var i,j,k,m;
- var orig = eval("document." + this.gReturnItem + ".value").toString();
- /*
- Get day for the 1st of the requested month/year..
- Place as many blank cells before the 1st day of the month as necessary.
- */
- for (i=0; i<vFirstDay; i++) { vCode += sprintf(
- '<td width="%s" %s style="font-family:\'%s\';text-align:center;">&nbsp;</td>',
- Calendar.CellWidth[0], this.write_weekend_string(i),fontface);
- }
- // Write rest of the 1st week
- for (j=vFirstDay; j<7; j++) { vCode += (ymOK)&&(vDay>=vNowDay||dOK)?sprintf(
- '<td width="%s" %s style="font-family:\'%s\';text-align:center;"><a '
- +'href="javascript:void(0);" title="%s: %s" '
- +'onmouselver="window.status=\'%s: %s\'; return true;" '
- +'onmouseout="window.status=\'\'; return true;" '
- +'onclick="document.%s.value=\'%s\';ggPosX= -1;ggPosY= -1;%scClick();'
- +'if((ggOnChange)&&(document.%s.value!=\'%s\'))ggOnChange();">%s</a></td>',
- Calendar.CellWidth[j+1], this.write_weekend_string(j), fontface,
- calmsg[ggLang][4], this.format_data(vDay), calmsg[ggLang][4],
- this.format_data(vDay), this.gReturnItem, this.format_data(vDay), OLfnRef,
- this.gReturnItem, orig, this.format_day(vDay)):
- sprintf('<td width="%s" %s style="font-family:\'%s\';text-align:center;">'
- +'%s</td>', Calendar.CellWidth[j+1], this.write_weekend_string(j), fontface,
- this.format_day(vDay));
- vDay += 1;
- }
- vCode += '</tr>';
-
- // Write the rest of the weeks
- for (k=2; k<7; k++) {
- vCode += '<tr>';
- for (j=0; j<7; j++) { vCode += (ymOK)&&(vDay>=vNowDay||dOK)?sprintf(
- '<td width="%s" %s style="font-family:\'%s\';text-align:center;"><a '
- +'href="javascript:void(0);" title="%s: %s" '
- +'onmouseover="window.status=\'%s: %s\'; return true;" '
- +'onmouseout="window.status=\'\'; return true;" '
- +'onclick="document.%s.value=\'%s\';ggPosX= -1;ggPosY= -1;%scClick();if'
- +'((ggOnChange)&&(document.%s.value!=\'%s\'))ggOnChange();">%s</a></td>',
- Calendar.CellWidth[j+1], this.write_weekend_string(j), fontface,
- calmsg[ggLang][4], this.format_data(vDay),calmsg[ggLang][4],
- this.format_data(vDay), this.gReturnItem, this.format_data(vDay),
- OLfnRef, this.gReturnItem, orig, this.format_day(vDay)):sprintf(
- '<td width="%s" %s style="font-family:\'%s\';text-align:center;">'
- +'%s</td>', Calendar.CellWidth[j+1], this.write_weekend_string(j),
- fontface, this.format_day(vDay));
- vDay += 1;
- if (vDay > vLastDay) {
- vOnLastDay = 1;
- break;
- }
- }
- if (j == 6) vCode += '</tr>';
- if (vOnLastDay == 1) break;
- }
-
- // Fill up the rest of last week with proper blanks, so that we get proper square blocks
- for (m=1; m<(7-j); m++) { vCode += sprintf(
- '<td width="%s" %s style="font-family:\'%s\';color:gray;text-align:center;"'
- +'>&nbsp;</td>',
- Calendar.CellWidth[m+1], this.write_weekend_string(j+m), fontface);
- }
- return vCode;
-}
-
-Calendar.prototype.format_day = function(vday) {
- var vNowDay = gNow.getDate();
- var vNowMonth = gNow.getMonth();
- var vNowYear = gNow.getFullYear();
-
- if (vday == vNowDay && this.gMonth == vNowMonth && this.gYear == vNowYear)
- return ('<span style="color:red;font-weight:bold;">' + vday + '</span>');
- else
- return (vday);
-}
-
-Calendar.prototype.write_weekend_string = function(vday) {
- var i;
-
- // Return special formatting for the weekend day.
- for (i=0; i<weekend.length; i++) {
- if (vday == weekend[i])
- return (' bgcolor="' + weekendColor + '"');
- }
-
- return "";
-}
-
-Calendar.prototype.format_data = function(p_day) {
- var vData;
- var vMonth = 1 + this.gMonth;
- vMonth = (vMonth.toString().length < 2) ? "0" + vMonth : vMonth;
- var vMon = Calendar.get_month(this.gMonth).substr(0,3).toUpperCase();
- var vFMon = Calendar.get_month(this.gMonth).toUpperCase();
- var vY4 = new String(this.gYear);
- var vY2 = new String(this.gYear.substr(2,2));
- var vDD = (p_day.toString().length < 2) ? "0" + p_day : p_day;
-
- switch (this.gFormat) {
- case "MM\/DD\/YYYY" :
- vData = vMonth + "\/" + vDD + "\/" + vY4;
- break;
- case "MM\/DD\/YY" :
- vData = vMonth + "\/" + vDD + "\/" + vY2;
- break;
- case "MM-DD-YYYY" :
- vData = vMonth + "-" + vDD + "-" + vY4;
- break;
- case "YYYY-MM-DD" :
- vData = vY4 + "-" + vMonth + "-" + vDD;
- break;
- case "MM-DD-YY" :
- vData = vMonth + "-" + vDD + "-" + vY2;
- break;
- case "DD\/MON\/YYYY" :
- vData = vDD + "\/" + vMon + "\/" + vY4;
- break;
- case "DD\/MON\/YY" :
- vData = vDD + "\/" + vMon + "\/" + vY2;
- break;
- case "DD-MON-YYYY" :
- vData = vDD + "-" + vMon + "-" + vY4;
- break;
- case "DD-MON-YY" :
- vData = vDD + "-" + vMon + "-" + vY2;
- break;
- case "DD\/MONTH\/YYYY" :
- vData = vDD + "\/" + vFMon + "\/" + vY4;
- break;
- case "DD\/MONTH\/YY" :
- vData = vDD + "\/" + vFMon + "\/" + vY2;
- break;
- case "DD-MONTH-YYYY" :
- vData = vDD + "-" + vFMon + "-" + vY4;
- break;
- case "DD-MONTH-YY" :
- vData = vDD + "-" + vFMon + "-" + vY2;
- break;
- case "DD\/MM\/YYYY" :
- vData = vDD + "\/" + vMonth + "\/" + vY4;
- break;
- case "DD\/MM\/YY" :
- vData = vDD + "\/" + vMonth + "\/" + vY2;
- break;
- case "DD-MM-YYYY" :
- vData = vDD + "-" + vMonth + "-" + vY4;
- break;
- case "DD-MM-YY" :
- vData = vDD + "-" + vMonth + "-" + vY2;
- break;
- case "DD.MM.YYYY" :
- vData = vDD + "." + vMonth + "." + vY4;
- break;
- case "DD.MM.YY" :
- vData = vDD + "." + vMonth + "." + vY2;
- break;
- default :
- vData = vMonth + "\/" + vDD + "\/" + vY4;
- }
-
- return vData;
-}
-
-function Build(p_item, p_month, p_year, p_format) {
- var gCal = new Calendar(p_item, p_month, p_year, p_format);
-
- // Customize your Calendar here..
- gCal.gBGColor="white";
- gCal.gLinkColor="black";
- gCal.gTextColor="black";
- gCal.gHeaderColor="darkgreen";
-
- // initialize the content string
- ggWinContent = "";
-
- // Check for DRAGGABLE support
- if (typeof ol_draggable == 'undefined') DRAGGABLE = DONOTHING;
-
- // Choose appropriate show function
- if (gCal.gYearly) {
- // Note: you can set ggPosX and ggPosY as part of the onclick javascript
- // code before you call the show_yearly_calendar function:
- // onclick="ggPosX=20;ggPosY=5;show_yearly_calendar(...);"
- if (OLns6) {
- if (ggPosX == -1) ggPosX = 20;
- if (ggPosY == -1) ggPosY = 10;
- }
- if (fontsize == 8) fontsize = 6;
- // generate the calendar
- gCal.showY();
- } else {
- if (fontsize == 6) fontsize = 8;
- gCal.show();
- }
-
- // Clear any previous EXCLUSIVE setting
- o3_exclusive=0;
- // If X and Y positions are not specified use MIDX and RELY
- if (ggPosX == -1 && ggPosY == -1) {
- overlib(ggWinContent, AUTOSTATUSCAP, STICKY, EXCLUSIVE, DRAGGABLE,
- CLOSECLICK, TEXTSIZE,'8pt', CAPTIONSIZE,'8pt', CLOSESIZE,'8pt',
- CAPTION,calmsg[ggLang][5], CLOSETITLE,calmsg[ggLang][8],CLOSETEXT,
- '<span style="background:#e0e0e0;color:#000000;text-decoration:none;'
- +'font-weight:bold;">&nbsp;X&nbsp;</span>', MIDX,0, RELY,10);
- // Otherwise use FIXX and FIXY
- } else {
- // Make sure popup is on screen
- var X = ((ggPosX < 10)?0:ggPosX - 10), Y = ((ggPosY < 10)?0:ggPosY - 10);
- window.scroll(X, Y);
- // Put up the calendar
- overlib(ggWinContent, AUTOSTATUSCAP, STICKY, EXCLUSIVE, DRAGGABLE,
- CLOSECLICK, TEXTSIZE,'8pt', CAPTIONSIZE,'8pt', CLOSESIZE,'8pt',
- CAPTION,calmsg[ggLang][5], CLOSETITLE,calmsg[ggLang][8],CLOSETEXT,
- '<span style="background:#e0e0e0;color:#000000;text-decoration:none;'
- +'font-weight:bold;">&nbsp;X&nbsp;</span>', FIXX,ggPosX, FIXY,ggPosY);
- // Reset the position variables
- ggPosX = -1; ggPosY = -1;
- }
-}
-
-function show_calendar() {
- var p_item // Return Item.
- var p_month // 0-11 for Jan-Dec; 12 for All Months.
- var p_year // 4-digit year
- var p_format // Date format (YYYY-MM-DD, DD/MM/YYYY, ...)
- fontsize = 8;
-
- Calendar.Months = CalendarMonths[ggLang];
- Calendar.Weekdays = CalendarWeekdays[ggLang];
-
- p_item = arguments[0];
- if (arguments[1] == "" || arguments[1] == null || arguments[1] == '12')
- p_month = new String(gNow.getMonth());
- else
- p_month = arguments[1];
- if (arguments[2] == "" || arguments[2] == null)
- p_year = new String(gNow.getFullYear().toString());
- else
- p_year = arguments[2];
- if (arguments[3] == "" || arguments[3] == null)
- p_format = datFormat[ggLang];
- else
- p_format = arguments[3];
-
- if (OLns4) return overlib(calmsg[ggLang][6]+p_format,
- FGCOLOR,'#ffffcc', TEXTSIZE,2, STICKY, NOCLOSE, OFFSETX,-10, OFFSETY,-10,
- WIDTH,110, BASE,2);
-
- Build(p_item, p_month, p_year, p_format);
-}
-
-function show_yearly_calendar() {
- var p_item // Return Item.
- var p_year // 4-digit year
- var p_format // Date format (YYYY-MM-DD, DD/MM/YYYY, ...)
-
- Calendar.Months = CalendarMonths[ggLang];
- Calendar.Weekdays = CalendarWeekdays[ggLang];
-
- p_item = arguments[0];
- if (arguments[1] == "" || arguments[1] == null)
- p_year = new String(gNow.getFullYear().toString());
- else
- p_year = arguments[1];
- if (arguments[2] == "" || arguments[2] == null)
- p_format = datFormat[ggLang];
- else
- p_format = arguments[2];
-
- if (OLns4) return overlib(calmsg[ggLang][6]+p_format,
- FGCOLOR,'#ffffcc', TEXTSIZE,2, STICKY, NOCLOSE, OFFSETX,-10, OFFSETY,-10,
- WIDTH,110, BASE,2);
-
- Build(p_item, null, p_year, p_format);
-}
diff --git a/src/extras/sos-html-logs/share/html/overlib/cornerBL.gif b/src/extras/sos-html-logs/share/html/overlib/cornerBL.gif
deleted file mode 100644
index e5af971f..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/cornerBL.gif
+++ /dev/null
Binary files differ
diff --git a/src/extras/sos-html-logs/share/html/overlib/cornerBR.gif b/src/extras/sos-html-logs/share/html/overlib/cornerBR.gif
deleted file mode 100644
index 7f970708..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/cornerBR.gif
+++ /dev/null
Binary files differ
diff --git a/src/extras/sos-html-logs/share/html/overlib/cornerTL.gif b/src/extras/sos-html-logs/share/html/overlib/cornerTL.gif
deleted file mode 100644
index 242b06f7..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/cornerTL.gif
+++ /dev/null
Binary files differ
diff --git a/src/extras/sos-html-logs/share/html/overlib/cornerTR.gif b/src/extras/sos-html-logs/share/html/overlib/cornerTR.gif
deleted file mode 100644
index 9d7cc784..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/cornerTR.gif
+++ /dev/null
Binary files differ
diff --git a/src/extras/sos-html-logs/share/html/overlib/edgeB.gif b/src/extras/sos-html-logs/share/html/overlib/edgeB.gif
deleted file mode 100644
index cef34c0f..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/edgeB.gif
+++ /dev/null
Binary files differ
diff --git a/src/extras/sos-html-logs/share/html/overlib/edgeL.gif b/src/extras/sos-html-logs/share/html/overlib/edgeL.gif
deleted file mode 100644
index 592c1b1f..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/edgeL.gif
+++ /dev/null
Binary files differ
diff --git a/src/extras/sos-html-logs/share/html/overlib/edgeR.gif b/src/extras/sos-html-logs/share/html/overlib/edgeR.gif
deleted file mode 100644
index d3d66351..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/edgeR.gif
+++ /dev/null
Binary files differ
diff --git a/src/extras/sos-html-logs/share/html/overlib/edgeT.gif b/src/extras/sos-html-logs/share/html/overlib/edgeT.gif
deleted file mode 100644
index 416a31d0..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/edgeT.gif
+++ /dev/null
Binary files differ
diff --git a/src/extras/sos-html-logs/share/html/overlib/exit.gif b/src/extras/sos-html-logs/share/html/overlib/exit.gif
deleted file mode 100644
index 9f9bc80e..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/exit.gif
+++ /dev/null
Binary files differ
diff --git a/src/extras/sos-html-logs/share/html/overlib/flower.gif b/src/extras/sos-html-logs/share/html/overlib/flower.gif
deleted file mode 100644
index 101275eb..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/flower.gif
+++ /dev/null
Binary files differ
diff --git a/src/extras/sos-html-logs/share/html/overlib/iframecontentmws.js b/src/extras/sos-html-logs/share/html/overlib/iframecontentmws.js
deleted file mode 100644
index ffcebf38..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/iframecontentmws.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- iframecontentmws.js - Foteos Macrides (author and copyright holder)
- Initial: October 10, 2004 - Last Revised: November 11, 2006
- Scripts for using HTML documents as iframe content in overlibmws popups.
-
- See http://www.macridesweb.com/oltest/IFRAME.html
- and http://www.macridesweb.com/oltest/AJAX.html#ajaxex3
- for more information.
-*/
-
-/*
- Use as lead argument in overlib or overlb2 calls. Include WRAP and
- TEXTPADDING,0 in the call to ensure that the width arg is respected (unless
- the CAPTION plus CLOSETEXT widths add up to more than the width arg, in which
- case you should increase the width arg). The name arg should be a unique
- string for each popup with iframe content in the document. The frameborder
- arg should be 1 (browser default if omitted) or 0. The scrolling arg should
- be 'auto' (default if omitted), 'yes' or 'no'.
-*/
-function OLiframeContent(src, width, height, name, frameborder, scrolling) {
- return ('<iframe src="'+src+'" width="'+width+'" height="'+height+'"'
- +(name!=null?' name="'+name+'" id="'+name+'"':'')
- +(frameborder!=null?' frameborder="'+frameborder+'"':'')
- +' scrolling="'+(scrolling!=null?scrolling:'auto')
- +'"><div>[iframe not supported]</div></iframe>');
-}
-
-/*
- Swap the src if we are iframe content. The name arg should be the same
- string as in the OLiframeContent function for the popup. The src arg is
- a partial, relative, or complete URL for the document to be swapped in.
-*/
-function OLswapIframeSrc(name, src){
- if(parent==self){
- alert(src+'\n\n is only for iframe content');
- return;
- }
- var o=parent.OLgetRef(name);
- if(o)o.src=src;
- else alert(src+'\n\n is not available');
-}
-
-/*
- Emulate the Back button if we are iframe content. Use only in documents
- which are swapped in by using the OLswapIframeSrc function.
-*/
-function OLiframeBack(){
- if(parent==self){
- alert('This feature is only for iframe content');
- return;
- }
- history.back();
-}
diff --git a/src/extras/sos-html-logs/share/html/overlib/license.html b/src/extras/sos-html-logs/share/html/overlib/license.html
deleted file mode 100644
index 1cf6457a..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/license.html
+++ /dev/null
@@ -1,265 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta http-equiv="content-Type" content="text/html; charset=iso-8859-1">
-<meta name="keywords" content="overlib, overlibmws, DHTML popups, DHTML tooltips, DHTML, popup, tooltip, Macrides Web Services, Macrides">
-<meta name="description" content="Open source license for the overlibmws DHTML popup and tooltip software package.">
-<meta name="author" content="Foteos Macrides">
-<title>overLIB - License for the overlibmws package</title>
-
-<script type="text/javascript">
-<!--
-var OLbubbleImageDir='http://www.macridesweb.com/oltest/';
-var OLbubbleImages='flower';
-//-->
-</script>
-
-<script type="text/javascript"
- src="http://www.macridesweb.com/oltest/overlibmws.js"></script>
-<script type="text/javascript"
- src="http://www.macridesweb.com/oltest/overlibmws_filter.js"></script>
-<script type="text/javascript"
- src="http://www.macridesweb.com/oltest/overlibmws_bubble.js"></script>
-<script type="text/javascript"
- src="http://www.macridesweb.com/oltest/overlibmws_shadow.js"></script>
-
-<script type="text/javascript">
-<!--
-OLpageDefaults(TEXTPADDING,6,CAPTIONPADDING,6,WRAP,
- FILTER,FILTERSHADOW,1,FILTERSHADOWCOLOR,'#cf33cf',
- SHADOW,SHADOWCOLOR,'#cf33cf',SHADOWOPACITY,100);
-
-// Preload backgound images.
-rainbowline=new Image();
-rainbowline.src="http://www.macridesweb.com/image/rainbowline.gif"
-rb=new Image();
-rb.src="http://www.macridesweb.com/image/rb.jpg"
-// -->
-</script>
-
-<style type="text/css">
-<!--
-.oltxt14 {font-family:Verdana;font-size:14px;font-weight:bold;color:#330033;}
-a {color:#338855;font-weight:bold;}
-a:hover {color:#FF00FF}
-.txtb12 {font-family:Verdana,Arial,sans-serif;font-size:12px;font-weight:bold;}
-.text14 {font-family:Verdana,Arial,sans-serif;font-size:14px;}
-.text20 {font-family:Verdana,Arial,sans-serif;font-size:20px;font-weight:bold;}
-.text22 {font-family:Verdana,Arial,sans-serif;font-size:22px;font-weight:bold;}
-.myText {font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px;color:#000000;}
-.snip {font-family:Verdana,Arial,Helvetica;font-size:10px;}
-.purple14 {font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px;color:purple;
- font-weight:bold;}
-.purple22 {font-family:Verdana,Arial,Helvetica,sans-serif;font-size:22px;color:purple;
- font-weight:bold;font-style:italic;}
-.comic20 {font-family:'Comic Sans MS';font-size:20px;}
--->
-</style>
-</head>
-
-<body text="#000000" bgcolor="#ddeeff">
-
-<table width="90%" cellpadding="0" cellspacing="0" align="center">
- <tr>
- <td align="center" class="text22">
- Open Source License for the <span class="purple22">overlibmws</span> Package
- </td>
- </tr>
- <tr>
- <td class="text14">
- <br>
- <span class="text20">1. License coverage</span>
- <br><br>
- Note that this license only covers the script library (javascript core and plugin modules)
- and not any supporting material such as the <span class="purple14">overlibmws</span> <a
- href="http://www.macridesweb.com/oltest/"
- onmouseover="return overlib('Link to the Download and Test Directory for '
- +'&lt;span class=\'purple14\'&gt;&lt;i&gt;overlibmws&lt;/i&gt;&lt;/span&gt;',
- TEXTFONTCLASS,'myText', VAUTO, OFFSETY,20, CENTER, FGCOLOR,'#cceeff');"
- onmouseout="nd();">website</a> or its online documentation and support files. You may not
- reproduce the website or its online material without explicit written permission from the
- author, but can freely incorporate scripts and procedures which are demonstrated in that
- material into your own HTML or XML documents.
- <br><br>
- <span class="text20">2. License (Artistic)</span>
- <ul>
- <li>
- <b>Preamble</b><br>
- The intent of this document is to state the conditions under which a Package may be
- copied, such that the Copyright Holder maintains some semblance of artistic control over
- the development of the package, while giving the users of the package the right to use
- and distribute the Package in a more-or-less customary fashion, plus the right to make
- reasonable modifications.
- </li>
- </ul>
- <ul>
- <li>
- <b>Definitions:</b><br>
- "Package" refers to the collection of files distributed by the Copyright Holder, and
- derivatives of that collection of files created through textual modification.
- <br><br>
- "Standard Version" refers to such a Package if it has not been modified, or has been
- modified in accordance with the wishes of the Copyright Holder.
- <br><br>
- "Copyright Holder" is whoever is named in the copyright or copyrights for the package.
- <br><br>
- "You" is you, if you're thinking about copying or distributing this Package.
- <br><br>
- "Reasonable copying fee" is whatever you can justify on the basis of media cost,
- duplication charges, time of people involved, and so on. (You will not be required to
- justify it to the Copyright Holder, but only to the computing community at large as a
- market that must bear the fee.)
- <br><br>
- "Freely Available" means that no fee is charged for the item itself, though there may be
- fees involved in handling the item. It also means that recipients of the item may
- redistribute it under the same conditions they received it.
- </li>
- </ul>
- <ol>
- <li>
- You may make and give away verbatim copies of the source form of the Standard Version
- of this Package without restriction, provided that you duplicate all of the original
- copyright notices and associated disclaimers.
- </li>
- <li>
- You may apply bug fixes, portability fixes and other modifications derived from the
- Public Domain or from the Copyright Holder. A Package modified in such a way shall still
- be considered the Standard Version.
- </li>
- <li>
- You may otherwise modify your copy of this Package in any way, provided that you insert
- a prominent notice in each changed file stating how and when you changed that file, and
- provided that you do at least ONE of the following:
- <ol>
- <li>
- place your modifications in the Public Domain or otherwise make them Freely Available,
- such as by posting said modifications to Usenet or an equivalent medium, or placing the
- modifications on a major archive site such as ftp.uu.net, or by allowing the Copyright
- Holder to include your modifications in the Standard Version of the Package.
- </li>
- <li>
- use the modified Package only within your corporation or organization.
- </li>
- <li>
- rename any non-standard executables so the names do not conflict with standard
- executables, which must also be provided, and provide a separate manual page for each
- non-standard executable that clearly documents how it differs from the Standard Version.
- </li>
- <li>
- make other distribution arrangements with the Copyright Holder.
- </li>
- </ol>
- </li>
- <li>
- You may distribute the programs of this Package in object code or executable form,
- provided that you do at least ONE of the following:
- <ol>
- <li>
- distribute a Standard Version of the executables and library files, together with
- instructions (in the manual page or equivalent) on where to get the Standard Version.
- </li>
- <li>
- accompany the distribution with the machine-readable source of the Package with your
- modifications.
- </li>
- <li>
- accompany any non-standard executables with their corresponding Standard Version
- executables, giving the non-standard executables non-standard names, and clearly
- documenting the differences in manual pages (or equivalent), together with instructions
- on where to get the Standard Version.
- </li>
- <li>
- make other distribution arrangements with the Copyright Holder.
- </li>
- </ol>
- </li>
- <li>
- You may charge a reasonable copying fee for any distribution of this Package. You may
- charge any fee you choose for support of this Package. You may not charge a fee for this
- Package itself. However, you may distribute this Package in aggregate with other (possibly
- commercial) programs as part of a larger (possibly commercial) software distribution
- provided that you do not advertise this Package as a product of your own.
- </li>
- <li>
- The scripts and library files supplied as input to or produced as output from the programs
- of this Package do not automatically fall under the copyright of this Package, but belong
- to whomever generated them, and may be sold commercially, and may be aggregated with this
- Package.
- </li>
- <li>
- C or perl subroutines supplied by you and linked into this Package shall not be considered
- part of this Package.
- </li>
- <li>
- The name of the Copyright Holder may not be used to endorse or promote products derived
- from this software without specific prior written permission.
- </li>
- <li>
- THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
- WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- PURPOSE.
- </li>
- </ol>
- <br>
- </td>
- </tr>
-</table>
-
-<table align="center" cellpadding="0" cellspacing="0" border="0" bgcolor="#ccddff">
- <tr>
- <td width="90" align="right" valign="middle" class="myText">
- <a
- href="http://www.macridesweb.com/oltest/"
- onmousemove="if(OLie55)self.status=this.href;"
- onmouseover="return overlib(
- 'Popups by &lt;span class=\'purple14\'&gt;&lt;i&gt;overlibmws&lt;/i&gt;&lt;/span&gt;',
- REF,'logo',REFX,96,REFY,-4,BORDER,3,BASE,3,TEXTPADDING,4,TEXTFONTCLASS,'oltxt14',
- FGBACKGROUND,'http://www.macridesweb.com/image/rb.jpg',
- BGBACKGROUND,'http://www.macridesweb.com/image/rainbowline.gif');"
- onmouseout="nd();"><img
- name='logo' id="logo"
- width="88" height="31" hspace="10" vspace="10" align="right" border="0" alt=""
- src="http://www.macridesweb.com/image/overlibmwslogo.gif"></a><br>
- </td>
- <td valign="middle" class="snip">
- Copyright Foteos Macrides<br>
- &nbsp;&nbsp;2002-2007.<br>
- &nbsp;&nbsp;All rights reserved.<br>
- </td>
- <td width="72" align="right" valign="middle" class="myText">
- <a
- target="_blank"
- href="https://www.paypal.com/xclick/business=overlibmws%40macridesweb.com&amp;item_name=Donation+for+overlibmws&amp;no_note=1&amp;tax=0&amp;currency_code=USD"
- onmousemove="if(OLie55)self.status=this.href;"
- onmouseover="return overlib(
- 'The &lt;span class=\'purple14\'&gt;&lt;i&gt;overlibmws&lt;/i&gt;&lt;/span&gt; library '
- +'and its support materials at this site are &lt;br&gt;free to download and use, but '
- +'voluntary donations via PayPal are&lt;br&gt;appreciated (donations via PayPal are fast, '
- +'simple, and secure).',TEXTPADDING,8,FGCOLOR,'#bbddff',
- FGBACKGROUND,'http://www.macridesweb.com/image/rb.jpg',
- REF,'logo',REFC,'UL',REFP,'LL',REFX,-10,REFY,-10,TEXTFONTCLASS,'txtb12',BORDER,6,BASE,6,
- BGBACKGROUND,'http://www.macridesweb.com/image/rainbowline.gif');"
- onmouseout="nd();"><img
- src="http://www.macridesweb.com/image/PayPalDonate.gif"
- width="62" height="31" border="0"
- alt=""></a><br>
- </td>
- <td width="110" align="right" valign="middle" class="myText">
- <a
- onmousemove="if(OLie55)self.status=this.href;"
- onmouseover="return overlib('&nbsp;Valid&nbsp;HTML&nbsp;4.01',BUBBLE,
- TEXTFONTCLASS,'comic20',REF,'w3c',REFC,'UR',REFP,'LR',REFX,73,REFY,2,
- FILTERSHADOW,1,FILTERSHADOWCOLOR,'#00B000');"
- onmouseout="nd();"
- href="http://validator.w3.org/check?uri=http%3A%2F%2Fwww.macridesweb.com%2Foltest%2Flicense.html"><img
- name="w3c" id="w3c"
- border="0" height="31" width="88" alt="" hspace="6"
- src="http://www.macridesweb.com/image/valid-html401.gif"></a><br>
- </td>
- </tr>
-</table>
-<br>
-
-</body>
-</html>
diff --git a/src/extras/sos-html-logs/share/html/overlib/loading.gif b/src/extras/sos-html-logs/share/html/overlib/loading.gif
deleted file mode 100644
index 5c8f1ef5..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/loading.gif
+++ /dev/null
Binary files differ
diff --git a/src/extras/sos-html-logs/share/html/overlib/objectcontentmws.js b/src/extras/sos-html-logs/share/html/overlib/objectcontentmws.js
deleted file mode 100644
index 94d1e4f3..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/objectcontentmws.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- objectcontentmws.js - Foteos Macrides
- Initial: October 10, 2004 - Last Revised: November 22, 2004
- Simple script for using an HTML file as object content in overlibmws popups.
- Include WRAP and TEXTPADDING,0 in the overlib call to ensure that the width
- argument is respected (unless the CAPTION plus CLOSETEXT widths add up to more
- than the width argument, in which case you should increase the width argument).
-
- See http://www.macridesweb.com/oltest/overflow.html for demonstrations.
-*/
-
-function OLobjectContent(data, width, height, name) {
- return ('<object data="'+data+'" width="'+width+'" height="'+height+'"'
- +(name?' name="'+name+'" id="'+name+'"':'')+' type="text/html">'
- +'<div>[object not supported]</div></object>');
-}
diff --git a/src/extras/sos-html-logs/share/html/overlib/oval.gif b/src/extras/sos-html-logs/share/html/overlib/oval.gif
deleted file mode 100644
index 7e1af22f..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/oval.gif
+++ /dev/null
Binary files differ
diff --git a/src/extras/sos-html-logs/share/html/overlib/overlibCompat.js b/src/extras/sos-html-logs/share/html/overlib/overlibCompat.js
deleted file mode 100644
index f8fb88d4..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/overlibCompat.js
+++ /dev/null
@@ -1,30 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////////
-// OVERLIB 2 COMPATABILITY FUNCTIONS
-// Include this if you are upgrading from overlib v2.x. Otherwise, forget it.
-////////////////////////////////////////////////////////////////////////////////////
-// 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);}
diff --git a/src/extras/sos-html-logs/share/html/overlib/overlibConfig.txt b/src/extras/sos-html-logs/share/html/overlib/overlibConfig.txt
deleted file mode 100644
index d1059303..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/overlibConfig.txt
+++ /dev/null
@@ -1,641 +0,0 @@
-
-Below are described the configuration variables and arrays associated with the
-overlib commands, and their defaults as set in the
- overlibmws.js
-core module and the
- overlibmws_bubble.js, overlibmws_crossframe.js, overlibmws_debug.js,
- overlibmws_draggable.js, overlibmws_exclusive.js, overlib_filter.js,
- overlibmws_function.js, overlibmws_hide.js, overlibmws_modal.js,
- overlibmws_overtwo.js, overlibmws_print.js, overlibmws_scroll.js and
- overlibmws_shadow.js
-plugin modules. The
- overlibmws_iframe.js and overlib_regCore.js
-plugin modules do not have configuration variables or arrays.
-
-You can change any of the configuration default values for all pages by making
-the modifications in overlibmws.js or the plugin modules, or for individual HTML
-pages by declaring any of these variables with the values you prefer in a SCRIPT
-block or imported js file for those pages.
-
-You instead can change the configuration default values for individual HTML pages by
-calling the OLpageDefaults(arguments) function in a SCRIPT block or imported js file
-with "arguments" consisting of a comma-separated list of uppercase command names and
-their parameters if any, homologously to the arguments for an overlib() call.
-
-The overlibmws_overtwo.js module is used by calling overlib2() and nd2() from within
-an overlib() call that invokes a primary popup, to invoke and close secondary popups.
-Its LABLE2 command and its configuration variable are specific to the secondary popups,
-and are complementary to the core module's LABLEL command and its configuration variable
-for primary popups.
-
-The overlibmws_iframe.js module has no additional commands, and thus no configuration
-variables. It should be imported when a page has system controls (e.g., some form
-elements, flash objects, applets) which obscure overlib popups. It corrects this
-problem for IE v5.5 or higher. For versions of IE lower than v5.5 and for other browsers,
-you can use commands in the overlibmws_hide.js plugin module. See the examples in
-http://www.macridesweb.com/oltest/hide.html and http://www.macridesweb.com/oltest/flash.html
-on how to use those command to hide the system controls when overlib popups are invoked.
-
-The overlibmws_regCore.js module has no overlib() or overlib2() commands, and thus
-no configuration variables. It should be imported in frames which will not themselves
-import the core module and any plugin modules, but instead will use those in another
-frame. See its header for more information. Examples of its use are in
-http://www.macridesweb.com/oltest/testFrame.html
-
-See the overlibmws Command Reference (http://www.macridesweb.com/oltest/commandRef.html)
-for more information about the commands, configuration variables, and plugin modules.
-
-
-////////////////////////////////////////////////////////////////////////////////////
-// DEFAULT CONFIGURATION FOR CORE MODULE overlibmws.js
-////////////////////////////////////////////////////////////////////////////////////
-
-// FGCOLOR - Main background color (the large area).
-// Usually a bright color (white, yellow etc).
-var ol_fgcolor = "#CCCCFF";
-
-// BGCOLOR - Border color.
-// Usually a dark color (black, brown etc).
-var ol_bgcolor = "#333399";
-
-// CGCOLOR - Caption background color (typically same as border color).
-// Usually a dark color (black, brown etc).
-var ol_cgcolor = "#333399";
-
-// TEXTCOLOR - Text color.
-// Usually a dark color.
-var ol_textcolor = "#000000";
-
-// CAPCOLOR - Color of the caption text.
-// Usually a bright color
-var ol_capcolor = "#FFFFFF";
-
-// CLOSECOLOR - Color of "Close" when using Sticky.
-// Usually a semi-bright color.
-var ol_closecolor = "#9999FF";
-
-// TEXTFONT - Font face for the main text.
-var ol_textfont = "Verdana,Arial,Helvetica";
-
-// CAPTIONFONT - Font face for the caption.
-var ol_captionfont = "Verdana,Arial,Helvetica";
-
-// CLOSEFONT - Font face for the close text.
-var ol_closefont = "Verdana,Arial,Helvetica";
-
-// TEXTSIZE - Font size for the main text.
-var ol_textsize = "1";
-
-// CAPTIONSIZE - Font size for the caption.
-var ol_captionsize = "1";
-
-// CLOSESIZE - Font size for the close text.
-var ol_closesize = "1";
-
-// FGCLASS - Main background class.
-var ol_fgclass = "";
-
-// BGCLASS - Frame background class.
-var ol_bgclass = "";
-
-// CGCLASS - Caption background class.
-var ol_cgclass = "";
-
-// TEXTPADDING - Padding for main text.
-var ol_textpadding = "2";
-
-// TEXTFONTCLASS - Main font class.
-var ol_textfontclass = "";
-
-// CAPTIONPADDING - Padding for caption (including Close text if present).
-var ol_captionpadding = "2";
-
-// CAPTIONFONTCLASS - Caption font class.
-var ol_captionfontclass = "";
-
-// CLOSEFONTCLASS - Close font class.
-var ol_closefontclass = "";
-
-// CLOSECLICK - If the user has to click to close stickies.
-var ol_closeclick = 0;
-
-// CLOSETEXT - Text for the closing sticky popups. Normal is "Close".
-var ol_close = "Close";
-
-// CLOSETITLE - Text to use as value of TITLE attribute for browser-generated TooTips
-// with the "Close" link in captions of stickies when CLOSECLICK is changed to 1;
-var ol_closetitle = "Click to Close";
-
-// Default text for popups
-// Should you forget to pass something to overLIB this will be displayed.
-var ol_text = "Default Text";
-
-// Default caption
-// You should leave this blank or you will have problems making non caps popups.
-var ol_cap = "";
-
-// CAPBELOW - Whether the caption should appear below the main text area. Default is
-// off (0) such that the caption appears above.
-var ol_capbelow=0;
-
-// BACKGROUND - Default background image. Better left empty unless you always want one.
-var ol_background = "";
-
-// WIDTH - Default width of the popups in pixels. 100-300 pixels is typical.
-// This value is simply a suggestion to the browser, which may change the
-// actual width depending on the content.
-var ol_width = "200";
-
-// WRAP - Intended to keep the popup no wider than its content plus normal padding, but
-// to wrap the content if it would exceed the window width, or if it would exceed WRAPMAX
-// when that has been set to a value greater than zero.
-// Overrides the o3_width setting. Default is no wrap (0).
-var ol_wrap = 0;
-
-// WRAPMAX - If set to a value greater than 0, sets the maximum width of the popup, up to
-// the window width, before wrapping occurs when the WRAP command is set.
-var ol_wrapmax = 0;
-
-// HEIGHT - Default height for popup. Often best left alone.
-var ol_height = -1;
-
-// BORDER - How thick the ol_border should be in pixels.
-// 1-3 pixels is typical.
-var ol_border = "1";
-
-// BASE - Any additional thickening of the border's base in pixels.
-var ol_base = "0";
-
-// OFFSETX - How many pixels to the right (positive values) or left (negative values)
-// of the cursor to show the popup. Values between 3 and 12 are best.
-var ol_offsetx = 10;
-
-// OFFSETY - How many pixels below (positive values) or above (negative values) the
-// cursor to show the popup. Values between 3 and 20 are best.
-var ol_offsety = 10;
-
-// STICKY - Decides if sticky popups are default. 0 for non, 1 for stickies.
-var ol_sticky = 0;
-
-// NOFOLLOW - Should non-sticky popups not follow cursor movements (i.e., remain
-// stationary where initially positioned on invocation, like title-based tooltips).
-var ol_nofollow = 0;
-
-// NOCLOSE - Omit Close text in stickies with captions, for all stickies use mouse off
-// after mouse over sticky to close, and cancel any timeout while over sticky.
-var ol_noclose = 0;
-
-// MOUSEOFF - For stickies which do have a caption with a CLOSETEXT, also use mouse off
-// after mouse over sticky to close, and cancel any timeout while over sticky.
-var ol_mouseoff = 0;
-
-// OFFDELAY - Default delay for closing NOCLOSE or MOUSEOFF popups. If a mouse over the
-// sticky occurs during this delay, the close is cancelled.
-var ol_delay = 300;
-
-// RIGHT - Default vertical alignment for popups.
-// It's best to leave RIGHT here. Other options are LEFT and CENTER.
-var ol_hpos = RIGHT;
-
-// BELOW - Default vertical position of the popups.
-// It's best to leave BELOW here. Other options are ABOVE and VCENTER.
-var ol_vpos = BELOW;
-
-// Default status bar text when a popup is invoked.
-var ol_status = "";
-
-// AUTOSTATUS, AUTOSTATUSCAP - If the status bar automatically should load either
-// text or caption. 0=nothing, 1=text, 2=caption
-var ol_autostatus = 0;
-
-// SNAPX - Horizontal grid spacing that popups will snap to.
-// 0 makes no grid, anything else will cause a snap to that grid spacing.
-var ol_snapx = 0;
-
-// SNAPY - Vertical grid spacing that popups will snap to.
-// 0 makes no grid, anything else will cause a snap to that grid spacing.
-var ol_snapy = 0;
-
-// FIXX - Sets the popup horizontal position to a fixed column.
-// Numbers greater than -1 will cause fixed position.
-var ol_fixx = -1;
-
-// FIXY - Sets the popup vertical position to a fixed row.
-// Numbers greater than -1 will cause fixed position.
-var ol_fixy = -1;
-
-// RELX - Sets the popup horizontal position to a column relative to the window display.
-// Anything numeric (non-null) will cause relative position. Positive and 0 is to
-// the right from left window margin for left margin of popup. Negative is to the
-// left from right window margin for right margin of popup.
-var ol_relx = null;
-
-// RELY - Sets the popup vertical position to a row relative to the window display.
-// Anything numeric (non-null) will cause relative position. Positive and 0 is down
-// from top window margin for top margin of popup. Negaive is up from bottom window
-// margin for bottom margin of popup.
-var ol_rely = null;
-
-// MIDX - Sets the popup horizontal midpoint to a column relative to the window horizontal
-// midpoint. Anything numeric (non-null) will cause midpoint position. Positive and
-// 0 is to the right from the window midpoint. Negative is to the left.
-var ol_midx = null;
-
-// MIDY - Sets the popup vertical midpoint to a row relative to the window vertical midpoint.
-// Anything numeric (non-null) will cause midpoint position. Positive and 0 is down from
-// the window midpoint. Negative is up.
-var ol_midy = null;
-
-// REF - The NAME of an anchor or image, or ID of a layer, to serve as a reference object such
-// that a corner of the popup will be positioned relative to a corner of the object.
-var ol_ref = "";
-
-// REFC - Corner of the reference object for positioning.
-// Value can be: 'UL' (Upper Left), 'UR', 'LR', or 'LL'.
-var ol_refc = 'UL';
-
-// REFP - Corner of the popup for positioning.
-// Value can be: 'UL' (Upper Left), 'UR', 'LR', or 'LL'.
-var ol_refp = 'UL';
-
-// REFX - X displacement from the reference point. Positive to the right,
-// negative left.
-var ol_refx = 0;
-
-// REFY - Y displacement from the reference point. Positive down, negative up.
-var ol_refy = 0;
-
-// FGBACKGROUND - Background image for the popup's inside.
-var ol_fgbackground = "";
-
-// BGBACKGROUND - Background image for the popup's frame (border).
-var ol_bgbackground = "";
-
-// CGBACKGROUND - Background image for the caption.
-var ol_cgbackground = "";
-
-// PADX
-// How much horizontal left padding text should get by default when BACKGROUND is used.
-var ol_padxl = 1;
-// How much horizontal right padding text should get by default when BACKGROUND is used.
-var ol_padxr = 1;
-
-// PADY
-// How much vertical top padding text should get by default when BACKGROUND is used.
-var ol_padyt = 1;
-// How much vertical bottom padding text should get by default when BACKGROUND is used.
-var ol_padyb = 1;
-
-// FULLHTML - If the user by default must supply all html for complete control of popup content.
-// Set to 1 to activate, 0 otherwise.
-var ol_fullhtml = 0;
-
-// CAPICON - Default icon to place next to the popups caption.
-var ol_capicon = "";
-
-// FRAME - Default frame. We default to current frame if there is no frame defined.
-var ol_frame = self;
-
-// TIMEOUT - Default timeout. By default there is no timeout.
-var ol_timeout = 0;
-
-// DELAY - Default delay for onset of popup. By default there is no delay.
-var ol_delay = 0;
-
-// HAUTO - If overLIB should decide the horizontal placement.
-var ol_hauto = 0;
-
-// VAUTO - If overLIB should decide the vertical placement.
-var ol_vauto = 0;
-
-// NOJUSTX - If overLIB should let popups overrun the left or right window margins.
-var ol_nojustx = 0;
-
-// NOJUSTY - If overLIB should let popups overrun the top or bottom window margins.
-var ol_nojusty = 0;
-
-// LABEL - A labeling string for the primary popup while it is displayed (visible).
-var ol_label = "";
-
-// DECODE - If overLIB should automatically decode any URL-encoded characters in
-// lead argument and/or caption.
-var ol_decode = "";
-
-////////////////////////////////////////////////////////////////////////////////////
-// ARRAY CONFIGURATION FOR CORE MODULE overlibmws.js
-////////////////////////////////////////////////////////////////////////////////////
-
-// INARRAY - Array with texts.
-var ol_texts = new Array(
- "Text 0",
- "Text 1");
-
-// CAPARRAY - Array with captions.
-var ol_caps = new Array(
- "Caption 0",
- "Caption 1");
-
-////////////////////////////////////////////////////////////////////////////////////
-// END CONFIGURATION FOR overlibmws.js
-////////////////////////////////////////////////////////////////////////////////////
-
-
-////////////////////////////////////////////////////////////////////////////////////
-// DEFAULT CONFIGURATION FOR PLUGIN MODULE overlibmws_bubble.js
-////////////////////////////////////////////////////////////////////////////////////
-
-// BUBBLE - Whether to use a bubble type popup. Default is no (0).
-var ol_bubble = 0;
-
-// BUBBLETYPE - Type of bubble image to use. Default is 'flower'. Other options are
-// 'oval', 'square', 'pushpin', 'quotation', or 'roundedcorners'. Specify directory
-// for images via the last parameter of registerImages() near the top of the plugin
-// module (default value is './').
-var ol_bubbletype = 'flower';
-
-// ADJBUBBLE - Whether to resize the image in relation to the content.
-// Default is no (0).
-var ol_adjbubble = 0;
-
-////////////////////////////////////////////////////////////////////////////////////
-// END CONFIGURATION FOR overlibmws_bubble.js
-////////////////////////////////////////////////////////////////////////////////////
-
-
-////////////////////////////////////////////////////////////////////////////////////
-// DEFAULT CONFIGURATION FOR PLUGIN MODULE overlibmws_crossframe.js
-////////////////////////////////////////////////////////////////////////////////////
-
-You must import this plugin module to use the FRAME command, but its configuration
-variable, ol_frame, is set in the core module.
-
-////////////////////////////////////////////////////////////////////////////////////
-// END CONFIGURATION FOR overlibmws_crossframe.js
-////////////////////////////////////////////////////////////////////////////////////
-
-
-////////////////////////////////////////////////////////////////////////////////////
-// DEFAULT CONFIGURATION FOR PLUGIN MODULE overlibmws_debug.js
-////////////////////////////////////////////////////////////////////////////////////
-
-// ALLOWDEBUG - The ID or a comma-separated list of IDs for debug layers which, if
-// invoked following an overlib call and then made hidden via the close link at
-// upper right, should be made visible again whenever that overlib call occurs.
-var ol_allowdebug = "";
-
-////////////////////////////////////////////////////////////////////////////////////
-// END CONFIGURATION FOR overlibmws_debug.js
-////////////////////////////////////////////////////////////////////////////////////
-
-
-////////////////////////////////////////////////////////////////////////////////////
-// DEFAULT CONFIGURATION FOR PLUGIN MODULE overlibmws_draggable.js
-////////////////////////////////////////////////////////////////////////////////////
-
-// DRAGGABLE - If sticky should be draggable.
-var ol_draggable = 0;
-
-// DRAGCAP - Restrict dragging handle to the caption.
-var ol_dragcap = 0;
-
-// DRAGID - The id of a container div with a CSS class that uses overflow:auto
-// for a DRAGGABLE popup that doesn't have iframe content and doesn't use DRAGCAP.
-var ol_dragid = '';
-
-////////////////////////////////////////////////////////////////////////////////////
-// END CONFIGURATION FOR overlibmws_draggable.js
-////////////////////////////////////////////////////////////////////////////////////
-
-
-////////////////////////////////////////////////////////////////////////////////////
-// DEFAULT CONFIGURATION FOR PLUGIN MODULE overlibmws_exclusive.js
-////////////////////////////////////////////////////////////////////////////////////
-
-// EXCLUSIVE - Decides if a sticky primary popup should be exclusive, such that no other
-// primry popup can be invoked and replace it before the sticky is closed by the user or
-// a timeout (secondary popups can still be invoked from within the exclusive primary).
-var ol_exclusive = 0;
-
-// EXCLUSIVESTATUS - Status line string to use for exclusive stickies
-var ol_exclusivestatus = 'Please act on or close the open popup.';
-
-// EXCLUSIVEOVERRIDE = If a displayed exclusive sticky should be overridden by the
-// current overlib call for a popup.
-var ol_exclusiveoverride=0;
-
-////////////////////////////////////////////////////////////////////////////////////
-// END CONFIGURATION FOR overlibmws_exclusive.js
-////////////////////////////////////////////////////////////////////////////////////
-
-
-////////////////////////////////////////////////////////////////////////////////////
-// DEFAULT CONFIGURATION FOR PLUGIN MODULE overlibmws_filter.js
-////////////////////////////////////////////////////////////////////////////////////
-
-// FILTER - Toggles on the filter feature set for IE v5.5+ browsers. Defualt is off.
-var ol_filter=0;
-
-// FADEIN - Filter type for stylinzed fadein. Value can be 0 - 50 for the 51 types,
-// or 51 (default) for random selections of the type across successive occurrences
-// of the popup.
-var ol_fadein=51;
-
-// FADETIME - Duration of fadein (millisec).
-var ol_fadetime=800;
-
-// FILTEROPACITY - Opacity of entire popup. The higher the number in the range of 1-99,
-// the more more opaque (less transparent) the popup will be. But 0 is handled as
-// equivalent to 100 (no transparency). This feature also is implemented for Mozilla
-// and Netscape v6+ browsers.
-var ol_filteropacity=100;
-
-// FILTERSHADOW - Type of filter-based shadow. Default is off (0).
-// Dropshadow is 1. Shadow (tapers from corners) is 2.
-var ol_filtershadow=0;
-
-// FILTERSHADOWCOLOR - Color of filter-based shadow.
-var ol_filtershadowcolor="#cccccc";
-
-////////////////////////////////////////////////////////////////////////////////////
-// END CONFIGURATION FOR overlibmws_filter.js
-////////////////////////////////////////////////////////////////////////////////////
-
-
-////////////////////////////////////////////////////////////////////////////////////
-// DEFAULT CONFIGURATION FOR PLUGIN MODULE overlibmws_function.js
-////////////////////////////////////////////////////////////////////////////////////
-
-// FUNCTION - Default javascript function. By default there is none.
-var ol_function = null;
-
-////////////////////////////////////////////////////////////////////////////////////
-// END CONFIGURATION FOR overlibmws_function.js
-////////////////////////////////////////////////////////////////////////////////////
-
-
-////////////////////////////////////////////////////////////////////////////////////
-// DEFAULT CONFIGURATION FOR PLUGIN MODULE overlibmws_hide.js
-////////////////////////////////////////////////////////////////////////////////////
-
-// HIDESELECTBOXES - Whether to hide any select boxes which overlap the popup
-// while the popup is being displayed.
-var ol_hideselectboxes=0;
-
-// HIDEBYID - An id or comma-separated list of id's to be hidden while the popup
-// is displayed. Is intended for form elements and is ignored for any browsers
-// using HIDESELECTBOXES and for Opera v7+.
-var ol_hidebyid='';
-
-// HIDEBYIDALL - An id or comma=separated list of id's to be hidden while the popup
-// is displayed. Is intended for non-form elements with system controls, e.g.,
-// flash objects and applets.
-var ol_hidebyidall='';
-
-// HIDEBYIDNS4 - An id or comma-separated list of id's for positioned div's to be
-// hidden while the popup is being displayed by Netscape v4.x browsers.
-var ol_hidebyidns4='';
-
-////////////////////////////////////////////////////////////////////////////////////
-// END CONFIGURATION FOR overlibmws_hide.js
-////////////////////////////////////////////////////////////////////////////////////
-
-
-////////////////////////////////////////////////////////////////////////////////////
-// DEFAULT CONFIGURATION FOR PLUGIN MODULE overlibmws_modal.js
-////////////////////////////////////////////////////////////////////////////////////
-
-// MODAL - Whether to make the popup modal (block access to any other items in the
-// document via a shield until the popup is acted upon and closed).
-var ol_modal = 0;
-
-// MODALCOLOR - The color of the modal shield.
-var ol_modalcolor = '#bbbbbb';
-
-// MODALOPACITY - The opacity of the modal shield.
-var ol_modalopacity = 40;
-
-////////////////////////////////////////////////////////////////////////////////////
-// END CONFIGURATION FOR overlibmws_overtwo.js
-////////////////////////////////////////////////////////////////////////////////////
-
-
-////////////////////////////////////////////////////////////////////////////////////
-// DEFAULT CONFIGURATION FOR PLUGIN MODULE overlibmws_overtwo.js
-////////////////////////////////////////////////////////////////////////////////////
-
-// LABEL - A labeling string for the secondary popup while it is displayed (visible).
-var ol_label = "";
-
-////////////////////////////////////////////////////////////////////////////////////
-// END CONFIGURATION FOR overlibmws_overtwo.js
-////////////////////////////////////////////////////////////////////////////////////
-
-
-////////////////////////////////////////////////////////////////////////////////////
-// DEFAULT CONFIGURATION FOR PLUGIN MODULE overlibmws_print.js
-////////////////////////////////////////////////////////////////////////////////////
-
-// PRINT - Whether sticky should include a Print link or button.
-var ol_print = 0;
-
-// PRINTBUTTON - Whether to use button in main text area even if caption area is present.
-var ol_printbutton=0;
-
-// NOAUTOPRINT - Whether to block automatic printing and deletion of temporary printing window.
-var ol_noautoprint=0;
-
-// PRINTCOLOR - Color of "Print" link in caption area of sticky.
-var ol_printcolor="#eeeeff";
-
-// PRINTFONT - Font face for the print text.
-var ol_printfont="Verdana,Arial,Helvetica";
-
-// PRINTSIZE - Font size for the print text.
-var ol_printsize=1;
-
-// PRINTTEXT - Text for the sticky popup print link. Normal is "Print".
-var ol_printtext='Print';
-
-// PRINTBUTTONTEXT - Text for the sticky popup print button. Normal is "Print".
-var ol_printbuttontext='Print';
-
-// PRINTTITLE - Text to use as value of TITLE attribute for browser-generated TooTips
-// with the "Print" link in captions of stickies or "Print" button in main text area.
-var ol_printtitle="Click to Print";
-
-// PRINTFONTCLASS - Print font class.
-var ol_printfontclass="";
-
-// PRINTCSSFILE - URL for .ccs file with CSS rules for styling the popup.
-var ol_printcssfile="";
-
-// PRINTXML - String for (optional) xml tag for temporary printing window.
-var ol_printxml="";
-
-// PRINTDOCTYPE - String for DOCTYPE declaration for temporary printing window.
-var ol_printdoctype=
- '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" '
-+'"http://www.w3.org/TR/html4/loose.dtd">';
-
-// PRINTROOT - String for root tag for temporary printing window.
-var ol_printroot="<html>";
-
-// PRINTTYPE - String for MIME type for temporary printing window.
-var ol_printtype="text/html";
-
-// PRINTCHARSET - String for charset for temporary printing window.
-var ol_printcharset="iso-8859-1";
-
-// PRINTURL - URL for a document to be printed via the temporary printing window.
-var ol_printurl="";
-
-// PRINTJOB - string for an external function to be used for the temporary printing window.
-var ol_printjob="";
-
-////////////////////////////////////////////////////////////////////////////////////
-// END CONFIGURATION FOR overlibmws_print.js
-////////////////////////////////////////////////////////////////////////////////////
-
-
-////////////////////////////////////////////////////////////////////////////////////
-// DEFAULT CONFIGURATION FOR PLUGIN MODULE overlibmws_scroll.js
-////////////////////////////////////////////////////////////////////////////////////
-
-// SCROLL - Whether sticky should scroll with the document when positioned via
-// RELX or MIDX, and RELY or MIDY.
-var ol_scroll = 0;
-
-////////////////////////////////////////////////////////////////////////////////////
-// END CONFIGURATION FOR overlibmws_scroll.js
-////////////////////////////////////////////////////////////////////////////////////
-
-
-////////////////////////////////////////////////////////////////////////////////////
-// DEFAULT CONFIGURATION FOR PLUGIN MODULE overlibmws_shadow.js
-////////////////////////////////////////////////////////////////////////////////////
-
-// SHADOW - Whether to add a dropshadow. Default is no (0).
-var ol_shadow = 0;
-
-// SHADOWX - Horizontal dropshadow displacement in pixels.
-// Positive is to the right and negative is to the left.
-var ol_shadowx = 5;
-
-// SHADOWY - Vertical dropshadow displacement in pixels.
-// Positive is downward and negative is upward.
-var ol_shadowy = 5;
-
-// SHADOWCOLOR - Dropshadow color.
-var ol_shadowcolor = "#666666";
-
-// SHADOWIMAGE - Dropshadow background image. Default is none.
-var ol_shadowimage = "";
-
-// SHADOWOPACITY - Dropshadow opacity (100 is solid; 0 turns off this feature and
-// thus also yields a solid shadow). Default is 60.
-var ol_shadowopacity = 60;
-
-////////////////////////////////////////////////////////////////////////////////////
-// END CONFIGURATION FOR overlibmws_shadow.js
-////////////////////////////////////////////////////////////////////////////////////
-
diff --git a/src/extras/sos-html-logs/share/html/overlib/overlibmws.js b/src/extras/sos-html-logs/share/html/overlib/overlibmws.js
deleted file mode 100644
index 454a306a..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/overlibmws.js
+++ /dev/null
@@ -1,666 +0,0 @@
-/*
- Do not remove or change this notice.
- overlibmws.js core module - Copyright Foteos Macrides 2002-2007. All rights reserved.
- Initial: August 18, 2002 - Last Revised: October 8, 2007
- This module is subject to the same terms of usage as for Erik Bosrup's overLIB,
- though only a minority of the code and API now correspond with Erik's version.
- See the overlibmws Change History and Command Reference via:
-
- http://www.macridesweb.com/oltest/
-
- Published under an open source license: http://www.macridesweb.com/oltest/license.html
- Give credit on sites that use overlibmws and submit changes so others can use them as well.
- You can get Erik's version via: http://www.bosrup.com/web/overlib/
-*/
-
-// PRE-INIT -- Ignore these lines, configuration is below.
-var OLloaded=0,pmCnt=1,pMtr=new Array(),OLcmdLine=new Array(),OLrunTime=new Array(),OLv,OLudf,
-OLpct=new Array("83%","67%","83%","100%","117%","150%","200%","267%"),OLrefXY,OLbubblePI=0,
-OLcrossframePI=0,OLdebugPI=0,OLdraggablePI=0,OLexclusivePI=0,OLfilterPI=0,OLfunctionPI=0,
-OLhidePI=0,OLiframePI=0,OLmodalPI=0,OLovertwoPI=0,OLscrollPI=0,OLshadowPI=0,OLprintPI=0;
-if(typeof OLgateOK=='undefined')var OLgateOK=1;
-var OLp1or2c='inarray,caparray,caption,closetext,right,left,center,autostatuscap,padx,pady,'
-+'below,above,vcenter,donothing',OLp1or2co='nofollow,background,offsetx,offsety,fgcolor,'
-+'bgcolor,cgcolor,textcolor,capcolor,width,wrap,wrapmax,height,border,base,status,autostatus,'
-+'snapx,snapy,fixx,fixy,relx,rely,midx,midy,ref,refc,refp,refx,refy,fgbackground,bgbackground,'
-+'cgbackground,fullhtml,capicon,textfont,captionfont,textsize,captionsize,timeout,delay,hauto,'
-+'vauto,nojustx,nojusty,fgclass,bgclass,cgclass,capbelow,textpadding,textfontclass,'
-+'captionpadding,captionfontclass,sticky,noclose,mouseoff,offdelay,closecolor,closefont,'
-+'closesize,closeclick,closetitle,closefontclass,decode',OLp1or2o='text,cap,close,hpos,vpos,'
-+'padxl,padxr,padyt,padyb',OLp1co='label',OLp1or2=OLp1or2co+','+OLp1or2o,OLp1=OLp1co+','+'frame';
-OLregCmds(OLp1or2c+','+OLp1or2co+','+OLp1co);
-function OLud(v){return eval('typeof ol_'+v+'=="undefined"')?1:0;}
-
-// DEFAULT CONFIGURATION -- See overlibConfig.txt for descriptions
-if(OLud('fgcolor'))var ol_fgcolor="#ccccff";
-if(OLud('bgcolor'))var ol_bgcolor="#333399";
-if(OLud('cgcolor'))var ol_cgcolor="#333399";
-if(OLud('textcolor'))var ol_textcolor="#000000";
-if(OLud('capcolor'))var ol_capcolor="#ffffff";
-if(OLud('closecolor'))var ol_closecolor="#eeeeff";
-if(OLud('textfont'))var ol_textfont="Verdana,Arial,Helvetica";
-if(OLud('captionfont'))var ol_captionfont="Verdana,Arial,Helvetica";
-if(OLud('closefont'))var ol_closefont="Verdana,Arial,Helvetica";
-if(OLud('textsize'))var ol_textsize=1;
-if(OLud('captionsize'))var ol_captionsize=1;
-if(OLud('closesize'))var ol_closesize=1;
-if(OLud('fgclass'))var ol_fgclass="";
-if(OLud('bgclass'))var ol_bgclass="";
-if(OLud('cgclass'))var ol_cgclass="";
-if(OLud('textpadding'))var ol_textpadding=2;
-if(OLud('textfontclass'))var ol_textfontclass="";
-if(OLud('captionpadding'))var ol_captionpadding=2;
-if(OLud('captionfontclass'))var ol_captionfontclass="";
-if(OLud('closefontclass'))var ol_closefontclass="";
-if(OLud('close'))var ol_close="Close";
-if(OLud('closeclick'))var ol_closeclick=0;
-if(OLud('closetitle'))var ol_closetitle="Click to Close";
-if(OLud('text'))var ol_text="Default Text";
-if(OLud('cap'))var ol_cap="";
-if(OLud('capbelow'))var ol_capbelow=0;
-if(OLud('background'))var ol_background="";
-if(OLud('width'))var ol_width=200;
-if(OLud('wrap'))var ol_wrap=0;
-if(OLud('wrapmax'))var ol_wrapmax=0;
-if(OLud('height'))var ol_height= -1;
-if(OLud('border'))var ol_border=1;
-if(OLud('base'))var ol_base=0;
-if(OLud('offsetx'))var ol_offsetx=10;
-if(OLud('offsety'))var ol_offsety=10;
-if(OLud('sticky'))var ol_sticky=0;
-if(OLud('nofollow'))var ol_nofollow=0;
-if(OLud('noclose'))var ol_noclose=0;
-if(OLud('mouseoff'))var ol_mouseoff=0;
-if(OLud('offdelay'))var ol_offdelay=300;
-if(OLud('hpos'))var ol_hpos=RIGHT;
-if(OLud('vpos'))var ol_vpos=BELOW;
-if(OLud('status'))var ol_status="";
-if(OLud('autostatus'))var ol_autostatus=0;
-if(OLud('snapx'))var ol_snapx=0;
-if(OLud('snapy'))var ol_snapy=0;
-if(OLud('fixx'))var ol_fixx= -1;
-if(OLud('fixy'))var ol_fixy= -1;
-if(OLud('relx'))var ol_relx=null;
-if(OLud('rely'))var ol_rely=null;
-if(OLud('midx'))var ol_midx=null;
-if(OLud('midy'))var ol_midy=null;
-if(OLud('ref'))var ol_ref="";
-if(OLud('refc'))var ol_refc='UL';
-if(OLud('refp'))var ol_refp='UL';
-if(OLud('refx'))var ol_refx=0;
-if(OLud('refy'))var ol_refy=0;
-if(OLud('fgbackground'))var ol_fgbackground="";
-if(OLud('bgbackground'))var ol_bgbackground="";
-if(OLud('cgbackground'))var ol_cgbackground="";
-if(OLud('padxl'))var ol_padxl=1;
-if(OLud('padxr'))var ol_padxr=1;
-if(OLud('padyt'))var ol_padyt=1;
-if(OLud('padyb'))var ol_padyb=1;
-if(OLud('fullhtml'))var ol_fullhtml=0;
-if(OLud('capicon'))var ol_capicon="";
-if(OLud('frame'))var ol_frame=self;
-if(OLud('timeout'))var ol_timeout=0;
-if(OLud('delay'))var ol_delay=0;
-if(OLud('hauto'))var ol_hauto=0;
-if(OLud('vauto'))var ol_vauto=0;
-if(OLud('nojustx'))var ol_nojustx=0;
-if(OLud('nojusty'))var ol_nojusty=0;
-if(OLud('label'))var ol_label="";
-if(OLud('decode'))var ol_decode=0;
-// ARRAY CONFIGURATION - See overlibConfig.txt for descriptions.
-if(OLud('texts'))var ol_texts=new Array("Text 0","Text 1");
-if(OLud('caps'))var ol_caps=new Array("Caption 0","Caption 1");
-// END CONFIGURATION -- Don't change anything below, all configuration is above.
-
-// INIT -- Runtime variables.
-var o3_text="",o3_cap="",o3_sticky=0,o3_nofollow=0,o3_background="",o3_noclose=0,o3_mouseoff=0,
-o3_offdelay=300,o3_hpos=RIGHT,o3_offsetx=10,o3_offsety=10,o3_fgcolor="",o3_bgcolor="",
-o3_cgcolor="",o3_textcolor="",o3_capcolor="",o3_closecolor="",o3_width=200,o3_wrap=0,
-o3_wrapmax=0,o3_height= -1,o3_border=1,o3_base=0,o3_status="",o3_autostatus=0,o3_snapx=0,
-o3_snapy=0,o3_fixx= -1,o3_fixy= -1,o3_relx=null,o3_rely=null,o3_midx=null,o3_midy=null,o3_ref="",
-o3_refc='UL',o3_refp='UL',o3_refx=0,o3_refy=0,o3_fgbackground="",o3_bgbackground="",
-o3_cgbackground="",o3_padxl=0,o3_padxr=0,o3_padyt=0,o3_padyb=0,o3_fullhtml=0,o3_vpos=BELOW,
-o3_capicon="",o3_textfont="Verdana,Arial,Helvetica",o3_captionfont="",o3_closefont="",
-o3_textsize=1,o3_captionsize=1,o3_closesize=1,o3_frame=self,o3_timeout=0,o3_delay=0,o3_hauto=0,
-o3_vauto=0,o3_nojustx=0,o3_nojusty=0,o3_close="",o3_closeclick=0,o3_closetitle="",o3_fgclass="",
-o3_bgclass="",o3_cgclass="",o3_textpadding=2,o3_textfontclass="",o3_captionpadding=2,
-o3_captionfontclass="",o3_closefontclass="",o3_capbelow=0,o3_label="",o3_decode=0,
-CSSOFF=DONOTHING,CSSCLASS=DONOTHING,OLdelayid=0,OLtimerid=0,OLshowid=0,OLndt=0,over=null,
-OLfnRef="",OLhover=0,OLx=0,OLy=0,OLshowingsticky=0,OLallowmove=0,OLcC=null,
-OLua=(OLv=navigator.userAgent)?OLv.toLowerCase():'',
-OLns4=(navigator.appName=='Netscape'&&parseInt(navigator.appVersion)==4)?1:0,
-OLns6=(document.getElementById)?1:0,
-OLie4=(document.all)?1:0,
-OLgek=(OLv=OLua.match(/gecko\/(\d{8})/i))?parseInt(OLv[1]):0,
-OLmac=(OLua.indexOf('mac')>=0)?1:0,
-OLsaf=(OLua.indexOf('safari')>=0)?1:0,
-OLkon=(OLua.indexOf('konqueror')>=0)?1:0,
-OLkht=(OLsaf||OLkon)?1:0,
-OLopr=(OLua.indexOf('opera')>=0)?1:0,
-OLop7=(OLopr&&document.createTextNode)?1:0;
-if(OLopr){OLns4=OLns6=OLgek=0;if(!OLop7)OLie4=0;}
-var OLieM=((OLie4&&OLmac)&&!(OLkht||OLopr))?1:0,
-OLie5=0,OLie55=0;OLie7=0;if(OLie4&&!OLop7){
-if((OLv=OLua.match(/msie (\d\.\d+)\.*/i))&&(OLv=parseFloat(OLv[1]))>=5.0){
-OLie5=1;OLns6=0;if(OLv>=5.5)OLie55=1;if(OLv>=7.0)OLie7=1;}if(OLns6)OLie4=0;}
-if(OLns4)window.onresize=function(){location.reload();};var OLchkMh=1,OLdw;
-if(OLns4||OLie4||OLns6){OLmh();if(window.addEventListener)window.addEventListener("unload",
-OLulCl,false);}else{overlib=nd=cClick=OLpageDefaults=no_overlib;}
-function OLulCl(){if(over)cClick();window.removeEventListener("unload",OLulCl,false);}
-
-/*
- PUBLIC FUNCTIONS
-*/
-// Loads defaults then args into runtime variables.
-function overlib(){
-if(!(OLloaded&&OLgateOK))return;if((OLexclusivePI)&&OLisExclusive(arguments))return true;
-if(OLchkMh)OLmh();if(OLndt&&!OLtimerid)OLndt=0;if(over)cClick();OLload(OLp1or2);OLload(OLp1);
-OLfnRef="";OLhover=0;OLsetRunTimeVar();OLparseTokens('o3_',arguments);
-if(!(over=OLmkLyr()))return false;if(o3_decode)OLdecode();if(OLprintPI)OLchkPrint();
-if(OLbubblePI)OLchkForBubbleEffect();if(OLdebugPI)OLsetDebugCanShow();
-if(OLshadowPI)OLinitShadow();if(OLiframePI)OLinitIfs();if(OLfilterPI)OLinitFilterLyr();
-if(OLexclusivePI&&o3_exclusive&&o3_exclusivestatus!="")o3_status=o3_exclusivestatus;
-else if(o3_autostatus==2&&o3_cap!="")o3_status=o3_cap;
-else if(o3_autostatus==1&&o3_text!="")o3_status=o3_text;if(!o3_delay){return OLmain();
-}else{OLdelayid=setTimeout("OLmain()",o3_delay);if(o3_status!=""){self.status=o3_status;
-return true;}else if(!(OLop7&&event&&event.type=='mouseover'))return false;}
-}
-
-// Clears popups if appropriate
-function nd(time){
-if(OLloaded&&OLgateOK){if(!((OLexclusivePI)&&OLisExclusive())){if(time&&over&&!o3_delay){
-if(OLtimerid>0)clearTimeout(OLtimerid);OLtimerid=(OLhover&&o3_frame==self&&!OLcursorOff())?0:
-setTimeout("cClick()",(o3_timeout=OLndt=time));}else{if(!OLshowingsticky){OLallowmove=0;
-if(over)OLhideObject(over);}}}}return false;
-}
-
-// Close function for stickies
-function cClick(){
-if(OLloaded&&OLgateOK){OLhover=0;if(over){if(OLovertwoPI&&over==over2)cClick2();
-OLhideObject(over);OLshowingsticky=0;}if(OLmodalPI)OLclearModal();}return false;
-}
-
-// Sets page-specific defaults.
-function OLpageDefaults(){
-OLparseTokens('ol_',arguments);
-}
-
-// Gets object referenced by its id or name
-function OLgetRef(l,d){var r=OLgetRefById(l,d);return (r)?r:OLgetRefByName(l,d);}
-
-// For unsupported browsers.
-function no_overlib(){return false;}
-
-/*
- OVERLIB MAIN FUNCTION SET
-*/
-function OLmain(){
-o3_delay=0;
-if(o3_frame==self){if(o3_noclose)OLoptMOUSEOFF(0);else if(o3_mouseoff)OLoptMOUSEOFF(1);}
-if(o3_sticky)OLshowingsticky=1;OLdoLyr();OLallowmove=0;if(o3_timeout>0){
-if(OLtimerid>0)clearTimeout(OLtimerid);OLtimerid=setTimeout("cClick()",o3_timeout);}
-if(o3_ref){OLrefXY=OLgetRefXY(o3_ref);if(OLrefXY[0]==null){o3_ref="";o3_midx=0;o3_midy=0;}}
-OLdisp(o3_status);if(OLdraggablePI)OLcheckDrag();
-if(o3_status!="")return true;else if(!(OLop7&&event&&event.type=='mouseover'))return false;
-}
-
-// Loads o3_ variables
-function OLload(c){var i,m=c.split(',');for(i=0;i<m.length;i++)eval('o3_'+m[i]+'=ol_'+m[i]);}
-
-// Chooses LGF
-function OLdoLGF(){
-return (o3_background!=''||o3_fullhtml)?OLcontentBackground(o3_text,o3_background,o3_fullhtml):
-(o3_cap=="")?OLcontentSimple(o3_text):
-(o3_sticky)?OLcontentCaption(o3_text,o3_cap,o3_close):OLcontentCaption(o3_text,o3_cap,'');
-}
-
-// Makes Layer
-function OLmkLyr(id,f,z){
-id=(id||'overDiv');f=(f||o3_frame);z=(z||1000);var fd=f.document,d=OLgetRefById(id,fd);
-if(!d){if(OLns4)d=fd.layers[id]=new Layer(1024,f);else if(OLie4&&!document.getElementById){
-fd.body.insertAdjacentHTML('BeforeEnd','<div id="'+id+'"></div>');d=fd.all[id];
-}else{d=fd.createElement('div');if(d){d.id=id;fd.body.appendChild(d);}}if(!d)return null;
-if(OLns4)d.zIndex=z;else{var o=d.style;o.position='absolute';o.visibility='hidden';o.zIndex=z;}}
-return d;
-}
-
-// Creates and writes layer content
-function OLdoLyr(){
-if(o3_sticky&&OLtimerid>0){clearTimeout(OLtimerid);OLtimerid=0;}
-if(o3_background==''&&!o3_fullhtml){
-if(o3_fgbackground!='')o3_fgbackground=' background="'+o3_fgbackground+'"';
-if(o3_bgbackground!='')o3_bgbackground=' background="'+o3_bgbackground+'"';
-if(o3_cgbackground!='')o3_cgbackground=' background="'+o3_cgbackground+'"';
-if(o3_fgcolor!='')o3_fgcolor=' bgcolor="'+o3_fgcolor+'"';
-if(o3_bgcolor!='')o3_bgcolor=' bgcolor="'+o3_bgcolor+'"';
-if(o3_cgcolor!='')o3_cgcolor=' bgcolor="'+o3_cgcolor+'"';
-if(o3_height>0)o3_height=' height="'+o3_height+'"';else o3_height='';}
-if(!OLns4)OLrepositionTo(over,(OLns6?20:0),0);var lyrHtml=OLdoLGF();
-if(o3_wrap&&!o3_fullhtml){OLlayerWrite(lyrHtml);
-o3_width=(OLns4?over.clip.width:over.offsetWidth);if(OLie4){var w=OLfd().clientWidth;
-if(o3_width>=w){if(OLop7){if(OLovertwoPI&&over==over2){var z=over2.style.zIndex;
-o3_frame.document.body.removeChild(over);over2=OLmkLyr('overDiv2',o3_frame,z);over=over2;
-}else{o3_frame.document.body.removeChild(over);over=OLmkLyr();}}o3_width=w-20;}}
-if(o3_wrapmax<1&&o3_frame.innerWidth)o3_wrapmax=o3_frame.innerWidth-40;
-if(o3_wrapmax>0&&o3_width>o3_wrapmax)o3_width=o3_wrapmax;o3_wrap=0;lyrHtml=OLdoLGF();}
-OLlayerWrite(lyrHtml);o3_width=(OLns4?over.clip.width:over.offsetWidth);
-if(OLbubblePI)OLgenerateBubble(lyrHtml);
-}
-
-/*
- LAYER GENERATION FUNCTIONS
-*/
-// Makes simple table without caption
-function OLcontentSimple(txt){
-var t=OLbgLGF()+OLfgLGF(txt)+OLbaseLGF();OLsetBackground('');return t;
-}
-
-// Makes table with caption and optional close link
-function OLcontentCaption(txt,title,close){
-var closing=(OLprintPI?OLprintCapLGF():''),closeevent='onmouseover',caption,t,
-cC='javascript:return '+OLfnRef+(OLovertwoPI&&over==over2?'cClick2();':'cClick();');
-if(o3_closeclick)closeevent=(o3_closetitle?'title="'+o3_closetitle+'" ':'')+'onclick';
-if(o3_capicon!=''&&o3_capicon.indexOf('<img')!=0)o3_capicon='<img src="'+o3_capicon+'" /> ';
-if(close){closing+='<td align="right"><a href="'+cC+'" '+closeevent+'="'+cC+'"'
-+(o3_closefontclass?' class="'+o3_closefontclass+'">':(OLns4?'><':'')
-+OLlgfUtil(0,1,'','a',o3_closecolor,o3_closefont,o3_closesize))+close+
-(o3_closefontclass?'':(OLns4?OLlgfUtil(1,1,'','a'):''))+'</a></td>';}
-caption='<table id="overCap'+(OLovertwoPI&&over==over2?'2':'')+'"'+OLwd(0)
-+' border="0" cellpadding="'+o3_captionpadding+'" cellspacing="0"'+(o3_cgclass?' class="'
-+o3_cgclass+'"':o3_cgcolor+o3_cgbackground)+'><tr><td'+OLwd(0)+(o3_cgclass?' class="'
-+o3_cgclass+'">':'>')+(o3_captionfontclass?'<div class="'+o3_captionfontclass
-+'">':OLlgfUtil(0,1,'','div',o3_capcolor,o3_captionfont,o3_captionsize))+o3_capicon+title
-+OLlgfUtil(1,1,'','div')+'</td>'+closing+'</tr></table>';
-t=OLbgLGF()+(o3_capbelow?OLfgLGF(txt)+caption:caption+OLfgLGF(txt))+OLbaseLGF();
-OLsetBackground('');return t;
-}
-
-// For BACKGROUND and FULLHTML commands
-function OLcontentBackground(txt,image,hasfullhtml){
-var t;if(hasfullhtml){t=txt;}else{t='<table'+OLwd(1)+' 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"'+OLwd(2)+'>'
-+OLlgfUtil(0,0,o3_textfontclass,'div',o3_textcolor,o3_textfont,o3_textsize)+txt+
-OLlgfUtil(1,0,'','div')+'</td><td width="'+o3_padxr+'"></td></tr><tr><td colspan="3" height="'
-+o3_padyb+'"></td></tr></table>';}OLsetBackground(image);return t;
-}
-
-// LGF utilities
-function OLbgLGF(){
-return '<table'+OLwd(1)+o3_height+' border="0" cellpadding="'+o3_border+'" cellspacing="0"'
-+(o3_bgclass?' class="'+o3_bgclass+'"':o3_bgcolor+o3_bgbackground)+'><tr><td>';
-}
-function OLfgLGF(t){
-return '<table'+OLwd(0)+o3_height+' border="0" cellpadding="'+o3_textpadding
-+'" cellspacing="0"'+(o3_fgclass?' class="'+o3_fgclass+'"':o3_fgcolor+o3_fgbackground)
-+'><tr><td valign="top"'+(o3_fgclass?' class="'+o3_fgclass+'"':'')+'>'
-+OLlgfUtil(0,0,o3_textfontclass,'div',o3_textcolor,o3_textfont,o3_textsize)+t
-+(OLprintPI?OLprintFgLGF():'')+OLlgfUtil(1,0,'','div')+'</td></tr></table>';
-}
-function OLlgfUtil(end,stg,tfc,ele,col,fac,siz){
-if(end)return('</'+(OLns4?'font'+(stg?'></strong':''):ele)+'>');
-else return(tfc?'<div class="'+tfc+'">':((ele=='a'?'':'<')+(OLns4?(stg?'strong><':'')
-+'font color="'+col+'" face="'+OLquoteMultiNameFonts(fac)+'" size="'+siz:(ele=='a'?'':ele)
-+' style="color:'+col+(stg?';font-weight:bold':'')+';font-family:'+OLquoteMultiNameFonts(fac)
-+';font-size:'+siz+';'+(ele=='span'?'text-decoration:underline;':''))+'">'));
-}
-function OLquoteMultiNameFonts(f){
-var i,v,pM=f.split(',');
-for(i=0;i<pM.length;i++){v=pM[i];v=v.replace(/^\s+/,'').replace(/\s+$/,'');
-if(/\s/.test(v) && !/['"]/.test(v)){v="\'"+v+"\'";pM[i]=v;}}return pM.join();
-}
-function OLbaseLGF(){
-return ((o3_base>0&&!o3_wrap)?('<table width="100%" border="0" cellpadding="0" cellspacing="0"'
-+(o3_bgclass?' class="'+o3_bgclass+'"':'')+'><tr><td height="'+o3_base
-+'"></td></tr></table>'):'')+'</td></tr></table>';
-}
-function OLwd(a){
-return(o3_wrap?'':' width="'+(!a?'100%':(a==1?o3_width:(o3_width-o3_padxl-o3_padxr)))+'"');
-}
-
-// Loads image into the div.
-function OLsetBackground(i){
-if(i==''){if(OLns4)over.background.src=null;else{if(OLns6)over.style.width='';
-over.style.backgroundImage='none';}}else{if(OLns4)over.background.src=i;else{
-if(OLns6)over.style.width=o3_width+'px';over.style.backgroundImage='url('+i+')';}}
-}
-
-/*
- HANDLING FUNCTIONS
-*/
-// Displays layer
-function OLdisp(s){
-if(OLmodalPI)OLchkModal();if(!OLallowmove){if(OLshadowPI)OLdispShadow();
-if(OLiframePI)OLdispIfs();OLplaceLayer();if(OLndt)OLshowObject(over);
-else OLshowid=setTimeout("OLshowObject(over)",1);
-OLallowmove=(o3_sticky||o3_nofollow)?0:1;}OLndt=0;if(s!="")self.status=s;
-}
-
-// Decides placement of layer.
-function OLplaceLayer(){
-var snp,X,Y,pgLeft,pgTop,pWd=o3_width,pHt,iWd=100,iHt=100,SB=0,LM=0,CX=0,TM=0,BM=0,CY=0,
-o=OLfd(),nsb=(OLgek>=20010505&&!o3_frame.scrollbars.visible)?1:0;
-if(!OLkht&&o&&o.clientWidth)iWd=o.clientWidth;
-else if(o3_frame.innerWidth){SB=Math.ceil(1.4*(o3_frame.outerWidth-o3_frame.innerWidth));
-if(SB>20)SB=20;iWd=o3_frame.innerWidth;}
-pgLeft=(OLie4)?o.scrollLeft:o3_frame.pageXOffset;
-if(OLie55&&OLfilterPI&&o3_filter&&o3_filtershadow)SB=CX=5;else
-if((OLshadowPI)&&bkdrop&&o3_shadow&&o3_shadowx){SB+=((o3_shadowx>0)?o3_shadowx:0);
-LM=((o3_shadowx<0)?Math.abs(o3_shadowx):0);CX=Math.abs(o3_shadowx);}
-if(o3_ref!=""||o3_fixx> -1||o3_relx!=null||o3_midx!=null){
-if(o3_ref!=""){X=OLrefXY[0];if(OLie55&&OLfilterPI&&o3_filter&&o3_filtershadow){
-if(o3_refp=='UR'||o3_refp=='LR')X-=5;}
-else if((OLshadowPI)&&bkdrop&&o3_shadow&&o3_shadowx){
-if(o3_shadowx<0&&(o3_refp=='UL'||o3_refp=='LL'))X-=o3_shadowx;else
-if(o3_shadowx>0&&(o3_refp=='UR'||o3_refp=='LR'))X-=o3_shadowx;}
-}else{if(o3_midx!=null){
-X=parseInt(pgLeft+((iWd-pWd-SB-LM)/2)+o3_midx);
-}else{if(o3_relx!=null){
-if(o3_relx>=0)X=pgLeft+o3_relx+LM;else X=pgLeft+o3_relx+iWd-pWd-SB;
-}else{X=o3_fixx+LM;}}}
-}else{
-if(o3_hauto){
-if(o3_hpos==LEFT&&OLx-pgLeft<iWd/2&&OLx-pWd-o3_offsetx<pgLeft+LM)o3_hpos=RIGHT;else
-if(o3_hpos==RIGHT&&OLx-pgLeft>iWd/2&&OLx+pWd+o3_offsetx>pgLeft+iWd-SB)o3_hpos=LEFT;}
-X=(o3_hpos==CENTER)?parseInt(OLx-((pWd+CX)/2)+o3_offsetx):
-(o3_hpos==LEFT)?OLx-o3_offsetx-pWd:OLx+o3_offsetx;
-if(o3_snapx>1){
-snp=X % o3_snapx;
-if(o3_hpos==LEFT){X=X-(o3_snapx+snp);}else{X=X+(o3_snapx-snp);}}}
-if(!o3_nojustx&&X+pWd>pgLeft+iWd-SB)
-X=iWd+pgLeft-pWd-SB;if(!o3_nojustx&&X-LM<pgLeft)X=pgLeft+LM;
-pgTop=OLie4?o.scrollTop:o3_frame.pageYOffset;
-if(!OLkht&&!nsb&&o&&o.clientHeight)iHt=o.clientHeight;
-else if(o3_frame.innerHeight)iHt=o3_frame.innerHeight;
-if(OLbubblePI&&o3_bubble)pHt=OLbubbleHt;else pHt=OLns4?over.clip.height:over.offsetHeight;
-if((OLshadowPI)&&bkdrop&&o3_shadow&&o3_shadowy){TM=(o3_shadowy<0)?Math.abs(o3_shadowy):0;
-if(OLie55&&OLfilterPI&&o3_filter&&o3_filtershadow)BM=CY=5;else
-BM=(o3_shadowy>0)?o3_shadowy:0;CY=Math.abs(o3_shadowy);}
-if(o3_ref!=""||o3_fixy> -1||o3_rely!=null||o3_midy!=null){
-if(o3_ref!=""){Y=OLrefXY[1];if(OLie55&&OLfilterPI&&o3_filter&&o3_filtershadow){
-if(o3_refp=='LL'||o3_refp=='LR')Y-=5;}else if((OLshadowPI)&&bkdrop&&o3_shadow&&o3_shadowy){
-if(o3_shadowy<0&&(o3_refp=='UL'||o3_refp=='UR'))Y-=o3_shadowy;else
-if(o3_shadowy>0&&(o3_refp=='LL'||o3_refp=='LR'))Y-=o3_shadowy;}
-}else{if(o3_midy!=null){
-Y=parseInt(pgTop+((iHt-pHt-CY)/2)+o3_midy);
-}else{if(o3_rely!=null){
-if(o3_rely>=0)Y=pgTop+o3_rely+TM;else Y=pgTop+o3_rely+iHt-pHt-BM;}else{
-Y=o3_fixy+TM;}}}
-}else{
-if(o3_vauto){
-if(o3_vpos==ABOVE&&OLy-pgTop<iHt/2&&OLy-pHt-o3_offsety<pgTop)o3_vpos=BELOW;else
-if(o3_vpos==BELOW&&OLy-pgTop>iHt/2&&OLy+pHt+o3_offsety+((OLns4||OLkht)?17:0)>pgTop+iHt-BM)
-o3_vpos=ABOVE;}Y=(o3_vpos==VCENTER)?parseInt(OLy-((pHt+CY)/2)+o3_offsety):
-(o3_vpos==ABOVE)?OLy-(pHt+o3_offsety+BM):OLy+o3_offsety+TM;
-if(o3_snapy>1){
-snp=Y % o3_snapy;
-if(pHt>0&&o3_vpos==ABOVE){Y=Y-(o3_snapy+snp);}else{Y=Y+(o3_snapy-snp);}}}
-if(!o3_nojusty&&Y+pHt+BM>pgTop+iHt)Y=pgTop+iHt-pHt-BM;if(!o3_nojusty&&Y-TM<pgTop)Y=pgTop+TM;
-OLrepositionTo(over,X,Y);
-if(OLshadowPI)OLrepositionShadow(X,Y);if(OLiframePI)OLrepositionIfs(X,Y);
-if(OLns6&&o3_frame.innerHeight){iHt=o3_frame.innerHeight;OLrepositionTo(over,X,Y);}
-if(OLscrollPI)OLchkScroll(X-pgLeft,Y-pgTop);
-}
-
-// Chooses body or documentElement
-function OLfd(f){
-var fd=((f)?f:o3_frame).document,fdc=fd.compatMode,fdd=fd.documentElement;
-return (!OLop7&&fdc&&fdc!='BackCompat'&&fdd&&fdd.clientWidth)?fd.documentElement:fd.body;
-}
-
-// Gets location of REFerence object
-function OLgetRefXY(r,d){
-var o=OLgetRef(r,d),ob=o,rXY=[o3_refx,o3_refy],of;if(!o)return [null,null];
-if(OLns4){if(typeof o.length!='undefined'&&o.length>1){ob=o[0];
-rXY[0]+=o[0].x+o[1].pageX;rXY[1]+=o[0].y+o[1].pageY;}else{
-if((o.toString().indexOf('Image')!= -1)||(o.toString().indexOf('Anchor')!= -1)){
-rXY[0]+=o.x;rXY[1]+=o.y;}else{rXY[0]+=o.pageX;rXY[1]+=o.pageY;}}
-}else{rXY[0]+=OLpageLoc(o,'Left');rXY[1]+=OLpageLoc(o,'Top');}
-of=OLgetRefOffsets(ob);rXY[0]+=of[0];rXY[1]+=of[1];return rXY;
-}
-
-// Seeks REFerence by id
-function OLgetRefById(l,d){
-l=(l||'overDiv');d=(d||o3_frame.document);var j,r;if(OLie4&&d.all)return d.all[l];
-if(d.getElementById)return d.getElementById(l);if(d.layers&&d.layers.length>0){
-if(d.layers[l])return d.layers[l];for(j=0;j<d.layers.length;j++){
-r=OLgetRefById(l,d.layers[j].document);if(r)return r;}}return null;
-}
-
-// Seeks REFerence by name
-function OLgetRefByName(l,d){
-d=(d||o3_frame.document);var j,r,v=OLie4?d.all.tags('iframe'):
-OLns6?d.getElementsByTagName('iframe'):null;
-if(typeof d.images!='undefined'&&d.images[l])return d.images[l];
-if(typeof d.anchors!='undefined'&&d.anchors[l])return d.anchors[l];
-if(v)for(j=0;j<v.length;j++)if(v[j].name==l)return v[j];
-if(d.layers&&d.layers.length>0)for(j=0;j<d.layers.length;j++){
-r=OLgetRefByName(l,d.layers[j].document);
-if(r&&r.length>0)return r;else if(r)return [r,d.layers[j]];}return null;
-}
-
-// Gets layer vs REFerence offsets
-function OLgetRefOffsets(o){
-var c=o3_refc.toUpperCase(),p=o3_refp.toUpperCase(),W=0,H=0,pW=0,pH=0,of=[0,0];
-pW=(OLbubblePI&&o3_bubble)?o3_width:OLns4?over.clip.width:over.offsetWidth;
-pH=(OLbubblePI&&o3_bubble)?OLbubbleHt:OLns4?over.clip.height:over.offsetHeight;
-if((!OLop7)&&o.toString().indexOf('Image')!= -1){W=o.width;H=o.height;
-}else if((!OLop7)&&o.toString().indexOf('Anchor')!= -1){c=o3_refc='UL';}else{
-W=(OLns4)?o.clip.width:o.offsetWidth;H=(OLns4)?o.clip.height:o.offsetHeight;}
-if((OLns4||(OLns6&&OLgek))&&o.border){W+=2*parseInt(o.border);H+=2*parseInt(o.border);}
-if(c=='UL'){of=(p=='UR')?[-pW,0]:(p=='LL')?[0,-pH]:(p=='LR')?[-pW,-pH]:[0,0];
-}else if(c=='UR'){of=(p=='UR')?[W-pW,0]:(p=='LL')?[W,-pH]:(p=='LR')?[W-pW,-pH]:[W,0];
-}else if(c=='LL'){of=(p=='UR')?[-pW,H]:(p=='LL')?[0,H-pH]:(p=='LR')?[-pW,H-pH]:[0,H];
-}else if(c=='LR'){of=(p=='UR')?[W-pW,H]:(p=='LL')?[W,H-pH]:(p=='LR')?[W-pW,H-pH]:[W,H];}
-return of;
-}
-
-// Gets x or y location of object
-function OLpageLoc(o,t){
-var l=0,s=o;while(o.offsetParent&&o.offsetParent.tagName.toLowerCase()!='html'){
-l+=o['offset'+t];o=o.offsetParent;}l+=o['offset'+t];while(s=s.parentNode){
-if((s['scroll'+t]>0)&&s.tagName.toLowerCase()=='div')l-=s['scroll'+t];}return l;
-}
-
-// Moves layer
-function OLmouseMove(e){
-var e=(e||event);OLcC=(OLovertwoPI&&over2&&over==over2?cClick2:cClick);
-OLx=(e.pageX||e.clientX+OLfd().scrollLeft);OLy=(e.pageY||e.clientY+OLfd().scrollTop);
-if((OLallowmove&&over)&&(o3_frame==self||over==OLgetRefById()
-||(OLovertwoPI&&over2==over&&over==OLgetRefById('overDiv2')))){
-OLplaceLayer();if(OLhidePI)OLhideUtil(0,1,1,0,0,0);}
-if(OLhover&&over&&o3_frame==self&&OLcursorOff())if(o3_offdelay<1)OLcC();else
-{if(OLtimerid>0)clearTimeout(OLtimerid);OLtimerid=setTimeout("OLcC()",o3_offdelay);}
-}
-
-// Capture mouse and chain other scripts.
-function OLmh(){
-var fN,f,j,k,s,mh=OLmouseMove,w=(OLns4&&window.onmousemove),re=/function[ ]*(\w*)\(/;
-OLdw=document;if(document.onmousemove||w){if(w)OLdw=window;f=OLdw.onmousemove.toString();
-fN=f.match(re);if(!fN||fN[1]=='anonymous'||fN[1]=='OLmouseMove'){OLchkMh=0;return;}
-if(fN[1])s=fN[1]+'(e)';else{j=f.indexOf('{');k=f.lastIndexOf('}')+1;s=f.substring(j,k);}
-s+=';OLmouseMove(e);';mh=new Function('e',s);}
-OLdw.onmousemove=mh;if(OLns4)OLdw.captureEvents(Event.MOUSEMOVE);
-}
-
-/*
- PARSING
-*/
-function OLparseTokens(pf,ar){
-var i,v,md= -1,par=(pf!='ol_'),p=OLpar,q=OLparQuo,t=OLtoggle;OLudf=(par&&!ar.length?1:0);
-for(i=0;i<ar.length;i++){if(md<0){if(typeof ar[i]=='number'){OLudf=(par?1:0);i--;}
-else{switch(pf){case 'ol_':ol_text=ar[i];break;default:o3_text=ar[i];}}md=0;}else{
-if(ar[i]==INARRAY){OLudf=0;eval(pf+'text=ol_texts['+ar[++i]+']');continue;}
-if(ar[i]==CAPARRAY){eval(pf+'cap=ol_caps['+ar[++i]+']');continue;}
-if(ar[i]==CAPTION){q(ar[++i],pf+'cap');continue;}
-if(Math.abs(ar[i])==STICKY){t(ar[i],pf+'sticky');continue;}
-if(Math.abs(ar[i])==NOFOLLOW){t(ar[i],pf+'nofollow');continue;}
-if(ar[i]==BACKGROUND){q(ar[++i],pf+'background');continue;}
-if(Math.abs(ar[i])==NOCLOSE){t(ar[i],pf+'noclose');continue;}
-if(Math.abs(ar[i])==MOUSEOFF){t(ar[i],pf+'mouseoff');continue;}
-if(ar[i]==OFFDELAY){p(ar[++i],pf+'offdelay');continue;}
-if(ar[i]==RIGHT||ar[i]==LEFT||ar[i]==CENTER){p(ar[i],pf+'hpos');continue;}
-if(ar[i]==OFFSETX){p(ar[++i],pf+'offsetx');continue;}
-if(ar[i]==OFFSETY){p(ar[++i],pf+'offsety');continue;}
-if(ar[i]==FGCOLOR){q(ar[++i],pf+'fgcolor');continue;}
-if(ar[i]==BGCOLOR){q(ar[++i],pf+'bgcolor');continue;}
-if(ar[i]==CGCOLOR){q(ar[++i],pf+'cgcolor');continue;}
-if(ar[i]==TEXTCOLOR){q(ar[++i],pf+'textcolor');continue;}
-if(ar[i]==CAPCOLOR){q(ar[++i],pf+'capcolor');continue;}
-if(ar[i]==CLOSECOLOR){q(ar[++i],pf+'closecolor');continue;}
-if(ar[i]==WIDTH){p(ar[++i],pf+'width');continue;}
-if(Math.abs(ar[i])==WRAP){t(ar[i],pf+'wrap');continue;}
-if(ar[i]==WRAPMAX){p(ar[++i],pf+'wrapmax');continue;}
-if(ar[i]==HEIGHT){p(ar[++i],pf+'height');continue;}
-if(ar[i]==BORDER){p(ar[++i],pf+'border');continue;}
-if(ar[i]==BASE){p(ar[++i],pf+'base');continue;}
-if(ar[i]==STATUS){q(ar[++i],pf+'status');continue;}
-if(Math.abs(ar[i])==AUTOSTATUS){v=pf+'autostatus';
-eval(v+'=('+ar[i]+'<0)?('+v+'==2?2:0):('+v+'==1?0:1)');continue;}
-if(Math.abs(ar[i])==AUTOSTATUSCAP){v=pf+'autostatus';
-eval(v+'=('+ar[i]+'<0)?('+v+'==1?1:0):('+v+'==2?0:2)');continue;}
-if(ar[i]==CLOSETEXT){q(ar[++i],pf+'close');continue;}
-if(ar[i]==SNAPX){p(ar[++i],pf+'snapx');continue;}
-if(ar[i]==SNAPY){p(ar[++i],pf+'snapy');continue;}
-if(ar[i]==FIXX){p(ar[++i],pf+'fixx');continue;}
-if(ar[i]==FIXY){p(ar[++i],pf+'fixy');continue;}
-if(ar[i]==RELX){p(ar[++i],pf+'relx');continue;}
-if(ar[i]==RELY){p(ar[++i],pf+'rely');continue;}
-if(ar[i]==MIDX){p(ar[++i],pf+'midx');continue;}
-if(ar[i]==MIDY){p(ar[++i],pf+'midy');continue;}
-if(ar[i]==REF){q(ar[++i],pf+'ref');continue;}
-if(ar[i]==REFC){q(ar[++i],pf+'refc');continue;}
-if(ar[i]==REFP){q(ar[++i],pf+'refp');continue;}
-if(ar[i]==REFX){p(ar[++i],pf+'refx');continue;}
-if(ar[i]==REFY){p(ar[++i],pf+'refy');continue;}
-if(ar[i]==FGBACKGROUND){q(ar[++i],pf+'fgbackground');continue;}
-if(ar[i]==BGBACKGROUND){q(ar[++i],pf+'bgbackground');continue;}
-if(ar[i]==CGBACKGROUND){q(ar[++i],pf+'cgbackground');continue;}
-if(ar[i]==PADX){p(ar[++i],pf+'padxl');p(ar[++i],pf+'padxr');continue;}
-if(ar[i]==PADY){p(ar[++i],pf+'padyt');p(ar[++i],pf+'padyb');continue;}
-if(Math.abs(ar[i])==FULLHTML){t(ar[i],pf+'fullhtml');continue;}
-if(ar[i]==BELOW||ar[i]==ABOVE||ar[i]==VCENTER){p(ar[i],pf+'vpos');continue;}
-if(ar[i]==CAPICON){q(ar[++i],pf+'capicon');continue;}
-if(ar[i]==TEXTFONT){q(ar[++i],pf+'textfont');continue;}
-if(ar[i]==CAPTIONFONT){q(ar[++i],pf+'captionfont');continue;}
-if(ar[i]==CLOSEFONT){q(ar[++i],pf+'closefont');continue;}
-if(ar[i]==TEXTSIZE){q(ar[++i],pf+'textsize');continue;}
-if(ar[i]==CAPTIONSIZE){q(ar[++i],pf+'captionsize');continue;}
-if(ar[i]==CLOSESIZE){q(ar[++i],pf+'closesize');continue;}
-if(ar[i]==TIMEOUT){p(ar[++i],pf+'timeout');continue;}
-if(ar[i]==DELAY){p(ar[++i],pf+'delay');continue;}
-if(Math.abs(ar[i])==HAUTO){t(ar[i],pf+'hauto');continue;}
-if(Math.abs(ar[i])==VAUTO){t(ar[i],pf+'vauto');continue;}
-if(Math.abs(ar[i])==NOJUSTX){t(ar[i],pf+'nojustx');continue;}
-if(Math.abs(ar[i])==NOJUSTY){t(ar[i],pf+'nojusty');continue;}
-if(Math.abs(ar[i])==CLOSECLICK){t(ar[i],pf+'closeclick');continue;}
-if(ar[i]==CLOSETITLE){q(ar[++i],pf+'closetitle');continue;}
-if(ar[i]==FGCLASS){q(ar[++i],pf+'fgclass');continue;}
-if(ar[i]==BGCLASS){q(ar[++i],pf+'bgclass');continue;}
-if(ar[i]==CGCLASS){q(ar[++i],pf+'cgclass');continue;}
-if(ar[i]==TEXTPADDING){p(ar[++i],pf+'textpadding');continue;}
-if(ar[i]==TEXTFONTCLASS){q(ar[++i],pf+'textfontclass');continue;}
-if(ar[i]==CAPTIONPADDING){p(ar[++i],pf+'captionpadding');continue;}
-if(ar[i]==CAPTIONFONTCLASS){q(ar[++i],pf+'captionfontclass');continue;}
-if(ar[i]==CLOSEFONTCLASS){q(ar[++i],pf+'closefontclass');continue;}
-if(Math.abs(ar[i])==CAPBELOW){t(ar[i],pf+'capbelow');continue;}
-if(ar[i]==LABEL){q(ar[++i],pf+'label');continue;}
-if(Math.abs(ar[i])==DECODE){t(ar[i],pf+'decode');continue;}
-if(ar[i]==DONOTHING){continue;}
-i=OLparseCmdLine(pf,i,ar);}}
-if((OLfunctionPI)&&OLudf&&o3_function)o3_text=o3_function();
-if(pf=='o3_')OLfontSize();
-}
-function OLpar(a,v){eval(v+'='+a);}
-function OLparQuo(a,v){eval(v+"='"+OLescSglQt(a)+"'");}
-function OLescSglQt(s){return s.toString().replace(/\\/g,"\\\\").replace(/'/g,"\\'");}
-function OLtoggle(a,v){eval(v+'=('+v+'==0&&'+a+'>=0)?1:0');}
-function OLhasDims(s){return /[%\-a-z]+$/.test(s);}
-function OLfontSize(){
-var i;if(OLhasDims(o3_textsize)){if(OLns4)o3_textsize="2";}else
-if(!OLns4){i=parseInt(o3_textsize);o3_textsize=(i>0&&i<8)?OLpct[i]:OLpct[0];}
-if(OLhasDims(o3_captionsize)){if(OLns4)o3_captionsize="2";}else
-if(!OLns4){i=parseInt(o3_captionsize);o3_captionsize=(i>0&&i<8)?OLpct[i]:OLpct[0];}
-if(OLhasDims(o3_closesize)){if(OLns4)o3_closesize="2";}else
-if(!OLns4){i=parseInt(o3_closesize);o3_closesize=(i>0&&i<8)?OLpct[i]:OLpct[0];}
-if(OLprintPI)OLprintDims();
-}
-function OLdecode(){
-var re=/%[0-9A-Fa-f]{2,}/,t=o3_text,c=o3_cap,u=unescape,d=!OLns4&&(!OLgek||OLgek>=20020826)
-&&typeof decodeURIComponent?decodeURIComponent:u;if(typeof(window.TypeError)=='function'){
-if(re.test(t)){eval(new Array('try{','o3_text=d(t);','}catch(e){','o3_text=u(t);',
-'}').join('\n'))};if(c&&re.test(c)){eval(new Array('try{','o3_cap=d(c);','}catch(e){',
-'o3_cap=u(c);','}').join('\n'))}}else{if(re.test(t))o3_text=u(t);if(c&&re.test(c))o3_cap=u(c);}
-}
-
-/*
- LAYER FUNCTIONS
-*/
-// Writes to layer
-function OLlayerWrite(t){
-t+="\n";if(OLns4){over.document.write(t);over.document.close();}
-else if(typeof over.innerHTML!='undefined'){if(OLieM)over.innerHTML='';over.innerHTML=t;
-}else{var range=o3_frame.document.createRange();range.setStartAfter(over);
-var domfrag=range.createContextualFragment(t);while(over.hasChildNodes()){
-over.removeChild(over.lastChild);}over.appendChild(domfrag);}
-if(OLprintPI)over.print=o3_print?t:null;
-}
-
-// Makes object visible
-function OLshowObject(o){
-OLshowid=0;o=(OLns4)?o:o.style;
-if(((OLfilterPI)&&!OLchkFilter(o))||!OLfilterPI)o.visibility="visible";
-if(OLshadowPI)OLshowShadow();if(OLiframePI)OLshowIfs();if(OLhidePI)OLhideUtil(1,1,0);
-}
-
-// Hides object
-function OLhideObject(o){
-if(OLshowid>0){clearTimeout(OLshowid);OLshowid=0;}
-if(OLtimerid>0)clearTimeout(OLtimerid);if(OLdelayid>0)clearTimeout(OLdelayid);
-OLtimerid=0;OLdelayid=0;self.status="";o3_label=ol_label;if(o3_frame!=self)o=OLgetRefById();
-if(o){if(o.onmouseover)o.onmouseover=null;if(OLscrollPI&&o==over)OLclearScroll();
-if(OLdraggablePI)OLclearDrag();if(OLfilterPI)OLcleanupFilter(o);if(OLshadowPI)OLhideShadow();
-var os=(OLns4)?o:o.style;if(((OLfilterPI)&&!OLchkFadeOut(os))||!OLfilterPI){
-os.visibility="hidden";if(!OLie55||!OLfilterPI||!o3_filter||o3_fadeout<0)o.innerHTML='';}
-if(OLhidePI&&o==over)OLhideUtil(0,0,1);if(OLiframePI)OLhideIfs(o);}
-}
-
-// Moves layer
-function OLrepositionTo(o,xL,yL){
-o=(OLns4)?o:o.style;o.left=(OLns4?xL:xL+'px');o.top=(OLns4?yL:yL+'px');
-}
-
-// Handle NOCLOSE-MOUSEOFF
-function OLoptMOUSEOFF(c){
-if(!c)o3_close="";
-over.onmouseover=function(){OLhover=1;if(OLtimerid>0){clearTimeout(OLtimerid);OLtimerid=0;}}
-}
-function OLcursorOff(){
-var o=(OLns4?over:over.style),pHt=OLns4?over.clip.height:over.offsetHeight,
-left=parseInt(o.left),top=parseInt(o.top),
-right=left+o3_width,bottom=top+((OLbubblePI&&o3_bubble)?OLbubbleHt:pHt);
-if(OLx<left||OLx>right||OLy<top||OLy>bottom)return true;return false;
-}
-
-/*
- REGISTRATION
-*/
-function OLsetRunTimeVar(){
-if(OLrunTime.length)for(var k=0;k<OLrunTime.length;k++)OLrunTime[k]();
-}
-function OLparseCmdLine(pf,i,ar){
-if(OLcmdLine.length){for(var k=0;k<OLcmdLine.length;k++){
-var j=OLcmdLine[k](pf,i,ar);if(j>-1){i=j;break;}}}return i;
-}
-function OLregCmds(c){
-if(typeof c!='string')return;var pM=c.split(',');pMtr=pMtr.concat(pM);
-for(var i=0;i<pM.length;i++)eval(pM[i].toUpperCase()+'='+pmCnt++);
-}
-function OLregRunTimeFunc(f){
-if(typeof f=='object')OLrunTime=OLrunTime.concat(f);else OLrunTime[OLrunTime.length++]=f;
-}
-function OLregCmdLineFunc(f){
-if(typeof f=='object')OLcmdLine=OLcmdLine.concat(f);else OLcmdLine[OLcmdLine.length++]=f;
-}
-
-OLloaded=1;
diff --git a/src/extras/sos-html-logs/share/html/overlib/overlibmws_bubble.js b/src/extras/sos-html-logs/share/html/overlib/overlibmws_bubble.js
deleted file mode 100644
index 94f1c796..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/overlibmws_bubble.js
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- overlibmws_bubble.js plug-in module - Copyright Foteos Macrides 2003-2007. All rights reserved.
- For support of the BUBBLE feature.
- Initial: July 26, 2003 - Last Revised: January 1, 2007
- See the Change History and Command Reference for overlibmws via:
-
- http://www.macridesweb.com/oltest/
-
- Published under an open source license: http://www.macridesweb.com/oltest/license.html
-*/
-
-OLloaded=0;
-var OLbubbleCmds='bubble,bubbletype,adjbubble';
-OLregCmds(OLbubbleCmds);
-
-// DEFAULT CONFIGURATION
-if(OLud('bubble'))var ol_bubble=0;
-if(OLud('bubbletype'))var ol_bubbletype='';
-if(OLud('adjbubble'))var ol_adjbubble=0;
-// END CONFIGURATION
-
-if(typeof OLbubbleImages=='undefined')
-var OLbubbleImages='flower,oval,square,pushpin,quotation,roundcorners';
-if(typeof OLbubbleImageDir=='undefined')var OLbubbleImageDir='./';
-OLregisterImages('flower,oval,square,pushpin,quotation,roundcorners',OLbubbleImageDir);
-var OLimgWidth=[250,330,144,202,200];
-var OLimgHeight=[150,160,190,221,66];
-var OLcontentWidth=[200,250,130,184,190];
-var OLcontentHeight=[80,85,150,176,46];
-var OLpadLeft=[30,40,7,9,5];
-var OLpadTop=[25,48,10,34,4];
-var OLarwTipX=[180,50,51,9,19];
-var OLarwTipY=[148,5,180,221,64];
-var OLbI,OLbContentWd=OLcontentWidth;
-
-var o3_bubble=0,o3_bubbletype='',o3_adjbubble=0,OLbubbleHt=0;
-
-function OLloadBubble(){
-OLload(OLbubbleCmds);OLbubbleHt=0;
-}
-
-function OLparseBubble(pf,i,ar){
-var k=i,t=OLtoggle;
-if(k<ar.length){
-if(Math.abs(ar[k])==BUBBLE){t(ar[k],pf+'bubble');return k;}
-if(ar[k]==BUBBLETYPE){OLparQuo(ar[++k],pf+'bubbletype');return k;}
-if(Math.abs(ar[k])==ADJBUBBLE){t(ar[k],pf+'adjbubble');return k;}}
-return -1;
-}
-
-function OLchkForBubbleEffect() {
-if(o3_bubble){o3_bubbletype=(o3_bubbletype)?o3_bubbletype:'flower';
-for(var i=0;i<OLbTypes.length;i++){if(OLbTypes[i]==o3_bubbletype){OLbI=i;break;}}
-// disable inappropriate parameters
-o3_bgcolor=o3_fgcolor='';
-o3_border=o3_base=0;
-o3_fgbackground=o3_bgbackground=o3_cgbackground=o3_background='';
-o3_cap='';
-if(o3_sticky)o3_noclose=1;
-o3_fullhtml=0;
-if(OLshadowPI)o3_shadow=0;
-if(o3_bubbletype!='roundcorners'){
-o3_width=OLbContentWd[OLbI];
-o3_hpos=RIGHT;
-o3_vpos=BELOW;
-o3_vauto=0;
-o3_hauto=0;
-o3_wrap=0;
-o3_nojusty=1;}}
-return true;
-}
-
-function OLregisterImages(imgStr,path) {
-if(typeof imgStr!='string')return;
-path=(path&&typeof path=='string')?path:'.';
-if(path.charAt(path.length-1)=='/')path=path.substring(0,path.length-1);
-if(typeof OLbTypes=='undefined')OLbTypes=imgStr.split(',');
-if(typeof OLbubbleImg=='undefined'){
-OLbubbleImg=new Array();
-for(var i=0;i<OLbTypes.length;i++){
-if(OLbubbleImages.indexOf(OLbTypes[i])<0)continue;
-if(OLbTypes[i]=='roundcorners'){
-OLbubbleImg[i]=new Array();
-var o=OLbubbleImg[i];
-o[0]=new Image();o[0].src=path+'/cornerTL.gif';
-o[1]=new Image();o[1].src=path+'/edgeT.gif';
-o[2]=new Image();o[2].src=path+'/cornerTR.gif';
-o[3]=new Image();o[3].src=path+'/edgeL.gif';
-o[4]=new Image();o[4].src=path+'/edgeR.gif';
-o[5]=new Image();o[5].src=path+'/cornerBL.gif';
-o[6]=new Image();o[6].src=path+'/edgeB.gif';
-o[7]=new Image();o[7].src=path+'/cornerBR.gif';
-}else{
-OLbubbleImg[i]=new Image();OLbubbleImg[i].src=path+'/'+OLbTypes[i]+'.gif';}}}
-}
-
-function OLgenerateBubble(content) {
-if(!o3_bubble)return;
-if(o3_bubbletype=='roundcorners')return OLdoRoundCorners(content);
-var ar,X,Y,fc=1.0,txt,sY,bHtDiff,bPadDiff=0,bLobj,bCobj;
-var bTopPad=OLpadTop,bLeftPad=OLpadLeft;
-var bContentHt=OLcontentHeight,bHt=OLimgHeight;
-var bWd=OLimgWidth,bArwTipX=OLarwTipX,bArwTipY=OLarwTipY;
-bHtDiff=fc*bContentHt[OLbI]-(OLns4?over.clip.height:over.offsetHeight);
-if(o3_adjbubble){
-fc=OLresizeBubble(bHtDiff,0.5,fc);
-ar=OLgetHeightDiff(fc);
-bHtDiff=ar[0];
-content=ar[1];}
-if(bHtDiff>0)bPadDiff=(bHtDiff<2)?0:parseInt(0.5*bHtDiff);
-Y=(bHtDiff<0)?fc*bTopPad[OLbI]:fc*bTopPad[OLbI]+bPadDiff;
-X=fc*bLeftPad[OLbI];
-Y=Math.round(Y);
-X=Math.round(X);
-o3_width=fc*bWd[OLbI];
-OLbubbleHt=fc*bHt[OLbI];
-txt='<img src="'+OLbubbleImg[OLbI].src+'" width="'+o3_width+'" height="'
-+(bHtDiff<0?OLbubbleHt-bHtDiff:OLbubbleHt)+'" />'+(OLns4?'<div id="bContent">':
-'<div id="bContent" style="position:absolute; top:'+Y+'px; left:'+X+'px; width:'
-+fc*OLbContentWd[OLbI]+'px; z-index:1;">')+content+'</div>';
-OLlayerWrite(txt);
-if(OLns4){
-bCobj=over.document.layers['bContent'];
-if(typeof bCobj=='undefined')return;
-bCobj.top=Y;
-bCobj.left=X;
-bCobj.clip.width=fc*OLbContentWd[OLbI];
-bCobj.zIndex=1;}
-if(fc*bArwTipY[OLbI]<0.5*fc*bHt[OLbI])sY=fc*bArwTipY[OLbI];
-else sY= -(fc*bHt[OLbI]+20);
-o3_offsetx -=fc*bArwTipX[OLbI];
-o3_offsety +=sY;
-}
-
-function OLdoRoundCorners(content) {
-var txt,wd,ht,o=OLbubbleImg[OLbI];
-wd=(OLns4)?over.clip.width:over.offsetWidth;
-ht=(OLns4)?over.clip.height:over.offsetHeight;
-txt='<table cellpadding="0" cellspacing="0" border="0">'
-+'<tr><td align="right" valign="bottom"><img src="'+o[0].src+'" width="14" height="14"'
-+(OLns6?' style="display:block;"':'')+' /></td><td valign="bottom"><img src="'+o[1].src
-+'" height="14" width="'+wd+'"'+(OLns6?' style="display:block;"':'')
-+' /></td><td align="left" valign="bottom"><img src="'+o[2].src+'" width="14" height="14"'
-+(OLns6?' style="display:block;"':'')+' /></td></tr>'
-+'<tr><td align="right"><img src="'+o[3].src+'" width="14" height="'+ht+'"'
-+(OLns6?' style="display:block;"':'')+' /></td><td bgcolor="#ffffcc">'+content
-+'</td><td align="left"><img src="'+o[4].src+'" width="14" height="'+ht+'"'
-+(OLns6?' style="display:block;"':'')+ '/></td></tr>'+'<tr><td align="right" valign="top">'
-+'<img src="'+o[5].src+'" width="14" height="14" /></td><td valign="top"><img src="'+o[6].src
-+'" height="14" width="'+wd+'" /></td><td align="left" valign="top"><img src="'+o[7].src
-+'" width="14" height="14" /></td></tr></table>';
-OLlayerWrite(txt);
-o3_width=wd+28;
-OLbubbleHt=ht+28;
-}
-
-function OLresizeBubble(h1,dF,fold){
-var df,h2,fnew,alpha,cnt=0;
-while(cnt<2){
-df= -OLsignOf(h1)*dF;
-fnew=fold+df;
-h2=OLgetHeightDiff(fnew)[0];
-if(Math.abs(h2)<11)break;
-if(OLsignOf(h1)!=OLsignOf(h2)){
-alpha=Math.abs(h1)/(Math.abs(h1)+Math.abs(h2));
-if(h1<0)fnew=alpha*fnew+(1.0-alpha)*fold;
-else fnew=(1.0-alpha)*fnew+alpha*fold;
-}else{
-alpha=Math.abs(h1)/(Math.abs(h2)-Math.abs(h1));
-if(h1<0)fnew=(1.0+alpha)*fold-alpha*fnew;
-else fnew=(1.0+alpha)*fnew-alpha*fold;}
-fold=fnew;
-h1=h2;
-dF*=0.5;
-cnt++;}
-return fnew;
-}
-
-function OLgetHeightDiff(f){
-var lyrhtml;
-o3_width=f*OLcontentWidth[OLbI];
-lyrhtml=OLcontentSimple(o3_text);
-OLlayerWrite(lyrhtml)
-return [f*OLcontentHeight[OLbI]-((OLns4)?over.clip.height:over.offsetHeight),lyrhtml];
-}
-
-function OLsignOf(x){
-return (x<0)? -1:1;
-}
-
-OLregRunTimeFunc(OLloadBubble);
-OLregCmdLineFunc(OLparseBubble);
-
-if(OLns4)
-document.write(
-'<style type="text/css">\n<!--\n#bContent{position:absolute;left:0px;top:0px;width:1024}\n'
-+'-->\n<'+'\/style>');
-OLbubblePI=1;
-OLloaded=1;
diff --git a/src/extras/sos-html-logs/share/html/overlib/overlibmws_crossframe.js b/src/extras/sos-html-logs/share/html/overlib/overlibmws_crossframe.js
deleted file mode 100644
index beb468fa..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/overlibmws_crossframe.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- overlibmws_crossframe.js plug-in module - Copyright Foteos Macrides 2003-2007. All rights reserved.
- For support of FRAME.
- Initial: August 3, 2003 - Last Revised: January 1, 2007
- See the Change History and Command Reference for overlibmws via:
-
- http://www.macridesweb.com/oltest/
-
- Published under an open source license: http://www.macridesweb.com/oltest/license.html
-*/
-
-OLloaded=0;
-OLregCmds('frame');
-
-function OLparseCrossframe(pf,i,ar){
-var k=i,v;
-if(k<ar.length){
-if(ar[k]==FRAME){v=ar[++k];if(pf=='ol_')ol_frame=v;else OLoptFRAME(v);return k;}}
-return -1;
-}
-
-function OLgetFrameRef(thisFrame,ofrm){
-var i,v,retVal='';for(i=0;i<thisFrame.length;i++){if((((thisFrame[i].length>0)))&&(((OLns4))||
-((OLie4)&&(v=thisFrame[i].document.all.tags('iframe'))!=null&&v.length==0)||
-((OLns6)&&(v=thisFrame[i].document.getElementsByTagName('iframe'))!=null&&v.length==0))){
-retVal=OLgetFrameRef(thisFrame[i],ofrm);if(retVal=='')continue;}
-else if(thisFrame[i]!=ofrm)continue;retVal='['+i+']'+retVal;break;}
-return retVal;
-}
-
-function OLoptFRAME(frm){
-o3_frame=OLmkLyr('overDiv',frm)?frm:self;if(o3_frame!=self){
-var l,tFrm=OLgetFrameRef(top.frames,o3_frame),sFrm=OLgetFrameRef(top.frames,ol_frame);
-if(sFrm.length==tFrm.length) {l=tFrm.lastIndexOf('[');if(l){
-while(sFrm.substring(0,l)!=tFrm.substring(0,l))l=tFrm.lastIndexOf('[',l-1);
-tFrm=tFrm.substr(l);sFrm=sFrm.substr(l);}}var i,k,cnt=0,p='',str=tFrm;
-while((k=str.lastIndexOf('['))!= -1){cnt++;str=str.substring(0,k);}
-for(i=0;i<cnt;i++)p=p+'parent.';OLfnRef=p+'frames'+sFrm+'.';}
-}
-
-OLregCmdLineFunc(OLparseCrossframe);
-
-OLcrossframePI=1;
-OLloaded=1;
diff --git a/src/extras/sos-html-logs/share/html/overlib/overlibmws_debug.js b/src/extras/sos-html-logs/share/html/overlib/overlibmws_debug.js
deleted file mode 100644
index 125b290d..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/overlibmws_debug.js
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- overlibmws_debug.js plug-in module - Copyright Foteos Macrides 2003-2007. All rights reserved.
- For support of the OLshowProperties() debugging function.
- Initial: July 26, 2003 - Last Revised: January 1, 2007
- See the Change History and Command Reference for overlibmws via:
-
- http://www.macridesweb.com/oltest/
-
- Published under an open source license: http://www.macridesweb.com/oltest/license.html
-*/
-
-OLloaded=0;
-var OLzIndex;
-OLregCmds('allowdebug');
-
-// DEFAULT CONFIGURATION
-if(OLud('allowdebug'))var ol_allowdebug='';
-// END CONFIGURATION
-
-var o3_allowdebug='';
-
-function OLloadDebug(){
-OLload('allowdebug');
-}
-
-function OLparseDebug(pf,i,ar){
-var k=i;
-if(ar[k]==ALLOWDEBUG){
-if(k<(ar.length-1)&&typeof ar[k+1]=='string')OLparQuo(ar[++k],pf+'allowdebug');return k;}
-return -1;
-}
-
-function OLshowProperties(){
-var ar=arguments,sho,shoS,vis,lvl=0,istrt=0,theDiv='showProps',txt='',
-fac='Verdana,Arial,Helvetica',siz=(OLns4?'1':'67%'),
-fon='><font color="#000000" face="'+fac+'" size="'+siz,
-stl=' style="font-family:'+fac+';font-size:'+siz+';',
-sty=stl+'color:#000000;',clo=(OLns4?'</font>':'');
-if(ar.length==0)return;
-if(ar.length%2&&typeof ar[0]=='string'){istrt=1;theDiv=ar[0];}
-if(!(sho=OLmkLyr(theDiv,self)))return;
-shoS=(OLns4)?sho:sho.style;
-lvl=OLgetLayerLevel(theDiv);
-if(typeof sho.position=='undefined'){
-sho.position=new OLpageLocDebug(10+lvl*20,10,1);
-if(typeof OLzIndex=='undefined')OLzIndex=OLgetDivZindex('overDiv',self);
-shoS.zIndex=OLzIndex+1+lvl;}
-txt='<table cellpadding="1" cellspacing="0" border="0" bgcolor="#000000"><tr><td>'
-+'<table cellpadding="5" border="0" cellspacing="0" bgcolor="#ffffcc">'
-+'<tr><td><strong><a href="javascript:OLmoveToBack(\''+theDiv+'\');" title="Move to back"'
-+(OLns4?fon:stl)+'">'+theDiv+clo
-+'</a></strong></td><td align="right"><strong><a href="javascript:OLcloseLayer(\''+theDiv
-+'\');" title="Close Layer"'+(OLns4?fon:stl
-+'background-color:#cccccc;border:1px #333369 outset;padding:0px;')+'">X'+clo
-+'</a></strong></td></tr><tr><td'+(OLns4?fon:sty)+'">'+'<strong><em>Item</em></strong>'
-+clo+'</td><td'+(OLns4?fon:sty)+'">'+'<strong><em>Value</em></strong>'+clo+'</td></tr>';
-for(var i=istrt;i<ar.length-1;i++)
-txt+='<tr><td align="right"'+(OLns4?fon:sty)+'">'+'<strong>'+ar[i]+':&nbsp;</strong>'
-+clo+'</td><td'+(OLns4?fon:sty)+'">'+ar[++i]+clo+'</td></tr>';
-txt+='</table></td></tr></table>';
-if(OLns4){sho.document.open();sho.document.write(txt);sho.document.close();
-}else{if(OLie4&&OLieM)sho.innerHTML='';sho.innerHTML=txt;}
-OLshowAllVisibleLayers();
-}
-
-function OLgetLayerLevel(lyr){
-var i=0;
-if(typeof document.popups=='undefined'){document.popups=new Array(lyr);
-}else{var l=document.popups;for(i=0;i<l.length;i++)if(lyr==l[i])break;
-if(i==l.length)l[l.length++]=lyr;}
-return i;
-}
-
-function OLgetDivZindex(id,f){
-if(!id)id='overDiv';if(!f)f=o3_frame;
-var o=OLgetRefById(id,f.document);
-if(o){o=OLns4?o:o.style;return o.zIndex;}
-else return 1000;
-}
-
-function OLsetDebugCanShow(){
-if(o3_allowdebug!=''){
-var i,lyr,pLyr=o3_allowdebug.replace(/[ ]/ig,'').split(',');
-for(i=0;i<pLyr.length;i++){lyr=OLgetRefById(pLyr[i],self.document);
-if(lyr&&typeof lyr.position!='undefined')lyr.position.canShow=1;}}
-}
-
-function OLpageLocDebug(x,y,canShow){
-this.x=x;this.y=y;this.canShow=(canShow==null)?0:canShow;
-}
-
-function OLshowAllVisibleLayers(){
-var i,lyr,o,l=document.popups;
-for(i=0;i<l.length;i++){if((lyr=OLgetRefById(l[i],self.document))&&lyr.position.canShow){
-o=OLns4?lyr:lyr.style;OLpositionLayer(o,lyr.position.x,lyr.position.y);o.visibility='visible';}}
-}
-
-function OLpositionLayer(o,x,y){
-o.left=x+(OLie4?OLfd(self).scrollLeft:self.pageXOffset)+(OLns4?0:'px');
-o.top=y+(OLie4?OLfd(self).scrollTop:self.pageYOffset)+(OLns4?0:'px');
-}
-
-function OLcloseLayer(id){
-var lyr=OLgetRefById(id,self.document);
-if(lyr){lyr.position.canShow=0;lyr=OLns4?lyr:lyr.style;lyr.visibility='hidden';}
-}
-
-function OLmoveToBack(layer){
-var l=document.popups,lyr,o,i,x=10,dx=20,z=OLzIndex+1;if(l.length==1)return;
-if(lyr=OLgetRefById(layer,self.document)){lyr.position.x=x;o=OLns4?lyr:lyr.style;o.zIndex=z;
-for(i=0;i<l.length;i++){if(layer==l[i])continue;
-if(!(lyr=OLgetRefById(l[i],self.document))||lyr.position.canShow==0)continue;
-o=OLns4?lyr:lyr.style;o.zIndex+=1;lyr.position.x+=dx;}OLshowAllVisibleLayers();}
-}
-
-OLregRunTimeFunc(OLloadDebug);
-OLregCmdLineFunc(OLparseDebug);
-
-OLdebugPI=1;
-OLloaded=1;
diff --git a/src/extras/sos-html-logs/share/html/overlib/overlibmws_draggable.js b/src/extras/sos-html-logs/share/html/overlib/overlibmws_draggable.js
deleted file mode 100644
index a5696ab9..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/overlibmws_draggable.js
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- overlibmws_draggable.js plug-in module - Copyright Foteos Macrides 2002-2007. All rights reserved.
- For support of the DRAGGABLE feature.
- Initial: August 24, 2002 - Last Revised: January 1, 2007
- See the Change History and Command Reference for overlibmws via:
-
- http://www.macridesweb.com/oltest/
-
- Published under an open source license: http://www.macridesweb.com/oltest/license.html
-*/
-
-OLloaded=0;
-var OLdraggableCmds='draggable,dragcap,dragid';
-OLregCmds(OLdraggableCmds);
-
-// DEFAULT CONFIGURATION
-if(OLud('draggable'))var ol_draggable=0;
-if(OLud('dragcap'))var ol_dragcap=0;
-if(OLud('dragid'))var ol_dragid='';
-// END CONFIGURATION
-
-var o3_draggable=0,o3_dragcap=0,o3_dragid='',o3_dragging=0,OLdrg=null,OLmMv,
-OLcX,OLcY,OLcbX,OLcbY;function OLloadDraggable(){OLload(OLdraggableCmds);}
-function OLparseDraggable(pf,i,ar){var t=OLtoggle,k=i;if(k<ar.length){
-if(Math.abs(ar[k])==DRAGGABLE){t(ar[k],pf+'draggable');return k;}
-if(Math.abs(ar[k])==DRAGCAP){t(ar[k],pf+'dragcap');return k;}
-if(ar[k]==DRAGID){OLparQuo(ar[++k],pf+'dragid');return k;}}return -1;
-}
-
-function OLcheckDrag(){
-if(o3_draggable){if(o3_sticky&&(o3_frame==self))OLinitDrag();else o3_draggable=0;}
-}
-function OLinitDrag(){
-OLmMv=OLdw.onmousemove;o3_dragging=0;
-if(OLns4){document.captureEvents(Event.MOUSEDOWN|Event.CLICK);
-document.onmousedown=OLgrabEl;document.onclick=function(e){return routeEvent(e);}}
-else{var dvido=(o3_dragid)?OLgetRef(o3_dragid):null,capid=(OLovertwoPI&&over==over2?
-'overCap2':'overCap');if(dvido)dvido.onscroll=function(){OLdw.onmousemove=OLmMv;
-OLinitDrag();};OLdrg=(o3_cap&&o3_dragcap)?OLgetRef(capid):over;
-if(!OLdrg||!OLdrg.style)OLdrg=over;OLdrg.onmousedown=OLgrabEl;OLsetDrgCur(1);}
-}
-function OLsetDrgCur(d){if(!OLns4&&OLdrg)OLdrg.style.cursor=(d?'move':'auto');}
-
-function OLgrabEl(e){
-var e=(e||event);
-var cKy=(OLns4?e.modifiers&Event.ALT_MASK:(e.altKey||(OLop7&&e.ctrlKey)));o3_dragging=1;
-if(cKy){OLsetDrgCur(0);document.onmouseup=function(){OLsetDrgCur(1);o3_dragging=0;}
-return(OLns4?routeEvent(e):true);}
-OLx=(e.pageX||e.clientX+OLfd().scrollLeft);OLy=(e.pageY||e.clientY+OLfd().scrollTop);
-if(OLie4)over.onselectstart=function(){return false;}
-if(OLns4){OLcX=OLx;OLcY=OLy;document.captureEvents(Event.MOUSEUP)}else{
-OLcX=OLx-(OLns4?over.left:parseInt(over.style.left));
-OLcY=OLy-(OLns4?over.top:parseInt(over.style.top));
-if((OLshadowPI)&&bkdrop&&o3_shadow){OLcbX=OLx-(parseInt(bkdrop.style.left));
-OLcbY=OLy-(parseInt(bkdrop.style.top));}}OLdw.onmousemove=OLmoveEl;
-document.onmouseup=function(){
-if(OLie4)over.onselectstart=null;o3_dragging=0;OLdw.onmousemove=OLmMv;}
-return(OLns4?routeEvent(e):false);
-}
-
-function OLmoveEl(e){
-var e=(e||event);
-OLx=(e.pageX||e.clientX+OLfd().scrollLeft);OLy=(e.pageY||e.clientY+OLfd().scrollTop);
-if(o3_dragging){if(OLns4){over.moveBy(OLx-OLcX,OLy-OLcY);
-if(OLshadowPI&&bkdrop&&o3_shadow)bkdrop.moveBy(OLx-OLcX,OLy-OLcY);}
-else{OLrepositionTo(over,OLx-OLcX,OLy-OLcY);
-if((OLiframePI)&&OLie55&&OLifsP1)OLrepositionTo(OLifsP1,OLx-OLcX,OLy-OLcY);
-if((OLshadowPI)&&bkdrop&&o3_shadow){OLrepositionTo(bkdrop,OLx-OLcbX,OLy-OLcbY);
-if((OLiframePI)&&OLie55&&OLifsSh)OLrepositionTo(OLifsSh,OLx-OLcbX,OLy-OLcbY);}}
-if(OLhidePI)OLhideUtil(0,1,1,0,0,0);}if(OLns4){OLcX=OLx;OLcY=OLy;}
-return false;
-}
-
-function OLclearDrag(){
-if(OLns4){document.releaseEvents(Event.MOUSEDOWN|Event.MOUSEUP|Event.CLICK);
-document.onmousedown=document.onclick=null;}else{
-if(OLdrg)OLdrg.onmousedown=null;over.onmousedown=null;OLsetDrgCur(0);}
-document.onmouseup=null;o3_dragging=0;
-}
-
-OLregRunTimeFunc(OLloadDraggable);
-OLregCmdLineFunc(OLparseDraggable);
-
-OLdraggablePI=1;
-OLloaded=1;
diff --git a/src/extras/sos-html-logs/share/html/overlib/overlibmws_exclusive.js b/src/extras/sos-html-logs/share/html/overlib/overlibmws_exclusive.js
deleted file mode 100644
index 8caf3959..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/overlibmws_exclusive.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- overlibmws_exclusive.js plug-in module - Copyright Foteos Macrides 2003-2007. All rights reserved.
- For support of the EXCLUSIVE feature.
- Initial: November 7, 2003 - Last Revised: January 1, 2007
- See the Change History and Command Reference for overlibmws via:
-
- http://www.macridesweb.com/oltest/
-
- Published under an open source license: http://www.macridesweb.com/oltest/license.html
-*/
-
-OLloaded=0;
-var OLexclusiveCmds='exclusive,exclusivestatus,exclusiveoverride';
-OLregCmds(OLexclusiveCmds);
-
-// DEFAULT CONFIGURATION
-if(OLud('exclusive'))var ol_exclusive=0;
-if(OLud('exclusivestatus'))var ol_exclusivestatus='Please act on or close the open popup.';
-if(OLud('exclusiveoverride'))var ol_exclusiveoverride=0;
-// END CONFIGURATION
-
-var o3_exclusive=0,o3_exclusivestatus='',o3_exclusiveoverride=0;
-
-function OLloadExclusive(){
-OLload(OLexclusiveCmds);
-}
-
-function OLparseExclusive(pf,i,ar){
-var k=i,t=OLtoggle;
-if(k<ar.length){
-if(Math.abs(ar[k])==EXCLUSIVE){t(ar[k],pf+'exclusive');return k;}
-if(ar[k]==EXCLUSIVESTATUS){OLparQuo(ar[++k],pf+'exclusivestatus');return k;}
-if(Math.abs(ar[k])==EXCLUSIVEOVERRIDE){t(ar[k],pf+'exclusiveoverride');return k;}}
-return -1;
-}
-
-function OLisExclusive(args){
-if((args!=null)&&OLhasOverRide(args))o3_exclusiveoverride=(ol_exclusiveoverride==0)?1:0;
-else o3_exclusiveoverride=ol_exclusiveoverride;
-var rtnVal=(o3_exclusive&&!o3_exclusiveoverride&&OLshowingsticky&&
-over==OLgetRefById('overDiv'));
-if(rtnVal)self.status=o3_exclusivestatus;
-return rtnVal;
-}
-
-function OLhasOverRide(args){
-var rtnFlag=0;
-for(var i=0;i<args.length;i++){
-if(typeof args[i]=='number'&&args[i]==EXCLUSIVEOVERRIDE){
-rtnFlag=1;break;}}
-return rtnFlag;
-}
-
-OLregRunTimeFunc(OLloadExclusive);
-OLregCmdLineFunc(OLparseExclusive);
-
-OLexclusivePI=1;
-OLloaded=1;
diff --git a/src/extras/sos-html-logs/share/html/overlib/overlibmws_filter.js b/src/extras/sos-html-logs/share/html/overlib/overlibmws_filter.js
deleted file mode 100644
index 160151f8..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/overlibmws_filter.js
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- overlibmws_filter.js plug-in module - Copyright Foteos Macrides 2003-2007. All rights reserved.
- For support of the FILTER feature.
- Initial: November 27, 2003 - Last Revised: January 1, 2007
- See the Change History and Command Reference for overlibmws via:
-
- http://www.macridesweb.com/oltest/
-
- Published under an open source license: http://www.macridesweb.com/oltest/license.html
-*/
-
-OLloaded=0;
-var OLfilterCmds='filter,fadein,fadeout,fadetime,filteropacity,filtershadow,filtershadowcolor';
-OLregCmds(OLfilterCmds);
-
-// DEFAULT CONFIGURATION
-if(OLud('filter'))var ol_filter=0;
-if(OLud('fadein'))var ol_fadein=52;
-if(OLud('fadeout'))var ol_fadeout=52;
-if(OLud('fadetime'))var ol_fadetime=800;
-if(OLud('filteropacity'))var ol_filteropacity=100;
-if(OLud('filtershadow'))var ol_filtershadow=0;
-if(OLud('filtershadowcolor'))var ol_filtershadowcolor="#cccccc";
-// END CONFIGURATION
-
-var o3_filter=0,o3_fadein=52,o3_fadeout=52,o3_fadetime=800,o3_filteropacity=100,
-o3_filtershadow=0,o3_filtershadowcolor="#cccccc",OLfiIdx= -1,OLfInc=5,OLfTmInc=40,OLfOp=1,
-OLfiId=0,OLfoId=0,OLfOp2=1,OLfiId2=0,OLfoId2=0,OLfInc2=5,OLfTmInc2=40;
-
-function OLloadFilter(){
-OLload(OLfilterCmds);
-}
-
-function OLparseFilter(pf,i,ar){
-var k=i,p=OLpar;
-if(k<ar.length){
-if(Math.abs(ar[k])==FILTER){OLtoggle(ar[k],pf+'filter');return k;}
-if(ar[k]==FADEIN){p(ar[++k],pf+'fadein');return k;}
-if(ar[k]==FADEOUT){p(ar[++k],pf+'fadeout');return k;}
-if(ar[k]==FADETIME){p(ar[++k],pf+'fadetime');return k;}
-if(ar[k]==FILTEROPACITY){p(ar[++k],pf+'filteropacity');return k;}
-if(ar[k]==FILTERSHADOW){p(ar[++k],pf+'filtershadow');return k;}
-if(ar[k]==FILTERSHADOWCOLOR){OLparQuo(ar[++k],pf+'filtershadowcolor');return k;}}
-return -1;
-}
-
-function OLhasOp(){
-var op=0;if(OLns4||OLieM)return op;var os=over.style,u='undefined';if(os)op=
-(typeof os.opacity!=u||typeof os.MozOpacity!=u||typeof os.KhtmlOpacity!=u||OLie4&&!OLopr)?1:0;
-return(op);
-}
-
-function OLinitFilterLyr(o2){
-if(!OLie55){if(!OLhasOp()){o3_filter=0;return;}if(parent!=self)o3_fadeout=0;}
-if(OLie55){o3_fadein-=1;o3_fadeout-=1;OLfiIdx= -1;
-if(over.style.filter){var p,s,ob=over.filters[28];for(p=28;p<31;p++){
-over.filters[p].enabled=0;}for(s=0;s<28;s++){if(over.filters[s].status)over.filters[s].stop();
-over.filters[s].enabled=0;}ob.enabled=0;ob.opacity=ol_filteropacity;return;}}
-if(OLie55&&(!o3_filter||(OLshadowPI&&o3_shadow)))return;if(!OLie55){
-var b=(OLshadowPI)?OLgetRef('backdrop2'):null;if(o2){if(OLfiId2)clearTimeout(OLfiId2);
-if(OLfoId2)clearInterval(OLfoId2);OLfiId2=OLfoId2=0;if(b)b.style.visibility='hidden';
-over2.style.visibility='hidden';OLopOv(ol_filteropacity,2);
-if(o3_filter&&(o3_fadein||o3_fadeout)){OLfInc2=o3_filteropacity/20;
-OLfOp2=(o3_fadein?1:o3_filteropacity);OLfTmInc2=parseInt(o3_fadetime/20);}}else{
-if(OLfiId)clearTimeout(OLfiId);if(OLfoId)clearInterval(OLfoId);OLfiId=OLfoId=0;
-if(OLshadowPI&&bkdrop)bkdrop.style.visibility='hidden';over.style.visibility='hidden';
-OLopOv(ol_filteropacity);if(o3_filter&&(o3_fadein||o3_fadeout)){OLfInc=o3_filteropacity/20;
-OLfOp=(o3_fadein?1:o3_filteropacity);OLfTmInc=parseInt(o3_fadetime/20);}}return;}
-var d=" progid:DXImageTransform.Microsoft.";over.style.filter="revealTrans()"
-+d+"Fade(Overlap=1.00 enabled=0)"+d+"Inset(enabled=0)"
-+d+"Iris(irisstyle=PLUS,motion=in enabled=0)"+d+"Iris(irisstyle=PLUS,motion=out enabled=0)"
-+d+"Iris(irisstyle=DIAMOND,motion=in enabled=0)"+d+"Iris(irisstyle=DIAMOND,motion=out enabled=0)"
-+d+"Iris(irisstyle=CROSS,motion=in enabled=0)"+d+"Iris(irisstyle=CROSS,motion=out enabled=0)"
-+d+"Iris(irisstyle=STAR,motion=in enabled=0)"+d+"Iris(irisstyle=STAR,motion=out enabled=0)"
-+d+"RadialWipe(wipestyle=CLOCK enabled=0)"+d+"RadialWipe(wipestyle=WEDGE enabled=0)"
-+d+"RadialWipe(wipestyle=RADIAL enabled=0)"+d+"Pixelate(MaxSquare=35,enabled=0)"
-+d+"Slide(slidestyle=HIDE,Bands=25 enabled=0)"+d+"Slide(slidestyle=PUSH,Bands=25 enabled=0)"
-+d+"Slide(slidestyle=SWAP,Bands=25 enabled=0)"+d+"Spiral(GridSizeX=16,GridSizeY=16 enabled=0)"
-+d+"Stretch(stretchstyle=HIDE enabled=0)"+d+"Stretch(stretchstyle=PUSH enabled=0)"
-+d+"Stretch(stretchstyle=SPIN enabled=0)"+d+"Wheel(spokes=16 enabled=0)"
-+d+"GradientWipe(GradientSize=1.00,wipestyle=0,motion=forward enabled=0)"
-+d+"GradientWipe(GradientSize=1.00,wipestyle=0,motion=reverse enabled=0)"
-+d+"GradientWipe(GradientSize=1.00,wipestyle=1,motion=forward enabled=0)"
-+d+"GradientWipe(GradientSize=1.00,wipestyle=1,motion=reverse enabled=0)"
-+d+"Zigzag(GridSizeX=8,GridSizeY=8 enabled=0)"+d+"Alpha(enabled=0)"
-+d+"Dropshadow(OffX=5,OffY=5,Positive=true,enabled=0)"
-+d+"Shadow(strength=5,direction=135,enabled=0)";
-}
-
-function OLchkFilter(o,o2){
-if(!o3_filter||o!=over.style||(OLie55&&OLshadowPI&&o3_shadow))return false;
-if(!OLie55){var op=o3_filteropacity;if(op>0&&op<100){if(o2)OLopOv(op,2);else OLopOv(op);}
-if(o3_fadein||o3_fadeout){var p=(o3_fadein)?(o2?OLfOp2:OLfOp):o3_filteropacity;if(o2){
-OLopOv(p,2);if(o3_fadein&&!OLfiId2)OLfadeIn2();}else{OLopOv(p);
-if(o3_fadein&&!OLfiId)OLfadeIn();}}return false;}
-var fi=o3_fadein,fo=o3_fadeout,fp=1,ft=o3_fadetime/1000;if(fi<0||fi>51){fi=fo;fp=0;}
-if(fi==51)fi=parseInt(Math.random()*50);var at=fi>-1&&fi<24&&ft>0,af=fi>23&&fi<51&&ft>0;
-OLfiIdx=(af?fi-23:0);var p,s,e,ob,t=over.filters[OLfiIdx];
-for(p=28;p<31;p++){over.filters[p].enabled=0;}for(s=0;s<28;s++){
-if(over.filters[s].status)over.filters[s].stop();over.filters[s].enabled=0;}
-for(e=1;e<3;e++){if(o3_filtershadowcolor&&o3_filtershadow==e){
-ob=over.filters[28+e];ob.enabled=1;ob.color=o3_filtershadowcolor;}}
-if(o3_filteropacity>0&&o3_filteropacity<100){ob=over.filters[28];
-ob.enabled=1;ob.opacity=o3_filteropacity;}if(fp&&(at||af)){if(at)over.filters[0].transition=fi;
-t.duration=ft;t.apply();o.visibility='visible';t.play();return true;}
-return false;
-}
-
-function OLopOv(op,o2){
-var o=(o2?over2:over),os=o.style;
-if(OLie4&&typeof os.filter=='string')os.filter='Alpha(opacity='+op+')';
-else if(typeof os.opacity!='undefined')os.opacity=op/100;
-else if(typeof os.MozOpacity!='undefined')os.MozOpacity=op/100;
-else if(typeof os.KhtmlOpacity!='undefined')os.KhtmlOpacity=op/100;
-}
-
-function OLopOvSh(op,o){
-if(!bkdrop&&!o)return;var os=(o)?o.style:bkdrop.style;
-if(OLie4&&typeof os.filter=='string')os.filter='Alpha(opacity='+op+')';
-else if(typeof os.opacity!='undefined')os.opacity=op/100;
-else if(typeof os.MozOpacity!='undefined')os.MozOpacity=op/100;
-else if(typeof os.KhtmlOpacity!='undefined')os.KhtmlOpacity=op/100;
-}
-
-function OLcleanupFilter(o,o2){
-if(!o3_filter||!over||o!=over||(OLie55&&OLshadowPI&&o3_shadow))return;if(!OLie55){
-if(o2){if(OLfiId2)clearTimeout(OLfiId2);if(OLfoId2)clearInterval(OLfoId2);
-OLfiId2=OLfoId2=0;var op=o3_filteropacity;if(op>0&&op<100)OLopOv(ol_filteropacity,2);}else{
-if(OLfiId)clearTimeout(OLfiId);if(OLfoId)clearInterval(OLfoId);OLfiId=OLfoId=0;
-var op=o3_filteropacity;if(op>0&&op<100)OLopOv(ol_filteropacity);}return;}
-if(typeof over.filters!='object')return;
-var os=over.style,fi=o3_fadein,fo=o3_fadeout;
-if(fi>=0&&fi<=51&&fo==fi){if(OLfiIdx<0)return;var t=over.filters[OLfiIdx];
-if(t.status)t.stop();os.visibility='visible';t.apply();
-os.visibility='hidden';t.play();
-}else{if(fo>=0&&fo<=51){fi=fo;if(fi==51)fi=parseInt(Math.random()*50);
-var ft=o3_fadetime;var at=fi>-1&&fi<24&&ft>0; var af=fi>23&&fi<51&&ft>0;
-OLfiIdx=(af?fi-23:0);t=over.filters[OLfiIdx];if(at||af){
-if(at)over.filters[0].transition=fi;if(t.status)t.stop();
-os.visibility='visible';t.apply();os.visibility='hidden';t.play();}}}
-OLfiIdx=-1;
-}
-
-function OLfadeIn(){
-if(OLfOp>=o3_filteropacity){if(OLshadowPI&&o3_shadow&&bkdrop)OLopOvSh(o3_shadowopacity);
-OLopOv(o3_filteropacity);clearTimeout(OLfiId);OLfiId=0;}else{OLopOv(OLfOp);
-if(!OLfOp&&over.style.visibility=='hidden')over.style.visibility='visible';var ops=0.3*OLfOp;
-if(OLfOp>40&&OLshadowPI&&o3_shadow&&bkdrop&&ops<o3_shadowopacity)OLopOvSh(ops);OLfOp+=OLfInc;
-OLfiId=setTimeout("OLfadeIn()",OLfTmInc);}
-}
-function OLfadeIn2(){
-if(OLfOp2>=o3_filteropacity){if(OLshadowPI&&o3_shadow&&bkdrop)OLopOvSh(o3_shadowopacity);
-OLopOv(o3_filteropacity,2);clearTimeout(OLfiId2);OLfiId2=0;}else{OLopOv(OLfOp2,2);
-if(!OLfOp2&&over2&&over2.style.visibility=='hidden')over2.style.visibility='visible';
-var ops=0.3*OLfOp2;if(OLfOp2>40&&OLshadowPI&&o3_shadow&&bkdrop&&ops<o3_shadowopacity)
-OLopOvSh(ops);OLfOp2+=OLfInc2;OLfiId2=setTimeout("OLfadeIn2()",OLfTmInc2);}
-}
-
-function OLchkFadeOut(o){
-if(OLie55||!o3_filter||!o3_fadeout||o!=over.style)return false;
-OLfoId=setInterval('OLfadeOut()',OLfTmInc);return true;
-}
-function OLfadeOut(){
-if(OLfOp<0){clearInterval(OLfoId);OLfoId=0;o3_fadeout=0;if(OLshadowPI&&o3_shadow&&bkdrop){
-bkdrop.style.visibility="hidden";OLcleanUpShadow();}OLhideObject(over);}else{var ops=0.3*OLfOp;
-if(OLfOp>40&&OLshadowPI&&o3_shadow&&bkdrop&&ops<o3_shadowopacity)OLopOvSh(ops);OLopOv(OLfOp);
-OLfOp-=OLfInc;}
-}
-function OLchkFadeOut2(o){
-if(OLie55||!o3_filter||!o3_fadeout||o!=over.style)return false;
-OLfoId2=setInterval('OLfadeOut2()',OLfTmInc2);return true;
-}
-function OLfadeOut2(){
-var b=(OLshadowPI)?OLgetRef('backdrop2'):null;if(OLfOp2<0){clearInterval(OLfoId2);if(b){
-b.style.visibility="hidden";if(over==over2)OLcleanUpShadow();}OLfoId2=0;OLhideObjectP2(over);
-over2.style.visibility='hidden';}else{var ops=0.3*OLfOp2;if(b){if(OLfOp2>40)OLopOvSh(ops,b);
-else OLopOvSh(1,b);}OLopOv(OLfOp2,2);OLfOp2-=OLfInc2;}
-}
-
-OLregRunTimeFunc(OLloadFilter);
-OLregCmdLineFunc(OLparseFilter);
-
-OLfilterPI=1;
-OLloaded=1;
diff --git a/src/extras/sos-html-logs/share/html/overlib/overlibmws_function.js b/src/extras/sos-html-logs/share/html/overlib/overlibmws_function.js
deleted file mode 100644
index 3de9ea0b..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/overlibmws_function.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- overlibmws_function.js plug-in module - Copyright Foteos Macrides 2002-2007. All rights reserved.
- For support of the FUNCTION feature.
- Initial: August 18, 2002 - Last Revised: January 1, 2007
- See the Change History and Command Reference for overlibmws via:
-
- http://www.macridesweb.com/oltest/
-
- Published under an open source license: http://www.macridesweb.com/oltest/license.html
-*/
-
-OLloaded=0;
-OLregCmds('function');
-
-// DEFAULT CONFIGURATION
-if(OLud('function'))var ol_function=null;
-// END CONFIGURATION
-
-var o3_function=null;
-
-function OLloadFunction(){
-OLload('function');
-}
-
-function OLparseFunction(pf,i,ar){
-var k=i,v=null;
-if(k<ar.length){
-if(ar[k]==FUNCTION){if(pf=='ol_'){if(typeof ar[k+1]!='number'){v=ar[++k];
-ol_function=(typeof v=='function'?v:null);}}
-else{OLudf=0;v=null;if(typeof ar[k+1]!='number')v=ar[++k];OLoptFUNCTION(v);}return k;}}
-return -1;
-}
-
-function OLoptFUNCTION(callme){
-o3_text=(callme?(typeof callme=='string'?(/.+\(.*\)/.test(callme)?eval(callme):
-callme):callme()):(o3_function?o3_function():'No Function'));
-return 0;
-}
-
-OLregRunTimeFunc(OLloadFunction);
-OLregCmdLineFunc(OLparseFunction);
-
-OLfunctionPI=1;
-OLloaded=1;
diff --git a/src/extras/sos-html-logs/share/html/overlib/overlibmws_hide.js b/src/extras/sos-html-logs/share/html/overlib/overlibmws_hide.js
deleted file mode 100644
index 08b9a0b4..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/overlibmws_hide.js
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- overlibmws_hide.js plug-in module - Copyright Foteos Macrides 2003-2007. All rights reserved.
- For hiding elements.
- Initial: November 13, 2003 - Last Revised: March 10, 2007
- See the Change History and Command Reference for overlibmws via:
-
- http://www.macridesweb.com/oltest/
-
- Published under an open source license: http://www.macridesweb.com/oltest/license.html
-*/
-
-OLloaded=0;
-var OLhideCmds='hideselectboxes,hidebyid,hidebyidall,hidebyidns4';
-OLregCmds(OLhideCmds);
-
-// DEFAULT CONFIGURATION
-if(OLud('hideselectboxes'))var ol_hideselectboxes=0;
-if(OLud('hidebyid'))var ol_hidebyid='';
-if(OLud('hidebyidall'))var ol_hidebyidall='';
-if(OLud('hidebyidns4'))var ol_hidebyidns4='';
-// END CONFIGURATION
-
-var o3_hideselectboxes=0,o3_hidebyid='',o3_hidebyidall='',o3_hidebyidns4='',
-OLselectOK=(OLie7||OLop7||OLgek>=20030624)?1:0;
-
-function OLloadHide(){
-OLload(OLhideCmds);
-}
-
-function OLparseHide(pf,i,ar){
-var k=i,q=OLparQuo;
-if(k<ar.length){
-if(Math.abs(ar[k])==HIDESELECTBOXES){OLtoggle(ar[k],pf+'hideselectboxes');return k;}
-if(ar[k]==HIDEBYID){q(ar[++k],pf+'hidebyid');return k;}
-if(ar[k]==HIDEBYIDALL){q(ar[++k],pf+'hidebyidall');return k;}
-if(ar[k]==HIDEBYIDNS4){q(ar[++k],pf+'hidebyidns4');return k;}}
-return -1;
-}
-
-function OLchkHide(hide){
-if(OLiframePI&&OLie55)return;if(OLmodalPI&&o3_modal)o3_hideselectboxes=0;var id,o,i;
-if(o3_hidebyid&&typeof o3_hidebyid=='string'&&!(o3_hideselectboxes&&OLns6)&&!OLop7&&!OLns4){
-id=o3_hidebyid.replace(/[ ]/ig,'').split(',');for(i=0;i<id.length;i++){
-o=(OLie4?o3_frame.document.all[id[i]]:OLns6?o3_frame.document.getElementById(id[i]):null);
-if(o)o.style.visibility=(hide?'hidden':'visible');}}
-if(o3_hidebyidall&&typeof o3_hidebyidall=='string'){
-id=o3_hidebyidall.replace(/[ ]/ig,'').split(',');for(i=0;i<id.length;i++){
-o=OLgetRefById(id[i]);if(o){o=(OLns4)?o:o.style;
-o.visibility=(hide?'hidden':'visible');}}}
-if(o3_hidebyidns4&&OLns4&&typeof o3_hidebyidns4=='string'){
-id=o3_hidebyidns4.replace(/[ ]/ig,'').split(',');for(i=0;i<id.length;i++){
-o=eval('o3_frame.document.'+id[i]);if(o)o.visibility=(hide?'hidden':'visible');}}
-}
-
-function OLselectBoxes(hide,all){
-if((OLiframePI&&OLie55)||OLselectOK||OLns4)return;var sel=OLie4?
-o3_frame.document.all.tags('select'):o3_frame.document.getElementsByTagName('select'),
-px=over.offsetLeft,py=over.offsetTop,pw=over.offsetWidth,ph=over.offsetHeight,bx=px,by=py,
-bw=pw,bh=ph,sx,sy,sw,sh,i,sp,si;if((OLshadowPI)&&bkdrop&&o3_shadow){bx=bkdrop.offsetLeft;
-by=bkdrop.offsetTop;bw=bkdrop.offsetWidth;bh=bkdrop.offsetHeight;}for(i=0;i<sel.length;i++){
-sx=0;sy=0;si=0;if(sel[i].offsetParent){sp=sel[i];while(sp.offsetParent&&
-sp.offsetParent.tagName.toLowerCase()!='body'){if(sp.offsetParent.id=='overDiv'||
-sp.offsetParent.id=='overDiv2')si=1;sp=sp.offsetParent;sx+=sp.offsetLeft;sy+=sp.offsetTop;}
-sx+=sel[i].offsetLeft;sy+=sel[i].offsetTop;sw=sel[i].offsetWidth;sh=sel[i].offsetHeight;
-if(si||(!OLie4&&sel[i].size<2))continue;else if(hide){if((px+pw>sx&&px<sx+sw&&py+ph>sy&&
-py<sy+sh)||(bx+bw>sx&&bx<sx+sw&&by+bh>sy&&by<sy+sh)){if(sel[i].style.visibility!="hidden")
-sel[i].style.visibility="hidden";}}else{if(all||(!(OLovertwoPI&&over==over2)&&(px+pw<sx||
-px>sx+sw||py+ph<sy||py>sy+sh)&&(bx+bw<sx||bx>sx+sw||by+bh<sy||by>sy+sh))){
-if(sel[i].style.visibility!="visible")sel[i].style.visibility="visible";}}}}
-}
-
-function OLhideUtil(a1,a2,a3,a4,a5,a6){
-if(a4==null){OLchkHide(a1);if(o3_hideselectboxes)OLselectBoxes(a2,a3);}else{OLchkHide(a1);
-OLchkHide(a2);if(o3_hideselectboxes){OLselectBoxes(a3,a4);OLselectBoxes(a5,a6);}}
-}
-
-OLregRunTimeFunc(OLloadHide);
-OLregCmdLineFunc(OLparseHide);
-
-OLhidePI=1;
-OLloaded=1;
diff --git a/src/extras/sos-html-logs/share/html/overlib/overlibmws_iframe.js b/src/extras/sos-html-logs/share/html/overlib/overlibmws_iframe.js
deleted file mode 100644
index 06a59114..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/overlibmws_iframe.js
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- overlibmws_iframe.js plug-in module - Copyright Foteos Macrides 2003-2007. All rights reserved.
- Masks system controls to prevent obscuring of popops for IE v5.5 or higher.
- Initial: October 19, 2003 - Last Revised: April 22, 2007
- See the Change History and Command Reference for overlibmws via:
-
- http://www.macridesweb.com/oltest/
-
- Published under an open source license: http://www.macridesweb.com/oltest/license.html
-*/
-
-OLloaded=0;
-
-var OLifsP1=null,OLifsSh=null,OLifsP2=null;
-
-// IFRAME SHIM SUPPORT FUNCTIONS
-function OLinitIfs(){
-if(!OLie55)return;
-if((OLovertwoPI)&&over2&&over==over2){
-var o=o3_frame.document.all['overIframeOvertwo'];
-if(!o||OLifsP2!=o){OLifsP2=null;OLgetIfsP2Ref();}return;}
-o=o3_frame.document.all['overIframe'];
-if(!o||OLifsP1!=o){OLifsP1=null;OLgetIfsRef();}
-if((OLshadowPI)&&o3_shadow){o=o3_frame.document.all['overIframeShadow'];
-if(!o||OLifsSh!=o){OLifsSh=null;OLgetIfsShRef();}}
-}
-
-function OLsetIfsRef(o,i,z){
-o.id=i;o.src='javascript:false;';o.scrolling='no';var os=o.style;os.position='absolute';
-os.top='0px';os.left='0px';os.width='1px';os.height='1px';os.visibility='hidden';
-os.zIndex=over.style.zIndex-z;os.filter='Alpha(style=0,opacity=0)';
-}
-
-function OLgetIfsRef(){
-if(OLifsP1||!OLie55)return;
-OLifsP1=o3_frame.document.createElement('iframe');
-OLsetIfsRef(OLifsP1,'overIframe',2);
-o3_frame.document.body.appendChild(OLifsP1);
-}
-
-function OLgetIfsShRef(){
-if(OLifsSh||!OLie55)return;
-OLifsSh=o3_frame.document.createElement('iframe');
-OLsetIfsRef(OLifsSh,'overIframeShadow',3);
-o3_frame.document.body.appendChild(OLifsSh);
-}
-
-function OLgetIfsP2Ref(){
-if(OLifsP2||!OLie55)return;
-OLifsP2=o3_frame.document.createElement('iframe');
-OLsetIfsRef(OLifsP2,'overIframeOvertwo',1);
-o3_frame.document.body.appendChild(OLifsP2);
-}
-
-function OLsetDispIfs(o,w,h){
-var os=o.style;
-os.width=w+'px';os.height=h+'px';os.clip='rect(0px '+w+'px '+h+'px 0px)';
-o.filters.alpha.enabled=true;
-}
-
-function OLdispIfs(){
-if(!OLie55)return;
-var wd=over.offsetWidth,ht=over.offsetHeight;
-if(OLfilterPI&&o3_filter&&o3_filtershadow){wd+=5;ht+=5;}
-if((OLovertwoPI)&&over2&&over==over2){
-if(!OLifsP2)return;
-OLsetDispIfs(OLifsP2,wd,ht);return;}
-if(!OLifsP1)return;
-OLsetDispIfs(OLifsP1,wd,ht);
-if((!OLshadowPI)||!o3_shadow||!OLifsSh)return;
-OLsetDispIfs(OLifsSh,wd,ht);
-}
-
-function OLshowIfs(){
-if(OLifsP1){OLifsP1.style.visibility="visible";
-if((OLshadowPI)&&o3_shadow&&OLifsSh)OLifsSh.style.visibility="visible";}
-}
-
-function OLhideIfs(o){
-if(!OLie55||o!=over)return;
-if(OLifsP1)OLifsP1.style.visibility="hidden";
-if((OLshadowPI)&&o3_shadow&&OLifsSh)OLifsSh.style.visibility="hidden";
-}
-
-function OLrepositionIfs(X,Y){
-if(OLie55){if((OLovertwoPI)&&over2&&over==over2){
-if(OLifsP2)OLrepositionTo(OLifsP2,X,Y);}
-else{if(OLifsP1){OLrepositionTo(OLifsP1,X,Y);if((OLshadowPI)&&o3_shadow&&OLifsSh)
-OLrepositionTo(OLifsSh,X+o3_shadowx,Y+o3_shadowy);}}}
-}
-
-OLiframePI=1;
-OLloaded=1;
diff --git a/src/extras/sos-html-logs/share/html/overlib/overlibmws_modal.js b/src/extras/sos-html-logs/share/html/overlib/overlibmws_modal.js
deleted file mode 100644
index 394c3dac..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/overlibmws_modal.js
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- overlibmws_modal.js plug-in module - Copyright Foteos Macrides 2006-2007. All rights reserved.
- For support of the MODAL feature.
- Initial: November 15, 2006 - Last Revised: September 22, 2007
- See the Change History and Command Reference for overlibmws via:
-
- http://www.macridesweb.com/oltest/
-
- Published under an open source license: http://www.macridesweb.com/oltest/license.html
-*/
-
-OLloaded=0;var OLmodalCmds='modal,modalcolor,modalopacity';OLregCmds(OLmodalCmds);
-
-// DEFAULT CONFIGURATION
-if(OLud('modal'))var ol_modal=0;
-if(OLud('modalcolor'))var ol_modalcolor="#bbbbbb";
-if(OLud('modalopacity'))var ol_modalopacity=40;
-// END CONFIGURATION
-
-var o3_modal=0,o3_modalcolor="#bbbbbb",o3_modalopacity=40;
-
-function OLloadModal(){
-OLload(OLmodalCmds);
-}
-
-function OLparseModal(pf,i,ar){
-var k=i;if(k<ar.length){
-if(Math.abs(ar[k])==MODAL){OLtoggle(ar[k],pf+'modal');return k;}
-if(ar[k]==MODALCOLOR){OLparQuo(ar[++k],pf+'modalcolor');return k;}
-if(ar[k]==MODALOPACITY){OLpar(ar[++k],pf+'modalopacity');return k;}}
-return -1;
-}
-
-var OLmMask=null,OLmIframe=null,OLmMaskOn=0,OLmSelectOK=(OLie55||OLop7||OLgek>=20030624)?1:0,
-OLmRoot='html',OLmGotSc=0,OLmScLeft=0,OLmScTop=0,OLmKDH=null,OLmTI=new Array(),
-OLmTT=new Array("a","button","iframe","input","select","textarea"),OLmEdit=0;
-
-function OLchkModal(){
-if(o3_modal){if(o3_sticky&&!OLns4)OLmInitMask();else o3_modal=0;}
-}
-function OLclearModal(){
-if(OLmMaskOn)OLmHideMask();
-}
-
-function OLsetModalIframe(o,i,z){
-o.id=i;o.src='javascript:false;';o.scrolling='no';var os=o.style;
-os.position='absolute';os.zIndex=z;os.filter='Alpha(style=0,opacity=0)';
-}
-
-function OLmInitMask(){
-OLmRoot=(o3_frame.document.compatMode&&o3_frame.document.compatMode=='BackCompat')?'body':'html';
-var doCss=(!OLgetRef('modalMask'))?1:0,zI=(over)?over.style.zIndex-2:998;OLmMask=OLmkLyr('modalMask',o3_frame);
-OLmMask.style.zIndex=zI;if(OLie55){if(!OLgetRef('modalIframe')){OLmIframe=o3_frame.document.createElement('iframe');
-OLsetModalIframe(OLmIframe,'modalIframe',(zI-1));o3_frame.document.body.appendChild(OLmIframe);}
-else OLmIframe.style.zIndex=(zI-1);}var o=OLmMask.style,op=o3_modalopacity;op=(op<=100&&op>0?op:100);
-o.backgroundColor=o3_modalcolor;if(doCss){o.display='none';o.top='0px';o.left='0px';o.width='100%';o.height='100%';
-o.visibility='visible';if(OLie55){var oi=o3_frame.document.all['modalIframe'].style;oi.display='none';oi.top='0px';
-oi.left='0px';oi.width='100%';oi.height='100%';oi.visibility='visible';}}if(OLie4&&!OLieM&&typeof o.filter=='string'){
-o.filter='Alpha(opacity='+op+')';if(OLie55)OLmMask.filters.alpha.enabled=1;}else{op=op/100;if(typeof o.opacity!='undefined')
-o.opacity=op;else if(typeof o.MozOpacity!='undefined')o.MozOpacity=op;else if(typeof o.KhtmlOpacity!='undefined')
-o.KhtmlOpacity=op;}OLmAddEv(window,"resize",OLmHandleMask);OLmShowMask();
-}
-function OLmShowMask(){
-OLmMaskOn=1;if(!OLie4||OLop7){OLmKDH=document.onkeypress?document.onkeypress.toString():null;
-document.onkeypress=OLmKeyDownHandler;}else OLmDisableTI();OLmMask.style.display="block";
-if(OLie55)OLmIframe.style.display="block";OLmHandleMask();OLmSetMaskSize();
-if(!OLmSelectOK)OLmHideSB();
-}
-function OLmHandleMask(){
-if(OLmMaskOn){if(!OLmGotSc){OLmScLeft=parseInt((OLie4&&!OLop7?OLfd(o3_frame).scrollLeft:
-o3_frame.pageXOffset),10);OLmScTop=parseInt((OLie4&&!OLop7?OLfd(o3_frame).scrollTop:
-o3_frame.pageYOffset),10);OLmGotSc=1;}
-var root=o3_frame.document.getElementsByTagName(OLmRoot)[0];if(root.style.overflow!=
-'hidden')root.style.overflow='hidden';var scLeft=parseInt((OLie4&&!OLop7?
-OLfd(o3_frame).scrollLeft:o3_frame.pageXOffset),10),scTop=parseInt((OLie4&&!OLop7?
-OLfd(o3_frame).scrollTop:o3_frame.pageYOffset),10),o=OLmMask.style,oi=(OLie55&&OLmIframe)?
-OLmIframe.style:null;o.top=scTop+"px";o.left=scLeft+"px";o.top=scTop+"px";o.left=scLeft+"px";
-if(oi){oi.top=scTop+"px";oi.left=scLeft+"px";oi.top=scTop+"px";oi.left=scLeft+"px";}
-OLmSetMaskSize();}
-}
-function OLmSetMaskSize(){
-var root=o3_frame.document.getElementsByTagName(OLmRoot)[0],mHt,fullWd=OLmViewportWd(),
-fullHt=OLmViewportHt();if(fullHt>root.scrollHeight)mHt=fullHt;else mHt=root.scrollHeight;
-OLmMask.style.height=mHt+'px';OLmMask.style.width=root.scrollWidth+'px';if(OLie55&&OLmIframe){
-OLmIframe.style.height=mHt+'px';OLmIframe.style.width=root.scrollWidth+'px';}
-}
-function OLmHideMask(){
-OLmMaskOn=0;var root=o3_frame.document.getElementsByTagName(OLmRoot)[0];root.style.overflow=
-(OLop7?'auto':'');if(!OLie4||OLop7){document.onkeypress=OLmKDH;OLmKDH=null;}else OLmRestoreTI();
-if(!OLmSelectOK)OLmShowSB();OLmRemoveEv(window,"resize",OLmHandleMask);
-if(o3_frame.scrollTo&&OLmGotSc){o3_frame.scrollTo(OLmScLeft,OLmScTop);OLmGotSc=0;}
-if(OLgetRef('modalMask')&&OLmMask){OLmMask.style.display='none';if(OLie55)
-OLmIframe.style.display='none';}OLmEdit=0;
-}
-
-function OLmKeyDownHandler(e){
-var ev=(e||event),k=ev.keyCode,c=ev.charCode;
-if(OLmMaskOn&&!OLmEdit&&(k==9||c==32||(OLgek&&k==13)||(k>=32&&k<=40)))return false;
-}
-
-function OLmAddEv(obj,evType,fn){
-if(obj.addEventListener){obj.addEventListener(evType,fn,false);return true;}
-else if(obj.attachEvent){var r=obj.attachEvent("on"+evType,fn);return r;}else return false;
-}
-function OLmRemoveEv(obj,evType,fn){
-if(obj.removeEventListener){obj.removeEventListener(evType,fn,false);return true;}
-else if(obj.detachEvent){var r=obj.detachEvent("on"+evType,fn);return r;}else return false;
-}
-
-function OLmViewportWd(){
-if(o3_frame.innerWidth!=o3_frame.undefined){return o3_frame.innerWidth;}
-if(o3_frame.document.compatMode=='CSS1Compat'){
-return o3_frame.document.documentElement.clientWidth;}
-if(o3_frame.document.body)return o3_frame.document.body.clientWidth;return o3_frame.undefined;
-}
-function OLmViewportHt(){
-if(o3_frame.innerHeight!=o3_frame.undefined)return o3_frame.innerHeight;
-if(o3_frame.document.compatMode=='CSS1Compat')
-return o3_frame.document.documentElement.clientHeight;
-if(o3_frame.document.body)return o3_frame.document.body.clientHeight;return o3_frame.undefined;
-}
-
-function OLmHideSB(){
-var s=over.innerHTML;over.innerHTML='';var sel=OLie4?o3_frame.document.all.tags('select'):
-o3_frame.document.getElementsByTagName('select');for(i=0;i<sel.length;i++)
-sel[i].style.visibility="hidden";over.innerHTML=s;
-}
-function OLmShowSB(){
-var s=over.innerHTML;over.innerHTML='';var sel=OLie4?o3_frame.document.all.tags('select'):
-o3_frame.document.getElementsByTagName('select');for(i=0;i<sel.length;i++)
-sel[i].style.visibility="visible";over.innerHTML=s;
-}
-
-function OLmDisableTI(){
-if(OLie4&&!OLop7){var i=0;for(var j=0;j<OLmTT.length;j++){
-var tagE=o3_frame.document.getElementsByTagName(OLmTT[j]);for(var k=0;k<tagE.length; k++){
-OLmTI[i]=tagE[k].tabIndex;tagE[k].tabIndex="-1";i++;}}}
-}
-function OLmRestoreTI(){
-if(OLie4&&!OLop7){var i=0;for(var j=0;j<OLmTT.length;j++){
-var tagE=o3_frame.document.getElementsByTagName(OLmTT[j]);for(var k=0;k<tagE.length;k++){
-tagE[k].tabIndex=OLmTI[i];tagE[k].tabEnabled=true;i++;}}}
-}
-
-OLregRunTimeFunc(OLloadModal);
-OLregCmdLineFunc(OLparseModal);
-
-OLmodalPI=1;
-OLloaded=1;
diff --git a/src/extras/sos-html-logs/share/html/overlib/overlibmws_overtwo.js b/src/extras/sos-html-logs/share/html/overlib/overlibmws_overtwo.js
deleted file mode 100644
index 72ba9dfc..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/overlibmws_overtwo.js
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- overlibmws_overtwo.js plug-in module - Copyright Foteos Macrides 2003-2007. All rights reserved.
- For support of the popups-within-a-popup feature.
- Initial: July 14, 2003 - Last Revised: July 7, 2007
- See the Change History and Command Reference for overlibmws via:
-
- http://www.macridesweb.com/oltest/
-
- Published under an open source license: http://www.macridesweb.com/oltest/license.html
-*/
-
-OLloaded=0;
-OLregCmds('label2');
-
-// DEFAULT CONFIGURATION
-if(OLud('label2'))var ol_label2="";
-// END CONFIGURATION
-
-var o3_label2="",OLshowingsticky2=0,over2=null,OLp1over=null,bkdrop2=null,OLp1bkdrop=null,
-OLp1scroll=0,OLp1X=0,OLp1Y=0,OLp1If=null,OLp1IfShadow=null,OLp1bubbleHt=0,OLp1exclusive=0,
-OLp1modal=0,OLp1fiIdx= -1,OLp1Hover=0;
-
-function OLloadOvertwo(){
-OLload('label2');
-}
-
-function OLparseOvertwo(pf,i,ar){
-var k=i,q=OLparQuo;
-if(k<ar.length){
-if(ar[k]==LABEL2){q(ar[++k],pf+'label2');return k;}}
-return -1;
-}
-
-// PUBLIC FUNCTIONS
-function overlib2(){
-var ar=arguments;if(over2)cClick2();if(!OLshowingsticky||ar.length==0)return false;
-if(OLtimerid>0){clearTimeout(OLtimerid);OLtimerid=0;};if(OLshowid>0){clearTimeout(OLshowid);
-OLshowid=0;}if(OLdelayid>0){clearTimeout(OLdelayid);OLdelayid=0;}
-if(typeof over.onmouseover!='undefined'&&over.onmouseover!=null){OLp1Hover=1;OLhover=0;
-over.onmouseover=null;}else OLp1Hover=0;OLp1over=null;OLp1scroll=(OLscrollPI&&o3_scroll?1:0);
-if(OLp1scroll){OLp1X=over.scroll.x;OLp1Y=over.scroll.y;OLclearScroll();o3_scroll=0;}
-if(OLfunctionPI)o3_function=ol_function;if(OLdraggablePI&&o3_draggable)OLclearDrag();
-OLp1exclusive=(OLexclusivePI&&o3_exclusive?1:0);OLp1modal=(OLmodalPI&&o3_modal?1:0);
-if((OLiframePI)&&OLifsP1){OLp1If=OLifsP1;OLifsP1=null;if(OLifsSh){OLp1IfShadow=OLifsSh;
-OLifsSh=null;}}else{OLp1If=null;OLp1IfSh=null}OLpullP1(OLo2c(1));
-if(OLbubblePI)OLp1bubbleHt=OLbubbleHt;if(OLfilterPI){OLp1fiIdx=OLfiIdx;
-if(!OLie55&&o3_filter)OLopOv(o3_filteropacity);}
-OLload(OLo2c(0));o3_label2=ol_label2;OLparseTokens('o3_',ar);OLpushP1(OLp1co);
-if(OLexclusivePI)o3_exclusive=OLp1exclusive;if(o3_decode)OLdecode();
-if(OLbubblePI)OLchkForBubbleEffect();if(o3_autostatus==2&&o3_cap!="")o3_status=o3_cap;
-else if(o3_autostatus==1&&o3_text!="")o3_status=o3_text;
-if(o3_delay==0)OLdispP2();else OLdelayid=setTimeout("OLdispP2()",o3_delay);
-if(o3_status!=""){self.status=o3_status;return true;}
-else if(!(OLop7&&event&&event.type=='mouseover'))return false;
-}
-
-function nd2(){
-if(OLshowingsticky2)return false;return cClick2();
-}
-
-function cClick2(){
-if(!over2||over!=over2)return false;
-if(OLtimerid>0){clearTimeout(OLtimerid);OLtimerid=0;}
-if(OLshowid>0){clearTimeout(OLshowid);OLshowid=0;}
-if(OLp1over&&OLp1over!=OLmkLyr()){OLp1over=null;over2=null;return false;}
-OLhover=0;over.onmouseover=null;OLhideObjectP2(over);
-OLshowingsticky2=0;if(OLp1bkdrop){bkdrop=OLp1bkdrop;OLp1bkdrop=null;}
-if(OLp1over){over=OLp1over;OLp1over=null;}
-if((OLiframePI)&&OLp1If){OLifsP1=OLp1If;OLp1If=null;
-if(OLp1IfShadow){OLifsSh=OLp1IfShadow;OLp1IfShadow=null;}}
-OLpushP1(OLo2c(1));if(OLbubblePI){OLbubbleHt=OLp1bubbleHt;OLp1BubbleHt=0;}
-if(OLfilterPI)OLfiIdx=OLp1fiIdx;var o=OLgetRefById();if(o&&o==over){
-if(OLp1scroll){o3_scroll=1;OLp1scroll=0;OLchkScroll(OLp1X,OLp1Y);}else o3_scroll=0;
-if(OLdraggablePI)OLcheckDrag();if(OLp1exclusive){o3_exclusive=1;OLp1exclusive=0;}
-if(OLhidePI)OLhideUtil(0,1,1,0,0,0);
-if(o3_autostatus==2&&o3_cap!="")o3_status=o3_cap;
-else if(o3_autostatus==1&&o3_text!="")o3_status=o3_text;
-if(OLp1Hover){OLoptMOUSEOFF(1);OLp1Hover=0;OLhover=1;}
-if(o3_status!="")self.status=o3_status;}
-if(OLmodalPI&&!OLp1modal)OLclearModal();OLp1modal=0;
-return false;
-}
-
-// SUPPORT FUNCTIONS
-function OLpullP1(c){var i,m=c.split(',');for(i=0;i<m.length;i++)eval('OLp1'+m[i]+'=o3_'+m[i]);}
-function OLpushP1(c){var i,m=c.split(',');for(i=0;i<m.length;i++)eval('o3_'+m[i]+'=OLp1'+m[i]);}
-function OLo2c(a){return OLp1or2+(a?','+OLp1:'')+(OLbubblePI?','+OLbubbleCmds:'')
-+(OLdraggablePI?','+OLdraggableCmds:'')+(OLfilterPI?','+OLfilterCmds:'')+(OLmodalPI?','
-+OLmodalCmds:'')+(OLprintPI?','+OLprintCmds:'')+(OLshadowPI?','+OLshadowCmds:'');}
-
-function OLdispP2(){
-var o=(OLns4?over:over.style),zI=parseInt(o.zIndex)+2;
-o3_delay=0;if(!(over2=OLmkLyr('overDiv2',o3_frame,zI)))return;
-OLp1over=over;over=over2;if(OLmodalPI&&!OLp1modal)OLchkModal();if(OLbubblePI)OLbubbleHt=0;
-if(o3_frame==self){if(o3_noclose)OLoptMOUSEOFF(0);else if(o3_mouseoff)OLoptMOUSEOFF(1);}
-if(o3_sticky)OLshowingsticky2=1;OLdoLyr();
-if(o3_timeout>0){if(OLtimerid>0)clearTimeout(OLtimerid);
-OLtimerid=setTimeout("cClick2()",o3_timeout);o3_timeout=0;}
-if(o3_ref){OLrefXY=OLgetRefXY(o3_ref);if(OLrefXY[0]==null){o3_ref='';o3_midx=0;o3_midy=0;}}
-if(OLshadowPI&&o3_shadow){OLp1bkdrop=bkdrop;bkdrop=bkdrop2;OLinitShadow();}
-if(OLiframePI){OLinitIfs();OLdispIfs();}if(OLfilterPI)OLinitFilterLyr(2);
-if(OLshadowPI&&o3_shadow)OLdispShadow();OLplaceLayer();
-OLshowid=setTimeout("OLshowObjectP2(over2)",1);OLallowmove=(o3_sticky||o3_nofollow)?0:1;
-}
-
-function OLshowObjectP2(o){
-OLshowid=0;if(o)o=(OLns4?o:o.style);
-if(((OLfilterPI)&&!OLchkFilter(o,2))||!OLfilterPI)o.visibility="visible";
-if(OLshadowPI)OLshowShadow();if(OLiframePI&&OLifsP2)OLifsP2.style.visibility="visible";
-if(OLhidePI)OLhideUtil(1,1,0);if(OLdraggablePI)OLcheckDrag();
-}
-
-function OLhideObjectP2(o){
-if(OLshowid>0){clearTimeout(OLshowid);OLshowid=0;}
-if(OLtimerid>0){clearTimeout(OLtimerid);OLtimerid=0;}o3_timeout=0;
-if(OLdelayid>0){clearTimeout(OLdelayid);OLdelayid=0;}o3_delay=0;
-if(o&&o==OLgetRefById('overDiv2')){if(OLscrollPI)OLclearScroll();if(OLdraggablePI)OLclearDrag();
-if(OLfilterPI)OLcleanupFilter(o,2);if(OLshadowPI)OLhideShadow();var os=(OLns4)?o:o.style;
-if(((OLfilterPI)&&!OLchkFadeOut2(os))||!OLfilterPI){os.visibility="hidden";
-if(!OLie55||!OLfilterPI||!o3_filter||o3_fadeout<0)o.innerHTML='';}
-if(OLiframePI&&OLifsP2)OLifsP2.style.visibility="hidden";}
-OLallowmove=o3_nofollow=0;o3_label2=ol_label2;
-}
-
-OLregRunTimeFunc(OLloadOvertwo);
-OLregCmdLineFunc(OLparseOvertwo);
-
-OLovertwoPI=1;
-OLloaded=1;
diff --git a/src/extras/sos-html-logs/share/html/overlib/overlibmws_print.js b/src/extras/sos-html-logs/share/html/overlib/overlibmws_print.js
deleted file mode 100644
index 75659c46..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/overlibmws_print.js
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- overlibmws_print.js plug-in module - Copyright Foteos Macrides 2002-2007. All rights reserved.
- For support of the PRINT feature.
- Initial: April 25, 2005 - Last Revised: January 1, 2007
- See the Change History and Command Reference for overlibmws via:
-
- http://www.macridesweb.com/oltest/
-
- Published under an open source license: http://www.macridesweb.com/oltest/license.html
-*/
-
-OLloaded=0;
-var OLprintCmds='print,printbutton,noautoprint,printcolor,printfont,printsize,printtext,'
-+'printbuttontext,printtitle,printfontclass,printcssfile,printxml,printdoctype,printroot,'
-+'printtype,printcharset,printurl,printjob',OLprJob=null;OLregCmds(OLprintCmds);
-
-// DEFAULT CONFIGURATION
-if(OLud('print'))var ol_print=0;
-if(OLud('printbutton'))var ol_printbutton=0;
-if(OLud('noautoprint'))var ol_noautoprint=0;
-if(OLud('printcolor'))var ol_printcolor="#eeeeff";
-if(OLud('printfont'))var ol_printfont="Verdana,Arial,Helvetica";
-if(OLud('printsize'))var ol_printsize=1;
-if(OLud('printtext'))var ol_printtext='Print';
-if(OLud('printbuttontext'))var ol_printbuttontext='Print';
-if(OLud('printtitle'))var ol_printtitle="Click to Print";
-if(OLud('printfontclass'))var ol_printfontclass="";
-if(OLud('printcssfile'))var ol_printcssfile="";
-if(OLud('printxml'))var ol_printxml="";
-if(OLud('printdoctype'))var ol_printdoctype=
- '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" '
-+'"http://www.w3.org/TR/html4/loose.dtd">';
-if(OLud('printroot'))var ol_printroot="<html>";
-if(OLud('printtype'))var ol_printtype="text/html";
-if(OLud('printcharset'))var ol_printcharset="iso-8859-1";
-if(OLud('printurl'))var ol_printurl="";
-if(OLud('printjob'))var ol_printjob="";
-// END CONFIGURATION
-
-var o3_print=0,o3_printbutton=0,o3_noautoprint,o3_printcolor="",o3_printfont="",o3_printsize=1,
-o3_printtext="",o3_printbuttontext="",o3_printtitle="",o3_printfontclass="",o3_printcssfile="",
-o3_printxml="",o3_printdoctype="",o3_printroot="",o3_printtype="",o3_printcharset="",
-o3_printurl="",o3_printjob="";
-
-function OLloadPrint(){
-OLload(OLprintCmds);
-}
-
-function OLparsePrint(pf,i,ar){
-var k=i,t=OLtoggle,q=OLparQuo;
-if(k<ar.length){
-if(Math.abs(ar[k])==PRINT){t(ar[k],pf+'print');return k;}
-if(Math.abs(ar[k])==PRINTBUTTON){t(ar[k],pf+'printbutton');return k;}
-if(Math.abs(ar[k])==NOAUTOPRINT){t(ar[k],pf+'noautoprint');return k;}
-if(ar[k]==PRINTCOLOR){q(ar[++k],pf+'printcolor');return k;}
-if(ar[k]==PRINTFONT){q(ar[++k],pf+'printfont');return k;}
-if(ar[k]==PRINTSIZE){q(ar[++k],pf+'printsize');return k;}
-if(ar[k]==PRINTTEXT){q(ar[++k],pf+'printtext');return k;}
-if(ar[k]==PRINTBUTTONTEXT){q(ar[++k],pf+'printbuttontext');return k;}
-if(ar[k]==PRINTTITLE){q(ar[++k],pf+'printtitle');return k;}
-if(ar[k]==PRINTFONTCLASS){q(ar[++k],pf+'printfontclass');return k;}
-if(ar[k]==PRINTCSSFILE){q(ar[++k],pf+'printcssfile');return k;}
-if(ar[k]==PRINTXML){q(ar[++k],pf+'printxml');return k;}
-if(ar[k]==PRINTDOCTYPE){q(ar[++k],pf+'printdoctype');return k;}
-if(ar[k]==PRINTROOT){q(ar[++k],pf+'printroot');return k;}
-if(ar[k]==PRINTTYPE){q(ar[++k],pf+'printtype');return k;}
-if(ar[k]==PRINTCHARSET){q(ar[++k],pf+'printcharset');return k;}
-if(ar[k]==PRINTURL){q(ar[++k],pf+'printurl');return k;}
-if(ar[k]==PRINTJOB){q(ar[++k],pf+'printjob');return k;}}
-return -1;
-}
-
-function OLprintDims(){
-if(OLhasDims(o3_printsize)){if(OLns4)o3_printsize="2";}else
-if(!OLns4){var i=parseInt(o3_printsize);o3_printsize=(i>0&&i<8)?OLpct[i]:OLpct[0];}
-}
-
-function OLchkPrint(){if(!o3_sticky)o3_print=0;else over.print=null;}
-
-function OLprintCapLGF(){
-var n=(OLovertwoPI&&over2&&over==over2)?2:1;
-return(o3_print&&!o3_printbutton?'<td align="right"><a href="javascript:'+OLfnRef
-+'return OLprint('+n+');" '+(o3_printtitle?'title="'+o3_printtitle+'" ':'')+'onclick="'
-+OLfnRef+'return OLprint('+n+');"'+(o3_printfontclass?' class="'+o3_printfontclass+'">':
-(OLns4?'><':'')+OLlgfUtil(0,1,'','a',o3_printcolor,o3_printfont,o3_printsize))+o3_printtext
-+(o3_printfontclass?'':(OLns4?OLlgfUtil(1,1,'','a'):''))+'</a></td>':'');
-}
-
-function OLprintFgLGF(){
-var n=(OLovertwoPI&&over2&&over==over2)?2:1;return (o3_print&&(!o3_cap||o3_printbutton)?
-'<div align="center"><form action="javascript:void(0);"><input type="button" '
-+(OLns4?'':'style="font-family:Verdana;font-size:11px;color:#000000;" ')+'value="'
-+o3_printbuttontext+'" title="'+o3_printtitle+'" '+(OLgek?'autocomplete="off" ':'')
-+'onclick="'+OLfnRef+'return OLprint('+n+');" /></form></div>':'');
-}
-
-function OLprint(n){
-if(n!=2&&OLovertwoPI&&over2&&over==over2)cClick2();
-if(!(over&&over.print))return false;if(o3_printjob){eval(o3_printjob);return false;}
-if(o3_printurl){if(!window.print||o3_noautoprint)
-alert('Print (Control-P) the OLprint Window when it appears, then close it.');OLprJob=
-window.open(o3_printurl,'OLurlJob','resizable=1,status=1,screenX=0,left=0,screenY=0,top=0');
-OLprJob.focus();if(OLprJob){if(window.print&&!o3_noautoprint){OLprJob.print();
-setTimeout("OLprJob.close();OLprJob=null;",2);}}return false;}
-var sx=(OLshadowPI&&o3_shadow?o3_shadowx:0),sy=(OLshadowPI&&o3_shadow?o3_shadowy:0),
-lm=20+(sx<0?Math.abs(sx):0),rm=20+(sx>0?sx:0),tm=20+(sy<0?Math.abs(sy):0),bm=20+(sy>0?sy:0),
-pWd=o3_width,pHt=(OLns4?over.clip.height:over.offsetHeight),iWd=pWd+lm+rm,iHt=pHt+tm+bm,
-fs=(OLfilterPI&&OLie55&&o3_filter?o3_filtershadow:0),Fn='{return false;}',
-o2=(OLovertwoPI?OLp1or2c+','+OLp1or2co+','+OLp1co+',scroll,function':'');
-t=o3_printxml+o3_printdoctype+o3_printroot+'<head><meta http-equiv="content-Type" content="'
-+o3_printtype+'; charset='+o3_printcharset+'" /><title>OLprint Job</title>'
-+(o3_printcssfile?'<link rel="stylesheet" type="text/css" href="'+o3_printcssfile+'" />':'')
-+'<script type="text/javascript">var OLfnRef="",OLna='+o3_noautoprint+',OLo2="'+o2+'";'
-+'function OLprintAndClose(){if(window.print&&!OLna){self.print();setTimeout("self.close()",2);}'
-+'else{alert("Print (Control-P) the OLprint Window, then close it.");}}'
-+'function OLprint(){if(window.print)self.print();}function cClick(){self.close();}'
-+'function nd()'+Fn+'function overlib2()'+Fn+'function nd2()'+Fn+'if(OLo2){'
-+'var i,m=OLo2.split(",");for(i=0;i<m.length;i++)eval(m[i].toUpperCase()+"="+0);}</script>'
-+'</head><body onLoad="self.focus();OLprintAndClose()">'
-+(sx||sy?'<div id="printBackdrop" style="position:absolute;z-index:999;visibility:visible;'
-+'width:'+o3_width+(OLns4?';':'px;')+'height:'+pHt+(OLns4?';':'px;')
-+(o3_shadowimage?'background-image:url('+o3_shadowimage+');':'background-color:'
-+o3_shadowcolor+';')+'left:'+(lm+sx).toString()+(OLns4?';':'px;')+'top:'+(tm+sy).toString()
-+(OLns4?';':'px;')+'"></div>':'')
-+'<div id="overPrintDiv" style="position:absolute;z-index:1000;visibility:visible;width:'
-+o3_width+(OLns4?';':'px;')+(o3_background?'background-image:url('+o3_background+');':'')
-+'left:'+lm.toString()+(OLns4?';':'px;')+'top:'+tm.toString()+(OLns4?';':'px;')
-+(fs?'filter:progid:DXImageTransform.Microsoft.':'')
-+(fs==2?'Shadow(color=\''+o3_filtershadowcolor+'\',direction=135,strength=5);':'')
-+(fs==1?'Dropshadow(color=\''+o3_filtershadowcolor+'\');':'')+'">'+over.print
-+'</div></body></html>';
-OLprJob=window.open('','OLprintJob','resizable=0,width='+iWd+',height='+iHt
-+',status=0,location=0,toolbar=0,menubar=0,scrolling=0,screenX=0,left=0,screenY=0,top=0');
-OLprJob.document.write(t);OLprJob.document.close();return false;
-}
-
-OLregRunTimeFunc(OLloadPrint);
-OLregCmdLineFunc(OLparsePrint);
-
-OLprintPI=1;
-OLloaded=1;
diff --git a/src/extras/sos-html-logs/share/html/overlib/overlibmws_regCore.js b/src/extras/sos-html-logs/share/html/overlib/overlibmws_regCore.js
deleted file mode 100644
index 3c079f71..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/overlibmws_regCore.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- overlibmws_regCore.js plug-in module - Copyright Foteos Macrides 2003-2007. All rights reserved.
- Import this file to declare the core command constants in frame documents which do not
- import the core module, overlibmws.js, but point to the overlib() and nd() commands in
- another document of the frameset, e.g. parent.scene.overlib(...) and parent.scene.nd()
- in a frame document named "scene" which does import the core module. You can then use
- this file's OLregisterPlugins() function via a script block to declare pre-existing
- plugin modules, or it's OLregisterCommands() function for new plugins whose
- commands are not yet defined as string variables in this file. The order of
- entries in those functions should parallel the order of importing the plugins.
- Initial: August 3, 2003 - Last Revised: January 1, 2007
- See the Change History and Command Reference for overlibmws via:
-
- http://www.macridesweb.com/oltest/
-
- Published under an open source license: http://www.macridesweb.com/oltest/license.html
-*/
-
-var OLloaded=0,OLpmCnt=1,OLpMtr=new Array();
-OLregisterCommands('inarray,caparray,caption,closetext,right,left,center,autostatuscap,padx,'
-+'pady,below,above,vcenter,donothing,nofollow,background,offsetx,offsety,fgcolor,bgcolor,'
-+'cgcolor,textcolor,capcolor,width,wrap,wrapmax,height,border,base,status,autostatus,snapx,'
-+'snapy,fixx,fixy,relx,rely,midx,midy,ref,refc,refp,refx,refy,fgbackground,bgbackground,'
-+'cgbackground,fullhtml,capicon,textfont,captionfont,textsize,captionsize,timeout,delay,hauto,'
-+'vauto,nojustx,nojusty,fgclass,bgclass,cgclass,capbelow,textpadding,textfontclass,'
-+'captionpadding,captionfontclass,sticky,noclose,mouseoff,offdelay,closecolor,closefont,'
-+'closesize,closeclick,closetitle,closefontclass,decode,label');
-
-var CSSOFF=DONOTHING,CSSCLASS=DONOTHING;
-var OLpluginBUBBLE='bubble,bubbletype,adjbubble';
-var OLpluginCROSSFRAME='frame';
-var OLpluginDEBUG='allowdebug';
-var OLpluginDRAGGABLE='draggable,dragcap,dragid';
-var OLpluginEXCLUSIVE='exclusive,exclusivestatus,exclusiveoverride';
-var OLpluginFILTER='filter,fadein,fadeout,fadetime,filteropacity,filtershadow,filtershadowcolor';
-var OLpluginFUNCTION='function';
-var OLpluginHIDE='hideselectboxes,hidebyid,hidebyidall,hidebyidns4';
-var OLpluginMODAL='modal';
-var OLpluginOVERTWO='label2';
-var OLpluginPRINT='print,printbutton,noautoprint,printcolor,printfont,printsize,printtext,'
-+'printbuttontext,printtitle,printfontclass,printcssfile,printxml,printdoctype,printroot,'
-+'printtype,printcharset,printurl,printjob';
-var OLpluginSCROLL='scroll';
-var OLpluginSHADOW='shadow,shadowx,shadowy,shadowcolor,shadowimage,shadowopacity';
-
-// PUBLIC FUNCTIONS
-function OLregisterCommands(cmdStr){
-if(typeof cmdStr!='string')return;
-var pM=cmdStr.split(',');
-OLpMtr=OLpMtr.concat(pM);
-for(var i=0;i<pM.length;i++)
-eval(pM[i].toUpperCase()+'='+OLpmCnt++);
-}
-
-function OLregisterPlugins(){
-var ar=arguments;
-for(var i=0;i<ar.length;i++){
-if(ar[i].toUpperCase()=='BUBBLE'){OLregisterCommands(OLpluginBUBBLE);continue;}
-if(ar[i].toUpperCase()=='CROSSFRAME'){OLregisterCommands(OLpluginCROSSFRAME);continue;}
-if(ar[i].toUpperCase()=='DEBUG'){OLregisterCommands(OLpluginDEBUG);continue;}
-if(ar[i].toUpperCase()=='DRAGGABLE'){OLregisterCommands(OLpluginDRAGGABLE);continue;}
-if(ar[i].toUpperCase()=='EXCLUSIVE'){OLregisterCommands(OLpluginEXCLUSIVE);continue;}
-if(ar[i].toUpperCase()=='FILTER'){OLregisterCommands(OLpluginFILTER);continue;}
-if(ar[i].toUpperCase()=='FUNCTION'){OLregisterCommands(OLpluginFUNCTION);continue;}
-if(ar[i].toUpperCase()=='HIDE'){OLregisterCommands(OLpluginHIDE);continue;}
-if(ar[i].toUpperCase()=='IFRAME')continue;
-if(ar[i].toUpperCase()=='MODAL'){OLregisterCommands(OLpluginMODAL);continue;}
-if(ar[i].toUpperCase()=='OVERTWO'){OLregisterCommands(OLpluginOVERTWO);continue;}
-if(ar[i].toUpperCase()=='PRINT'){OLregisterCommands(OLpluginPRINT);continue;}
-if(ar[i].toUpperCase()=='REGCORE')continue;
-if(ar[i].toUpperCase()=='SCROLL'){OLregisterCommands(OLpluginSCROLL);continue;}
-if(ar[i].toUpperCase()=='SHADOW'){OLregisterCommands(OLpluginSHADOW);continue;}}
-}
-
-OLloaded=1;
diff --git a/src/extras/sos-html-logs/share/html/overlib/overlibmws_scroll.js b/src/extras/sos-html-logs/share/html/overlib/overlibmws_scroll.js
deleted file mode 100644
index 40f344eb..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/overlibmws_scroll.js
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- overlibmws_scroll.js plug-in module - Copyright Foteos Macrides 2002-2007. All rights reserved.
- For support of the SCROLL feature.
- Initial: October 20, 2002 - Last Revised: January 1, 2007
- See the Change History and Command Reference for overlibmws via:
-
- http://www.macridesweb.com/oltest/
-
- Published under an open source license: http://www.macridesweb.com/oltest/license.html
-*/
-
-OLloaded=0;
-OLregCmds('scroll');
-
-// DEFAULT CONFIGURATION
-if(OLud('scroll'))var ol_scroll=0;
-// END CONFIGURATION
-
-var o3_scroll=0,OLscrollRefresh=100;
-
-function OLloadScroll(){
-OLload('scroll');
-}
-
-function OLparseScroll(pf,i,ar){
-var k=i;
-if(k<ar.length){if(Math.abs(ar[k])==SCROLL){OLtoggle(ar[k],pf+'scroll');return k;}}
-return -1;
-}
-
-function OLchkScroll(X,Y){
-if(o3_scroll){if(!OLshowingsticky||
-(OLovertwoPI&&over==over2&&!OLshowingsticky2)||
-(OLdraggablePI&&o3_draggable&&o3_frame==self)||
-(o3_relx==null&&o3_midx==null)||(o3_rely==null&&o3_midy==null))o3_scroll=0;
-else if(typeof over.scroll=='undefined'||over.scroll.canScroll)
-over.scroll=new OLsetScroll(X,Y,OLscrollRefresh);}
-}
-
-function OLsetScroll(X,Y,refresh){
-if(o3_scroll){this.canScroll=0;this.refresh=refresh;this.x=X;this.y=Y;
-this.timer=setTimeout("OLscrollReposition()",this.refresh);}
-}
-
-function OLclearScroll(){
-if(o3_scroll){if(typeof over.scroll=='undefined'){o3_scroll=0;return;}
-over.scroll.canScroll=1;if(over.scroll.timer){
-clearTimeout(over.scroll.timer);over.scroll.timer=null;}}
-}
-
-function OLscrollReposition(){
-var o=over,oD=(OLovertwoPI&&over==over2?'overDiv2':'overDiv');
-if(o3_scroll&&o&&o==OLgetRefById(oD)){var X,Y,pgLeft,pgTop;
-pgLeft=(OLie4)?OLfd().scrollLeft:o3_frame.pageXOffset;
-pgTop=(OLie4)?OLfd().scrollTop:o3_frame.pageYOffset;
-X=(o.pageX?o.pageX:o.style.left?o.style.left:0)-pgLeft;
-Y=(o.pageY?o.pageY:o.style.top?o.style.top:0)-pgTop;
-if(X!=o.scroll.x||Y!=o.scroll.y){
-OLrepositionTo(o,pgLeft+o.scroll.x,pgTop+o.scroll.y);
-if(OLshadowPI)OLrepositionShadow(pgLeft+o.scroll.x,pgTop+o.scroll.y);
-if(OLiframePI)OLrepositionIfs(pgLeft+o.scroll.x,pgTop+o.scroll.y);
-if(OLhidePI)OLhideUtil(0,1,1,0,0,0);}
-o.scroll.timer=setTimeout("OLscrollReposition()",o.scroll.refresh);}
-}
-
-OLregRunTimeFunc(OLloadScroll);
-OLregCmdLineFunc(OLparseScroll);
-
-OLscrollPI=1;
-OLloaded=1;
diff --git a/src/extras/sos-html-logs/share/html/overlib/overlibmws_shadow.js b/src/extras/sos-html-logs/share/html/overlib/overlibmws_shadow.js
deleted file mode 100644
index a85f98e0..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/overlibmws_shadow.js
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- overlibmws_shadow.js plug-in module - Copyright Foteos Macrides 2003-2007. All rights reserved.
- For support of the SHADOW feature.
- Initial: July 14, 2003 - Last Revised: January 1, 2007
- See the Change History and Command Reference for overlibmws via:
-
- http://www.macridesweb.com/oltest/
-
- Published under an open source license: http://www.macridesweb.com/oltest/license.html
-*/
-
-OLloaded=0;
-var OLshadowCmds='shadow,shadowx,shadowy,shadowcolor,shadowimage,shadowopacity';
-OLregCmds(OLshadowCmds);
-
-// DEFAULT CONFIGURATION
-if(OLud('shadow'))var ol_shadow=0;
-if(OLud('shadowx'))var ol_shadowx=5;
-if(OLud('shadowy'))var ol_shadowy=5;
-if(OLud('shadowcolor'))var ol_shadowcolor="#666666";
-if(OLud('shadowimage'))var ol_shadowimage="";
-if(OLud('shadowopacity'))var ol_shadowopacity=60;
-// END CONFIGURATION
-
-var o3_shadow=0,o3_shadowx=5,o3_shadowy=5,o3_shadowcolor="#666666",o3_shadowimage="";
-var o3_shadowopacity=60,bkdrop=null;
-
-function OLloadShadow(){
-OLload(OLshadowCmds);
-}
-
-function OLparseShadow(pf,i,ar){
-var k=i,p=OLpar,q=OLparQuo;
-if(k<ar.length){
-if(Math.abs(ar[k])==SHADOW){OLtoggle(ar[k],pf+'shadow');return k;}
-if(ar[k]==SHADOWX){p(ar[++k],pf+'shadowx');return k;}
-if(ar[k]==SHADOWY){p(ar[++k],pf+'shadowy');return k;}
-if(ar[k]==SHADOWCOLOR){q(ar[++k],pf+'shadowcolor');return k;}
-if(ar[k]==SHADOWIMAGE){q(ar[++k],pf+'shadowimage');return k;}
-if(ar[k]==SHADOWOPACITY){p(ar[++k],pf+'shadowopacity');return k;}}
-return -1;
-}
-
-function OLdispShadow(){
-if(o3_shadow){OLgetShadowLyrRef();if(bkdrop)OLgenerateShadowLyr();}
-}
-
-function OLinitShadow(){
-if(OLie55&&OLfilterPI&&o3_filter){if(o3_shadow){o3_shadow=0;
-if(!o3_filtershadow){o3_filtershadow=2;o3_filtershadowcolor=o3_shadowcolor;}}return;}
-var o;if(!(o=OLmkLyr((OLovertwoPI&&over2&&over==over2?'backdrop2':'backdrop'),
-o3_frame,999))||bkdrop!=o){bkdrop=null;OLgetShadowLyrRef();}
-}
-
-function OLgetShadowLyrRef(){
-if(bkdrop||!o3_shadow)return;
-bkdrop=OLgetRefById((OLovertwoPI&&over2&&over==over2?'backdrop2':'backdrop'));
-if(!bkdrop){o3_shadow=0;bkdrop=null;}
-}
-
-function OLgenerateShadowLyr(){
-var wd=(OLns4?over.clip.width:over.offsetWidth),hgt=(OLns4?over.clip.height:over.offsetHeight);
-if(OLns4){bkdrop.clip.width=wd;bkdrop.clip.height=hgt;
-if(o3_shadowimage)bkdrop.background.src=o3_shadowimage;
-else{bkdrop.bgColor=o3_shadowcolor;bkdrop.zIndex=over.zIndex -1;}
-}else{var o=bkdrop.style;o.width=wd+'px';o.height=hgt+'px';
-if(o3_shadowimage)o.backgroundImage="url("+o3_shadowimage+")";
-else o.backgroundColor=o3_shadowcolor;
-o.clip='rect(0px '+wd+'px '+hgt+'px 0px)';o.zIndex=over.style.zIndex -1;
-if(o3_shadowopacity){var op=o3_shadowopacity;op=(op<=100&&op>0?op:100);
-if(OLie4&&!OLieM&&typeof o.filter=='string'){
-o.filter='Alpha(opacity='+op+')';if(OLie55&&typeof bkdrop.filters=='object')
-bkdrop.filters.alpha.enabled=1;}else{op=op/100;OLopBk(op);}}}
-}
-
-function OLopBk(op){
-var o=bkdrop.style;
-if(typeof o.opacity!='undefined')o.opacity=op;
-else if(typeof o.MozOpacity!='undefined')o.MozOpacity=op;
-else if(typeof o.KhtmlOpacity!='undefined')o.KhtmlOpacity=op;
-}
-
-function OLcleanUpShadow(){
-if(!bkdrop)return;
-if(OLns4){bkdrop.bgColor=null;bkdrop.background.src=null;}else{
-var o=bkdrop.style;o.backgroundColor='transparent';o.backgroundImage='none';
-if(OLie4&&!OLieM&&typeof o.filter=='string'){
-o.filter='Alpha(opacity=100)';if(OLie55&&typeof bkdrop.filters=='object')
-bkdrop.filters.alpha.enabled=0;}else OLopBk(1.0);
-if(OLns6){o.width=1+'px';o.height=1+'px';
-OLrepositionTo(bkdrop,o3_frame.pageXOffset,o3_frame.pageYOffset);}}
-}
-
-function OLshowShadow(){if(bkdrop&&o3_shadow){var o=(OLns4?bkdrop:bkdrop.style);
-if(!OLns4&&!OLieM&&(OLfilterPI&&o3_filter&&o3_fadein))OLopOvSh(1);o.visibility="visible";}
-}
-
-function OLhideShadow(){
-if(bkdrop&&o3_shadow){var o=OLgetRefById((OLovertwoPI&&over2&&over==over2?
-'backdrop2':'backdrop'));if(o&&o==bkdrop){var os=(OLns4?bkdrop:bkdrop.style);
-if(OLns4||OLieM||!OLfilterPI||((OLfilterPI)&&(!o3_filter||!o3_fadeout||!OLhasOp()))){
-os.visibility="hidden";OLcleanUpShadow();}}}
-}
-
-function OLrepositionShadow(X,Y){
-if(bkdrop&&o3_shadow)OLrepositionTo(bkdrop,X+o3_shadowx,Y+o3_shadowy);
-}
-
-OLregRunTimeFunc(OLloadShadow);
-OLregCmdLineFunc(OLparseShadow);
-
-OLshadowPI=1;
-OLloaded=1;
diff --git a/src/extras/sos-html-logs/share/html/overlib/overlibmwslogo.gif b/src/extras/sos-html-logs/share/html/overlib/overlibmwslogo.gif
deleted file mode 100644
index f7b55084..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/overlibmwslogo.gif
+++ /dev/null
Binary files differ
diff --git a/src/extras/sos-html-logs/share/html/overlib/print.gif b/src/extras/sos-html-logs/share/html/overlib/print.gif
deleted file mode 100644
index f1270a2f..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/print.gif
+++ /dev/null
Binary files differ
diff --git a/src/extras/sos-html-logs/share/html/overlib/pushpin.gif b/src/extras/sos-html-logs/share/html/overlib/pushpin.gif
deleted file mode 100644
index 79c0dbdb..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/pushpin.gif
+++ /dev/null
Binary files differ
diff --git a/src/extras/sos-html-logs/share/html/overlib/quotation.gif b/src/extras/sos-html-logs/share/html/overlib/quotation.gif
deleted file mode 100644
index 45a01edc..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/quotation.gif
+++ /dev/null
Binary files differ
diff --git a/src/extras/sos-html-logs/share/html/overlib/semitrans.gif b/src/extras/sos-html-logs/share/html/overlib/semitrans.gif
deleted file mode 100644
index df1bc223..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/semitrans.gif
+++ /dev/null
Binary files differ
diff --git a/src/extras/sos-html-logs/share/html/overlib/showCalendar.gif b/src/extras/sos-html-logs/share/html/overlib/showCalendar.gif
deleted file mode 100644
index 68d10f1b..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/showCalendar.gif
+++ /dev/null
Binary files differ
diff --git a/src/extras/sos-html-logs/share/html/overlib/sprintf.js b/src/extras/sos-html-logs/share/html/overlib/sprintf.js
deleted file mode 100644
index f5170ab3..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/sprintf.js
+++ /dev/null
@@ -1,133 +0,0 @@
- /* Function printf(format_string,arguments...)
- * Javascript emulation of the C printf function (modifiers and argument types
- * "p" and "n" are not supported due to language restrictions)
- *
- * Copyright 2003 K&L Productions. All rights reserved
- * http://www.klproductions.com
- *
- * Terms of use: This function can be used free of charge IF this header is not
- * modified and remains with the function code.
- *
- * Legal: Use this code at your own risk. K&L Productions assumes NO resposibility
- * for anything.
- ********************************************************************************/
-function sprintf(fstring)
- { var pad = function(str,ch,len)
- { var ps='';
- for(var i=0; i<Math.abs(len); i++) ps+=ch;
- return len>0?str+ps:ps+str;
- }
- var processFlags = function(flags,width,rs,arg)
- { var pn = function(flags,arg,rs)
- { if(arg>=0)
- { if(flags.indexOf(' ')>=0) rs = ' ' + rs;
- else if(flags.indexOf('+')>=0) rs = '+' + rs;
- }
- else
- rs = '-' + rs;
- return rs;
- }
- var iWidth = parseInt(width,10);
- if(width.charAt(0) == '0')
- { var ec=0;
- if(flags.indexOf(' ')>=0 || flags.indexOf('+')>=0) ec++;
- if(rs.length<(iWidth-ec)) rs = pad(rs,'0',rs.length-(iWidth-ec));
- return pn(flags,arg,rs);
- }
- rs = pn(flags,arg,rs);
- if(rs.length<iWidth)
- { if(flags.indexOf('-')<0) rs = pad(rs,' ',rs.length-iWidth);
- else rs = pad(rs,' ',iWidth - rs.length);
- }
- return rs;
- }
- var converters = new Array();
- converters['c'] = function(flags,width,precision,arg)
- { if(typeof(arg) == 'number') return String.fromCharCode(arg);
- if(typeof(arg) == 'string') return arg.charAt(0);
- return '';
- }
- converters['d'] = function(flags,width,precision,arg)
- { return converters['i'](flags,width,precision,arg);
- }
- converters['u'] = function(flags,width,precision,arg)
- { return converters['i'](flags,width,precision,Math.abs(arg));
- }
- converters['i'] = function(flags,width,precision,arg)
- { var iPrecision=parseInt(precision);
- var rs = ((Math.abs(arg)).toString().split('.'))[0];
- if(rs.length<iPrecision) rs=pad(rs,' ',iPrecision - rs.length);
- return processFlags(flags,width,rs,arg);
- }
- converters['E'] = function(flags,width,precision,arg)
- { return (converters['e'](flags,width,precision,arg)).toUpperCase();
- }
- converters['e'] = function(flags,width,precision,arg)
- { iPrecision = parseInt(precision);
- if(isNaN(iPrecision)) iPrecision = 6;
- rs = (Math.abs(arg)).toExponential(iPrecision);
- if(rs.indexOf('.')<0 && flags.indexOf('#')>=0) rs = rs.replace(/^(.*)(e.*)$/,'$1.$2');
- return processFlags(flags,width,rs,arg);
- }
- converters['f'] = function(flags,width,precision,arg)
- { iPrecision = parseInt(precision);
- if(isNaN(iPrecision)) iPrecision = 6;
- rs = (Math.abs(arg)).toFixed(iPrecision);
- if(rs.indexOf('.')<0 && flags.indexOf('#')>=0) rs = rs + '.';
- return processFlags(flags,width,rs,arg);
- }
- converters['G'] = function(flags,width,precision,arg)
- { return (converters['g'](flags,width,precision,arg)).toUpperCase();
- }
- converters['g'] = function(flags,width,precision,arg)
- { iPrecision = parseInt(precision);
- absArg = Math.abs(arg);
- rse = absArg.toExponential();
- rsf = absArg.toFixed(6);
- if(!isNaN(iPrecision))
- { rsep = absArg.toExponential(iPrecision);
- rse = rsep.length < rse.length ? rsep : rse;
- rsfp = absArg.toFixed(iPrecision);
- rsf = rsfp.length < rsf.length ? rsfp : rsf;
- }
- if(rse.indexOf('.')<0 && flags.indexOf('#')>=0) rse = rse.replace(/^(.*)(e.*)$/,'$1.$2');
- if(rsf.indexOf('.')<0 && flags.indexOf('#')>=0) rsf = rsf + '.';
- rs = rse.length<rsf.length ? rse : rsf;
- return processFlags(flags,width,rs,arg);
- }
- converters['o'] = function(flags,width,precision,arg)
- { var iPrecision=parseInt(precision);
- var rs = Math.round(Math.abs(arg)).toString(8);
- if(rs.length<iPrecision) rs=pad(rs,' ',iPrecision - rs.length);
- if(flags.indexOf('#')>=0) rs='0'+rs;
- return processFlags(flags,width,rs,arg);
- }
- converters['X'] = function(flags,width,precision,arg)
- { return (converters['x'](flags,width,precision,arg)).toUpperCase();
- }
- converters['x'] = function(flags,width,precision,arg)
- { var iPrecision=parseInt(precision);
- arg = Math.abs(arg);
- var rs = Math.round(arg).toString(16);
- if(rs.length<iPrecision) rs=pad(rs,' ',iPrecision - rs.length);
- if(flags.indexOf('#')>=0) rs='0x'+rs;
- return processFlags(flags,width,rs,arg);
- }
- converters['s'] = function(flags,width,precision,arg)
- { var iPrecision=parseInt(precision);
- var rs = arg;
- if(rs.length > iPrecision) rs = rs.substring(0,iPrecision);
- return processFlags(flags,width,rs,0);
- }
- farr = fstring.split('%');
- retstr = farr[0];
- fpRE = /^([-+ #]*)(\d*)\.?(\d*)([cdieEfFgGosuxX])(.*)$/;
- for(var i=1; i<farr.length; i++)
- { fps=fpRE.exec(farr[i]);
- if(!fps) continue;
- if(arguments[i]!=null) retstr+=converters[fps[4]](fps[1],fps[2],fps[3],arguments[i]);
- retstr += fps[5];
- }
- return retstr;
- }
-/* Function sprintf() END */ \ No newline at end of file
diff --git a/src/extras/sos-html-logs/share/html/overlib/square.gif b/src/extras/sos-html-logs/share/html/overlib/square.gif
deleted file mode 100644
index 9d43ad7e..00000000
--- a/src/extras/sos-html-logs/share/html/overlib/square.gif
+++ /dev/null
Binary files differ
diff --git a/src/extras/sos-html-logs/sos-html-logs b/src/extras/sos-html-logs/sos-html-logs
deleted file mode 100755
index aca754b5..00000000
--- a/src/extras/sos-html-logs/sos-html-logs
+++ /dev/null
@@ -1,670 +0,0 @@
-#!/usr/bin/env python
-
-#from optparse import OptionParser, Option
-import time, sys, os, glob
-import getopt, traceback
-try: import cherrypy
-except: print "python-cherrypy is missing. Exiting."; sys.exit(1)
-from cherrypy.lib import cptools
-import pdb
-
-sys.path.append("lib")
-
-import soshtmllogs.database
-from soshtmllogs.logs_abstraction import *
-
-class Root:
- def header(self):
- return """
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-
-<html>
-<head>
-<title></title>
-<script type="text/javascript" src="overlib/overlibmws.js"></script>
-<script type="text/javascript" src="overlib/overlibmws_draggable.js"></script>
-<script type="text/javascript" src="overlib/overlibmws_filter.js"></script>
-<script type="text/javascript" src="overlib/overlibmws_overtwo.js"></script>
-<script type="text/javascript" src="overlib/overlibmws_shadow.js"></script>
-<script type="text/javascript" src="overlib/overlibmws_scroll.js"></script>
-
-<script TYPE="text/javascript">
-<!--
-var ol_width=300;
-var ol_fgcolor='#ffffcc';
-var ol_bgcolor='#666666';
-//-->
-</script>
-
-<script type="text/javascript">
-<!--
-OLpageDefaults(BGCLASS,'olbg', CGCLASS,'olcg', FGCLASS,'olfg',
- CAPTIONFONTCLASS,'olcap', CLOSEFONTCLASS,'olclo', TEXTFONTCLASS,'oltxt');
-
-function OLiframeContent(src, width, height, name, frameborder, scrolling) {
- return ('<iframe src="'+src+'" width="'+width+'" height="'+height+'"'
- +(name!=null?' name="'+name+'" id="'+name+'"':'')
- +(frameborder!=null?' frameborder="'+frameborder+'"':'')
- +' scrolling="'+(scrolling!=null?scrolling:'auto')+'">'
- +'<div>[iframe not supported]</div></iframe>');
-}
-//-->
-</script>
-
-<style type="text/css">
-<!--
-.olbg {background-color:#333399;}
-.olcg {background-color:#aa0000; text-align:center;} # title
-.olcgif {background-color:#333399; text-align:center;}
-.olfg {background-color:#ecf5ff; text-align:center;} # body bg
-.olfgif {background-color:#bbddff; text-align:center;}
-.olcap {font-family:Arial; font-size:12px; font-weight:bold; color:#ffffff;}
-a.olclo {font-family:Verdana; font-size:11px; font-weight:bold; color:#ddddff;}
-a.olclo:hover {color:#ffffff;}
-.oltxt {font-family:Arial; font-size:12px; color:#000000;}
--->
-</style>
-
-<script type="text/javascript">
-<!--
-
-function log_toggle_color(obj) {
- if (obj.style.color == '') {
- obj.style.color = 'red';
- obj.style.fontWeight='bolder';
- } else {
- obj.style.color = '';
- obj.style.fontWeight='normal';
- }
- return True;
-}
-
-function get_selection_text() {
- var txt = '';
- if (window.getSelection) {
- txt = window.getSelection();
- } else if (document.getSelection) {
- txt = document.getSelection();
- } else if (document.selection) {
- txt = document.selection.createRange().text;
- } else return;
- return txt;
-}
-
-//-->
-</script>
-
-<style type="text/css">
-<!--
-
-body {
- font: normal 11px auto "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
- color: #4f6b72;
- background: #E6EAE9;
-}
-
-a {
- color: #c75f3e;
-}
-
-#mytable {
- width: 97%;
- padding: 0;
- margin: 0;
-}
-
-caption {
- padding: 0 0 5px 0;
- width: 97%;
- font: italic 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
- text-align: right;
-}
-
-th {
- font: bold 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
- color: #4f6b72;
- letter-spacing: 2px;
- text-transform: uppercase;
- text-align: left;
- padding: 6px 6px 6px 12px;
- background: #a50000;
- color: white;
-}
-
-th.nobg {
- border-top: 0;
- border-left: 0;
- border-right: 1px solid #C1DAD7;
- background: none;
- color: black;
-}
-
-td {
- border-right: 1px solid #C1DAD7;
- border-bottom: 1px solid #C1DAD7;
- background: #fff;
- color: #4f6b72;
- letter-spacing: -1px;
- white-space:pre-wrap;
- font-family: monospace;
-}
-
-pre {
- white-space: pre-wrap; /* css-3 */
- white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
- white-space: -pre-wrap; /* Opera 4-6 */
- white-space: -o-pre-wrap; /* Opera 7 */
- word-wrap: break-word; /* Internet Explorer 5.5+ */
-}
-
-td.alt {
- background: #ffbaba;
- color: #797268;
-}
-
-th.newday {
- text-align: right;
- padding: 2px;
-}
-
-th.spec {
- border-left: 1px solid #C1DAD7;
- border-right: 1px solid #C1DAD7;
- border-top: 0;
- background: #fff;
- font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
- color: #797268;
- vertical-align: top;
-}
-
-th.specalt {
- border-left: 1px solid #C1DAD7;
- border-right: 1px solid #C1DAD7;
- border-top: 0;
- background: #cecfce;
- font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
- color: #797268;
- vertical-align: top;
-}
-
-.log_invalid_date {
- color: dark green;
- font-weight: bold;
- background-color: yellow;
-}
-
-input {
- border: 1px solid #cc0000;
- background: red;
- color: white;
-}
-
-#fixme { position: fixed; right: 0px; top: 0px; z-index: 2; }
-
-#navigation_enabled {
- border: 1px solid #cc0000;
- background: red;
- color: white;
- cursor: pointer;
-}
-
-#navigation_disabled {
- border: 1px solid #cc0000;
- background: gray;
- color: white;
- cursor: not-allowed;
-}
-
-.progressbar {
- border: 2px solid black;
- background: #ffa;
- position: relative;
- width: 500px;
- height: 4.5em;
- margin-bottom: 4px;
- -moz-border-radius-topright: 2em;
- -moz-border-radius-bottomright: 2em;
-}
-
-.progressbar div {
- position: absolute;
- top: 0px;
- left: 0px;
- height: 99%;
- background-color: #cf5;
-}
-
-.progressbar div p {
- white-space: nowrap;
- display: block;
- height: 100%;
- margin: 0;
- padding: 0 1em;
- line-height: 2em;
- font-weight: bold;
- font-size: x-large;
-}
-
-.progressbar p span {
- display: none;
-}
-
-A:link { font-weight: normal; text-decoration: none; }
-A:visited { font-weight: normal; text-decoration: none; }
-
--->
-</style>
-
-</head>
-<body>
-
-<a href="/">Index</a> <a href="/browse">Browse</a><p>
-
-"""
- def footer(self):
- return """</body></html>"""
-
- def browse(self):
- position = cherrypy.session.get('position')
- dates_per_page = cherrypy.session.get('dates_per_page', 300)
- filter_daemons = cherrypy.session.get('filter_daemons', [])
-
- cluster = cluster_master.instance()
-
- if position:
- cluster.seek(position)
- else:
- cluster.seek_beginning()
- position = cluster.tell()
-
- yield self.header()
-
- yield """<table id="mytable" cellspacing="0" summary="">
-<caption>Generated by sos-logs2html 1.0 on %s</caption>
-<ul id="toc">
-</ul>""" % (time.strftime("%B %d %H:%M:%S"))
-
- first_date = None
- prev_date = None
- line = 0
- log_lines = 0
-
- for date in cluster:
-
- events = myDB.execute_and_fetch("""select host, position, message, css_style from events where date = %d""" % (time.mktime(date.date)))
-
- lines = {}
- line_has_content = False
-
- for host in cluster.host_names():
- lines[host] = []
- try:
- for log in date[host]:
-
- if log.daemon() in filter_daemons:
- continue
-
- lines[host].append(log)
- line_has_content = True
-
- except "Eof":
- pass
-
- if not line_has_content:
- continue
-
- if line == 0 or line % 200 == 0:
- yield """<tr><th scope="col" abbr="Date/Time" class="nobg">Time</th>"""
-
- for host in cluster.host_names():
- yield """<th scope="col" abbr="%s">%s</th>""" % (host, host)
-
- yield """</tr>"""
-
- if line == 0 or line % 200 == 0 or time.strftime("%b %d", prev_date) != time.strftime("%b %d", date.date):
- yield("""<tr><th scope="row" class="newday" colspan=%d>%s</th></tr>""" % (len(cluster.hosts) + 2, time.strftime("%A, %B %d", date.date)))
-
- if line % 2 == 0: row_class = "spec"
- else: row_class = "specalt"
-
- color_shades = [(181,193,255), (76,102,236), (255,191,100), (255,232,200)]
- color_shades.append(color_shades[0])
-
- if date.date[3] in range(0, 6):
- shade_idx, shade_div = 0, 6
- elif date.date[3] in range(6, 12):
- shade_idx, shade_div = 1, 12
- elif date.date[3] in range(12, 18):
- shade_idx, shade_div = 2, 18
- elif date.date[3] in range(18, 24):
- shade_idx, shade_div = 3, 24
-
- color_hour = rgb_to_hex(color_gradient(color_shades[shade_idx], color_shades[shade_idx+1], (date.date[3] + (date.date[4]/60)) * 100 / shade_div))
-
- yield("""<TR><th scope="row" class="%s" style="background-color: #%s"><a href="/goto/%s">%s</a></th>""" % (row_class, color_hour, time.strftime("%Y%m%d%H%M%S", date.date), time.strftime("%H:%M:%S", date.date)))
-
- for host in cluster.host_names():
- yield """<td style="vertical-align:top">"""
- if lines.has_key(host):
- for log in lines[host]:
- css_class = None
- css_style = None
-
- for event_host, event_position, message, event_css_style in events:
- if event_host == host and event_position == log.position:
- css_style = event_css_style
-
- yield """<span style="cursor:pointer;%s" """ % css_style
-
- if not log.date() or log.date() != date.date:
- yield """class="log_invalid_date" """
-
- yield """onclick="javascript:log_toggle_color(this);">%s</span><br>""" % log.message()
-
- yield "</td>\n"
-
- yield "</tr>"
-
- line += 1
- prev_date = date.date
-
- if not first_date:
- first_date = date.date
-
- if line > dates_per_page:
- break
-
- yield "</table>"
-
- cherrypy.session['first_date_on_page'] = first_date
- cherrypy.session['last_date_on_page'] = date.date
-
- cherrypy.session['position'] = position
- cherrypy.session['dates_per_page'] = dates_per_page
-
- yield self.navigation()
-
- yield self.footer()
-
- def draw_progressbar(self, percent):
- yield """<div class="progressbar"><div style="width: %d%%;"><p>Parsing in progress (%d%% done)</p></div></div>""" % (percent, percent)
-
- def index(self):
-
- cluster = cluster_master.instance()
-
- yield self.header()
-
- percent = 100 * cluster_master.tell_sum() / cluster_master.size()
- if percent < 100:
- yield self.draw_progressbar(100 * cluster_master.tell_sum() / cluster_master.size())
-
- yield """<table id="mytable" cellspacing="0" summary="">
-<caption>Generated by sos-logs2html 1.0 on %s</caption>
-""" % (time.strftime("%B %d %H:%M:%S"))
-
- line = 0
- prev_date = None
- prev_host = None
-
- results = myDB.execute_and_fetch("""select eid, parser, date, host, message, css_style, count(message) as count_m from events group by date, host, message order by date, host""")
-
- html_row = {}
-
- for row in results:
-
- date = time.localtime(row["date"])
-
- if prev_date and prev_date != date:
-
- if line == 0 or line % 200 == 0:
- yield """<tr><th scope="col" abbr="Date/Time" class="nobg" style="width: 100px">Time</th>"""
-
- for host in cluster.host_names():
- yield """<th scope="col" abbr="%s">%s</th>""" % (host, host)
-
- yield """</tr>"""
-
- if line == 0 or line % 200 == 0 or time.strftime("%b %d", prev_date) != time.strftime("%b %d", prev_prev_date):
- yield("""<tr><th scope="row" class="newday" colspan=%d>%s</th></tr>""" % (len(cluster.hosts) + 1, time.strftime("%A, %B %d", prev_date)))
-
- if line % 2 == 0: row_class = "spec"
- else: row_class = "specalt"
-
- color_shades = [(181,193,255), (76,102,236), (255,191,100), (255,232,200)]
- color_shades.append(color_shades[0])
-
- if prev_date[3] in range(0, 6):
- shade_idx, shade_div = 0, 6
- elif prev_date[3] in range(6, 12):
- shade_idx, shade_div = 1, 12
- elif prev_date[3] in range(12, 18):
- shade_idx, shade_div = 2, 18
- elif prev_date[3] in range(18, 24):
- shade_idx, shade_div = 3, 24
-
- color_hour = rgb_to_hex(color_gradient(color_shades[shade_idx], color_shades[shade_idx+1], (prev_date[3] + (prev_date[4]/60)) * 100 / shade_div))
-
- yield("""<TR><th scope="row" class="%s" style="background-color: #%s"><a style="font-weight:normal;color:black;font-size:larger" href="/goto/%s">%s</a></th>""" % (row_class, color_hour, time.strftime("%Y%m%d%H%M%S", prev_date), time.strftime("%H:%M:%S", prev_date)))
-
- tab = 0
- while tab < len(cluster.host_names()):
- yield "<td><ul>"
- if html_row.has_key(tab):
- for out in html_row[tab]:
- yield "<li>" + out + "</li>"
- yield "</ul></td>"
- tab+=1
-
- line += 1
-
- html_row = {}
- prev_prev_date = prev_date
-
- if not html_row.has_key(cluster.host_names().index(row["host"])):
- html_row[cluster.host_names().index(row["host"])] = []
-
- toadd = '<a href="javascript:void(0);"'
- toadd+= ' name="sample%d"' % line
- toadd+= ' id="sample" style="cursor:pointer;%s"' % row["css_style"]
- toadd+= """ onclick="overlib(OLiframeContent('/event_tooltip?eid=%d', 510, 145, 'if1', 0, 'auto'), TEXTPADDING,6, CAPTION,'Event #%d - %s',""" % (row["eid"], row["eid"], row["message"])
- toadd+= """ SCROLL, STICKY, BASE,2, REF,'sample%d', REFC,'UR', REFX,10, REFY,-25,""" % line
- toadd+= """ DRAGGABLE, SHADOW, SHADOWX,3, SHADOWY,3, STATUS,'Example of Secondary Popups');" onmouseout="nd(); return false;">%s</a>""" % row["message"]
-
- if row["count_m"] > 1:
- toadd+= " (repeated %d times)" % row["count_m"]
-
- html_row[cluster.host_names().index(row["host"])].append(toadd)
-
- prev_date = date
-
- if not len(results):
- yield """<tr><td>No event logged yet, click <a href="/browse">here</a> to start viewing the logs or <a href="/">refresh this page</a>.</td></tr>"""
-
- yield "</table>"
-
- yield self.footer()
-
- def event_tooltip(self, eid):
- cluster = cluster_master.instance()
-
- results = myDB.execute_and_fetch("""select eid, host, position, parser, message from events where eid = %d""" % int(eid))
-
- yield """<html><body>"""
-
- for row in results:
- line = cluster.get_host(row["host"]).seek_and_read(row["position"])
-
- parser = cluster.get_parser(row["parser"])
- yield parser.analyse_line(log_line_class(None, row["host"], row["position"], line))
-
- yield """</body></html>"""
-
- cherrypy.config.update({'logDebugInfoFilter.logBuildTime': False})
- cherrypy.config.update({'logDebugInfoFilter.logPageSize': False})
-
- def navigation(self):
- yield """<a href="/previous">Previous</a> <a href="/next">Next</a>"""
-
- def previous(self):
- cluster = cluster_master.instance()
- dates = ksort(cluster.index)
- idx = dates.index(cherrypy.session.get('first_date_on_page'))
- idx = idx - cherrypy.session.get('dates_per_page')
- if idx < 0: idx = 0
- cherrypy.session['position'] = cluster.get_position_by_date(dates[idx])
- raise cherrypy.HTTPRedirect('/browse')
-
- def next(self):
- cluster = cluster_master.instance()
- cherrypy.session['position'] = cluster.get_position_by_date(cherrypy.session.get('last_date_on_page'))
- raise cherrypy.HTTPRedirect('/browse')
-
- def _goto(self, goto_date):
- cluster = cluster_master.instance()
-
- try:
- cherrypy.session['position'] = cluster.get_position_by_date(time.strptime(goto_date, "%Y%m%d%H%M%S"))
- except:
- # some other exception, redirect to /
- raise cherrypy.HTTPRedirect('/browse')
-
- yield self.browse()
-
- def default(self, url, value):
- if url == "goto":
- yield self._goto(value)
-
- index.exposed = True
- browse.exposed = True
- previous.exposed = True
- next.exposed = True
- event_tooltip.exposed = True
- default.exposed = True
-
-class Filters:
- def index(self):
-
- cluster = cluster_master.instance()
-
- filter_daemons = cherrypy.session.get('filter_daemons', [])
-
- yield cherrypy.root.header()
-
- # Daemons to filter out
- #
-
- yield """<DIV>Filter out the following daemons from the output"""
-
- yield """<FORM action="update_filters" method="POST">"""
-
- yield """<SELECT STYLE="width: 200px" MULTIPLE="true" SIZE=10 NAME="daemons">"""
- for daemon, occurs in cluster.daemon_log_counter:
- if daemon in filter_daemons: continue
- yield """<OPTION VALUE="%s">%s (%d lines)""" % (daemon, daemon, occurs)
- yield """</SELECT>"""
-
- yield """<SELECT STYLE="width: 200px" MULTIPLE="true" SIZE=10 NAME="daemons_ex">"""
- for daemon in filter_daemons:
- yield """<OPTION VALUE="%s">%s""" % (daemon, daemon)
- yield """</SELECT>"""
-
- yield """<INPUT TYPE="submit" VALUE="Update">"""
-
- yield """</FORM>"""
-
- yield """</DIV>"""
-
- yield cherrypy.root.footer()
-
- def update_filters(self, daemons = None, daemons_ex = None):
- filter_daemons = cherrypy.session.get('filter_daemons', [])
-
- if daemons:
- if type(daemons) == str:
- filter_daemons.append(daemons)
- else:
- for daemon in daemons:
- filter_daemons.append(daemon)
-
- if daemons_ex:
- if type(daemons_ex) == str:
- filter_daemons.remove(daemons_ex)
- else:
- for daemon in daemons_ex:
- filter_daemons.remove(daemon)
-
- cherrypy.session['filter_daemons'] = filter_daemons
-
- raise cherrypy.HTTPRedirect('/')
-
- index.exposed = True
- update_filters.exposed = True
-
-def usage():
- print "ciao"
-
-try:
- opts, args = getopt.getopt(sys.argv[1:], "hve:", ["help", "input="])
-except getopt.GetoptError:
- # print help information and exit:
- usage()
- sys.exit(2)
-
-cmdline = {}
-cmdline["exclude_regex"] = []
-cmdline["include_regex"] = []
-cmdline["verbose"] = 0
-
-for o, a in opts:
- if o == "-v":
- cmdline["verbose"] += 1
- if o in ("-h", "--help"):
- usage()
- sys.exit()
- if o in ("-e", "--exclude-regex"):
- cmdline["exclude_regex"].append(re.compile(a))
- if o in ("-i", "--include-regex"):
- cmdline["include_regex"].append(re.compile(a))
-
-if __name__ != "__main__":
- sys.exit()
-
-myDB = soshtmllogs.database.myDB_class()
-
-cluster_master = cluster_class()
-
-sys.stderr.write("adding logs\n")
-for log in args:
- cluster_master.add_log(log)
-
-from soshtmllogs.parsers.simple_parser import *
-from soshtmllogs.parsers.dmapper_parser import *
-from soshtmllogs.parsers.crazyclock_parser import *
-
-cluster_master.register_parser(simple_Parser(cluster_master, myDB))
-cluster_master.register_parser(dmapper_Parser(cluster_master, myDB))
-#cluster_master.register_parser(crazyclock_Parser(cluster_master, myDB))
-
-cluster_master.parse(threaded = True)
-
-sys.stderr.write("finished adding logs\n")
-
-if len(cluster_master.hosts) == 0:
- sys.stderr.write("no valid data to parse was found. exiting.\n")
- sys.exit(1)
-
-cherrypy.root = Root()
-cherrypy.root.filters = Filters()
-cherrypy.config.update({'session_filter.on': True})
-cherrypy.config.update({'autoreload.on': False})
-#cherrypy.config.update({'server.environment': "production"})
-
-cherrypy.config.update({
- "/":{'static_filter.root': "/usr/share/sos-html-logs"},
- "/overlib":{'static_filter.on': True, "static_filter.dir":"html/overlib"}
-})
-
-cherrypy.server.start()
-