Corrigir Vivo OnLine

By n5zhkyln Last update Nov 21, 2006 — Installed 224 times.
// ==UserScript==
// @name        Corrigir Vivo OnLine
// @description Corrige o site Vivo OnLine para poder funcionar no Firefox.
// @include     https://servicos.vivo.com.br/VOLWeb/*
// ==/UserScript==

(function() {
	var scripts = document.getElementsByTagName("head")[0].getElementsByTagName("script");
	for(i = 0; i < scripts.length; i++) {
		if(scripts[i].innerHTML == "" && scripts[i].src != "") {
			var j = i;
			GM_xmlhttpRequest({
				method: "GET",
				url: scripts[j].src,
				onload: function(responseDetails) {
					fixScript(scripts[j], responseDetails.responseText);
				}
			});
		}
		else {
			fixScript(scripts[i], scripts[i].innerHTML);
		}
	}

	var links = document.getElementsByTagName("head")[0].getElementsByTagName("link");
	for(i = 0; i < links.length; i++) {
		if(links[i].rel == "stylesheet") {
			var j = i;
			GM_xmlhttpRequest({
				method: "GET",
				url: links[j].href,
				onload: function(responseDetails) {
					fixStyle(links[j], responseDetails.responseText);
				}
			});
		}
	}
})();

function fixScript(currentScript, currentInnerHTML) {
	var newInnerHTML = currentInnerHTML.replace(/document\[getNetuiTagName\(\"frm/g, "document.forms[getNetuiTagName(\"frm");
	newInnerHTML = newInnerHTML.replace(/document\.frm/g, "document.forms.frm");
	newInnerHTML = newInnerHTML.replace(/document\[getNetuiTagName\(formulario, this\)\]/g, "document.forms[getNetuiTagName(formulario, this)]");
	if(newInnerHTML != currentInnerHTML) {
		var newScript = document.createElement("script");
		newScript.setAttribute("type", "text/javascript");
		newScript.innerHTML = newInnerHTML;
		document.getElementsByTagName("head")[0].replaceChild(newScript, currentScript);
	}
}

function fixStyle(currentLink, currentInnerHTML) {
	var newInnerHTML = currentInnerHTML.replace(/cursor: HAND/g, "cursor: pointer");
	newInnerHTML = newInnerHTML.replace(/width: 145x/g, "width: 145px");
	if(newInnerHTML != currentInnerHTML) {
		var newStyle = document.createElement("style");
		newStyle.setAttribute("type", "text/css");
		newStyle.innerHTML = newInnerHTML;
		document.getElementsByTagName("head")[0].appendChild(newStyle);
		document.getElementsByTagName("head")[0].removeChild(currentLink);
	}
}