// ==UserScript==
// @author         Arendedwinter
// @name           Take control
// @version        1.5.2
// @date           08-Jan-2008
// @description    Stop sites from disabling right click, printing, and text copy
// @include        *
// ==/UserScript==

(function(){

function TakeControl(doc){
	doc.onmousedown = null;
	doc.onmouseup = null;
	doc.ondragstart = null;
	doc.oncontextmenu = null;
	doc.onselectstart = null;
	
	doc.onBeforePrint = null;
	doc.onAfterPrint = null;
	
	doc.onselectstart = null; //This can stop certain scripts from working properly (eg text drag scripts)
	doc.ondragstart = null;
	
	doc.onclick = null;
	
	doc.body.onmousedown = null;
	doc.body.onmouseup = null;
	doc.body.ondragstart = null;
	doc.body.oncontextmenu = null;
	doc.body.onselectstart = null;
	
	doc.body.onBeforePrint = null;
	doc.body.onAfterPrint = null;
	
	doc.body.onselectstart = null; //This can stop certain scripts from working properly (eg text drag scripts)
	doc.body.ondragstart = null;
	
	doc.body.onclick = null;
	
	//Add to this list if you want.
	var elements = new Array(
	'html',
	'head',
	'body',
	'b',
	'br',
	'span',
	'img',
	'form',
	'input',
	'textarea',
	'a',
	'button',
	'div',
	'table',
	'tr',
	'td',
	'frame',
	'style'
	);
	
	for (i = 0; i < elements.length; i++){
		current = document.getElementsByTagName(elements[i]);
		
		for (n = 0; n < current.length; n++){
			current[n].onmousedown = null;
			current[n].onmouseup = null;
			current[n].ondragstart = null;
			current[n].oncontextmenu = null;
			current[n].onselectstart = null;
			
			current[n].onBeforePrint = null;
			current[n].onAfterPrint = null;
			
			current[n].onselectstart = null;
			current[n].ondragstart = null;
			
			//Woops, don't want to disable buttons!
			if (!elements[i] == 'button'){
				current[n].onclick = null;
			}
			
			if (elements[i] == 'style' && current[n].media == 'print'){
				current[n].media = 'you_can_now_print'; //Don't change this to blank or the page will dissapear!
			}
		}
	}
}

if (frames.length){
   for (j=0; j < frames.length; ++j){
      TakeControl(frames[j].document);
   }
}else{
	TakeControl(document);
}

})(); 
