MediaWiki:Gadget-CheckRCForm.js

Aus Watch-Wiki
Zur Navigation springen Zur Suche springen

Hinweis: Leere nach dem Speichern 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: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Gehe zu Menü → Einstellungen (Opera → Einstellungen auf dem Mac) und dann auf Datenschutz & Sicherheit → Browserdaten löschen → Gespeicherte Bilder und Dateien.
addOnloadHook( function () {
	if ( window.wgUserName ) {
		if ( wgUserName === 'WWWIG' || wgUserName === 'Torsten' || wgUserName === 'WikiWatcher' ) {
			LoadCheckRCForm();
		}
	}
});

var t_wikiurl = wgServer + wgScriptPath + '/api.php';
var t_Files = new Array();
var t_FilestoCheck = new Array();
var t_UserstoCheck = new Array();

var t_processnext = 0;
var t_restartintervall = 120*1000;

var t_dblmsg = true;

t_blackwordlist = new Array();
t_whitewordlist = new Array();

t_CheckBadWordfound = '';

function LoadCheckRCForm() {

	if ( document.getElementById( 'InsertCheckRCForm' ) ) {
		out =	'<form method="get" style="width:100%" name="TemCatGenForm">' +
			'<fieldset><legend>RecentChanges-Check</legend>' +
			'<div style="margin-top:.5em; margin-left:1em; margin-right:1em;">' +
			'<p><input type="button" value="Starte RC-Check" ' +
			'title="" onClick="GetBadWordLists()">&nbsp;' +
			'</p>' +
			'<label for="Status" style="vertical-align:top;">Status:</label>' +
			'<p id="Status" style="border: 1px solid #aaa; padding:.5em;" > ...</p>' +
			'<div id="PreviewForm"></div>' +
			'<div id="InsertRCForm"></div>' +
			'</div></fieldset></form>';

		document.getElementById( 'InsertCheckRCForm' ).innerHTML = out;
	}
}

function GetBadWordLists() {

	window.setTimeout( "GetBadWordLists()", t_restartintervall );

	t_FilesToCheckString = 'MediaWiki:Spam-BlackList|MediaWiki:Spam-WhiteList';

	var t_parameters = '?action=query&format=json&prop=revisions&rvprop=ids|content&titles=' + 
		encodeURIComponent( t_FilesToCheckString ) + '';
	var t_http_req = null;
	if (window.XMLHttpRequest) {t_http_req = new XMLHttpRequest();}
	else if (window.ActiveXObject) {t_http_req = new ActiveXObject("Microsoft.XMLHTTP");}
	t_http_req.open("POST", t_wikiurl + t_parameters, true);
	t_dblmsg = true;
	t_http_req.onreadystatechange = function() {
		if(t_http_req.readyState != 4) {
			if ( t_dblmsg ) {
				document.getElementById( 'Status' ).innerHTML = '<i>BadWord-Listen werden angefordert</i> ('+GetTimeStamp()+') ...';
				t_dblmsg = false;
			}
		}
		if(t_http_req.readyState == 4 && t_http_req.status == 200) {
			document.getElementById( 'Status' ).innerHTML += '<br>' + '<i>BadWord-Listen erhalten</i> ('+GetTimeStamp()+') ...';
			GotBadWordLists( eval("(" + t_http_req.responseText + ")"), t_http_req.responseText );
		}
	}
	t_http_req.send(null);
}

function GotBadWordLists( queryData, rawData ) {

	if ( queryData.query && queryData.query.pages ) {
		for ( var t_Page in queryData.query.pages ) {
			if ( queryData.query.pages[t_Page].pageid ) {
				if ( queryData.query.pages[t_Page].revisions ) {
					if ( queryData.query.pages[t_Page].title == 'MediaWiki:Spam-BlackList' ) {
						t_blackwordlist = String( queryData.query.pages[t_Page].revisions[0]['*'] ).split( '\n' );
						//document.getElementById( 'Status' ).innerHTML += '<br>' + 'BlackList-Inhalt ('+GetTimeStamp()+')<br>' + t_blackwordlist.join("/");
					}				
					if ( queryData.query.pages[t_Page].title == 'MediaWiki:Spam-WhiteList' ) {
						t_whitewordlist = String( queryData.query.pages[t_Page].revisions[0]['*'] ).split( '\n' );
						//document.getElementById( 'Status' ).innerHTML += '<br>' + 'WhiteList-Inhalt ('+GetTimeStamp()+')<br>' + t_whitewordlist.join("/");
					}				
				}
			}
		}
	}
	CheckRC();
}

