Swyter Tweaks for Seriespepito

Puts direct links in the seriespepito.com site.

// ==UserScript==
// @name          Swyter Tweaks for Seriespepito
// @description   Puts direct links in the seriespepito.com site.
// @match         http://*.seriespepito.com/*
// @match         http://*.peliculaspepito.com/*
// This one is for the cross-site XHR requests without CORS:
// @match         http://*.enlacespepito.com/*
// @grant         GM_xmlhttpRequest
// @version       2014.04.06
// @author        Swyter
// @namespace https://greasyfork.org/users/4813
// ==/UserScript==

/*
 * DOMParser HTML extension
 * 2012-09-04
 * 
 * By Eli Grey, http://eligrey.com
 * Public domain.
 * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
 */

/*! @source https://gist.github.com/1129031 */
/*global document, DOMParser*/

(function(DOMParser) {
	"use strict";

	var
	  DOMParser_proto = DOMParser.prototype
	, real_parseFromString = DOMParser_proto.parseFromString
	;

	// Firefox/Opera/IE throw errors on unsupported types
	try {
		// WebKit returns null on unsupported types
		if ((new DOMParser).parseFromString("", "text/html")) {
			// text/html parsing is natively supported
			return;
		}
	} catch (ex) {}

	DOMParser_proto.parseFromString = function(markup, type) {
		if (/^\s*text\/html\s*(?:;|$)/i.test(type)) {
			var
			  doc = document.implementation.createHTMLDocument("")
			;
	      		if (markup.toLowerCase().indexOf('<!doctype') > -1) {
        			doc.documentElement.innerHTML = markup;
      			}
      			else {
        			doc.body.innerHTML = markup;
      			}
			return doc;
		} else {
			return real_parseFromString.apply(this, arguments);
		}
	};
}(DOMParser));


if (document.domain.match(/enlacespepito.com$/))
{
  throw "stop it, you!";
}

document.body.addEventListener("click", function(e)
{
  if( (e.target.classList.contains("enlace_link")
   ||  e.target.classList.contains("btn_link"))
   && !e.target.classList.contains("direct"))
  {
    e.preventDefault();
    GM_xmlhttpRequest({
      method: "GET",
      url: e.target.href,
      onload: function(o)
      {
        o.responseXML = new DOMParser().parseFromString(o.responseText, "text/html");
        
        e.target.href = o.responseXML.querySelector(".enlace_link").href;
        e.target.classList.add("direct");
        
        window.open(e.target.href);
      }
    });
  }
});