Err... Of course I forgot to attach it. Sorry about that, Kim
<search function="moonview"> <name>Moon Viewer</name> <category>Reference<category>General</category></category> <contributor>Gregory Krohne</contributor> <link>http://www.fourmilab.ch/cgi-bin/uncgi/Earth/action?opt=-m&img=MoonTopo.evif</link> <email>[EMAIL PROTECTED]</email> <description> View the Moon from Earth, the Sun, a named location, a given latitude and longitude, or your house. See the moon on the night side, as a map, or in blue/white albedo. Use /popup mode to display the image in a popup window. Add your latitude/longitude coordinates to localprefs.js (user_lat, user_lon) to use that location with /me. <div class="helpboxDescLabels">Switches:</div> <table class="helpboxDescTable"> <tr><td>/latitude</td><td> - </td><td>degrees, minutes, seconds</td></tr> <tr><td>/longitude</td><td> - </td><td>or decimal form</td></tr> <tr><td>/north|south</td><td> - </td><td>latitude direction</td></tr> <tr><td>/east|west</td><td> - </td><td>longitude direction</td></tr> <tr><td>/altitude</td><td> - </td><td>in kilometers</td></tr> <tr><td>/from:Earth|Sun|night_side</td><td> - </td><td>defaults to Earth</td></tr> <tr><td>/map</td><td> - </td><td>as a rectangular map</td></tr> <tr><td>/topography|albedo</td><td> - </td><td>defaults to topography</td></tr> <tr><td>/date|universal:[date,time]</td><td> - </td><td>date/time in universal format; defaults to now</td></tr> <tr><td>/julian:number</td><td> - </td><td>date/time in Julian format</td></tr> <tr><td>/image|size</td><td> - </td><td>Image width/height in pixels</td></tr> <tr><td>/no_night</td><td> - </td><td>Always looks "full"</td></tr> <tr><td>/city|location</td><td> - </td><td>A nearby city, instead of lat/lon</td></tr> <tr><td>/quick|me</td><td> - </td><td>Use my coordinates or zip code from localprefs.js.</td></tr> <tr><td>/popup</td><td> - </td><td>Just the image in its own popup window.</td></tr> </table> <div class="helpboxDescLabels">Examples:</div> <table class="helpboxDescTable"> <tr><td>moonview 90 0</td></tr> <tr><td> - at the south pole, right now</td></tr> <tr><td>moonview /lat:21d18m21s /north /lon:157d51m36s /west</td></tr> <tr><td> - Hololulu, Hawaii</td></tr> <tr><td>moonview /city:Paris /date:[2000-01-01,00:00:00]</td></tr> <tr><td> - Paris at the turn of the century</td></tr> <tr><td>moonview /size:1024 /albedo</td></tr> <tr><td> - large blue/white image</td></tr> <tr><td>moonview /me /popup</td></tr> <tr><td> - view from your location (if you set it!) in a popup</td></tr> </table> </description> <form name="moonviewf" method="post" action="http://www.fourmilab.ch/cgi-bin/uncgi/Earth"> <input type="hidden" name="lat" value="" /> <input type="hidden" name="ns" value="" /> <input type="hidden" name="lon" value="" /> <input type="hidden" name="ew" value="" /> <input type="hidden" name="alt" value="" /> <input type="hidden" name="img" value="MoonTopo.evif" /> <input type="hidden" name="utc" value="2000-01-01 0:00:00" /> <input type="hidden" name="jd" value="2451544.50000" /> <input type="hidden" name="imgsize" value="320" /> <input type="hidden" name="daynight" value="" /> <input type="hidden" name="opt" value="" /> <input type="hidden" name="date" value="" /> </form> <script><![CDATA[ function moonview(q) { if( nullArgs("moonview", q) ) return; var gotCity = false; var quick = false; var popup = false; // Set date/time to now, by default document.moonviewf.date.value = "0"; // Parse switches with parseArgs: var args = parseArgs(q, "latitude, longitude, north, south, east, west, altitude, from, map, topography, albedo, now, julian, universal, date, image, size, no_night, quick, me, popup, city, location"); for (var iSwitch = 0; iSwitch < args.switches.length; iSwitch++) { switch( args.switches[iSwitch].name ) { case "latitude": document.moonviewf.opt.value = "-l"; document.moonviewf.lat.value = args.switches[iSwitch].value; break; case "longitude": document.moonviewf.opt.value = "-l"; document.moonviewf.lon.value = args.switches[iSwitch].value; break; case "north": document.moonviewf.ns.value = "North"; break; case "south": document.moonviewf.ns.value = "South"; break; case "east": document.moonviewf.ew.value = "East"; break; case "west": document.moonviewf.ew.value = "West"; break; case "altitude": document.moonviewf.alt.value = args.switches[iSwitch].value; break; case "from": switch ( args.switches[iSwitch].value.toLowerCase() ) { case "earth": case "e": document.moonviewf.opt.value = "-m"; break; case "sun": case "s": document.moonviewf.opt.value = "-s"; break; case "night_side": case "night": case "n": document.moonviewf.opt.value = "-n"; break; default: alert( "I can't find this viewing point: [" + args.switches[iSwitch].value + "]"); break; } break; case "map": document.moonviewf.opt.value = "-p"; break; case "topography": document.moonviewf.img.value = "MoonTopo.evif"; break; case "albedo": document.moonviewf.img.value = "Moon.evif"; break; case "julian": document.moonviewf.date.value = "2"; document.moonviewf.jd.value = args.switches[iSwitch].value; break; case "now": document.moonviewf.date.value = "0"; break; case "universal": case "date": // Parse out the date/time portion, however it was enclosed var pattern = /\d+[\/-]\d+[\/-]\d+/; var result = args.switches[iSwitch].value.match(pattern); if (result != null) { document.moonviewf.utc.value = result[0]; pattern = /\d+:\d+[:\d+]?/; result = args.switches[iSwitch].value.match(pattern); if (result != null) document.moonviewf.utc.value += " " + result[0]; document.moonviewf.date.value = "1"; } break; case "image": case "size": document.moonviewf.imgsize.value = args.switches[iSwitch].value; break; case "no_night": document.moonviewf.daynight.value = "-d"; break; case "quick": case "me": quick = true; break; case "popup": popup = true; break; case "city": case "location": gotCity = findCity( args.switches[iSwitch].value ); break; default: break; } } if (args.q) { var parsed = args.q.split(/ /); document.moonviewf.opt.value = "-l"; document.moonviewf.lat.value = parsed[0]; document.moonviewf.lon.value = parsed[1]; } if (quick ) getMyLocation(); if ( popup ) doPopup(); else submitForm(moonviewf); } function findCity(strCity) { var citiesURL = "http://www.fourmilab.ch/yoursky/cities.html"; // get the target city from the list var citiesXmlHttp = new ActiveXObject("Microsoft.XmlHttp"); citiesXmlHttp.open("GET", citiesURL, false); citiesXmlHttp.send(); var citiesBody = citiesXmlHttp.responseText; // parse out the city we want var cityRegExp = new RegExp( '<a href\\="\\/cgi\\-bin\\/uncgi\\/Yoursky\\?z\\=1\\&lat\\=(.*)\\&ns\\=(North|South)\\&lon\\=(.*)\\&ew\\=(East|West)">' + '\\n?.*' + strCity + '.*' + '<\\/a>', "i"); var cityResult = cityRegExp.exec(citiesBody); if ( cityResult != null ) { document.moonviewf.opt.value = "-l"; document.moonviewf.lat.value = cityResult[1]; document.moonviewf.ns.value = cityResult[2]; document.moonviewf.lon.value = cityResult[3]; document.moonviewf.ew.value = cityResult[4]; return true; } else { alert("City [" + strCity + "] not found"); } return false; }
function doPopup() { // Build up the image URL // http://www.fourmilab.ch/cgi-bin/uncgi/Earth/action?opt=-m&img=MoonTopo.evif var strURL="http://www.fourmilab.ch/cgi-bin/uncgi/Earth/action"; if ( document.moonviewf.opt ) strURL += "?opt=" + document.moonviewf.opt.value; else strURL += "?opt=" + document.moonviewf.opt.value; if ( document.moonviewf.lat.value != "" ) strURL += "&lat=" + document.moonviewf.lat.value; if ( document.moonviewf.lon.value != "" ) strURL += "&lon=" + document.moonviewf.lon.value; if ( document.moonviewf.ns.value != "" ) strURL += "&ns=" + document.moonviewf.ns.value; if ( document.moonviewf.ew.value != "" ) strURL += "&ew=" + document.moonviewf.ew.value; strURL += "&img=MoonTopo.evif"; // Fetch the web page containing the image // This code block is from comx.xml var xmlHttp = new ActiveXObject("Microsoft.XmlHttp"); xmlHttp.open("GET", strURL, false); xmlHttp.send(); //get the response content from the remote site var strBody = xmlHttp.responseText; // parse out the image URL and size /* <img src="/earthview/cache/9985.jpg" ismap usemap="#zoommap" width=320 height=320> */ var objRegExp = new RegExp('<img src=.*?>', "i"); var aResult = objRegExp.exec( strBody ); var sTag = aResult[0]; imgURL = sTag.match(/earthview\/cache\/\d+\.jpg/); var imgURL = "http://www.fourmilab.ch/" + imgURL; aResult = sTag.match(/width=(\d+)/); var size = aResult[1]; // make sure the popup height isnt larger than the display screen (like nonsequitur) var size = size > window.screen.availheight-38 ? window.screen.availheight-38 : size; if (imgURL != ""){ var popupBodyCode = "<html><head></head><body><style>" + convertStylesToInline() + "img {vertical-align:top;text-align:left;}</style>"; popupBodyCode += "<img src=" +imgURL +" width="+size+" height="+size+" border=0 alt=\"Moon View\" onclick='self.close()'; galleryimg='no' />"; popupBodyCode += "</body></html>"; var top=((screen.availheight-size)-38); var left=((screen.width-size)-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.document.open(); popupImage.document.write(popupBodyCode); popupImage.document.close(); popupImage.document.title="Moon View"; // 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 var windowW = Number(size) + 9; var windowH = Number(size) + 34; popupImage.resizeTo(windowW, windowH); }//if imgurl } function getMyLocation() { // If the user has provided coordinates, just use them if ( typeof user_lat != "undefined" && user_lat != "" && typeof user_lon != "undefined" && user_lon != "" ) { document.moonviewf.lat.value = user_lat; document.moonviewf.lon.value = user_lon; document.moonviewf.opt.value = "-l"; return true; } // See if the user gave us a zip code if (typeof user_zip != "undefined" && user_zip != "") { var strURL = "http://zipinfo.com/cgi-local/zipsrch.exe?ll=ll&zip=" + user_zip + "&Go=Go" var xmlHttp = new ActiveXObject("Microsoft.XmlHttp"); xmlHttp.open("GET", strURL, false); xmlHttp.send(); var strBody = xmlHttp.responseText; // <td align=center>30332</font></td><td align=center>33.7759</font></td><td align=center>84.3927</font></td></tr> var objRegExp = new RegExp('<td align=center>' + user_zip + '.*?</tr>', "i"); var sRow = objRegExp.exec( strBody )[0]; var aResult = sRow.match(/\d+\.\d+/g); document.moonviewf.opt.value = "-l"; document.moonviewf.lat.value = aResult[0]; document.moonviewf.lon.value = aResult[1]; return true; } return false; } ]]></script> <copyright> The following applies if this file is included and distributed with Dave's Quick Search Deskbar: Copyright (c) 2002 David Bau; Distributed under the terms of the GNU Public License, Version 2 (http://www.gnu.org/copyleft/gpl.txt) </copyright> <created_by> This search file was initially created on 08/23/04 at 08:07:12 by Dave's Quick Search Deskbar Search Wizard version 1.3, Copyright (c) 2002 Glenn Carr; Distributed under the terms of the GNU General Public License, Version 2 </created_by> </search>