function CheckRC() {

	var t_parameters = '?action=query&format=json&list=recentchanges&rclimit=100&rctype=new|edit&rcprop=user|comment|flags|timestamp|title|ids|sizes';
	var t_http_req = null;
	if (window.XMLHttpRequest) {t_http_req = new XMLHttpRequest();}
	else if (window.ActiveXObject) {t_http_req = new ActiveXObject("Microsoft.XMLHTTP");}
	t_http_req.open("GET", t_wikiurl + t_parameters, true);
	t_dblmsg = true;
	t_http_req.onreadystatechange = function() {
		if(t_http_req.readyState != 4) {
			if ( t_dblmsg ) {
				document.getElementById( 'Status' ).innerHTML += '<br>' + '<i>RC-Liste wird angefordert</i> ('+GetTimeStamp()+') ...';
				t_dblmsg = false;
			}
		}
		if(t_http_req.readyState == 4 && t_http_req.status == 200) {
			document.getElementById( 'Status' ).innerHTML += '<br>' + '<i>RC-Liste erhalten</i> ('+GetTimeStamp()+') ...';
			GotRC( eval("(" + t_http_req.responseText + ")"), t_http_req.responseText );
		}
	}
	t_http_req.send(null);
}

function GotRC( queryData, rawData ) {

	// document.getElementById( 'Status' ).innerHTML += '<br>' + rawData; //.substr(0, 500);

	t_Files.splice( 0, t_Files.length );
	t_FilestoCheck.splice( 0, t_FilestoCheck.length );
	t_UserstoCheck.splice( 0, t_UserstoCheck.length );
	t_processnext = 0;

	if ( queryData.query && queryData.query.recentchanges ) {
		for ( t_Change = 0; t_Change < queryData.query.recentchanges.length; t_Change++ ) {
			if ( queryData.query.recentchanges[t_Change].type == 'new' ) {
				if ( typeof queryData.query.recentchanges[t_Change].anon != 'undefined' ) {
					if ( CheckBadWord( queryData.query.recentchanges[t_Change].comment, '' ) ) {
						var t_File = new Array( queryData.query.recentchanges[t_Change].title,
							queryData.query.recentchanges[t_Change].revid,
							queryData.query.recentchanges[t_Change].user,
							queryData.query.recentchanges[t_Change].comment, t_CheckBadWordfound );
						t_Files.push( t_File );
					} else {
						document.getElementById( 'Status' ).innerHTML += '<br>[' + queryData.query.recentchanges[t_Change].title+']';
	
						var t_File = new Array( queryData.query.recentchanges[t_Change].title,
							queryData.query.recentchanges[t_Change].revid,
							queryData.query.recentchanges[t_Change].user,
							queryData.query.recentchanges[t_Change].comment );
						t_FilestoCheck.push( t_File );
					}
					
				} else {
					var t_File = new Array( queryData.query.recentchanges[t_Change].title,
						queryData.query.recentchanges[t_Change].revid,
						queryData.query.recentchanges[t_Change].user,
						queryData.query.recentchanges[t_Change].comment );
					t_UserstoCheck.push( t_File );
					// document.getElementById( 'Status' ).innerHTML += '<br>* Check [' +queryData.query.recentchanges[t_Change].title +']';
				}
			} else {
				document.getElementById( 'Status' ).innerHTML += '<br>CheckEdit[' + queryData.query.recentchanges[t_Change].title+']';
			}
		}
	}

	if ( t_Files.length == 0 && t_FilestoCheck.length == 0 && t_UserstoCheck.length == 0 ) {
		document.getElementById( 'Status' ).innerHTML += '<br>' + 'Prüfung durchgeführt ('+GetTimeStamp()+')<hr style="margin-top:1em;">';
	} else {
		if ( t_FilestoCheck.length == 0 ) {
			if ( t_UserstoCheck.length == 0 ) {
				document.getElementById( 'InsertRCForm' ).innerHTML = 
					'<hr style="margin-top:1em;">('+GetTimeStamp()+')<ul>';
				CheckTitles();
			} else {
				PreCheckUsers();
			}
		} else {
			if ( t_UserstoCheck.length == 0 ) {
				PreCheckTitles();
			} else {
				PreCheckUsers();
			}
		}
	}
}

