Customized Mangafox

By knaces Last update May 22, 2009 — Installed 3,283 times.

There are 20 previous versions of this script.

// ==UserScript==
// @name           Customized Mangafox
// @namespace      Knace
// @description    Improves your mangafox reading experience with configurable features: Prefetching, Image Stretching, etc...
// @version        3.0
// @include        http://www.mangafox.com/manga/*/v*/c*
// ==/UserScript==
///////////////////////////////////////////////////
// Google Chrome Support Code
if( !GM_getValue && !GM_setValue && !unsafeWindow ) {

	function GM_setValue( cookieName, cookieValue, lifeTime ) {
		if( !cookieName ) { return; }
		if( lifeTime == "delete" ) { lifeTime = -10; } else { lifeTime = 31536000; }
		document.cookie = escape( cookieName ) + "=" + escape( cookieValue ) +
			";expires=" + ( new Date( ( new Date() ).getTime() + ( 1000 * lifeTime ) ) ).toGMTString() + ";path=/";
	}

	function GM_getValue( cookieName, oDefault ) {
		var cookieJar = document.cookie.split( "; " );
		for( var x = 0; x < cookieJar.length; x++ ) {
			var oneCookie = cookieJar[x].split( "=" );
			if( oneCookie[0] == escape( cookieName ) ) {
				try {
					eval('var footm = '+unescape( oneCookie[1] ));
				} catch(e) { return oDefault; }
				return footm;
			}
		}
		return oDefault;
	}

	function GM_registerMenuCommand( oText, oFunc ) {
	}

	window.unsafeWindow = window;
}

///////////////////////////////////////////////////

if( top == self )
{



//Load variables
	prefetch = GM_getValue('prefetch', true);
	stretch = GM_getValue('stretch', true);
	reduce_mode = GM_getValue('reduce_mode', true);
	remove_navbar_top = GM_getValue('remove_navbar_top', true);
	remove_navbar_bottom = GM_getValue('remove_navbar_bottom', false);
	remove_ads = GM_getValue('remove_ads', false);

//Global document variables
	var div_image = document.getElementById('viewer');
	var div_header = document.getElementById('header');
	var div_footer = document.getElementById('footer');
	var div_bottomad = document.getElementById('bottom_ads');
	var navbar_top = document.getElementById('top_center_bar').parentNode;
	var navbar_bottom = document.getElementById('bottom_center_bar').parentNode;
	var image = document.getElementById('image');
		var image_link = image.parentNode;

		

//Prefetching
	function runPrefetch() {
		if( prefetch ) {
			iframe = document.createElement('iframe');
				iframe.setAttribute( 'src', image_link.getAttribute('href') );
				iframe.style.height = '1px';
			document.body.appendChild(iframe);
		}
	}
	function togglePrefetch() {
		prefetch = !prefetch; GM_setValue('prefetch', prefetch);
		if( prefetch ) {
			alert('Prefetching: Turned On');
		} else {
			alert('Prefetching: Turned Off');
		}
	}
	window.addEventListener( 'load', runPrefetch, false );


//Image Stretching
	var clicked = false;
	function runStretch() {
		if( stretch ) {
			unsafeWindow.kn_enlarge = function() {
				if( clicked == false && unsafeWindow['image_width'] > window.innerWidth ) {
					clicked = true;
					div_image.style.width = ''+unsafeWindow['image_width']+'px';
					return false;
				} else {
					window.setTimeout("next_page()", 1);
				}
			}
			div_image.style.width = '100%';
			div_image.style.border = '0px';
			image.setAttribute('width', "100%");
			image.parentNode.setAttribute('onclick', 'return kn_enlarge()');
		}
	}
	function toggleStretch() {
		stretch = !stretch; GM_setValue('stretch', stretch);
		if( stretch ) {
			location.reload(true);
		} else {
			clicked = false;
			div_image.style.width = '728px';
			image_link.setAttribute('onclick', 'return enlarge()');
		}
	}
	runStretch();

//Reduce Mode
	function runReduceMode() {
		if( reduce_mode ) {
			div_header.style.display = 'none';
			div_footer.style.display = 'none';
		}
	}
	function toggleReduceMode() {
		reduce_mode = !reduce_mode; GM_setValue('reduce_mode', reduce_mode);
		if( reduce_mode ) {
			runReduceMode();
		} else {
			div_header.style.display = '';
			div_footer.style.display = '';
		}
	}
	runReduceMode();
	document.addEventListener('keypress', function(event) { if(event.keyCode == 27) { toggleReduceMode(); } }, true);

//Remove Navbar-Top
	function runNavbarTop() {
		if( remove_navbar_top ) { navbar_top.style.display='none'; }
	}
	function toggleNavbarTop() {
		remove_navbar_top = !remove_navbar_top; GM_setValue('remove_navbar_top', remove_navbar_top);
		if( remove_navbar_top ) {
			runNavbarTop();
		} else {
			navbar_top.style.display='';
		}
	}
	runNavbarTop();

//Remove Navbar-Bottom
	function runNavbarBottom() {
		if( remove_navbar_bottom ) { navbar_bottom.style.display='none'; }
	}
	function toggleNavbarBottom() {
		remove_navbar_bottom = !remove_navbar_bottom; GM_setValue('remove_navbar_bottom', remove_navbar_bottom);
		if( remove_navbar_bottom ) {
			runNavbarBottom();
		} else {
			navbar_bottom.style.display='';
		}
	}
	runNavbarBottom();

//Remove Ads
	function runAds() {
		if( remove_ads ) {
			if( !remove_navbar_top ) {
				document.getElementById('bottom_chapter_list').id = 'top_chapter_list';
				navbar_top.innerHTML = navbar_bottom.innerHTML;
			}
			div_bottomad.parentNode.removeChild(div_bottomad);
		}
	}
	function toggleAds() {
		remove_ads = !remove_ads; GM_setValue('remove_ads', remove_ads);
		if( remove_ads ) {
			runAds();
		} else {
			location.reload(true);
		}
	}
	runAds();


	GM_registerMenuCommand( 'Toggle Prefetching', togglePrefetch );
	GM_registerMenuCommand( 'Toggle Ads', toggleAds );
	GM_registerMenuCommand( 'Toggle Bottom NavigationBar', toggleNavbarBottom );
	GM_registerMenuCommand( 'Toggle Image Stretching', toggleStretch );
	GM_registerMenuCommand( 'Toggle Top NavigationBar', toggleNavbarTop );
	GM_registerMenuCommand( 'Toggle Site Navagation/Info', toggleReduceMode );

}