here is the entire updatescores.asp code from my website.
Code: Select all
<%@ LANGUAGE="VBScript" %>
<!-- #include file="includes/config.asp" --><!-- #include file="includes/common.asp" --><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- #include file="includes/email.asp" -->
<!-- #include file="includes/encryption.asp" -->
<!-- #include file="includes/form.asp" -->
<!-- #include file="includes/side.asp" -->
<!-- #include file="includes/weekly.asp" -->
<% 'Limit access to the Administrator.
call CheckAccess(true)
'Open the database.
call OpenDb() %>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<% PageSubTitle = "Enter Game Scores"
if not ENABLE_SCORES_ADDON then
call BuildPageHeader("", "")
else
call BuildPageHeader("loadDialogs.css", "") %>
<script type="text/javascript">//<![CDATA[
//=========================================================================
// Module: scoresLoader
//
// Used to set game scores using data retrieved from the NFL.com web site.
//=========================================================================
var scoresLoader = function () {
// The update form.
var formEl = null;
// The week to update.
var week = "";
// Define an array to hold form field information for each game listed
// on the form.
var gameFields = [];
// These are used to load the scores page from the NFL.com web site.
var scoresIframe = null;
var scoresUrlBase = "http://www.nfl.com/scores/2014/REG";
var loadCheckIntervalID = null;
var loadCheckInterval = 1000; // one second.
var loadCheckMaxWaitTime = 30000; // 30 seconds.
var loadStartTime = 0;
// Auto-update parameters.
var autoUpdate = false;
var autoUpdateLoadTimeoutID = null;
var autoUpdateLoadTimeout = 600000; // 10 minutes.
var autoUpdateDialogTimeout = 500; // one half second.
// Holds the data parsed from the scores page.
var gameData = null;
// Used for dialog messages.
var resultMsg = "";
var errorMsg = "";
var foundNewResults = false;
//---------------------------------------------------------------------
// Initializes the scores loader.
//---------------------------------------------------------------------
function init() {
// Get the scores update form.
formEl = document.getElementById("scoresForm");
// Get the week.
week = formEl.elements["week"].value;
// Scan the form and build the games fields array.
var i = 1;
var el;
while ((el = formEl.elements["id-" + i]) != null) {
var vid = formEl.elements["vid-" + i].value;
var hid = formEl.elements["hid-" + i].value;
var vscoreEl = formEl.elements["vscore-" + i];
var hscoreEl = formEl.elements["hscore-" + i];
var otEl = formEl.elements["ot-" + i];
gameFields.push({
"visitorID" : vid,
"visitorScoreEl" : vscoreEl,
"homeID" : hid,
"homeScoreEl" : hscoreEl,
"overtimeEl" : otEl
});
i++;
}
// If auto-update is checked, start it.
autoUpdate = formEl.elements["autoUpdate"].checked;
if (autoUpdate)
autoUpdateLoadTimeoutID = setTimeout(getScores, autoUpdateLoadTimeout);
}
//---------------------------------------------------------------------
// Initiates the retrieval of game results.
//---------------------------------------------------------------------
function getScores() {
// Clear any existing game data.
gameData = [];
// Clear any highlighting on the form fields.
for (var i = 0; i < gameFields.length; i++) {
domUtils.removeClass(gameFields[i].visitorScoreEl, "fieldLoaded");
domUtils.removeClass(gameFields[i].homeScoreEl, "fieldLoaded");
domUtils.removeClass(gameFields[i].overtimeEl.parentNode, "fieldLoaded");
}
// Initialize the display.
foundNewResults = false;
showLoadingDisplay("loadingActive");
// Create an iframe for loading the scores page and set an interval
// timer to monitor it.
if (scoresIframe != null)
getScoresCleanUp();
scoresIframe = document.createElement("IFRAME");
scoresIframe.src = "javascript:false;document.write('');document.close();";
scoresIframe.width = 0;
scoresIframe.height = 0;
scoresIframe.style.display ="none";
scoresIframe = document.body.appendChild(scoresIframe);
scoresIframe.src = "getHtmlScores.asp?url=" + escape(scoresUrlBase + week);
loadStartTime = new Date();
loadCheckIntervalID = setInterval(scoresLoadedCheck, loadCheckInterval);
return false;
}
//-------------------------------------------------------------------------
// Called by an interval timer to determine if the scores page has been
// loaded.
//-------------------------------------------------------------------------
function scoresLoadedCheck() {
try {
// Get the document within the iframe.
var obj = scoresIframe.contentWindow || scoresIframe.contentDocument;
if (obj.document != null) {
scoresIframe.scoresDoc = obj.document;
// Check for our marker element to be sure the whole page
// has been loaded.
if (scoresIframe.scoresDoc.getElementById("BrainJar") != null) {
// Stop checking.
if (loadCheckIntervalID != null) {
clearInterval(loadCheckIntervalID);
loadCheckIntervalID = null;
}
// Process the scores page, clean-up and exit.
processScores();
getScoresCleanUp();
return;
}
}
}
catch (ex) {}
// Has the max wait time been exceeded?
var currentTime = new Date();
if (currentTime.valueOf() - loadStartTime.valueOf() > loadCheckMaxWaitTime) {
// Yes, abort.
getScoresCleanUp();
errorMsg = "The operation timed out, try again later.";
showLoadingDisplay("loadingError");
// If auto-update is on, set for the next attempt.
if (autoUpdate) {
setTimeout(hideLoadingDisplay, autoUpdateDialogTimeout);
autoUpdateLoadTimeoutID = setTimeout(getScores, autoUpdateLoadTimeout);
}
}
}
//---------------------------------------------------------------------
// Cleans up after an attempt to load game results.
//---------------------------------------------------------------------
function getScoresCleanUp() {
// Clear the interval timer.
if (loadCheckIntervalID != null) {
clearInterval(loadCheckIntervalID);
loadCheckIntervalID = null;
}
// Remove the IFRAME.
if (scoresIframe != null) {
document.body.removeChild(scoresIframe);
scoresIframe = null;
}
}
//---------------------------------------------------------------------
// Parses the scores page and updates the form with any new game
// results.
//---------------------------------------------------------------------
function processScores() {
// Get the document loaded in the iframe.
var doc = scoresIframe.scoresDoc;
// Scan the document for final game results. Below is the basic
// pattern searched for. There should be one of these for each
// game:
//
// <div class="new-score-box">
// <div class="team-wrapper">
// <div class="away-team">
// <a href="/teams/profile?team=AWAY_ID" ...>...</a>
// <div class="team-data">
// <div class="team-info">
// <p class="team-record">...</p>
// <p class="team-name"><a href="/teams/profile?team=AWAY_ID" ...>...</a></p>
// </div>
// <p class="total-score">AWAY_SCORE</p>
// <p class="quarters-score"><span class="first-qt">nn</span><span class="second-qt">nn</span><span class="third-qt">nn</span><span class="fourth-qt">nn</span><span class="ot-qt">nn</span></p>
// </div>
// </div>
// </div>
// <div class="team-wrapper">
// <div class="home-team">
// <a href="/teams/profile?team=HOME_ID" ...>...</a>
// <div class="team-data">
// <div class="team-info">
// <p class="team-record">...</p>
// <p class="team-name"><a href="/teams/profile?team=HOME_ID" ...>...</a></p>
// </div>
// <p class="total-score">HOME_SCORE</p>
// <p class="quarters-score"><span class="first-qt">nn</span><span class="second-qt">nn</span><span class="third-qt">nn</span><span class="fourth-qt">nn</span><span class="ot-qt">nn</span></p>
// </div>
// </div>
// </div>
// <div class="game-center-area">
// ...
// <p><span class="time-left">FINAL</span></p>
// ...
// </div>
// ...
// </div>
var vid, hid, vscore, hscore, ot;
var s
var el, el2;
var vn, hn;
var divEls = doc.getElementsByTagName("DIV");
for (var i = 0; i < divEls.length; i++) {
// Is this a "new-score-box" DIV?
if (domUtils.hasClass(divEls[i], "new-score-box")) {
vid = "";
hid = "";
vscore = "";
hscore = "";
ot = false;
el = getFirstSubTagWithClass(divEls[i], "SPAN", "time-left");
if (el && el.firstChild) {
// Is the score final?
s = el.firstChild.nodeValue;
if (s != null && s.toLowerCase().trim().startsWith("final")) {
// Get visitor team data.
el = getFirstSubTagWithClass(divEls[i], "DIV", "away-team");
el2 = getFirstSubTagWithClass(el, "P", "team-name");
el2 = getFirstSubTag(el2, "A");
if (el2)
vid = getQueryStringParameter(el2.search, "team");
el2 = getFirstSubTagWithClass(el, "P", "total-score");
if (el2 && el2.firstChild)
vscore = el2.firstChild.nodeValue;
el2 = getFirstSubTagWithClass(el, "P", "quarters-score");
el2 = getFirstSubTagWithClass(el2, "SPAN", "ot-qt");
vn = null;
if (el2 && el2.firstChild)
vn = el2.firstChild.nodeValue;
// Get home team data.
el = getFirstSubTagWithClass(divEls[i], "DIV", "home-team");
el2 = getFirstSubTagWithClass(el, "P", "team-name");
el2 = getFirstSubTag(el, "A");
if (el2)
hid = getQueryStringParameter(el2.search, "team");
el2 = getFirstSubTagWithClass(el, "P", "total-score");
if (el2 && el2.firstChild)
hscore = el2.firstChild.nodeValue;
el2 = getFirstSubTagWithClass(el, "P", "quarters-score");
el2 = getFirstSubTagWithClass(el2, "SPAN", "ot-qt");
hn = null;
if (el2 && el2.firstChild)
hn = el2.firstChild.nodeValue;
// Check for overtime.
if (vn && !isNaN(vn) && hn && !isNaN(hn))
ot = true;
// Fix team IDs.
if (vid == "JAC")
vid = "JAX";
if (hid == "JAC")
hid = "JAX";
// Save the results.
gameData.push({
"visitorID" : vid,
"visitorScore" : vscore,
"homeID" : hid,
"homeScore" : hscore,
"overtime" : ot
});
}
}
}
}
// Copy any new results to the appropriate form fields and reset
// the display.
setGameFields();
if (foundNewResults) {
hideLoadingDisplay();
// If auto-update is on, submit the form to update the scores.
if (autoUpdate) {
// Add a new submit button to the form and click it to
// perform the update.
var inputEl = document.createElement("INPUT");
inputEl.name = "submit";
inputEl.type = "submit";
inputEl.value = "Update";
inputEl = formEl.appendChild(inputEl);
inputEl.click();
}
}
else {
showLoadingDisplay("loadingComplete");
// Handle auto-update.
if (autoUpdate) {
setTimeout(hideLoadingDisplay, autoUpdateDialogTimeout);
// Determine if any scores are still missing.
var missingScores = false;
for (i = 0; i < gameFields.length && !missingScores; i++)
if (gameFields[i].visitorScoreEl.value == "" || gameFields[i].homeScoreEl.value == "")
missingScores = true;
// If there are missing scores, set for the next attempt.
// Otherwise off turn auto-update.
if (missingScores)
autoUpdateLoadTimeoutID = setTimeout(getScores, autoUpdateLoadTimeout);
else
stopAutoUpdate();
}
}
}
//---------------------------------------------------------------------
// Given an element, finds the first occurrence of the given tag with
// the given class name in its descendants.
//---------------------------------------------------------------------
function getFirstSubTagWithClass(el, tName, cName) {
if (el != null) {
var elList = el.getElementsByTagName(tName);
for (var i = 0; i < elList.length; i++)
if (domUtils.hasClass(elList[i], cName))
return elList[i];
}
return null;
}
//---------------------------------------------------------------------
// Given an element, finds the first occurrence of the given tag in
// its descendants.
//---------------------------------------------------------------------
function getFirstSubTag(el, tName) {
if (el != null) {
var elList = el.getElementsByTagName(tName);
if (elList.length > 0)
return elList[0];
}
return null;
}
//---------------------------------------------------------------------
// Given a url, returns the value assigned to the given query string
// parameter.
//---------------------------------------------------------------------
function getQueryStringParameter(qs, pName) {
var re = new RegExp( "[?&]" + pName + "=([^&$]*)", "i" );
var offset = qs.search(re);
if (offset == -1)
return "";
return RegExp.$1;
}
//---------------------------------------------------------------------
// Takes the parsed game results and updates the appropriate form
// fields.
//---------------------------------------------------------------------
function setGameFields() {
// For each game result found, find a matching set of form fields
// to load the data into.
if (gameData.length > 0) {
resultMsg = "All game results are up to date.";
for (var i = 0; i < gameFields.length; i++)
for (var j = 0; j < gameData.length; j++)
// Check if the teams match.
if (gameFields[i].visitorID == gameData[j].visitorID && gameFields[i].homeID == gameData[j].homeID)
{
// Set the individual form fields.
setFormField(gameFields[i].visitorScoreEl, gameData[j].visitorScore);
setFormField(gameFields[i].homeScoreEl, gameData[j].homeScore);
setFormField(gameFields[i].overtimeEl, gameData[j].overtime);
break;
}
}
else
resultMsg = "No results available, try again later.";
}
//---------------------------------------------------------------------
// Updates a single form field with the given value (if that value is
// different from the field's current value).
//---------------------------------------------------------------------
function setFormField(fieldEl, newValue) {
// Compare the old and new values.
var oldValue = fieldEl.value;
if (fieldEl.type == "checkbox")
oldValue = fieldEl.checked;
// If the values are the same, exit.
if (oldValue == newValue)
return;
// Set the form field value and highlight it.
if (fieldEl.type == "checkbox") {
fieldEl.checked = newValue;
domUtils.addClass(fieldEl.parentNode, "fieldLoaded");
}
else {
fieldEl.value = newValue;
domUtils.addClass(fieldEl, "fieldLoaded");
}
// Note that we have new results.
foundNewResults = true;
}
//---------------------------------------------------------------------
// Shows the loading display with the specified message box.
//---------------------------------------------------------------------
function showLoadingDisplay(id) {
// Hide all the message boxes.
document.getElementById("loadingActive").style.display = "none";
document.getElementById("loadingComplete").style.display = "none";
document.getElementById("loadingError").style.display = "none";
// Set the result and error messages.
var el = document.getElementById("loadingResultMsg");
while (el.firstChild != null)
el.removeChild(el.firstChild);
document.getElementById("loadingResultMsg").appendChild(document.createTextNode(resultMsg));
var el = document.getElementById("loadingErrorMsg");
while (el.firstChild != null)
el.removeChild(el.firstChild);
document.getElementById("loadingErrorMsg").appendChild(document.createTextNode(errorMsg));
// Show the specified message box.
el = document.getElementById(id);
if (el != null)
el.style.display = "";
// Make it visible.
document.getElementById("loadingDisplay").style.visibility = "visible";
}
//---------------------------------------------------------------------
// Hides the loading display.
//---------------------------------------------------------------------
function hideLoadingDisplay() {
document.getElementById("loadingDisplay").style.visibility = "hidden";
}
//---------------------------------------------------------------------
// Turns auto-update off.
//---------------------------------------------------------------------
function stopAutoUpdate() {
// Cancel any pending attempt.
if (autoUpdateLoadTimeoutID != null) {
clearTimeout(autoUpdateLoadTimeoutID);
autoUpdateLoadTimeoutID = null;
}
// Set the flag to false and clear the checkbox.
autoUpdate = false;
formEl.elements["autoUpdate"].checked = false;
}
//=====================================================================
// Initialization code.
//=====================================================================
// Initialize on page load.
domUtils.onready(init);
//=====================================================================
// Public properties and methods.
//=====================================================================
return {
//-----------------------------------------------------------------
// Loads game scores for the given week.
//-----------------------------------------------------------------
load : function () {
// Turn off auto-update, if it is on.
if (autoUpdate)
stopAutoUpdate();
getScores();
return false;
},
//-----------------------------------------------------------------
// Cancels a load.
//-----------------------------------------------------------------
cancel : function () {
getScoresCleanUp();
hideLoadingDisplay();
// If auto-update is on, turn it off.
if (autoUpdate)
stopAutoUpdate();
return false;
},
//-----------------------------------------------------------------
// Closes the load display.
//-----------------------------------------------------------------
close : function () {
hideLoadingDisplay();
return false;
},
//-----------------------------------------------------------------
// Toggles auto-update.
//-----------------------------------------------------------------
toggleAutoUpdate : function () {
// If auto-update is on, turn it off. Otherwise, turn it on and
// make an attempt.
if (autoUpdate)
stopAutoUpdate();
else {
autoUpdate = true;
getScores();
}
// Allow the check box to change.
return true;
}
}
}();
//]]></script>
<% end if %>
<!-- #include file="includes/custom.asp" -->
</head>
<body>
<!-- #include file="includes/header.asp" -->
<!-- #include file="includes/menu.asp" -->
<div id="contentSection">
<table id="mainWrapper" border="0" cellpadding="0" cellspacing="0"><tr><td>
<% 'Get the week to display.
dim week
week = GetRequestedWeek()
'If there is form data, process it.
dim n, i
dim gameID, vscore, hscore, ot
dim notify, infoMsg
dim sql, rs
n = GetGameCount(week)
if Request.ServerVariables("Content_Length") > 0 and not IsCancelRequest() then
for i = 1 to n
'Get the form fields.
gameID = Trim(Request.Form("id-" & i))
vscore = Trim(Request.Form("vscore-" & i))
hscore = Trim(Request.Form("hscore-" & i))
ot = Trim(Request.Form("ot-" & i))
'Validate the form fields.
if vscore <> "" or hscore <> "" or ot <> "" then
if not IsValidInteger(vscore) then
FormFieldErrors.Add "vscore-" & i, "'" & vscore & "' is not a valid game score."
else
if CInt(vscore) < 0 then
FormFieldErrors.Add "vscore-" & i, "'" & vscore & "' is not a valid game score."
end if
end if
if not IsValidInteger(hscore) then
FormFieldErrors.Add "hscore-" & i, "'" & hscore & "' is not a valid game score."
else
if CInt(hscore) < 0 then
FormFieldErrors.Add "hscore-" & i, "'" & hscore & "' is not a valid game score."
end if
end if
end if
next
'If there were any errors, display the error summary message.
'Otherwise, do the updates.
if FormFieldErrors.Count > 0 then
call DisplayFormFieldErrorsMessage("Error: Invalid fields. Please correct and resubmit.")
else
for i = 1 to n
gameID = Trim(Request.Form("id-" & i))
vscore = Trim(Request.Form("vscore-" & i))
hscore = Trim(Request.Form("hscore-" & i))
ot = Trim(Request.Form("ot-" & i))
if LCase(ot) <> "true" then
ot = false
end if
'Update the scores.
if vscore = "" then
vscore ="NULL"
end if
if hscore = "" then
hscore ="NULL"
end if
sql = "UPDATE Schedule SET" _
& " VisitorScore = " & vscore & "," _
& " HomeScore = " & hscore & "," _
& " OT = " & ot _
& " WHERE GameID = " & gameID
call DbConn.Execute(sql)
'Update the results.
call SetGameResults(gameID)
next
'Clear any cached pool results.
call ClearWeeklyResultsCache(week)
if ENABLE_MARGIN_POOL then
call ClearMarginResultsCache(week)
end if
if ENABLE_SURVIVOR_POOL then
call ClearSurvivorStatus(week)
end if
'Send out email notifications, if checked.
infoMsg = "Update successful."
notify = Trim(Request.Form("notify"))
if LCase(notify) = "true" then
infoMsg = "Update successful, notifications sent."
call SendNotifications()
end if
'Updates done, show an informational message.
call DisplaySuccessMessage(infoMsg)
end if
end if
'Display the schedule for the specified week.
dim cols
cols = 9
if USE_POINT_SPREADS then
cols = cols + 1
end if %>
<form id="scoresForm" action="<% = Request.ServerVariables("SCRIPT_NAME") %>" method="post">
<div><input type="hidden" name="week" value="<% = week %>" /></div>
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="padding: 0px;">
<table class="main" border="0" cellpadding="0" cellspacing="0">
<tr class="header bottomEdge">
<th align="left" colspan="<% = cols %>">Week <% = week %></th>
</tr>
<% if ENABLE_SCORES_ADDON then
dim autoUpdate, missingScores
autoUpdate = false
missingScores = false
end if
dim gameDate, gameTime, vid, hid
dim visitor, home, result, checkedStr
dim spread, atsResult
dim alt
set rs = GetGamesRecordset(week)
if not (rs.EOF and rs.BOF) then
n = 1
alt = false
do while not rs.EOF
gameID = rs.Fields("GameID").Value
gameDate = rs.Fields("Date").Value
gameTime = rs.Fields("Time").Value
vid = rs.Fields("VisitorID").Value
vscore = rs.Fields("VisitorScore").Value
spread = rs.Fields("PointSpread").Value
hid = rs.Fields("HomeID").Value
hscore = rs.Fields("HomeScore").Value
ot = rs.Fields("OT").Value
result = rs.Fields("Result").Value
atsResult = rs.Fields("ATSResult").Value
visitor = rs.Fields("VCity").Value
home = rs.Fields("HCity").Value
if ENABLE_SCORES_ADDON then
if IsNull(vscore) or IsNull(hscore) then
missingScores = true
end if
end if
'Set the team names for display.
if rs.Fields("VDisplayName").Value <> "" then
visitor = rs.Fields("VDisplayName").Value
end if
if rs.Fields("HDisplayName").Value <> "" then
home = rs.Fields("HDisplayName").Value
end if
'Highlight the results.
if result = vid then
visitor = FormatWinner(visitor)
elseif result = hid then
home = FormatWinner(home)
end if
if atsResult = vid then
visitor = FormatATSWinner(visitor)
elseif atsResult = hid then
home = FormatATSWinner(home)
end if
'If there were errors on the form post processing, restore those fields.
if FormFieldErrors.Count > 0 then
vscore = GetFieldValue("vscore-" & n, vscore)
hscore = GetFieldValue("hscore-" & n, hscore)
ot = FormFieldExists("ot-" & n)
end if
'Set the OT checkbox state.
checkedStr = ""
if ot then
checkedStr = CHECKED_ATTRIBUTE
end if
if alt then %>
<tr align="right" class="alt">
<% else %>
<tr align="right">
<% end if
alt = not alt %>
<% if ENABLE_SCORES_ADDON then %>
<td><input type="hidden" name="id-<% = n %>" value="<% = gameID %>" /><input type="hidden" name="vid-<% = n %>" value="<% = vid %>" /><input type="hidden" name="hid-<% = n %>" value="<% = hid %>" /><% = WeekdayName(Weekday(gameDate), true) %></td>
<% else %>
<td><input type="hidden" name="id-<% = n %>" value="<% = gameID %>" /><% = WeekdayName(Weekday(gameDate), true) %></td>
<% end if %>
<td><% = FormatDate(gameDate) %></td>
<td><% = FormatTime(gameTime) %></td>
<td align="left"><% call DisplayTeamLogo(vid) %><% = visitor %></td>
<td><input type="text" name="vscore-<% = n %>" value="<% = vscore %>" size="2" class="<% = StyleFormField("numeric", "vscore-" & n) %>" /></td>
<% if USE_POINT_SPREADS then %>
<td><% = FormatPointSpread(spread) %></td>
<% end if %>
<td>at</td>
<td align="left"><% call DisplayTeamLogo(hid) %><% = home %></td>
<td><input type="text" name="hscore-<% = n %>" value="<% = hscore %>" size="2" class="<% = StyleFormField("numeric", "hscore-" & n) %>" /></td>
<td><label for="ot-<% = n %>"><span class="small">OT</span></label> <span class="fieldWrapper"><input type="checkbox" id="ot-<% = n %>" name="ot-<% = n %>" value="true"<% = checkedStr %> /></span></td>
</tr>
<% rs.MoveNext
n = n + 1
loop
if SERVER_EMAIL_ENABLED then %>
<tr class="subHeader topEdge">
<th align="left" colspan="<% = cols %>"><input type="checkbox" id="notify" name="notify" value="true" /> <label for="notify">Send update notification to users.</label></th>
</tr>
<% end if %>
</table>
<% 'List open dates.
call DisplayOpenDates(week)
end if
if ENABLE_SCORES_ADDON then
'If this was an auto-update post, turn the option on again but only if
'there are still scores to get.
autoUpdate = FormFieldExists("autoUpdate")
if IsCancelRequest() or not missingScores then
autoUpdate = false
end if %>
<p></p>
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%;">
<tr valign="middle">
<td style="padding: 0px;"><input type="submit" id="updateButton" name="submit" value="Update" class="button" /> <input type="submit" name="submit" value="Cancel" class="button" /></td>
<td align="right" style="padding: 0px;"><input type="checkbox" id="autoUpdate" name="autoUpdate" value="true"<% if autoUpdate then Response.Write(" checked=""checked""") end if %> onclick="return scoresLoader.toggleAutoUpdate();" /> <label for="autoUpdate">Auto-update</label> </td>
<td align="right" style="padding: 0px;"><input type="submit" name="submit" value="Load" class="button" onclick="return scoresLoader.load(<% = week %>);" /></td>
</tr>
</table>
<% else %>
<p><input type="submit" name="submit" value="Update" class="button" /> <input type="submit" name="submit" value="Cancel" class="button" /></p>
<% end if %>
</td></tr></table>
</form>
<% 'List links to view other weeks.
call DisplayGoToNavigation("week", GetWeekCount(), "") %>
</td></tr></table>
</div>
<!-- #include file="includes/footer.asp" -->
<% if ENABLE_SCORES_ADDON then %>
<div id="loadingDisplay" style="visibility: hidden;">
<div id="loadingDialog">
<div id="loadingActive">
<h2><em>Loading...</em></h2>
<form action="#" method="post" onsubmit="return false;">
<p><img src="graphics/loading.gif" alt="" /></p>
<p><input type="submit" name="submit" value="Cancel" class="button" onclick="return scoresLoader.cancel();" /></p>
</form>
</div>
<div id="loadingComplete">
<h2>Load Complete</h2>
<form action="#" method="post" onsubmit="return false;">
<div class="successMsg"><div><span id="loadingResultMsg"></span></div></div>
<p><input type="submit" name="submit" value="Close" class="button" onclick="return scoresLoader.close();" /></p>
</form>
</div>
<div id="loadingError">
<h2>Load Failed</h2>
<form action="#" method="post" onsubmit="return false;">
<div class="errorMsg"><div><span id="loadingErrorMsg"></span></div></div>
<p><input type="submit" name="submit" value="Close" class="button" onclick="return scoresLoader.close();" /></p>
</form>
</div>
</div>
</div>
<% end if %>
</body>
</html>
<% '**************************************************************************
'* Local functions and subroutines. *
'**************************************************************************
'--------------------------------------------------------------------------
' Sends an email notification to any users who have elected to receive
' them.
'--------------------------------------------------------------------------
sub SendNotifications()
dim subj, body
dim rs
dim vscore, hscore
dim list, email
subj = "Football Pool Game Results Notification"
body = "Games results for Week " & week & " have been updated." & vbCrLf & vbCrLf
'Show results.
set rs = GetGamesRecordset(week)
do while not rs.EOF
vscore = ""
hscore = ""
if not IsNull(rs.Fields("Result").Value) then
vscore = " " & rs.Fields("VisitorScore").Value
hscore = " " & rs.Fields("HomeScore").Value
end if
body = body & rs.Fields("VisitorID").Value & vscore
if USE_POINT_SPREADS then
body = body & " (" & GetPlainTextPointSpread(rs.Fields("PointSpread").Value) & ")"
end if
body = body & " at " & rs.Fields("HomeID").Value & hscore
if rs.Fields("OT").Value then
body = body & " OT"
end if
body = body & vbCrLf
rs.moveNext
loop
list = GetNotificationList("NotifyOfResultUpdates")
for each email in list
call SendMail(email, subj, body)
next
end sub %>
let me know if you need any other code.