﻿// ==UserScript==// @name         deviantUNANNOY// @namespace    net.moeffju.dA// @description  Makes deviantART bearable for non-subscribers
// @include      http://*.deviantart.com/*
// ==/UserScript==

// © 2005-2006 Matthias Bauer <http://moeffju.deviantart.com/>

xpath = function (query, contextNode, resultType) {
  if (null == contextNode) contextNode = document;
  if (null == resultType) resultType = XPathResult.ORDERED_NODE_SNAPSHOT_TYPE;
  return document.evaluate(query, contextNode, null, resultType, null);
};

xpath1 = function (query, contextNode) {
  return xpath(query, contextNode, XPathResult.FIRST_ORDERED_NODE_TYPE).singleNodeValue;
};

removeNode = function (node) {
  if (node && node.parentNode) node.parentNode.removeChild(node);
};

markNode = function (node) {
  if (node) node.style.border = '1px solid red !important';
  if (node.parentNode) node.parentNode.style.border = '1px solid blue !important';
};

window.addEventListener('load', function() {
  //alert('load on '+document.location.href);
  
  var inter = xpath1("//a[@class='continue']");
  if (inter) {
    document.location.href = inter.href;
    return;
  }
  
  if (document.location.href.match(/^http:\/\/ads\.deviantart\.com\//)) {
    var ee = document.getElementsByTagName('iframe');
    for (var i = ee.length - 1; i >= 0; i--) {
      removeNode(ee[i]);
    }
    return;
  }
  
  var x = document.getElementById('sponsors');
  if (x) x.parentNode.removeChild(x);
  
  var ee = document.getElementsByTagName('iframe');
  for (var i = ee.length - 1; i >= 0; i--) {
    if (   ee[i].name == 'google_ads_frame'
        || ee[i].id == ee[i].name && ee[i].id.match(/^a/)) {
      removeNode(ee[i].parentNode.parentNode);
    }
  }
  
  var notice = xpath("//div[@class='section']", null, XPathResult.ORDERED_NODE_ITERATOR_TYPE);
  var x;
  while (x = notice.iterateNext()) {
    if (x.textContent.match(/deviantART *Notice/)) {
      removeNode(x);
    }
  }
}, false);
