RE: [DQSD-Users] new mwdx search (Merriam-Webster search, results in a pop-up window)

2006-02-01 Thread Kim Gräsman
Hi again,

Here's a replacement mwd.xml that takes a /p[opup] switch -- can you try it
out and see if it works for you, Glenn?
XmlHttp is acting up on my machine, so I can't see if it works properly, but
I've just copied and pasted your code into a separate function in mwd.

Cheers,
- Kim 

 -Original Message-
 From: [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] On Behalf Of 
 Glenn Carr
 Sent: den 1 februari 2006 17:41
 To: dqsd-users@lists.sourceforge.net
 Subject: [DQSD-Users] new mwdx search (Merriam-Webster 
 search, results in a pop-up window)
 
 Hey all,
 
 Attached is a modified Merriam-Webster search that displays 
 the results in a pop-up window.  It's not perfect (for one, 
 links don't work from the popup window), but it makes me happy :)
 
 I don't have CVS installed anywhere convenient right now, so 
 if someone could check this in, I'd appreciate it.
search function=mwd
  nameMerriam-Webster Dictionary/name
  description
Search for word definitions.br/
div class=helpboxDescLabelsExamples:/div
table class=helpboxDescTable
  		trtdmwd idempotent/td/tr
			trtdmwd /popup idempotent/td/tr
  	/table
  /description
  categoryReferencecategoryLanguage/category/category
  linkhttp://www.m-w.com//link
  
  form name=mwdf
