- // ==UserScript==
- // @name Url_Cleaner
- // @namespace https://userscripts.org/scripts/show/somewhere
- // @author I don't Know who he or she is, but I need it
- // @description Clean Url
- // @include http*://*
- // @version 0.0.1.20140628222827
- // ==/UserScript==
-
- (function() {
-
- urlCleaner = function() {
- /* Function: decode ROT-13 string */
- //+ Jonas Raoni Soares Silva
- //@ http://jsfromhell.com/string/rot13 [rev. #1]
- String.prototype.rot13 = function() {
- return this.replace(/[a-zA-Z]/g, function(c){
- return String.fromCharCode((c <= "Z" ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26);
- });
- };
-
- /* Based on above prototype, decode ROT-1 */
- /* All chars that are not preceded with an exclamation mark are rotated by 1 */
- String.prototype.rot1 = function() {
- return this.replace(/[^!=\-&_]/g, function(c){
- return String.fromCharCode(c.charCodeAt(0) - 1);
- }).replace(/(![=\-&_Y]|[^!]-)/g, function(c){
- /* Note about this part: "bcd!-234" is "abc-123" but "bcd-234" is "abc,123" */
- /* !Y is Z */
- if (c.charAt(0) == "!")
- return (c.charAt(1)=="Y") ? "Z" : c.charAt(1);
- else
- return c.charAt(0) + String.fromCharCode(c.charCodeAt(1) - 1);
- });
- };
-
-
- var reTraffic = /(protraffic|clicksagent|greatdemosite|evrotraff|fpctraffic2|trafficholder|trafficroup|g-traffic|refer\.ccbill|trafficshop)\.(com|net)/g;
-
- var urlCleaner = function() {
- var pattern = {
- "order": "huUTiIQVk4x2BMgt6G9LYPjKpWJDqw8a0AHl7CEsndSRz5obX3eryFOvm1NZcf",
- "a": "apGPHevTgzFoNbrwhEqAY1JZCkdcIsDO2X9fK6MVx8tRQBU3LWj75nyu4S0mil", // aLW8
- "b": "bvH0PCOAJxTKukNzUgE92In643sReq7ZMrw8LVyohjtplDYiWX5SFfcamBGQ1d", // bWXj
- "c": "csgBXVNJmfDuSPt9KlE6ZCa3TH7hnqLo8AWxrUGj5Oi41kb2YwvRQeFdpMyz0I", // cYwO
- "d": "dxAJqfvXWwn0PLkBGj4F1ycb9oiOUpgSTtRsEhZmr6YlQHu3aeK8DN75zIM2VC", // dae6
- "e": "ezK4Dp2mHY9cWZuEsf37oFSa5xMnkCbP8lJUQdgq16iw0VLBNIvGtXjThAyOrR", // eNI6
- "f": "f1JWH2tonLAQxhXSCmTMa39sNv0YiVzFPudypZrB7ljIbwGRkq6gO84KeDcUE5", // fkql
- "g": "gsEPJKLu85X3yvHBtWTZOMIariD6Np7FRGxlQ1mfkjdncqCowbAVe94S2YUzh0", // gwbj
- "i": "i52jJrhAnDImC8F4x9lWPgYLEOUsN6q7TSkKf0Mu1ywzQoeXtpcvdaHVRbG3ZB", // itpy
- "j": "jYPwv2O0qFQb5ZiEn8d6fIJUzGa1N9M73CTtHXmkWS4AyxcpLRDguBrolVsehK", // jLRS
- "k": "ksABZth0aR9UNj1crl3wJ5TiyqPbzQgpx67DFvCEmfo2endLXSVOYHuIGKWM48", // kXSf
- "l": "lnNDQJ3XEseuq0a6z4ZPO1M9fBA2hbSUpCvHrKTgidRGmFtLoy5IWw7VcjkYx8", // loyd
- "m": "mhFHoN1Jrtc5TWzZRlQwduvD9n3k624LX70gKiYABMeVfGOCj8xSaqypIUsPbE", // mj8M
- "n": "ncP9I1Mrx0okmNZvlDfT6zt3hdOWKYjQa8XSbEGse4ygFqiUA2JuCLp5R7BwVH", // nA24
- "o": "omPbXaE2hc76F1sfS5puzM8ygtYHiZkCLIWNQT0enqOvKUxB9rj4RVwAdJlDG3", // o9rq
- "p": "psSBAJrNDk4PcbXhY8ET9zF53IoQKxwvfMtm0ea1ZURud7L62yGlqjOnCHWVig", // p2yU
- "q": "q2dv1myOTiVhEH5alpMnQr0SP68zBe3gLA7o9IZNkUwjJWDuFcXtfRbGYsK4Cx", // qFcU
- "r": "rDdA5yEKz6eQmoZWbc7PgsIpBNFHOlnMjLfXT8x0RGUqYvu1Swt3ai2kh4CV9J", // rSwG
- "s": "sX2Pc5qalA6RWYhFS1w0UTDEbnBp4odHQJkImrGvy3uZOLxKgefMNCV7z9ji8t", // sge3
- "t": "tNSLF4fe1owQnpy6aUH3bAOmiMdjshlvV9rkIT0BzGEDgPZ8R7WcKqJY25xuXC", // tR7G
- "u": "ucdy0L3eN6xqsbD7S8JUkj5QhP4grF2fOI9imZltCATzVpEnBWowav1YGMKHXR", // uBWA
- "v": "vWtBkEI9NPX41M7yCKspDFVUzSqTecAw0m5JnuQ3djiHOZrfhoLgYRl2ba6G8x", // vhoj
- "w": "wfsVBkyjhUXARZL4xeHlSgYrcP6uQmaKo9EWv21iMz078t3D5qFJOCNnTIdbpG", // w5qz
- "x": "xPG1ObRq6E0TogFNBpwijmCdesh8AtXS3MHZDQrYa5f9Jz2WU4vcyKI7klVunL", // xU45
- "y": "ygUleV0C9xYNvGOKFWsjkqfPmt6hH2TZJuRniDrL4cI87z1d3wXBbSEaM5AQop", // y3wc
- "z": "zXZb7ILU10Pi8mhpltcosn3WVMBxujCQFKHASqJYONkaEG9DT4d6wfRegrv5y2", // zT4N
- "A": "AIQljrOW7b9scw6dg2KvNqiF8BME4ftZDPmkXzuVxYHCeSJG31TLy0RaUnoph5", // A31Y
- "B": "Baw9VCNHODbhk42yixnolmvGTqRXt35MPrjISJEWY7f6cQzKdF0UugAZ18pLse", // BdF7
- "C": "C7YB3je1z4EPToOvgxKhyA2a5wVkDnNMHLc8GuWqSJmifU6d9l0rsbQXIZtFRp", // C9lJ
- "D": "DdiGEY8P9eIHnbmFSZkgaXQAhovW3TjruflN2y7BL4MtOJzxpqU60wRK1scC5V", // Dpq4
- "E": "EHAfiIU5L0BxtWznkT7CcP3GJ1Y4KZVb26Xoed8jyraqRuvQwhsmS9FNlOpDMg", // Ewhr
- "F": "FNU3p7aBRVrOshZJyjl6deMK2YzgTbi1P0W4nqmLHktS9cvAGxCwuQIX58oDfE", // FGxk
- "G": "GEY59tKgZPsDiTMmJp0cOfeQRrzVal2SxNIW36kBCj7LU8y14ndHAqvuhboFwX", // G4nj
- "H": "HLA9XJKOdi8v5B0mochZuqa2Eygr7ejU1YDfPbQnWRzxwNtTlsSpFk6CV3G4MI", // HlsR
- "I": "IktWmzfGnBs1vDRLQPaHVMCZKdgYXESNFh52x3A4pw07c9uoqej8OlU6TryJib", // Iqew
- "J": "JAdMYTBIRaueX3kS6HCE4FVhg1Lrl0y8Uno7p5iqWjfmGQvtzsxZDcw9KNPb2O", // Jzsj
- "K": "KLHzE8kmT9qgPvRGp7welFQD5BuVnjr64o2fxYCt3dsIMiyObhScN1XZA0UWJa", // Kbhd
- "L": "LWavE6ZCy579IkqjnQrJ3eUXs1hxgADPwldfNV4cYtiHzmuGRS0Bb2op8FKMOT", // LRSt
- "M": "Mw5iEexyU7VW2BRTKmlcvOou3PLXkpZ0sjnGHdrIDfJY48zQtNq6h91SgAaCFb", // MtNf
- "N": "Nuz2gT8xV5re9jRwKsJWA4pBbSctM7Xy0hlFvqI1nYod6mQCOPUEZ3iGaHLkfD", // NOPY
- "O": "O9dfiPmZbUFBJYC5z4qxtgrj8R7DMeQSy2uoIVXaNvAK1cTwGsl6WnL0E3pkhH", // OGsv
- "P": "PQJumeWLd9nx8jokz6sMc2N05hSfRqZOTAYCVXKaGDU3ti7pgIrHFywEB4bl1v", // PgID
- "Q": "QCe6L8lWS1soiMKOyvUA5ZfB7EDbRzhwJcYItHnFrdkGuV3ap92NmT40xqgjXP", // Qp9d
- "R": "R7B2Chd4kDvc9PKF5tG6HETz8SgufeVnLU3jWZbqoMxiJ1arNlyXpswOQ0IYmA", // RNlM
- "S": "SeDMCPfdo9Ig72uaWzN3kGLp4QBTxFnUA5bOcysqtwh6YVX8vZli1KRJEjHmr0", // SvZw
- "T": "T0KxhcaPZLOleJWAmvXYSEC1RnI93Mdyip8tuNQVqg7frk6BGbs2owFzHj5UD4", // TGbg
- "U": "USKyOztEqVLIRB4km8xis6wWDcXb973nCTeZFNGufg25vJAd1lM0jhaPYHQorp", // U1lg
- "V": "VDt7LwiYFRPZzlqGBm4AK5IuOeS1dWUsCyaMkx3cf68pNbQh2TJo0vEXngjrH9", // V2T6
- "W": "W6CXhu9ylrjpwc7iKe2bFgMtOJSLZsaqHBdP81IT5NfvmxRUAn3YGD4zQoV0Ek", // WAnN
- "X": "X6nGBOqp5ulFhZUzetEcbdNL87S24IQPm3RCADMg9vYwfojsxHKJTayk0rWi1V", // XxHv
- "Y": "YekFo4xREVdpN85Gc3gPJlBf9XHuWizyCnjKm6MD1AST7st0rOqwhZL2aIQvUb", // YrOA
- "Z": "Z4bHQr1hgXncI2FMu0dBzERlm6kxsJqSpL8OjNvV39WGoiwPKY5tfTA7eUyCDa", // ZKY9
- "1": "160WTmRqnyJe49dEfMi2UHDYpcVaz7ObA8QXj3NhGxsw5KBgrvklCZISouFPLt", // 1rvx
- "2": "2kXelCYR4zNiLH8m3UZ1Pg7Kjp9qTfWbcr5D6AvsBhVtInGuwyMS0FdoQxaOEJ", // 2wyh
- "3": "3f10UaWhlriVXgbQqRvKBECwcFykxIzs67mPGHSMoDp845LAJut9YOnNZej2Td", // 3JuD
- "4": "48ztHaU3M0uensEJLpcCwTjq7Wr9OiQ2ADPvhfYx5Bb1VRFoy6mSXlkNKGdgIZ", // 4y6B
- "5": "5uE2L8NMbrdCIsvVKkJYo963PpjBqnF7tDQm4xc1ZShwUWRXeH0fAilyaTGOgz", // 5eHS
- "6": "6WVolOMb3GPhz9riDyXFkZgBJIvEQq8Kma5Lsxc0pfeUwHjS7TtRunCdNA14Y2", // 67Tf
- "7": "7P2msG1BioQwUkTu0VLbYcOve6nrZ8KdpaylxWqMgNH5h3DAICFXtj4RSfJ9zE", // 7ICN
- "8": "8GcezXwSlkg1mhHyCIjNTidvZqAJptfF4KRVEoLsWQ6bDuMaB2U359OP7nY0rx", // 8B2Q
- "9": "9LqPF0eyOXsSazcZMAhgCEY2wpU3Ho8BvQlG5N1nuWi6VbRKJkrT4Dfmtxd7jI", // 9JkW
- "0": "0uJz6VMKTegcGXoBI3iaHP9rZ5qswb4WUxDvCytdnQS8k1jYNf7LOmEhFl2RpA" // 0NfQ
- }
- var chr = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
- var pad = [ 96, 48, 46, 53, 93, 96, 49, 47, 96, 95, 93, 95, 93, 50, 50, 94, 52, 50, 45, 49, 96, 44, 93, 49, 48, 98, 47, 96, 93, 46, 94, 98, 53, 47, 98, 95, 49, 95, 93, 49 ];
- var ord = "0123456789abcdefghijklmnopqrstuvwxyz";
-
- this.fixUrl = function(url) {
- data = {
- originalUrl: url,
- debugData: [],
- urls: []
- };
-
- // Bizarre fixes
- url = url.toString().replace(/%(s=[^%&]|link=pics|p=0)/g, "").replace(/(=Http|\*\*http)/g, "=http").replace(/\/\*\*\*\/$/, "");
-
- // unescape (urls can be escaped multiple times)
- while (/%u[a-fA-F0-9]{4}/g.test(url) || /%[a-fA-F0-9]{2}/g.test(url)) {
- url = unescape(url);
- }
- url = url.replace(/"|'/g,'');
- data.debugData.push({url:url, f:1}); // 1
-
- // ROT-13 + Base64 encoding
- re = url.match(/=~?(nUE0[a-zA-Z0-9+\/=]+)/);
- if (re != null) {
- url = deBase64(re[1].rot13());
- data.debugData.push({url:url, f:2}); // 2
- }
-
- // Base64 + ROT-13 encoding (some prefixes)
- re = url.match(/=((?:ampq|dG55|c3V0|Y3Zw|Y2Vi|aXZx|eW9j|Z3Rj|Zmd3|dWd6)[a-zA-Z0-9+\/=]+)/);
- if (re != null) {
- url = "http://" + deBase64(re[1]).rot13();
- data.debugData.push({url:url, f:3}); // 3
- }
-
- // ROT-1 encoding
- if (url.indexOf("iuuq") != -1) {
- url = url.substr(url.indexOf("iuuq"));
- url = url.rot1();
- data.debugData.push({url:url, f:4}); // 4
- }
-
- // False positive Base64 encoded links
- re = url.match(/\/(v|x)\/cT1[a-zA-Z0-9+\/=]+\/\*\*\*\//);
- if (re != null) {
- url = "http://" + url.substring(url.indexOf("/***/")+5);
- data.debugData.push({url:url, f:5}); // 5
- }
-
- // Base64 encoded links (=aHR0, =~aHR0, =cD0, /cT1, b64aHR0, =bj0)
- re = /=?(?:~*|b64|\/)((?:aHR0|cD0|cT1|bj0|Li4v)[a-zA-Z0-9+\/=]+)/;
- // can be encoded more than once
- while (re.test(url)) {
- rm = url.match(re);
- if (rm != null)
- url = deBase64(rm[1]);
- data.debugData.push({url:url, f:6}); // 6
- }
-
- // Reversed Base64 encoded links
- re = url.match(/g=([a-zA-Z0-9+\/=]+0RHa)/);
- if (re != null) {
- url = deBase64(re[1].split("").reverse().join(""));
- data.debugData.push({url:url, f:6}); // 6
- }
-
- // Note: there are just couple of regexp's to remove unwanted params
- // Why? Because some of links require params, therefore removing all of them would cause link to be invalid
- // Todo: add more useless / problematic params
- url = url.replace(/amp;/g, '');
- url = url.replace(/\*/g, '&');
- if (url.substring(url.lastIndexOf("http")).indexOf(document.domain) == -1)
- url = url.replace(/&(p|s|c)=\w{0,3}/g, '');
- url = url.replace(/&link=(big|today)/g, '');
- url = url.replace(/(&var(1|2)=(?!http)\w*(=\d+g)?)/g, '');
- url = url.replace(/&gr(oup)?=[A-Za-z\-]+/g, '');
-
- // Other bizarre fixes
- url = url.replace(/\?http/g, "=http").replace(/php\?path=/g,"php?path=http://");
- if (url.indexOf("|") != -1)
- url = url.substring(0, url.indexOf("|"));
- if (url.indexOf(";") != -1)
- url = url.substring(0, url.indexOf(";"));
- data.debugData.push({url:url, f:7}); // 7
-
- // Pattern encoded links
- patt = url.match(/=(aLW8|bWXj|cYwO|dae6|eNI6|fkql|gwbj|itpy|jLRS|kXSf|loyd|mj8M|nA24|o9rq|p2yU|qFcU|rSwG|sge3|tR7G|uBWA|vhoj|w5qz|xU45|y3wc|zT4N|A31Y|BdF7|C9lJ|Dpq4|Ewhr|FGxk|G4nj|HlsR|Iqew|Jzsj|Kbhd|LRSt|MtNf|NOPY|OGsv|PgID|Qp9d|RNlM|SvZw|TGbg|U1lg|V2T6|WAnN|XxHv|YrOA|ZKY9|1rvx|2wyh|3JuD|4y6B|5eHS|67Tf|7ICN|8B2Q|9JkW|0NfQ)/g);
- if (patt != null) {
- url = dePattern(url.substring(url.indexOf(patt)+1));
- data.debugData.push({url:url, f:8}); // 8
- }
- // Pattern 2
- patt = url.match(/=o5o4/);
- if (patt != null) {
- url = dePattern2(url.substring(url.indexOf(patt)+1, url.indexOf("&")));
- data.debugData.push({url:url, f:9}); // 9
- }
-
- first_http = url.indexOf("http");
- last_http = url.lastIndexOf("http");
-
- // If the decoded url has some garbage before 'http'
- if (first_http != 0)
- url = url.substr(first_http);
-
- // In case of multiple urls in one link, return only the url with highest rank
- // Todo: improve
- if (first_http != last_http) {
- temp = url.split("http");
- for (i=1; i<temp.length; i++) {
- rank = 0;
-
- // first url
- if (i == 1) rank -= 1;
-
- // traffic type sites
- re = temp[i].match(reTraffic);
- if (re != null) rank -= 2;
-
- // domain at the end of the link (.com, .com/ etc.)
- re = temp[i].match(/\.(com|net|org|biz|coop|info|museum|name|pro|edu|gov|int|mil|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|eh|er|es|et|fi|fj|fk|fm|fo|fr|ga|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gv|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rw|ru|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|ws|wf|ye|yt|yu|za|zm|zw)\/?$/g);
- if (re != null) rank -= 1;
-
- // bumpers
- re = temp[i].match(/\/(in\d?|g?o(ut)?|x|video)\.(php|cgi)\?/g);
- if (re != null) rank -= 2;
-
- // other
- re = temp[i].match(/url=|\/\?go=/g);
- if (re != null) rank -= 1;
-
- // valid pages
- re = temp[i].match(/index(\d+)?\.(s?html?|php)/g);
- if (re != null) rank += 2;
-
- re = temp[i].match(/\/gallery\//g);
- if (re != null) rank += 1;
-
- data.urls.push({url: "http" + temp[i], rank: rank});
- }
- } else {
- data.urls.push({url: url, rank: 0});
- }
- // Sort by rank
- data.urls.sort(function(a,b){return b.rank-a.rank;});
-
-
- for (i=0; i<data.urls.length; i++) {
- // If theres no q mark, or index of q mark is greater than amp index, there should be no params
- i_qmark = data.urls[i].url.indexOf("?");
- i_amp = data.urls[i].url.indexOf("&");
- if ((i_qmark == -1 || i_qmark > i_amp) && i_amp != -1)
- data.urls[i].url = data.urls[i].url.substring(0, i_amp);
- data.debugData.push({url:data.urls[i].url, rank: data.urls[i].rank, f:10}); // 10
- }
- return data;
- }
-
- /* Function: decode Base64 String */
- var deBase64 = function(_str) {
- // Code was written by Tyler Akins and is placed in the public domain
- // It would be nice if you left this header. http://rumkin.com
- base64_keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
-
- // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
- _str = _str.toString().replace(/[^A-Za-z0-9\+\/\=]/g, '');
-
- var output="";
- var chr1,chr2,chr3;
- var enc1,enc2,enc3,enc4;
- var i=0;
-
- do {
- enc1 = base64_keyStr.indexOf(_str.charAt(i++));
- enc2 = base64_keyStr.indexOf(_str.charAt(i++));
- enc3 = base64_keyStr.indexOf(_str.charAt(i++));
- enc4 = base64_keyStr.indexOf(_str.charAt(i++));
- chr1 = (enc1 << 2) | (enc2 >> 4);
- chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
- chr3 = ((enc3 & 3) << 6) | enc4;
- output = output+String.fromCharCode(chr1);
- if (enc3 != 64) {
- output=output+String.fromCharCode(chr2);
- }
- if (enc4 != 64) {
- output=output+String.fromCharCode(chr3);
- }
- } while (i<_str.length);
-
- output = unescape(output);
- return output;
- }
-
- /* Function: Decode urls using declared patterns */
- var dePattern = function(_url) {
- var outurl = "";
- for (m=0; m<_url.length; m++) {
- if (/[a-zA-Z0-9]/.test(_url[m])) {
- outurl += pattern.order.charAt((62 - pattern[_url[0]].indexOf(_url[m]) + m%62)%62);
- } else {
- outurl += _url[m];
- }
- }
- return outurl;
- }
-
- var dePattern2 = function(_url) {
- if (_url.length%2 != 0) return "";
- return _url.replace(/[a-z0-9]\d/g, function(c, d) {
- c1 = c.charAt(0);
- c2 = parseInt(c.charAt(1))-1;
- pos = c2*36 + ord.indexOf(c1) - pad[(d/2)%40];
- if (pos > 94) return "*";
- return chr.charAt(pos);
- });
- }
-
- }
-
- /* **************************************** */
- /* Link parsing loop */
- /* **************************************** */
-
- uc = new urlCleaner();
-
- var links = document.links;
- for (var j=0; j<links.length; j++) {
- if (!/http:/.test(links[j].href)) continue;
-
- var out = [];
- if (typeof links[j].realurl != "undefined") {
- links[j].onclick = function(){};
- links[j].onmouseup = function(){};
- links[j].onmousedown = function(){};
- links[j].onmouseout = function(){};
- links[j].onblur = function(){};
- out = uc.fixUrl(links[j].realurl);
- } else
- out = uc.fixUrl(links[j].href);
-
- links[j].ucData = out;
- links[j].href = out.urls[0].url;
-
- // dim all the links with traffic-type sites
- re = links[j].href.match(reTraffic);
- if (re != null) {
- links[j].style.opacity = 0.2;
- }
- // remove the onmouseover action, so it won't change the href value
- omo = links[j].getAttribute('onmouseover');
- if (omo != null) {
- links[j].removeAttribute('onmouseover');
- }
- }
- }
-
- var scr = document.createElement("script");
- scr.type = "text/javascript";
- scr.appendChild(document.createTextNode('('+ urlCleaner +')();'));
- document.getElementsByTagName("head")[0].appendChild(scr);
- })();