All pastes #167419 Raw Edit

Anonymous

public javascript v1 · immutable
#167419 ·published 2006-09-11 23:30 UTC
rendered paste body
// SmartLink v0.2// Grant Harding at fxcm, 2006/*Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus posuere lorem a sem. Pellentesque auctor mattis ipsum. Vestibulum tellus. Nunc vel lectus at mauris pulvinar lobortis. In auctor. In luctus. Nulla scelerisque erat at nulla. In quis leo et massa adipiscing condimentum. Proin varius commodo elit. Maecenas imperdiet leo sit amet magna.Ut dignissim accumsan dui. Phasellus ac magna et nisi pulvinar varius. Vestibulum consequat, urna faucibus luctus ullamcorper, turpis neque aliquam ante, id viverra arcu sem hendrerit velit. Cras urna diam, volutpat id, auctor et, varius id, sem. Maecenas ut tortor vel arcu dictum pellentesque. Suspendisse eu nulla. Ut id dui non tortor elementum commodo. Vivamus mi. Donec sagittis, tellus nec accumsan porta, nibh mauris blandit ipsum, ut semper lorem pede vitae arcu. Sed ac purus. Nullam facilisis quam eu augue. Quisque hendrerit massa in velit interdum malesuada.Curabitur nulla velit, commodo a, aliquam non, ullamcorper eu, mauris. Nulla pharetra porta mi. Vestibulum justo. Cras quam. Nunc lorem. Duis vitae erat in enim molestie blandit. Sed odio purus, aliquam ut, scelerisque ut, pharetra ac, sem. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed eleifend cursus nunc. Proin vel tortor. Vivamus faucibus ligula a mi. Curabitur placerat mauris a nisi. Nam sed sem. Ut a libero. Vivamus at nisl vel nisi volutpat pharetra. Aliquam erat volutpat. Morbi euismod condimentum est. Praesent ante urna, consequat sit amet, auctor eget, tincidunt eget, purus.Mauris metus. Cras vulputate. Vestibulum sagittis mauris. Sed elit nulla, molestie non, nonummy id, auctor interdum, mi. Ut nonummy viverra justo. Suspendisse potenti. Proin lectus. Fusce id arcu vel lacus convallis rhoncus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque pellentesque velit ut massa. Quisque in risus eu felis porta ornare. Quisque fermentum. Aliquam mauris.Ut viverra sollicitudin diam. Nunc suscipit, risus non lacinia suscipit, neque dui convallis libero, eget dictum tellus odio a elit. Fusce tincidunt, mi quis ultricies sagittis, turpis pede pretium eros, quis laoreet urna magna pulvinar augue. Fusce ut nunc. Aliquam erat volutpat. In hac habitasse platea dictumst. Donec eget nunc. Ut venenatis, elit non laoreet facilisis, leo ligula interdum lacus, et semper metus ipsum nec nibh. Duis id nulla. Donec consequat pharetra odio.*//*var defs = new Array();var words = new Array('lorem ipsum','adipiscing','bananas','nunc','cras','purus','elit non');var urls = new Array('http://www.google.com','http://www.yahoo.com','http://www.msn.com','http://www.ask.com','http://www.digg.com','http://www.fark.com','http://www.fxcm.com');*//* link word once? */var removeWords = true;/* url for xml */var wordUrl = "http://fxwords.dev.fxcm.com/xml/fetch";/* show def? */var wordsShowDef = false;/* show def as tooltip? (otherwise will create custom box) */var wordsDefTooltip = false;var _slE = document.getElementById('article');var _ref = document.location.href.replace(/\&/g,'%26').replace(/\'/g, '%27').replace(/\"/g, '%22'); // 'var script = "http://fxwords.dev.fxcm.com/Smartlink.do?url="+_ref;document.write('<s'+'cript type="text/javascript" src="'+script+'"></script>');//window.onload = function() { loadSmartLinks(); }function loadSmartLinks() {/* load words *//*var text = document.getElementById('text');var pars = 'data='+_urlencode(text);  var ajax = new Ajax.Request(    wordUrl,    {      method: 'post',      parameters: pars,      onComplete: _loadWords    });*/  }function _loadWords(req) {  var _ws = req.getElementsByTagName('def');  for (i = 0; i < _ws.length; i++) {    var _w = req.getElementsByTagName('def')[i];    _f['word'] = _w.getElementsByTagName('word')[0];    _f['def'] = _w.getElementsByTagName('defi')[0];    _f['link'] = _w.getElementsByTagName('link')[0];    defs.push(_f);  }  /* traverse through dom and check for nodeType == 3 (text) */  _travEle(document.getElementById('article'));}function startTrav() {    _travEle(document.getElementById('article'));}function _travEle(e) {  var c = e.childNodes;  for (var i = 0; i < c.length; i++) {    /* if (words.length == 0) { break; } */    if (defs.length == 0) { break; }    if (c[i].nodeType == 3) { if (_parseEle(c[i])) { i++; } }    else if (!(c[i].nodeName == 'A' && c[i].href.length > 0)) {      _travEle(c[i]);    }  }}function _parseEle(e) {    var orig = e.nodeValue;  var i = orig;  if (orig.replace(/\s+/).length == 0) return;  var l = i.toLowerCase();    var firstTermPos = -1;  var firstTerm = null;    /*  for (j = 0; j < words.length; j++) {    var term = words[j];    var url = urls[j];    */  for (j = 0; j < defs.length; j++) {    var term = defs[j]['word'];    var url = defs[j]['link'];    var def = defs[j]['def'];        var t = l.indexOf(term);    if (t > -1 && (t < firstTermPos || firstTermPos < 0)) {      firstTermPos = t;      firstTerm = j;    }  }    if (firstTermPos > -1) {    if (firstTermPos > 0 && i.substring(firstTermPos - 1, firstTermPos).match(/[a-zA-Z]/)) {        return false;    }    var first = document.createTextNode(i.substring(0,firstTermPos));    var second = document.createElement('a');    //second.appendChild(document.createTextNode(i.substring(firstTermPos, firstTermPos+words[firstTerm].length)));    //second.setAttribute("href", urls[firstTerm]);    second.appendChild(document.createTextNode(i.substring(firstTermPos, firstTermPos+defs[firstTerm]['word'].length)));    second.setAttribute("href", defs[firstTerm]['link']);    second.setAttribute("onMouseOver", "alert('"+defs[firstTerm]['def']+"')");    second.setAttribute("target", "_blank");    //var third = document.createTextNode(i.substring(firstTermPos+words[firstTerm].length, i.length));    var third = document.createTextNode(i.substring(firstTermPos+defs[firstTerm]['word'].length, i.length));        var p = e.parentNode;        p.replaceChild(third,e)    p.insertBefore(second, third);    p.insertBefore(first, second);    if (removeWords == true) {    /*      words.splice(firstTerm,1);      urls.splice(firstTerm,1);      */      defs.splice(firstTerm,1);    }    return true;  }    return false;}function _urlencode(plaintext) {	var SAFECHARS = "0123456789" +					// Numeric					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic					"abcdefghijklmnopqrstuvwxyz" +					"-_.!~*'()";					// RFC2396 Mark characters	var HEX = "0123456789ABCDEF";	var encoded = "";	for (var i = 0; i < plaintext.length; i++ ) {		var ch = plaintext.charAt(i);	    if (ch == " ") {		    encoded += "+";				// x-www-urlencoded, rather than %20		} else if (SAFECHARS.indexOf(ch) != -1) {		    encoded += ch;		} else {		    var charCode = ch.charCodeAt(0);			if (charCode > 255) {				encoded += "+";			} else {				encoded += "%";				encoded += HEX.charAt((charCode >> 4) & 0xF);				encoded += HEX.charAt(charCode & 0xF);			}		}	} // for	return encoded;}/*function showBox() {var _b = document.getElementById('slBox');if (_b) {    }}*/