<html id=ieSearch> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="GENERATOR" content="HippieTim"> <meta name="GENERATOR" content="PMShawn"> <title>Internet Explorer Search</title> </head> <style> .AdSpace { } .dlgBtn { cursor: default; border-width: 1px; border-style: solid; color: ButtonText; } .searchTable { padding-top: 5px; } .rightButton { text-align: right; } .userData {behavior:url(#_IE_)} .indentRadio { margin-top:3px; line-height:16pt; margin-left:4px; margin-bottom:3px; } .searchPanel { width: 100%; position: relative; top: 0px; left: 0px; border: 1px solid buttonshadow; margin: 0px; padding: 9px; } select { width:100%; } .inputs { width:100%; } body,p,td { font-size: 8pt; } .selectedTitle { font-weight: bold; } </style> <script defer> // Globals var g_srchPanel; var g_displayPanel; var g_prevSearchStore = "IESA_PreviousSearchesI"; var g_catConfig = "IESA_CatConfigI"; var g_pnlConfig = "IESA_PnlConfigI"; var g_bEnableShellSearch; var g_catObjMap; var g_SRCID_SWebSearch = "{94FD6891-92CD-11d1-A1C6-00C04FD75D13}"; var g_SRCID_SFileSearch = "{3AEBD6B1-975B-11d1-A1C9-00C04FD75D13}"; var g_SRCID_SFindComputer = "{996E1EB1-B524-11d1-9120-00A0C98BA67D}"; var g_SRCID_SFindPrinter = "{D515F311-B78B-11d1-9123-00A0C98BA67D}"; var ENG_IN_PANE = 0x00000001; var PNL_SHELL = 0x00000001; var PNL_DISABLED = 0x00000002; var PNL_POSITIONED = 0x00000004; var shOC; function MyReplace(s, tok, val) { var n = s.indexOf(tok); if (n > -1) { var toklen = tok.length; do { s = s.substring(0, n) + val + s.substring(n + toklen, 2048); n = s.indexOf(tok); } while (n > -1); } return s; } function CEngineBucket(panelID) { this.m_panelID = panelID; // Lets us know about our container this.m_blocks = new Array(); // Array of search engine blocks } function CEngineBucket_UnPersistOrder() { xmlObj.load(g_pnlConfig + this.m_panelID) var doc = xmlObj.XMLDocument; var docNode = doc.documentElement; var n = docNode.childNodes.length; var blockName; for (blockName in this.m_blocks) { var block = eval("this.m_blocks['" + blockName + "']"); block.UnPersistBlock(n, docNode); } } function CEngineBucket_NewEngineBlock(blockName) { this.m_blocks[blockName] = new CEngineBlock(blockName); return this.m_blocks[blockName]; } function CEngineBucket_GetEngineBlock(blockName) { return this.m_blocks[blockName]; } function CEngineBucket_Prototype() { CEngineBucket.prototype.UnPersistOrder = CEngineBucket_UnPersistOrder; CEngineBucket.prototype.NewEngineBlock = CEngineBucket_NewEngineBlock; CEngineBucket.prototype.GetEngineBlock = CEngineBucket_GetEngineBlock; } function CEngineBlock(blockName) { this.m_blockName = blockName; this.m_engs = new Array(); this.m_order = new Array(); this.m_prefCount = 4; } function CEngineBlock_UnPersistBlock(nNodes, docNode) { var i; var bSettingsExist = false; for (i = 0; i < nNodes; i++) { var blockNode = docNode.childNodes.item(i); if (XML_GetAttribute(blockNode, "NAME") == this.m_blockName) { var nEngines = blockNode.childNodes.length; var j; for (j = 0; j < nEngines; j++) { bSettingsExist = true; var engineId = XML_GetAttribute(blockNode.childNodes.item(j), "ID"); if (null != this.m_engs[engineId]) { var nOrder = this.m_order.length; this.m_order[nOrder] = engineId; } } break; } } // Ensure each block has at least one engine. // If no settings have been persisted, turn 'em all on. if (this.m_order.length < 1) { i = 0; for (eng in this.m_engs) { this.m_order[i] = eng + ""; i++; if (bSettingsExist) { break; } } } } function CEngineBlock_NewEngine(engineId, dispName, flags, query) { this.m_engs[engineId] = new CEngine(engineId, dispName, flags, query); return this.m_engs[engineId]; } function CEngineBlock_GetEngine(index) { return this.m_engs[this.m_order[index]]; } function CEngineBlock_GetEngineCount() { return this.m_order.length; } function CEngineBlock_Prototype() { CEngineBlock.prototype.UnPersistBlock = CEngineBlock_UnPersistBlock; CEngineBlock.prototype.NewEngine = CEngineBlock_NewEngine; CEngineBlock.prototype.GetEngine = CEngineBlock_GetEngine; CEngineBlock.prototype.GetEngineCount = CEngineBlock_GetEngineCount; } function CEngine(engineId, dispName, flags, query) { this.m_engineId = engineId; this.m_dispName = dispName; this.m_flags = flags; this.m_query = query; } function CEngine_ProcessQueryFields(names, values) { var url = this.m_query; var n = names.length; for (i = 0; i < n; i++) { url = MyReplace(url, "**" + names[i] + "**", values[i]); } return url; } function CEngine_Prototype() { CEngine.prototype.ProcessQueryFields = CEngine_ProcessQueryFields; } // CPanel "class" function CPanel(pnl) { this.m_panelID = pnl.panelID; this.m_flds = null; this.m_fldNames = null; this.m_fldValues = null; this.m_engBucket = null; this.m_curBlock = "default"; this.m_bNavInPlace = true; var flags = eval(pnl.flags); this.m_flags = (null != flags) ? flags : 0; var pnlInitProc = eval(pnl.InitProc); if (null != pnlInitProc) { this.InitProc = pnlInitProc; } } function CPanel_Show(bShow) { var opt = GetOption(this.m_panelID); var pnl = GetPanel(this.m_panelID); if (bShow) { opt.className = "selectedTitle"; pnl.style.display = ""; this.OnShow(); } else { opt.className = ""; pnl.style.display = "none"; } } function CPanel_ExtractFields() { if (null == this.m_flds) { var srchflds = GetPanel(this.m_panelID).srchflds; var i; if (null != srchflds) { var ctrls = srchflds.split(","); this.m_flds = new Array(); for (i = 0; i < ctrls.length; i++) { this.m_flds[i] = eval("form" + GetPanel(this.m_panelID).panelID + "." + ctrls[i]); } } } } function CPanel_CanSearch() { var L_NeedSearchText_ErrorMessage = "Please specify something to search for!"; var result; var n = this.m_flds.length; var i; for (i = 0; i < n; i++) { if (this.m_flds[i].value.length > 0) { break; } } if (i < n) { result = true; } else { alert(L_NeedSearchText_ErrorMessage); for (i = 0; i < n; i++) { if (itemIsVisible(this.m_flds[i])) { this.m_flds[i].focus(); break; } } result = false; } return result; } function CPanel_CreateEngineBucket() { if (null == this.m_engBucket) { this.m_engBucket = new CEngineBucket(this.m_panelID); return true; } return false; } function CPanel_InitProc() { this.ExtractFields(); } function CPanel_OnShow() { this.InitProc(); this.SetAd(); } function CPanel_ClearFields() { var flds = this.m_flds; if (null != flds) { var n = flds.length; var i; for (i = 0; i < n; i++) { flds.value = ""; } } } function CPanel_PersistSearch() { xmlObj.load(g_prevSearchStore); var doc = xmlObj.XMLDocument; var docNode = doc.documentElement; var node = doc.createNode(1, "PREVIOUSSEARCH", ""); XML_SetAttribute(doc, node, "PANELID", this.m_panelID); XML_SetAttribute(doc, node, "BLOCK", this.m_curBlock); var nvnode; var i; var n = this.m_flds.length; for (i = 0; i < n; i++) { nvnode = doc.createNode(1, "SEARCHFIELD", ""); XML_SetAttribute(doc, nvnode, "NAME", this.m_names[i]); XML_SetAttribute(doc, nvnode, "VALUE", this.m_values[i]); node.insertBefore(nvnode, null); } docNode.insertBefore(node, docNode.firstChild); n = docNode.childNodes.length; for (i = 10; i < n; i++) { docNode.removeChild(docNode.childNodes.item(i)); } xmlObj.save(g_prevSearchStore); } function CPanel_SetNameValuePairs(names, values) { this.m_names = names; this.m_values = values; } function CPanel_SetBlock(block) { if (null != this.m_engBucket.GetEngineBlock(block)) { this.m_curBlock = block; } } function CPanel_RunEngineSearch(engIndex) { g_srchPanel = GetPanel(this.m_panelID); var block = this.m_engBucket.GetEngineBlock(this.m_curBlock); var eng = block.GetEngine(engIndex); var url = eng.ProcessQueryFields(this.m_names, this.m_values); if (eng.m_flags & ENG_IN_PANE) { paneAssistant.style.display = "none"; paneResults.style.display = ""; iframeResults.location.href = url; document.body.style.overflow = "hidden"; } else { window.open(url, "_main"); } } function CPanel_SetupNextMenu() { if (null != saOC) { var block = this.m_engBucket.GetEngineBlock(this.m_curBlock); var n = block.GetEngineCount(); if (n > 1) { var i; for (i = 0; i < n; i++) { var eng = block.GetEngine(i); saOC.AddNextMenuItem(eng.m_dispName, i); } } } } function CPanel_RunWebSearch() { if (this.CanSearch()) { this.m_names = new Array(); this.m_values = new Array(); var n = this.m_flds.length; var i; for (i = 0; i < n; i++) { this.m_names[i] = this.m_flds[i].name; this.m_values[i] = this.m_flds[i].value; } this.PersistSearch(); this.SetupNextMenu(); this.RunEngineSearch(0); } } function CPanel_OnEnter() { this.RunWebSearch(); } function CPanel_GetNextEngine() { var max = this.m_engBucket.GetEngineBlock(this.m_curBlock).GetEngineCount(); curEngine += 1; if (curEngine >= max) { curEngine = 0; } else if (curEngine < 0) { curEngine = max - 1; } return curEngine; } function CPanel_SetAd() { var L_BroughtToYou_Text = "Brought to you by "; var idAd = document.all["ad" + this.m_panelID]; if (idAd != null) { if (null != this.m_engBucket) { var block = this.m_engBucket.GetEngineBlock(this.m_curBlock); idAd.innerHTML = L_BroughtToYou_Text + block.GetEngine(0).m_dispName; } } } function CPanel_SetDefFocus() { if ((this.m_flds != null) && (this.m_flds.length > 0)) { this.m_flds[0].focus(); } } function CPanel_InitializeDefaults() { if (!(this.m_flags & PNL_SHELL)) { this.InitProc(); if (null != this.m_engBucket) { var blockName; for (blockName in this.m_engBucket.m_blocks) { var block = this.m_engBucket.GetEngineBlock(blockName); var nEngs = block.GetEngineCount(); var prefCount = block.m_prefCount < nEngs ? block.m_prefCount : nEngs; var i; var engineName; i = 0; for (engineName in block.m_engs) { block.m_order[i] = engineName; i++; } for (i = 0; i < nEngs; i++) { var rand; if (i < prefCount) { rand = Math.floor(prefCount * Math.random()); } else { rand = Math.floor((nEngs - prefCount) * Math.random()) + prefCount; } var ordSave = block.m_order[i]; block.m_order[i] = block.m_order[rand]; block.m_order[rand] = ordSave; } } } } } function CPanel_Prototype() { // NOTE: All of these methods can be overridden easily. // For instance, the InitProc method must be overridden // (it is also the best place to hook in overrides). CPanel.prototype.CanSearch = CPanel_CanSearch; CPanel.prototype.ClearFields = CPanel_ClearFields; CPanel.prototype.CreateEngineBucket = CPanel_CreateEngineBucket; CPanel.prototype.ExtractFields = CPanel_ExtractFields; CPanel.prototype.GetNextEngine = CPanel_GetNextEngine; CPanel.prototype.InitializeDefaults = CPanel_InitializeDefaults; CPanel.prototype.InitProc = CPanel_InitProc; // intended to be "virtual" CPanel.prototype.OnEnter = CPanel_OnEnter; CPanel.prototype.OnShow = CPanel_OnShow; CPanel.prototype.PersistSearch = CPanel_PersistSearch; CPanel.prototype.RunEngineSearch = CPanel_RunEngineSearch CPanel.prototype.RunWebSearch = CPanel_RunWebSearch; CPanel.prototype.SetAd = CPanel_SetAd; CPanel.prototype.SetBlock = CPanel_SetBlock; CPanel.prototype.SetDefFocus = CPanel_SetDefFocus; CPanel.prototype.SetNameValuePairs = CPanel_SetNameValuePairs; CPanel.prototype.SetupNextMenu = CPanel_SetupNextMenu; CPanel.prototype.Show = CPanel_Show; } function GetPanelObj(panelID) { var res = g_catObjMap[panelID]; if (res == null) { ODS("null return in GetPanelObj!"); } return res; } function GetPanel(panelID) { return ObjFromPanelID(panel, panelID); } function GetOption(panelID) { return ObjFromPanelID(option, panelID); } function GetRadioButton(panelID) { return ObjFromPanelID(rbSearch, panelID); } function PersistSettings() { var i; var n; xmlObj.load(g_catConfig); doc = xmlObj.XMLDocument; docNode = doc.documentElement; XML_EmptyDocNode(docNode); var defPanelOrder = new Array("Web", "Pers", "Co", "Files", "Prev", "Map", "Enc", "News", "Printer", "Computer"); n = defPanelOrder.length; for (i = 0; i < n; i++) { var pnl = ObjFromPanelID(panel, defPanelOrder[i]); if (null != pnl) { var catNode = doc.createNode(1, "CATEGORY", ""); XML_SetAttribute(doc, catNode, "PANELID", defPanelOrder[i]); docNode.insertBefore(catNode, docNode.childNodes[0]); } } xmlObj.save(g_catConfig); n = panel.length; for (i = 0; i < n; i++) { var pnlObj = GetPanelObj(panel[i].panelID); if (!(pnlObj.m_flags & PNL_SHELL)) { if (null != pnlObj.m_engBucket) { xmlObj.load(g_pnlConfig + panel[i].panelID); doc = xmlObj.XMLDocument; docNode = doc.documentElement; XML_EmptyDocNode(docNode); for (blockName in pnlObj.m_engBucket.m_blocks) { var block = pnlObj.m_engBucket.GetEngineBlock(blockName); var nEngines = block.GetEngineCount(); var blockNode = doc.createNode(1, "BLOCK", ""); var j; XML_SetAttribute(doc, blockNode, "NAME", blockName); for (j = 0; j < nEngines; j++) { var engNode = doc.createNode(1, "ENGINE", ""); XML_SetAttribute(doc, engNode, "ID", block.GetEngine(j).m_engineId); blockNode.insertBefore(engNode, blockNode.childNodes[0]); } docNode.insertBefore(blockNode, docNode.childNodes[0]); } xmlObj.save(g_pnlConfig + panel[i].panelID); } } } } function EnableOptions(obj, bEnable) { var kids = obj.children; var n = kids.length; var i; for (i = 0; i < n; i++) { var kid = kids[i]; if (kid.children.length > 0) { EnableOptions(kid, bEnable); //recurse } if ((kid.tagName == "INPUT") && (kid.type == "radio")) { kid.disabled = !bEnable; } } } function ShowPanel(panelID, optCount) { InitializePanels(); var pnlObj = GetPanelObj(panelID); // Don't try to work with a null and don't try to add a disabled or already positioned option if ((null != pnlObj) && (!(pnlObj.m_flags & (PNL_DISABLED | PNL_POSITIONED)))) { var spanHost; if (optCount < 5) { spanHost = spanTopFive; } else { if (showMeMore.style.display != "") { showMeMore.style.display = ""; } spanHost = spanTheRest; } spanHost.insertBefore(GetOption(panelID)); pnlObj.m_flags |= PNL_POSITIONED; optCount++; } return optCount; } function ObjFromPanelID(col, panelID) { var n = col.length; var i; for (i = 0; i < n; i++) { if (col[i].panelID == panelID) return col[i]; } ODS(col[i].id + " " + panelID + " not found!"); return null; } function InitializePanels() { if (g_catObjMap == null) { var i; var nPanels; g_catObjMap = new Array; // * Assign each panel basic data // * Tell each radio button about it's corresponding panel about each other nPanels = panel.length; for (i = 0; i < nPanels; i++) { g_catObjMap[panel[i].panelID] = new CPanel(panel[i]); } } } function win_OnLoad() { var i; var n; window.onerror = win_OnError; // Build class prototypes CPanel_Prototype(); CEngineBucket_Prototype(); CEngineBlock_Prototype(); CEngine_Prototype(); var optCount = 0; // Check if shell support is enabled g_bEnableShellSearch = (null != saOC) ? saOC.ShellFeaturesEnabled : false; if (g_bEnableShellSearch) { shOC = new ActiveXObject("Shell.Application"); if (null == shOC) { // RUH-ROH! Couldn't instantiate the shell OC, better to disable the feature // than to get script errors. // REVIEW: Should we display a "friendly" error message? g_bEnableShellSearch = false; } } if (g_bEnableShellSearch) { var searches = saOC.Searches; if ((!saOC.InWebFolder) && (null != searches)) { var searchCount = searches.Count; if (searchCount < 1) { var defSearch = searches.Default; var topPanelID = ""; var panelMap = new Array(g_SRCID_SFileSearch, "Files", g_SRCID_SFindComputer, "Computer", g_SRCID_SFindPrinter, "Printer"); for (i = 0; i < panelMap.length; i += 2) { if (defSearch.toLowerCase() == panelMap[i].toLowerCase()) { topPanelID = panelMap[i + 1]; break; } } if (topPanelID != "") { optCount = ShowPanel(topPanelID, optCount); } } else { for (i = 0; i < searcheCount; i++) { var search = searches.Item(i); // TODO: Need to generate search blocks and call ShowPanel() } } } InitializePanels(); } else { InitializePanels(); for (i = 0; i < panel.length; i++) { var pnlObj = GetPanelObj(panel[i].panelID); if (pnlObj.m_flags & PNL_SHELL) { pnlObj.m_flags |= PNL_DISABLED; } } } xmlObj.load(g_catConfig); // First time initialization. if (xmlObj.XMLDocument.documentElement.childNodes.length < 1) { n = panel.length; for (i = 0; i < n; i++) { GetPanelObj(panel[i].panelID).InitializeDefaults(); } PersistSettings(); // Reload, since we have no idea what's currently loaded. xmlObj.load(g_catConfig); } var doc = xmlObj.XMLDocument; var docNode = doc.documentElement; n = docNode.childNodes.length; for (i = 0; i < n; i++) { optCount = ShowPanel(XML_GetAttribute(docNode.childNodes.item(i), "PANELID"), optCount); } EnableOptions(spanTopFive, true); spanLoading.style.display = "none"; spanOptions.style.display = ""; var defPanelID = spanTopFive.children[0].panelID; GetRadioButton(defPanelID).click(); GetPanelObj(defPanelID).SetDefFocus(); //document.onkeypress = doc_OnKeyPress; } function customize() { window.open("customize.htm", "_main"); } function doc_OnKeyPress() { if ((event.keyCode == 13) && (event.srcElement.tagName == "INPUT") && (event.srcElement.type == "button")) { OnEnter(); } } function win_OnError(message, url, line) { // This is displayed when a script error occurs var L_ScriptErrMsg_ErrorMessage = "An error has occured on this page."; var L_ScriptErrLine_Text = "Line: "; var L_ScriptErrURL_Text = "URL: "; var str = L_ScriptErrMsg_ErrorMessage + "\n\n" + L_ScriptErrLine_Text + line + "\n" + L_ScriptErrURL_Text + url + "\n\n" + message; ODS(str); return true; } function XML_EmptyDocNode(docNode) { var n = docNode.childNodes.length; var i; for (i = 0; i < n; i++) { docNode.removeChild(docNode.childNodes.item(0)) } } function XML_SetAttribute(doc, node, name, value) { var attr = doc.createNode(2, name, ""); attr.nodeValue = value; node.attributes.setNamedItem(attr); } function XML_GetAttribute(node, name) { var attr = node.attributes.getNamedItem(name); if (null != attr) { return attr.nodeValue; } else { return ""; } } function OnEnter() { // Check for null in case anxious user hits enter before we've inited. if (null != g_displayPanel) { GetPanelObj(g_displayPanel.panelID).OnEnter(); } } function NewSearch() { paneAssistant.style.display = ""; paneResults.style.display = "none"; iframeResults.location.href = "about:blank"; document.body.style.overflow = "auto"; } function opt_OnClick(panelID) { if (null != g_displayPanel) { GetPanelObj(g_displayPanel.panelID).Show(false); } // Check for null in case a user clicks on an option // before onLoad has fired. var pnlObj = GetPanelObj(panelID); if (null != pnlObj) { g_displayPanel = GetPanel(panelID); pnlObj.Show(true); } } function itemIsVisible(item) { var curItem = item; while (curItem.style.display != "none") { curItem = curItem.parentElement; if (null == curItem) { return true; } } return false; } function showMore() { EnableOptions(spanTheRest, true); showMeMore.style.display = "none"; spanTheRest.style.display = ""; } function spewChildren(elem) { var s = elem.name + " contains\n"; var i; var n = elem.children.length; for (i = 0; i < n; i++) { s += "name="+ elem.children[i].name + "tag="+elem.children[i].tagName +"\n"; } ODS(s); } function spewCollection(coll) { var s = coll.name + " " for (x in coll) { s += x + " "; } ODS(s); } var g_Dbg = ""; function Debug() { var s = prompt('Debugger:', g_Dbg); if ((s != "") && (s != "undefined") && (s != null)) { g_Dbg = s; ODS(eval(g_Dbg)); } } function ODS(s) { alert(s); } </script> <script defer for=saOC event="OnNextMenuSelect(idItem)"> GetPanelObj(g_srchPanel.panelID).RunEngineSearch(idItem); </script> <body bgcolor=window text=windowtext scroll=no style="margin:0px;overflow:auto" onload="return win_OnLoad()"> <basefont id=idBaseFont face="MS Shell Dlg"> <!-- Search Assistant OC --> <span style="display:none"> <object id=saOC CLASSID='clsid:B45FF030-4447-11D2-85DE-00C04FA35C89' HEIGHT=0 width=0></object> <input type=hidden id=xmlObj style="behavior:url(#_IE_)" class=userData> </span> <!-- Search results pane --> <div id=paneResults style="display:none;margin:0px"> <iframe id="iframeResults" width="100%" height="100%" style="position:relative;top:0;left:0;margin:0px" src="about:blank"> </iframe> </div> <!-- Options and search specific panels pane --> <div id=paneAssistant style="padding-left:9px;padding-right:9px;padding-top:6px;width:100%"> <div id=id0000> <span> <span id=spanLoading> Loading Search Settings... </span> <span id=spanOptions style="display:none"> <nobr id=idChooseCategory>Choose a category for your search:</nobr> <ul class="indentRadio"> <span id=spanTopFive> </span> <div id=showMeMore style="display:none;text-align:'right'"> <a href="javascript:showMore();" title="Show more search categories">more...</a> </div> <span id=spanTheRest style="display:none"> </span> <span id=spanTheWell style="display:none"> <!-- Web searches --> <span id=option panelID=Web lbl=lWebPage> <nobr> <input panelID=Web type=radio name=rbSearch disabled=true id=optWeb accesskey=w onclick="opt_OnClick(this.panelID)"> <label id=lWebPage for=optWeb>Find a <u>W</u>eb page</label> </nobr> <br> </span> <span id=option panelID=Pers lbl=lPersonal> <nobr> <input panelID=Pers type=radio name=rbSearch disabled=true id=optPers accesskey=a onclick="opt_OnClick(this.panelID)"> <label id=lPersonal for=optPers>Find a Person's <u>A</u>ddress</label> </nobr> <br> </span> <span id=option panelID=Co lbl=lCompany> <nobr> <input panelID=Co type=radio name=rbSearch disabled=true id=optCo accesskey=c onclick="opt_OnClick(this.panelID)"> <label id=lCompany for=optCo>Find a <u>C</u>ompany/organization</label> </nobr> <br> </span> <span id=option panelID=Enc lbl=lEncyclopedia> <nobr> <input panelID=Enc type=radio name=rbSearch disabled=true id=optEnc accesskey=e onclick="opt_OnClick(this.panelID)"> <label id=lEncyclopedia for=optEnc>Find in <u>E</u>ncyclopedia</label> </nobr> <br> </span> <span id=option panelID=Map lbl=lMap> <nobr> <input panelID=Map type=radio name=rbSearch disabled=true id=optMap accesskey=m onclick="opt_OnClick(this.panelID)"> <label id=lMap for=optMap>Find a <u>M</u>ap</label> </nobr> <br> </span> <span id=option panelID=News lbl=lNews> <nobr> <input panelID=News type=radio name=rbSearch disabled=true id=optNews accesskey=n onclick="opt_OnClick(this.panelID)"> <label id=lNews for=optNews>Find in <u>N</u>ewsgroups</label> </nobr> <br> </span> <span id=option panelID=Prev> <nobr> <input panelID=Prev type=radio name=rbSearch disabled=true id=optPrev accesskey=p onclick="opt_OnClick(this.panelID)"> <label id=lPrevious for=optPrev><U>P</U>revious Searches</label> </nobr> <br> </span> <!-- Shell searches --> <span id=option panelID=Files lbl=lFiles> <nobr> <input panelID=Files type=radio name=rbSearch disabled=true id=optFiles accesskey=z onclick="opt_OnClick(this.panelID)"> <label id=lFiles for=optFiles>Find Files and Folders</label> </nobr> <br> </span> <span id=option panelID=Printer lbl=lPrinter> <nobr> <input panelID=Printer type=radio name=rbSearch disabled=true id=optPrinter accesskey=z onclick="opt_OnClick(this.panelID)"> <label id=lPrinter for=optPrinter>Find a Printer</label> </nobr> <br> </span> <span id=option panelID=Computer lbl=lComputer> <nobr> <input panelID=Computer type=radio name=rbSearch disabled=true id=optComputer accesskey=z onclick="opt_OnClick(this.panelID)"> <label id=lComputer for=optComputer>Find a Computer</label> </nobr> <br> </span> <span id=option panelID=Custom lbl=lCustom> <nobr> <input panelID=Custom type=radio name=rbSearch disabled=true id=optCustom onclick="opt_OnClick(this.panelID)"> <label id=lCustom for=optCustom>TBD</label> </nobr> <br> </span> </span> </ul> </span> </span> </div> <!-- specific search option panels --> <!-- Web searches --> <!-- Standard Web Query --> <script defer> // "virtual" CPanel.InitProc function WebInitProc() { if (this.CreateEngineBucket()) { var block = this.m_engBucket.NewEngineBlock("default"); block.m_prefCount = 5; block.NewEngine("altavista","AltaVista", ENG_IN_PANE, "http://www.altavista.com/cgi-bin/query?pg=n200&kl=XX&q=**SearchText**"); block.NewEngine("infoseek", "InfoSeek", ENG_IN_PANE, "http://www.infoseek.com/Titles?qt=**SearchText**&col=WW%2Ccat_RES&sv=M6&lk=noframes&nh=10&ud9=IE5"); block.NewEngine("hotbot", "HotBot", ENG_IN_PANE, "http://www.hotbot.com/msiesearchpanel/msResult.html?MT=**SearchText**&DV=0&RG=all&_v=2&OPs=MDRTP"); block.NewEngine("lycos", "Lycos", ENG_IN_PANE, "http://www.lycos.com/cgi-bin/pursuit?mtemp=msie&results=ie4&etemp=error_msie&query=**SearchText**&matchmode=and"); block.NewEngine("msn", "MSN Web Search", ENG_IN_PANE, "http://search.msn.com/spbasic.htm?MT=**SearchText**"); block.NewEngine("excite", "Excite", ENG_IN_PANE, "http://search.excite.com/search.gw?trace=1&look=ie40&search=**SearchText**"); block.NewEngine("aolnetfind", "AOL NetFind", ENG_IN_PANE, "http://netfind.aol.com/search.gw?c=web&lk=aolienew_us&search=**SearchText**"); block.NewEngine("yahoo", "Yahoo!", ENG_IN_PANE, "http://search.yahoo.com/search?o=1&m=i&a=fd&p=**SearchText**"); block.NewEngine("euroseek", "Euroseek", ENG_IN_PANE, "http://www.euroseek.net/query?iflang=uk&style=msie&query=**SearchText**&domain=world&lang=world"); this.m_engBucket.UnPersistOrder(); this.ExtractFields(); } } </script> <div class=searchPanel id=panel style="display:none" panelID=Web srchflds=txtWebSearch InitProc=WebInitProc> <form id=formWeb onsubmit="OnEnter();return false;"> Find a web page containing:<br> <input class=inputs type=text name=SearchText id=txtWebSearch><br> <table width=100% cellspacing=0 cellpadding=0 class=searchTable> <tr> <td> <div class=AdSpace id=adWeb></div> </td> <td class=rightButton> <input type=submit id=btnWebSearch value=Search title="Start Searching"> </td> </tr> </table> </form> </div> <!-- Search for personal e-mail/snail mail addresses --> <script defer> // "virtual" CPanel.InitProc function PersInitProc() { if (this.CreateEngineBucket()) { block = this.m_engBucket.NewEngineBlock("email"); block.NewEngine("infospace", "InfoSpace", ENG_IN_PANE, "http://in-110.infospace.com/_1_211777544__info.iebar/Email?leftbar=1&QN=**LastName**&QF=**FirstName**&QC=**City**&QS=**State**&QO="); block.NewEngine("bigfoot", "Bigfoot", ENG_IN_PANE, "http://search.bigfoot.com/search?FormName=SearchBar&locale=en&action=e&SearchName=**FirstName**%20**LastName**"); block = this.m_engBucket.NewEngineBlock("smail"); block.NewEngine("infospace", "InfoSpace", ENG_IN_PANE, "http://in-128.infospace.com/_1_66025228__info.iebar/kevdb-g2?KDB=res-us&OTMPL=%2Fres%2Fr1.html&QTAPPEND=QN%2CQF&QFM=N&QK=5&QN=**LastName**&QF=**FirstName**&QC=**City**&QS=**State**"); block.NewEngine("bigfoot", "Bigfoot", ENG_IN_PANE, "http://search.bigfoot.com/search?FormName=SearchBar&locale=en&Action=W&SearchName=**FirstName**%20**LastName**"); this.m_curBlock = "smail"; this.m_engBucket.UnPersistOrder(); this.ExtractFields(); } } function PersType_OnChange(val) { var pnlObj = GetPanelObj("Pers"); pnlObj.m_curBlock = val; pnlObj.SetAd(); } </script> <div class=searchPanel id=panel style="display:none" panelID=Pers srchflds="txtPersFName,txtPersLName,txtPersCity,txtPersState" InitProc=PersInitProc> <form id=formPers onsubmit="OnEnter();return false;"> <span id=idPersSearchFor>Search For:</span><br> <select id=persSubType onchange=PersType_OnChange(this.value)> <option id=idOptSmail value="smail" selected>mailing address</option> <option id=idOptEmail value="email">e-mail address</option> </select><br> <id id=idPersFirstName>First Name:</id><br> <input class=inputs name=FirstName id=txtPersFName><br> <id id=idPersLastName>Last Name:</id><br> <input class=inputs name=LastName id=txtPersLName> <table cellspacing=0 cellpadding=0 width=100%> <tr> <td id=idPersCity>City:</td> <td width=7 id=id0002> </td> <td width=25 id=idPersState>State/Province:</td> </tr> <tr> <td><input class=inputs name=City id=txtPersCity></td> <td></td> <td><input class=inputs size=2 maxlength=2 name=State id=txtPersState></td> </tr> </table> <table width=100% cellspacing=0 cellpadding=0 class=searchTable> <tr> <td> <div class=AdSpace id=adPers></div> </td> <td class=rightButton> <input type=submit id=btnSearchPers value=Search title="Start Searching"> </td> </tr> </table> </form> </div> <!-- Search for companies --> <script defer> // "virtual" CPanel.InitProc function CoInitProc() { if (this.CreateEngineBucket()) { block = this.m_engBucket.NewEngineBlock("default"); block.NewEngine("infoseek", "InfoSeek Company", 0, "http://www.infoseek.com/Titles?qt=**SearchText**&col=HV%2Ckt_A%2Cak_corpdir&sv=IS&lk=noframes&nh=10&ud9=IE5"); this.m_engBucket.UnPersistOrder(); this.ExtractFields(); } } </script> <div class=searchPanel id=panel style="display:none" panelID=Co srchflds=txtCoSearch InitProc=CoInitProc> <form id=formCo onsubmit="OnEnter();return false;"> <id id=idCoCompany>Find company information:</id><br> <input class=inputs name=SearchText id=txtCoSearch> <table width=100% cellspacing=0 cellpadding=0 class=searchTable> <tr> <td> <div class=AdSpace id=adCo></div> </td> <td class=rightButton> <input type=submit id="btnSearchCo" value=Search title="Start Searching"> </td> </tr> </table> </form> </div> <!-- Search encyclopedias --> <script defer> // "virtual" CPanel.InitProc function EncInitProc() { if (this.CreateEngineBucket()) { block = this.m_engBucket.NewEngineBlock("default"); block.NewEngine("encarta", "Encarta", ENG_IN_PANE, "http://find.msn.com/encarta/iesearchresults.asp?ix=concise1&mh=&so=ir_title&pp=1&o1=eq&q1=**SearchText**&c1=ir_title&x=11&y=12"); this.m_engBucket.UnPersistOrder(); this.ExtractFields(); } } </script> <div class=searchPanel id=panel style="display:none" panelID=Enc srchflds=txtEncSearch InitProc=EncInitProc> <form id=formEnc onsubmit="OnEnter();return false;"> <id id=EncEncylopediaFind>Find encyclopedia articles on:</id><br> <input class=inputs name=SearchText id=txtEncSearch> <table width=100% cellspacing=0 cellpadding=0 class=searchTable> <tr> <td> <div class=AdSpace id=adEnc></div> </td> <td class=rightButton> <input type=submit id=btnSearchEnc value=Search title="Start Searching"> </td> </tr> </table> </form> </div> <!-- Search Maps --> <script defer> // "virtual" CPanel.InitProc function MapInitProc() { if (this.CreateEngineBucket()) { block = this.m_engBucket.NewEngineBlock("address"); block.NewEngine("expedia", "Expedia", 0, "http://www.expediamaps.com/results.asp?Street=**StreetAddress**&City=**City**&State=**State**&Zip=**ZipCode**"); block = this.m_engBucket.NewEngineBlock("company"); block.NewEngine("expedia", "Expedia", 0, "http://www.expediamaps.com/results.asp?FindBy=N&Name=**CompanyName**&City=**City**&State=**State**&Zip=**ZipCode**"); block = this.m_engBucket.NewEngineBlock("place"); block.NewEngine("expedia", "Expedia", 0, "http://www.expediamaps.com/results.asp?Place=**PlaceName**"); this.m_engBucket.UnPersistOrder(); this.ExtractFields(); this.m_curBlock = "address"; } } function MapType_OnChange(val) { var pnlObj = GetPanelObj("Map"); pnlObj.m_curBlock = val; pnlObj.SetAd(); switch (val) { case "address": spanMapAddress.style.display = ""; spanMapCompany.style.display = "none"; spanMapPlace.style.display = "none"; break; case "company": spanMapAddress.style.display = ""; spanMapCompany.style.display = ""; spanMapPlace.style.display = "none"; break; case "place": spanMapAddress.style.display = "none"; spanMapCompany.style.display = "none"; spanMapPlace.style.display = ""; break; } } </script> <div class=searchPanel id=panel style="display:none" panelID=Map srchflds="txtMapCompany,txtMapAddress,txtMapCity,txtMapState,txtMapZip,txtMapPlace" InitProc=MapInitProc> <form id=formMap onsubmit="OnEnter();return false;"> <id id=idMapSearchFor>Search For:</id><br> <select id=mapSubType onchange="MapType_OnChange(this.value)"> <option value="address" id=idOptMapAddress selected>Address</option> <option value="company" id=idOptMapCompany>Company</option> <option value="place" id=idOptMapPlace>Place or landmark</option> </select><br> <span id=spanMapCompany style="display:none"> <id id=idMapCompany>This Company Name:</id><br> <input class=inputs name=CompanyName id=txtMapCompany><br> </span> <span id=spanMapAddress> <id id=idMapAddress>This Address:</id><br> <input class=inputs name=StreetAddress id=txtMapAddress><br> <id id=idMapCity>City:</id><br> <input class=inputs name=City id=txtMapCity><br> <span> <table cellspacing=0 cellpadding=0 width=100% id="maptable"> <tr> <td id=idMapState>State/Province:</td> <td width=7 id=id0003> </td> <td width=50 id=idMapZip>Zip/Postal Code:</td> </tr> <tr> <td><input class=inputs id=txtMapState name=State></td> <td></td> <td><input class=inputs size=7 maxlength=11 name=ZipCode id=txtMapZip></td> </tr> </table> </span> </span> <span id=spanMapPlace style="display:none"> <id id=idMapPlace>This place or landmark:</id><br> <input class=inputs name=PlaceName id=txtMapPlace><br> </span> <table width=100% cellspacing=0 cellpadding=0 class=searchTable> <tr> <td> <div class=AdSpace id=adMap></div> </td> <td class=rightButton> <input type=submit id=btnSearchMap value=Search title="Start Searching"> </td> </tr> </table> </form> </div> <!-- Newsgroup search --> <script defer> // "virtual" CPanel.InitProc function NewsInitProc() { if (this.CreateEngineBucket()) { var block = this.m_engBucket.NewEngineBlock("default"); block.NewEngine("dejanews","Dejanews", ENG_IN_PANE, "http://www.dejanews.com/=mssb/dnquery.xp?defaultOp=AND&svcclass=dncurrent&maxhits=10&format=terse2&ST=QS&site=mssb&QRY=**SearchText**"); this.m_engBucket.UnPersistOrder(); this.ExtractFields(); } } </script> <div class=searchPanel id=panel style="display:none" panelID=News srchflds=txtNewsSearch InitProc=NewsInitProc> <form id=formNews onsubmit="OnEnter();return false;"> <id id=idNewsFind>Find a Newsgroup containing:</id><br> <input style="width:100%" type=text name=SearchText id=txtNewsSearch class=inputs><br> <table width=100% cellspacing=0 cellpadding=0 class=searchTable> <tr> <td> <div class=AdSpace id=adNews></div> </td> <td class=rightButton> <input type=submit id=btnNewsSearch value=Search title="Start Searching"> </td> </tr> </table> </form> </div> <!-- Run previous searches --> <script defer> // "virtual" CPanel.InitProc function PrevInitProc() { this.OnEnter = ClearPreviousSearches; xmlObj.load(g_prevSearchStore); var html = ""; var doc = xmlObj.XMLDocument; var docNode = doc.documentElement; var nPrevSearches = docNode.childNodes.length; var i, j; if (nPrevSearches > 0) { for (i = 0; i < nPrevSearches; i++) { var searchNode = docNode.childNodes.item(i); if (searchNode.nodeName == "PREVIOUSSEARCH") { var nFields = searchNode.childNodes.length; var names = ""; var values = ""; var nameValuePairs = ""; var namesAdded = 0; var valsAdded = 0; for (j = 0; j < nFields; j++) { var nvnode = searchNode.childNodes.item(j); if (nvnode.nodeName == "SEARCHFIELD") { var name = XML_GetAttribute(nvnode, "NAME"); var value = XML_GetAttribute(nvnode, "VALUE") if (name != "") { if (namesAdded > 0) { names += ","; } namesAdded++; names += name; if (value != "") { if (valsAdded > 0) { values += ","; } valsAdded++; values += value; value = "\"" + escape(value) + "\""; } else { value = "\"\""; } nameValuePairs += " " + name + "=" + value; } } } var panelID = XML_GetAttribute(searchNode, "PANELID"); var block = XML_GetAttribute(searchNode, "BLOCK"); var opt = GetOption(panelID); if ((null != opt) && (valsAdded > 0)) { var lbl = eval(opt.lbl); if (lbl != null) { var toolTip = eval(lbl).innerText; var thisId = "prevSearch" + i; var itemHTML; itemHTML = "<li class=indent id=" + thisId + " " + "panelID=" + panelID + " block=" + block; itemHTML += " names=" + names + nameValuePairs + "><a href='javascript:RunPreviousSearch(" + thisId + ")' title=\"" + toolTip + "\">" + values + "</a><br>" html += itemHTML; } } } } } if (html != "") { btnClearPrevSearches.disabled = false; } else { btnClearPrevSearches.disabled = true; html = GetEmptyPrevSearchText(); } spanSearchPrev.innerHTML = html; } function GetEmptyPrevSearchText() { var L_EmptyPrevSearch_Text = "There are no saved searches"; return "<span style='font-weight:bold;'>" + L_EmptyPrevSearch_Text + "</span>" } function RunPreviousSearch(item) { var pnlObj = GetPanelObj(item.panelID); if (null != pnlObj) { var names = item.names.split(","); var values = new Array(); var i; var n = names.length; for (i = 0; i < n; i++) { var val = eval("item." + names[i]); values[i] = val != "" ? unescape(val) : ""; } pnlObj.InitProc(); pnlObj.SetNameValuePairs(names, values); pnlObj.SetBlock(item.block); pnlObj.SetupNextMenu(); pnlObj.RunEngineSearch(0); } } function ClearPreviousSearches() { xmlObj.load(g_prevSearchStore); var docNode = xmlObj.XMLDocument.documentElement; var n = docNode.childNodes.length; for (i = 0; i < n; i++) { docNode.removeChild(docNode.childNodes.item(0)); } xmlObj.save(g_prevSearchStore); btnClearPrevSearches.disabled = true; spanSearchPrev.innerHTML = GetEmptyPrevSearchText(); } </script> <div class=searchPanel id=panel style="display:none" InitProc=PrevInitProc panelID=Prev> <id id=idPrevSearches>You've run the following searches:</id><br> <br> <ul> <span ID=spanSearchPrev> </span> </ul> <table width=100% cellspacing=0 cellpadding=0 class=searchTable> <tr> <td class=rightButton> <input type=button id=idBtnClearSearches onclick=OnEnter() value="Clear" title="Clear previous searches" name=btnClearPrevSearches></span> </td> </tr> </table> </div> <!-- Shell searches --> <object id=DocFindOC height=0 width=0 classid="clsid:B005E690-678D-11d1-B758-00A0C90564FE"></object> <object id=ShellOC height=0 width=0 classid="clsid:13709620-C279-11CE-A49E-444553540000"></object> <script defer> // Shell search helpers var g_fShellSearchInProgress = false; var g_btnHandler = null; </script> <script language="javascript" for="DocFindOC" event="SearchStart"> g_fShellSearchInProgress = true; g_btnHandler(); </script> <script language="javascript" for="DocFindOC" event="SearchAbort"> g_fShellSearchInProgress = false; g_btnHandler(); </script> <script language="javascript" for="DocFindOC" event="SearchComplete"> g_fShellSearchInProgress = false; g_btnHandler(); </script> <!-- Files and Folders --> <script defer> function FilesInitProc() { this.OnEnter = FindFilesAndFolders; } function FilesBtnHandler() { if (g_fShellSearchInProgress) { formFiles.btnFilesStartSearch.disabled = true; } else { formFiles.btnFilesStartSearch.disabled = false; } formFiles.btnFilesStopSearch.disabled = !formFiles.btnFilesStartSearch.disabled; } function FindFilesAndFolders() { g_btnHandler = FilesBtnHandler; if (!g_fShellSearchInProgress) { var searchFor = formFiles.txtFilesSearch.value; var lookIn = formFiles.txtFilesLookIn.String; if (searchFor != "") { DocFindOC.SearchFor(0); DocFindOC.AddConstraint("SearchFor", searchFor); DocFindOC.AddConstraint("LookIn", lookIn); DocFindOC.Execute(); } } else { DocFindOC.Execute(); } } function FilesAdvanced() { // show files and folders desk band: var bShow = true ; shOC.ShowBrowserBar("{C4EE31F3-4768-11D2-BE5C-00A0C9A83DA1}", bShow ) ; } </script> <div class=searchPanel id=panel style="display:none" panelID=Files flags="PNL_SHELL" srchflds="txtFilesSearch,txtFilesLookIn" InitProc=FilesInitProc> <form id=formFiles onsubmit="FindFilesAndFolders();return false;"> <id id=idFilesSearch>Search For Files or Folders:</id><br> <input class=text name=SearchText size=26 id=txtFilesSearch><br> <id id=idFilesLookIn>Look In:</id><br> <object classid="clsid:71D90AE1-A4BF-11d1-923E-006097DF5BD4" WIDTH="180px" HEIGHT="25px" id=txtFilesLookIn style="position:relative; left:-1pt"> <param name="AutoComplete In File System" value="1"> <param name="Enable Edit" value="1"> <param name="Persist String" value="Last Search Folder"> </object><br> <input type=submit id=btnFilesStartSearch value=Search title="Start Searching"> <input type=submit id=btnFilesStopSearch value=Stop title="Begin a new search" disabled=true> <br> <id id=idFilesAdvanced>You can do a more <a href="javascript:FilesAdvanced()">detailed search</a> by file contents, date, type, or size.</id> </form> </div> <!-- Printers --> <script defer> function PrinterInitProc() { this.OnEnter = FindPrinter; } function FindPrinter() { ShellOC.FindPrinter(formPrinter.txtPrinterName.value, formPrinter.txtPrinterLoc.value, formPrinter.txtPrinterModel.value); } </script> <div class=searchPanel id=panel style="display:none" panelID=Printer flags="PNL_SHELL" srchflds="txtPrinterName,txtPrinterLoc,txtPrinterModel" InitProc=PrinterInitProc> <form id=formPrinter onsubmit="FindPrinter();return false;"> <id id=idPrinterName>Name:</id><br> <input type=text name=PrinterName id=txtPrinterName class=inputs><br> <id id=idPrinterLocation>Location:</id><br> <input type=text name=PrinterLoc id=txtPrinterLoc class=inputs><br> <id id=idPrinterModel>Model:</id><br> <input type=text name=PrinterModel id=txtPrinterModel class=inputs><br> <input type=submit id=btnPrinterStartSearch value=Search title="Start Searching"> </form> </div> <!-- Computers --> <script defer> function ComputerInitProc() { this.OnEnter = FindComputer; } function ComputerBtnHandler() { if (g_fShellSearchInProgress) { formComputer.btnComputerStartSearch.disabled = true; } else { formComputer.btnComputerStartSearch.disabled = false; } formComputer.btnComputerStopSearch.disabled = !formComputer.btnComputerStartSearch.disabled; } function FindComputer() { g_btnHandler = ComputerBtnHandler; if (!g_fShellSearchInProgress) { var computerName = formComputer.txtComputerName.value; if (computerName != "") { DocFindOC.SearchFor(1); DocFindOC.AddConstraint("SearchFor", computerName); DocFindOC.Execute(); } } else { DocFindOC.Execute(); } } </script> <div class=searchPanel id=panel style="display:none" panelID=Computer flags="PNL_SHELL" srchflds="txtComputerName" InitProc=FindComputer> <form id=formComputer onsubmit="FindComputer();return false;"> <id id=idComputerSearch>Search for:</id><br> <input type=text name=ComputerName id=txtComputerName class=inputs><br> <input type=submit id=btnComputerStartSearch value=Search title="Start Searching"> <input type=submit id=btnComputerStopSearch value=Stop title="Begin a new search" disabled=true> </form> </div> <!-- Custom Folder --> <script defer> </script> <div class=searchPanel id=panel style="display:none" panelID=Custom flags="PNL_SHELL"> <form id=formCustom onsubmit="return false;"> <id id=idCustomSearch>Custom search goes here!</id> <iframe id="iframeCustom" src="about:blank"></iframe> </form> </div> </div> </basefont> </body> </html>