Attached is the latest comx.xml from cvs with the styles change and the
convertStylesToInline() call removed..   Can someone with XP sp2 installed
give it a try and see if it throws an error box?

Thanks

Monty

----- Original Message ----- 
From: "Monty Scroggins" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, September 08, 2004 10:27 PM
Subject: Re: [DQSD-Devel] convertStylesToInline - SP2-hostile


> Oh the version I attached does not have the last mod in cvs - "Removed
> namespace URI"
> I believe this was done in support of SP2 as well..
>
> Monty
>
> ----- Original Message ----- 
> From: "Monty Scroggins" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Wednesday, September 08, 2004 10:23 PM
> Subject: Re: [DQSD-Devel] convertStylesToInline - SP2-hostile
>
>
> The comx.xml file can be modified to not call the convertstylestoinline().
> Practically none of the styles the windows inherit affect the popups
> anyway..
>
> <style>body {background:#fcfcfc;border:0px;margin:0px;padding:0px;}
> img{vertical-align:top;text-align:left;}</style>
> is all the styles needed for the comx popups.
>
> I dont have sp2 installed...  I attached a modified comx.xml...  can
someone
> with sp2 give it a go please?
>
> thx
>
> Monty
>
> ----- Original Message ----- 
> From: "Kim Gr�sman" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Wednesday, September 08, 2004 2:38 PM
> Subject: [DQSD-Devel] convertStylesToInline - SP2-hostile
>
>
> > Hi devs and friends,
> >
> > I've spent a fair couple of evenings going through the various XP SP2
> > problems in DQSD.
> >
> > While I think I've found enough registry settings to tweak to silence
IE,
> > I'm not entirely comfortable disabling browser security entirely to make
> > DQSD run.
> >
> > So, I took a step back and started investigating the "mark of the web"
[1]
> > again. It appears that adding one of those comments to search.htm makes
it
> > render properly in the task bar. Great.
> >
> > Now there's the dynamically generated pages:
> >
> > - help window
> > - help popup from qsfind
> > - comx popup
> > - calendar
> >
> > The help window was fixable, by adding a mark of the web to the
> dynamically
> > gen:ed HTML stream, just before the body - seems to be working OK (there
> are
> > some minor issues, but it renders nicely).
> >
> > The popups, however, are harder. They all throw an Access Denied box,
and
> it
> > appears to be because of convertStylesToInline. It runs through all
> > stylesheet rules on the main document, and builds an inline style decl
> from
> > them. Great idea - unfortunately, it was deemed a security risk [2], and
> MS
> > decided to prohibit it. So, long story short - does anyone have an
> > alternative implementation, that may be run from a locked-down
> environment?
> >
> > Cheers,
> > Kim
> >
> > [1]
> >
>
http://msdn.microsoft.com/security/productinfo/XPSP2/securebrowsing/lockdown
> > _devimp.aspx
> > [2] http://www.security.nnov.ru/search/document.asp?docid=2711
> >
> >
> >
> > -------------------------------------------------------
> > This SF.Net email is sponsored by BEA Weblogic Workshop
> > FREE Java Enterprise J2EE developer tools!
> > Get your free copy of BEA WebLogic Workshop 8.1 today.
> > http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click
> > _______________________________________________
> > DQSD-Devel mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/dqsd-devel
> >
> >
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by BEA Weblogic Workshop
> FREE Java Enterprise J2EE developer tools!
> Get your free copy of BEA WebLogic Workshop 8.1 today.
> http://ads.osdn.com/?ad_idP47&alloc_id808&op�k
> _______________________________________________
> DQSD-Devel mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/dqsd-devel
>
>
<search function="comx">
    <name>Comic Strip</name>
    <description>Displays a daily comic strip in a popup window.
    <table class="helpboxDescTable"><tr><td colspan="2"><div class="helpboxDescLabels">Note:</div> All the switches can be abbreviated
    and multiple switches can be specified at one time.</td></tr><tr><td>--</td></tr><tr><td><div class="helpboxDescLabels">Switches:</div></td></tr>
    <tr><td>9 Chickweed Lane</td><td>/9chickweed</td></tr>
    <tr><td>A Case in Point</td><td>/caseinpoint</td></tr>
    <tr><td>Adam at Home</td><td>/adamathome</td></tr>
    <tr><td>Agnes</td><td>/agnes</td></tr>
    <tr><td>Alley Oop</td><td>/alleyoop</td></tr>
    <tr><td>Andy Capp</td><td>/andycapp</td></tr>
    <tr><td>Animal Crackers</td><td>/animalcrackers</td></tr>
    <tr><td>Annie</td><td>/annie</td></tr>
    <tr><td>Arlo and Janis</td><td>/arloandjanis</td></tr>
    <tr><td>B.C.</td><td>/bc</td></tr>
    <tr><td>Baldo</td><td>/baldo</td></tr>
    <tr><td>Ballard Street</td><td>/ballardstreet</td></tr>
    <tr><td>Ben</td><td>/ben</td></tr>
    <tr><td>Betty</td><td>/betty</td></tr>
    <tr><td>Big Nate</td><td>/bignate</td></tr>
    <tr><td>Big Picture</td><td>/bigpicture</td></tr>
    <tr><td>Big Top</td><td>/bigtop</td></tr>
    <tr><td>Bo Nanas</td><td>/bonanas</td></tr>
    <tr><td>Boondocks</td><td>/boondocks</td></tr>
    <tr><td>Bound and Gagged</td><td>/boundandgagged</td></tr>
    <tr><td>Brenda Starr</td><td>/brendastarr</td></tr>
    <tr><td>Broomhilda</td><td>/broomhilda</td></tr>
    <tr><td>Bulls N Bears</td><td>/bullsnbears</td></tr>
    <tr><td>CEO Dad</td><td>/ceodad</td></tr>
    <tr><td>Calvin and Hobbes</td><td>/calvinandhobbes</td></tr>
    <tr><td>Cats With Hands</td><td>/catswithhands</td></tr>
    <tr><td>Candorville</td><td>/candorville</td></tr>
    <tr><td>Cathy</td><td>/cathy</td></tr>
    <tr><td>Cheap Thrills</td><td>/cheapthrills</td></tr>
    <tr><td>Cleats</td><td>/cleats</td></tr>
    <tr><td>Close to Home</td><td>/closetohome</td></tr>
    <tr><td>Committed</td><td>/committed</td></tr>
    <tr><td>Cornered</td><td>/cornered</td></tr>
    <tr><td>Dick Tracy</td><td>/dicktracy</td></tr>
    <tr><td>Dilbert</td><td>/dilbert</td></tr>
    <tr><td>Doonesbury</td><td>/doonesbury</td></tr>
    <tr><td>Drabble</td><td>/drabble</td></tr>
    <tr><td>Duplex</td><td>/duplex</td></tr>
    <tr><td>Fat Cats</td><td>/fatcats</td></tr>
    <tr><td>Ferdnand</td><td>/ferdnand</td></tr>
    <tr><td>Flight Deck</td><td>/flightdeck</td></tr>
    <tr><td>Flo and Friends</td><td>/floandfriends</td></tr>
    <tr><td>For Better or For Worse</td><td>/forbetterorforworse</td></tr>
    <tr><td>FoxTrot</td><td>/foxtrot</td></tr>
    <tr><td>Frank and Ernest</td><td>/frankandernest</td></tr>
    <tr><td>Frazz</td><td>/frazz</td></tr>
    <tr><td>Fred Basset</td><td>/fredbasset</td></tr>
    <tr><td>Fusco Brothers</td><td>/fuscobrothers</td></tr>
    <tr><td>Garfield</td><td>/garfield</td></tr>
    <tr><td>Gasoline Alley</td><td>/gasolinealley</td></tr>
    <tr><td>Geech</td><td>/geech</td></tr>
    <tr><td>Get Fuzzy</td><td>/getfuzzy</td></tr>
    <tr><td>Ginger Meggs</td><td>/gingermeggs</td></tr>
    <tr><td>Go Fish</td><td>/gofish</td></tr>
    <tr><td>Graffiti</td><td>/graffiti</td></tr>
    <tr><td>Grand Avenue</td><td>/grandavenue</td></tr>
    <tr><td>Heart of the City</td><td>/heartofthecity</td></tr>
    <tr><td>Heathcliff</td><td>/heathcliff</td></tr>
    <tr><td>Helen of the Internet</td><td>/helenoftheinternet</td></tr>
    <tr><td>Herb and Jamaal</td><td>/herbandjamaal</td></tr>
    <tr><td>Herman</td><td>/herman</td></tr>
    <tr><td>Housebroken</td><td>/housebroken</td></tr>
    <tr><td>In the Bleachers</td><td>/inthebleachers</td></tr>
    <tr><td>Janes World</td><td>/janesworld</td></tr>
    <tr><td>Jump Start</td><td>/jumpstart</td></tr>
    <tr><td>Kit N Carlyle</td><td>/kitncarlyle</td></tr>
    <tr><td>Kudzu</td><td>/kudzu</td></tr>
    <tr><td>La Cucaracha</td><td>/lacucaracha</td></tr>
    <tr><td>Liberty Meadows</td><td>/libertymeadows</td></tr>
    <tr><td>Lil Abner</td><td>/lilabner</td></tr>
    <tr><td>Lola</td><td>/lola</td></tr>
    <tr><td>Loose Parts</td><td>/looseparts</td></tr>
    <tr><td>Lost Sheep</td><td>/lostsheep</td></tr>
    <tr><td>Luann</td><td>/luann</td></tr>
    <tr><td>Lucky Cow</td><td>/luckycow</td></tr>
    <tr><td>Lupo Alberto</td><td>/lupoalberto</td></tr>
    <tr><td>Marmaduke</td><td>/marmaduke</td></tr>
    <tr><td>Meatloaf Night</td><td>/meatloafnight</td></tr>
    <tr><td>Meehan Streak</td><td>/meehanstreak</td></tr>
    <tr><td>Meg!</td><td>/meg</td></tr>
    <tr><td>Mister Boffo</td><td>/misterboffo</td></tr>
    <tr><td>Mixed Media</td><td>/mixedmedia</td></tr>
    <tr><td>Moderately Confused</td><td>/moderatelyconfused</td></tr>
    <tr><td>Momma</td><td>/momma</td></tr>
    <tr><td>Monty</td><td>/monty</td></tr>
    <tr><td>Motley</td><td>/motley</td></tr>
    <tr><td>Mullets</td><td>/mullets</td></tr>
    <tr><td>Nancy</td><td>/nancy</td></tr>
    <tr><td>Natural Selection</td><td>/naturalselection</td></tr>
    <tr><td>Nonsequitur</td><td>/nonsequitur</td></tr>
    <tr><td>Off The Mark</td><td>/offthemark</td></tr>
    <tr><td>One Big Happy Classics</td><td>/onebighappyclassics</td></tr>
    <tr><td>Out of the Gene Pool</td><td>/outofthegenepool</td></tr>
    <tr><td>Over the Hedge</td><td>/overthehedge</td></tr>
    <tr><td>Overboard</td><td>/overboard</td></tr>
    <tr><td>PC and Pixel</td><td>/pcandpixel</td></tr>
    <tr><td>Peanuts</td><td>/peanuts</td></tr>
    <tr><td>Pearls Before Swine</td><td>/pearlsbeforeswine</td></tr>
    <tr><td>Pibgorn</td><td>/pibgorn</td></tr>
    <tr><td>Pickles</td><td>/pickles</td></tr>
    <tr><td>Pluggers</td><td>/pluggers</td></tr>
    <tr><td>Pooch Cafe</td><td>/poochcafe</td></tr>
    <tr><td>Pop Culture</td><td>/popculture</td></tr>
    <tr><td>Potluck Parish</td><td>/potluckparish</td></tr>
    <tr><td>Preteena</td><td>/preteena</td></tr>
    <tr><td>Raising Duncan</td><td>/raisingduncan</td></tr>
    <tr><td>Real Life Adventures</td><td>/reallife</td></tr>
    <tr><td>Reality Check</td><td>/realitycheck</td></tr>
    <tr><td>Red and Rover</td><td>/redandrover</td></tr>
    <tr><td>Reynolds Unwrapped</td><td>/reynoldsunwrapped</td></tr>
    <tr><td>Ripleys Believe It or Not</td><td>/ripleysbelieveitornot</td></tr>
    <tr><td>Rose Is Rose</td><td>/roseisrose</td></tr>
    <tr><td>Rubes</td><td>/rubes</td></tr>
    <tr><td>Rudy Park</td><td>/rudypark</td></tr>
    <tr><td>Sheldon</td><td>/sheldon</td></tr>
    <tr><td>Shirley And Son</td><td>/shirleyandson</td></tr>
    <tr><td>Shoe</td><td>/shoe</td></tr>
    <tr><td>Soup To Nutz</td><td>/souptonutz</td></tr>
    <tr><td>Speed Bump</td><td>/speedbump</td></tr>
    <tr><td>Spot The Frog</td><td>/spotthefrog</td></tr>
    <tr><td>Stone Soup</td><td>/stonesoup</td></tr>
    <tr><td>Strange Brew</td><td>/strangebrew</td></tr>
    <tr><td>Tank Mcnamara</td><td>/tankmcnamara</td></tr>
    <tr><td>Tarzan</td><td>/tarzan</td></tr>
    <tr><td>Thats Life</td><td>/thatslife</td></tr>
    <tr><td>The Born Loser</td><td>/bornloser</td></tr>
    <tr><td>The Buckets</td><td>/buckets</td></tr>
    <tr><td>The Grizzwells</td><td>/grizzwells</td></tr>
    <tr><td>The Joy of Tech</td><td>/joyoftech</td></tr>
    <tr><td>The Other Coast</td><td>/othercoast</td></tr>
    <tr><td>The Sunshine Club</td><td>/sunshineclub</td></tr>
    <tr><td>Top of the World!</td><td>/topoftheworld</td></tr>
    <tr><td>User Friendly</td><td>/userfriendly</td></tr>
    <tr><td>Willy n Ethel</td><td>/willynethel</td></tr>
    <tr><td>Wizard of Id</td><td>/wizardofid</td></tr>
    <tr><td>Working Daze</td><td>/workingdaze</td></tr>
    <tr><td>Working It Out</td><td>/workingitout</td></tr>
    <tr><td>Ziggy</td><td>/ziggy</td></tr><tr><td>--</td></tr>
    <tr><td colspan="2"><div class="helpboxDescLabels">Examples:</div></td></tr><tr><td>comx /wiz   </td><td>(Wizard of Id)</td></tr><tr><td>comx /workingit  </td><td>(Working it Out)</td></tr><tr><td>comx /rip   </td><td>(Ripleys Believe it or Not)</td></tr><tr><td>comx /wiz /workingit /rip</td><td>(Opens all three)</td></tr></table></description>
    <category>Fun</category>
    <script><![CDATA[

  function comx(q){
     if( q == "" || q == "?"){
        qsfind("comx /function");
        return false;
     }

     var args = parseArgs(q, "9chickweedlane,agnes,alleyoop,andycapp,arloandjanis,bc,\
     ballardstreet,ben,betty,bignate,bonanas,bornloser,buckets,bullsnbears,candorville,\
     caseinpoint,ceodad,cheapthrills,committed,drabble,fatcats,ferdnand,\
     flightdeck,floandfriends,forbetterorforworse,frankandernest,frazz,geech,getfuzzy,\
     gingermeggs,gofish,graffiti,grandavenue,grizzwells,heathcliff,herbandjamaal,herman,\
     janesworld,jumpstart,kitncarlyle,libertymeadows,lilabner,luann,lupoalberto,marmaduke,\
     meatloafnight,meg,moderatelyconfused,momma,monty,motley,nancy,naturalselection,\
     offthemark,onebighappyclassics,othercoast,outofthegenepool,overthehedge,pcandpixel,\
     pearlsbeforeswine,pibgorn,pickles,potluckparish,raisingduncan,realitycheck,redandrover,\
     ripleysbelieveitornot,roseisrose,rubes,rudypark,sheldon,shirleyandson,souptonutz,\
     speedbump,spotthefrog,strangebrew,sunshineclub,tarzan,thatslife,topoftheworld,\
     wizardofid,workingdaze,workingitout,peanuts,dilbert,animalcrackers,adamathome,annie,\
     baldo,bigpicture,bigtop,boondocks,boundandgagged,brendastarr,broomhilda,calvinandhobbes,\
     catswithhands,cathy,cleats,closetohome,cornered,dicktracy,doonesbury,duplex,foxtrot,fredbasset,\
     fuscobrothers,garfield,gasolinealley,heartofthecity,helenoftheinternet,housebroken,\
     inthebleachers,joyoftech,kudzu,lacucaracha,lola,looseparts,lostsheep,luckycow,meehanstreak,\
     middletons,misterboffo,mixedmedia,mullets,nonsequitur,overboard,pluggers,poochcafe,popculture,\
     preteena,reallife,reynoldsunwrapped,shoe,stonesoup,tankmcnamara,userfriendly,willynethel,ziggy");

     if ( args.switches.length > 0 ){
        //get the current day so the sizes can be adjusted for sunday comics
        var dat = new Date();
        var today = dat.getDay();
        for (i=0; i < args.switches.length; i++){
           //default window sizes for the comic strips window
           var windowW = 600; var windowH = 215;
           //default window sizes for the comic strips window on Sundays
           var sunwindowW = 725; var sunwindowH = 546;
           //default window sizes for the ucomic strips window on Sundays
           var ucsunwindowW = 600; var ucsunwindowH = 425;

           var site=null;
           var endurl=null;
           var imgtitle=null;
           var imgkey=null;
           var urlstart=null;
           var endurl=null;
           var urlcat=null;
           var urldir=null;

           //default regex for finding the image in the page source..
           var rx = /.+(\/archive\/images\/\w+\.\w+)"\s+ALT="Today's\s+Comic"/i;
           switch( args.switches[i].name ){
              case "9chickweedlane": endurl="comics/chickweed/index.html";sunwindowH=533;break;
              case "agnes": endurl="creators/agnes/index.html";sunwindowH=272;break;
              case "alleyoop": endurl="comics/alleyoop/index.html";break;
              case "andycapp": endurl="creators/andycapp/index.html";sunwindowH=385;break;
              case "arloandjanis": endurl="comics/arlonjanis/index.html";break;
              case "bc": endurl="creators/bc/index.html";sunwindowW=725;sunwindowH=521;break;
              case "ballardstreet": endurl="creators/ballardst/index.html";windowW=300;windowH=329;sunwindowH=268;break;
              case "ben": endurl="comics/ben/index.html";sunwindowW=600;sunwindowH=200;break;
              case "betty": endurl="comics/betty/index.html";sunwindowH=378;break;
              case "bignate": endurl="comics/bignate/index.html";sunwindowH=537;break;
              case "bonanas": endurl="wash/bonanas/index.html";sunwindowH=357;break;
              case "bornloser": endurl="comics/bornloser/index.html";sunwindowH=542;break;
              case "buckets": endurl="comics/buckets/index.html";sunwindowH=385;break;
              case "bullsnbears": endurl="comics/bullsnbears/index.html";sunwindowW=600;sunwindowH=200;break;
              case "candorville": endurl="wash/candorville/index.html";sunwindowH=513;break;
              case "caseinpoint": endurl="comics/acaseinpoint/index.html";windowW=348;windowH=460;sunwindowW=348;sunwindowH=460;break;
              case "ceodad": endurl="creators/ceodad/index.html";sunwindowW=600;sunwindowH=200;break;
              case "cheapthrills": endurl="wash/cheapthrills/index.html";windowW=725;windowH=273;sunwindowH=273;break;
              case "committed": endurl="comics/committed/index.html";windowW=321;windowH=394;sunwindowH=377;break;
              case "drabble": endurl="comics/drabble/index.html";sunwindowH=525;break;
              case "fatcats": endurl="comics/fatcats/index.html";sunwindowW=600;sunwindowH=209;break;
              case "ferdnand": endurl="comics/ferdnand/index.html";windowW=600;windowH=177;break;
              case "flightdeck": endurl="creators/flightdeck/index.html";windowW=300;windowH=332;sunwindowH=272;break;
              case "floandfriends": endurl="creators/floandfriends/index.html";sunwindowH=272;break;
              case "forbetterorforworse": endurl="comics/forbetter/index.html";sunwindowW=750;sunwindowH=575;break;
              case "frankandernest": endurl="comics/franknernest/index.html";break;
              case "frazz": endurl="comics/frazz/index.html";sunwindowH=385;break;
              case "geech": endurl="comics/geech/index.html";break;
              case "getfuzzy": endurl="comics/getfuzzy/index.html";sunwindowH=371;break;
              case "gingermeggs": endurl="comics/gingermeggs/index.html";sunwindowW=600;sunwindowH=370;break;
              case "gofish": endurl="comics/gofish/index.html";windowW=321;windowH=352;sunwindowW=600;sunwindowH=314;break;
              case "graffiti": endurl="comics/graffiti/index.html";windowW=321;windowH=541;sunwindowW=321;sunwindowH=550;break;
              case "grandavenue": endurl="comics/grandave/index.html";sunwindowH=370;break;
              case "grizzwells": endurl="comics/grizzwells/index.html";sunwindowW=600;sunwindowH=202;break;
              case "heathcliff": endurl="creators/heathcliff/index.html";windowW=300;windowH=331;break;
              case "herbandjamaal": endurl="creators/herbnjamaal/index.html";break;
              case "herman": endurl="comics/herman/index.html";windowW=300;windowH=381;break;
              case "janesworld": endurl="comics/janesworld/index.html";sunwindowW=600;sunwindowH=211;break;
              case "jumpstart": endurl="comics/jumpstart/index.html";break;
              case "kitncarlyle": endurl="comics/kitncarlyle/index.html";windowW=321;windowH=349;sunwindowW=321;sunwindowH=349;break;
              case "libertymeadows": endurl="creators/liberty/index.html";sunwindowH=271;break;
              case "lilabner": endurl="comics/lilabner/index.html";windowW=800;windowH=226;sunwindowW=800;sunwindowH=228;break;
              case "luann": endurl="comics/luann/index.html";sunwindowH=376;break;
              case "lupoalberto": endurl="comics/lupo/index.html";sunwindowW=600;sunwindowH=205;break;
              case "marmaduke": endurl="comics/marmaduke/index.html";windowW=321;windowH=347;break;
              case "meatloafnight": endurl="comics/meatloaf/index.html";sunwindowW=600;sunwindowH=197;break;
              case "meg": endurl="comics/meg/index.html";sunwindowW=600;sunwindowH=200;break;
              case "moderatelyconfused": endurl="comics/moderatelyconfused/index.html";windowW=321;windowH=399;sunwindowW=321;sunwindowH=399;break;
              case "momma": endurl="creators/momma/index.html";sunwindowH=366;break;
              case "monty": endurl="comics/monty/index.html";break;
              case "motley": endurl="comics/motley/index.html";windowW=504;windowH=146;sunwindowW=504;sunwindowH=142;break;
              case "nancy": endurl="comics/nancy/index.html";break;
              case "naturalselection": endurl="creators/naturalselection/index.html";windowW=300;windowH=356;sunwindowW=300;sunwindowH=356;break;
              case "offthemark": endurl="comics/offthemark/index.html";windowW=321;windowH=359;sunwindowH=251;break;
              case "onebighappyclassics": endurl="creators/onebighappy/index.html";sunwindowW=650;sunwindowH=300;break;
              case "othercoast": endurl="creators/othercoast/index.html";sunwindowH=358;break;
              case "outofthegenepool": endurl="wash/genepool/index.html";sunwindowH=356;break;
              case "overthehedge": endurl="comics/hedge/index.html";break;
              case "pcandpixel": endurl="wash/pcnpixel/index.html";sunwindowH=502;break;
              case "pearlsbeforeswine": endurl="comics/pearls/index.html";sunwindowH=382;break;
              case "pibgorn": endurl="comics/pibgorn/index.html";windowW=600;windowH=420;break;
              case "pickles": endurl="wash/pickles/index.html";sunwindowH=502;break;
              case "potluckparish": endurl="comics/potluck/index.html";windowH=198;sunwindowW=600;sunwindowH=198;break;
              case "raisingduncan": endurl="comics/raisingduncan/index.html";sunwindowH=371;break;
              case "realitycheck": endurl="comics/reality/index.html";windowW=321;windowH=340;sunwindowH=510;break;
              case "redandrover": endurl="wash/redandrover/index.html";sunwindowH=357;break;
              case "ripleysbelieveitornot": endurl="comics/ripleys/index.html";windowW=315;windowH=410;sunwindowH=500;break;
              case "roseisrose": endurl="comics/roseisrose/index.html";break;
              case "rubes": endurl="creators/rubes/index.html";windowW=300;windowH=349;sunwindowH=385;break;
              case "rudypark": endurl="comics/rudypark/index.html";sunwindowH=382;break;
              case "sheldon": endurl="comics/sheldon/index.html";windowH=208;sunwindowW=600;sunwindowH=208;break;
              case "shirleyandson": endurl="comics/shirleynson/index.html";break;
              case "souptonutz": endurl="comics/soup2nutz/index.html";sunwindowH=377;break;
              case "speedbump": endurl="creators/speedbump/index.html";windowW=300;windowH=313;sunwindowH=257;break;
              case "spotthefrog": endurl="comics/spotthefrog/index.html";sunwindowH=377;break;
              case "strangebrew": endurl="creators/strangebrew/index.html";windowW=300;windowH=327;sunwindowH=272;break;
              case "sunshineclub": endurl="comics/sunshineclub/index.html";break;
              case "tarzan": endurl="comics/tarzan/index.html";break;
              case "thatslife": endurl="wash/thatslife/index.html";windowW=300;windowH=349;sunwindowH=354;break;
              case "topoftheworld": endurl="comics/topofworld/index.html";sunwindowW=600;sunwindowH=206;break;
              case "wizardofid": endurl="creators/wizardofid/index.html";break;
              case "workingdaze": endurl="comics/workingdaze/index.html";windowW=335;windowH=408;sunwindowW=335;sunwindowH=408;break;
              case "workingitout": endurl="creators/workingitout/index.html";windowW=300;windowH=332;sunwindowW=300;sunwindowH=332;break;
              // the two oddball ones.. have to have their own rx pattern
              case "peanuts": endurl="comics/peanuts/index.html";windowW=600;windowH=139;rx=/.+(\/archive\/images\/\w+\.\w+)"\s+ALT="Today's Strip"/;imgtitle="Peanuts";break;
              case "dilbert": endurl="comics/dilbert/index.html";rx=/.+(\/archive\/images\/\w+\.\w+)"\s+BORDER=0\s+ALT="Today's Dilbert Comic"/;imgtitle="Dilbert";break;
              // comics from ucomics.com
              case "animalcrackers": imgtitle="Animal Crackers";site="ucomics";imgkey="tmani";break;
              case "adamathome": imgtitle="Adam at Home";site="ucomics";imgkey="ad";break;
              case "annie": imgtitle="Annie";site="ucomics";imgkey="tmann";break;
              case "baldo": imgtitle="Baldo";site="ucomics";imgkey="ba";ucsunwindowH=298;break;
              case "bigpicture": imgtitle="Big Picture";site="ucomics";imgkey="bi";windowH=203;ucsunwindowH=298;break;
              case "bigtop": imgtitle="Big Top";site="ucomics";imgkey="bt";ucsunwindowH=298;break;
              case "boondocks": imgtitle="Boondocks";site="ucomics";imgkey="bo";ucsunwindowH=298;break;
              case "boundandgagged": imgtitle="Bound and Gagged";site="ucomics";imgkey="tmbou";ucsunwindowH=296;break;
              case "brendastarr": imgtitle="Brenda Starr";site="ucomics";imgkey="tmbre";break;
              case "broomhilda": imgtitle="Broom Hilda";site="ucomics";imgkey="tmbro";break;
              case "cathy": imgtitle="Cathy";site="ucomics";imgkey="ca";break;
              case "catswithhands": imgtitle="Cats With Hands";site="ucomics";imgkey="tmcat";break;
              case "cleats": imgtitle="Cleats";site="ucomics";imgkey="cle";ucsunwindowH=298;break;
              case "closetohome": imgtitle="Close to Home";site="ucomics";imgkey="cl";windowW=300;windowH=401;ucsunwindowH=296;break;
              case "cornered": imgtitle="Cornered";site="ucomics";imgkey="co";windowW=300;windowH=385;ucsunwindowH=370;;break;
              case "dicktracy": imgtitle="Dick Tracy";site="ucomics";imgkey="tmdic";ucsunwindowH=830;break;
              case "doonesbury": imgtitle="Doonesbury";site="ucomics";imgkey="db";ucsunwindowH=787;break;
              case "duplex": imgtitle="Duplex";site="ucomics";imgkey="dp";ucsunwindowH=296;break;
              case "foxtrot": imgtitle="Foxtrot";site="ucomics";imgkey="ft";break;
              case "fredbasset": imgtitle="Fred Basset";site="ucomics";imgkey="tmfba";break;
              case "fuscobrothers": imgtitle="Fusco Brothers";site="ucomics";imgkey="fu";ucsunwindowH=406;break;
              case "garfield": imgtitle="Garfield";site="ucomics";imgkey="ga";windowH=179;ucsunwindowH=399;break;
              case "gasolinealley": imgtitle="Gasoline Alley";site="ucomics";imgkey="tmgas";break;
              case "heartofthecity": imgtitle="Heart of the City";site="ucomics";imgkey="hc";windowH=197;ucsunwindowW=600;ucsunwindowH=293;break;
              case "helenoftheinternet": imgtitle="Helen of the Internet";site="ucomics";imgkey="tmhel";break;
              case "housebroken": imgtitle="Housebroken";site="ucomics";imgkey="tmhou";break;
              case "inthebleachers": imgtitle="In the Bleachers";site="ucomics";imgkey="bl";windowW=300;windowH=385;ucsunwindowH=285;break;
              case "joyoftech": imgtitle="The Joy of Tech";site="joyoftech";imgkey="jot";windowH=431;windowW=485;break;
              case "kudzu": imgtitle="Kudzu";site="ucomics";imgkey="tmkud";break;
              case "lacucaracha": imgtitle="La Cucaracha";site="ucomics";imgkey="lc";break;
              case "lola": imgtitle="Lola";site="ucomics";imgkey="tmlol";ucsunwindowH=297;break;
              case "looseparts": imgtitle="Loose Parts";site="ucomics";imgkey="tmloo";windowW=300;windowH=385;ucsunwindowH=297;break;
              case "lostsheep": imgtitle="Lost Sheep";site="ucomics";imgkey="lost";ucsunwindowH=360;break;
              case "luckycow": imgtitle="Lucky Cow";site="ucomics";imgkey="luc";ucsunwindowH=300;break;
              case "meehanstreak": imgtitle="Meehan Streak";site="ucomics";imgkey="tmmee";ucsunwindowH=300;break;
              case "middletons": imgtitle="Middletons";site="ucomics";imgkey="tmmid";break;
              case "misterboffo": imgtitle="Mister Boffo";site="ucomics";imgkey="mb";break;
              case "mixedmedia": imgtitle="Mixed Media";site="ucomics";imgkey="tmmix";ucsunwindowH=281;break;
              case "mullets": imgtitle="Mullets";site="ucomics";imgkey="mul";ucsunwindowH=291;break;
              case "nonsequitur": imgtitle="Nonsequitur";site="ucomics";imgkey="nq";ucsunwindowW=300;ucsunwindowH=1193;break;
              case "overboard": imgtitle="Overboard";site="ucomics";imgkey="ob";ucsunwindowH=291;break;
              case "pluggers": imgtitle="Pluggers";site="ucomics";imgkey="tmplu";windowW=300;windowH=308;break;
              case "poochcafe": imgtitle="Pooch Cafe";site="ucomics";imgkey="poc";ucsunwindowH=279;break;
              case "popculture": imgtitle="Pop Culture";site="ucomics";imgkey="pop";break;
              case "preteena": imgtitle="Preteena";site="ucomics";imgkey="pr";ucsunwindowH=291;break;
              case "reallife": imgtitle="Real Life";site="ucomics";imgkey="rl";windowW=300;windowH=382;ucsunwindowH=295;break;
              case "reynoldsunwrapped": imgtitle="Reynolds Unwrapped";site="ucomics";imgkey="rw";windowW=300;windowH=400;ucsunwindowW=300;ucsunwindowH=400;break;
              case "shoe": imgtitle="Shoe";site="ucomics";imgkey="tmsho";ucsunwindowH=808;break;
              case "stonesoup": imgtitle="Stone Soup";site="ucomics";imgkey="ss";ucsunwindowH=295;break;
              case "tankmcnamara": imgtitle="Tank Mcnamara";site="ucomics";imgkey="tm";ucsunwindowH=295;break;
              case "userfriendly": imgtitle="User Friendly";site="userfriendly";imgkey="uf";windowH=274;windowW=720;sunwindowH=529;break;
              case "willynethel": imgtitle="Willy n Ethel";site="ucomics";imgkey="wes";ucsunwindowH=295;break;
              case "ziggy": imgtitle="Ziggy";site="ucomics";imgkey="zi";windowW=300;windowH=299;break;
              case "calvinandhobbes": imgtitle="Calvin And Hobbes";site="ucomics";imgkey="ch";windowH=190;break;
              default:endurl=null;imgkey=null;break;
           }//switch

           //default to www.comics.com
           switch(site){
              case "altcomics": //not yet implemented
                 break;
              case "joyoftech":
                 var sUrl="http://www.geekculture.com/joyoftech/index.html";;
                 var xmlHttp = new ActiveXObject("Microsoft.XmlHttp");
                 xmlHttp.open("GET", sUrl, false);
                 xmlHttp.send();

                 //get the response content from the remote site
                 var sBody = xmlHttp.responseText;

                 // what I'm looking for
                 //<img src="joyimages/555.png" height="431" width="485" border="0">
                 //<img src="joyimages/578.jpg" height="759" width="593" border="0">
                 var pattern = /joyimages\/\S+.[jpg|png|gif]/ig;
                 var result = sBody.match(pattern)[0];

                 var imgurl = "http://www.geekculture.com/joyoftech/"+result;

                 // This comic is not always the same dimensions, so find the correct dimmensions and save them
                 pattern = /\<img.*src\=\"joyimages\/\S+.[jpg|png|gif]\".*\>/i;
                 result = sBody.match(pattern);
                 var tag = result[0];
                 pattern = /width\s*=\s*\"(\S+)\"/i;
                 result = tag.match(pattern);
                 windowW = result[1];
                 pattern = /height\s*=\s*\"(\S+)\"/i;
                 result = tag.match(pattern);
                 windowH = result[1];

                 break;

              case "userfriendly":
                 var urlstart="http://ars.userfriendly.org/cartoons";;

                 // format the date param for today's comic
                 var mday = "0" + dat.getDate().toString();
                 var month = "0" + (dat.getMonth()+1);
                 var year = dat.getYear();
                 
                 if (today == 0) {
                    windowW=ucsunwindowW;
                    windowH=ucsunwindowH;
                 }

                 var sUrl=urlstart;
                 var xmlHttp = new ActiveXObject("Microsoft.XmlHttp");
                 xmlHttp.open("GET", sUrl, false);
                 xmlHttp.send();

                 //get the response content from the remote site
                 var sBody = xmlHttp.responseText;

                 // what I'm looking for
                 //<IMG ALT="Latest Strip" height="219" WIDTH="576" BORDER=0 SRC="http://www.userfriendly.org/cartoons/archives/04may/xuf006703.gif";>
                 var pattern = /http\:\S+userfriendly\.org\/cartoons\/\S+\.gif/ig;
                 var result = sBody.match(pattern);
                 var imgurl = result[0];

                 // This comic is not always the same dimensions, so find the correct dimmensions and save them
                 pattern = /\<img.*src\=\"http\:\S+userfriendly\.org\/cartoons\/\S+\.gif\".*\>/i;
                 result = sBody.match(pattern);
                 var tag = result[0];
                 pattern = /width\s*=\s*\"(\S+)\"/i;
                 result = tag.match(pattern);
                 windowW = result[1];
                 pattern = /height\s*=\s*\"(\S+)\"/i;
                 result = tag.match(pattern);
                 windowH = result[1];
                 break;

              case "ucomics":
                 var urlstart="http://images.ucomics.com/comics/";;
                 //get the other date parameters for the ucomics image urls
                 var mday = dat.getDate();
                 var month = dat.getMonth()+1;
                 var year = dat.getYear();
                 var subyear = year.toString();
                 subyear = subyear.substr(2,2);
                 if (mday<10) mday= '0'+mday;
                 if (month<10) month= '0'+month;

                 //special handling for the calvinandhobbes comic.. It displays for year 1993
                 if (args.switches[i].name == "calvinandhobbes") {year=1993; subyear=93;}

                 //if the day is Sunday, use the larger Sunday comics sizes for ucomics..
                 if (today == 0) {
                    windowW=ucsunwindowW;
                    windowH=ucsunwindowH;
                 }
                 var imgurl = urlstart+imgkey+"/"+year+"/"+imgkey+subyear+month+mday+".gif";
                 break;

              default:
                 var urlstart="http://www.comics.com/";;
                 //if the day is Sunday, use the larger Sunday comics sizes..
                 if (today == 0) {
                    windowW=sunwindowW;
                    windowH=sunwindowH;
                 }

                 var sUrl=urlstart+endurl;
                 urlmatch = endurl.match(/^(\w+)(\/\w+)/);
                 var urlcat=urlmatch[1];
                 var urldir=urlmatch[2];

                 var xmlHttp = new ActiveXObject("Microsoft.XmlHttp");
                 xmlHttp.open("GET", sUrl, false);
                 xmlHttp.send();

                 //get the response content from the remote site
                 var sBody = xmlHttp.responseText;

                 //run the regex to parse out the image url
                 var imgurl = urlstart+urlcat+urldir+rx.exec(sBody)[1];

                 if (imgtitle==null) {
                    //regex for finding the image title in the page source..
                    var tx = /<title>(.+)<\/title>/i;
                    var imgtitle = tx.exec(sBody)[1];
                 }
                 break;
           }// switch on "site"

           // make sure the popup height isnt larger than the display screen (like nonsequitur)
           windowH = windowH > window.screen.availheight-38 ? window.screen.availheight-38 : windowH;
   
           //put up the window
           if (imgurl != ""){
              var comxSearchPopupBodyCode = "<html><head></head><body><style>body {background:#fcfcfc;border:0px;margin:0px;padding:0px;} img {vertical-align:top;text-align:left;}</style>";
              comxSearchPopupBodyCode += "<img src=" +imgurl +" width="+windowW+" height="+windowH+" border=0 alt=\""+imgtitle+"\" onclick='self.close()'; galleryimg='no' />";
              comxSearchPopupBodyCode += "</body></html>";
              var top=((screen.availheight-windowH)-38);
              var left=((screen.width-windowW)-10);
              popupImage = window.open('','_blank','toolbar=0,status=0,titlebar=0,location=0,directories=0,menuBar=0,scrollbars=auto,resizable=1,left='+left+',top='+top);
              //popupImage = window.open('','_blank','width='+windowW+',height='+windowH+',toolbar=0,status=0,titlebar=0,location=0,directories=0,menuBar=0,scrollbars=auto,resizable=1,left='+left+',top='+top);
              popupImage.document.open();
              popupImage.document.write(comxSearchPopupBodyCode);
              popupImage.document.close()
              popupImage.document.title=imgtitle;
              // The original numbers are correct for the interior window dimensions,
              // but we have to expand the window a little to account for borders,
              // title bar, and such.
              // These numbers where chosen empirically, so they may not look correct
              // on other desktops
              windowW = Number(windowW) + 9;
              windowH = Number(windowH) + 34;
              popupImage.resizeTo(windowW, windowH);
           }//if imgurl
        }// for i <...
     }else{
           setSearchWindowText("Bad Comic Name..  try 'comx ?' to see a list");
           setTimeout("setSearchWindowText('comx ')", 2000);
           return;
     }//else
  } //function

  ]]></script>
</search>

Reply via email to