function PreCheckTitles() {

	t_FilesToCheckString = '';
	for ( t_FiletoCheck = 0; t_FiletoCheck < t_FilestoCheck.length; t_FiletoCheck++ ) {
		if ( t_FilesToCheckString != '' ) {
			t_FilesToCheckString += '|';
		}
		t_FilesToCheckString += t_FilestoCheck[t_FiletoCheck][0];
	}

	var t_parameters = '?action=query&format=json&prop=revisions&rvprop=ids|timestamp|user|comment|content&titles=' + 
		encodeURIComponent( t_FilesToCheckString ) + '';
	var t_http_req = null;
	if (window.XMLHttpRequest) {t_http_req = new XMLHttpRequest();}
	else if (window.ActiveXObject) {t_http_req = new ActiveXObject("Microsoft.XMLHTTP");}
	t_http_req.open("GET", t_wikiurl + t_parameters, true);
	t_dblmsg = true;
	t_http_req.onreadystatechange = function() {
		if(t_http_req.readyState != 4) {
			if ( t_dblmsg ) {
				document.getElementById( 'Status' ).innerHTML += '<br>' + '<i>Datei-Inhalt</i> wird angefordert ('+GetTimeStamp()+') ...';
				t_dblmsg = false;
			}
		}
		if(t_http_req.readyState == 4 && t_http_req.status == 200) {
			document.getElementById( 'Status' ).innerHTML += '<br>' + '<i>Datei-Inhalt erhalten</i> ('+GetTimeStamp()+') ...';
			PreCheckTitlesProcess( eval("(" + t_http_req.responseText + ")"), t_http_req.responseText );
		}
	}
	t_http_req.send(null);
}

function PreCheckTitlesProcess( queryData, rawData ) {

	document.getElementById( 'Status' ).innerHTML += '<br>' + rawData.substr(0, 200);

	if ( queryData.query && queryData.query.pages ) {
		for ( var t_Page in queryData.query.pages ) {
			if ( queryData.query.pages[t_Page].pageid ) {
				if ( queryData.query.normalized ) {
					for ( t_PageNorm= 0; t_PageNorm < queryData.query.normalized.length; t_PageNorm++ ) {
						if ( queryData.query.normalized[t_PageNorm].to == queryData.query.pages[t_Page].title ) {
							if ( queryData.query.pages[t_Page].revisions ) {
								if ( CheckBadWord( queryData.query.pages[t_Page].revisions[0]['*'], 'http:' ) ) {
									var t_File = new Array( queryData.query.pages[t_Page].title,
										queryData.query.pages[t_Page].revisions[0].revid,
										queryData.query.pages[t_Page].revisions[0].user,
										queryData.query.pages[t_Page].revisions[0]['*'], t_CheckBadWordfound );
									t_Files.push( t_File );
								}				
							}
						}
					}
				} else
				if ( queryData.query.pages[t_Page].revisions ) {
					document.getElementById( 'Status' ).innerHTML += '<br>' + '<b>Prüfe Datei-Inhalt</b> ('+GetTimeStamp()+')<br>' + String( queryData.query.pages[t_Page].revisions[0]['*'] ).substr(0, 500);
					if ( CheckBadWord( queryData.query.pages[t_Page].revisions[0]['*'], 'http:' ) ) {
						var t_File = new Array( queryData.query.pages[t_Page].title,
							queryData.query.pages[t_Page].revisions[0].revid,
							queryData.query.pages[t_Page].revisions[0].user,
							queryData.query.pages[t_Page].revisions[0]['*'], t_CheckBadWordfound );
						t_Files.push( t_File );
					}				
				}
			}
		}
	}

	if ( t_Files.length == 0 ) {
		document.getElementById( 'Status' ).innerHTML += '<br>' + 'Prüfung durchgeführt ('+GetTimeStamp()+')<hr style="margin-top:1em;">';
	} else {
                document.getElementById( 'InsertRCForm' ).innerHTML = 
                    '<hr style="margin-top:1em;">('+GetTimeStamp()+')<ul>';
		CheckTitles();
	}
}

