// ==UserScript==
// @name Orkut Fixes
// @author Moises Lima
// @version 2.4b
// @description Corrige alguns erros do Orkut
// @ujs:category general: fixes
// @ujs:published 12/12/2006
// @ujs:modified 25/11/2007 - 20:30 (Horario de Brasilia)
// @ujs:documentation http://userjs.blogspot.com/
// @ujs:download http://my.opera.com/moises-l/homes/userjs/Orkut_Fixes.js
// @include *orkut*
// @exclude http://www.orkut.com/GLogin.aspx
// ==/UserScript==
/*Agradecimentos:
Makaco (http://www.orkut.com/Profile.aspx?uid=1217194256934451100)
Terrorista (http://www.orkut.com/Profile.aspx?uid=12483240608838327133)
Rodrigo Lacerda (http://www.orkut.com/Profile.aspx?uid=1707700121110059969)
Mikey (http://www.orkut.com/Profile.aspx?uid=481413702403392734)
Igor Thiago (http://www.orkut.com/Profile.aspx?uid=17254219529407273277)
Luiz Fernando (http://my.opera.com/luiz%20fernando)
João Eiras (http://my.opera.com/xErath/blog/)
*/
/*
***************************** Esse script pode ser utilizado livremente.************************************
*/
if( location.hostname.indexOf('orkut.com') != -1 &&
location.href.toLowerCase().indexOf('about.aspx') == -1 &&
location.hostname.toLowerCase().indexOf('blog.orkut.com') == -1 &&
location.href.toLowerCase().indexOf('glogin.aspx') == -1
){
/*-----------------------------------------------------------------------------------------------------------------
Função de atualização do script Feita por Rodrigo Lacerda(http://www.orkut.com/Profile.aspx?uid=1707700121110059969) [OPCIONAL]
-------------------------------------------------------------------------------------------------------------------*/
var version = "2.4b";
var novaVersao = version;
var isBadTime =false;
var UserJS_file;
function getNewVersion() {
var actualization = document.createElement("script");
actualization.type = "text/javascript";
actualization.src = "http://files.myopera.com/moises-l/userjs/Orkut_Fixes_ver.js?rdm=" + Math.random();
document.getElementsByTagName("head")[0].appendChild(actualization);
}
function checkVersion(){
if(isBadTime)document.getElementsByTagName('b')[0].innerHTML+="<span style='color:red;'> \u0097\u008f</span>";
if (version != novaVersao) {
var tb=document.createElement("span")
tb.innerHTML = "<b><a style='color:red;' href='" + UserJS_file + "?rdm=" + Math.random() +UserJS_file+ "'title='Clique aqui para atualizar sua vers\xE3o.'><blink>Orkut Fixes Nova Vers\xe3o "+novaVersao+"</blink></a></b>";
document.getElementsByTagName('b')[0].parentNode.appendChild(tb)
}
}
(function( opera ){
// ---------------------------------------- INICIO DAS CONFIGURAÇÕES ---------------------------------------- //
//Deseja checar por novas versões do script automaticamente?
var checkPorNovaVersao = 1; //0 = nao 1 = sim (Padrao: 1)
//Deseja retirar as propagandas do Google?
var hideAdvertising=0; //0 = nao 1 = sim (Padrao: 1)
//Coloca o campo de seleção de quantidade de scraps visto por pagina em todas as paginas de scraps.
var changePageSize =1; //0 = nao 1 = sim (Padrao: 1)
//Coloca o antigo link para a ver a rede de amigos.
var FriendsNetLink =1; //0 = nao 1 = sim (Padrao: 1)
//Pula o formulario de confirmação pra participar de uma comunidade.
var AutoJoinCmm =0; //0 = nao 1 = sim (Padrao: 0)
//Coloca uma opção de deletar todos os recados de unica vez.
var XKrapKiller =1; //0 = nao 1 = sim (Padrao: 1)
//Corrige os titulos de paginas em comunidades.
var rightTitle =1; //0 = nao 1 = sim (Padrao: 1)
//Colocar foto das comunidades e avatar dos perfis como favicon nas abas? Criado por Igor Thiago Faria[http://canal-69.blogspot.com/]
var Icon_LoL =1; //0 = nao 1 = sim (Padrao: 1)
//Adiciona o serviço de feeds RSS OrkutFeed[http://orkutfeed.789mb.com/] para os tópicos das comunidades
var orkutfeed =1; //0 = nao 1 = sim (Padrao: 1)
//Adiciona novos atalhos na caixa de pesquisas.
var UniversalSearchEnc =1; //0 = nao 1 = sim (Padrao: 1)
//Melhora o cachê de imagens
var cacheImgs =1; //0 = nao 1 = sim (Padrao: 1)
//Prolonga a duração de um eventos, Sugerido Por Fernando[http://www.orkut.com/Profile.aspx?uid=3168617979778308096]
var newDropDownYear =1; //0 = nao 1 = sim (Padrao: 1)
//Aumenta largura e altura das caixas de texto.
var textboxBody =1; //0 = nao 1 = sim (Padrao: 1)
//Deseja retirar o mecanismo de proteção de fotos dos profiles?
var truePhotoProfile=2; //0 = nao 1 = sim 2 = ajustar a largura (semelhante ao profile do Orkut Guy uid=3504732672376623859) (Padrao: 2)
//Visualizar o conteudo de albums bloqueados?
var viewBlockedAlbum =1; //0 = nao 1 = sim (Padrao: 1)
// ------------------------------------------ FIM DAS CONFIGURAÇÕES ------------------------------------------ //
//opera.postError('Orkut Fixes Executando na pagina \n '+location);
var loc = location.href.toLowerCase();
var cont=0;
var isEnglish=(document.cookie.indexOf('LCL=en') >-1 );
var exclude_list =/(^http(s)?:\/\/((img\d|images3).orkut.com\/|www.googleadservices.com\/|ssl.google-analytics.com\/|files.myopera.com\/moises-l\/userjs\/Orkut_Fixes_ver.js|video.google.com\/video\/|www.google-analytics.com\/|devfiles\.myopera\.com\/(.*?)\/devConsole.js|photos.www.orkut.com\/lh\/|picasaweb.google.com\/|www\.google\.com\/ig\/ig\.js|www\.google\.com\/ig\/ifpc\.js))/gi;
/*-----------------------------------------------------------------------------------------------------------------
Utility functions (Hallvord R. M. Steen http://my.opera.com/hallvors/info/ )
-------------------------------------------------------------------------------------------------------------------*/
function addCssToDocument(cssText,mediaStr,doc){
doc=doc||document;
mediaStr=mediaStr||'all';
var styles=addCssToDocument.styleObj;
if(!styles){
var head=doc.getElementsByTagName("head")[0];
if(!head){
var docEl=doc.getElementsByTagName("html")[0]||doc.documentElement;
if(!docEl){
//doc.addEventListener(opera&&opera.version()>=9?'DOMContentLoaded':'load',function(){
addCssToDocument(cssText,mediaStr,doc);
//},false);
return;
}
head=doc.createElement("head");
if(head)docEl.insertBefore(head,docEl.firstChild);
else head=docEl;
}
styles=addCssToDocument.styleObj=doc.createElement("style");
styles.setAttribute("type","text/css");
styles.appendChild(doc.createTextNode(''));
head.appendChild(styles)
}
styles.firstChild.nodeValue+='@media '+mediaStr+'{'+cssText+'}\n';
return true;
}
function $_GET(v){
if(location.search){
var QueryString = location.search.replace(/^\?/gi,"").split("&");
for( var i = 0, query; query = QueryString[i]; i++ ) {
var Qrs=query.split("=");
var qN =Qrs[0];
var qV =Qrs[1];
if(v==qN){
return qV;
}
}
}
return null;
}
function changeIcon(src){
var newIcon=document.createElement('link');
newIcon.href=src;
newIcon.rel="SHORTCUT ICON";
newIcon.type="image/x-icon";
document.getElementsByTagName('head')[0].appendChild(newIcon);
}
function findPos(obj) {
var curleft = curtop = 0;
if (obj.offsetParent) {
curleft = obj.offsetLeft
curtop = obj.offsetTop
while (obj = obj.offsetParent) {
curleft += obj.offsetLeft
curtop += obj.offsetTop
}
}
return [curleft,curtop];
}
function createElementFX(prop,obj){
var newElement=document.createElement(prop["tag"])
for (var x in prop){
newElement.setAttribute(x,prop[x])
}
obj.appendChild(newElement);
return newElement;
}
HTMLElement.prototype.createElementFX=function(details){
return new createElementFX(details,this);
}
addEventListener('DOMContentLoaded',function(){
/*-----------------------------------------------------------------------------------------------------------------
Visualizar o conteudo de albums bloqueados [OPCIONAL]
-------------------------------------------------------------------------------------------------------------------*/
if(viewBlockedAlbum){
if(loc.indexOf('album.aspx') >-1){
if(document.getElementById("mboxfull")==null){
_clearStatusMsg();
_addStatusMsg('info','Este conte\xFAdo foi definido como particular pelo dono do perfil.<br />'+
'<img src="http://img1.orkut.com/img/spin.gif" /><b> Orkut Fixes '+version+'</b> Carregando album...'
);
var ajax = new XMLHttpRequest();
ajax.open("GET","http://www.orkut.com/FriendAdd.aspx?uid="+$_GET("uid"),true);
ajax.onreadystatechange=function(){
if (ajax.readyState==4 ) {
if (ajax.status == 200) {
var gid=ajax.responseText.match(/([0-9]+)\.jpg"?\)/i);
if(gid)gid=gid[1];
var photoCount=0;
var html="";
var Table=document.createElement("div");
for(i=1;i<=100;i++){
html+='<img src="http://img3.orkut.com/images/milieu/'+i+'/0/'+gid+'.jpg" />';
}
Table.innerHTML=html;
var Footer=document.getElementById("footer")
Footer.parentNode.insertBefore(Table,Footer);
_clearStatusMsg();
_addStatusMsg('info','Este conte\xFAdo foi definido como particular pelo dono do perfil.<br />'+
'Gerado por <b> Orkut Fixes '+version+'</b>'
);
}
}
}
ajax.send(null);
}
}
}
/*-----------------------------------------------------------------------------------------------------------------
Retira o mecanismo de protação de fotos dos profiles.[OPCIONAL]
-------------------------------------------------------------------------------------------------------------------*/
if(truePhotoProfile){
var navPanelTop=document.selectSingleNode('//div[@class="userinfo"]/div[contains(@style, ".orkut.com/images/medium")]');
if(navPanelTop){
addCssToDocument('.userinfo div{width: 100% !important;height: 100% !important;background-image:none!important;}')
var ProfileImg=navPanelTop.getElementsByTagName("img")[0];
ProfileImg.src=navPanelTop.style.backgroundImage.match(/https?:\/\/img\d\.orkut\.com\/images\/medium\/.+\.jpg/i);
if(truePhotoProfile!=2)ProfileImg.removeAttribute("width");
ProfileImg.removeAttribute("height");
}
}
/*-----------------------------------------------------------------------------------------------------------------
Corrige problema na troca de avatar do perfil
-------------------------------------------------------------------------------------------------------------------*/
if(loc.indexOf('editsummary.aspx?m=1') >-1){
if(document.getElementById("cropProfilePhotoDiv") != null){
document.getElementById("cropProfilePhotoDiv").style.display="block";
}
}
/*-----------------------------------------------------------------------------------------------------------------
problema na visualizações de recados
-------------------------------------------------------------------------------------------------------------------*/
if(loc.indexOf('scrapbook.asp') >-1){
if(document.getElementById("footer") == null){
_clearStatusMsg();
_addStatusMsg('info','<img src="http://img1.orkut.com/img/spin.gif" /><b> Orkut Fixes '+version+'</b> Carregando Recados...'+
' <a href="http://www.orkut.com/CommMsgs.aspx?cmm=1092327&tid=2566564042574250073" target="_blank" title="Clique aqui para obter ajuda"><img src="http://img1.orkut.com/img/castro/i_question.gif" /></a>'
);
var ajax = new XMLHttpRequest();
ajax.open("GET",location.href,true);
ajax.onreadystatechange=function(){
if (ajax.readyState==4 ) {
if (ajax.status == 200) {
_clearStatusMsg();
document.write(ajax.responseText.replace(/name="scrap_extn_iframe" src=""\/>/gi,'name="scrap_extn_iframe" src=""></iframe>'))
}
}
}
ajax.send(null);
}
}
/*-----------------------------------------------------------------------------------------------------------------
Aumenta largura e altura das caixas de texto. [Opcional]
-------------------------------------------------------------------------------------------------------------------*/
if(textboxBody){
addCssToDocument('textarea{width:100%;min-height:200px;}');
}
/*-----------------------------------------------------------------------------------------------------------------
Images em cachê
-------------------------------------------------------------------------------------------------------------------*/
if(cacheImgs){
for( var i = 0, img; img=document.images[i]; i++ ) {
img.src=img.src.replace(/img(\d)\.orkut/gi,"img3.orkut");
//img.alt=img.title;
}
}
/*-----------------------------------------------------------------------------------------------------------------
Coloca foto das comunidades e profiles como favicon nas abas. Criado por Igor Thiago Faria[http://canal-69.blogspot.com/] [OPCIONAL]
-------------------------------------------------------------------------------------------------------------------*/
if(Icon_LoL){
var docHTML=document.body.innerHTML;
var iconHref=docHTML.match(/\/images\/medium\/\d+\/\d+\.jpg/i);
if(iconHref != null){
changeIcon("http://img3.orkut.com"+iconHref);
}else if(/\/images\/mittel\/\d+\/\d+\.jpg/i.test(docHTML)){
changeIcon("http://img3.orkut.com"+docHTML.match(/\/images\/mittel\/\d+\/\d+\.jpg/i));
}
}
/*-----------------------------------------------------------------------------------------------------------------
Adiciona novos atalhos na caixa de pesquisas.
-------------------------------------------------------------------------------------------------------------------*/
if(UniversalSearchEnc){
var UniversalSearch=document.forms[0];
if(UniversalSearch){
var eleQ=UniversalSearch.elements["q"];
eleQ.addEventListener('click',function () {
var SearchDiv=document.getElementById('SearchDiv');
if(SearchDiv){
SearchDiv.style.display="block"
SearchDiv.style.left=""+findPos(UniversalSearch)[0]+"px"
}else{
var SearchDiv=document.createElement("div");
SearchDiv.id="SearchDiv";
SearchDiv.style="background-color:#d9e6f7; border:1px solid #9bc4db;width:180px;text-align:left;padding:5px;display:block;position:absolute;left:"+(findPos(UniversalSearch)[0]-50)+"px; top:"+(findPos(UniversalSearch)[1]+20)+"px;";
SearchDiv.innerHTML=''
+'<label><input name="lang" type="checkbox" value="all" checked onclick="this.value=((this.checked)\'all\':0);" />'
+' Pesquisar em todos os idiomas </label><br/>'
+'<label><input name="sType" type="radio" value="0" /> Todos os resultados </label><br/>'
+'<label><input name="sType" type="radio" value="1" /> Usu\xE1rios </label><br/>'
+'<label><input name="sType" type="radio" value="2" /> Comunidades </label><br/>'
+'<label><input name="sType" type="radio" value="3" /> T\xF3picos </label><br/>'
+'<hr/>'
+'<label><input name="sType" type="radio" value="7" /> Meus amigos </label><br/>'
if(loc.indexOf('cmm=') >-1){
SearchDiv.innerHTML+=''
+'<hr/>'
+'<label><input name="sType" type="radio" value="4" /> Pesquisar este f\xF3rum </label><br/>'
+'<label><input name="sType" type="radio" value="5" /> Pesquisar membros </label><br/>'
+'<label><input name="sType" type="radio" value="6" /> Amigos nesta comunidade </label><br/>'
}
SearchDiv.addEventListener('click',function () {
eleQ.focus();
},false);
//UniversalSearch.appendChild(SearchDiv);
document.body.appendChild(SearchDiv);
UniversalSearch.addEventListener("submit",function(e){
UniversalSearch.appendChild(SearchDiv);
for (var i = 0, formElement; formElement = this.elements[i]; i++) {
if(formElement.type=="radio" && formElement.name=="sType"){
if(formElement.checked)var sType=parseFloat(formElement.value);
}
}
if(sType <= 3){
var searchFor=["A","U","C","F"];
UniversalSearch.createElementFX({tag: 'input',name: 'searchFor',value: searchFor[sType],type: 'hidden'});
}
else if(sType > 3 && sType < 7){
UniversalSearch.action=((sType==4)?"/CommTopics.aspx":"/CommMembers.aspx");
UniversalSearch.createElementFX({tag: 'input',name: 'cmm',value:$_GET("cmm") ,type: 'hidden'});
UniversalSearch.createElementFX({tag: 'input',name: 'tab',value:((sType==5)?'0':'1') ,type: 'hidden'});
}
if(sType == 7){
UniversalSearch.action="/Friends.aspx";
UniversalSearch.createElementFX({tag: 'input',name: 'show',value:'search' ,type: 'hidden'});
eleQ.name="searchQuery";
}
},false)
}
},false)
document.addEventListener('dblclick',function () {
SearchDiv.style.display="none";
},false);
}
}
if(loc.indexOf('cmm=') >-1){
if(loc.indexOf('commeventpost.asp') >-1){
/*-----------------------------------------------------------------------------------------------------------------
Prolonga a duração de um eventos, Sugerido Por Fernando[http://www.orkut.com/Profile.aspx?uid=3168617979778308096]
-------------------------------------------------------------------------------------------------------------------*/
if(newDropDownYear){
if(document.getElementById("dropdownYear") !=null){
var dropdownYear=document.getElementById("dropdownYear");
for (i=9;i<=37;i++){
var Oyear="20"+((i.toString().length>1)?i:"0"+i);
dropdownYear.appendChild(new Option(Oyear, Oyear, true));
}
}
}
}
/*-----------------------------------------------------------------------------------------------------------------
Pula o formulario de confirmação pra participar de uma comunidade.[OPCIONAL] Sugerido Pelo Makako
-------------------------------------------------------------------------------------------------------------------*/
if(AutoJoinCmm) {
if( loc.indexOf('communityjoin.aspx') >-1) {
_submitForm(document.getElementById("f"), 'join', '')
}
if(loc.indexOf('communityunjoin.aspx') >-1 ) {
_submitForm(document.getElementById("form"), 'unjoin', '')
}
}
/*-----------------------------------------------------------------------------------------------------------------
Adiciona feeds
-------------------------------------------------------------------------------------------------------------------*/
if(orkutfeed){
var cmmName=document.selectSingleNode('//div[@id="lbox"]/table[@class="module"]/tbody/tr/td[@class="boxmid"]/a[@class="userbutton"][contains(@href,"/CommMembers.aspx?cmm")]');
if(cmmName){
var Comm=$_GET("cmm");
var navList=document.createElement("a");
navList.className="userbutton";
navList.href="http://orkutfeed.789mb.com/?"+Comm;
navList.title="Feeds";
navList.target="_blank";
navList.innerHTML='<img src="http://img1.orkut.com/img/i_feed_small.gif" height="14" width="14" />Feeds </a>';
cmmName.parentNode.insertBefore(navList,cmmName);
var feedLink=document.createElement('link');
feedLink.href="http://orkutfeed.789mb.com/?c="+Comm;
feedLink.rel="alternate";
feedLink.type="application/rss+xml";
feedLink.title=document.title;
document.getElementsByTagName('head')[0].appendChild(feedLink);
}
}
/*-----------------------------------------------------------------------------------------------------------------
Corrige os titulos de paginas em comunidades. [OPCIONAL]
-------------------------------------------------------------------------------------------------------------------*/
if(rightTitle){
function getCMMName(){
if(loc.match(/\/Community\.aspx\?cmm=\d+$/gi)){return document.title;};
var page=document.title.split(/- (.+)$/gi)[1];
var cmmName=document.selectSingleNode('//div[@id="lbox"]/table[@class="module"]/tbody/tr/td[@class="boxmid"]/div[@class="userinfo"]/p[@class="username"]/a/b/text()');
if(cmmName){
return cmmName.data+((loc.indexOf('commmsgs.aspx?') >-1)?" - "+document.getElementsByTagName("h1")[0].innerText:" - "+page);
}
return document.title;
}
document.title=getCMMName();
}
}
if(loc.indexOf('scrapbook.asp') >-1){
/*-----------------------------------------------------------------------------------------------------------------
Bloqueia links com texto visível difente do endereço real, nos scrapbooks.
-------------------------------------------------------------------------------------------------------------------*/
var scraps=document.evaluate('//table[@class="module"]/tbody/tr/td[@class="boxmidlrg"]/div[@class="listitemchk"]/div[@class="para"]',document.body, null,7, null);
for( var i = 0, scrap; scrap =scraps.snapshotItem(i); i++ ) {
for( var j = 0, link; link =scrap.getElementsByTagName("a")[j]; j++ ) {
if(link.href != link.outerText ){//&& (link.target=="_blank")
link.setAttribute("end",link.href);
link.href="javascript:void(0);";
link.onclick=function(){
if(confirm("Orkut Fixes "+version+"\nVocê clicou num link suspeito... \n" +
"Click em Cancelar, se deseja continuar "
+"\n\n\nEndere\U00E7o do link : \n"+this.getAttribute("end")
+'\n\n\nTexto vis\U00EDvel : \n'+this.outerText
)){
return false;
}else{
this.href=this.getAttribute("end");
}
}
}
}
}
/*-----------------------------------------------------------------------------------------------------------------
Coloca uma opção de deletar todos os recados de unica vez.[OPCIONAL]
-------------------------------------------------------------------------------------------------------------------*/
if(XKrapKiller){
var spangrabtn=document.selectSingleNode('//table[@class="module"]/tbody/tr/td[@class="boxmidlrg"]/form[@name="scrapsForm"]/div/span[@class="grabtn"]');
if(spangrabtn){
function Pages(source,direction){
var direction=(direction)?direction:0
var temp=document.createElement("div");
temp.innerHTML=source;
var navs=document.evaluate("//a[contains(@href, 'nst=')]",temp, null,7, null);
if(navs.snapshotItem(0) !=null){
for( var i = 0, nav; nav =navs.snapshotItem(i); i++ ) {
if(nav.innerHTML.match(/anterior|previous/i) && direction){
return nav.href;
}else if(nav.innerHTML.match(/pr.xima|next/i) && !direction){
return nav.href;
}
};
}else{
var navs=document.evaluate("//a[contains(@href, 'pno')]",temp, null,7, null);
if(navs.snapshotItem(0) !=null){
for( var i = 0, nav; nav =navs.snapshotItem(i); i++ ) {
if(nav.innerHTML.match(/</i) && direction){
return nav.href;
}else if(nav.innerHTML.match(/>/i) && !direction){
return nav.href;
}
};
}
}
return false;
}
function XKrapKillerReq(URL) {
var ajax = new XMLHttpRequest();
ajax.open("GET",URL);
ajax.onreadystatechange=function(){
if (ajax.readyState==4 ) {
if (ajax.status == 200) {
var temp=document.createElement("div");
temp.innerHTML=this.responseText;
var scrapsForm=document.evaluate("//form[@name= 'scrapsForm']",temp, null,7, null);
tempscrapsForm+=scrapsForm.snapshotItem(0).innerHTML;
_clearStatusMsg();
_addStatusMsg('info','<b>Orkut Fixes '+version+' + X.KrapKiller Turbo 1.1</b> <a href="http://ctrl-copy.blogspot.com/" >Rodrigo Lacerda</a>');
_addStatusMsg('info','<img src="http://img1.orkut.com/img/spin.gif" >'
+'<b>Carregando P\xE1gina</b> '+tempscrapsPgs++);
XKrapKillerReq(Pages(this.responseText));
} else {
document.scrapsForm.innerHTML+=tempscrapsForm;
_clearStatusMsg();
_addStatusMsg('info','<b>Deletando recados</b>');
var scrapKeys=document.evaluate("//input[contains(@name, 'scrapKeys')]",document, null,7, null);
for( var i = 0, scrapKey; scrapKey =scrapKeys.snapshotItem(i); i++ ) {
scrapKey.setAttribute("name","scrapKeys_"+i);
};
_checkAll(document.scrapsForm, 'scrapKeys', true);
_submitForm(document.scrapsForm, 'delete', '');
}
}
}
ajax.send(null);
}
var newspangrabtn=document.createElement("span");
newspangrabtn.className="grabtn";
newspangrabtn.innerHTML='<a href="javascript:void(0);" class="btn">excluir todos os recados</a>'
newspangrabtn.addEventListener("click",function(e){
if(confirm('Deseja realmente deletar todos os seus recados? \n aviso, esta \xE9 uma opera\xE7\xE3o sem volta!')){
tempscrapsPgs=0;
tempscrapsForm="";
_addStatusMsg('info','<b>Orkut Fixes '+version+' + X.KrapKiller Turbo 1.1</b> <a href="http://ctrl-copy.blogspot.com/" >Rodrigo Lacerda</a>');
_addStatusMsg('info','<img src="http://img393.imageshack.us/img393/8894/orkutcarregando1zx5.gif" >'
+'<b>Carregando P\xE1gina</b>');
XKrapKillerReq(location.href+"&na=&nst=&nid=&pageSize=30");
document.scrapsForm.style="display:none;";
}
},false)
var newspanbtnboxr=document.createElement("span");
newspanbtnboxr.className="btnboxr";
newspanbtnboxr.innerHTML='<img src="http://img1.orkut.com/img/b.gif" alt="" height="1" width="5">'
spangrabtn.parentNode.appendChild(newspangrabtn)
spangrabtn.parentNode.appendChild(newspanbtnboxr)
}
}
/*-----------------------------------------------------------------------------------------------------------------
Coloca o campo de seleção de quantidade de scraps visto por pagina em todas as paginas de scraps. [OPCIONAL]
-------------------------------------------------------------------------------------------------------------------*/
if(changePageSize){
if(document.getElementById("actionMenu") ==null){
var pageSize=$_GET("pageSize");
var pageLinksHTML='<div style="float: right;">'
+'<select id="actionMenu" onchange="changePageSize(this.options[this.selectedIndex].value)">'
+'<option value="10" '+((pageSize=="10")?'selected':'')+'>Ver 10 recados</option>'
+'<option value="20" '+((pageSize=="20")?'selected':'')+'>Ver 20 recados</option>'
+'<option value="30" '+((pageSize=="30")?'selected':'')+'>Ver 30 recados</option>'
+'</select></div>';
var pageLinks=document.selectSingleNode('//table[@class="module"]/tbody/tr/td[@class="boxmidlrg"]/div/span[@class="rf"]/a[contains(@href, "nst")]/../..');
if(pageLinks){
var divactionMenu=document.createElement("div");
divactionMenu.style="padding: 5px;padding-bottom: 30px;";
divactionMenu.innerHTML=pageLinksHTML;
pageLinks.parentNode.insertBefore(divactionMenu,pageLinks);
}
}
}
}
var OFlinkf=document.selectSingleNode('//div[@id="footer"]/div[@class="footer_l"]/div[@class="foottxt"]');
if(OFlinkf){
OFlinkf.innerHTML+=' | <a target="_blank" href="http://my.opera.com/moises-l/blog/orkut-fixes" title="Orkut Fixes '+version+'">Orkut Fixes '+version+'</a>'
}
/*-----------------------------------------------------------------------------------------------------------------
Coloca o antigo link para a ver a rede de amigos.[OPCIONAL]
-------------------------------------------------------------------------------------------------------------------*/
/*
if(FriendsNetLink && loc.indexOf('profile.asp') >-1 || loc.indexOf('home.asp') >-1){
var FriendsListLink=document.selectSingleNode('//table[@class="module"]/tbody/tr/td[@class="boxmid"]/div[@class="parabtns"]/a[contains(@href, "FriendsList.aspx")]');
if(FriendsListLink){
newBtnHTML='<a href="/FriendsNet.aspx'+FriendsListLink.search+'">ver rede</a>';
FriendsListLink.parentNode.innerHTML+=newBtnHTML;
}
}
*/
/*-----------------------------------------------------------------------------------------------------------------
Retira as propagandas do google. [OPCIONAL]
-------------------------------------------------------------------------------------------------------------------*/
//http://www.orkut.com/AdsIframe.aspx?key=216253464&id=8766995198320662298&im=2&url=http%3A%2F%2Fwww.orkut.com%2FCommunity.aspx%3Fcmm%3D1092327&ab=true
if(hideAdvertising){
if(document.getElementById("liframe")!=null){
var liframe = document.getElementById("liframe");
liframe.parentNode.removeChild(liframe);
}
}
},false);
opera.addEventListener('BeforeScript',function (e) {
/*if(e.element.getAttribute('src')=="http://www.google-analytics.com/urchin.js" ||e.element.text.match("urchinTracker")) {
e.preventDefault();
}*/
/*-----------------------------------------------------------------------------------------------------------------
Bugs no scrap, onde se postam flash com endereço pra deslogar a pessoa do Orkut.
-------------------------------------------------------------------------------------------------------------------*/
if(e.element.text.match(/LanguageReset.aspx|GLogin\.aspx(.*?)cmd=logout/gi)){
if(confirm("Orkut Fixes "+version+"\n Um script suspeito esta tentando te deslogar do Orkut \n" +
"Deseja parar a execu\U00E7\U00E3o deste script? \n"+
"Click em Ok para Parar a execu\U00E7\U00E3o deste script ('Recomendado') \n"+
"ou Click em Cancelar para continuar \n\n Source :\n"+
unescape(e.element.text))){
e.preventDefault();
};
}
if(e.element.getAttribute('src') && e.element.getAttribute('src').match(exclude_list))return;
/*-----------------------------------------------------------------------------------------------------------------
Detecta a presença de script via xss tentando acessar dados dos cookies
-------------------------------------------------------------------------------------------------------------------*/
document.Orkut_Fixes="Orkut_Fixes";
if(e.element.text.match(/cookie/gi)){
document.cookie = "TZ=" + (new Date()).getTimezoneOffset();
e.element.text = e.element.text.replace(/cookie/,'Orkut_Fixes');
//e.preventDefault();
/*
e.element.text = e.element.text.replace(/URL(.+)cookie/,'URL$1Orkut_Fixes');
if(e.element.text.match(/cookie(.+)/gi)[1])cont++
if(cont>0){
if(confirm("Orkut Fixes "+version+"\n Um script suspeito esta tentando acessar informa\U00E7\U00E3os dos cookies \n" +
"Deseja parar a execu\U00E7\U00E3o deste script? \n"+
"Click em Ok para Parar a execu\U00E7\U00E3o deste script ('Recomendado') \n"+
"ou Click em Cancelar para continuar \n\n Source :\n"+
unescape(e.element.text.match(/cookie(.+)/gi)))){
e.preventDefault();
};
getNewVersion();
checkVersion();
};
cont++
*/
};
},false);
/*-----------------------------------------------------------------------------------------------------------------
Da um focus na janela quando a mesma tem um captcha pra se digitar.
-------------------------------------------------------------------------------------------------------------------*/
if (loc.indexOf("scrapbook.asp") >-1 || loc.indexOf("commmsgpost.asp") >-1){
opera.addEventListener('BeforeEvent.load',function (e) {
if( e.event.target instanceof HTMLImageElement ) {
if(document.getElementById("captchaTextbox") !=null){
setInterval("window.focus();document.getElementById(\"captchaTextbox\").focus()",5000);
}
}
},false);
};
document.addEventListener('load',function () {
if( new Date().getMinutes() > 57 && checkPorNovaVersao){
getNewVersion();
checkVersion();
}
/*-----------------------------------------------------------------------------------------------------------------
Inclusão de o botão Sugerido pelo Makako para deletar tópicos criado pelo usuario
-------------------------------------------------------------------------------------------------------------------*/
if(loc.indexOf('commmsgs.aspx') >-1) {
var isMed=document.selectSingleNode('//table[@class="module"]/tbody/tr/td[@class="boxmidlrg"]/div[@class="parabtns"]/form');
if(!isMed){
var deleteEntireTopic=document.selectSingleNode('//table[@class="module"]/tbody/tr/td[@class="boxmidlrg"]/div[@class="parabtns"]/span[@class="grabtn"]/a[@class="btn"][contains(@href, "/CommMsgPost.aspx")]/../..');
var deleteEntireTopicbtn=document.createElement("span");
deleteEntireTopicbtn.className="grabtn";
deleteEntireTopicbtn.innerHTML='<a href="javascript:void(0);" class="btn" onclick="_submitForm(document.forms[1], \'delete_entire_topic\', \'confirmDelete()\');">'+((isEnglish )? 'delete topic': ' excluir t\u00f3pico')+'</a>'
var deleteEntireTopicboxr=document.createElement("span");
deleteEntireTopicboxr.className="btnboxr";
deleteEntireTopicboxr.innerHTML='<img src="http://img1.orkut.com/img/b.gif" alt="" height="1" width="5">'
deleteEntireTopic.appendChild(deleteEntireTopicbtn)
deleteEntireTopic.appendChild(deleteEntireTopicboxr)
}
}
/*-----------------------------------------------------------------------------------------------------------------
Correção para mostra o texto de um link invisivel
-------------------------------------------------------------------------------------------------------------------*/
for( var i = 0, link; link =document.links[i]; i++ ) {
if(link.offsetWidth==0 && link.href != "javascript:void(0);" && link.innerHTML.length <6 && !link.search.match(/\?q=/gi)){
link.appendChild(document.createTextNode("Orkut Fixes"));
link.style.color=(link.href.match(/=$/))?"red":"green";
}
if(link.protocol=="https:"){
link.protocol="http:";
link.href=link.href.replace(/^https/gi,"http");//Ultima versão do Opera
}
}
},false);
/*-----------------------------------------------------------------------------------------------------------------
Corrige a falha no orkut onde se é possivel executar um script externo para roubo de cookies
-------------------------------------------------------------------------------------------------------------------*/
opera.addEventListener('BeforeExternalScript',function (e) {
if((e.element.getAttribute('src').match(/^http/) || e.element.getAttribute('src').match(/data/)) && !e.element.getAttribute('src').match(exclude_list) ) {
alert("Orkut Fixes "+version+"\n Removido script que rouba cookie \n" + e.element.getAttribute('src'))
e.preventDefault();
getNewVersion();
checkVersion();
}
},false);
/*-----------------------------------------------------------------------------------------------------------------
Intercepta Javascript:url que contem codigos que podem ser maliciosos
-------------------------------------------------------------------------------------------------------------------*/
opera.addEventListener('BeforeJavascriptURL',function (e) {
if(unescape(e.source).match(/cookie|script|src|iframe|eval/gi)) {
var intAnswer=confirm("Orkut Fixes "+version+"\n Voc\U00EA executou um bookmarklets que parece ser malicioso \n" +
"Deseja parar a execu\U00E7\U00E3o deste script? \n"+
"Click em Ok para Parar a execu\U00E7\U00E3o deste script ('Recomendado') \n"+
"ou Click em Cancelar para continuar \n\n Source :\n"+
e.source)
if(intAnswer){
e.source=alert("Script interrompido!");
}
}
},false);
/* The End */
})( window.opera );
}
/* Changelog:
2.4b(Luciano Faustino)
Correção do problema de fuso-horario causado pelo script
2.4(Moises Lima)
Visualiza o conteudo de albums bloqueados [OPCIONAL]
2.3d(Moises Lima)
Corrige problema na troca de avatar do perfil
problema na visualizações de recados
2.3(Moises Lima)
Bloqueia links com texto visível difente do endereço real, nos scrapbooks.
2.2b(Moises Lima)
Bugs no scrap, onde se postam flash com endereço para deslogar do Orkut.
2.2(Moises Lima)
Modificações para o novo layout
0.1 (Moises Lima)
Primeira versão do script.
*/ |