action=http://www.m-w.com/cgi-bin/dictionary;
method=post
input type=hidden name=book value=Dictionary/
input type=hidden name=va/
  /form
  
  script![CDATA[
function mwd(q)
{
  if( nullArgs(mwd,q) )
return false;

			var args = parseArgs(q, popup);
			if( args.switches.length  0 )
			{
mwdx(args.q)
			}
			else
			{
document.mwdf.va.value = args.q;
submitForm(mwdf);
			}
}

		function mwdx(q)
		{
			var xmlHttp = new ActiveXObject(Microsoft.XmlHttp);
			xmlHttp.open(GET, http://www.m-w.com/dictionary/; + q, false);
			xmlHttp.send();

			var sBody = xmlHttp.responseText.replace( /[\r\n]/gi,  );
			var re = /(Main Entry:.+)img src=\/images\/pixt\.gif.+More Information on/mig;
			var results = re.exec( sBody );
			var windowW = 500;
			if ( results != null )
			{
var html = results[ 1 ].replace( /(src=)/gi, src=\http://www.m-w.com; ).replace( /(href=\/)/gi, href=\http://www.m-w.com/; );
html = html.replace( new RegExp( String.fromCharCode(65535), g ), '-' ); // weirdness
html = html.replace( /font size=-1([^]+)\/font/gi, $1 );
			}
  else
  {
results = /(Suggestions for.+\/PRE)/ig.exec( sBody );
if ( results != null )
{
	var html = results[ 1 ].replace( /(src=)/gi, src=\http://www.m-w.com; ).replace( /(href=)/gi, href=\http://www.m-w.com; ).replace( /\/a/g, '/a\r\n' );
}
else
{
	windowW = 200;
	var html = 'centerb' + q + '/b not found/center';
}
			}

  var dictPopup = window.createPopup();
  var dictPopupBody = dictPopup.document.body;

  dictPopupBody.innerHTML = 'table style=font-size: 70%; border: inset 2px height=100%trtd' + html + /td/tr/table;

  // dictPopup.document.head.base = http://www.m-w.com/;;
  dictPopup.document.body.style.border=outset 2px;
  dictPopup.document.body.style.padding=1px 1px; background: navy;
  dictPopup.document.body.style.background='menu';
  dictPopup.document.body.style.overflowY='auto';
  dictPopup.document.body.style.fontFamily='Verdana';

  // Temporarily show the popup to determine the proper final height for the popup.
  dictPopup.show(0, 0, windowW, 0);
  var windowH = dictPopupBody.scrollHeight + 6;
  dictPopup.hide();
  windowH = windowH  window.screen.height-100 ? window.screen.height-100 : windowH;
  dictPopup.show((buttonalign == left ? 0 : document.body.clientWidth - windowW), -windowH, windowW, windowH, document.body);
		}
  ]]/script
  copyright
	Copyright (c) 2006 David Bau, Glenn Carr and Kim Gräsman
	Distributed under the terms of the
	GNU Public License, Version 2 (http://www.gnu.org/copyleft/gpl.txt)
  /copyright
/search


RE: [DQSD-Users] new mwdx search (Merriam-Webster search, results in a pop-up window)

2006-02-01 Thread Shawn K. Hall
Hi Kim,

 ...see if it works for you...

Works fine for me, however, may I suggest offering an option that can
alternate the functionality of mwd through the localprefs?

This code will do it (replaces line 28):
if (typeof strMWDPopup == undefined) strMWDPopup = 0;
if(( args.switches.length  0 ) || (strMWDPopup !== 0))

Then if someone has the strMWDPopup variable set to anything other
than zero the dictionary lookups will appear in the popup, while
otherwise (and default) they appear in a new window.

This does not take into account situations where the user wants to
default to popups but wants to visit the site, though.


 XmlHttp is acting up on my machine, so I can't see if it 
 works properly...

In my reading (having not tested it yet myself, in part because of this)
I've seen that IE7 has some XmlHttp+JavaScript issues. The consensus
from those I've seen discussing it is don't use IE7 - no workarounds
are available.

Regards,

Shawn K. Hall
http://12PointDesign.com/




---
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnkkid=103432bid=230486dat=121642
___
To unsubscribe visit:
https://lists.sourceforge.net/lists/listinfo/dqsd-users
DQSD-Users@lists.sourceforge.net
http://sourceforge.net/mailarchive/forum.php?forum_id=8601


RE: [DQSD-Users] new mwdx search (Merriam-Webster search, results in a pop-up window)

2006-02-01 Thread Kim Gräsman
Hi Shawn,

  ...see if it works for you...
 
 Works fine for me, however, may I suggest offering an option 
 that can alternate the functionality of mwd through the localprefs?

Fair enough, I can add that!

  XmlHttp is acting up on my machine, so I can't see if it works 
  properly...
 
 In my reading (having not tested it yet myself, in part 
 because of this) I've seen that IE7 has some 
 XmlHttp+JavaScript issues. The consensus from those I've seen 
 discussing it is don't use IE7 - no workarounds are available.

Do you have any links? I'm curious to find out more about this -- I've had
this problem since before IE7, and I think it's in part because I run as a
non-admin.

Cheers,
- Kim



---
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnkkid=103432bid=230486dat=121642
___
To unsubscribe visit:
https://lists.sourceforge.net/lists/listinfo/dqsd-users
DQSD-Users@lists.sourceforge.net
http://sourceforge.net/mailarchive/forum.php?forum_id=8601


RE: [DQSD-Users] new mwdx search (Merriam-Webster search, results in a pop-up window)

2006-02-01 Thread Glenn Carr
I've improved it quite a bit this evening (links work, etc.).

I re-installed CVS and committed it (also attached).

Glenn

(Woah, it's been a long time since I've committed any DQSD code.)

 Added to CVS!
 
 - Kim
 
  -Original Message-
  From: [EMAIL PROTECTED]
  [mailto:[EMAIL PROTECTED] On Behalf Of
  Glenn Carr
  Sent: den 1 februari 2006 20:22
  To: dqsd-users@lists.sourceforge.net
  Subject: RE: [DQSD-Users] new mwdx search (Merriam-Webster
  search, results in a pop-up window)
 
  Good idea.  Works great, thanks!

search function=mwd
  nameMerriam-Webster Dictionary/name
  description
Search for word definitions.
div class=helpboxDescLabelsSwitches:/div
table class=helpboxDescTable
  trtd/p[opup]/tdtd - /tdtdDisplay in popup window instead of regular browser window/td/tr
/table
div class=helpboxDescLabelsExamples:/div
table class=helpboxDescTable
  trtdmwd idempotent/td/tr
  trtdmwd /p idempotent/td/tr
/table
  /description
  categoryReferencecategoryLanguage/category/category
  linkhttp://www.m-w.com//link
  
  form name=mwdf
action=http://www.m-w.com/cgi-bin/dictionary;
method=post
input type=hidden name=book value=Dictionary/
input type=hidden name=va/
  /form
  
  script![CDATA[
function mwd(q)
{
  if( nullArgs(mwd,q) )
return false;

  var args = parseArgs(q, popup);
  if( args.switches.length  0 )
  {
mwdx(args.q)
  }
  else
  {
document.mwdf.va.value = args.q;
submitForm(mwdf);
  }
}

function mwdx(q)
{
  var extraArgDelim = '\1';
  var listOption = false;
  var p = q.search( extraArgDelim );
  if ( p = 0 )
  {
postArgs = unescape( q.substr( p + 1 ) );
listOption = true;
q = q.substr( 0, p );
  }

  var xmlHttp = new ActiveXObject(Microsoft.XmlHttp);
  if ( listOption )
  {
xmlHttp.open(POST, http://www.m-w.com/cgi-bin/dictionary;, false);
xmlHttp.setRequestHeader( Content-Type, application/x-www-form-urlencoded );
xmlHttp.send( postArgs );
  }
  else
  {
xmlHttp.open(GET, http://www.m-w.com/dictionary/; + q, false);
xmlHttp.send();
  }
  
  var windowW = 500;

  var sBody = xmlHttp.responseText.replace( /[\r\n]/gi,  );
  var re = /(h2.+\/h2.*([^]+)\s+entr.+found for.+Main Entry:.+)img src=\/images\/pixt\.gif.+More Information on/mig;
  var results = re.exec( sBody );
  if ( results != null )
  {
var optionHtml = '';
var entriesFound = parseInt( results[ 2 ], 10 );
if ( isNaN( entriesFound ) )
  entriesFound = 1;

var html = results[ 1 ].replace( /(src=)/gi, src=\http://www.m-w.com; ).replace( /(href=\/)/gi, href=\http://www.m-w.com/; );

if ( entriesFound == 1 )
  html = html.replace( /(Main Entry:)/, 'br/br/$1' );
else
{
  html = html.replace( /(Main Entry:)/, 'br/$1' );

  var options = /(option.*)\/select/.exec( html );
  if ( options != null )
  {
var allFormVars = html.replace( /.*input.*name=?hdwd? value=([^]+).*input.*name=?listword? value=([^]+).*input.*name=?list? value=([^]+).*/i, 
listword=$2book=Dictionarylist=$3 );
options = options[ 1 ].split( 'option' );
optionHtml += 'ul style=margin-top: 0px; margin-bottom: 0px';
for ( var i = 0; i  options.length; i++ )
  if ( options[ i ] !=  )
  {
var words = /([^[]+)(.*)/.exec( options[ i ] );
var formVars = 'hdwd=' + options[ i ] + '' + allFormVars;
optionHtml += 'lia href= onMouseUp=parent.mwdx(' + escape( words[ 1 ] ) + extraArgDelim + escape( formVars ) + ');' + options[ i ] + '/a/li';
  }
optionHtml += '/ul';
  }
  
  html = html.replace( /(To select an entry, click on it\..*)form/, '$1' + optionHtml + 'form' );
}
html = html.replace( /For more results.*click here\/a\./gi, '' );
html = html.replace( /h2/i, 'h2 style=font-size: 16px' );
html = html.replace( new RegExp( String.fromCharCode(65535), g ), '-' ); // weirdness
html = html.replace( /font size=-1([^]+)\/font/gi, $1 );
html = html.replace( /form.*\/form/ig, '' );
html = html.replace( /(a\s+)href=(http:\/\/www.m-w.com\/dictionary\/([^]+))([^]*)/gi, $1 href=\\ onMouseUp=parent.mwdx(\$3\); $4 );
html = html.replace( /a href=javascript:popWin\('\/cgi-bin\/(audio.pl[^']+)'\)/gi, 'a href= onMouseUp=parent.openSearchWindow(\http://www.m-w.com/cgi-bin/$1\;);' );
  }
  else
  {
results = /(Suggestions for.+\/PRE)/ig.exec( sBody );
if ( results != null )
{
  var html = results[ 1 ].replace( /href=[^]+va=([^]+)/gi, 'href= onMouseUp=parent.mwdx($1

RE: [DQSD-Users] new mwdx search (Merriam-Webster search, results in a pop-up window)

2006-02-01 Thread Kim Gräsman
Hi Glenn,

 I'm just now readaing some of these emails, and I missed your 
 suggestion.
 
 I went ahead and added mwdDisplayInPopup as the preference variable. 

Hey, I already did that! :-)

I called mine mwdPopup, so your name is definitely better, I'll see if I can
remove the duplication before you wake up again.

- Kim



---
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnkkid=103432bid=230486dat=121642
___
To unsubscribe visit:
https://lists.sourceforge.net/lists/listinfo/dqsd-users
DQSD-Users@lists.sourceforge.net
http://sourceforge.net/mailarchive/forum.php?forum_id=8601