function PreCheckUsers() {

	t_UsersToCheckString = '';
	for ( t_UsertoCheck = 0; t_UsertoCheck < t_UserstoCheck.length; t_UsertoCheck++ ) {
		if ( String( '|' + t_UsersToCheckString + '|' ).indexOf( '|' + t_UserstoCheck[t_UsertoCheck][2] + '|' ) == -1 ) {
			if ( t_UsersToCheckString != '' ) {
				t_UsersToCheckString += '|';
			}
			t_UsersToCheckString += t_UserstoCheck[t_UsertoCheck][2];
		}
	}

	document.getElementById( 'Status' ).innerHTML += '<br><b>PreCheckUsers:</b> ' + t_UsersToCheckString;

	var t_parameters = '?action=query&format=json&list=users&usprop=groups|editcount|registration&ususers=' + 
		encodeURIComponent( t_UsersToCheckString ) + '';
	var t_http_req = null;
	if (window.XMLHttpRequest) {t_http_req = new XMLHttpRequest();}
	else if (window.ActiveXObject) {t_http_req = new ActiveXObject("Microsoft.XMLHTTP");}
	t_http_req.open("GET", t_wikiurl + t_parameters, true);
	t_dblmsg = true;
	t_http_req.onreadystatechange = function() {
		if(t_http_req.readyState != 4) {
			if ( t_dblmsg ) {
				document.getElementById( 'Status' ).innerHTML += '<br>' + '<i>User-Info wird angefordert</i> ('+GetTimeStamp()+') ...';
				t_dblmsg = false;
			}
		}
		if(t_http_req.readyState == 4 && t_http_req.status == 200) {
			document.getElementById( 'Status' ).innerHTML += '<br>' + '<i>User-Info erhalten</i> ('+GetTimeStamp()+') ...';
			PreCheckUsersProcess( eval("(" + t_http_req.responseText + ")"), t_http_req.responseText );
		}
	}
	t_http_req.send(null);
}

function PreCheckUsersProcess( queryData, rawData ) {

	document.getElementById( 'Status' ).innerHTML += '<br>' + rawData;

	if ( queryData.query && queryData.query.users ) {
		for ( var t_User in queryData.query.users ) {
			for ( t_UsertoCheck = 0; t_UsertoCheck < t_UserstoCheck.length; t_UsertoCheck++ ) {
				if ( t_UserstoCheck[t_UsertoCheck][2] == queryData.query.users[t_User].name &&
					 queryData.query.users[t_User].editcount < 10 ) {
						if ( CheckBadWord( t_UserstoCheck[t_UsertoCheck][3], '' ) ) {
							var t_File = new Array( t_UserstoCheck[t_UsertoCheck][0],
								t_UserstoCheck[t_UsertoCheck][1],
								t_UserstoCheck[t_UsertoCheck][2],
								t_UserstoCheck[t_UsertoCheck][3], t_CheckBadWordfound );
							t_Files.push( t_File );
						} else {
							document.getElementById( 'Status' ).innerHTML += '<br><b>USER:</b> ' + queryData.query.users[t_User].name +
											' [' + t_UserstoCheck[t_UsertoCheck][0] + ']';
	
							var t_File = new Array( t_UserstoCheck[t_UsertoCheck][0],
								t_UserstoCheck[t_UsertoCheck][1],
								t_UserstoCheck[t_UsertoCheck][2],
								t_UserstoCheck[t_UsertoCheck][3] );
							t_FilestoCheck.push( t_File );
						}
				}
			}
		}
	}

	if ( t_Files.length == 0 && t_FilestoCheck.length == 0 ) {
		document.getElementById( 'Status' ).innerHTML +=
			'<br>' + 'Prüfung durchgeführt ('+GetTimeStamp()+')<hr style="margin-top:1em;">';
	} else {
		if ( t_FilestoCheck.length == 0 ) {
			document.getElementById( 'InsertRCForm' ).innerHTML = 
				'<hr style="margin-top:1em;">('+GetTimeStamp()+')<ul>';
			CheckTitles();
		} else {
			PreCheckTitles();
		}
	}
}

function CheckTitles() {

	if ( t_processnext < t_Files.length ) {
		document.getElementById( 'InsertRCForm' ).innerHTML +=
			'<li>' + t_Files[t_processnext][0]+'<br>'+t_Files[t_processnext][1]+
			'<br>'+t_Files[t_processnext][2]+'<br>'+TransFormText( t_Files[t_processnext][3] )+
			'<br>'+t_Files[t_processnext][4]+'</li>';

		var t_parameters = '?action=query&format=json&prop=info|revisions&intoken=delete&titles=' + 
				encodeURIComponent( t_Files[t_processnext][0] ) + '';
		var t_http_req = null;
		if (window.XMLHttpRequest) {t_http_req = new XMLHttpRequest();}
		else if (window.ActiveXObject) {t_http_req = new ActiveXObject("Microsoft.XMLHTTP");}
		t_http_req.open("GET", t_wikiurl + t_parameters, true);
		t_dblmsg = true;
		t_http_req.onreadystatechange = function() {
			if(t_http_req.readyState != 4) {
				if ( t_dblmsg ) {
					document.getElementById( 'Status' ).innerHTML +=
						'<br>' + '<i>Datei-Token wird angefordert</i> ('+GetTimeStamp()+') ...';
					t_dblmsg = false;
				}
			}
			if(t_http_req.readyState == 4 && t_http_req.status == 200) {
				DeleteTitles( eval("(" + t_http_req.responseText + ")"), t_http_req.responseText );
			}
		}
		t_http_req.send(null);
	}
}

