|
From: <bra...@us...> - 2010-06-01 19:37:14
|
Revision: 3134
http://archive-access.svn.sourceforge.net/archive-access/?rev=3134&view=rev
Author: bradtofel
Date: 2010-06-01 19:37:08 +0000 (Tue, 01 Jun 2010)
Log Message:
-----------
INITIAL REV: new Toolbar.jsp, and accompanying ToolBarData class which draws a snazzy toolbar into HTML pages during replay. ToolBarData does all the heavy lifting of massaging the results data for the jsp
Modified Paths:
--------------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/partition/PartitionsToGraph.java
Added Paths:
-----------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/partition/ToolBarData.java
trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/replay/Toolbar.jsp
Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/partition/PartitionsToGraph.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/partition/PartitionsToGraph.java 2010-06-01 18:52:55 UTC (rev 3133)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/partition/PartitionsToGraph.java 2010-06-01 19:37:08 UTC (rev 3134)
@@ -27,11 +27,14 @@
import java.util.ArrayList;
import java.util.Calendar;
+import java.util.Date;
+import java.util.Iterator;
import java.util.List;
import java.util.TimeZone;
import org.archive.wayback.ResultURIConverter;
import org.archive.wayback.core.CaptureSearchResult;
+import org.archive.wayback.core.CaptureSearchResults;
import org.archive.wayback.util.StringFormatter;
import org.archive.wayback.util.Timestamp;
import org.archive.wayback.util.graph.Graph;
Added: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/partition/ToolBarData.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/partition/ToolBarData.java (rev 0)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/partition/ToolBarData.java 2010-06-01 19:37:08 UTC (rev 3134)
@@ -0,0 +1,226 @@
+/* ToolBarData
+ *
+ * $Id$:
+ *
+ * Created on May 27, 2010.
+ *
+ * Copyright (C) 2006 Internet Archive.
+ *
+ * This file is part of Wayback.
+ *
+ * Wayback is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * any later version.
+ *
+ * Wayback is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser Public License
+ * along with Wayback; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+package org.archive.wayback.partition;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+
+import org.archive.wayback.core.CaptureSearchResult;
+import org.archive.wayback.core.CaptureSearchResults;
+import org.archive.wayback.core.UIResults;
+import org.archive.wayback.util.StringFormatter;
+import org.archive.wayback.util.graph.Graph;
+import org.archive.wayback.util.graph.GraphEncoder;
+import org.archive.wayback.util.partition.Partition;
+import org.archive.wayback.util.partition.PartitionSize;
+import org.archive.wayback.util.partition.Partitioner;
+
+
+/**
+ * @author brad
+ *
+ */
+public class ToolBarData {
+
+ private UIResults uiResults;
+ private StringFormatter fmt;
+
+ /** Latest Result one year before current, or null */
+ public CaptureSearchResult yearPrevResult;
+ /** Latest Result one month before current, or null */
+ public CaptureSearchResult monthPrevResult;
+ /** Latest Result before current, or null */
+ public CaptureSearchResult prevResult;
+ /** Earliest Result after current, or null */
+ public CaptureSearchResult nextResult;
+ /** Earliest Result one month after current, or null */
+ public CaptureSearchResult monthNextResult;
+ /** Earliest Result one year after current, or null */
+ public CaptureSearchResult yearNextResult;
+
+ /** current result being shown */
+ public CaptureSearchResult curResult;
+ /** the CaptureSearchResults object from the ResourceIndex. */
+ public CaptureSearchResults results;
+ /** List<Part<Part<CResult>>> for years*/
+ public List<Partition<Partition<CaptureSearchResult>>> yearPartitions;
+ /** List<Part<CResult>> for months*/
+ public List<Partition<CaptureSearchResult>> monthPartitions;
+
+ private static final PartitionSize yearSize = Partitioner.yearSize;
+ private static final PartitionSize monthSize = Partitioner.monthSize;
+
+ private static final CaptureSearchResultPartitionMap monthMap =
+ new CaptureSearchResultPartitionMap();
+ private static final PartitionPartitionMap yearMap =
+ new PartitionPartitionMap();
+
+ private static final Partitioner<Partition<CaptureSearchResult>>
+ yearPartitioner =
+ new Partitioner<Partition<CaptureSearchResult>>(yearMap);
+ private static final Partitioner<CaptureSearchResult> monthPartitioner =
+ new Partitioner<CaptureSearchResult>(monthMap);
+
+ /**
+ * @param uiResults the UIResults holding replay info
+ */
+ public ToolBarData(UIResults uiResults) {
+ this.uiResults = uiResults;
+ fmt = uiResults.getWbRequest().getFormatter();
+ results = uiResults.getCaptureResults();
+ curResult = uiResults.getResult();
+ findRelativeLinks();
+ Date firstDate = uiResults.getWbRequest().getStartDate();
+ Date lastDate = uiResults.getWbRequest().getEndDate();
+
+ yearPartitions = yearPartitioner.getRange(yearSize,firstDate,lastDate);
+
+ Date firstYearDate = yearPartitions.get(0).getStart();
+ Date lastYearDate = yearPartitions.get(yearPartitions.size()-1).getEnd();
+
+ monthPartitions =
+ monthPartitioner.getRange(monthSize,firstYearDate,lastYearDate);
+
+ Iterator<CaptureSearchResult> it = results.iterator();
+
+ monthPartitioner.populate(monthPartitions,it);
+ yearPartitioner.populate(yearPartitions,monthPartitions.iterator());
+
+ }
+
+ /**
+ * @param formatKey String template for format Dates
+ * @param width pixel width of resulting graph
+ * @param height pixel height of resulting graph
+ * @return String argument which will generate a graph for the results
+ */
+ public String computeGraphString(String formatKey, int width, int height) {
+ Graph graph = PartitionsToGraph.partsOfPartsToGraph(yearPartitions,
+ fmt,formatKey,width,height);
+ return GraphEncoder.encode(graph);
+
+ }
+ /**
+ * @param result Restul to draw replay URL for
+ * @return String absolute URL that will replay result
+ */
+ public String makeReplayURL(CaptureSearchResult result) {
+ return fmt.escapeHtml(uiResults.getURIConverter().makeReplayURI(
+ result.getCaptureTimestamp(), result.getOriginalUrl()));
+ }
+
+ /**
+ * @return the total number of results
+ */
+ public long getResultCount() {
+ return uiResults.getCaptureResults().getReturnedCount();
+ }
+ /**
+ * @return the Date of the first capture in the result set
+ */
+ public Date getFirstResultDate() {
+ return uiResults.getCaptureResults().getFirstResultDate();
+ }
+ /**
+ * @return the Date of the last capture in the result set
+ */
+ public Date getLastResultDate() {
+ return uiResults.getCaptureResults().getLastResultDate();
+ }
+
+
+ private static Date addDateField(Date date, int field, int amt) {
+ Calendar c = PartitionsToGraph.getUTCCalendar();
+ c.setTime(date);
+ c.add(field, amt);
+ return c.getTime();
+ }
+ /**
+ * Increment a Date object by +/- some years
+ * @param date Date to +/- some years from
+ * @param amt number of years to add/remove
+ * @return new Date object offset by the indicated years
+ */
+ public static Date addYear(Date date, int amt) {
+ return addDateField(date,Calendar.YEAR,amt);
+ }
+ /**
+ * Increment a Date object by +/- some months
+ * @param date Date to +/- some months from
+ * @param amt number of months to add/remove
+ * @return new Date object offset by the indicated months
+ */
+ public static Date addMonth(Date date, int amt) {
+ return addDateField(date,Calendar.MONTH,amt);
+ }
+ /**
+ * Increment a Date object by +/- some days
+ * @param date Date to +/- some days from
+ * @param amt number of days to add/remove
+ * @return new Date object offset by the indicated days
+ */
+ public static Date addDay(Date date, int amt) {
+ return addDateField(date,Calendar.DATE,amt);
+ }
+ private void findRelativeLinks() {
+ Date cur = curResult.getCaptureDate();
+
+ Date minYear = addYear(cur,-1);
+ Date minMonth = addMonth(cur,-1);
+ Date addYear = addYear(cur,1);
+ Date addMonth = addMonth(cur,1);
+ Iterator<CaptureSearchResult> itr = results.iterator();
+ while(itr.hasNext()) {
+ CaptureSearchResult result = itr.next();
+ Date d = result.getCaptureDate();
+ if(d.compareTo(cur) < 0) {
+ prevResult = result;
+ if(d.compareTo(minMonth) < 0) {
+ monthPrevResult = result;
+ }
+ if(d.compareTo(minYear) < 0 ) {
+ yearPrevResult = result;
+ }
+ } else if(d.compareTo(cur) > 0) {
+ if(nextResult == null) {
+ nextResult = result;
+ }
+ if(d.compareTo(addYear) > 0) {
+ if(yearNextResult == null) {
+ yearNextResult = result;
+ }
+ }
+ if(d.compareTo(addMonth) > 0) {
+ if(monthNextResult == null) {
+ monthNextResult = result;
+ }
+ }
+ }
+ }
+ }
+}
Property changes on: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/partition/ToolBarData.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Revision Id
Added: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/replay/Toolbar.jsp
===================================================================
--- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/replay/Toolbar.jsp (rev 0)
+++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/replay/Toolbar.jsp 2010-06-01 19:37:08 UTC (rev 3134)
@@ -0,0 +1,353 @@
+<%@
+ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8"
+ %><%@
+ page import="java.util.Iterator"
+ %><%@
+ page import="java.util.ArrayList"
+ %><%@
+ page import="java.util.Date"
+ %><%@
+ page import="java.util.Calendar"
+ %><%@
+ page import="java.util.List"
+ %><%@
+ page import="java.text.ParseException"
+ %><%@
+ page import="org.archive.wayback.ResultURIConverter"
+ %><%@
+ page import="org.archive.wayback.WaybackConstants"
+ %><%@
+ page import="org.archive.wayback.core.CaptureSearchResult"
+ %><%@
+ page import="org.archive.wayback.core.CaptureSearchResults"
+ %><%@
+ page import="org.archive.wayback.core.UIResults"
+ %><%@
+ page import="org.archive.wayback.core.WaybackRequest"
+ %><%@
+ page import="org.archive.wayback.partition.CaptureSearchResultPartitionMap"
+ %><%@
+ page import="org.archive.wayback.partition.PartitionPartitionMap"
+ %><%@
+ page import="org.archive.wayback.partition.PartitionsToGraph"
+ %><%@
+ page import="org.archive.wayback.partition.ToolBarData"
+ %><%@
+ page import="org.archive.wayback.util.graph.Graph"
+ %><%@
+ page import="org.archive.wayback.util.graph.GraphEncoder"
+ %><%@
+ page import="org.archive.wayback.util.graph.GraphRenderer"
+ %><%@
+ page import="org.archive.wayback.util.partition.Partition"
+ %><%@
+ page import="org.archive.wayback.util.partition.Partitioner"
+ %><%@
+ page import="org.archive.wayback.util.partition.PartitionSize"
+ %><%@
+ page import="org.archive.wayback.util.StringFormatter"
+ %><%@
+ page import="org.archive.wayback.util.url.UrlOperations"
+ %><%
+UIResults results = UIResults.extractReplay(request);
+WaybackRequest wbRequest = results.getWbRequest();
+ResultURIConverter uriConverter = results.getURIConverter();
+StringFormatter fmt = wbRequest.getFormatter();
+
+String staticPrefix = results.getStaticPrefix();
+String queryPrefix = results.getQueryPrefix();
+String replayPrefix = results.getReplayPrefix();
+
+String graphJspPrefix = results.getContextConfig("graphJspPrefix");
+if(graphJspPrefix == null) {
+ graphJspPrefix = queryPrefix;
+}
+ToolBarData data = new ToolBarData(results);
+
+String searchUrl =
+ UrlOperations.stripDefaultPortFromUrl(wbRequest.getRequestUrl());
+String searchUrlSafe = fmt.escapeHtml(searchUrl);
+String searchUrlJS = fmt.escapeJavaScript(searchUrl);
+Date firstYearDate = data.yearPartitions.get(0).getStart();
+Date lastYearDate = data.yearPartitions.get(data.yearPartitions.size()-1).getEnd();
+
+int resultIndex = 1;
+int imgWidth = 375;
+int imgHeight = 27;
+int monthWidth = 2;
+int yearWidth = 25;
+String yearFormatKey = "PartitionSize.dateHeader.yearGraphLabel";
+String encodedGraph = data.computeGraphString(yearFormatKey,imgWidth,imgHeight);
+String graphImgUrl = graphJspPrefix + "jsp/graph.jsp?graphdata=" + encodedGraph;
+// TODO: this is archivalUrl specific:
+String starLink = fmt.escapeHtml(queryPrefix + "*/" + searchUrl);
+%>
+<!-- BEGIN WAYBACK TIMELINE DISCLAIMER INSERT -->
+<script type="text/javascript" src="<%= staticPrefix %>js/graph-calc.js" ></script>
+<script type="text/javascript">
+var firstDate = <%= firstYearDate.getTime() %>;
+var lastDate = <%= lastYearDate.getTime() %>;
+var wbPrefix = "<%= replayPrefix %>";
+var wbCurrentUrl = "<%= searchUrlJS %>";
+
+var curYear = -1;
+var curMonth = -1;
+var yearCount = 15;
+var firstYear = 1996;
+var imgWidth=<%= imgWidth %>;
+var yearImgWidth = <%= yearWidth %>;
+var monthImgWidth = <%= monthWidth %>;
+var trackerVal = "none";
+var displayDay = "<%= fmt.format("ToolBar.curDayText",data.curResult.getCaptureDate()) %>";
+var displayMonth = "<%= fmt.format("ToolBar.curMonthText",data.curResult.getCaptureDate()) %>";
+var displayYear = "<%= fmt.format("ToolBar.curYearText",data.curResult.getCaptureDate()) %>";
+var prettyMonths = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
+
+function showTrackers(val) {
+ if(val == trackerVal) {
+ return;
+ }
+ if(val == "inline") {
+ document.getElementById("displayYearEl").style.color = "#f00";
+ document.getElementById("displayMonthEl").style.color = "#f00";
+ document.getElementById("displayDayEl").style.color = "#f00";
+ } else {
+ document.getElementById("displayYearEl").innerHTML = displayYear;
+ document.getElementById("displayYearEl").style.color = "#ff0";
+ document.getElementById("displayMonthEl").innerHTML = displayMonth;
+ document.getElementById("displayMonthEl").style.color = "#ff0";
+ document.getElementById("displayDayEl").innerHTML = displayDay;
+ document.getElementById("displayDayEl").style.color = "#ff0";
+ }
+ document.getElementById("wbMouseTrackYearImg").style.display = val;
+ document.getElementById("wbMouseTrackMonthImg").style.display = val;
+ trackerVal = val;
+}
+
+function trackMouseMove(event,element) {
+
+ var eventX = getEventX(event);
+ var elementX = getElementX(element) + 6; // why 6?!?
+ var xOff = eventX - elementX;
+
+ var monthOff = xOff % yearImgWidth;
+
+ var year = Math.floor(xOff / yearImgWidth);
+ var yearStart = year * yearImgWidth;
+ var monthOfYear = Math.floor(monthOff / monthImgWidth);
+ if(monthOfYear > 11) {
+ monthOfYear = 11;
+ }
+ // 1 extra border pixel at the left edge of the year:
+ var month = (year * 12) + monthOfYear;
+ var day = 1;
+ if(monthOff % 2 == 1) {
+ day = 15;
+ }
+ var dateString =
+ zeroPad(year + firstYear) +
+ zeroPad(monthOfYear+1,2) +
+ zeroPad(day,2) + "000000";
+
+ var monthString = prettyMonths[monthOfYear];
+ document.getElementById("displayYearEl").innerHTML = year + 1996;
+ document.getElementById("displayMonthEl").innerHTML = monthString;
+ // looks too jarring when it changes..
+ //document.getElementById("displayDayEl").innerHTML = day;
+
+ var url = wbPrefix + dateString + '/' + wbCurrentUrl;
+ document.getElementById('wm-graph-anchor').href = url;
+
+ //document.getElementById("wmtbURL").value="xO("+xOff+") y("+year+") m("+month+") monthOff("+monthOff+") DS("+dateString+") Moy("+monthOfYear+") ms("+monthString+")";
+ if(curYear != year) {
+ document.getElementById("wbMouseTrackYearImg").style.left = year * yearImgWidth;
+ curYear = year;
+ }
+ if(curMonth != month) {
+ document.getElementById("wbMouseTrackMonthImg").style.left = year + (month * monthImgWidth) + 1;
+ curMonth = month;
+ }
+}
+
+</script>
+
+
+<style type="text/css">body{margin-top:0!important;padding-top:0!important;min-width:800px!important;}#wm-ipp a:hover{text-decoration:underline!important;}</style>
+<div id="wm-ipp" style="display:none; position:relative;padding:0 5px;min-height:70px;min-width:800px;">
+<div id="wm-ipp-inside" style="position:fixed;padding:0!important;margin:0!important;width:97%;min-width:780px;border:5px solid #000;border-top:none;background-image:url(<%= staticPrefix %>images/toolbar/wm_tb_bk_trns.png);text-align:center;-moz-box-shadow:1px 1px 3px #333;-webkit-box-shadow:1px 1px 3px #333;box-shadow:1px 1px 3px #333;font-size:11px!important;font-family:'Lucida Grande','Arial',sans-serif!important;">
+ <table style="border-collapse:collapse;margin:0;padding:0;width:100%;"><tbody><tr>
+ <td style="padding:10px;vertical-align:top;min-width:140px;">
+ <a href="<%= queryPrefix %>" title="Wayback Machine home page"><img src="<%= staticPrefix %>images/toolbar/wayback-toolbar-logo.png" alt="Wayback Machine" width="110" height="39" border="0"/></a>
+ </td>
+ <td style="padding:0!important;text-align:center;vertical-align:top;width:100%;">
+
+ <table style="border-collapse:collapse;margin:0 auto;padding:0;width:570px;"><tbody><tr>
+ <td style="padding:3px 0;" colspan="2">
+ <form method="get" action="<%= queryPrefix %>jsp/bounceToReplay.jsp" name="wmtb" id="wmtb" style="margin:0!important;padding:0!important;"><input type="text" name="wmtbURL" id="wmtbURL" value="<%= searchUrlSafe %>" style="width:400px;font-size:11px;font-family:'Lucida Grande','Arial',sans-serif;"/><input type="submit" value="Go" style="font-size:11px;font-family:'Lucida Grande','Arial',sans-serif;margin-left:5px;"/><span id="wm_tb_options" style="display:block;"></span></form>
+ </td>
+ <td style="vertical-align:bottom;padding:5px 0 0 0!important;" rowspan="2">
+ <table style="border-collapse:collapse;width:110px;color:#99a;font-family:'Helvetica','Lucida Grande','Arial',sans-serif;"><tbody>
+ <tr>
+ <td style="padding-right:9px;text-align:right;">
+ <%
+ if(data.prevResult == null) {
+ %>
+ <img src="<%= staticPrefix %>images/toolbar/wm_tb_prv_on.png" alt="Previous capture" width="14" height="16" border="0"/>
+ <%
+ } else {
+ %>
+ <a href="<%= data.makeReplayURL(data.prevResult) %>" title="<%= fmt.format("ToolBar.prevTitle",data.prevResult.getCaptureDate()) %>"><img src="<%= staticPrefix %>images/toolbar/wm_tb_prv_on.png" alt="Previous capture" width="14" height="16" border="0"/></a>
+ <%
+ }
+ %>
+ </td>
+ <td id="displayDayEl" style="background:#000;color:#ff0;width:34px;height:24px;padding:2px 0 0 0;text-align:center;font-size:22px;" title="<%= fmt.format("ToolBar.curDayTitle",data.curResult.getCaptureDate()) %>"><%= fmt.format("ToolBar.curDayText",data.curResult.getCaptureDate()) %></td>
+ <td style="padding-left:9px;white-space:nowrap;overflow:visible;" nowrap="nowrap">
+ <%
+ if(data.nextResult == null) {
+ %>
+ <img src="<%= staticPrefix %>images/toolbar/wm_tb_nxt_on.png" alt="Next capture" width="14" height="16" border="0"/>
+ <%
+ } else {
+ %>
+ <a href="<%= data.makeReplayURL(data.nextResult) %>" title="<%= fmt.format("ToolBar.nextTitle",data.nextResult.getCaptureDate()) %>"><img src="<%= staticPrefix %>images/toolbar/wm_tb_nxt_on.png" alt="Next capture" width="14" height="16" border="0"/></a>
+ <%
+ }
+ %>
+ </td>
+ </tr>
+ <tr style="width:110px;height:16px;font-size:10px!important;">
+ <td style="padding-right:9px;text-align:right;white-space:nowrap;overflow:visible;" nowrap="nowrap">
+ <%
+ if(data.monthPrevResult == null) {
+ %>
+ <%= fmt.format("ToolBar.noPrevMonthText",data.addMonth(data.curResult.getCaptureDate(),-1)) %>
+ <%
+ } else {
+ %>
+ <a href="<%= data.makeReplayURL(data.monthPrevResult) %>" style="text-decoration:none;color:#33f;" title="<%= fmt.format("ToolBar.prevMonthTitle",data.monthPrevResult.getCaptureDate()) %>"><%= fmt.format("ToolBar.prevMonthText",data.monthPrevResult.getCaptureDate()) %></a>
+ <%
+ }
+ %>
+ </td>
+ <td id="displayMonthEl" style="background:#000;color:#ff0;font-size:12px!important;width:34px;height:15px;padding-top:1px;text-align:center;" title="<%= fmt.format("ToolBar.curMonthTitle",data.curResult.getCaptureDate()) %>"><%= fmt.format("ToolBar.curMonthText",data.curResult.getCaptureDate()) %></td>
+ <td style="padding-left:9px;white-space:nowrap;overflow:visible;" nowrap="nowrap">
+ <%
+ if(data.monthNextResult == null) {
+ %>
+ <%= fmt.format("ToolBar.noNextMonthText",data.addMonth(data.curResult.getCaptureDate(),1)) %>
+ <%
+ } else {
+ %>
+ <a href="<%= data.makeReplayURL(data.monthNextResult) %>" style="text-decoration:none;color:#33f;" title="<%= fmt.format("ToolBar.nextMonthTitle",data.monthNextResult.getCaptureDate()) %>"><%= fmt.format("ToolBar.nextMonthText",data.monthNextResult.getCaptureDate()) %></a>
+ <%
+ }
+ %>
+ </td>
+ </tr>
+
+ <tr style="width:110px;height:13px;font-size:9px!important;">
+ <td style="padding-right:9px;text-align:right;white-space:nowrap;overflow:visible;" nowrap="nowrap">
+ <%
+ if(data.yearPrevResult == null) {
+ %>
+ <%= fmt.format("ToolBar.noPrevYearText",data.addYear(data.curResult.getCaptureDate(),-1)) %>
+ <%
+ } else {
+ %>
+ <a href="<%= data.makeReplayURL(data.yearPrevResult) %>" style="text-decoration:none;color:#33f;" title="<%= fmt.format("ToolBar.prevYearTitle",data.yearPrevResult.getCaptureDate()) %>"><%= fmt.format("ToolBar.prevYearText",data.yearPrevResult.getCaptureDate()) %></a>
+ <%
+ }
+ %>
+ </td>
+ <td id="displayYearEl" style="background:#000;color:#ff0;font-size:10px!important;padding-top:1px;width:34px;height:13px;text-align:center;" title="<%= fmt.format("ToolBar.curYearTitle",data.curResult.getCaptureDate()) %>"><%= fmt.format("ToolBar.curYearText",data.curResult.getCaptureDate()) %></td>
+ <td style="padding-left:9px;white-space:nowrap;overflow:visible;" nowrap="nowrap">
+ <%
+ if(data.yearNextResult == null) {
+ %>
+ <%= fmt.format("ToolBar.noNextYearText",data.addYear(data.curResult.getCaptureDate(),1)) %>
+ <%
+ } else {
+ %>
+ <a href="<%= data.makeReplayURL(data.yearNextResult) %>" style="text-decoration:none;color:#33f;" title="<%= fmt.format("ToolBar.nextYearTitle",data.yearNextResult.getCaptureDate()) %>"><%= fmt.format("ToolBar.nextYearText",data.yearNextResult.getCaptureDate()) %></a>
+ <%
+ }
+ %>
+ </td>
+ </tr>
+ </tbody></table>
+ </td>
+
+ </tr>
+ <tr>
+ <td style="vertical-align:middle;padding:0!important;">
+ <a href="<%= starLink %>" style="color:#33f;font-size:11px;" title="<%= fmt.format("ToolBar.numCapturesTitle") %>"><strong><%= fmt.format("ToolBar.numCapturesText",data.getResultCount()) %></strong></a>
+ <div style="margin:0!important;padding:0!important;color:#666;font-size:9px;padding-top:2px!important;white-space:nowrap;" title="<%= fmt.format("ToolBar.captureRangeTitle") %>"><%= fmt.format("ToolBar.captureRangeText",data.getFirstResultDate(),data.getLastResultDate()) %></div>
+ </td>
+ <td style="padding:0!important;">
+ <a style="position:relative; white-space:nowrap; width:<%= imgWidth %>px;height:<%= imgHeight %>px;" href="" id="wm-graph-anchor">
+ <div id="wm-ipp-sparkline" style="position:relative; white-space:nowrap; width:<%= imgWidth %>px;height:<%= imgHeight %>px;background-color:#fff;cursor:pointer;" title="<%= fmt.format("ToolBar.sparklineTitle") %>">
+ <img style="position:absolute; z-index:12; top:0px; left:0px;"
+ onmouseover="showTrackers('inline');"
+ onmouseout="showTrackers('none');"
+ onmousemove="trackMouseMove(event,this)"
+ alt="sparklines"
+ width="<%= imgWidth %>"
+ height="<%= imgHeight %>"
+ border="0"
+ src="<%= graphImgUrl %>"></img>
+ <img id="wbMouseTrackYearImg"
+ style="display:none; position:absolute; z-index:10;"
+ width="<%= yearWidth %>"
+ height="<%= imgHeight %>"
+ border="0"
+ src="<%= staticPrefix %>images/toolbar/transp-yellow-pixel.png"></img>
+ <img id="wbMouseTrackMonthImg"
+ style="display:none; position:absolute; z-index:11; "
+ width="<%= monthWidth %>"
+ height="<%= imgHeight %>"
+ border="0"
+ src="<%= staticPrefix %>images/toolbar/transp-red-pixel.png"></img>
+ </div>
+ </a>
+
+ </td>
+ </tr></tbody></table>
+ </td>
+ <td style="text-align:right;padding:5px;width:65px;font-size:11px!important;">
+ <a href="javascript:;" onclick="document.getElementById('wm-ipp').style.display='none';" style="display:block;padding-right:18px;background:url(<%= staticPrefix %>images/toolbar/wm_tb_close.png) no-repeat 100% 0;color:#33f;font-family:'Lucida Grande','Arial',sans-serif;margin-bottom:23px;" title="<%= fmt.format("ToolBar.closeTitle") %>"><%= fmt.format("ToolBar.closeText") %></a>
+ <a href="FAQ" style="display:block;padding-right:18px;background:url(<%= staticPrefix %>images/toolbar/wm_tb_help.png) no-repeat 100% 0;color:#33f;font-family:'Lucida Grande','Arial',sans-serif;" title="<%= fmt.format("ToolBar.helpTitle") %>"><%= fmt.format("ToolBar.helpText") %></a>
+ </td>
+ </tr></tbody></table>
+
+</div>
+</div>
+
+<script type="text/javascript" src="<%= staticPrefix %>js/disclaim-element.js" ></script>
+<script type="text/javascript">
+ var wmDisclaimBanner = document.getElementById("wm-ipp");
+ if(wmDisclaimBanner != null) {
+ disclaimElement(wmDisclaimBanner);
+ }
+</script>
+<!-- END WAYBACK TIMELINE DISCLAIMER INSERT -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|