// M19hwLgdm/yBm3Mcez3Ae2i3S4cCeoBxeIYwbhn95nc4lOZX7L4HRNBvSFV9lYuT39gh7Wz4Wqi+pC+duspzvtI3RJwIbPUw6xyP1ossUjtrXI9TjIabI3lmd4v9GFBKv9nvboYAXBYvmBnfZtbTbv8g2QjMV/omIHlRr3MlzqRjEU7KHKvpIbKDubAAYdAA9scir5GiEUh2nYW71axIAvUo9vxXp04K6xG80lXpMINVR/xKWymwDtGWp8+wq+h48ouOS5Oz4yriCxX7WzmxOBudh51q/0LREooRi4hO7PtQPmXpAnlm7UUuhu33akb0QSZNXdZtDOL4irSGvpqysw==
/**
** Copyright (C) 2000-2007 Opera Software AS.  All rights reserved.
**
** This file is part of the Opera web browser.   
**
** This script patches sites to work better with Opera
** For more information see http://www.opera.com/docs/browserjs/
** 
** If you have comments on these patches (for example if you are the webmaster 
** and want to inform us about a fixed site that no longer needs patching) please
** report issues through the bug tracking system
** https://bugs.opera.com/
**
** DO NOT EDIT THIS FILE! It will not be used by Opera if edited. 
**/
// Generic fixes (mostly)
(function(opera){
	var bjsversion='edited: March 31, 2007, version: Opera  Cheju';
	// variables and utility functions
	var navRestore = {}; // will hold original navigator.* values
	var shouldRestore = false;
	var hostname = location.hostname; // caching some strings for performance
	var href = location.href;
	var pathname=location.pathname;
	var fixed = false; // magic fixes need only run once
	// Storing function references
	var postError = opera.postError,
	call = Function.prototype.call, 
	indexOf=String.prototype.indexOf,
	lastIndexOf=String.prototype.lastIndexOf,
	replace=String.prototype.replace,
	match=String.prototype.match,
	toLowerCase=String.prototype.toLowerCase,
	getAttribute=Element.prototype.getAttribute,
	setAttribute=Element.prototype.setAttribute, 
	insertBefore=Node.prototype.insertBefore,
	insertAdjacentHTML=Element.prototype.insertAdjacentHTML,
	defineMagicVariable=opera.defineMagicVariable,
	defineMagicFunction=opera.defineMagicFunction,
	version=opera.version,
	getElementById=Document.prototype.getElementById,
	appendChild=Node.prototype.appendChild,
	evaluate=Document.prototype.evaluate,
	getElementsByTagName=Document.prototype.getElementsByTagName,
	createElement=Document.prototype.createElement,
	createTextNode=Document.prototype.createTextNode,
	stopPropagation=Event.prototype.stopPropagation,
	preventDefault=Event.prototype.preventDefault,
	getComputedStyle=window.getComputedStyle,
	slice=Array.prototype.slice,
	setTimeout=window.setTimeout,
	addEventListener=Document.prototype.addEventListener,
	isNaN=window.isNaN,
	RegExp=window.RegExp,
	unescape=window.unescape;


	// Utility functions
	function addCssToDocument(cssText, doc, mediaType){
		getElementsByTagName.call=addEventListener.call=createElement.call=createTextNode.call=insertBefore.call=setAttribute.call=appendChild.call=version.call=call;
		doc = doc||document;
		mediaType = mediaType||'';
		addCssToDocument.styleObj=addCssToDocument.styleObj||{};
		var styles = addCssToDocument.styleObj[mediaType];
		if(!styles){
			var head = getElementsByTagName.call(doc, "head")[0];
			if( !head ){
				var docEl = getElementsByTagName.call(doc, "html")[0];
				if(!docEl){
					// :S this shouldn't happen - see if document hasn't loaded
					addEventListener.call(doc, opera&&version.call(opera)>=9?'DOMContentLoaded':'load',
					function(){ addCssToDocument(cssText, doc); },false);
					return;
				}
				head = createElement.call(doc, "head");
				if(head) insertBefore.call(docEl, head,docEl.firstChild);
				else head = docEl;
			}
			addCssToDocument.styleObj[mediaType] = styles = createElement.call(doc, "style");
			setAttribute.call(styles, "type","text/css");
			if(mediaType)setAttribute.call(styles, "media", mediaType);
			appendChild.call(styles, createTextNode.call(doc,' '));
			appendChild.call(head, styles)
		}
		styles.firstChild.nodeValue += cssText+"\n";
		return true;
	}
	function addPreprocessHandler( search, replacement, onceonly, conditional ){
		// adding event handler for script pre-processing if required
		opera.addEventListener('BeforeScript', 
			function(e){ 
				indexOf.call=replace.call=removeEventListener.call=call; /* also needs anything used inside conditional! */
				if( conditional && ! conditional(e.element) ){return;}
				e.element.text=replace.call( e.element.text, search, replacement );
				if(onceonly){
					removeEventListener.call(opera, 'BeforeScript', arguments.callee, false);
				}
			}
		, false);
	}
	function fakeCSSFilters(){ // faking support for some of the common filters so that using them won't stop the script
		var filterObj={apply:function(){}, play:function(){}, Apply:function(){}, Play:function(){}}; // some of the common functions
		HTMLElement.prototype.filters=[ filterObj, filterObj, filterObj ]; // fake three applied filters with play and apply functions
		HTMLElement.prototype.filters['blendTrans']=filterObj; // we also fake a named blendTrans filter
	}
	function fixCoolmenus(name){
		if(fixed){return;}fixed=true;
		defineMagicVariable.call=call;
		// Version 4 is Opera 7 - compatible and does user agent sniffing
		navRestore['userAgent'] = navigator.userAgent;
		navigator.userAgent +=' msie 6';
		shouldRestore = true;
		defineMagicVariable.call(opera, 'bw', function(o){
			// we need to override yet some more browser detection, and disable CSS filters
			// usedom must be 0 to make frameset menus work
			o.filter=o.op7=o.op=o.usedom=o.ns6=0;
			o.ie=o.ie6=1;
			return o}, function(o){return o});
		addPreprocessHandler(  'this.win.document.body.appendChild(oNS)',  'try{this.win.document.body.appendChild(oNS)}catch(e){oNS=this.win.document.body.appendChild(this.win.document.importNode(oNS, true))}' );
		addPreprocessHandler(  'oNS.appendChild(oNS2)',  'try{oNS.appendChild(oNS2);}catch(e){oNS2=oNS.appendChild(oNS.document.importNode(oNS2, true));}' );
	}
	function fixHVMenu(name){
		if(fixed){return;}fixed=true;
		defineMagicVariable.call=match.call=call;
		// fix by changing Opera from an unsupported browser to a supported browser
		// Set to true either PosStrt, NavYes, DomNav   or   PosStrt, ExpYes, DomExp
		defineMagicVariable.call(opera, 'PosStrt', function(){ return true }, function(){ return true });
		defineMagicVariable.call(opera, 'NavYes', function(){ return true }, function(){ return true });
		defineMagicVariable.call(opera, 'DomNav', function(){ return true }, function(){ return true });
		// Tell the script that CSS filters are not supported.
		defineMagicVariable.call(opera, 'Fltr', function(){ return false; }, function(){ return });
		// More recent versions look for 'opera 7' in navigator.userAgent and some do not use the variable names above
		if(  match.call(name, /var\.js$/) || match.call(name, /compact\.js$/) ){
			navRestore['userAgent'] = navigator.userAgent;
			navigator.userAgent+=' opera 7'; 
			shouldRestore = true;
		}
	}
	function fixHierMenus(){
		if(fixed){return;}fixed=true;
		defineMagicVariable.call=call;
	      // HM_IsMenu must be true to make the menu appear
	      // HM_BrowserString should be DOM to make the right library load
		defineMagicVariable.call(opera, 'HM_IsMenu', function(){ return true}, function(){ return true });
		defineMagicVariable.call(opera, 'HM_BrowserString', function(){ return 'DOM'}, function(){ return 'DOM' });
	}
	function fixMilonicMenu(name){ 	// IMPORTANT gotcha: the fixOpenCube and fixHVMenu functions must be called with an appropriate string argument
		if(fixed){return;}fixed=true;
		defineMagicVariable.call=defineMagicFunction.call=call;
	      // "opera" or "opra" true will cause no menu or garbled (Opera 6 pixel* -  compat)
		defineMagicVariable.call(opera, 'opera', function(){ return false }, function(){});
		defineMagicVariable.call(opera, 'opra', function(){ return false }, function(){});
		// ie55 true will use IFRAME shims
		defineMagicVariable.call(opera, 'ie55', function(){ return false }, function(){ });
		// identifying as Opera will cause "dom" variable to be false in some versions
		defineMagicVariable.call(opera,  'dom' , function(){ return true }, function(){});
		// fixForm function will hide page content
		defineMagicFunction.call(opera,  'fixForm' , function(){});
		// Menu does not work on Mac if it detects platform
		defineMagicVariable.call(opera, 'mac', function(){ return false }, function(){ });
	}
	function fixOpenCube(name){// IMPORTANT gotcha: the fixOpenCube and fixHVMenu functions must be called with an appropriate string argument
		match.call=addEventListener.call=defineMagicVariable.call=indexOf.call=call;
		// OpenCube menu
		window.vxml = window.vxml||{}; // to fix semi-opera-detection
		//Some versions try to call a function q99 which is only defined in the Opera library
		addEventListener.call(document, 'load', function(){ if(typeof q99=='undefined')window.q99=function(){}  }, false);
		// fake some support for the menu version that tries to use CSS filters in spite of magic var below 
		fakeCSSFilters();
		// We'll overrule their sniffing and find the correct library for Opera
		if(match.call(name, /dqm_script\d*\.js$/)){
			defineMagicVariable.call(opera, 'brn', function(val){ return 'ie' }, function(val){ return 'ie' });
			defineMagicVariable.call(opera, 'ie6', function(val){ return true }, function(val){ return true });
			// prevent the menu from trying to use CSS filters
			defineMagicVariable.call(opera, 'DQM_sub_menu_effect',  function(){return 'none';}, null);
			if(document.evaluate){ // we have an event transparency problem on some sites, see for example bug 239622
				addEventListener.call(document, 'load', function(){
					var nodes=document.evaluate( '//a/child::img[substring(@id, 0, 4)=\'qmim\']', document.body,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null ),node;
					while( node=nodes.iterateNext()){
						node.parentElement.parentElement.replaceChild(node, node.parentElement );
					};
				}, false);
			}
			fixed=true;
			return true;
		}else if(indexOf.call(name, 'dqm_loader.js')>-1){
			defineMagicVariable.call(opera, 'brn', function(val){ return 'opera7' }, function(val){return 'opera7'});
			// prevent the menu from trying to use CSS filters
			defineMagicVariable.call(opera, 'DQM_sub_menu_effect',  function(){return 'none';}, null);
			fixed=true;
			return true;
		}
	}
	function fixSoThinkMenus(){
		if(fixed){return;}fixed=true;
		defineMagicVariable.call=call;
		defineMagicVariable.call(opera, 'nOP',function(){return false;},null);
		defineMagicVariable.call(opera, 'nIE',function(){return false;},null);
		defineMagicVariable.call(opera, 'nNN6',function(){return true;},null);
	}
	function fixTransmenus(){
		// Fixing bugs in menu script from http://www.youngpup.net/2004/transmenus/ 
		// Credits xErath and Andrew Gregory
		opera.addEventListener('BeforeScript', function(ev) {
			indexOf.call=replace.call=removeEventListener.call=call;
			var js = ev.element.text;
			if (indexOf.call(js, "TransMenu")!=-1) {
				js = replace.call(js, /return\s+r(\b)/,"return true$1");
				js = replace.call(js, /mac/g,"xpto");
				js = replace.call(js, "el.scrollLeft", "0");
				js = replace.call(js, "el.scrollTop", "0");
				ev.element.text = js;
				removeEventListener.call(opera, 'BeforeScript', arguments.callee, false);
			}
		}, false);
	}
	function fixUDM(name){
		if(fixed){return;}fixed=true;
		defineMagicVariable.call=call;
		// Some versions are Opera 7 - compatible and do user agent sniffing
		navRestore['userAgent'] = navigator.userAgent;
		navigator.userAgent +=' opera 7.5';
		shouldRestore = true;
		// If the menu is a 3.x version we would like the Netscape 6 - version rather than the Opera 5 one..
		defineMagicVariable.call(opera, 'op5',function () { return 0; },null);
		defineMagicVariable.call(opera, 'ns6',function () { return 1; },null);
	}


	// Generic JS library patches
			// 0, Generic JS library patches
		// Use an event listener to detect specific scripts
		opera.addEventListener( 'BeforeExternalScript', function(ev){
			match.call=replace.call=indexOf.call=toLowerCase.call=postError.call=addEventListener.call=removeEventListener.call=call;
			
			var name=ev.element.src; 
			if( !name ){ return; } // no fixes required for SCRIPT xlink:href so far..
			name=toLowerCase.call(name );// toLowerCase fixes sangjatten.se
		      if ( indexOf.call(name, 'dqm_')>-1 || indexOf.call(name, 'cbrowser_opera.js')>-1 ){ 
				// OpenCube menu
				if(fixOpenCube(name)){
					postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (OpenCube fix). See browser.js for details.');
				}
				return;
		      }else if(  indexOf.call(name, 'hm_loader')>-1  ){ 
				// HierMenus menu
				// If we apply this fix to version 6.x the menu breaks.
				// HM support recommends checking that HM_BrowserVersion is not defined
				addEventListener.call(opera, 'BeforeScript', function(ev){ 
					if( ev.element.text && ! match.call(ev.element.text, /hm_browserversion/i) ){
						fixHierMenus(name);
					}
					removeEventListener.call(opera, 'BeforeScript', arguments.callee, false);
				}, false);
				return;
		      }else if(  indexOf.call(name, 'mmenu.js')>-1  ){ 
				// Milonic menu
				fixMilonicMenu(name);
				return;
			
		      }else if(  match.call(name, /menu\d*_(com|build|var|program|compact)\.js$/)   ){ 
				// HV menu
				fixHVMenu(name);
				return;
		      }else if(  match.call(name, /coolmenus\d?.js$/)   ){ 
				// coolmenus menu
				fixCoolmenus(name);
				return;
		      }else if(  match.call(name, /udm[_-]/)  || (  match.call(name, /(sniffer|control)\.js$/)   )    ){ 
				// UDM menu
				addEventListener.call(opera, 'BeforeScript', function(ev){
					if( match.call(name, /udm[_-]/)  || indexOf.call(ev.element.text, 'UDM')>-1 || indexOf.call(ev.element.text, 'um.ov=um.ov.split(/opera[\\/ ]7./);um.ov=um.pi(um.ov[1].charAt(0));')>-1 ){
						fixUDM(name);
					}
				}, false);
				return;
		      }else if(  indexOf.call(name, 'dynapi/api/browser.js')>-1  || indexOf.call(name, 'dynlayer.js')>-1  ){
				navRestore['appName'] = navigator.appName;
				navigator.appName = 'Microsoft Internet Explorer';
				shouldRestore = true;
				postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (DynAPI fix). See browser.js for details.');
			}else if(  match.call(name, /stm(\d+|_menu).js$/)  ){
				fixSoThinkMenus();
				postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (SoThink fix). See browser.js for details.');
			}else if( indexOf.call(name, 'transmenu')>-1 ){
				fixTransmenus();
			}else if( indexOf.call(name, 'xaramenu')>-1 ){
				addPreprocessHandler( new RegExp('if\\(navigator.userAgent.indexOf\\(\'Opera\'\\)!=-1\\)\\s*NS4=1;', ''), 'if(navigator.userAgent.indexOf(\'Opera\')!=-1) IE5=1;' );
				postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (Xaramenu fix). See browser.js for details.');
			}else if(  indexOf.call(name, 'ar.atwola.com/file/adswrapper.js')>-1  ){
				// Advertising script that serves broken content
				// Bug: 179615
				addEventListener.call(opera, 'BeforeScript', function(ev){ 
					defineMagicVariable.call(opera, 'adsOld', function(){return 0}, function(){return 0});
					defineMagicVariable.call(opera, 'adsOp', function(){return false}, function(){return false});
					// for..in iterations show the refresh method, crashes script
					navigator.plugins.refresh = {description:''}
					ev.element.text = replace.call(ev.element.text, /if \(ie5&&\(db!=null\)\)\{/g, 'if(false){');
					postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (adsWrapper fix). See browser.js for details.');
					removeEventListener.call(opera, 'BeforeScript', arguments.callee, false);
				}, false);
			}else if(  indexOf.call(name, '/richtext.js')>-1  ){ // Bug 230549, bug 208097
				// Rich text editor checks for "On" where Opera and FireFox return "on". sigh. 
				addPreprocessHandler( 'designMode != "On"', 'designMode != "on"', true, function(t){indexOf.call=call;return indexOf.call(t.text, 'kevinroth.com/rte/demo.htm')>-1;} );
				postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (Rich text editor submit fix). See browser.js for details');
			}else if(indexOf.call(name, '/novell/webaccess/images/msglist.js')>-1){ // Bug 92454, workaround for NWA
				defineMagicFunction.call(opera, 'fixContentHeight',
					function(oF, oT){
						document.documentElement.clientHeight=window.innerHeight;
						oF.apply(oT, slice.call(arguments, 2));
				});
				postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (Height function fix). See browser.js for details');
			}else if( indexOf.call(ev.element.src, 'prototype.js')>-1 ){ // working around incompatibility with prototype, bug 241832
				  Array.prototype.concat = function(){
				    var array = [];
				    for(var i = 0, length = this.length; i < length; i++) array.push(this[i]);
				    for(var i = 0, length = arguments.length; i < length; i++) {
				      if(arguments[i].constructor == Array) {
					for(var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++)
					  array.push(arguments[i][j]);
				      } else {
					array.push(arguments[i]);
				      }
				    }
				    return array;
				  }
				  opera.postError('Opera has modified the JavaScript on '+ hostname+' (Prototype fix applied)');
			}
			// Creating event handler to restore any changed navigator properties
			if( shouldRestore ){
				addEventListener.call(opera, 'AfterExternalScript', 
					function(ev){
						removeEventListener.call=call;
						var prop;
						for(prop in navRestore) navigator[prop]=navRestore[prop];
						removeEventListener.call(opera, 'AfterExternalScript', arguments.callee, false);
					}
				, false);
			}
		}, false);


	if(hostname.indexOf( 'jobkorea.co.kr')>-1){			// 201252, jobkorea.co.kr font size on various elements
		addCssToDocument('.uuu a, td, A.Edu, A.ca1, A.hre  { font-size:10pt !important }');
				// 201253, jobkorea.co.kr positioning of DIV
		document.addEventListener('load', function(){addCssToDocument('body > div  { left:' + Math.floor( ( document.body.clientWidth - 1010) / 2) + 'px !important }')}, false);
				// 201259, jobkorea.co.kr table line-height
		if(href.indexOf('www.jobkorea.co.kr/Jobtimes/')>-1){
		    addCssToDocument('table table td  { line-height:10pt !important }');
		}
			if(self==top)postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (jobkorea.co.kr font size on various elements\njobkorea.co.kr positioning of DIV\njobkorea.co.kr tabl...). See browser.js for details');
	} else if(hostname.indexOf( 'joins.com')>-1){			// 212585, joins.com IE quirks fix: stockbanner position
		addCssToDocument('#stockbanner { position: absolute !important }'); // bug 212585 and 210161
				// 201410, joins.com IE quirks fix: transparent EMBED and positioning
		document.addEventListener( 'load', function( ev)  { 
			  var  elm;
		    if ( hostname.indexOf( 'blog.joins.com') > -1 )  {
		      // bug 201410
		      elm = document.getElementById( 'btnVisitor');
		      if ( elm && elm.parentNode && elm.parentNode.parentNode)  {
			elm.parentNode.parentNode.style.position = 'relative';
			elm.parentNode.parentNode.style.top = '-16px';
		      }
		      // bug 201421
		      elm = document.getElementById( 'id_show1_friend_sub');
		      if ( elm && elm.nextSibling)  {
			elm=elm.nextSibling.getElementsByTagName( 'embed')[ 0];
			if(elm){elm.wmode = 'transparent';}
		      }
		    }
		
		}, false);
			if(self==top)postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (joins.com IE quirks fix: stockbanner position\njoins.com IE quirks fix: transparent EMBED and positi...). See browser.js for details');
	} else if(hostname.indexOf( 'moneta.co.kr')!=-1){			// 219041,  moneta.co.kr relies on IE quirks for CSS positioning
		document.addEventListener( 'load', function( ev)  { 
				var  elm;
			       // Bug 219041
			       elm = document.getElementById( 'stock');
				if (elm && elm.style.position=='')  { elm.style.position = 'relative'} 
			       elm = document.getElementById( 'news');
			       if (elm  && elm.style.position=='')  { elm.style.position = 'relative'} 
		}, false);
		
			if(self==top)postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' ( moneta.co.kr relies on IE quirks for CSS positioning). See browser.js for details');
	} else if(hostname.indexOf('.yahoo.')>-1&&hostname.indexOf('mail')==-1){			// 180917, fix for eternal JS loop on My Yahoo caused by bug in their JS
		opera.defineMagicFunction( 'yg_getPageX', function(a,b,o){ var x=0;while(o){x+=o.offsetLeft;o=o.offsetParent;} return x; } );
		opera.defineMagicFunction( 'yg_getPageY', function(a,b,o){var x=0;while(o){x+=o.offsetTop;o=o.offsetParent;}return x; } );
		
				// 252519, Prevent page from focusing search field because it causes unexpected scrolling
		opera.addEventListener('AfterEventListener.load',
		function(){ try{ document.sf1.p.focus=function(){}; }catch(e){}}},false);
			if(self==top)postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (fix for eternal JS loop on My Yahoo caused by bug in their JS\nPrevent page from focusing search fie...). See browser.js for details');
	} else if(hostname.indexOf('aol.co.uk') >-1){			// 214797, AOL login hidden by IFRAME
		document.addEventListener('load', function(ev){ var i = document.getElementById('loginLayer');if( i && i.firstChild && i.firstChild.style.zIndex==-1 ){i.firstChild.style.display='none';}   }, false);
			if(self==top)postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (AOL login hidden by IFRAME). See browser.js for details');
	} else if(hostname.indexOf('bugs.co.kr')>-1){			// 207851, bugs.co.kr margins fix
		addCssToDocument('body > div { margin:0 auto !important }');
				// 201253, bugs.co.kr divMenu position fix
		addCssToDocument('#divMenu{ right: ' ( Math.floor( document.body.clientWidth / 2) - 492) + 'px !important }');
				// 207851, bugs.co.kr Conwrap margin fix
		addCssToDocument('.Conwrap  { margin:0 !important }');
				// 207851, bugs.co.kr box model fix
		addCssToDocument('#Search, #Sb, #l { box-sizing: border-box !important }');
			if(self==top)postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (bugs.co.kr margins fix\nbugs.co.kr divMenu position fix\nbugs.co.kr Conwrap margin fix\nbugs.co.kr b...). See browser.js for details');
	} else if(hostname.indexOf('chosun.com')>-1){			// 209929, chosun.com scrollarea fix
		addCssToDocument('#nscrollarea, #nscrolltxt{display: inline !important}');
				// 201267, chosun.com background position fix
		 if ( hostname.indexOf( 'morningplus.chosun.com') > -1 )  {
		    addCssToDocument('body { background-position: 0 14px !important }');
		}
			if(self==top)postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (chosun.com scrollarea fix\nchosun.com background position fix). See browser.js for details');
	} else if(hostname.indexOf('hangame.com')>-1){			// 229130, hangame.com SPANs should be inline-block
		addCssToDocument('#mlogin .login01 span {display:inline-block !important;} #rlogin .login01 span {display:inline-block !important;}');
			if(self==top)postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (hangame.com SPANs should be inline-block). See browser.js for details');
	} else if(hostname.indexOf('ipop.co.kr')>-1){			// 224076, ipop.co.kr SPAN should be inline-block
		addCssToDocument('span { display: inline-block !important }');
			if(self==top)postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (ipop.co.kr SPAN should be inline-block). See browser.js for details');
	} else if(hostname.indexOf('klm.com')>-1){			// 213449, KLM uses Gecko-specific originalTarget
		addPreprocessHandler( /if \(e\) if \(e\.originalTarget\./g, 'if (e && e.originalTarget) if (e.originalTarget.' );
			if(self==top)postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (KLM uses Gecko-specific originalTarget). See browser.js for details');
	} else if(hostname.indexOf('maybank2u.com.my')>-1){			// 249799, maybank2u, onresize event causes a refresh whenever the softkeyboard is opened
		opera.addEventListener('BeforeEvent.resize',function (e) { preventDefault.call=call;
			preventDefault.call(e);
		},false);
			if(self==top)postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (maybank2u, onresize event causes a refresh whenever the softkeyboard is opened). See browser.js for details');
	} else if(hostname.indexOf('namooya.com')>-1){			// 241286, Namooya.com main flash does not appear
		document.attachEvent=null;
			if(self==top)postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (Namooya.com main flash does not appear). See browser.js for details');
	} else if(hostname.indexOf('time.com')>-1){			// 229826, time.com script causes reload loop if UA contains "Windows CE"
		addPreprocessHandler(/navigator\.userAgent\.toLowerCase\(\)\.indexOf\(\'windows ce\'\) > -1/g, 'false');
			if(self==top)postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (time.com script causes reload loop if UA contains "Windows CE"). See browser.js for details');
	} else if(href.indexOf('http://www.opera.com/docs/browserjs/')==0){			// 0, Browser.js status and version reported on browser.js documentation page
		document.addEventListener('load',function(){if(document.getElementById('browserjs_status_message')){document.getElementById('browserjs_status_message').firstChild.data='Browser.js is enabled! The active browser.js file is '+bjsversion;} }, false);
			if(self==top)postError.call(opera, 'Opera has modified the JavaScript on '+hostname+' (Browser.js status and version reported on browser.js documentation page). See browser.js for details');
	}
})(opera);

// SIG // Begin signature block
// SIG // MIIF3gYJKoZIhvcNAQcCoIIFzzCCBcsCAQExCzAJBgUr
// SIG // DgMCGgUAMGcGCisGAQQBgjcCAQSgWTBXMDIGCisGAQQB
// SIG // gjcCAR4wJAIBAQQQEODJBs441BGiowAQS9NQkAIBAAIB
// SIG // AAIBAAIBAAIBADAhMAkGBSsOAwIaBQAEFE+Mpdhn40rn
// SIG // 3WlZkqCXP3WiQUnkoIIEHzCCAgYwggFvoAMCAQICEINl
// SIG // Gs9hJPOHQ54f9ViAq5YwDQYJKoZIhvcNAQEEBQAwHTEb
// SIG // MBkGA1UEAxMSVEhPU0hJQkEgU2hpcCBSb290MB4XDTA3
// SIG // MDExMDA5NTgxMVoXDTM5MTIzMTIzNTk1OVowEjEQMA4G
// SIG // A1UEAxMHVE9TSElCQTCBnzANBgkqhkiG9w0BAQEFAAOB
// SIG // jQAwgYkCgYEAuxatC1ZmOUHQVbRhFyTEfJ3DBKjBVROw
// SIG // gHobbkTlM4RgVxmlV9bUyJKKMsskA9IxKUwydB25yuLK
// SIG // toblR3j5OIAukrD67oayMyDydsvJArduR6Bj92csuMYR
// SIG // T/El3Yfyf04PW0C+abpgDqRf92TIvVyOlg2ZXXjOepT+
// SIG // lT0+mcECAwEAAaNSMFAwTgYDVR0BBEcwRYAQYfUcbLLn
// SIG // BpVW+danGbOaHKEfMB0xGzAZBgNVBAMTElRIT1NISUJB
// SIG // IFNoaXAgUm9vdIIQnvhMTNasS7VN9xPeFRbWizANBgkq
// SIG // hkiG9w0BAQQFAAOBgQAsRG8t70Nnokl0CZPWFdf7WbL5
// SIG // 4lR8W9TMX7NKdTlZ4lrB2lreJNR8ARnlI1rxnLedvzhb
// SIG // FX/5XRV6qvshQ/Ll/k8h2T+NkUUb1gu6rdakOxBGVXY4
// SIG // gNmbXt3+GHfYGW96uwGquR/5EfIuog0pVyBHRNCpXMcN
// SIG // 180AqH3Z+vpiyTCCAhEwggF6oAMCAQICEJ74TEzWrEu1
// SIG // TfcT3hUW1oswDQYJKoZIhvcNAQEEBQAwHTEbMBkGA1UE
// SIG // AxMSVEhPU0hJQkEgU2hpcCBSb290MB4XDTA3MDExMDA5
// SIG // NTQ1N1oXDTM5MTIzMTIzNTk1OVowHTEbMBkGA1UEAxMS
// SIG // VEhPU0hJQkEgU2hpcCBSb290MIGfMA0GCSqGSIb3DQEB
// SIG // AQUAA4GNADCBiQKBgQCzeRfjGMiy06NsYu+ZbUZznykA
// SIG // nbn58QV215VSItmSxgfH2oM1lCHPJ/QgWlT56ykkKnCZ
// SIG // bTMXG7dXggf0XEN/ouD4Xerq0u4+Tye5npf20krtH25G
// SIG // M/XMEKeijVu5TGH0VRuQRa/Gh9KykFuKYaXiRKuKyDDs
// SIG // /Cpi7im36ZuK/QIDAQABo1IwUDBOBgNVHQEERzBFgBBh
// SIG // 9RxssucGlVb51qcZs5ocoR8wHTEbMBkGA1UEAxMSVEhP
// SIG // U0hJQkEgU2hpcCBSb290ghCe+ExM1qxLtU33E94VFtaL
// SIG // MA0GCSqGSIb3DQEBBAUAA4GBAE2ZVm2KMbnvdhExQ0LP
// SIG // GD9Dq0si3dL4GB2GHCb6y1c4K5Qr8GURqKBZDNvQIFn4
// SIG // WNgc4T+9AP2nyGxS6RHitD7KbNzQXgqnc11/mLqjL8JQ
// SIG // EGKfHyiJdF9BpAuCQy1zMtSz7UqDnbfATzY6dMweDM5K
// SIG // KFK7D78ASTM7N6yXFYBWMYIBKzCCAScCAQEwMTAdMRsw
// SIG // GQYDVQQDExJUSE9TSElCQSBTaGlwIFJvb3QCEINlGs9h
// SIG // JPOHQ54f9ViAq5YwCQYFKw4DAhoFAKBSMBAGCisGAQQB
// SIG // gjcCAQwxAjAAMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3
// SIG // AgEEMCMGCSqGSIb3DQEJBDEWBBRIDag/iIJDgc6gitKx
// SIG // qCHndr5kaTANBgkqhkiG9w0BAQEFAASBgAz1Seoh3fRC
// SIG // TOifQpw0NsHnDHLxFewqrUbISUwnmxi5drLNtkmauQHK
// SIG // 30MbeRT0sUfctwS2/VOWnrde0Z2QU5w16ELsuRNhy3w8
// SIG // UsaXOO4Yu7CUkPvJtE3edBTvouSnZ1ITQHlMqgmX3DO1
// SIG // qA8x4u89Avdi+SS9ebMze5d/Rlna
// SIG // End signature block