function DeleteTitles ( queryData, rawData ) {

	if ( queryData ) {
		if ( queryData.query && queryData.query.pages ) {
			var t_token = "";
			var t_timestamp = "";
			var t_some_pages = queryData.query.pages;
			for ( var t_Page in t_some_pages ) {
				if ( t_some_pages[t_Page].edittoken ) {
					t_token = encodeURIComponent( t_some_pages[t_Page].edittoken );
				} else
				if ( t_some_pages[t_Page].deletetoken ) {
					t_token = encodeURIComponent( t_some_pages[t_Page].deletetoken );
				}
				if ( t_some_pages[t_Page].revisions ) {
					var t_some_revisions = t_some_pages[t_Page].revisions;
					for ( var i = 0; i < t_some_revisions.length; i++ )	{
						if (t_some_revisions[i].timestamp) {
							t_timestamp = t_some_revisions[i].timestamp;
						}
					}
				}
				document.getElementById( 'Status' ).innerHTML += '<br>' + t_some_pages[t_Page].starttimestamp;
			}

			t_summary = '&reason=' + encodeURIComponent( 'automatisch gelöscht' );

			var t_parameters = '?action=delete&format=json&title=' + encodeURIComponent( t_some_pages[t_Page].title ) +
					   t_summary + '&watch&basetimestamp=' + t_timestamp +
					   '&token=' + t_token + '&bot=1';

			var t_http_req = null;
			if (window.XMLHttpRequest) {t_http_req = new XMLHttpRequest();}
			else if (window.ActiveXObject) {t_http_req = new ActiveXObject("Microsoft.XMLHTTP");}
			t_http_req.open("POST", t_wikiurl + t_parameters, true);
			t_dblmsg = true;
			t_http_req.onreadystatechange = function() {
				if( t_http_req.readyState != 4 ) {
					if ( t_dblmsg ) {
						document.getElementById( 'Status' ).innerHTML +=
							'<br>' + '<small>'+t_some_pages[t_Page].title+'</small><br><i>wird gelöscht</i> ('+GetTimeStamp()+') ...';
						t_dblmsg = false;
					}
				}
				if( t_http_req.readyState == 4 && t_http_req.status == 200 ) {
					DeleteTitlesProcessed( eval("(" + t_http_req.responseText + ")" ), t_http_req.responseText );
				}
			}
			t_http_req.send(null);
		}
	}
}

function CheckUsers() {

	if ( t_processnext < t_Files.length ) {
		var t_parameters = '?action=block&format=json&user=' + 
				encodeURIComponent( t_Files[t_processnext][2] ) + '&gettoken';
		var t_http_req = null;
		if (window.XMLHttpRequest) {t_http_req = new XMLHttpRequest();}
		else if (window.ActiveXObject) {t_http_req = new ActiveXObject("Microsoft.XMLHTTP");}
		t_http_req.open("POST", t_wikiurl + t_parameters, true);
		t_dblmsg = true;
		t_http_req.onreadystatechange = function() {
			if(t_http_req.readyState != 4) {
				if ( t_dblmsg ) {
					document.getElementById( 'Status' ).innerHTML += '<br>' + '<i>Benutzer-Token wird angefordert</i> ('+GetTimeStamp()+') ...';
					t_dblmsg = false;
				}
			}
			if(t_http_req.readyState == 4 && t_http_req.status == 200) {
				BlockUsers( eval("(" + t_http_req.responseText + ")"), t_http_req.responseText );
			}
		}
		t_http_req.send(null);
	}
}

