var cookieQueryString = ''; document.write(''); if(typeof Lijit=="undefined"){var Lijit=new Object();} Lijit.qs = ""; if(document.referrer && (document.referrer.indexOf(document.location.protocol + "//" + document.location.hostname) !== 0)) { var queryPrefix = "?q="; var startPos = document.referrer.toLowerCase().indexOf(queryPrefix); if ((startPos < 0) || (startPos + queryPrefix.length == document.referrer.length)) { queryPrefix = "&q="; startPos = document.referrer.toLowerCase().indexOf(queryPrefix); } if (!((startPos < 0) || (startPos + queryPrefix.length == document.referrer.length))) { var endPos = document.referrer.indexOf("&", startPos + 1); if (endPos < 0) { endPos = document.referrer.length; } Lijit.qs = document.referrer.substring(startPos + queryPrefix.length, endPos); if(Lijit.qs.indexOf('/') >= 0) Lijit.qs = ''; // fix the space characters Lijit.qs = Lijit.qs.replace(/%20/gi, " "); Lijit.qs = Lijit.qs.replace(/%2d/gi, "-"); Lijit.qs = Lijit.qs.replace(/%2b/gi, "+"); Lijit.qs = Lijit.qs.replace(/%27/gi, "'"); Lijit.qs = Lijit.qs.replace(/\+/gi, " "); Lijit.qs = Lijit.qs.replace(/%22/gi, "\""); Lijit.qs = Lijit.qs.replace(/site%3A.+\b/gi, ''); } } document.write('   '); function disable_lijit_wijit_pvs_link(attempts) { if (document.getElementById('lijit_wijit_pvs_link')) { document.getElementById('lijit_wijit_pvs_link').style.display = 'none'; } else { if (attempts < 10) { setTimeout("disable_lijit_wijit_pvs_link(" + (attempts + 1) + ")", 5); } } } setTimeout("disable_lijit_wijit_pvs_link(0)", 1); document.write('
Popular Searches
'); /** * Event Queueing */ var ljt = {}; ljt.dom_ready = function(f) { var onLoad = function() { ljt.dom_ready.done = true; for (var i=0; i < ljt.dom_ready.ready.length; i++) { var fn = ljt.dom_ready.ready[i]; fn(); } ljt.dom_ready.ready = []; }; if (ljt.dom_ready.done) { return f(); } if (ljt.dom_ready.setup) { ljt.dom_ready.ready.push(f); } else { ljt.dom_ready.ready = [f]; ljt.dom_ready.setup = true; if (window.addEventListener) { window.addEventListener('load', onLoad, false); } else if (window.attachEvent) { window.attachEvent('onload', onLoad); } } } /** * Written by Dean Edwards, 2005 * with input from Tino Zijdel, Matthias Miller, Diego Perini * http://dean.edwards.name/weblog/2005/10/add-event/ */ var ljtevent = {}; ljtevent.addEvent = function (element, type, handler) { if (element.addEventListener) { element.addEventListener(type, handler, false); } else { if (!handler.$$guid) handler.$$guid = ljtevent.addEvent.guid++; if (!element.events) element.events = {}; var handlers = element.events[type]; if (!handlers) { handlers = element.events[type] = {}; if (element["on" + type]) { handlers[0] = element["on" + type]; } } handlers[handler.$$guid] = handler; element["on" + type] = ljtevent.handleEvent; } }; ljtevent.addEvent.guid = 1; ljtevent.removeEvent = function (element, type, handler) { if (element.removeEventListener) { element.removeEventListener(type, handler, false); } else { if (element.events && element.events[type]) { delete element.events[type][handler.$$guid]; } } }; ljtevent.handleEvent = function (event) { var returnValue = true; event = event || ljtevent.fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event); var handlers = (this.events != null && this.events != 'undefined' ? this.events[event.type] : {}); for (var i in handlers) { this.$$handleEvent = handlers[i]; if (this.$$handleEvent(event) === false) { returnValue = false; } } return returnValue; }; ljtevent.fixEvent = function (event) { event.preventDefault = ljtevent.fixEvent.preventDefault; event.stopPropagation = ljtevent.fixEvent.stopPropagation; return event; }; ljtevent.fixEvent.preventDefault = function() { this.returnValue = false; }, ljtevent.fixEvent.stopPropagation = function() { this.cancelBubble = true; } /** * Lijit Widget Namespace */ var lwp = {}; /*Constants*/ lwp.research_toggle_img_up = new Image(); lwp.research_toggle_img_up.src = 'http://www.lijit.com/res/images/up_button.png'; lwp.research_toggle_img_down = new Image(); lwp.research_toggle_img_down.src = 'http://www.lijit.com/res/images/down_button.png'; lwp.page_loaded = false; lwp.is_ie = !!(window.attachEvent && !window.opera); lwp.is_ie6 = (typeof window.XMLHttpRequest == 'undefined') && lwp.is_ie; /*references to nodes*/ lwp.elements = { form : document.getElementById('lwp_sbf'), research : document.getElementById('lwp_research'), rw : document.getElementById('lwp_rw'), research_greeting : document.getElementById('lwp_research_greeting'), search_box : document.getElementById('lwp_sb'), primary_search_input : document.getElementById('lwp_sfd'), ds : document.getElementById('lwp_ds'), b : document.getElementById('lwp_b'), background : document.getElementById('lwp_shb'), iframe : document.getElementById('lwp_ri'), img_load : document.getElementById('lwp_research_closer'), cover: document.getElementById('lwp_linkcover') }; /** * Some helper methods. */ lwp.add_script = function(scrpt) { try { var s = document.createElement('script'); s.src = scrpt; s.type = 'text/javascript'; s.defer = true; ljt.dom_ready(function() { document.getElementsByTagName('head').item(0).appendChild(s); }); } catch(e) {} } lwp.append = function(node) { if (!!(window.attachEvent && !window.opera)) { document.body.firstChild.insertBefore(node); } else { document.body.appendChild(node); } } lwp.research_toggle = function() { if(lwp.elements.iframe.style.display.toLowerCase()==='none') { lwp.show_element(lwp.elements.iframe); lwp.elements.img_load.src=lwp.research_toggle_img_up.src; } else { lwp.hide_element(lwp.elements.iframe); lwp.elements.img_load.src=lwp.research_toggle_img_down.src; } } lwp.get_element_by_id = function(el) { return document.getElementById(el); } lwp.hide_element = function(el) { //lwp_h if (el) el.style.display = 'none'; } lwp.show_element = function(el) { //lwp_s if (el) el.style.display = ''; } /** * Check research location * TODO: getElementsByTagName('div') is expensive when used as method * of the document object; it loops through entire page; can we * refactor? */ lwp.check_research = function(e) { this.find_pat = function(pat) { var matches = pat.match(/([a-z]+):(.+)/); if (matches) { var match_type = matches[1]; var val = matches[2]; if (match_type === 'class') { val = val.split(','); } if (match_type === 'id' || match_type === 'class') { var divs = document.getElementsByTagName('div'); for (var i=0; i < divs.length; i++) { var div = divs[i]; if (match_type == 'id' && (div.getAttribute('id') != null && div.getAttribute('id') != 'undefined') && div.getAttribute('id').indexOf(val) == 0) { return div; } else if (match_type =='class' && (div.className != null && div.className != 'undefined')) { var is_match = true; for (var j = 0; j < val.length; j++) { var v = val[j]; if (div.className.indexOf(v) == -1) { is_match = false; } } if (is_match) { return div; } } } } else { return null; } } return document.getElementById(pat); } var placement = 'above'; if (placement == '') { // Preserves legacy display behavior if people haven't recently visited new re-search options. placement = 'above'; } var ids = ["",""]; // Sanity. if (ids == null) { return; } var display_type = 'wijit'; var targetNode = null; var created_div = false; if (display_type == 'top') { for(var i = 0; i < ids.length; i++) { var curr_id = ids[i]; if (curr_id == null || curr_id == 'undefined' || (placement === 'above' && (curr_id.indexOf(':') > -1))) { continue; } target_node = this.find_pat(curr_id); if (target_node == null) { continue; } if (placement === 'above') { // Create element above that we'll insert to after. var temp_target = document.createElement('div'); target_node.parentNode.insertBefore(temp_target, target_node); target_node = temp_target; } break; } } else if (display_type === 'wijit') { target_node = lwp.elements.rw; } if (target_node) { var d = document.createElement('div'); //var insert = document.getElementById('lwp_research'); d.appendChild(lwp.elements.research); if (display_type === 'top') { target_node.appendChild(d); } else if(target_node.firstChild) { target_node.insertBefore(d, target_node.firstChild); } lwp.add_script('http://www.lijit.com/researchjs/GoodWords?type=js&referer=' + encodeURIComponent(document.referrer) + '&dom_id=lwp_ri&callback=lwp.cb&view_id=sftQ3ApkPBoAAAmfW14AAAAM'); } } /** * Execute the search. * @param {String} term The term to be searched for. * Currently called inline from HTML. */ lwp.dosearch = function (term) { lwp.elements.primary_search_input.value = term; lwp.submit_form(); return false; } /** * Unknown legacy function. * TODO: refactor, incorporate "input" here into lwp.elements after more testing. */ lwp.cb = function(q) { var field = document.getElementById('lwp_sfd'); if (field) { field.value = q; field.style.backgroundImage = 'none'; } var greeting_span = lwp.elements.research_greeting; if(greeting_span){ greeting_span.innerHTML = greeting_span.innerHTML.replace(/\[term\]/g, q); } lwp.show_element(lwp.elements.research); } /** * Unknown legacy function. * TODO: refactor, add to lwp namespace */ function lwp_3_toggleMenu() { var lwp_3_p = function(e) { var t = 0, l = 0; do { t+=e.offsetTop||0; l+=e.offsetLeft||0; if(e.offsetParent==document.body){if (e.style.position=='absolute'){break;}}; }while(e=e.offsetParent); return [l,t]; } var l = document.getElementById('lwp_3_managementlink'); var m = document.getElementById('lwp_3_mm'); lwp.append(m); ///document.body.appendChild(m); var pos = lwp_3_p(l); m.style.top = pos[1] + l.offsetHeight + "px"; m.style.display = (m.style.display ? "" : "none"); m.style.left = (pos[0] + (l.offsetWidth / 2) - (m.offsetWidth / 2)) + "px"; /*this.lwp_3_p() = function(e) { var t = 0, l = 0; do { t+=e.offsetTop||0; l+=e.offsetLeft||0; if(e.offsetParent==document.body){if (e.style.position=='absolute'){break;}}; }while(e=e.offsetParent); return [l,t]; } var l = document.getElementById('lwp_3_managementlink'); var m = document.getElementById('lwp_3_mm'); lwp.append(m); ///document.body.appendChild(m); var pos = this.lwp_3_p(l); m.style.top = pos[1] + l.offsetHeight + "px"; m.style.display = (m.style.display ? "" : "none"); m.style.left = (pos[0] + (l.offsetWidth / 2) - (m.offsetWidth / 2)) + "px";*/ } /** * Toggles bubbles. * Attached to window object below. * TODO: refactor */ lwp.toggle_bubbles = function () { if(lwp.page_loaded && typeof deconcept!="undefined") { document.getElementById('lwp_explore').innerHTML = "Explore"; //lwp.adjust_background(); lwp.show_element(lwp.elements.background); var b = lwp.elements.b; ///lwp.append(b); document.body.appendChild(b); lwp.show_element(b); if(typeof document.body.style.maxHeight == "undefined") { if (self.innerHeight){ b.style.height = self.innerHeight+"px"; } else if (document.documentElement && document.documentElement.clientHeight) { b.style.height = document.documentElement.clientHeight+"px"; } else if (document.body) { b.style.height = document.body.clientHeight+"px"; } y=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0; b.style.top=y+"px"; } var so = new SWFObject("http://www.lijit.com/res/swf/relationbrowser.swf", "lijit_network_browser", "100%", "100%", "8", "#ffffff"); so.addParam("scale", "noscale"); so.addParam("salign", "TL"); so.addParam("wmode", "transparent"); so.addParam("AllowScriptAccess", "always"); so.addParam("AllowScriptAccess", "always"); so.useExpressInstall('http://www.lijit.com/res/swf/expressinstall.swf'); so.addVariable("launchURL", "http%3A%2F%2Fwww.lijit.com%2Fapi%2Fbubbles%3Finformer_uri%3Dhttp%253A%252F%252Fwww.goodwordediting.com%252F"); so.addVariable("username", "GoodWords"); so.write("lwp_b"); } else { document.getElementById('lwp_explore').innerHTML = "Loading..."; setTimeout("lwp.toggle_bubbles()", 500); } } /** * Submit form * Seems meant to be called from code only. Calls lwp.dosearch() */ lwp.submit_form = function(e) { //Stops bubbling if event was raised from click event. if(e){ if(e.preventDefault){ e.preventDefault(); e.stopPropagation(); } else{ e.returnValue = false; e.cancelBubble = true; } } //Is the search blank? If so don't search. if(lwp.elements.primary_search_input.value.replace(/^\s*/, "").replace(/\s*$/, "") == '') { return false; } lwp.adjust_background(); //lwp.show_element(lwp.elements.background); lwp.show_element(lwp.elements.search_box); lwp.show_element(lwp.elements.ds); //Internet explorer 6? - was //if(!window.XMLHttpRequest){ //Not entirely sure how this effects IE6. if(lwp.is_ie6){ y=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0; lwp.elements.ds.style.top=(26+y)+"px"; lwp.elements.search_box.style.top=(15+y)+"px"; } lwp.elements.form.target='lwp_sf'; lwp.elements.form.action='http://www.lijit.com/loading/search'; lwp.elements.form.start_time.value = (new Date()).getTime(); lwp.elements.form.submit(); } /** * This is depracated but has been kept in for legacy situations. * Use lwp.show_element(lwp.elements.background) instead. */ lwp.adjust_background = function() { var s = lwp.elements.background; lwp.show_element(s); if(typeof document.body.style.maxHeight == "undefined") { y=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0; s.style.top=y+"px"; } var userAgent = navigator.userAgent.toLowerCase(); if(userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) { s.style.background= "url(http://www.lijit.com/res/images/50percent.png) repeat"; s.style.MozOpacity = 1; s.style.opacity = 1; s.style.filter = ""; } } /** * Closes the search pop-up. */ lwp.close = function() { var sbf = document.getElementById('lwp_sbf'); if(sbf) { sbf.target=''; } if(lwp.elements.form) { lwp.elements.form.src=''; } lwp.hide_element(lwp.elements.background); lwp.hide_element(lwp.elements.search_box); lwp.hide_element(lwp.elements.ds); lwp.hide_element(lwp.elements.b); // To prevent a ghost of the last search from showing briefly if a user searches again. lwp.get_element_by_id('lwp_sf').src='http://www.lijit.com/loading.html'; } /** * Everything starts here. */ lwp.init = function () { if(!lwp.elements.form){ return; } //This seems reduntant. Sigh. lwp.close(); //Set background attributes on load rather than search/click. if(typeof document.body.style.maxHeight == "undefined") { y=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0; lwp.elements.background.style.top=y+"px"; } var userAgent = navigator.userAgent.toLowerCase(); if(userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) { lwp.elements.background.style.background= "url(http://www.lijit.com/res/images/50percent.png) repeat"; lwp.elements.background.style.MozOpacity = 1; lwp.elements.background.style.opacity = 1; lwp.elements.background.style.filter = ""; } ljtevent.addEvent(lwp.elements.form,'submit',lwp.submit_form); lwp.check_research(); ljt.dom_ready(function () { lwp.page_loaded = true; }); if(Lijit.qs) { //I can foresee us needed to wait for the DOM on this code below and use ljt.dom_ready on it. var greeting = lwp.elements.research_greeting; if(greeting){ greeting.innerHTML = greeting.innerHTML.replace(/\[term\]/g, Lijit.qs); } var t = lwp.elements.rw; if (t) { var d = document.createElement('div'); d.appendChild(lwp.elements.research); if(t.firstChild) { t.insertBefore(d, t.firstChild); } else { t.appendChild(d); } if(lwp.elements.research){ lwp.show_element(lwp.elements.research); } } } lwp.add_script('http://www.lijit.com/res/js/swfobject.js'); //if (lwp.is_ie) { lwp.hide_element(lwp.elements.search_box); document.body.insertBefore(lwp.elements.search_box, document.body.firstChild); lwp.hide_element(lwp.elements.ds); document.body.insertBefore(lwp.elements.ds, document.body.firstChild); //} } //ljt.dom_ready(lwp.init); lwp.init(); //For legacy functions. window.lwp_close = lwp.close; window.lwp_toggleBubbles = lwp.toggle_bubbles; window.lwp_$ = lwp.get_element_by_id; window.lwp_cb = lwp.cb; window.lwp_dosearch = lwp.dosearch; document.write(' '); try { if (document.referrer && document.referrer.length > 0) { var updateURL = 'http://www.lijit.com/update_wijit_view.php?view_id=sftQ3ApkPBoAAAmfW14AAAAM&rr=' + escape(document.referrer); var theImg = document.createElement('IMG'); theImg.src = updateURL; } } catch(err) {}