Benutzer:Deus Figendi/ChatLogFormater.js
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Strg+F5
/*
A WORD ON LICENCIES:
This script was written in less a day so... I'm not
sure if it reaches a hight enough threshold of originality.
'Cause there might be no such law in your country you'll
need a licence anyway.
And: This plattform wants me to use the GDLF but... that
is a document-licence not for software and this is software!
However, so I decided just to multi-licence this work XD
For every licence:
Name: Chat Formater
Version: 1.2
Description: JavaScript that converts some chat-logs into HTML-definition-lists
Author: ©2011 Deus Figendi aka Kai-Uwe Kramer
Contact: http://www.jedipedia.net/wiki/Benutzer_Diskussion:Deus_Figendi
* -------------------------THE BEER-WARE LICENSE------------------------------
* "THE BEER-WARE LICENSE" (Revision 42):
* http://www.jedipedia.net/wiki/Benutzer_Diskussion:Deus_Figendi schrieb
* diese Datei. Solange Sie diesen Vermerk nicht entfernen, können Sie mit
* der Datei machen, was Sie möchten. Wenn wir uns eines Tages treffen
* und Sie denken, die Datei ist es wert, können Sie mir dafür ein Bier
* ausgeben. Deus Figendi
*
* Für weitere Informationen über diese Lizenz siehe:
* http://people.freebsd.org/~phk/
* ----------------------------------------------------------------------------
------------------------------------GPL---------------------------------------
(C) 2011 Deus Figendi alias Kai-Uwe Kramer
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
--------------------------------GFDL------------------------------------------
Copyright (C) 2011 Deus Figendi aka Kai-Uwe Kramer
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license can be found here: http://www.gnu.org/copyleft/fdl.html
*/
function getGlobalParser () {
//this function creates a parser-Object
//it containts for various Chat-Clients a RegularExpression and
//the numbers/positions of sub-expressions.
if (!globalParser) {
var globalParser = new Array();
var line_analyser = new Object();
line_analyser.name = "ChatZilla";
// v----------------1 Date/Time-----------------------v
line_analyser.pattern = /^(\[(\d{4})\-(\d\d)\-(\d\d)\s(\d\d)\:(\d\d):(\d\d)\])?\s(\<|\*\s|\=\-\=\s|\-\-\>\|\s|\|\<\-\-\s)([\w\^\-\.\|]+)\>?\s(.*)$/;
// 2Jahr 3Monat 4Tag 5Stunde 6Minute7Sekunde 8 Action-Identifier 9 Nickname 10Txt
line_analyser.dt_year = 2;
line_analyser.dt_month = 3;
line_analyser.dt_day = 4;
line_analyser.dt_hour = 5;
line_analyser.dt_minute= 6;
line_analyser.dt_second= 7;
line_analyser.act_say_pos = 8;
line_analyser.act_say_pat = /^\<$/;
line_analyser.act_say_nic = 9;
line_analyser.act_say_txt = 10;
line_analyser.act_mode_pos= 8;
line_analyser.act_mode_pat= /^\=\-\=\s$/;
line_analyser.act_mode_nic = 9;
line_analyser.act_mode_txt = 10;
line_analyser.act_act_pos = 8;
line_analyser.act_act_pat = /^\*\s$/;
line_analyser.act_act_nic = 9;
line_analyser.act_act_txt = 10;
line_analyser.act_join_pos= 8;
line_analyser.act_join_pat= /^\-\-\>\|\s$/;
line_analyser.act_join_nic = 9;
line_analyser.act_join_txt = 10;
line_analyser.act_part_pos= 8;
line_analyser.act_part_pat= /^\|\<\-\-\s$/;
line_analyser.act_part_nic = 9;
line_analyser.act_part_txt = 10;
line_analyser.act_quit_pos= 8;
line_analyser.act_quit_pat= /^\-\-\>\|\s$/;
line_analyser.act_quit_nic = 9;
line_analyser.act_quit_txt = 10;
line_analyser.act_nick_pos= 8;
line_analyser.act_nick_pat= /^\=\-\=\s_____$/;
line_analyser.act_nick_nic = 9;
line_analyser.act_nick_txt = 10;
// =-= steht für Topic-Change, Nickchange, Modi... muss nachgebessert werden.
globalParser[globalParser.length] = line_analyser;
var line_analyser = new Object();
line_analyser.name = "mibbit";
line_analyser.pattern = /^(\d\d)\:(\d\d)\s(\s*\**\s)?([\w\^\-\.\|]+)\s(.*)$/;
// 1Stunde 2Minute 3Act-Type 4nickname 5text
line_analyser.dt_year = -1;
line_analyser.dt_month = -1;
line_analyser.dt_day = -1;
line_analyser.dt_hour = 1;
line_analyser.dt_minute= 2;
line_analyser.dt_second= -1;
line_analyser.act_say_pos = 3;
line_analyser.act_say_pat = /^$/;
line_analyser.act_say_nic = 4;
line_analyser.act_say_txt = 5;
line_analyser.act_mode_pos= 3;
line_analyser.act_mode_pat= /^\s*\*\*\*\s$/;
line_analyser.act_mode_nic = 4;
line_analyser.act_mode_txt = 5;
line_analyser.act_act_pos = 3;
line_analyser.act_act_pat = /^\s*\*\s$/;
line_analyser.act_act_nic = 4;
line_analyser.act_act_txt = 5;
line_analyser.act_join_pos= 3;
line_analyser.act_join_pat= /^\s*\*\*\*\s$/; //check
line_analyser.act_join_nic = 4;
line_analyser.act_join_txt = 5;
line_analyser.act_part_pos= 3;
line_analyser.act_part_pat= /^\s*\*\*\*\s$/; //check
line_analyser.act_part_nic = 4;
line_analyser.act_part_txt = 5;
line_analyser.act_quit_pos= 3;
line_analyser.act_quit_pat= /^\s*\*\*\*\s$/; //check
line_analyser.act_quit_nic = 4;
line_analyser.act_quit_txt = 5;
line_analyser.act_nick_pos= 3;
line_analyser.act_nick_pat= /^\s*\*\*\*\s$/; //check
line_analyser.act_nick_nic = 4;
line_analyser.act_nick_txt = 5;
globalParser[globalParser.length] = line_analyser;
var line_analyser = new Object();
line_analyser.name = "MirandaIM";
// v----------------------------------------------------4 Action + Mode-Block----------------------------------------------------------------------------------------------v
line_analyser.pattern = /^\[(\d\d):(\d\d)\]\s([\w\^\-\.\|]+)((:)?\s(has left|has joined|[\w]{2,3}ables \'\w+\' status for [\w\^\-\.\|]+|sets mode (\+|\-)[\w]+\s?[\w\^\-\.]*|is now known as [\w\^\-\.\|]+|has disconnected\: Quit\: .*))(.*)$/;
// 1hour 2Minute 3nickname 5act ^--------------------------------6 action type------------------------------------------------------------------------------------------------------------------^ 8txt
// 7mode+/
line_analyser.dt_year = -1;
line_analyser.dt_month = -1;
line_analyser.dt_day = -1;
line_analyser.dt_hour = 1;
line_analyser.dt_minute= 2;
line_analyser.dt_second= -1;
line_analyser.act_say_pos = 5;
line_analyser.act_say_pat = /^:$/;
line_analyser.act_say_nic = 3;
line_analyser.act_say_txt = 8;
line_analyser.act_mode_pos= 4;
line_analyser.act_mode_pat= /^\s([\w]{2,3}ables \'\w+\' status for [\w\^\-\.\|]+|sets mode (\+|\-)[\w]+\s?[\w\^\-\.\|]*).*$/;
line_analyser.act_mode_nic = 3;
line_analyser.act_mode_txt = 6;
line_analyser.act_act_pos = 4;
line_analyser.act_act_pat = /^\s(has left|has joined|[\w]{2,3}ables \'\w+\' status for [\w\^\-\.\|]+|sets mode (\+|\-)[\w]+\s?[\w\^\-\.\|]*|is now known as [\w\^\-\.\|]+|has disconnected\: Quit\: .*){0}$/;
line_analyser.act_act_nic = 3;
line_analyser.act_act_txt = 8;
line_analyser.act_join_pos= 4;
line_analyser.act_join_pat= /^\shas joined.*$/;
line_analyser.act_join_nic = 3;
line_analyser.act_join_txt = 6;
line_analyser.act_part_pos= 4;
line_analyser.act_part_pat= /^\shas left.*$/;
line_analyser.act_part_nic = 3;
line_analyser.act_part_txt = 6;
line_analyser.act_quit_pos= 4;
line_analyser.act_quit_pat= /^\shas disconnected\: Quit\: .*$/;
line_analyser.act_quit_nic = 3;
line_analyser.act_quit_txt = 6;
line_analyser.act_nick_pos= 6;
line_analyser.act_nick_pat= /^\sis now known as [\w\^\-\.\|]+.*$/;
line_analyser.act_nick_nic = 3;
line_analyser.act_nick_txt = 6;
globalParser[globalParser.length] = line_analyser;
var line_analyser = new Object();
line_analyser.name = "PidGin";
// v 4 Typ/Nick-Block v
line_analyser.pattern = /^\((\d\d)\:(\d\d)\:(\d\d)\)\s(\*{0,3}([\w\^\-]+)\:?)\s(.*)$/;
// 1Stunde 2Minute 3Sekunde 5nickname 6text
line_analyser.dt_year = -1;
line_analyser.dt_month = -1;
line_analyser.dt_day = -1;
line_analyser.dt_hour = 1;
line_analyser.dt_minute= 2;
line_analyser.dt_second= 3;
line_analyser.act_say_pos = 4;
line_analyser.act_say_pat = /^[\w\^\-\.\|]+\:$/;
line_analyser.act_say_nic = 5;
line_analyser.act_say_txt = 6;
line_analyser.act_mode_pos= 5;
line_analyser.act_mode_pat= /^Modus$/;
line_analyser.act_mode_nic = -1;
line_analyser.act_mode_txt = 6;
line_analyser.act_act_pos = 4;
line_analyser.act_act_pat = /^\*\*\*[\w\^\-\.\|]+$/;
line_analyser.act_act_nic = 5;
line_analyser.act_act_txt = 6;
line_analyser.act_join_pos= 6;
line_analyser.act_join_pat= /^\s?\[[\w\^\-\.\|]+\]\shat\sden\sRaum\sbetreten\..*$/;
line_analyser.act_join_nic = 5;
line_analyser.act_join_txt = 6;
line_analyser.act_part_pos= 6;
line_analyser.act_part_pat= /^\s?hat\sden\sRaum\sverlassen\.$/;
line_analyser.act_part_nic = 5;
line_analyser.act_part_txt = 6;
line_analyser.act_quit_pos= 6;
line_analyser.act_quit_pat= /^\s?hat\sden\sRaum\sverlassen\.\s\(quit\:\s.*$/;
line_analyser.act_quit_nic = 5;
line_analyser.act_quit_txt = 6;
line_analyser.act_nick_pos= 6;
line_analyser.act_nick_pat= /^\s?hei.t jetzt[\w\^\-\.\|]+.*$/;
line_analyser.act_nick_nic = 5;
line_analyser.act_nick_txt = 6;
globalParser[globalParser.length] = line_analyser;
var line_analyser = new Object();
line_analyser.name = "Trillian";
// v 3 Action- and Nick- and Text-Block v
line_analyser.pattern = /^\[(\d\d)\:(\d\d)\]\s((\*{0,3})\s?\<?[\@\+]?([\w\^\-\.\|]+)\>?(\s|\!)(.*))$/;
// 1Stunde 2Minute 4Act-Type 5nickname 6????? 7text
line_analyser.dt_year = -1;
line_analyser.dt_month = -1;
line_analyser.dt_day = -1;
line_analyser.dt_hour = 1;
line_analyser.dt_minute= 2;
line_analyser.dt_second= -1;
line_analyser.act_say_pos = 4;
line_analyser.act_say_pat = /^$/;
line_analyser.act_say_nic = 5;
line_analyser.act_say_txt = 7;
line_analyser.act_mode_pos= 3;
line_analyser.act_mode_pat= /^\*\*\*\s[\w\^\-\.\|]+\ssets\smode\s.*$/;
line_analyser.act_mode_nic = 5;
line_analyser.act_mode_txt = 7;
line_analyser.act_act_pos = 3;
line_analyser.act_act_pat = /^\*\s.*$/;
line_analyser.act_act_nic = 5;
line_analyser.act_act_txt = 7;
line_analyser.act_join_pos= 3;
line_analyser.act_join_pat= /^\*\*\*\s[\w\^\-\.\|]+\shas\sjoined\s.*$/;
line_analyser.act_join_nic = 5;
line_analyser.act_join_txt = 7;
line_analyser.act_part_pos= 3;
line_analyser.act_part_pat= /^\*\*\*\s[\w\^\-\.\|]+\shas\sleft\s.*$/;
line_analyser.act_part_nic = 4;
line_analyser.act_part_txt = 5;
line_analyser.act_quit_pos= 3;
line_analyser.act_quit_pat= /^\*\*\*\s[\w\^\-\.\|]+\shas\squit\s.*$/;
line_analyser.act_quit_nic = 4;
line_analyser.act_quit_txt = 5;
line_analyser.act_nick_pos= 3;
line_analyser.act_nick_pat= /^\*\*\*\s[\w\^\-\.\|]+\sis now known as [\w\^\-\.\|]+.*$/;
line_analyser.act_nick_nic = 4;
line_analyser.act_nick_txt = 5;
globalParser[globalParser.length] = line_analyser;
var line_analyser = new Object();
line_analyser.name = "xChat-de";
// v--------1 Date--------v v--------4 Time-----------v v----------8 Nick/Action-Block-------v
//line_analyser.pattern = /^\s?((\w{1,3})\s(\d{1,2})\s)?(\[?(\d\d):(\d\d)(\:(\d\d))?\]?)?\s{0,2}(<?([\w\^\-]+)>?|((\*)\s*([\w\^\-]*)))\s{1,2}(.*)$/;
// 2Month 3Day 5hour 6minute 7seconds 9saynick 11act 12act-nick 13text
// v----------------------------------1 Date-------------------v v----------4 time------------v v----------------------------------------------------------------------8 action/say-Block-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------v
line_analyser.pattern = /^((Jan|Feb|Mrz|Apr|Mai|Jun|Jul|Aug|Sep|Okt|Nov|Dez)\s(\d\d)\s)?(\[?(\d\d):(\d\d):?(\d\d)?\]?)?\s*((\*\s|<)?([\w\^\-\.\|]+)>?\s+(\([\~\w\.\-\@\/]+\)\shat\s[\#\w\-\.]+\sbetreten|\([\~\w\.\-\@]+\)\shat\s[#\w\-\.]+\sverlassen|hat die Verbindung getrennt \(.*|ist jetzt bekannt als [\w\^\-\.\|]+|gibt \w+\-Status an [\w\^\-\.\|]+|setzt Modus (\+|\-)\w [\w\#\-\.]+|entfernt \w+\-Status bei [\w\^\-\.\|]+|ist jetzt bekannt als [\w\^\-\.\|]+)?(.*))$/
// ^-------------------2 Month---------------------^ 3 day 5hour 6minute 7second 9action? 10 nickname ^-------------------------------11 action-type--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------^ 13txt
// ^-----------------join-------------------------^-------------------part----------------------^-----------------quit-----------^-------------------nick------------^--------------------------------mode----------11cmode-----------------------------------------------------^------------nick-------------------^
line_analyser.dt_year = -1;
line_analyser.dt_month = 2;
line_analyser.dt_day = 3;
line_analyser.dt_hour = 5;
line_analyser.dt_minute= 6;
line_analyser.dt_second= 7;
line_analyser.act_say_pos = 9;
line_analyser.act_say_pat = /^<$/;
line_analyser.act_say_nic = 10;
line_analyser.act_say_txt = 13;
line_analyser.act_mode_pos= 11;
line_analyser.act_mode_pat= /^gibt \w+\-Status an [\w\^\-\.\|]+|setzt Modus (\+|\-)\w [\w\#\-\.]+|entfernt \w+\-Status bei [\w\^\-\.\|]+$/;
line_analyser.act_mode_nic = 10;
line_analyser.act_mode_txt = 11;
line_analyser.act_act_pos = 8;
line_analyser.act_act_pat = /^\*\s[\w\^\-\.\|]+\s(\([\~\w\.\-\@]+\)\shat\s[#\w\-\.]+\sbetreten|\([\~\w\.\-\@]+\)\shat\s[#\w\-\.]+\sverlassen|hat die Verbindung getrennt \(Quit: .*\)?|ist jetzt bekannt als [\w\^\-\.\|]+|gibt \w+\-Status an [\w\^\-\.\|]+|setzt Modus (\+|\-)\w [\w\#\-\.]+|ist jetzt bekannt als [\w\^\-\.\|]+){0}.*$/;
line_analyser.act_act_nic = 10;
line_analyser.act_act_txt = 13;
line_analyser.act_join_pos= 11;
line_analyser.act_join_pat= /^\([\~\w\.\-\@\/]+\)\shat\s[\#\w\-\.]+\sbetreten.*$/;
line_analyser.act_join_nic = 10;
line_analyser.act_join_txt = 11;
line_analyser.act_part_pos= 11;
line_analyser.act_part_pat= /^\([\~\w\.\-\@\/]+\)\shat\s[#\w\-\.]+\sverlassen.*$/;
line_analyser.act_part_nic = 10;
line_analyser.act_part_txt = 11;
line_analyser.act_quit_pos= 11;
line_analyser.act_quit_pat= /^hat die Verbindung getrennt \(.*$/;
line_analyser.act_quit_nic = 10;
line_analyser.act_quit_txt = 11;
line_analyser.act_nick_pos= 11;
line_analyser.act_nick_pat= /^ist jetzt bekannt als [\w\^\-\.\|]+.*$/;
line_analyser.act_nick_nic = 10;
line_analyser.act_nick_txt = 11;
globalParser[globalParser.length] = line_analyser;
}
return globalParser;
}
function movePreloadSelect (repitations) {
//moves the preload-<select>-Element to the right if it has the style.marginLeft-Thingy in px (otherwise I'd need CSS3)
if (document.getElementById("stdPreloads")) {
if (document.getElementById("stdPreloads").parentNode) {
var ml_text = document.getElementById("stdPreloads").parentNode.style.marginLeft;
var ml_re = /^(\d+)(.+)$/;
var ml_re_result = ml_re.exec(ml_text);
if (ml_re_result) {
if (ml_re_result[2].trim() == "px") {
var num_pixel = parseInt(ml_re_result[1]);
num_pixel = parseInt(num_pixel + (23 * (repitations)));
document.getElementById("stdPreloads").parentNode.style.marginLeft = String(num_pixel)+"px";
}
}
}
}
}
/*
function analyse_line(input_line,parse_object) {
var log_type = -1;
var j = 0;
while (log_type < 0 && j < parse_object.length) {
if (parse_object[j].pattern.test(input_line)) {
log_type = j;
}
j++;
}
return log_type;
}
function c2c_lineident (input_line) {
//Tries to identify from what kind of client the logfile was created. Returns an integer:
// 0 = did not identify
// 10 = xChat with timestamps (my client)
// 11 = xChat without timestamps
// 20 = PidGin
// 30 = Trillian
// 40 = mibbit
// 50 = ChatZilla
if (/^(\w{1,3}\s\d{1,2}\s)?\[?\d\d\:\d\d(\:\d\d)?\]?\s{1,2}((\<?[\w\^\-\.\|]+\>?)|\*)\s{1,2}.*$/.exec(input_line)) {
return 10; //xChat mit Timestamps
} else if (/^\s?((\<?[\w\^\-\.\|]+\>?)|\*)\s{1,2}.*$/.exec(input_line)) {
return 11; //xChat ohne Timestamps
} else if (/^\(\d\d\:\d\d\:\d\d\)\s\*{0,3}[\w\^\-\.\|]+\:?\s.*$/.exec(input_line)) {
return 20; //PidGin
} else if (/^\[\d\d\:\d\d\]\s(((\*\s)?\<(\@|\+)?[\w\^\-\.\|]+\>?\s.*)|(\*\*\*\s[\w\^\-\.\|]+\!.*))$/.exec(input_line)) {
return 30; //Trillian
} else if (/^\d\d\:\d\d\s\s?(\*\*\*\s)?[\w\^\-\.\|]+\s.*$/.exec(input_line)) {
return 40; //mibbit
} else if (/^\[\d{4}\-\d\d\-\d\d\s\d\d\:\d\d:\d\d\]\s(\<|\*\s|\=\-\=\s|\-\-\>\|\s|\|\<\-\-\s)[\w\^\-\.\|]*\>?\s.*$/.exec(input_line)) {
return 50; //ChatZilla
} else {
return 0; //nicht erkannt.
}
}
function find_2_highest(input_array) {
//finds out what indexes in an array are the highest. Returns an array with two elements telling what indexes are the highest.
var first = 0;
var second = 0;
for (var i = 0; i < input_array.length; i++) {
if (!isNaN(input_array[i])) {
if (input_array[i] > input_array[first]) {
second = first;
first = i;
}
if (input_array[i] > input_array[second] && i != first) {
second = i;
}
}
}
return (new Array(first,second));
}
*/
function chatlog2chatlog (input_text) {
//Main-Function:
//Takes every line, parses it and returns finaly a formated string.
var my_parser = getGlobalParser();
if (document.getElementById("df_nicklinkscheck").checked) {
var nick_user_array = new Object();
}
var c2c_linearray = input_text.split("\n");
var c2c_outputtext = "\n";
var c2c_outputformat = document.getElementById("df_outputformatselect").options[document.getElementById("df_outputformatselect").selectedIndex].value;
var c2c_inputtype1 = document.getElementById("df_logformatselect").options[document.getElementById("df_logformatselect").selectedIndex].value;
var datestring = document.getElementById("df_chatdate").value;
if (c2c_outputformat == "DEBUG") {
c2c_outputtext += "Settings:\nClient: "+c2c_inputtype1+"\nAusgabe: "+c2c_outputformat+"\ndateString: "+datestring+"\nUsernames: "+document.getElementById("df_nicklinkscheck").checked+"\nnowiki: "+document.getElementById("df_nowikicheck").checked+"\n\n";
} else if (c2c_outputformat == "HTML1") {
c2c_outputtext += "<dl class=\"chatlog\">";
} else if (c2c_outputformat == "WIKI1") {
c2c_outputtext += "{{Dialog\n";
} else if (c2c_outputformat == "WIKI2") {
c2c_outputtext += "{|";
}
if (c2c_inputtype1 >=0) { var c2c_inputtype2 = c2c_inputtype1; }
var c2c_this_parsed = new Object();
var c2c_this_parsed2 = new Object();
var theday = new Date();
if (datestring.match(/^\d{4}\-\d\d?\-\d\d?$/)) {
var datearray = /^(\d{4})\-(\d\d?)\-(\d\d?)$/.exec(datestring);
theday.setFullYear(datearray[1]);
theday.setMonth(datearray[2]);
theday.setDate(datearray[3]);
}
var c2c_nick2user = new Object();
for (var i = 0; i < c2c_linearray.length; i++) {
if (c2c_inputtype1 <0) { var c2c_inputtype2 = analyse_line(c2c_linearray[i]); }
//defaults:
c2c_this_parsed.year = theday.getFullYear();//Year
c2c_this_parsed.month = theday.getMonth(); //Month
c2c_this_parsed.day = theday.getDate(); //Day
c2c_this_parsed.hour = "."; //Hour
c2c_this_parsed.minute = "."; //Minute
c2c_this_parsed.second = "00"; //Second
c2c_this_parsed.nick = "."; //Nickname
c2c_this_parsed.acttype= "say"; //Action-Type like say, me, join, part, nickchange, quit...
c2c_this_parsed.content= "."; //Content-Line (whats said/happened)
var c2c_this_parsed2 = my_parser[c2c_inputtype2].pattern.exec(c2c_linearray[i]);
if (c2c_this_parsed2) {
if (c2c_outputformat == "DEBUG") {
c2c_outputtext += "\n\n\nAnalysiere:\n"+c2c_linearray[i]+"\nc2c_this_parsed2:\n"+c2c_this_parsed2.join("\n")+"\n";
}
if (my_parser[c2c_inputtype2].act_nick_pos) {
if (my_parser[c2c_inputtype2].act_nick_pos >0) {
if (my_parser[c2c_inputtype2].act_nick_pat.test(c2c_this_parsed2[my_parser[c2c_inputtype2].act_nick_pos])) {
c2c_this_parsed.acttype = "nick";
} else { if (c2c_outputformat == "DEBUG") { c2c_outputtext += "-1:"+c2c_this_parsed2[my_parser[c2c_inputtype2].act_nick_pos]+"\n"; }}
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-2"; }}
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-3"; }}
if (c2c_this_parsed.acttype == "say") {
if (my_parser[c2c_inputtype2].act_quit_pos) {
if (my_parser[c2c_inputtype2].act_quit_pos >0) {
if (my_parser[c2c_inputtype2].act_quit_pat.test(c2c_this_parsed2[my_parser[c2c_inputtype2].act_quit_pos])) {
c2c_this_parsed.acttype = "quit";
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-4:"+c2c_this_parsed2[my_parser[c2c_inputtype2].act_quit_pos]+" ("+my_parser[c2c_inputtype2].act_quit_pos+")"+"\n"; }}
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-5"; }}
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-6"; }}
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-7"; }}
if (c2c_this_parsed.acttype == "say") {
if (my_parser[c2c_inputtype2].act_mode_pos) {
if (my_parser[c2c_inputtype2].act_mode_pos >0) {
if (my_parser[c2c_inputtype2].act_mode_pat.test(c2c_this_parsed2[my_parser[c2c_inputtype2].act_mode_pos])) {
c2c_this_parsed.acttype = "mode";
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-8"; }}
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-9"; }}
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-10"; }}
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-11"; }}
if (c2c_this_parsed.acttype == "say") {
if (my_parser[c2c_inputtype2].act_part_pos) {
if (my_parser[c2c_inputtype2].act_part_pos >0) {
if (my_parser[c2c_inputtype2].act_part_pat.test(c2c_this_parsed2[my_parser[c2c_inputtype2].act_part_pos])) {
c2c_this_parsed.acttype = "part";
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-12"; }}
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-13"; }}
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-14"; }}
} else {if (c2c_outputformat == "DEBUG") { c2c_outputtext += "-15"; }}
if (c2c_this_parsed.acttype == "say") {
if (my_parser[c2c_inputtype2].act_join_pos) {
if (my_parser[c2c_inputtype2].act_join_pos >0) {
if (my_parser[c2c_inputtype2].act_join_pat.test(c2c_this_parsed2[my_parser[c2c_inputtype2].act_join_pos])) {
c2c_this_parsed.acttype = "join";
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-16:"+c2c_this_parsed2[my_parser[c2c_inputtype2].act_join_pos]+"\n"; }}
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-17"; }}
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-18"; }}
} else {if (c2c_outputformat == "DEBUG") { c2c_outputtext += "-19"; }}
if (c2c_this_parsed.acttype == "say") {
if (my_parser[c2c_inputtype2].act_act_pos) {
if (my_parser[c2c_inputtype2].act_act_pos >0) {
if (my_parser[c2c_inputtype2].act_act_pat.test(c2c_this_parsed2[my_parser[c2c_inputtype2].act_act_pos])) {
c2c_this_parsed.acttype = "act";
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-20"; }}
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-21"; }}
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-22"; }}
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-23"; }}
if (my_parser[c2c_inputtype2].dt_year >0 && c2c_this_parsed2[my_parser[c2c_inputtype2].dt_year]) {
c2c_this_parsed.year = c2c_this_parsed2[my_parser[c2c_inputtype2].dt_year];
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-24"; }}
if (my_parser[c2c_inputtype2].dt_month >0 && c2c_this_parsed2[my_parser[c2c_inputtype2].dt_month]) {
c2c_this_parsed.month = c2c_this_parsed2[my_parser[c2c_inputtype2].dt_month];
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-25"; }}
if (my_parser[c2c_inputtype2].dt_day >0 && c2c_this_parsed2[my_parser[c2c_inputtype2].dt_day]) {
c2c_this_parsed.day = c2c_this_parsed2[my_parser[c2c_inputtype2].dt_day];
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-26"; }}
if (my_parser[c2c_inputtype2].dt_hour >0 && c2c_this_parsed2[my_parser[c2c_inputtype2].dt_hour]) {
c2c_this_parsed.hour = c2c_this_parsed2[my_parser[c2c_inputtype2].dt_hour];
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-27"; }}
if (my_parser[c2c_inputtype2].dt_minute >0 && c2c_this_parsed2[my_parser[c2c_inputtype2].dt_minute]) {
c2c_this_parsed.minute = c2c_this_parsed2[my_parser[c2c_inputtype2].dt_minute];
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-28"; }}
if (my_parser[c2c_inputtype2].dt_second >0 && c2c_this_parsed2[my_parser[c2c_inputtype2].dt_second]) {
c2c_this_parsed.second = c2c_this_parsed2[my_parser[c2c_inputtype2].dt_second];
} else { if (c2c_outputformat == "DEBUG") {c2c_outputtext += "-29"; }}
if (c2c_this_parsed.acttype == "say") {
c2c_this_parsed.nick = c2c_this_parsed2[my_parser[c2c_inputtype2].act_say_nic];
c2c_this_parsed.content = c2c_this_parsed2[my_parser[c2c_inputtype2].act_say_txt];
} else if (c2c_this_parsed.acttype == "act") {
c2c_this_parsed.nick = c2c_this_parsed2[my_parser[c2c_inputtype2].act_act_nic];
c2c_this_parsed.content = c2c_this_parsed2[my_parser[c2c_inputtype2].act_act_txt];
} else if (c2c_this_parsed.acttype == "mode") {
c2c_this_parsed.nick = c2c_this_parsed2[my_parser[c2c_inputtype2].act_mode_nic];
c2c_this_parsed.content = c2c_this_parsed2[my_parser[c2c_inputtype2].act_mode_txt];
} else if (c2c_this_parsed.acttype == "part") {
c2c_this_parsed.nick = c2c_this_parsed2[my_parser[c2c_inputtype2].act_part_nic];
c2c_this_parsed.content = c2c_this_parsed2[my_parser[c2c_inputtype2].act_part_txt];
} else if (c2c_this_parsed.acttype == "join") {
c2c_this_parsed.nick = c2c_this_parsed2[my_parser[c2c_inputtype2].act_join_nic];
c2c_this_parsed.content = c2c_this_parsed2[my_parser[c2c_inputtype2].act_join_txt];
} else if (c2c_this_parsed.acttype == "nick") {
c2c_this_parsed.nick = c2c_this_parsed2[my_parser[c2c_inputtype2].act_nick_nic];
c2c_this_parsed.content = c2c_this_parsed2[my_parser[c2c_inputtype2].act_nick_txt];
} else if (c2c_this_parsed.acttype == "quit") {
c2c_this_parsed.nick = c2c_this_parsed2[my_parser[c2c_inputtype2].act_quit_nic];
c2c_this_parsed.content = c2c_this_parsed2[my_parser[c2c_inputtype2].act_quit_txt];
}
if (document.getElementById("df_nicklinkscheck").checked) {
if (c2c_nick2user[c2c_this_parsed.nick] === undefined) {
c2c_nick2user[c2c_this_parsed.nick] = prompt("Wie lautet der Benutzername von "+c2c_this_parsed.nick+"?\n(Lösche das Feld wenn er oder sie kein Benutzerkonto hat)", c2c_this_parsed.nick);
}
}
if (c2c_outputformat == "DEBUG") {
c2c_outputtext += "\nRead:\nYear: "+c2c_this_parsed.year+"\nMonth: "+c2c_this_parsed.month+"\nDay: "+c2c_this_parsed.day+"\nHour: "+c2c_this_parsed.hour+"\nMinute: "+c2c_this_parsed.minute+"\nSecond: "+c2c_this_parsed.second+"\nAct-Type: "+c2c_this_parsed.acttype+"\nNickname: "+c2c_this_parsed.nick+"\nUser: "+c2c_nick2user[c2c_this_parsed.nick]+"\nContent: "+c2c_this_parsed.content;
} else if (c2c_outputformat == "HTML1") {
c2c_outputtext += "<dt class=\"timenick";
if (c2c_this_parsed.acttype == "say") { c2c_outputtext += " sayline\""; }
if (c2c_this_parsed.acttype == "act") { c2c_outputtext += " actline\" "; }
if (c2c_this_parsed.acttype == "mode") { c2c_outputtext += " modeline\" style=\"color:#a5a5a5;\""; }
if (c2c_this_parsed.acttype == "part") { c2c_outputtext += " partline\" style=\"color:#a00;\""; }
if (c2c_this_parsed.acttype == "join") { c2c_outputtext += " joinline\" style=\"color:#0A0;\""; }
if (c2c_this_parsed.acttype == "nick") { c2c_outputtext += " ncline\" style=\"text-weight:bold;\""; }
if (c2c_this_parsed.acttype == "quit") { c2c_outputtext += " quitline\" style=\"color:#a00\""; }
c2c_outputtext += ">";
c2c_outputtext += ">";
if (c2c_this_parsed.minute != ".") {
c2c_outputtext += "<abbr style=\"font-size:xx-small;\" class=\"time\" title=\""+c2c_this_parsed.year;
c2c_outputtext += "-"+c2c_this_parsed.month+"-"+c2c_this_parsed.day+"T"+c2c_this_parsed.hour+":";
c2c_outputtext += c2c_this_parsed.minute+":"+c2c_this_parsed.second+"\">"+c2c_this_parsed.hour+":";
c2c_outputtext += c2c_this_parsed.minute+"</abbr>";
}
c2c_outputtext += "<span class=\"nickname\">";
if (c2c_nick2user[c2c_this_parsed.nick]) {
c2c_outputtext += "[[Benutzer:"+c2c_nick2user[c2c_this_parsed.nick]+"|"+c2c_this_parsed.nick+"]]";
} else {
c2c_outputtext += c2c_this_parsed.nick;
}
c2c_outputtext += "</span>";
c2c_outputtext += "</dt>";
c2c_outputtext += "<dd ";
if (c2c_this_parsed.acttype == "say") { c2c_outputtext += " class=\"sayline\""; }
if (c2c_this_parsed.acttype == "act") { c2c_outputtext += " class=\"actline\" style=\"font-style:italic;\""; }
if (c2c_this_parsed.acttype == "mode") { c2c_outputtext += " class=\"modeline\" style=\"color:#a5a5a5;\""; }
if (c2c_this_parsed.acttype == "part") { c2c_outputtext += " class=\"partline\" style=\"color:#a00;\""; }
if (c2c_this_parsed.acttype == "join") { c2c_outputtext += " class=\"joinline\" style=\"color:#0A0;\""; }
if (c2c_this_parsed.acttype == "nick") { c2c_outputtext += " class=\"ncline\" style=\"text-weight:bold;\""; }
if (c2c_this_parsed.acttype == "quit") { c2c_outputtext += " class=\"quitline\" style=\"color:#a00\""; }
c2c_outputtext += ">";
if(document.getElementById("df_nowikicheck").checked) {
c2c_outputtext += "<nowiki>"+c2c_this_parsed.content+"</nowiki>";
} else {
c2c_outputtext += c2c_this_parsed.content;
}
c2c_outputtext += "</dd>\n";
} else if (c2c_outputformat == "WIKI1") {
c2c_outputtext += "|Person"+parseInt(i % 7 + 1)+"=";
if (c2c_nick2user[c2c_this_parsed.nick]) {
c2c_outputtext += "[[Benutzer:"+c2c_nick2user[c2c_this_parsed.nick]+"|"+c2c_this_parsed.nick+"]]";
} else {
c2c_outputtext += c2c_this_parsed.nick;
}
c2c_outputtext += "\n|Aussage"+parseInt(i % 7 + 1)+"=";
if(document.getElementById("df_nowikicheck").checked) {
c2c_outputtext += "<nowiki>"+c2c_this_parsed.content+"</nowiki>";
} else {
c2c_outputtext += c2c_this_parsed.content;
}
c2c_outputtext += "\n";
if (i % 7 == 6) {
c2c_outputtext += "|Zuschreibung=\n|Quelle=\n}}\n{{Dialog\n";
}
} else if (c2c_outputformat == "WIKI2") {
c2c_outputtext += "\n|-";
c2c_outputtext += "\n|";
if (c2c_this_parsed.minute != ".") {
c2c_outputtext += c2c_this_parsed.day+"."+c2c_this_parsed.month+"."+c2c_this_parsed.year
c2c_outputtext += " "+c2c_this_parsed.hour+":"+c2c_this_parsed.minute+":"+c2c_this_parsed.second;
}
c2c_outputtext += "||";
if (c2c_nick2user[c2c_this_parsed.nick]) {
c2c_outputtext += "[[Benutzer:"+c2c_nick2user[c2c_this_parsed.nick]+"|"+c2c_this_parsed.nick+"]]";
} else {
c2c_outputtext += c2c_this_parsed.nick;
}
c2c_outputtext += "||";
if (c2c_this_parsed.acttype == "act") { c2c_outputtext += "''"; }
if (c2c_this_parsed.acttype == "mode") { c2c_outputtext += "''"; }
if (c2c_this_parsed.acttype == "part") { c2c_outputtext += "''"; }
if (c2c_this_parsed.acttype == "join") { c2c_outputtext += "''"; }
if (c2c_this_parsed.acttype == "nick") { c2c_outputtext += "'''"; }
if (c2c_this_parsed.acttype == "quit") { c2c_outputtext += "''"; }
if(document.getElementById("df_nowikicheck").checked) {
c2c_outputtext += "<nowiki>"+c2c_this_parsed.content+"</nowiki>";
} else {
c2c_outputtext += c2c_this_parsed.content;
}
if (c2c_this_parsed.acttype == "act") { c2c_outputtext += "''"; }
if (c2c_this_parsed.acttype == "mode") { c2c_outputtext += "''"; }
if (c2c_this_parsed.acttype == "part") { c2c_outputtext += "''"; }
if (c2c_this_parsed.acttype == "join") { c2c_outputtext += "''"; }
if (c2c_this_parsed.acttype == "nick") { c2c_outputtext += "'''"; }
if (c2c_this_parsed.acttype == "quit") { c2c_outputtext += "''"; }
}
} else {
if (c2c_outputformat == "DEBUG") {
c2c_outputtext += "\n\nKonnte Zeile nicht einlesen:\n"+c2c_linearray[i]+"\n\n";
} else if (c2c_outputformat == "HTML1") {
c2c_outputtext += "\n<!--\nKonnte Zeile nicht einlesen:\n"+c2c_linearray[i]+"\n-->\n";
} else if (c2c_outputformat == "WIKI1") {
c2c_outputtext += "\n<!--\nKonnte Zeile nicht einlesen:\n"+c2c_linearray[i]+"\n-->\n";
} else if (c2c_outputformat == "WIKI2") {
c2c_outputtext += "\n<!--\nKonnte Zeile nicht einlesen:\n"+c2c_linearray[i]+"\n-->\n";
}
}
}
if (c2c_outputformat == "DEBUG") {
c2c_outputtext += "\n\nEOF\n\n";
} else if (c2c_outputformat == "HTML1") {
c2c_outputtext += "</dl>\n\n";
} else if (c2c_outputformat == "WIKI1") {
c2c_outputtext += "|Zuschreibung=\n|Quelle=\n}}\n\n";
} else if (c2c_outputformat == "WIKI2") {
c2c_outputtext += "\n}\n\n";
}
return c2c_outputtext;
}
function create_SelectElement (select_id,resize) {
//Creates a Select-Element.
//First parameter is the elements id, second...
//if an option contains more than resize characters
//it will set a smaller font-size. 0 means not resize.
//Third and following parameters are the option-values and the text.
//example: create_SelectElement("my_id",15,0,"zero",1,"one",2,"two");
var new_select = document.createElement("select");
new_select.id = select_id;
if (document.cookie) {
var my_RegExp_string = select_id+"_selsave\\=(\\w*)\\;"
var my_RegExp = new RegExp(my_RegExp_string,"");
if (document.cookie.match(my_RegExp)) {
var my_cookie = document.cookie.match(my_RegExp)[1];
} else {
var my_cookie = "kljhfsaökjh";
}
}
for (var i = 1; i < create_SelectElement.arguments.length/2; i++) {
var new_option = document.createElement("option");
new_option.value = create_SelectElement.arguments[i*2];
new_option.appendChild(document.createTextNode(create_SelectElement.arguments[i*2+1]));
if (my_cookie == create_SelectElement.arguments[i*2]) {
new_option.selected = "selected";
}
if (resize && create_SelectElement.arguments[i*2+1].length>resize) {
new_option.style.fontSize = parseInt(resize/create_SelectElement.arguments[i*2+1].length*100)+"%";
}
new_select.appendChild(new_option);
}
new_select.addEventListener("change",function(){var dfin30days = new Date(); dfin30days.setTime(dfin30days.getTime()+33*24*60*60*1000); document.cookie = select_id+"_selsave="+this.options[this.selectedIndex].value+"; expire="+dfin30days.toGMTString()+";";},false);
return new_select;
}
function createChatParser() {
//Creates and displays an input-form.
if (document.getElementById("df_chatpannel")) {
document.getElementById("df_chatpannel").parentNode.removeChild(document.getElementById("df_chatpannel"));
} else {
var cp_pannel = document.createElement("div");
cp_pannel.id = "df_chatpannel";
cp_pannel.style.position = "fixed";
cp_pannel.style.top = "50px";
cp_pannel.style.right = "50px";
cp_pannel.style.zIndex = "100";
cp_pannel.style.background = "rgba(180,220,255,0.5)";
cp_pannel.style.padding = "4px";
cp_pannel.style.paddingRight = "81px";
var cp_textarea = document.createElement("textarea");
cp_textarea.style.display = "inline";
cp_textarea.cols = 60;
cp_textarea.rows = 13;
cp_textarea.id = "cp_textarea";
var cp_setupbox = document.createElement("div");
cp_setupbox.style.display = "block";
cp_setupbox.style.position = "absolute";
cp_setupbox.style.background = "rgba(255,220,180,0.8)";
cp_setupbox.style.padding = "4px";
cp_setupbox.style.top = "4px";
cp_setupbox.style.right = "4px";
cp_setupbox.style.width = "150px";
var my_parser = getGlobalParser();
var my_parser_nn = new Array("df_logformatselect",12);
for (var j = 0; j < my_parser.length; j++) {
my_parser_nn[my_parser_nn.length] = j;
my_parser_nn[my_parser_nn.length] = my_parser[j].name;
}
my_parser_nn[my_parser_nn.length] = -1;
my_parser_nn[my_parser_nn.length] = "Sonstiges...";
var cp_logformat = create_SelectElement.apply(null,my_parser_nn);
cp_logformat.style.display = "block";
cp_logformat.style.margin = "4px";
cp_outformat = create_SelectElement("df_outputformatselect",12,"HTML1","HTML-dl","WIKI1","Vorlage:Dialog","WIKI2","Wiki-Tabelle","DEBUG","Debug-Modus: Ausgabe aller gefundenen Felder...");
cp_outformat.style.display = "block";
cp_outformat.style.margin = "4px";
var cp_date = document.createElement("input");
cp_date.setAttribute("type", "date");
cp_date.id = "df_chatdate";
cp_date.style.width = "140px";
cp_date.style.margin = "4px";
var today = new Date();
cp_date.value=today.getFullYear()+"-"+today.getMonth()+"-"+today.getDate();
if (cp_date.type == "text") {
//type=date not suported, load jq-datepicker..?
//'cause I have no idea about jQuery I will not
//maybe write an own datepicker..?
}
var cp_nicklinks1 = document.createElement("label");
cp_nicklinks1.style.display = "block";
cp_nicklinks1.for = "df_nicklinkscheck";
cp_nicklinks1.style.fontSize = "xx-small";
var cp_nicklinks2 = document.createElement("input");
cp_nicklinks2.type="checkbox";
cp_nicklinks2.id="df_nicklinkscheck";
cp_nicklinks1.appendChild(cp_nicklinks2);
cp_nicklinks1.appendChild(document.createTextNode("Nicknames mit Benutzerprofilen verknüpfen"));
var cp_nowiki1 = document.createElement("label");
cp_nowiki1.style.display = "block";
cp_nowiki1.for = "df_nowikicheck";
cp_nowiki1.style.fontSize = "xx-small";
var cp_nowiki2 = document.createElement("input");
cp_nowiki2.type="checkbox";
cp_nowiki2.id="df_nowikicheck";
cp_nowiki2.checked="checked";
cp_nowiki1.appendChild(cp_nowiki2);
cp_nowiki1.appendChild(document.createTextNode("Wiki-Syntax unterdrücken"));
var cp_convert = document.createElement("button");
cp_convert.style.margin = "4px";
cp_convert.style.display = "block";
cp_convert.style.listStyleType = "none";
cp_convert.appendChild(document.createTextNode("konvertieren"));
cp_convert.addEventListener("click",function() { document.getElementById("cp_textarea").value = chatlog2chatlog(document.getElementById("cp_textarea").value);},false);
var cp_close = document.createElement("button");
cp_close.style.margin = "4px";
cp_close.style.display = "block";
cp_close.style.listStyleType = "none";
cp_close.appendChild(document.createTextNode("schließen"));
cp_close.addEventListener("click",function() { document.getElementsByTagName("body")[0].removeChild(this.parentNode.parentNode);},false);
cp_pannel.appendChild(cp_textarea);
cp_pannel.appendChild(cp_setupbox);
cp_setupbox.appendChild(cp_logformat);
cp_setupbox.appendChild(cp_outformat);
cp_setupbox.appendChild(cp_date);
cp_setupbox.appendChild(cp_nicklinks1);
cp_setupbox.appendChild(cp_nowiki1);
cp_setupbox.appendChild(cp_convert);
cp_setupbox.appendChild(cp_close);
document.getElementsByTagName("body")[0].appendChild(cp_pannel);
}
}
function AddChatLogFunctionality() {
//This identifies the edit-page
if (document.getElementById("toolbar") && document.getElementById("stdPreloads") && document.getElementById("mw-editbutton-extlink")) {
var tooldiv = document.getElementById("toolbar"); // find the toolbar
var ChatButton = document.createElement("span"); // create a new button
ChatButton.id = "df-editbutton-chatlog"; // name it
ChatButton.className = "mw-toolbar-editbutton"; // class it ;)
ChatButton.style.margin = "0"; // style
ChatButton.style.padding = "0"; // |
ChatButton.style.bottom = "0"; // |
ChatButton.style.height = "22px"; // |
ChatButton.style.border = "none"; // |
ChatButton.style.width = "23px"; // |
ChatButton.style.display = "inline-block"; // |
ChatButton.style.overflow = "hidden"; // |
ChatButton.style.backgroundImage = "url(/w/skins/common/images/button_template.png)";
ChatButton.style.verticalAlign = "middle"; // V
ChatButton.style.fontSize = "10px"; // it
ChatButton.appendChild(document.createTextNode("Chat")); // Write a caption
ChatButton.title = "ChatProtokoll";
ChatButton.style.cursor = "pointer";
ChatButton.addEventListener("click",function(){ createChatParser(); },false); // give it a function
tooldiv.appendChild(ChatButton); // Display it
movePreloadSelect(1); // And move the Select-Thingy away
} else {
//there is not enough DOM ^^ wait a half second and try again...
window.setTimeout(AddChatLogFunctionality,500);
}
}
function df_doOnLoad () {
//all stuff that should happen on finishing page-load
if (document.getElementById("toolbar")) {
AddChatLogFunctionality();
}
}
df_debugmode = 0;
//addOnloadHook(df_doOnLoad);
$(document).ready(df_doOnLoad);
//df_doOnLoad();