function BlockUsers ( queryData, rawData  ) {

	document.getElementById( 'Status' ).innerHTML += '<br>' + rawData;

	if ( queryData ) {
		if ( queryData.block && queryData.block.blocktoken ) {
			var t_token = queryData.block.blocktoken;

			var t_parameters = '?action=block&format=json&nocreate&anononly&expiry=' +
					encodeURIComponent('24 hours') + '&user=' + 
					encodeURIComponent( t_Files[t_processnext][2] ) + '&reason=' + 
					encodeURIComponent( 'spam (automatisch gesperrt)' )  + '&token=' + 
					encodeURIComponent( t_token );
			var t_http_req = null;
			if (window.XMLHttpRequest) {t_http_req = new XMLHttpRequest();}
			else if (window.ActiveXObject) {t_http_req = new ActiveXObject("Microsoft.XMLHTTP");}
			t_http_req.open("POST", t_wikiurl + t_parameters, true);
			t_dblmsg = true;
			t_http_req.onreadystatechange = function() {
				if(t_http_req.readyState != 4) {
					if ( t_dblmsg ) {
						document.getElementById( 'Status' ).innerHTML += '<br>' + '<i>Benutzer wird gesperrt</i> ('+GetTimeStamp()+') ...';
						t_dblmsg = false;
					}
				}
				if(t_http_req.readyState == 4 && t_http_req.status == 200) {
					DeleteTitlesProcessed( eval("(" + t_http_req.responseText + ")"), t_http_req.responseText );
				}
			}
			t_http_req.send(null);
		}
	}
}

function DeleteTitlesProcessed( queryData, rawData ) {

	if ( queryData['delete'] ) {
		if ( queryData['delete'].title && queryData['delete'].reason ) {
			document.getElementById( 'Status' ).innerHTML += '<br>' + queryData['delete'].title + '<br>' + queryData['delete'].reason;
			t_processnext++;
			if ( t_processnext < t_Files.length ) {
				CheckTitles();
			} else {
				t_processnext = 0;
				CheckUsers();
			}
		}
	}  else
	if ( queryData['block'] && queryData['block'].user ) {
		document.getElementById( 'Status' ).innerHTML += '<br>' + queryData['block'].user + ' wurde gesperrt ('+GetTimeStamp()+') ';
		t_processnext++;
		if ( t_processnext < t_Files.length ) {
			CheckUsers();
		}
	} else {
		document.getElementById( 'Status' ).innerHTML += '<br>Unbekannter Fehler ' + rawData +  '<br>('+GetTimeStamp()+')';
	}
	if ( t_processnext >= t_Files.length ) {
		document.getElementById( 'InsertRCForm' ).innerHTML += '</ul>';
		document.getElementById( 'Status' ).innerHTML += '<br>' + 'Prüfung durchgeführt ('+GetTimeStamp()+')<hr style="margin-top:1em;">';
	}
}

function CheckBadWord( t_text, t_extra ) {

	t_CheckBadWordfound = '';
	t_isblack_count = 0;

	var t_BadWord = '';

	if ( t_text ) {
		for ( t_bWord = 1; t_bWord < t_blackwordlist.length; t_bWord++ ) {

			t_BadWord = String( t_blackwordlist[t_bWord] );
			t_erg_bw = String( t_text.toUpperCase() ).indexOf( t_BadWord.replace(/\+/g, '').toUpperCase() );

			if ( t_erg_bw != -1 ) {
				document.getElementById( 'Status' ).innerHTML += 
        				 '<br>'+'<b>BadWord:</b> ('+t_BadWord+'/Pos: '+t_erg_bw+') in<br>['+TransFormText(String( t_text ).substr(0, 500))+']';

				t_isblack = true;
				for ( t_wWord = 1; t_wWord < t_whitewordlist.length; t_wWord++ ) {
					t_erg_ww = String( t_text.toUpperCase() ).indexOf( String( t_whitewordlist[t_wWord] ).toUpperCase() );
					if ( t_erg_ww == t_erg_bw ) {
						document.getElementById( 'Status' ).innerHTML += '<br>'+'WhiteWord ('+t_whitewordlist[t_wWord]+')';
						t_isblack = false;
					}
				}

				t_erg_ex = 0;
				if ( t_extra != '' ) {
					t_erg_ex = String( t_text.toUpperCase() ).indexOf( String( t_extra ).toUpperCase() );
				}
				if ( t_isblack  == true && t_erg_ex != -1 ) {
					t_isblack_count++;
					t_CheckBadWordfound += '[' + t_BadWord + '] ';
					if ( t_isblack_count >= 2 || t_BadWord.substr( t_BadWord.length - 2 ) == '++' ) {
						return true;
					}
				}
			}
		}
		return false;
	}
}