var JS_EREPORTS = "http://www.emarketer.com/include/ereports.js (762 lines) 2001-02-27 19:43 Dean Hannotte";
/***********************************************************************
eReports Global JavaScript Library
----------------------------------
The eReports Global JavaScript library contains functions used
by the eMarketer web site. It was developed beginning in July 2000
by Dean Hannotte, who is solely responsible for its contents, to
support the processing of reports and report tables.
Almost all eMarketer globals (variables and functions) begin
with the string "e_" to easily demarcate them from the work of other
individuals, groups and unspecified sentient beings.
---------------------------------------------------------------------
WARNING: When updating this file, remember that all
these versions should be identical:
/home/secure.e-land.com/include/ereports.js
/home/secure-proof/include/ereports.js
/home/www.emarketer.com/virtual_html/include/ereports.js
/home/www.emarketer.com/virtual_html-proof/include/ereports.js
---------------------------------------------------------------------
RETIRED functions:
(see virtual_html-old/include/ereports.js for reference)
e_OrderNowButton() - retired 12/20/2000 -MJ
e_PromoteRelevantReport() - retired 12/20/2000 -MJ
e_ReportNames() - retired 12/20/2000 -MJ
e_ReportsForm() - retired 12/20/2000 -MJ
e_Option() - retired 12/20/2000 -MJ
e_ReportsList() - retired 01/19/2001 -MJ
***********************************************************************/
/*--------------------------------------------------------------------*/
/* e_GenerateReportLinks() function */
/*--------------------------------------------------------------------*/
//Added 11/27/2000 -MJ
//When this function is used on the report sell pages (/ereports/middle_row_center_cell_end.htm)
//we don't pass an argument. However, when the function is called on
//any other page on the site, we need to pass an argument (report_dir)
//which should correspond to a e_ReportDir.
function e_GenerateReportLinks(report_dir)
{
var img_alignment = "top";
var sep = " ";
if (typeof report_dir == "undefined")
{
report_dir = e_ReportDir;
}
/* */
/* Generate 'Chapters' and 'Charts' */
/* -------------------------------- */
//This link should only appear on pages within the ereports directory.
//This link should not appear if the report is in "presell" mode.
//(i.e. there is no e_ReportSKU defined)
//These two links can be relative since they will only appear in the
//correct ereports directory.
if (e_SectionDir == "ereports"
&& e_FnFt != "partner_reports.html"
&& e_ReportSKU != -1
&& e_ReportSKU != "FREE"
&& e_ReportDir != "wired_women"
&& e_ReportDir != "myers_interactive_tv"
&& e_ReportDir != "imt_executive_insight"
&& e_ReportDir != "imt_permission_email")
{
var link = "/ereports/" + report_dir + "/contents.html";
if (e_ReportDir != "statmarket_usage_trends")
{
e_CreateImageLinkRollover(link, "lines", "lines_name1", "Chapters", img_alignment);
}
link = "/ereports/" + report_dir + "/charts.html";
e_CreateImageLinkRollover(link, "chart", "chart_name1", "Charts", img_alignment);
}
/* */
/* Generate 'More Info' */
/* ------------------- */
//don't show this link if we are already on a more info page!
if ((!e_DefaultPage && e_SectionDir == "ereports")
|| e_SectionDir != "ereports")
{
link = "/ereports/" + report_dir + "/welcome.html";
e_CreateImageLinkRollover(link, "question", "question_name1" + report_dir, "More Info", img_alignment);
}
/* */
/* Generate 'Buy Now', 'Early-order', or 'Download Now' */
/* --------------------------------------------------- */
//This link should say "Early-order" if the report in question is in
//"presell" mode. (if sku is 999).
for
(
rtx = 0;
rtx + e_ReportTableWidth <= e_ReportTable.length;
rtx += e_ReportTableWidth
)
{
if (report_dir == e_ReportTable[rtx + 1] && e_ReportSKU != "FREE")
{
if (e_ReportTable[rtx] == 999)
{
link = "/ereports/sell_early.html";
var linktext = "Early-order";
e_CreateImageLinkRollover(link, "dollar", "dollar_name1" + report_dir, linktext, img_alignment, "secure");
}
else
{
link = "/bin/estatstore/cart?category=10000&add="
+ e_ReportTable[rtx];
linktext = "Buy Now";
e_CreateImageLinkRollover(link, "dollar", "dollar_name1" + report_dir, linktext, img_alignment, "secure");
}
break;
}
}
if (rtx + e_ReportTableWidth > e_ReportTable.length && e_ReportSKU != "FREE")
{
e_Error("e_GenerateReportLinks(): Can't find '"
+ report_dir + "' in e_ReportTable.");
}
}
/*--------------------------------------------------------------------*/
/* e_ReportList() function */
/*--------------------------------------------------------------------*/
//Replaced e_ReportDescription() on 11/13/2000 - MJ
// default: level=1; special report: level=2;
function e_ReportList
(
level, title, pub_date, sku, sellpage, price, blurb, orderpage
)
{
if (level == null) level = "";
if (sku == null) sku = "";
if (sellpage == null) sellpage = "";
if (price == null) price = "";
if (orderpage == null) orderpage = "";
if (sellpage != "")
{
sellpage = "/ereports/" + sellpage;
}
if (orderpage != "")
{
orderpage = "/ereports/" + orderpage;
}
e_Write("
");
}
/*--------------------------------------------------------------------*/
/* e_ReportListEnd() function */
/*--------------------------------------------------------------------*/
function e_ReportListEnd()
{
e_Write("
");
e_Write("");
e_Write("
");
}
/*--------------------------------------------------------------------*/
/* e_ReportLink() function */
/*--------------------------------------------------------------------*/
function e_ReportLink(sku)
{
var ex;
for
(
ex = 0;
ex + e_ReportTableWidth <= e_ReportTable.length;
ex += e_ReportTableWidth
)
{
if (sku == e_ReportTable[ex])
{
var directory = e_ReportTable[ex + 1];
e_NonSecureLink("/ereports/"
+ directory + "/welcome.html");
return;
}
}
}
/*--------------------------------------------------------------------*/
/* e_ShowSelectedReport() function */
/*--------------------------------------------------------------------*/
function e_ShowSelectedReport(select)
{
// select.value works in IE but not NN!
var report_dir = select.options[select.selectedIndex].value;
// alert("e_ShowSelectedReport()\nselectedIndex: " + select.selectedIndex + "\nreport_dir: '" + report_dir + "'.");
if (report_dir == "") return;
location.href = e_NonSecureHref("/ereports/" + report_dir + "/welcome.html");
}
/**********************************************************************/
/* */
/* "Table of Contents" Functions */
/* */
/* These variables and functions, all of whose names begin with */
/* "e_Toc", are used to generate tables of content on web pages */
/* that have the same look and feel as the tables of content in our */
/* printed reports. Their design is generalized enough to also be */
/* able to generate list of charts and other entities. */
/* */
/**********************************************************************/
var e_TocDebug = false; // variable
var e_TocPageColWidth = 10; // variable
var e_TocPrefixWidths = new Array(10, 10, 10, 10, 10, 10); // variable
var e_TocIndents = new Array(0, 5, 10, 15, 20, 25); // parameter
var e_TocBegAttribs = new Array(""); // parameter
var e_TocEndAttribs = new Array(""); // parameter
var e_TocRightMargin = 0; // parameter
var e_TocSeparator = ""; // parameter
var e_TocHasPageNumbers = true; // parameter
var e_TocOrderEntire = 'Order report';
var e_TocOrderChecked = 'Order chapters';
var e_TocOrder = ''; // e_TocOrderEntire or
// e_TocOrderChecked
var e_TocBaseSkuForChapters = 0; // 4-digit sku (i. e. SKU) number
var e_TocChapter = 0; // chapter number
var e_TocChapterPages = new String(); // pages in this chapter
var e_TocChapterPrice = new String(); // price of this chapter
var e_TocSection = 0; // section number
var e_TocChart = 0; // chart number
var e_TocPriorLevel = 0; // tracks level switches
var e_TocCheckBoxes = 0; // number of checkboxes
var e_TocSkuList = new String(); // used to validate the form
/*--------------------------------------------------------------------*/
/* e_Toc() function */
/*--------------------------------------------------------------------*/
function e_Toc()
{
var x;
for (x = 0; x < e_Toc.arguments.length; x++)
{
if (e_Debug) {e_Write("" + x + ": '" + e_Toc.arguments[x] + "', ");}
e_TocElem(e_Toc.arguments[x]);
}
}
/*--------------------------------------------------------------------*/
/* e_TocButtons() function */
/*--------------------------------------------------------------------*/
function e_TocButtons()
{
e_Write("
");
}
/*--------------------------------------------------------------------*/
/* e_TocChapterFooter() function */
/*--------------------------------------------------------------------*/
function e_TocChapterFooter()
{
var check_box_width = 17; // just a guess!
if (e_TocDebug) {e_Write("e_TocChapterFooter(); ");}
e_Write("
");
e_Write("
");
e_Write(e_TocChapterPages);
e_Write("
");
// e_Write("
");
// e_Write(" ");
// e_Write("
");
e_Write("
");
e_Write(e_TocChapterPrice);
e_Write("
");
e_Write("
");
e_TocChapterPages = '';
e_TocChapterPrice = '';
}
/*--------------------------------------------------------------------*/
/* e_TocElem() function */
/*--------------------------------------------------------------------*/
function e_TocElem(text, chapter_pages, chapter_price)
{
var prefix = "";
var title = "";
var page = "";
var level = 1;
var sku = ''; // 7-digit chapter or 10-digit section sku
var x;
if (e_Debug) e_TocDebug = true;
if (e_TocDebug) {e_Write("text = '" + text + "' ");}
// 'level' is one more than the number of spaces,
// tabs, newlines or returns before the first token:
for (x = 0; x < text.length - 1; x++)
{
this_char = text.charAt(x);
if (" \t\n\r".indexOf(this_char) < 0) break;
}
level = x + 1;
if (x > 0) text = text.substr(x);
if (e_TocDebug) {e_Write("level = '" + level + "', ");}
// 'prefix' (i. e. chapter or section number) is the first token:
for (x = 0; x < text.length - 1; x++)
{
if (text.charAt(x) == " ") break;
}
if (text.charAt(x) != " ") x++;
prefix = text.substr(0, x);
text = text.substr(x + 1);
prefix = e_Translate(prefix, "_", " ");
prefix += " ";
if (e_TocDebug) {e_Write("prefix = '" + prefix + "', ");}
// 'page' number is the last token:
if (e_TocHasPageNumbers)
{
for (x = text.length - 1; x >= 0; x--)
{
if (text.charAt(x) == " ") break;
}
if (text.charAt(x) != " ") x--;
page = text.substr(x + 1);
text = text.substr(0, x);
page = e_Translate(page, "_", " ");
if (e_TocDebug) {e_Write("page = '" + page + "', ");}
}
// 'title' is what's left:
title = text + " ";
if (e_TocDebug) {e_Write("title = '" + title + "', ");}
x = level - 1;
// construct chapter and section numbers:
// (this assumes level can only be 1 or 2)
if (e_TocBaseSkuForChapters != 0)
{
if (level == 1)
{
e_TocChapter += 1;
e_TocSection = 0;
e_TocCheckBoxes++;
if (e_TocCheckBoxes == 1)
{
//alert("e_TocBaseSkuForChapters = '" + e_TocBaseSkuForChapters + "'.");
}
}
else // if (level == 2)
{
e_TocSection += 1;
}
sku = '' + e_TocBaseSkuForChapters;
if (e_TocChapter > 0)
{
sku += e_LeftPad(e_TocChapter, 3, '0') // Pad to 3 bytes w/zeroes
}
if (e_TocSection > 0)
{
sku += e_LeftPad(e_TocSection, 3, '0') // Pad to 3 bytes w/zeroes
}
if (e_TocDebug) {e_Write("e_TocBaseSkuForChapters = '" + e_TocBaseSkuForChapters + "', ");}
if (e_TocDebug) {e_Write("e_TocChapter = '" + e_TocChapter + "', ");}
if (e_TocDebug) {e_Write("e_TocSection = '" + e_TocSection + "', ");}
if (e_TocDebug) {e_Write("sku = '" + sku + "', ");}
}
var left_margin = e_TocIndents[x];
if (x >= e_TocIndents.length) left_margin = 5;
var prefix_width = e_TocPrefixWidths[x];
if (x >= e_TocPrefixWidths.length) prefix_width = 5;
var beg_attribs = e_TocBegAttribs[x];
if (x >= e_TocBegAttribs.length) beg_attribs = "";
var end_attribs = e_TocEndAttribs[x];
if (x >= e_TocEndAttribs.length) end_attribs = "";
var page_col_width = 0;
if (e_TocHasPageNumbers) page_col_width = e_TocPageColWidth;
var right_margin = e_TocRightMargin;
var title_width = 100
- (left_margin + prefix_width + page_col_width + right_margin);
left_margin = "" + left_margin + "%";
prefix_width = "" + prefix_width + "%";
title_width = "" + title_width + "%";
page_col_width = "" + page_col_width + "%";
right_margin = "" + right_margin + "%";
if (e_TocDebug)
{
e_Write("left_margin = '" + left_margin + "', ");
e_Write("prefix_width = '" + prefix_width + "', ");
e_Write("title_width = '" + title_width + "', ");
e_Write("page_col_width = '" + page_col_width + "', ");
e_Write("right_margin = '" + right_margin + "'.");
}
var border = e_Border;
if (e_TocDebug) border = "01";
if (level == 1)
{
if (e_TocChapter > 1)
{
e_TocChapterFooter();
}
e_Write(e_TocSeparator);
}
e_Write("