From 09d32a855b52efcef55e33bf11a87e7ddfdb84c9 Mon Sep 17 00:00:00 2001 From: navid Date: Mon, 10 Dec 2007 09:39:46 +0000 Subject: 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 --- src/extras/sos-html-logs/lib/__init__.py | 0 src/extras/sos-html-logs/lib/database.py | 26 - src/extras/sos-html-logs/lib/helpers.py | 41 -- src/extras/sos-html-logs/lib/logs_abstraction.py | 415 ------------ src/extras/sos-html-logs/lib/parsers/__init__.py | 0 .../sos-html-logs/lib/parsers/crazyclock_parser.py | 24 - .../sos-html-logs/lib/parsers/dmapper_parser.py | 106 ---- .../sos-html-logs/lib/parsers/simple_parser.py | 29 - .../sos-html-logs/lib/parsers/simple_parser.rules | 38 -- .../sos-html-logs/share/html/overlib/BabelFish.js | 58 -- .../share/html/overlib/ajaxcontentmws.js | 181 ------ .../sos-html-logs/share/html/overlib/arrow.gif | Bin 88 -> 0 bytes .../share/html/overlib/calendarmws.js | 621 ------------------ .../share/html/overlib/calendarmws_lang.js | 700 --------------------- .../sos-html-logs/share/html/overlib/cornerBL.gif | Bin 205 -> 0 bytes .../sos-html-logs/share/html/overlib/cornerBR.gif | Bin 208 -> 0 bytes .../sos-html-logs/share/html/overlib/cornerTL.gif | Bin 207 -> 0 bytes .../sos-html-logs/share/html/overlib/cornerTR.gif | Bin 206 -> 0 bytes .../sos-html-logs/share/html/overlib/edgeB.gif | Bin 47 -> 0 bytes .../sos-html-logs/share/html/overlib/edgeL.gif | Bin 48 -> 0 bytes .../sos-html-logs/share/html/overlib/edgeR.gif | Bin 48 -> 0 bytes .../sos-html-logs/share/html/overlib/edgeT.gif | Bin 47 -> 0 bytes .../sos-html-logs/share/html/overlib/exit.gif | Bin 866 -> 0 bytes .../sos-html-logs/share/html/overlib/flower.gif | Bin 4255 -> 0 bytes .../share/html/overlib/iframecontentmws.js | 53 -- .../sos-html-logs/share/html/overlib/license.html | 265 -------- .../sos-html-logs/share/html/overlib/loading.gif | Bin 674 -> 0 bytes .../share/html/overlib/objectcontentmws.js | 16 - .../sos-html-logs/share/html/overlib/oval.gif | Bin 3662 -> 0 bytes .../share/html/overlib/overlibCompat.js | 30 - .../share/html/overlib/overlibConfig.txt | 641 ------------------- .../sos-html-logs/share/html/overlib/overlibmws.js | 666 -------------------- .../share/html/overlib/overlibmws_bubble.js | 199 ------ .../share/html/overlib/overlibmws_crossframe.js | 44 -- .../share/html/overlib/overlibmws_debug.js | 120 ---- .../share/html/overlib/overlibmws_draggable.js | 85 --- .../share/html/overlib/overlibmws_exclusive.js | 58 -- .../share/html/overlib/overlibmws_filter.js | 184 ------ .../share/html/overlib/overlibmws_function.js | 44 -- .../share/html/overlib/overlibmws_hide.js | 81 --- .../share/html/overlib/overlibmws_iframe.js | 93 --- .../share/html/overlib/overlibmws_modal.js | 149 ----- .../share/html/overlib/overlibmws_overtwo.js | 129 ---- .../share/html/overlib/overlibmws_print.js | 141 ----- .../share/html/overlib/overlibmws_regCore.js | 75 --- .../share/html/overlib/overlibmws_scroll.js | 70 --- .../share/html/overlib/overlibmws_shadow.js | 113 ---- .../share/html/overlib/overlibmwslogo.gif | Bin 1403 -> 0 bytes .../sos-html-logs/share/html/overlib/print.gif | Bin 866 -> 0 bytes .../sos-html-logs/share/html/overlib/pushpin.gif | Bin 1854 -> 0 bytes .../sos-html-logs/share/html/overlib/quotation.gif | Bin 1080 -> 0 bytes .../sos-html-logs/share/html/overlib/semitrans.gif | Bin 757 -> 0 bytes .../share/html/overlib/showCalendar.gif | Bin 200 -> 0 bytes .../sos-html-logs/share/html/overlib/sprintf.js | 133 ---- .../sos-html-logs/share/html/overlib/square.gif | Bin 2580 -> 0 bytes src/extras/sos-html-logs/sos-html-logs | 670 -------------------- 56 files changed, 6298 deletions(-) delete mode 100644 src/extras/sos-html-logs/lib/__init__.py delete mode 100644 src/extras/sos-html-logs/lib/database.py delete mode 100644 src/extras/sos-html-logs/lib/helpers.py delete mode 100644 src/extras/sos-html-logs/lib/logs_abstraction.py delete mode 100644 src/extras/sos-html-logs/lib/parsers/__init__.py delete mode 100644 src/extras/sos-html-logs/lib/parsers/crazyclock_parser.py delete mode 100644 src/extras/sos-html-logs/lib/parsers/dmapper_parser.py delete mode 100644 src/extras/sos-html-logs/lib/parsers/simple_parser.py delete mode 100644 src/extras/sos-html-logs/lib/parsers/simple_parser.rules delete mode 100644 src/extras/sos-html-logs/share/html/overlib/BabelFish.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/ajaxcontentmws.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/arrow.gif delete mode 100644 src/extras/sos-html-logs/share/html/overlib/calendarmws.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/calendarmws_lang.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/cornerBL.gif delete mode 100644 src/extras/sos-html-logs/share/html/overlib/cornerBR.gif delete mode 100644 src/extras/sos-html-logs/share/html/overlib/cornerTL.gif delete mode 100644 src/extras/sos-html-logs/share/html/overlib/cornerTR.gif delete mode 100644 src/extras/sos-html-logs/share/html/overlib/edgeB.gif delete mode 100644 src/extras/sos-html-logs/share/html/overlib/edgeL.gif delete mode 100644 src/extras/sos-html-logs/share/html/overlib/edgeR.gif delete mode 100644 src/extras/sos-html-logs/share/html/overlib/edgeT.gif delete mode 100644 src/extras/sos-html-logs/share/html/overlib/exit.gif delete mode 100644 src/extras/sos-html-logs/share/html/overlib/flower.gif delete mode 100644 src/extras/sos-html-logs/share/html/overlib/iframecontentmws.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/license.html delete mode 100644 src/extras/sos-html-logs/share/html/overlib/loading.gif delete mode 100644 src/extras/sos-html-logs/share/html/overlib/objectcontentmws.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/oval.gif delete mode 100644 src/extras/sos-html-logs/share/html/overlib/overlibCompat.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/overlibConfig.txt delete mode 100644 src/extras/sos-html-logs/share/html/overlib/overlibmws.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/overlibmws_bubble.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/overlibmws_crossframe.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/overlibmws_debug.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/overlibmws_draggable.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/overlibmws_exclusive.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/overlibmws_filter.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/overlibmws_function.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/overlibmws_hide.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/overlibmws_iframe.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/overlibmws_modal.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/overlibmws_overtwo.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/overlibmws_print.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/overlibmws_regCore.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/overlibmws_scroll.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/overlibmws_shadow.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/overlibmwslogo.gif delete mode 100644 src/extras/sos-html-logs/share/html/overlib/print.gif delete mode 100644 src/extras/sos-html-logs/share/html/overlib/pushpin.gif delete mode 100644 src/extras/sos-html-logs/share/html/overlib/quotation.gif delete mode 100644 src/extras/sos-html-logs/share/html/overlib/semitrans.gif delete mode 100644 src/extras/sos-html-logs/share/html/overlib/showCalendar.gif delete mode 100644 src/extras/sos-html-logs/share/html/overlib/sprintf.js delete mode 100644 src/extras/sos-html-logs/share/html/overlib/square.gif delete mode 100755 src/extras/sos-html-logs/sos-html-logs 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 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 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:
""" - yield """
%s
""" % 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 = -'
' -+'

Note: This page can be viewed in a different language by ' -+'selecting the corresponding flag below.

' -+'

' -+'' -+'' -+'' -+'' -+'' -+'' -+'' -+'' -+'' -+'' -+'' -+'' -+'

' -+'

The translations are done via the AltaVista Babel Fish service.

'; -}else{ -var BabelFish = -'

' -+'

'; -} 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 responseText.  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?'
':''; - OLresponseAJAX += OLhttp.responseText; - OLresponseAJAX += OLclassAJAX?'
':''; - 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 Binary files a/src/extras/sos-html-logs/share/html/overlib/arrow.gif and /dev/null 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 += ('
"); - - vHeader_Code = this.cal_header(); - vData_Code = this.cal_data(); - vCode += (vHeader_Code + vData_Code); - - vCode += '
'; - - 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'); - ggWinContent += (this.gMonthName + ' ' + this.gYear); - ggWinContent += ''; - - // 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 += ('
'); - ggWinContent += ('[' - +(yOK?'':'') - +'<<Year' - +(yOK?'':'') - +']'); - ggWinContent += ('[' - +(mOK?'':'') - +'<Mon' - +(mOK?'':'') - +']'); - ggWinContent += '       '; - ggWinContent += ('[Mon>]'); - ggWinContent += ('[Year>>]
' - +' 
'); - - // 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 += ('
' + this.gYear +'
'); - - var vDate = new Date(); - vDate.setDate(1); - vDate.setFullYear(this.gYear); - var vNowYear = gNow.getFullYear(); - var yOK=!ggInactive||vNowYear'); - ggWinContent += ('[' - +(yOK?'':'') - +'<<Year' - +(yOK?'':'') - +']'); - ggWinContent += '       '; - ggWinContent += ('[Year>>]'); - - // Get the complete calendar code for each month. - // start a table and first row in the table - ggWinContent += (''); - for (i=0; i<12; i++) { - // start the table cell - ggWinContent += ''; - if (i == 3 || i == 7) ggWinContent += ''; - } - ggWinContent += '
'; - this.gMonth = i; - this.gMonthName = Calendar.get_month(this.gMonth); - vCode = this.getMonthlyCalendarCode(); - ggWinContent += (this.gMonthName + '/' + this.gYear + '
 
'); - ggWinContent += vCode; - ggWinContent += '
'; -} - -Calendar.prototype.cal_header = function() { - var vCode = ''; - vCode += ('Sun'); - vCode += ('Mon'); - vCode += ('Tue'); - vCode += ('Wed'); - vCode += ('Thu'); - vCode += ('Fri'); - vCode += ('Sat'); - vCode += ''; - 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 '); - } - - // Write rest of the 1st week - for (j=vFirstDay; j<7; j++) { vCode += - ('' - +((ymOK)&&(vDay>=vNowDay||dOK)?'':'') - + this.format_day(vDay) - +((ymOK)&&(vDay>=vNowDay||dOK)?'':'') - +''); - vDay += 1; - } - vCode += ''; - - // Write the rest of the weeks - for (k=2; k<7; k++) { - vCode += ''; - for (j=0; j<7; j++) { vCode += - ('' - +((ymOK)&&(vDay>=vNowDay||dOK)?'':'') - + this.format_day(vDay) - +((ymOK)&&(vDay>=vNowDay||dOK)?'':'') - +''); - vDay += 1; - if (vDay > vLastDay) { - vOnLastDay = 1; - break; - } - } - if (j == 6) vCode += ''; - 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 += - (' '); - } - 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 ('' + vday + ''); - else - return (vday); -} - -Calendar.prototype.write_weekend_string = function(vday) { - var i; - - // Return special formatting for the weekend day. - for (i=0; i' + 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
' + 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!
"; -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ück"; -calmsg["ger"][1] = "Ein Jahr vorwärts"; -calmsg["ger"][2] = "Einen Monat zurück"; -calmsg["ger"][3] = "Einen Monat vorwärts"; -calmsg["ger"][4] = "Datum setzen"; -calmsg["ger"][5] = "Datum wählen"; -calmsg["ger"][6] = "Leider unterstützt Ihr Browser dieses Feature nicht. " - +"Bitte updaten!
"; -calmsg["ger"][7] = "Jahr"; -calmsg["ger"][8] = "Zum schließen klicken"; -datFormat["ger"] = "DD.MM.YYYY"; -CalendarMonths["ger"] = new Array("Januar", "Februar", "Mä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!
"; -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!
"; -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 += ('
'); - - vHeader_Code = this.cal_header(); - vData_Code = this.cal_data(); - vCode += (vHeader_Code + vData_Code); - - vCode += '
'; - - 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%s %s', - 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 = ' [%s%s%s<\/a>] '; - var nav_cell_inactive = ' [%s%s] ' - - ggWinContent += ''; - ggWinContent += ''; - ggWinContent += yOK?sprintf(nav_cell, - 'left', calmsg[ggLang][0], calmsg[ggLang][0], - this.gReturnItem, this.gMonth, (parseInt(this.gYear)-1), this.gFormat, - '<<', (parseInt(this.gYear)-1), ''): - sprintf(nav_cell_inactive, 'left', '<<', (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), '>>'); - ggWinContent += ''; - ggWinContent += mOK?sprintf(nav_cell, - 'left', calmsg[ggLang][2], calmsg[ggLang][2], - this.gReturnItem, prevMM, prevYYYY, this.gFormat, '<', - Calendar.Months[prevMM], ''): - sprintf(nav_cell_inactive, '<', Calendar.Months[prevMM]); - ggWinContent += sprintf(nav_cell, - 'right', calmsg[ggLang][3], calmsg[ggLang][3], - this.gReturnItem, nextMM, nextYYYY, this.gFormat, '', - Calendar.Months[nextMM], '>'); - ggWinContent += '
 
'; - - // 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( - '
%s
', 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', '#e0e0e0', fontsize); - ggWinContent += ''; - ggWinContent += yOK?sprintf( - '[
<<%s]', - calmsg[ggLang][0], calmsg[ggLang][0], this.gReturnItem, - prevYYYY, this.gFormat, (parseInt(this.gYear)-1)): - sprintf('[<<%s]',(parseInt(this.gYear)-1)); - ggWinContent += '       '; - ggWinContent += sprintf( - '[%s>>]', - calmsg[ggLang][1], calmsg[ggLang][1], this.gReturnItem, - nextYYYY, this.gFormat, (parseInt(this.gYear)+1)); - ggWinContent += ''; - - // Get the complete calendar code for each month. - // start a table and first row in the table - ggWinContent += ''; - for (i=0; i<12; i++) { - // start the table cell - ggWinContent += ''; - if (i == 3 || i == 7) ggWinContent += ''; - } - ggWinContent += '
'; - this.gMonth = i; - this.gMonthName = Calendar.get_month(this.gMonth); - vCode = this.getMonthlyCalendarCode(); - ggWinContent += (this.gMonthName + '/' + this.gYear+ '
 
'); - ggWinContent += vCode; - ggWinContent += '
'; -} - -Calendar.prototype.cal_header = function() { - var vCode = ''; - for (i=0; i<7; i++) { vCode += sprintf( - '%s', - Calendar.CellWidth[i], fontface, this.gHeaderColor, Calendar.Weekdays[i]); - } - 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 ', - 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( - '%s', - 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('' - +'%s', Calendar.CellWidth[j+1], this.write_weekend_string(j), fontface, - this.format_day(vDay)); - vDay += 1; - } - vCode += ''; - - // Write the rest of the weeks - for (k=2; k<7; k++) { - vCode += ''; - for (j=0; j<7; j++) { vCode += (ymOK)&&(vDay>=vNowDay||dOK)?sprintf( - '%s', - 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( - '' - +'%s', 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 += ''; - 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( - ' ', - 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 ('' + vday + ''); - else - return (vday); -} - -Calendar.prototype.write_weekend_string = function(vday) { - var i; - - // Return special formatting for the weekend day. - for (i=0; i X ', 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, - ' X ', 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 Binary files a/src/extras/sos-html-logs/share/html/overlib/cornerBL.gif and /dev/null 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 Binary files a/src/extras/sos-html-logs/share/html/overlib/cornerBR.gif and /dev/null 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 Binary files a/src/extras/sos-html-logs/share/html/overlib/cornerTL.gif and /dev/null 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 Binary files a/src/extras/sos-html-logs/share/html/overlib/cornerTR.gif and /dev/null 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 Binary files a/src/extras/sos-html-logs/share/html/overlib/edgeB.gif and /dev/null 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 Binary files a/src/extras/sos-html-logs/share/html/overlib/edgeL.gif and /dev/null 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 Binary files a/src/extras/sos-html-logs/share/html/overlib/edgeR.gif and /dev/null 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 Binary files a/src/extras/sos-html-logs/share/html/overlib/edgeT.gif and /dev/null 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 Binary files a/src/extras/sos-html-logs/share/html/overlib/exit.gif and /dev/null 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 Binary files a/src/extras/sos-html-logs/share/html/overlib/flower.gif and /dev/null 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 (''); -} - -/* - 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 @@ - - - - - - - -overLIB - License for the overlibmws package - - - - - - - - - - - - - - - - - - - - - - -
- Open Source License for the overlibmws Package -
-
- 1. License coverage -

- Note that this license only covers the script library (javascript core and plugin modules) - and not any supporting material such as the overlibmws website 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. -

- 2. License (Artistic) -
    -
  • - Preamble
    - 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. -
  • -
-
    -
  • - Definitions:
    - "Package" refers to the collection of files distributed by the Copyright Holder, and - derivatives of that collection of files created through textual modification. -

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

    - "Copyright Holder" is whoever is named in the copyright or copyrights for the package. -

    - "You" is you, if you're thinking about copying or distributing this Package. -

    - "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.) -

    - "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. -
  • -
-
    -
  1. - 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. -
  2. -
  3. - 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. -
  4. -
  5. - 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: -
      -
    1. - 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. -
    2. -
    3. - use the modified Package only within your corporation or organization. -
    4. -
    5. - 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. -
    6. -
    7. - make other distribution arrangements with the Copyright Holder. -
    8. -
    -
  6. -
  7. - You may distribute the programs of this Package in object code or executable form, - provided that you do at least ONE of the following: -
      -
    1. - 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. -
    2. -
    3. - accompany the distribution with the machine-readable source of the Package with your - modifications. -
    4. -
    5. - 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. -
    6. -
    7. - make other distribution arrangements with the Copyright Holder. -
    8. -
    -
  8. -
  9. - 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. -
  10. -
  11. - 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. -
  12. -
  13. - C or perl subroutines supplied by you and linked into this Package shall not be considered - part of this Package. -
  14. -
  15. - The name of the Copyright Holder may not be used to endorse or promote products derived - from this software without specific prior written permission. -
  16. -
  17. - 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. -
  18. -
-
-
- - - - - - - - -
-
-
- Copyright Foteos Macrides
-   2002-2007.
-   All rights reserved.
-
-
-
-
-
-
- - - 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 Binary files a/src/extras/sos-html-logs/share/html/overlib/loading.gif and /dev/null 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 not supported]
'); -} 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 Binary files a/src/extras/sos-html-logs/share/html/overlib/oval.gif and /dev/null 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= - ''; - -// PRINTROOT - String for root tag for temporary printing window. -var ol_printroot=""; - -// 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');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(' '; -if(close){closing+='':(OLns4?'><':'') -+OLlgfUtil(0,1,'','a',o3_closecolor,o3_closefont,o3_closesize))+close+ -(o3_closefontclass?'':(OLns4?OLlgfUtil(1,1,'','a'):''))+'';} -caption='':'>')+(o3_captionfontclass?'
':OLlgfUtil(0,1,'','div',o3_capcolor,o3_captionfont,o3_captionsize))+o3_capicon+title -+OLlgfUtil(1,1,'','div')+''+closing+'
'; -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='' -+OLlgfUtil(0,0,o3_textfontclass,'div',o3_textcolor,o3_textfont,o3_textsize)+txt+ -OLlgfUtil(1,0,'','div')+'';}OLsetBackground(image);return t; -} - -// LGF utilities -function OLbgLGF(){ -return ''; -} -function OLfgLGF(t){ -return '' -+OLlgfUtil(0,0,o3_textfontclass,'div',o3_textcolor,o3_textfont,o3_textsize)+t -+(OLprintPI?OLprintFgLGF():'')+OLlgfUtil(1,0,'','div')+''; -} -function OLlgfUtil(end,stg,tfc,ele,col,fac,siz){ -if(end)return(''); -else return(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;i0&&!o3_wrap)?('
'):'')+''; -} -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-pgLeftiWd/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-LM0)?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-pgTopiHt/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-TM1){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;j0)for(j=0;j0)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=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(OLxright||OLybottom)return true;return false; -} - -/* - REGISTRATION -*/ -function OLsetRunTimeVar(){ -if(OLrunTime.length)for(var k=0;k-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;i0)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=''+(OLns4?'
': -'
')+content+'
'; -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='' -+'' -+''+'
'+content -+'
' -+'
'; -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( -' - - - - - - - - -Index Browse

- -""" - def footer(self): - return """""" - - 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 """ - -
    -
""" % (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 """""" - - for host in cluster.host_names(): - yield """""" % (host, host) - - yield """""" - - if line == 0 or line % 200 == 0 or time.strftime("%b %d", prev_date) != time.strftime("%b %d", date.date): - yield("""""" % (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("""""" % (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 """\n" - - yield "" - - line += 1 - prev_date = date.date - - if not first_date: - first_date = date.date - - if line > dates_per_page: - break - - yield "
Generated by sos-logs2html 1.0 on %s
Time%s
%s
%s""" - 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 """%s
""" % log.message() - - yield "
" - - 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 """

Parsing in progress (%d%% done)

""" % (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 """ - -""" % (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 """""" - - for host in cluster.host_names(): - yield """""" % (host, host) - - yield """""" - - if line == 0 or line % 200 == 0 or time.strftime("%b %d", prev_date) != time.strftime("%b %d", prev_prev_date): - yield("""""" % (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("""""" % (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 "" - 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 = '%s""" % 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 """""" - - yield "
Generated by sos-logs2html 1.0 on %s
Time%s
%s
%s
    " - if html_row.has_key(tab): - for out in html_row[tab]: - yield "
  • " + out + "
  • " - yield "
No event logged yet, click here to start viewing the logs or refresh this page.
" - - 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 """""" - - 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 """""" - - cherrypy.config.update({'logDebugInfoFilter.logBuildTime': False}) - cherrypy.config.update({'logDebugInfoFilter.logPageSize': False}) - - def navigation(self): - yield """Previous Next""" - - 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 """
Filter out the following daemons from the output""" - - yield """
""" - - yield """""" - - yield """""" - - yield """""" - - yield """
""" - - yield """
""" - - 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() - -- cgit