All pastes #1893478 Raw Edit

dollchan script diff

public javascript v1 · immutable
#1893478 ·published 2010-07-02 16:48 UTC
rendered paste body
*** Dollchan_Extension_Tools_(2010-06-10).user.js	2010-07-02 20:32:32.404562026 +0400--- Dollchan_Extension_Tools_(2010-06-21).user.js	2010-06-29 10:29:10.897690330 +0400****************** 3,9 ****  // copyright (C) 2084, Bender Bending Rodrguez  // ==UserScript==  // @name		Dollchan Extension Tools! // @version		2010-06-10  // @description	Doing some extended profit for russian AIB  // @namespace	http://freedollchan.org/scripts  // @include		*0chan.ru*--- 3,9 ----  // copyright (C) 2084, Bender Bending Rodrguez  // ==UserScript==  // @name		Dollchan Extension Tools! // @version		2010-06-21  // @description	Doing some extended profit for russian AIB  // @namespace	http://freedollchan.org/scripts  // @include		*0chan.ru******************* 18,24 ****    (function() {  var defaultCfg = [! 	1,		// 0	anti-wipe detectors  	0,		// 1	hide posts with sage  	0,		// 2	hide posts with theme  	0,		// 3	hide posts without text--- 18,24 ----    (function() {  var defaultCfg = [! 	1,		// 0	antiwipe detectors  	0,		// 1	hide posts with sage  	0,		// 2	hide posts with theme  	0,		// 3	hide posts without text****************** 41,47 ****  	2,		// 20	2-ch captchas (0,1,2)  	1,		// 21	hide board rules  	1,		// 22	hide 'goto' field! 	1,		// 23	expand imgs by click  	1,		// 24	expand shorted posts  	1,		// 25	hide scrollers in posts  	1,		// 26	>>links preview--- 41,47 ----  	2,		// 20	2-ch captchas (0,1,2)  	1,		// 21	hide board rules  	1,		// 22	hide 'goto' field! 	2,		// 23	expand images (0=no, 1=simple, 2=+preview)  	1,		// 24	expand shorted posts  	1,		// 25	hide scrollers in posts  	1,		// 26	>>links preview****************** 59,65 ****  	1,		// 38	reply without reload (verify on submit)  	1,		// 39	open spoilers  	1,		// 40	hide password field! 	1		// 41	email field -> sage btn  ],    Cfg = [],--- 59,73 ----  	1,		// 38	reply without reload (verify on submit)  	1,		// 39	open spoilers  	1,		// 40	hide password field! 	1,		// 41	email field -> sage btn! 			// antiwipe:! 	1,		// 42	Same lines! 	1,		// 43	Same words! 	1,		// 44	Specsymbols! 	1,		// 45	Long columns! 	1,		// 46	Long words! 	1,		// 47	Numbers! 	1		// 48	CaSe/CAPS  ],    Cfg = [],****************** 386,392 ****  	for(var i = 0; i < arr.length/4; i++)  		if(arr[i*4] == key[0] && arr[i*4 + 1].split('/')[0] == key[1] && arr[i*4 + 2] == key[2])  			arr.splice(i*4, 4);! 	$del($up(node));  	if(arr.length == 0) $id('favorities_div').firstChild.innerHTML = '<b>  ...</b>';  	setStored('DESU_Favorities', arr.join('|'));  }--- 394,400 ----  	for(var i = 0; i < arr.length/4; i++)  		if(arr[i*4] == key[0] && arr[i*4 + 1].split('/')[0] == key[1] && arr[i*4 + 2] == key[2])  			arr.splice(i*4, 4);! 	$del($up(node, 2));  	if(arr.length == 0) $id('favorities_div').firstChild.innerHTML = '<b>  ...</b>';  	setStored('DESU_Favorities', arr.join('|'));  }****************** 407,416 ****  	trBox = function(num, txt, fn, id) {  		return $New('tr', [chkBox(num, fn, id), $txt(' ' + txt)]);  	},! 	optSel = function(id, arr, fn) {  		for(var i = 0; i < arr.length; i++)  			arr[i] = '<option value="' + i + '">' + arr[i] + '</option>';! 		return $new('select', {'id': id, 'html': arr.join('')}, {'change': fn});  	};  	  	var postarea = $x('.//div[@class="postarea" or @align="center"]') || delform;--- 415,426 ----  	trBox = function(num, txt, fn, id) {  		return $New('tr', [chkBox(num, fn, id), $txt(' ' + txt)]);  	},! 	optSel = function(id, arr, num, fn) {  		for(var i = 0; i < arr.length; i++)  			arr[i] = '<option value="' + i + '">' + arr[i] + '</option>';! 		var x = $new('select', {'id': id, 'html': arr.join('')}, {'change': fn});! 		x.selectedIndex = Cfg[num];! 		return x;  	};  	  	var postarea = $x('.//div[@class="postarea" or @align="center"]') || delform;****************** 438,444 ****  	  	$append($x('.//tbody', tools), [  		$new('tr', {'text': 'Dollchan Extension Tools', 'style': 'width:100%; text-align:center; font-weight:bold; font-family:sans-serif'}),! 		trBox(0, '- '),  		$if(!(ch.iich || ch.sib), trBox(1, ' sage ', toggleSage, 'sage_hider')),  		$if(!ch.sib, trBox(2, '    ""', toggleTitle)),  		trBox(3, '   ', toggleNotext, 'notext_hider'),--- 448,473 ----  	  	$append($x('.//tbody', tools), [  		$new('tr', {'text': 'Dollchan Extension Tools', 'style': 'width:100%; text-align:center; font-weight:bold; font-family:sans-serif'}),! 		$New('tr', [! 			chkBox(0),! 			$txt('-  '),! 			$new('span', {! 				'html': '[<a>&gt;&gt;</a>]',! 				'style': 'cursor:pointer'}, {! 				'click': function() {toggleDisp($id('antiwipecfg'))}})! 		]),! 		$New('div', [! 			trBox(42, 'Same lines'),! 			trBox(43, 'Same words'),! 			trBox(44, 'Specsymbols'),! 			trBox(45, 'Long columns'),! 			trBox(46, 'Long words'),! 			trBox(47, 'Numbers'),! 			trBox(48, 'CaSe/CAPS')! 			], {! 			'id': 'antiwipecfg',! 			'style': 'display:none; padding-left:15px'! 		}),  		$if(!(ch.iich || ch.sib), trBox(1, ' sage ', toggleSage, 'sage_hider')),  		$if(!ch.sib, trBox(2, '    ""', toggleTitle)),  		trBox(3, '   ', toggleNotext, 'notext_hider'),****************** 474,480 ****  				'cols': nav.Opera ? 47 : 41})  		]),  		$New('tr', [! 			optSel('prochidden_sel', [' ', '', ''],  				function() {processHidden(this.selectedIndex, Cfg[12])}),  			$txt('  ')  		]),--- 503,509 ----  				'cols': nav.Opera ? 47 : 41})  		]),  		$New('tr', [! 			optSel('prochidden_sel', [' ', '', ''], 12,  				function() {processHidden(this.selectedIndex, Cfg[12])}),  			$txt('  ')  		]),****************** 483,489 ****  		trBox(13, '   '),  		$new('hr'),  		$New('tr', [! 			optSel('upload_sel', ['', ' ', ''],  				function() {saveCfg(37, this.selectedIndex)}),  			$txt('     *')  		]),--- 512,518 ----  		trBox(13, '   '),  		$new('hr'),  		$New('tr', [! 			optSel('upload_sel', ['', ' ', ''], 37,  				function() {saveCfg(37, this.selectedIndex)}),  			$txt('     *')  		]),****************** 499,505 ****  			toggleCfg(7);  			$each($X('.//span[@id="txt_btns"]'), function(div) {toggleDisp(div)});  		}),! 		$if(wk, trBox(23, '   *')),  		$if(wk, trBox(24, '  *')),  		$if(ch._2ch, trBox(25, '   ', function() {toggleCfg(25); scriptStyles()})),  		trBox(6, '   ', function() {toggleCfg(6); scriptStyles()}),--- 528,538 ----  			toggleCfg(7);  			$each($X('.//span[@id="txt_btns"]'), function(div) {toggleDisp(div)});  		}),! 		$if(wk, $New('tr', [! 			optSel('imgexpand_sel', ['', '', ' '], 23,! 				function() {saveCfg(23, this.selectedIndex)}),! 			$txt('  ')! 		])),  		$if(wk, trBox(24, '  *')),  		$if(ch._2ch, trBox(25, '   ', function() {toggleCfg(25); scriptStyles()})),  		trBox(6, '   ', function() {toggleCfg(6); scriptStyles()}),****************** 537,549 ****  		]),  		$if(ch._2ch, $New('tr', [  			$txt('   * '),! 			optSel('capnum_sel', [0, 1, 2], function() {saveCfg(20, this.selectedIndex)})  		])),  		$new('hr'),  		$New('tr', [  			$new('span', {  				'id': 'process_time',! 				'title': 'v.2010-06-10, storage: ' + (sav.GM ? 'greasemonkey' : (sav.local ? 'localstorage' : 'cookies')),  				'style': 'font-style:italic; cursor:pointer'}, {  				'click': function() {alert(timeLog)}}),  			$new('input', {--- 570,582 ----  		]),  		$if(ch._2ch, $New('tr', [  			$txt('   * '),! 			optSel('capnum_sel', [0, 1, 2], 20, function() {saveCfg(20, this.selectedIndex)})  		])),  		$new('hr'),  		$New('tr', [  			$new('span', {  				'id': 'process_time',! 				'title': 'v.2010-06-21, storage: ' + (sav.GM ? 'greasemonkey' : (sav.local ? 'localstorage' : 'cookies')),  				'style': 'font-style:italic; cursor:pointer'}, {  				'click': function() {alert(timeLog)}}),  			$new('input', {****************** 553,561 ****  				'click': function() {setDefaultCfg(); window.location.reload()}})  		])  	]);- 	$id('upload_sel').selectedIndex = Cfg[37];- 	$id('prochidden_sel').selectedIndex = Cfg[12];- 	if(ch._2ch) $id('capnum_sel').selectedIndex = Cfg[20];  }    function hiddenPostsPreview() {--- 586,591 ----****************** 563,569 ****  	$id('controls_div').style.display = 'none';  	var div = $id('hiddenposts_div');  	if(div.hasChildNodes()) {delChilds(div); return}! 	div.innerHTML = '<table style="margin:5px 0px 5px 20px"><tbody></tbody></table>'  	var table = $x('.//tbody', div);  	var clones = [], tcnt = 0, pcnt = 0;  	forAll(function(post) {if(post.Vis == HIDE) {--- 593,599 ----  	$id('controls_div').style.display = 'none';  	var div = $id('hiddenposts_div');  	if(div.hasChildNodes()) {delChilds(div); return}! 	div.innerHTML = '<table style="margin:5px 0px 5px 20px"><tbody></tbody></table>';  	var table = $x('.//tbody', div);  	var clones = [], tcnt = 0, pcnt = 0;  	forAll(function(post) {if(post.Vis == HIDE) {****************** 593,607 ****  			}}(clone)  		});  		$append(table, [! 			$if(!pp && tcnt == 0, $new('tr', {'html': '<b> :<b>'})),! 			$if(pp && pcnt == 0, $new('tr', {'html': '<b> :<b>'})),  			$New('tr', [clone, $if(!pp, $attr(post.cloneNode(true), {'class': 'reply', 'style': 'display:none'}))])  		]);  		if(!pp) {modPostDisp($next(clone), UNHIDE); tcnt++}  		else pcnt++;! 		refPrewiev(clone);  	}});! 	if(!table.hasChildNodes()) {table.innerHTML = '<b> ...</b>'; return}  	$append(table.insertRow(-1), [  		$new('input', {  			'type': 'button',--- 623,637 ----  			}}(clone)  		});  		$append(table, [! 			$if(!pp && tcnt == 0, $new('tr', {'html': '<th align="left"><b> :</b></th>'})),! 			$if(pp && pcnt == 0, $new('tr', {'html': '<th align="left"><b> :</b></th>'})),  			$New('tr', [clone, $if(!pp, $attr(post.cloneNode(true), {'class': 'reply', 'style': 'display:none'}))])  		]);  		if(!pp) {modPostDisp($next(clone), UNHIDE); tcnt++}  		else pcnt++;! 		refPreview(clone);  	}});! 	if(!table.hasChildNodes()) {table.innerHTML = '<tr><th> ...</th></tr>'; return}  	$append(table.insertRow(-1), [  		$new('input', {  			'type': 'button',****************** 634,657 ****  	$id('controls_div').style.display = 'none';  	var div = $id('favorities_div');  	if(div.hasChildNodes()) {delChilds(div); return}  	var data = getStored('DESU_Favorities');! 	var table = $new('table', {'style': 'margin:5px 0px 5px 20px'});! 	div.appendChild(table);! 	if(!data) {table.innerHTML = '<b>  ...</b>'; return}! 	else table.insertRow(-1).appendChild($new('b', {'text': ' :'}));! 	table = table.firstChild;  	var arr = data.split('|');  	for(var i = 0; i < arr.length/4; i++) {! 		var url = arr[i*4] + '/' + arr[i*4 + 1] + '/res/' + arr[i*4 + 2];  		var title = arr[i*4 + 3];  		if((!sav.cookie && title.length >= 70) || (sav.cookie && title.length >= 25)) title += '..';! 		$append(table, [$new('tr', {! 			'class': 'reply',! 			'id': 'favnote_' + i,! 			'style': 'cursor:default',! 			'html': '&nbsp;<span class="hide_icn" style="vertical-align:middle"></span> <a href="http://' + url + (arr[i*4] != 'dobrochan.ru' ? '.html">' : '.xhtml">') + url + '</a> - ' + title})]);! 		$event($x('.//tr[@id="favnote_' + i + '"]/span'), {'click': function() {removeFavorities($next(this))}});  	}  }    /*-----------------------------Dropdown select menus-------------------------*/--- 664,714 ----  	$id('controls_div').style.display = 'none';  	var div = $id('favorities_div');  	if(div.hasChildNodes()) {delChilds(div); return}+ 	div.innerHTML = '<table style="margin:5px 0px 5px 20px"><tbody></tbody></table>';+ 	var table = $x('.//tbody', div);  	var data = getStored('DESU_Favorities');! 	if(!data) {table.innerHTML = '<tr><th>  ...</th></tr>'; return}! 	else $append(table, [$new('tr', {'html': '<th align="left"><b> :</b></th>'})]);  	var arr = data.split('|');  	for(var i = 0; i < arr.length/4; i++) {! 		var dm = arr[i*4];! 		var b = arr[i*4 + 1];! 		var tNum = arr[i*4 + 2];  		var title = arr[i*4 + 3];+ 		var url = dm + '/' + b + '/res/' + tNum;  		if((!sav.cookie && title.length >= 70) || (sav.cookie && title.length >= 25)) title += '..';! 		$append(table, [$New('tr', [! 			$New('div', [! 				$new('span', {! 					'class': 'hide_icn'}, {! 					'click': function() {removeFavorities($next($next(this)))}}),! 				$new('span', {! 					'class': 'expthr_icn'}, {! 					'click': function(b, tNum) {return function() {! 						var tr = $up(this, 2);! 						var thread = $x('.//div[@class="thread"]', tr);! 						if(thread) {$del(thread); return}! 						ajaxGetThread(tr.appendChild(! 							$new('div', {! 								'class': 'thread',! 								'id': tNum,! 								'style': 'padding-left:15px',! 								'text': '...'})! 						), b, tNum, 5); ! 					}}(b, tNum)}),! 				$new('a', {! 					'href': 'http://' + url + (dm != 'dobrochan.ru' ? '.html' : '.xhtml'),! 					'html': dm + '/' + b + '/' + tNum}),! 				$txt(' - ' + title)! 				], {! 				'class': 'reply',! 				'style': 'cursor:default',! 				'html': '&nbsp'! 			})], {! 			'id': 'favnote_' + i! 		})]);  	}+ 	refPreview(div);  }    /*-----------------------------Dropdown select menus-------------------------*/****************** 676,688 ****    function selectPostHider(post) {  	if(Cfg[11] == 0 || (Cfg[13] == 0 && post.isOp)) return;! 	var a = addSelMenu('phide_' + post.Num, 0, 14, [' ', ' ', '  ', '  .']);  	$event(a.snapshotItem(0), {  			'mouseover': function() {quotetxt = txtSelection().trim()},  			'click': function() {applyRegExp(quotetxt)}});  	$event(a.snapshotItem(1), {'click': function() {regExpImage(post)}});  	$event(a.snapshotItem(2), {'click': function() {hideBySameText(post)}});- 	$event(a.snapshotItem(3), {'click': function() {hideBySameImage(post)}});  }    function selectExpandThread(post) {--- 733,744 ----    function selectPostHider(post) {  	if(Cfg[11] == 0 || (Cfg[13] == 0 && post.isOp)) return;! 	var a = addSelMenu('phide_' + post.Num, 0, 14, [' ', ' ', '  ']);  	$event(a.snapshotItem(0), {  			'mouseover': function() {quotetxt = txtSelection().trim()},  			'click': function() {applyRegExp(quotetxt)}});  	$event(a.snapshotItem(1), {'click': function() {regExpImage(post)}});  	$event(a.snapshotItem(2), {'click': function() {hideBySameText(post)}});  }    function selectExpandThread(post) {****************** 712,718 ****  	return $new('img', {  		'id': 'imgcaptcha',  		'style': 'display:block',! 		'alt': '..',  		'src': (!isMain  			? '/' + board + '/captcha.pl?key=res' + tNum + '&amp;dummy=' + rand10()  			: '/' + board + '/captcha.pl?key=mainpage&amp;dummy=' + rand10())}, {--- 768,774 ----  	return $new('img', {  		'id': 'imgcaptcha',  		'style': 'display:block',! 		'alt': '...',  		'src': (!isMain  			? '/' + board + '/captcha.pl?key=res' + tNum + '&amp;dummy=' + rand10()  			: '/' + board + '/captcha.pl?key=mainpage&amp;dummy=' + rand10())}, {****************** 739,756 ****  }    function sageBtnFunc(mail, form) {  	var sage = $x('.//span[@id="sage_btn"]', form);! 	if(Cfg[32] == 0) {! 		sage.innerHTML = '<i>( )</i>';! 		sage.style.color = '';! 		if(mail.type == 'text') mail.value = '';! 		else mail.checked = false;! 	} else {! 		sage.innerHTML = '&nbsp;<span class="sage_icn" style="vertical-align:middle"></span><b>SAGE</b>';! 		sage.style.color = 'red';! 		if(mail.type == 'text') mail.value = 'sage';! 		else mail.checked = true;! 	}  }    function sageBtnEvent(e) {--- 795,806 ----  }    function sageBtnFunc(mail, form) {+ 	var s = Cfg[32] == 1;  	var sage = $x('.//span[@id="sage_btn"]', form);! 	sage.innerHTML = s ? '&nbsp;<span class="sage_icn"></span><b>SAGE</b>' : '<i>( )</i>';! 	sage.style.color = s ? 'red' : '';! 	if(mail.type == 'text') mail.value = s ? 'sage' : '';! 	else mail.checked = s ? true : false;  }    function sageBtnEvent(e) {****************** 792,798 ****    function toggleUserName() {  	toggleCfg(35);! 	saveCfg(36, $id('usrname_field').value);  	var val = ($id('usrname_box').checked) ? Cfg[36] : '';  	Rname.value = val;  	if(QR) ($x('.//input[@name="nya1" or @name="akane" or @name="field1"]', QR) || $x('.//input[@name="name"]', QR)).value = val;--- 842,848 ----    function toggleUserName() {  	toggleCfg(35);! 	saveCfg(36, $id('usrname_field').value.replace(/\|/g, ''));  	var val = ($id('usrname_box').checked) ? Cfg[36] : '';  	Rname.value = val;  	if(QR) ($x('.//input[@name="nya1" or @name="akane" or @name="field1"]', QR) || $x('.//input[@name="name"]', QR)).value = val;****************** 800,806 ****    function toggleUserPassw() {  	toggleCfg(33);! 	saveCfg(34, $id('usrpass_field').value);  	var val = $id('usrpass_box').checked ? Cfg[34] : rand10().substring(0, 8);  	Rpass.value = val;  	del_passw.value = val;--- 850,856 ----    function toggleUserPassw() {  	toggleCfg(33);! 	saveCfg(34, $id('usrpass_field').value.replace(/\|/g, ''));  	var val = $id('usrpass_box').checked ? Cfg[34] : rand10().substring(0, 8);  	Rpass.value = val;  	del_passw.value = val;****************** 953,962 ****  		if(captcha && (ch._0ch || ks)) {  			captcha.value = ' ';  			var a = $up($x('.//img[@id="captchaimage" or @id="faptchaimage"]', QR));! 			$before(a, [$new('img', {! 				'src': 'http://' + domain + (!ch._410 ? '/captcha.php?' + Math.random() : '/faptcha.php?board=' + board),! 				'style': 'cursor:pointer'}, {! 				'click': function(e) {this.src = this.src.replace(/\?[^?]+$|$/, (!ch._410 ? '?' : '?board=' + board + '&') + Math.random())}})]);  			$del(a);  		}  	}--- 1003,1009 ----  		if(captcha && (ch._0ch || ks)) {  			captcha.value = ' ';  			var a = $up($x('.//img[@id="captchaimage" or @id="faptchaimage"]', QR));! 			$before(a, [$new('img', {'src': 'http://' + domain + (!ch._410 ? '/captcha.php?' + Math.random() : '/faptcha.php?board=' + board), 'style': 'cursor:pointer'}, {'click': function(e) {this.src = this.src.replace(/\?[^?]+$|$/, (!ch._410 ? '?' : '?board=' + board + '&') + Math.random())}})]);  			$del(a);  		}  	}****************** 1027,1033 ****  /*---------------------------Append styles for elements----------------------*/    function scriptStyles() {! 	var icn = function(nm, src) {return nm + ' {padding-left:18px; cursor:pointer; background:url(data:image/gif;base64,' + src + ') no-repeat} '};  	var pre = 'R0lGODlhDgAPALMAAP//////AP8A//8AAAD//wD/AAAA/wAAAN3d3cDAwJmZmYCAgGBgYEtLS////wAAACH5BAEAAA4ALAAAAAAOAA8AAAR';  	var txt =  		icn('.hide_icn', pre + 'U0MlJq7o4X7dQ+mCILAuohOdHfgpQJguQLowSA+7tKkxt4wgEbnHpkWhCAIJxNJIYyWWTSQMmqUYGDtBobJmMxhOAJZO6LM3l0/WE3oiGo0uv0x0RADs=') +--- 1074,1080 ----  /*---------------------------Append styles for elements----------------------*/    function scriptStyles() {! 	var icn = function(nm, src) {return nm + ' {vertical-align:middle; padding-left:18px; cursor:pointer; background:url(data:image/gif;base64,' + src + ') no-repeat} '};  	var pre = 'R0lGODlhDgAPALMAAP//////AP8A//8AAAD//wD/AAAA/wAAAN3d3cDAwJmZmYCAgGBgYEtLS////wAAACH5BAEAAA4ALAAAAAAOAA8AAAR';  	var txt =  		icn('.hide_icn', pre + 'U0MlJq7o4X7dQ+mCILAuohOdHfgpQJguQLowSA+7tKkxt4wgEbnHpkWhCAIJxNJIYyWWTSQMmqUYGDtBobJmMxhOAJZO6LM3l0/WE3oiGo0uv0x0RADs=') +****************** 1037,1044 ****  		icn('.expthr_icn', pre + 'P0MlJq7o4X7dQ+gsALF+CLCSIiGeJqiKbLkzGIEiNMfp15zYGCtXANYY04bCIOA55SKYTBV0akQxnMQZoEhulbRf8aRTDIrKp4TC7325HBAA7') +  		icn('.fav_icn', pre + 'T0MlJq7o4X7dQ+skFJsiyjAqCKKOJAgALLoxpInBpMzUM4D8frcbwGQHEGi1hTCh5puLxWWswAY0GLNGgdbVYE/hr5ZY/WXTDM2ojGo6sfC53RAAAOw==') +  	'td.reply {width:auto} .pcount {font-size:13px;font-weight:bold;cursor:default;color:#4f7942} .pcountb {font-size:13px;font-weight:bold;cursor:default;color:#c41e3a} ';! 	if((ch._2ch && getCookie('wakabastyle') != 'Futaba') || ch._0ch)! 		txt += '.postblock {background:#bbb} '; // gray postform color  	if(Cfg[39] == 1) txt += '.spoiler {background:#888 !important; color:#CCC !important} '; // open spoilers  	if(Cfg[25] == 1) txt += 'blockquote {max-height:100% !important; overflow:visible !important} '; // no scroller  	if(Cfg[6] == 1) txt += '.commentpostername, .postername, .postertrip {display:none}'; // no post names--- 1084,1090 ----  		icn('.expthr_icn', pre + 'P0MlJq7o4X7dQ+gsALF+CLCSIiGeJqiKbLkzGIEiNMfp15zYGCtXANYY04bCIOA55SKYTBV0akQxnMQZoEhulbRf8aRTDIrKp4TC7325HBAA7') +  		icn('.fav_icn', pre + 'T0MlJq7o4X7dQ+skFJsiyjAqCKKOJAgALLoxpInBpMzUM4D8frcbwGQHEGi1hTCh5puLxWWswAY0GLNGgdbVYE/hr5ZY/WXTDM2ojGo6sfC53RAAAOw==') +  	'td.reply {width:auto} .pcount {font-size:13px;font-weight:bold;cursor:default;color:#4f7942} .pcountb {font-size:13px;font-weight:bold;cursor:default;color:#c41e3a} ';! 	if((ch._2ch && getCookie('wakabastyle') != 'Futaba') || ch._0ch) txt += '.postblock {background:#bbb} '; // gray postform color  	if(Cfg[39] == 1) txt += '.spoiler {background:#888 !important; color:#CCC !important} '; // open spoilers  	if(Cfg[25] == 1) txt += 'blockquote {max-height:100% !important; overflow:visible !important} '; // no scroller  	if(Cfg[6] == 1) txt += '.commentpostername, .postername, .postertrip {display:none}'; // no post names****************** 1073,1079 ****    function getPost(node) {  	return !ch._0ch! 		? $x('./ancestor::table', node)  		: $x('./ancestor::div[@class="postnode"]|./ancestor::table[@class="replypost"]', node);  }  --- 1119,1125 ----    function getPost(node) {  	return !ch._0ch! 		? $x('./ancestor::table[@class="replypost"]', node)  		: $x('./ancestor::div[@class="postnode"]|./ancestor::table[@class="replypost"]', node);  }  ****************** 1271,1309 ****  	var w = sz[0] < maxw ? sz[0] : maxw;  	var h = w/r;  	$append(a, [! 		$attr(img.cloneNode(false), {  			'id': 'pre_img',  			'width': w,  			'height': h,! 			'style': 'display:block'}),  		$new('img', {  			'class': 'thumb',  			'id': 'full_img',  			'src': a.href,  			'width': w,  			'height': h,! 			'style': 'display:none'}, {  			'load': function() {! 				$del($prev(this));! 				if(img.style.display == 'none') toggleDisp(this);  			}})  	]);  }    function expandHandleImg(post) {! 	if(post.Img) $event($up(post.Img, (ks ? 2 : 1)), {'click': function(e) {e.preventDefault(); expandImg(this, post)}});  }    function allImgExpander() {  	if($X('.//img[@class="thumb"]', delform).snapshotLength <= 1) return;  	oPosts[0].appendChild($new('div', {  		'id': 'expimgs_btn',  		'style': 'cursor:pointer',! 		'html': '[<a> </a>]'}, {  		'click': function() {  			forPosts(function(post) {if(post.Img && post.Vis != HIDE) expandImg($up(post.Img), post)});  			var btn = $id('expimgs_btn');! 			btn.innerHTML = //.test(btn.innerHTML) ? '[<a> </a>]' : '[<a> </a>]';  		}}));  }  --- 1317,1359 ----  	var w = sz[0] < maxw ? sz[0] : maxw;  	var h = w/r;  	$append(a, [! 		$if(Cfg[23] == 2, $attr(img.cloneNode(false), {  			'id': 'pre_img',  			'width': w,  			'height': h,! 			'style': 'display:block'})),  		$new('img', {  			'class': 'thumb',  			'id': 'full_img',+ 			'alt': '...',  			'src': a.href,  			'width': w,  			'height': h,! 			'style': 'display:' + (Cfg[23] == 2 ? 'none' : 'block')}, {  			'load': function() {! 				$del($x('.//img[@id="pre_img"]', $up(this)));! 				if(img.style.display == 'none') this.style.display = 'block';  			}})  	]);  }    function expandHandleImg(post) {! 	if(post.Img) $event($up(post.Img, (ks ? 2 : 1)), {'click': function(e) {! 		if(Cfg[23] != 0) {e.preventDefault(); expandImg(this, post);! 	}}});  }    function allImgExpander() {  	if($X('.//img[@class="thumb"]', delform).snapshotLength <= 1) return;+ 	var txt = '[<a> </a>]';  	oPosts[0].appendChild($new('div', {  		'id': 'expimgs_btn',  		'style': 'cursor:pointer',! 		'html': txt}, {  		'click': function() {  			forPosts(function(post) {if(post.Img && post.Vis != HIDE) expandImg($up(post.Img), post)});  			var btn = $id('expimgs_btn');! 			btn.innerHTML = //.test(btn.innerHTML) ? '[<a> </a>]' : txt;  		}}));  }  ****************** 1327,1336 ****  		var map = post ? $id('rfmap_' + rNum) : undefined;  		if(!map) {  			map = $new('small', {'id': 'rfmap_' + rNum, 'html': '<i><br>: ' + ref + '</i>'});! 			refPrewiev(map);  			var msg = postByNum[rNum].Msg;  			if(msg) $up(msg).appendChild(map);! 		} else refPrewiev($html(map.firstChild, map.firstChild.innerHTML + ', ' + ref));  	}  }  --- 1377,1386 ----  		var map = post ? $id('rfmap_' + rNum) : undefined;  		if(!map) {  			map = $new('small', {'id': 'rfmap_' + rNum, 'html': '<i><br>: ' + ref + '</i>'});! 			refPreview(map);  			var msg = postByNum[rNum].Msg;  			if(msg) $up(msg).appendChild(map);! 		} else refPreview($html(map.firstChild, map.firstChild.innerHTML + ', ' + ref));  	}  }  ****************** 1356,1368 ****  			' top:' + y + 'px;'}, {  		'mouseout': function(e) {  			var el = $x('ancestor-or-self::*[starts-with(@id,"pstprew")]', e.relatedTarget);! 			if(!el) delPrewievClones();  			else while(/pstprew/.test($next(el).id)) $del($next(el));  		}});  	var functor = function(clone, html) {  		clone.innerHTML = html;  		clone.Img = $x('.//img[@class="thumb"]', clone);! 		refPrewiev(clone);  		expandHandleImg(clone);  	};  	if(b == board) var post = postByNum[pNum];--- 1406,1418 ----  			' top:' + y + 'px;'}, {  		'mouseout': function(e) {  			var el = $x('ancestor-or-self::*[starts-with(@id,"pstprew")]', e.relatedTarget);! 			if(!el) delPreviewClones();  			else while(/pstprew/.test($next(el).id)) $del($next(el));  		}});  	var functor = function(clone, html) {  		clone.innerHTML = html;  		clone.Img = $x('.//img[@class="thumb"]', clone);! 		refPreview(clone);  		expandHandleImg(clone);  	};  	if(b == board) var post = postByNum[pNum];****************** 1382,1388 ****  	$before(ndelform, [clone]);  }  ! function refPrewiev(node) {  	$each($X('.//a[starts-with(text(),">>")]', node || delform), function(link) {  		if(ch.dc) {  			if(!nav.Opera) {if(link.getAttribute('onmouseover')) link.removeAttribute('onmouseover')}--- 1432,1438 ----  	$before(ndelform, [clone]);  }  ! function refPreview(node) {  	$each($X('.//a[starts-with(text(),">>")]', node || delform), function(link) {  		if(ch.dc) {  			if(!nav.Opera) {if(link.getAttribute('onmouseover')) link.removeAttribute('onmouseover')}****************** 1392,1403 ****  			'mouseover': doPostPreview,  			'mouseout': function(e) {  				if(!$x('ancestor-or-self::*[starts-with(@id,"pstprew")]', e.relatedTarget))! 					delPrewievClones();  			}});  	});  }  ! function delPrewievClones() {  	$each($X('.//div[starts-with(@id,"pstprew")]'), function(clone) {$del(clone)});  }  --- 1442,1453 ----  			'mouseover': doPostPreview,  			'mouseout': function(e) {  				if(!$x('ancestor-or-self::*[starts-with(@id,"pstprew")]', e.relatedTarget))! 					delPreviewClones();  			}});  	});  }  ! function delPreviewClones() {  	$each($X('.//div[starts-with(@id,"pstprew")]'), function(clone) {$del(clone)});  }  ****************** 1489,1496 ****  	if(post.Vis == HIDE) setPostVisib(post, HIDE);  	if(Cfg[12] == 1) mergeHidden(post);  	if(Cfg[15] == 1) refMap(post);! 	if(Cfg[23] == 1 && wk) expandHandleImg(post);! 	if(Cfg[26] == 1) refPrewiev(post.Msg);  	if(Cfg[27] == 1) addYouTube(post);  	if(Cfg[28] == 1) addMP3(post);  }--- 1539,1546 ----  	if(post.Vis == HIDE) setPostVisib(post, HIDE);  	if(Cfg[12] == 1) mergeHidden(post);  	if(Cfg[15] == 1) refMap(post);! 	if(Cfg[23] != 0 && wk) expandHandleImg(post);! 	if(Cfg[26] == 1) refPreview(post.Msg);  	if(Cfg[27] == 1) addYouTube(post);  	if(Cfg[28] == 1) addMP3(post);  }****************** 1502,1508 ****  		var txt = ajaxPosts[tNum][post.Num];  		post.Msg = $html(post.Msg, txt.substring(txt.indexOf('<blockquote') + 12, txt.lastIndexOf('</blockquote>')));  		post.Text = getText(post.Msg);! 		if(Cfg[26] == 1) refPrewiev(post.Msg);  		if(Cfg[27] == 1) addYouTube(post);  		if(Cfg[28] == 1) addMP3(post);  	});--- 1552,1558 ----  		var txt = ajaxPosts[tNum][post.Num];  		post.Msg = $html(post.Msg, txt.substring(txt.indexOf('<blockquote') + 12, txt.lastIndexOf('</blockquote>')));  		post.Text = getText(post.Msg);! 		if(Cfg[26] == 1) refPreview(post.Msg);  		if(Cfg[27] == 1) addYouTube(post);  		if(Cfg[28] == 1) addMP3(post);  	});****************** 1527,1532 ****--- 1577,1598 ----  	});  }  + function ajaxGetThread(parent, b, tNum, last) {+ 	AJAX('thr', b, tNum, function() {+ 		delChilds(parent);+ 		if(!ajaxPosts[tNum]) {alert('    '); return}+ 		addPostFunc(parent.appendChild(getNewPost(tNum, ajaxPosts[tNum][tNum], i)), tNum, 0, true);+ 		var len = ajaxPosts[tNum].keys.length;+ 		if(last != 1) last = len - last;+ 		if(last <= 0) last = 1;+ 		for(var i = last; i < len; i++) {+ 			var pNum = ajaxPosts[tNum].keys[i];+ 			addPostFunc(parent.appendChild(getNewPost(pNum, ajaxPosts[tNum][pNum], i)), pNum, i + 1, true);+ 		}+ 		if(!sav.cookie) storeHiddenPosts();+ 	});+ }+   function ajaxNewPosts() {  	var thread = $x('.//div[@class="thread"]');  	var tNum = oPosts[0].Num;****************** 1661,1673 ****  	} else if(Cfg[13] == 1) unhideThread(post);  }  - function toggleSamePost(post, vis, expr, note) {- 	if(!expr) return;- 	$del($id('note_' + post.Num));- 	if(vis == UNHIDE) hidePost(post, note);- 	else unhidePost(post);- }-   function storeHiddenPosts() {  	forPosts(function(post) {if(post.Vis == HIDE) setPostVisib(post, HIDE)});  	storePostsVisib();--- 1727,1732 ----****************** 1977,2029 ****  		var j = words.length;  		while (j--) if((words[j] == origWords[i]) || (origWords[i].substring(0, 2) == '>>' && words[j].substring(0, 2) == '>>')) matchCount++;  	}! 	toggleSamePost(post, origVis, matchCount >= origLen*0.5 && words.length < origLen*2.5, ' same text as >>' + origPost.Num);! }! ! /*-------------------------Hide posts with similar images----------------------*/! ! function getPix(img, iw, ih) {! 	var cn = $new('canvas', {'width': iw, 'height': ih}).getContext('2d');! 	cn.drawImage(img, 0, 0);! 	return cn.getImageData(0, 0, iw, ih).data;! }! ! function hideBySameImage(post) {! 	var img = post.Img;! 	if(!img) {! 		toggleNoimage();! 		toggleChk($id('noimage_hider'));! 		return;! 	}! 	var iw = img.width, ih = img.height;! 	var iData = getPix(img, iw, ih);! 	for(var i = 0; i < ih; i += 10) ! 		for(var j = 0; j < iw; j += 10) {! 			var n = (i*4)*iw + (j*4);! 			var mix = Math.round((iData[n] + iData[n + 1] + iData[n + 2])*0.3333);! 			iData[n] = mix;! 			iData[n + 1] = mix;! 			iData[n + 2] = mix;! 		}! 	var vis = post.Vis;! 	forAll(function(target) {findSameImages(target, post, vis, iData)});! 	storeHiddenPosts();! }! ! function findSameImages(post, origPost, origVis, iData) {! 	var img = post.Img;! 	if(!img) return;! 	var matchCount = 0, count = 0;! 	var iw = img.width, ih = img.height;! 	var sData = getPix(img, iw, ih);! 	for(var i = 0; i < ih; i += 10) ! 		for(var j = 0; j < iw; j += 10) {! 			var n = (i*4)*iw + (j*4);! 			var mix = Math.round((sData[n] + sData[n + 1] + sData[n + 2])*0.3333);! 			if(iData[n] <= mix + 10 && iData[n] >= mix - 10) matchCount++;! 			count++;! 		}! 	toggleSamePost(post, origVis, matchCount/count >= 0.5, ' image as >>' + origPost.Num + ' (' + parseInt(matchCount/count*100) + '%)');  }    --- 2036,2045 ----  		var j = words.length;  		while (j--) if((words[j] == origWords[i]) || (origWords[i].substring(0, 2) == '>>' && words[j].substring(0, 2) == '>>')) matchCount++;  	}! 	if(!(matchCount >= origLen*0.5 && words.length < origLen*2.5)) return;! 	$del($id('note_' + post.Num));! 	if(origVis != HIDE) hidePost(post, ' same text as >>' + origPost.Num);! 	else unhidePost(post);  }    ****************** 2055,2074 ****  	else applyPostVisib(post, UNHIDE);  }  - function detectWipe_longColumn(txt) {- 	var n = 0;- 	var rows = txt.split('\n');- 	var len = rows.length;- 	for(var i = 0; i < len; i++) {- 		if(rows[i].length < 9) n++;- 		else return null;- 	}- 	if(len > 45) return 'long text x' + len;- 	if(n > 5) return 'columns x' + n;- 	return null;- }-   function detectWipe_sameLines(txt) {  	var lines = txt.replace(/(> )/g, '').split('\n');  	var len = lines.length;  	if(len < 5) return null;--- 2071,2078 ----  	else applyPostVisib(post, UNHIDE);  }    function detectWipe_sameLines(txt) {+ 	if(Cfg[42] == 0) return null;  	var lines = txt.replace(/(> )/g, '').split('\n');  	var len = lines.length;  	if(len < 5) return null;****************** 2082,2087 ****--- 2086,2092 ----  }    function detectWipe_sameWords(txt) {+ 	if(Cfg[43] == 0) return null;  	txt = txt.replace(/[\.\?\!,>]/g, ' ').replace(/\s+/g, ' ').toUpperCase();  	var words = txt.split(' ');  	var len = words.length;****************** 2103,2109 ****--- 2108,2140 ----  	return null;  }  + function detectWipe_specSymbols(txt) {+ 	if(Cfg[44] == 0) return null;+ 	txt = txt.replace(/\s+/g, '');+ 	var all = txt; + 	txt = txt.replace(/[0-9A-Za-z--\.\?!,]/g, '');+ 	var proc = txt.length/all.length;+ 	if(all.length > 30 && proc > 0.40)+ 		return 'specsymbols: ' + parseInt(proc*100) + '%';+ 	return null;+ }+ + function detectWipe_longColumn(txt) {+ 	if(Cfg[45] == 0) return null;+ 	var n = 0;+ 	var rows = txt.split('\n');+ 	var len = rows.length;+ 	for(var i = 0; i < len; i++) {+ 		if(rows[i].length < 9) n++;+ 		else return null;+ 	}+ 	if(len > 45) return 'long text x' + len;+ 	if(n > 5) return 'columns x' + n;+ 	return null;+ }+   function detectWipe_longWords(txt) {+ 	if(Cfg[46] == 0) return null;  	txt = txt.replace(/http:\/\/.*?(\s|$)/g, '').replace(/[\.\?!,>:;-]/g, ' ').replace(/\s+/g, ' ');  	var words = txt.split(' ');  	var n = 0, all = '', lng = '';****************** 2118,2124 ****--- 2149,2165 ----  	return null;  }  + function detectWipe_numbers(txt) {+ 	if(Cfg[47] == 0) return null;+ 	txt = txt.replace(/\s+/g, ' ').replace(/(>>)(\d+)/g, '').replace(/http:\/\/.*?(\s|$)/g, '');+ 	var len = txt.length;+ 	var proc = (len - txt.replace(/[0-9]/g, '').length)/len;+ 	if(len > 30 && proc > 0.4) return 'numbers: ' + parseInt(proc*100) + '%';+ 	return null;+ }+   function detectWipe_caseWords(txt) {+ 	if(Cfg[48] == 0) return null;  	txt = txt.replace(/[\.\?!,-]/g, ' ').replace(/\s+/g, ' ');  	var words = txt.split(' ');  	var len = words.length;****************** 2149,2172 ****  	return null;  }  - function detectWipe_specSymbols(txt) {- 	txt = txt.replace(/\s+/g, '');- 	var all = txt; - 	txt = txt.replace(/[0-9A-Za-z--\.\?!,]/g, '');- 	var proc = txt.length/all.length;- 	if(all.length > 30 && proc > 0.40)- 		return 'specsymbols: ' + parseInt(proc*100) + '%';- 	return null;- }- - function detectWipe_numbers(txt) {- 	txt = txt.replace(/\s+/g, ' ').replace(/(>>)(\d+)/g, '').replace(/http:\/\/.*?(\s|$)/g, '');- 	var len = txt.length;- 	var proc = (len - txt.replace(/[0-9]/g, '').length)/len;- 	if(len > 30 && proc > 0.4) return 'numbers: ' + parseInt(proc*100) + '%';- 	return null;- }-     /*=============================================================================  								INITIALIZATION--- 2190,2195 ----****************** 2348,2354 ****  	addControls();					Log('addControls');  	forAll(addPostButtons);			Log('addPostButtons');  	if(Cfg[26] == 1) {! 		refPrewiev();				Log('refPrewiev')}  	if(Cfg[15] == 1) {  		refMap();					Log('refMap')}  	forAll(doPostFilters);			Log('doPostFilters');--- 2371,2377 ----  	addControls();					Log('addControls');  	forAll(addPostButtons);			Log('addPostButtons');  	if(Cfg[26] == 1) {! 		refPreview();				Log('refPreview')}  	if(Cfg[15] == 1) {  		refMap();					Log('refMap')}  	forAll(doPostFilters);			Log('doPostFilters');****************** 2358,2364 ****  		initNewPosts();				Log('initNewPosts')}  	if(Cfg[12] == 1) {  		forPosts(mergeHidden);		Log('mergeHidden')}! 	if(Cfg[23] == 1 && wk) {  		forAll(expandHandleImg);	Log('expandHandleImg')}  	if(Cfg[24] == 1 && main && wk) {  		forAll(ajaxExpandPost);		Log('ajaxExpandPost')}--- 2381,2387 ----  		initNewPosts();				Log('initNewPosts')}  	if(Cfg[12] == 1) {  		forPosts(mergeHidden);		Log('mergeHidden')}! 	if(Cfg[23] != 0 && wk) {  		forAll(expandHandleImg);	Log('expandHandleImg')}  	if(Cfg[24] == 1 && main && wk) {  		forAll(ajaxExpandPost);		Log('ajaxExpandPost')}