Advertisement
Guest User

Untitled

a guest
Jul 11th, 2014
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.27 KB | None | 0 0
  1. // ==UserScript==
  2. // @name Adition: Everywhere: FastAccess-Tool
  3. // @namespace http://userscripts.org/scripts/review/47608
  4. // @description öffnet einen Layer in Adition mit Hackpad-Verweisen zu Dropbox-Zusatzinformationen
  5.  
  6. // @version 1.1.5
  7.  
  8. // @include http://login.adition.com*
  9. // @include http://www.onlineagenten.de/start.htm*
  10. // @include http://login.adition.com*
  11. // @exclude http://login.adition.com/reports/gethtmlreport*
  12. // @exclude http://login.adition.com/bannerpreview*
  13. // @copyright JoeSimmons
  14. // @license Creative Commons Attribution-Noncommercial 3.0 United States License
  15. // @grant none
  16. // ==/UserScript==
  17.  
  18.  
  19. // ----------------- Configuration ------------------ //
  20. var box_style = 'z-index:9999; position:fixed; border:0px ridge #CCCCCC; background:#ffffff; color:#000; cursor:move;'
  21. var box_style_maximized = box_style + 'left:50px; padding:12px; width:92%; height:555px; text-align:center; z-index:9999; ';
  22. var box_style_minimized = box_style + 'display:none; padding:0; width:4px; height:4px; z-index:9999; ';
  23. var iframe_url = "https://advertising_alliance.hackpad.com/ep/pad/static/ma7DWEiPSc1";
  24.  
  25. var link_words = {
  26. 'SearchForDemo WordingOne' : 'http://www.test.de/',
  27. 'SearchForDemoWordingTwo' : 'http://www.testing.de/'
  28. // ... one word : url, pair per line separated by comma
  29. };
  30.  
  31. // -------------------------------------------------- //
  32.  
  33.  
  34.  
  35. // my special public domain xpath function ;)
  36. function forEachMatch(path, f, root) {
  37. var el;
  38. var root = (root == null) ? document : root;
  39. var matches = document.evaluate(path, root, null,
  40. XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
  41. for (var i = 0; i < matches.snapshotLength; i++) {
  42. if(f(matches.snapshotItem(i), i))
  43. break;
  44. }
  45. }
  46.  
  47. (function() {
  48.  
  49. var dm = 0; // delta movement
  50. var minimized = false; // box state
  51.  
  52. var dragObj = new Object(), x, y;
  53. dragObj.zIndex = 0;
  54. var div = document.createElement('div');
  55. div.setAttribute('id', 'draggable_box');
  56. document.body.insertBefore(div, document.body.firstChild);
  57.  
  58. // create the inner frame
  59. var framethis = document.createElement("iframe");
  60. framethis.src = iframe_url;
  61. framethis.setAttribute('id','classesFrame');
  62. framethis.setAttribute('style', 'position:absolute; width:98%; height:550px; frameborder:0px;top:0px;left:1%; top:10px; z-index:9999; ');
  63.  
  64. div.appendChild(framethis);
  65.  
  66. // this sets the initial position relative to the browser window
  67. dragObj.cursorStartX = window.innerWidth - 60;
  68. dragObj.cursorStartY = 30;
  69.  
  70. minimize();
  71.  
  72. function dragStart(e) {
  73. dragObj.elNode = e.target;
  74. if (dragObj.elNode.nodeType == 3) dragObj.elNode = dragObj.elNode.parentNode;
  75. dragObj.cursorStartX = e.clientX + window.scrollX;
  76. dragObj.cursorStartY = e.clientY + window.scrollY;
  77. dragObj.elStartLeft = parseInt(dragObj.elNode.style.left, 10);
  78. dragObj.elStartTop = parseInt(dragObj.elNode.style.top, 10);
  79. dragObj.elNode.style.zIndex = ++dragObj.zIndex;
  80. dm = 0;
  81. document.addEventListener("mousemove", dragGo, true);
  82. document.addEventListener("mouseup", dragStop, true);
  83. e.preventDefault();
  84. }
  85.  
  86. function dragGo(e) {
  87. e.preventDefault();
  88. var x = e.clientX + window.scrollX,
  89. y = e.clientY + window.scrollY;
  90. dm += Math.abs(x)*4000 + Math.abs(y); // register any movement
  91. dragObj.elNode.style.left = (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";
  92. dragObj.elNode.style.top = (dragObj.elStartTop + y - dragObj.cursorStartY) + "px";
  93. }
  94.  
  95. function dragStop(e) {
  96. document.removeEventListener("mousemove", dragGo, true);
  97. document.removeEventListener("mouseup", dragStop, true);
  98.  
  99. if (dm <= 0) { // mouse up but there was no movement, so it must be a click
  100. if (minimized)
  101. restore();
  102. else
  103. minimize();
  104. }
  105. }
  106.  
  107. function restore() {
  108. div.setAttribute('style', 'top:50px; left:50px; -moz-border-radius:6px; '+(box_style_maximized?box_style_maximized:''));
  109. minimized = false;
  110. framethis.style.display = "block";
  111. }
  112.  
  113. function minimize() {
  114. div.setAttribute('style', 'top:'+(dragObj.cursorStartY-2)+'px; left:'+(dragObj.cursorStartX-2)+'px; -moz-border-radius:6px; '+(box_style_minimized?box_style_minimized:''));
  115. minimized = true;
  116. framethis.style.display = "none";
  117. }
  118.  
  119. function loadIFrame(url) {
  120. framethis.src = url;
  121. }
  122.  
  123. div.addEventListener('mousedown', function(e){dragStart(e);}, false);
  124.  
  125. // http://commons.oreilly.com/wiki/index.php/Greasemonkey_Hacks/Search#Highlight_Search_Terms
  126. function linkWords(node, word, parent) {
  127. if (node.hasChildNodes) {
  128. for (var hi_cn = 0; hi_cn<node.childNodes.length; hi_cn++) {
  129. var n = node.childNodes[hi_cn];
  130. if (!(n.getAttribute && n.getAttribute("data-tag") == "loadiframe"))
  131. hi_cn+=linkWords(n, word, node);
  132. }
  133. }
  134.  
  135. if (node.nodeType == Node.TEXT_NODE) {
  136. var nv = node.nodeValue;
  137. var ni = nv.indexOf(word[0]);
  138. if (ni != -1) {
  139. var before = document.createTextNode(nv.substr(0,ni));
  140. var after = document.createTextNode(nv.substr(ni+(word[0]).length));
  141.  
  142. var anchor = document.createElement('a');
  143. anchor.href = word[1];
  144. anchor.innerHTML = word[0];
  145. anchor.setAttribute("data-tag", "loadiframe");
  146. anchor.onclick = function(e)
  147. {
  148. e.preventDefault();
  149. restore();
  150. loadIFrame(this.href);
  151. };
  152.  
  153. parent.insertBefore(before, node);
  154. parent.insertBefore(anchor, node);
  155. parent.insertBefore(after, node);
  156. parent.removeChild(node);
  157.  
  158. return 1;
  159. }
  160.  
  161. }
  162.  
  163. return 0;
  164.  
  165. }
  166.  
  167. var words = [];
  168. for (var w in link_words) {
  169. linkWords(document.body, [w, link_words[w]]);
  170. }
  171.  
  172.  
  173. forEachMatch('//div[@id="userinfo-left"]',
  174. function(b){
  175. b.addEventListener(
  176. "click",
  177. function(e)
  178. {
  179. e.preventDefault();
  180. restore();
  181. loadIFrame("https://advertising_alliance.hackpad.com/ep/pad/static/ma7DWEiPSc1");
  182. },
  183. true);
  184. });
  185.  
  186.  
  187. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement