// ==UserScript==
// @name        letitbit.net helper for Opera 10 +
// @version     2.36
// @date        2011-11-26
// @author      Mike Samokhvalov <mikivanch@gmail.com>
// @download    http://www.puzzleclub.ru/files/letitbit_net.js
//
// @include     http://letitbit.net/*
// @include     http://*.letitbit.net/*
// @include     http://vip-file.com/download*
// @include     http://*.vip-file.com/download*
// @include     http://vip-file.com/?download*
// @include     http://*.vip-file.com/?download*
// @include     http://*.vip-file.com/link.php*
// @include     http://www.dnswatch.info/*
// @include     http://ping.dtools.net/*
// ==/UserScript==

(function(){
  var attempts = 10;
  var keystr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
  var showLinkInInput = true;
  
  var services = [
    'http://www.dnswatch.info/dns/dnslookup?la=en&host={domain}&type=A&submit=Resolve',
    //'http://ping.dtools.net/index.php?seed=21&host={domain}&count=1&submit=Ping%21'
  ];
  
  var style = {
    panel: 'color: #fff; background-color: #669523; border: 1px solid #4f7a16; font-size: 14pt !important; padding: 5px 0; margin-bottom: 10px; text-align: center;',
    a: 'color: #fff'
  };
  
  var cdm_dns = {
    hash: '#ujs_letitbit_net_helper_dns',
    msgPref: 'ujs_letitbit_net_helper_dns',
    frameId: 'ujs_letitbit_net_helper_frame_dns'
  };
  
  var cdm_link = {
    hash: '#ujs_letitbit_net_helper_link',
    msgPref: 'ujs_letitbit_net_helper_link',
    frameId: 'ujs_letitbit_net_helper_frame_link'
  };
  
  (function(){function j(a,b,c){window.postMessage?c.postMessage(a,"*"):b.postMessage(a,"*")}function k(a,b,c){var d=document.getElementById(c);d&&d.parentNode.removeChild(d);d=document.createElement("iframe");d.src=a+b;d.id=c;d.width=0;d.height=0;d.frameBorder="no";d.scrolling="no";d.setAttribute("ujs_external_unblocked","1",!1);document.documentElement.appendChild(d)}function l(a,b){var c="";a&&(c='<a href="'+a+'" style="'+style.a+'">Download</a>',showLinkInInput&&(c+=' &nbsp; <input type="text" value="'+
a+'" readonly="1" size="48" onfocus="if(this.value){this.select();}">'));b&&(c='<span style="'+style.a+'">'+b+"</span>");if(c){var d=document.createElement("div");d.setAttribute("style",style.panel,!1);d.innerHTML=c;document.body.insertBefore(d,document.body.firstChild)}}function n(a,b,c,d,e,h,f,i){var g=new XMLHttpRequest;if(g){f=f?f:navigator.userAgent;g.open(c?c:e?"POST":"GET",a,!0);g.setRequestHeader("User-Agent",f);d&&g.setRequestHeader("Referer",d);h&&g.setRequestHeader("Cookie",h);e&&(g.setRequestHeader("Content-type",
"application/x-www-form-urlencoded"),g.setRequestHeader("Content-Length",e.length));if(i)for(a=0;a<i.length;a++)g.setRequestHeader(i[a][0],i[a][1]);g.onreadystatechange=function(){4==g.readyState&&b(g)};4!=g.readyState&&(e?g.send(e):g.send())}}var e="";opera.addEventListener("BeforeExternalScript",function(a){var b=a.element.getAttribute("src",!1);b&&-1!=b.search(/^http:\/\//i)&&-1==b.search(/http:\/\/((\w\.)*letitbit\.net(:\d+)?)\//i)&&a.preventDefault()},!1);if(top!=self)if(0==location.hash.indexOf(cdm_dns.hash))document.addEventListener("DOMContentLoaded",
function(){if(document.body){var a="",b;b=location.hostname;if(b.match(/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}/)){var c=b.split("."),d=c.length;b=2==d?b:c[d-2]+"."+c[d-1]}switch(b){case "dnswatch.info":if((b=document.querySelectorAll(".searchpath"))&&0<b.length)for(c=0;c<b.length;c++)if(d=b[c].innerText?b[c].innerText:b[c].textContent)(d=d.match(/a record found:\s*(\d+\.\d+\.\d+\.\d+)/i))&&1<d.length&&(a=d[1]);break;case "dtools.net":a=(a=document.body.innerHTML.match(/ping\s*[\w\.\-]+\s*\((\d+\.\d+\.\d+\.\d+)\)/i))&&
1<a.length?a[1]:""}a=cdm_dns.msgPref+"\n"+encodeURIComponent(a);j(a,window.parent.document,window.parent)}},!1);else{if(0==location.hash.indexOf(cdm_link.hash)){var o=location.href.replace(/#.+$/,""),h=0,m=function(){if(!(0>h))if(h>attempts)j(cdm_link.msgPref+"\n",window.parent.document,window.parent);else{var a=o.replace(/_\%s/,"_"+h);h++;n(a,function(b){400>b.status&&b.getResponseHeader("Content-Disposition")?(h=-100,b=cdm_link.msgPref+"\n"+encodeURIComponent(a),j(b,window.parent.document,window.parent)):
m()},"HEAD")}};m()}}else(function(a){"function"==typeof window.opera.version&&10<=window.opera.version()?window.addEventListener("message",a,!1):document.addEventListener("message",a,!1)})(function(a){if(a.data)if(0==a.data.indexOf(cdm_dns.msgPref)){a=a.data.split("\n");if(0==a.length)return!1;a[0]==cdm_dns.msgPref&&(1<a.length&&((ip=decodeURIComponent(a[1]))&&e&&(e=e.replace(/^(https?:\/\/)[^\/]+/i,"$1"+ip)),e&&l(e)),(a=document.getElementById(cdm_dns.frameId))&&a.parentNode.removeChild(a))}else if(0==
a.data.indexOf(cdm_link.msgPref)){a=a.data.split("\n");if(0==a.length)return!1;if(a[0]==cdm_link.msgPref){if(1<a.length&&a[1]){var b=decodeURIComponent(a[1]);if(b&&(l(b),services&&0<services.length&&(a=b.match(/^http:\/\/([^\/]+)/i))&&1<a.length&&-1==a[1].search(/^\d+\.\d+\.\d+\.\d+/)))e=b,b=Math.random()*(new Date).getTime(),b=Math.round(b)%services.length,k(services[b].replace("{domain}",a[1]),cdm_dns.hash,cdm_dns.frameId)}else{if(-1<e.search(/^http:\/\/\w+\.letitbit\.net\//i)){e=e.replace(/\.letitbit\.net\//i,
".vip-file.com/");k(e,cdm_link.hash,cdm_link.frameId);return}l(null,"Link not found");for(var a=["dvifree","ifree_form","d3_form"],b=null,c=0;c<a.length&&!(b=document.getElementById(a[c]));c++);b&&("FORM"!=b.tagName&&(b=b.querySelector("form")),"FORM"==b.tagName&&b.submit())}(a=document.getElementById(cdm_link.frameId))&&a.parentNode.removeChild(a)}}}),document.addEventListener("DOMContentLoaded",function(){if(-1!=location.href.search(/^http:\/\/(www\.)?letitbit\.net\/download\/.+\.html$/i)){var a=
document.getElementById("ifree_form");a&&("FORM"!=a.tagName&&(a=a.querySelector("form")),"FORM"==a.tagName&&a.submit())}else if(-1!=location.href.search(/^http:\/\/(www\.)?(vip-file\.com|letitbit\.net)\/downloadl\//i))for(var b=0;b<document.forms.length;b++)a=document.forms[b],a.action&&-1!=a.action.search(/\/download4\.php$/i)&&a.submit();else if(-1!=location.href.search(/^http:\/\/(\w+\.)?letitbit\.net\/(?:download4\.php$|download\.php\?.*uid=)/i)){var c=document.querySelector('form input[name="md5crypt"]');
if(c&&(c=c.value,!(-1<c.search(/[^\w\+\/\=]/)))){for(var a="",d,h,j,f,i,b=0,c=c.replace(/[^A-Za-z0-9\+\/\=]/g,"");b<c.length;)d=keystr.indexOf(c.charAt(b++)),h=keystr.indexOf(c.charAt(b++)),f=keystr.indexOf(c.charAt(b++)),i=keystr.indexOf(c.charAt(b++)),d=d<<2|h>>4,h=(h&15)<<4|f>>2,j=(f&3)<<6|i,a+=String.fromCharCode(d),64!=f&&(a+=String.fromCharCode(h)),64!=i&&(a+=String.fromCharCode(j));c=a.split("|");!(4>c.length)&&-1!==c[0].search(/^http:\/\/r\w+\.(letitbit\.net|vip-file\.com)\/download\w+\//i)&&
(c[0]=c[0].replace(/^(http:\/\/[^\/]+\/download\w+\/).*$/i,"$1"),a=c[0]+"let",b=new Date,f=b.getTime(),f+=6E4*(b.getTimezoneOffset()+180),b=new Date(f),f=b.getDate().toString(),1==f.length&&(f="0"+f),b=b.getHours().toString(),1==b.length&&(b="0"+b),e=a+(f+b)+"/"+c[2]+"_%s/"+c[3],e=e.replace(/\/(download\w+\/)/i,"/s$1"),k(e,cdm_link.hash,cdm_link.frameId))}}},!1)})();
})();
