Event.observe(window, 'load', function() {
$$('a[href^=#]:not([href=#])').each(function(element) {
element.observe('click', function(event) {
new Effect.ScrollTo(this.hash.substr(1));
Event.stop(event);
}.bindAsEventListener(element))
})
});
function jumpToHash(element) {
// window.location.hash = "#" + $F(element);
new Effect.ScrollTo($F(element));
}
function extractMonthString(d) {
var result = "";
result += d.getFullYear();
if (d.getMonth() < 9) {
result += "0";
}
result += (d.getMonth() + 1);
return result;
}
function showMonthString(d) {
var month = ("" + d).substring(4);
var year = ("" + d).substring(0, 4);
return month + "/" + year;
}
function setupMyProjectDetailPage(projectId, permissions) {
dwr.engine.beginBatch();
if (permissions.statistics) {
ajaxManager.getWatchSummaryByDateRemote(projectId, '', '', '', '', onDrawTrafficVisualization);
}
if (permissions.geography) {
ajaxManager.getWatchSummaryByCountryRemote(projectId, '', '', '', null, onDrawCountryVisualization);
}
if (permissions.times) {
ajaxManager.getTimeSpentSummaryRemote(projectId, '', onDrawTimeVisualization);
}
if (permissions.events) {
showMyProjectEventOverview(projectId);
showMyProjectClickthroughOverview(projectId);
}
if (permissions.hosting) {
showMyProjectHostdomainOverview(projectId);
}
if (permissions.referers) {
showMyProjectRefererOverview(projectId);
}
dwr.engine.endBatch({
timeout:60000
});
}
function showWatchCode(name, watchId) {
Element.show("watchCode");
Element.update("watchCodeName", name);
Element.update("watchCodeIDAS1", watchId);
Element.update("watchCodeIDAS2", watchId);
Element.update("watchCodeIDPixel", watchId);
Element.update("watchCodeIDSWF", watchId);
}
function showClickthroughCode(name, watchId) {
Element.show("watchCode");
Element.update("watchCodeName", name);
Element.update("watchCodeIDAS1", watchId);
Element.update("watchCodeIDAS2", watchId);
Element.update("watchCodeIDURL", watchId);
}
function hideWatchCode() {
Element.hide("watchCode");
}
function showMyProjectsSummary() {
var dateFrom = '', dateTo = '';
var region = '';
element = $("trafficRegion");
if (element) {
region = $F("trafficRegion");
}
element = $("dateFrom");
if (element) {
dateFrom = $F("dateFrom");
}
element = $("dateTo");
if (element) {
dateTo = $F("dateTo");
}
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return htmlEscapeString(data.project.name); } },
{ type:"number", func:function(data) { return data.count; } },
{ type:"percent", func:function(data) { return Math.round(100 * data.countPercentage); } },
{ type:"number", func:function(data) { return data.uniques; } },
{ type:"percent", func:function(data) { return Math.round(100 * data.uniquesPercentage); } },
{ type:"string", hidden: true, func:function(data) { return data.project.id; } }
];
var rowHandler = function(element, dataRow) {
element.onclick = function() { document.location="/login/myprojects_detail_hosting.htm?project="+dataRow[5]+"&country="+region+"&dateFrom="+dateFrom+"&dateTo="+dateTo; };
return element;
}
initTableLoad("projectSummaryDetails", { dataSource: function(cb) { return ajaxManager.getProjectSummaryRemote(dateFrom, dateTo, region, cb) }, cellDetails: cellDetails, rowHandler: rowHandler });
}
/**
* shows an seeded site's details
*/
function showMySeededSiteSearchDetails(name, info, projectId, siteId) {
var element = null;
var s = null;
element = $("seededsitedetails");
if (element) {
element.show();
}
element = $("displaySeededSiteName");
if (element) {
element.innerHTML = htmlEscapeString(name);
}
element = $("displaySeededSiteName2");
if (element) {
element.innerHTML = htmlEscapeString(name);
}
element = $("displaySeededSiteName3");
if (element) {
element.innerHTML = htmlEscapeString(name);
}
element = $("displaySeededSiteInformation");
if (element) {
element.innerHTML = htmlEscapeString(info);
}
searchProjectsForSeededSite(name);
}
function searchProjectsForSeededSite(seededsitename) {
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return htmlEscapeString(data.project.name); } },
{ type:"number", func:function(data) { return data.uniques; } },
{ type:"string", hidden: true, func:function(data) { return data.project.quickLink; } }
];
var rowHandler = function(element, dataRow) {
element.onclick = function() { document.location=dataRow[2]; };
return element;
}
initTableLoad("seededSiteSearchProjects", {dataSource: function(cb) { return ajaxManager.getProjectSummaryBySeededSite(seededsitename, 5, cb) }, cellDetails: cellDetails, rowHandler: rowHandler });
}
function searchCountriesForSeededSite(seededsitename) {
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return htmlEscapeString(data.country.name); } },
{ type:"number", func:function(data) { return data.uniques; } }
];
initTableLoad("seededSiteSearchCountries", {dataSource: function(cb) { return ajaxManager.searchCountriesForSeededSite(seededsitename, 5, cb) }, cellDetails: cellDetails });
}
function showProjectsByBrand(brandId) {
// myprojects usage only
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return htmlEscapeString(data.name); } },
{ type:"number", func:function(data) { return data.uniques; } },
{ type:"percent", func:function(data) { return (data.count == 0 ? 0 : Math.round(100 * (1 - (data.uniques / data.count)))); } },
{ type:"number", func:function(data) { return data.clickThroughCount; } },
{ type:"time", func:function(data) { return data.averageTimeInMinutes; } },
{ type:"number", func:function(data) { return data.activeSessions; } },
{ type:"string", hidden: true, func:function(data) { return data.id; } }
];
var rowHandler = function(element, dataRow) {
element.onclick = function() { document.location="/login/myprojects_detail.htm?project="+dataRow[6]; };
return element;
}
initTableLoad("brandProjects_" + brandId, {dataSource: function(cb) { return ajaxManager.getCurrentAgencyProjectsByBrand(brandId,"viewStatistics",cb) }, cellDetails: cellDetails, rowHandler: rowHandler });
}
function showSeedingProjectsByBrand(brandId) {
// myseeding usage only
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return htmlEscapeString(data.name); } },
{ type:"number", func:function(data) { return data.uniques; } },
{ type:"number", func:function(data) { return data.seededSitesReceivingCount; } },
{ type:"number", func:function(data) { return data.seededSitesPendingCount; } },
{ type:"number", func:function(data) { return data.seededSitesUrlCount; } },
{ type:"string", hidden: true, func:function(data) { return data.id; } }
];
var rowHandler = function(element, dataRow) {
element.onclick = function() { document.location="/login/myseeding_detail.htm?project="+dataRow[5]; };
return element;
}
initTableLoad("brandProjects_" + brandId, { dataSource: function(cb) { return ajaxManager.getCurrentAgencyProjectsByBrand(brandId,"viewSeeding",cb) }, cellDetails: cellDetails, rowHandler: rowHandler });
}
function getAllBrands() {
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return htmlEscapeString(data.name); } },
{ type:"string", style: "midleft", func:function(data) { return htmlEscapeString(data.info); } },
{ type:"string", func:function(data) { return "Edit"; } }
];
initTableLoad("brands", { onLoaded: updateScrollPosition, perPage: 20, dataSource: ajaxManager.getAllBrands, cellDetails: cellDetails });
}
function getAllSeededSites() {
var region = '';
var search = '';
element = $("trafficRegion");
if (element) {
region = $F("trafficRegion");
}
element = $("textSearch");
if (element) {
search = $F("textSearch");
}
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return htmlEscapeString(data.site.name); } },
{ type:"string", func:function(data) { return data.site.complete ? "Complete" : "New"; } },
{ type:"number", func:function(data) { return data.site.seededSiteUrlCount; } },
{ type:"number", func:function(data) { return data.uniques; } },
{ type:"string", style: "midleft", func:function(data) { return htmlEscapeString(data.site.info); } },
{ type:"string", func:function(data) { return "Edit / Delete"; } },
];
initTableLoad("seededSites", { onLoaded: updateScrollPosition, perPage: 20, dataSource: function(cb) { return ajaxManager.getAllSeededSites(region, search, cb) }, cellDetails: cellDetails });
}
function showSeedingSitesForProject(projectId) {
var seeding = true, pending = true;
element = $("chk_seeding");
if (element) {
seeding = element.checked;
}
element = $("chk_pending");
if (element) {
pending = element.checked;
}
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return htmlEscapeString(data.seededsite.name); } },
{ type:"number", func:function(data) { return data.uniques; } },
{ type:"number", func:function(data) { return data.seededsite.seededSiteUrlCount; } },
{ type:"date", func:function(data) { return data.startDate; } },
{ type:"string", func:function(data) {
switch (data.statusString) {
case "RECEIVING" : return "Receiving";
case "SUBMITTED" : return "Submitted";
case "NEW" : return "New";
case "UNSUBMITTED" : return "Unsubmitted";
}
return "";
} },
{ type:"number", hidden: true, func:function(data) { return (data.statusString == "RECEIVING" || data.statusString == "UNSUBMITTED") ? 1 : 0; } }
];
var rowHandler = function(element, dataRow) {
if (dataRow[5] == 1) {
element.className += "_nohov green";
} else {
element.className += "_nohov red";
}
return element;
}
initTableLoad("seedingDetails", { perPage: 30, dataSource: function(cb) { return ajaxManager.getSeedingSitesForProject(projectId, seeding, pending, cb) }, cellDetails: cellDetails, rowHandler: rowHandler });
}
function showMyProjectTimingDetails(projectId, country) {
var cellDetails = [
{ type:"rnumber", style: "left", func:function(data) { return data.minutes; } },
{ type:"number", func:function(data) { return data.count; } },
{ type:"percent", func:function(data) { return Math.round(100 * data.countPercentage); } }
];
initTableLoad("viewTimeDetails", { dataSource: function(cb) {
ajaxManager.getTimeSpentSummaryRemote(projectId, country, function(data) {
onDrawTimeVisualization(data);
cb(data);
});
}, cellDetails: cellDetails });
}
function showMyProjectTrafficDetails(projectId, country, hostDomain) {
var cellDetails = [
{ type:"month", style: "left", func:function(data) { return data.date } },
{ type:"number", func:function(data) { return data.count; } },
{ type:"percent", func:function(data) { return Math.round(100 * data.countPercentage); } },
{ type:"number", func:function(data) { return data.uniques; } },
{ type:"percent", func:function(data) { return Math.round(100 * data.uniquesPercentage); } },
{ type:"string", hidden: true, func:function(data) { return extractMonthString(data.date); } }
];
var rowHandler = function(element, dataRow) {
element.onclick = function() { showMyProjectMonthlyTrafficDetails(projectId,country,hostDomain,dataRow[5]); };
return element;
}
initTableLoad("trafficDetails", { dataSource: function(cb) { return ajaxManager.getWatchSummaryByMonthRemote(projectId, '', country, hostDomain, cb) }, cellDetails: cellDetails, rowHandler: rowHandler });
ajaxManager.getWatchSummaryByDateRemote(projectId, '', country, hostDomain, '', onDrawTrafficVisualization);
}
function showMyProjectMonthlyTrafficDetails(projectId, country, hostDomain, month) {
$("trafficMonthly").show();
$("trafficMonthlyName").update(showMonthString(month));
var cellDetails = [
{ type:"date", style: "left", func:function(data) { return data.date; } },
{ type:"number", func:function(data) { return data.count; } },
{ type:"percent", func:function(data) { return Math.round(100 * data.countPercentage); } },
{ type:"number", func:function(data) { return data.uniques; } },
{ type:"percent", func:function(data) { return Math.round(100 * data.uniquesPercentage); } }
];
initTableLoad("trafficMonthlyDetails", { dataSource: function(cb) { return ajaxManager.getWatchSummaryByDateRemote(projectId, '', country, hostDomain, month, cb) }, cellDetails: cellDetails });
}
function showMyProjectGeographicDetails(projectId, hostDomain) {
var region = '';
element = $("trafficRegion");
if (element) {
region = $F("trafficRegion");
}
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return htmlEscapeString(data.country.name) } },
{ type:"string", func:function(data) { return htmlEscapeString(data.country.region.name) } },
{ type:"string", func:function(data) { return "Hosting / Referrers"; } },
{ type:"number", func:function(data) { return data.count; } },
{ type:"percent", func:function(data) { return Math.round(100 * data.countPercentage); } },
{ type:"number", func:function(data) { return data.uniques; } },
{ type:"percent", func:function(data) { return Math.round(100 * data.uniquesPercentage); } }
];
initTableLoad("viewGeographicDetails", { dataSource: function(cb) {
ajaxManager.getWatchSummaryByCountryRemote(projectId, '', hostDomain, region, null, function(data) {
onDrawCountryVisualization(data);
cb(data);
});
}, cellDetails: cellDetails });
}
function showMyProjectGeographicRegionDetails(projectId, hostDomain) {
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return htmlEscapeString(data.region.name) } },
{ type:"number", func:function(data) { return data.count; } },
{ type:"percent", func:function(data) { return Math.round(100 * data.countPercentage); } },
{ type:"number", func:function(data) { return data.uniques; } },
{ type:"percent", func:function(data) { return Math.round(100 * data.uniquesPercentage); } }
];
initTableLoad("viewGeographicRegionDetails", { dataSource: function(cb) { return ajaxManager.getWatchSummaryByRegionRemote(projectId, '', hostDomain, null, cb) }, cellDetails: cellDetails });
}
function showMyProjectEventOverview(projectId) {
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return htmlEscapeString(data.name) } },
{ type:"number", func:function(data) { return data.count } },
{ type:"number", func:function(data) { return data.uniques } }
];
initTableLoad("eventOverviewDetails", { dataSource: function(cb) { ajaxManager.getEventsForProject(projectId, cb); }, cellDetails: cellDetails });
}
function showMyProjectClickthroughOverview(projectId) {
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return htmlEscapeString(data.name) } },
{ type:"number", func:function(data) { return data.count } },
{ type:"number", func:function(data) { return data.uniques } }
];
initTableLoad("clickthroughOverviewDetails", { dataSource: function(cb) { ajaxManager.getClickthroughsForProject(projectId, cb); }, cellDetails: cellDetails });
}
function showMyProjectHostdomainOverview(projectId) {
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return (data.host == null ? "Other Sites" : htmlEscapeString(data.host.name)) } },
{ type:"number", func:function(data) { return data.count } },
{ type:"percent", func:function(data) { return Math.round(100 * data.countPercentage); } },
{ type:"number", func:function(data) { return data.uniques } },
{ type:"percent", func:function(data) { return Math.round(100 * data.uniquesPercentage); } }
];
initTableLoad("hostdomainOverviewDetails", { dataSource: function(cb) { ajaxManager.getHostdomainOverviewForProject(projectId, cb); }, cellDetails: cellDetails });
}
function showMyProjectRefererOverview(projectId) {
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return (data.url == "" ? "Other Sites" : htmlEscapeString(data.url)) } },
{ type:"number", func:function(data) { return data.count } },
{ type:"percent", func:function(data) { return Math.round(100 * data.countPercentage); } }
];
initTableLoad("refererOverviewDetails", { dataSource: function(cb) { ajaxManager.getRefererOverviewForProject(projectId, cb); }, cellDetails: cellDetails });
}
function showMyProjectEventDetails(projectId, hostDomain, owner) {
var dateFrom = '', dateTo = '';
element = $("dateFrom");
if (element) {
dateFrom = $F("dateFrom");
}
element = $("dateTo");
if (element) {
dateTo = $F("dateTo");
}
var region = '';
element = $("trafficRegion");
if (element) {
region = $F("trafficRegion");
}
if (owner) {
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return "" + data.watch.id } },
{ type:"string", style: "midleft", func:function(data) { return htmlEscapeString(data.watch.name) } },
{ type:"number", func:function(data) { return data.count } },
{ type:"number", func:function(data) { return data.uniques } },
{ type:"string", func:function(data) { return data.watch.rootWatch ? "Root" : "Normal"; } },
{ type:"string", func:function(data) { return "Edit / Delete / Show Code" } }
];
} else {
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return "" + data.watch.id } },
{ type:"string", style: "midleft", func:function(data) { return htmlEscapeString(data.watch.name) } },
{ type:"number", func:function(data) { return data.count } },
{ type:"number", func:function(data) { return data.uniques } },
{ type:"string", func:function(data) { return data.watch.rootWatch ? "Root" : "Normal"; } },
{ type:"string", func:function(data) { return "Show Code" } }
];
}
initTableLoad("eventDetails", { dataSource: function(cb) { ajaxManager.getEventDetailsForProject(projectId, region, hostDomain, dateFrom, dateTo, cb); }, cellDetails: cellDetails });
}
function showMyProjectClickthroughDetails(projectId, hostDomain, owner) {
var dateFrom = '', dateTo = '';
element = $("dateFrom");
if (element) {
dateFrom = $F("dateFrom");
}
element = $("dateTo");
if (element) {
dateTo = $F("dateTo");
}
var region = '';
element = $("trafficRegion");
if (element) {
region = $F("trafficRegion");
}
if (owner) {
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return "" + htmlEscapeString(data.watch.redirectTo) + "
" + htmlEscapeString(data.watch.name) + "" } },
{ type:"number", func:function(data) { return data.count } },
{ type:"number", func:function(data) { return data.uniques } },
{ type:"percent", func:function(data) { return (data.count == 0 ? 0 : Math.round(100 * (1 - (data.uniques / data.count)))); } },
{ type:"string", func:function(data) { return data.watch.active ? "Active" : "Inactive"; } },
{ type:"string", func:function(data) { return "Edit / Delete / Show Code" } }
];
} else {
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return "" + htmlEscapeString(data.watch.redirectTo) + "
" + htmlEscapeString(data.watch.name) + "" } },
{ type:"number", func:function(data) { return data.count } },
{ type:"number", func:function(data) { return data.uniques } },
{ type:"percent", func:function(data) { return (data.count == 0 ? 0 : Math.round(100 * (1 - (data.uniques / data.count)))); } },
{ type:"string", func:function(data) { return data.watch.active ? "Active" : "Inactive"; } },
{ type:"string", func:function(data) { return "Show Code" } }
];
}
initTableLoad("clickthroughDetails", { dataSource: function(cb) {
ajaxManager.getClickthroughDetailsForProject(projectId, region, hostDomain, dateFrom, dateTo, function(data) {
// first we need to update the totals
var totalCount = 0;
var totalUniques = 0;
var d = (data.sorted ? data.sorted : data);
for (var i = 0; i < d.length; i++) {
totalCount += d[i].count;
totalUniques += d[i].uniques;
}
if ($("totalCount")) {
Element.update("totalCount", formatNumberWithCommas(totalCount));
}
if ($("totalUniques")) {
Element.update("totalUniques", formatNumberWithCommas(totalUniques));
}
if ($("totalRepeat")) {
Element.update("totalRepeat", (totalCount == 0 ? 0 : Math.round(100 * (1 - (totalUniques / totalCount)))) + "%");
}
// now build the table itself
cb(data);
});
}, cellDetails: cellDetails });
}
function showMyProjectHostdomainDetails(projectId, country) {
var dateFrom = '', dateTo = '';
element = $("dateFrom");
if (element) {
dateFrom = $F("dateFrom");
}
element = $("dateTo");
if (element) {
dateTo = $F("dateTo");
}
var cellDetails = [
{ type:"position", func:function(data) { return "" } },
{ type:"string", style: "left", func:function(data) { return htmlEscapeString(data.host.name) } },
{ type:"string", func:function(data) { return "Geographic"; } },
{ type:"number", func:function(data) { return data.count } },
{ type:"percent", func:function(data) { return Math.round(100 * data.countPercentage); } },
{ type:"number", func:function(data) { return data.uniques } },
{ type:"percent", func:function(data) { return Math.round(100 * data.uniquesPercentage); } }
];
initTableLoad("hostdomainDetails", { dataSource: function(cb) { ajaxManager.getHostdomainDetailsForProject(projectId, country, dateFrom, dateTo, cb); }, cellDetails: cellDetails });
}
function showMyProjectRefererDetails(projectId, country) {
var dateFrom = '', dateTo = '';
element = $("dateFrom");
if (element) {
dateFrom = $F("dateFrom");
}
element = $("dateTo");
if (element) {
dateTo = $F("dateTo");
}
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return htmlEscapeString(data.url) } },
{ type:"number", func:function(data) { return data.count } },
{ type:"percent", func:function(data) { return Math.round(100 * data.countPercentage); } }
];
initTableLoad("refererDetails", { dataSource: function(cb) { ajaxManager.getRefererDetailsForProject(projectId, country, dateFrom, dateTo, cb); }, cellDetails: cellDetails });
}
function showMyProjectPermissionDetails(projectId) {
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return htmlEscapeString(data.agency.email) } },
{ type:"string", func:function(data) { return htmlEscapeString(data.permissionString) } },
{ type:"string", func:function(data) { return "Edit / Delete" } }
];
initTableLoad("permissionDetails", { dataSource: function(cb) { ajaxManager.getPermissionDetailsForProject(projectId, cb); }, cellDetails: cellDetails });
}
function showMySeedingAvailableSites(projectId) {
element = $("seededsitedetails");
if (element) {
element.hide();
}
var region = '';
var search = '';
element = $("trafficRegion");
if (element) {
region = $F("trafficRegion");
}
element = $("textSearch");
if (element) {
search = $F("textSearch");
}
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return htmlEscapeString(data.site.name); } },
{ type:"number", func:function(data) { return data.uniques; } },
{ type:"string", func:function(data) { return ""; } }, /* see setupSelectAllSeededSites */
{ type:"data", hidden: true, func:function(data) { return data; } }
];
var rowHandler = function(element, dataRow) {
var data = dataRow[3];
element.onclick = function() { showMySeededSiteSearchDetails(data.site.name, data.site.info, projectId, data.site.id); };
return element;
}
initTableLoad("seededSitesSearch", {perPage: 20, dataSource: function(cb) { return ajaxManager.getAvailableSeededSites(projectId, region, search, cb); }, cellDetails: cellDetails, rowHandler: rowHandler, additionalDataHandler: setupSelectAllSeededSites });
}
var allSeededSites = new Array();
function initialiseSeedingSiteList() {
var cellDetails = [
{ type:"string", style: "left", func:function(data) { return htmlEscapeString(data.name); } },
{ type:"string", func:function(data) { return "Remove" } },
{ type:"data", hidden: true, func:function(data) { return data.id; } }
];
initTableLoad("seededSiteList", {cellDetails: cellDetails});
}
function setupSelectAllSeededSites(ds) {
allSeededSites = new Array();
for (var i = 0; i < ds.length; i++) {
var dataRow = ds[i];
var siteId = dataRow[3].site.id;
var siteName = dataRow[3].site.name;
var site = { id: siteId, name: siteName };
allSeededSites.push(site);
if ($("siteCheck_" + siteId)) {
dataRow[2]="AddRemove"
} else {
dataRow[2]="AddRemove"
}
}
return ds;
}
function addAllSeededSites() {
for (var i = 0; i < allSeededSites.length; i++) {
var site = allSeededSites[i];
addSeededSiteToList(site["id"], site["name"]);
}
}
function removeAllSeededSites() {
var gSites = $$(".checkedSeededSite");
for (var i = 0; i < gSites.length; i++) {
var id = gSites[i].id.substring(10);
removeSeededSiteFromList(id);
}
}
function addSeededSiteToList(siteId, siteName) {
var i = findTableRow("seededSiteList", function(data) { return (data[2] == siteId); });
if (i == -1) {
addTableRow("seededSiteList", {name: siteName, id:siteId} );
if ($("add_" + siteId)) {
Element.hide("add_" + siteId);
}
if ($("remove_" + siteId)) {
Element.show("remove_" + siteId);
}
var form = $("multiSeed");
if (form) {
var element = document.createElement("input");
element.id = "siteCheck_" + siteId;
element.name = "sites";
element.type = "hidden";
element.value = siteId;
element.addClassName("checkedSeededSite");
form.appendChild(element);
}
}
}
function removeSeededSiteFromList(siteId) {
var i = findTableRow("seededSiteList", function(data) { return (data[2] == siteId); });
if (i > -1) {
removeTableRow("seededSiteList", i);
if ($("add_" + siteId)) {
Element.show("add_" + siteId);
}
if ($("remove_" + siteId)) {
Element.hide("remove_" + siteId);
}
var form = $("multiSeed");
if (form) {
var element = $("siteCheck_" + siteId);
form.removeChild(element);
}
}
}
function showSeededSiteInfo(siteName, siteInfo) {
Element.show("seededSitePopup");
Element.update("seededSiteName", siteName);
var info = siteInfo;
if (info == "") {
info = "No details";
}
info = info.replace(/(https?:\/\/[^\s]+)/g, "$1");
Element.update("seededSiteInfo", info);
}
function hideSeededSiteInfo() {
Element.hide("seededSitePopup");
}
function getAvailableSiteIds(className) {
return $$(className).length;
}
function multiCheckboxChange(className, selected) {
$$(className).each(function(item) { item.checked = selected; });
}
function getSelectedSiteIds(className) {
var result = new Array();
var gSites = $$(className);
for (var i = 0; i < gSites.length; i++) {
if (gSites[i].checked) {
var id = gSites[i].id.substring(6);
result.push(id);
}
}
return result;
}
function seedGeneralSites(projectId) {
var selected = getSelectedSiteIds(".generalCheckbox");
if (selected.length == 0) {
alert("Please select one or more sites to seed to");
return;
}
if (!confirm("Please confirm that you have manually submitted this project to these " + selected.length + " sites")) {
return;
}
for (var i = 0; i < selected.length; i++) {
var id = selected[i];
ajaxManager.seedProjectOnSite(projectId, id, '', '');
$("site_" + id).remove();
}
var leftCount = getAvailableSiteIds(".generalCheckbox");
if (leftCount == 0) {
$("generalSiteList").hide();
if (getAvailableSiteIds(".emailCheckbox") == 0) {
$("finishedSeeding").show();
}
} else {
Element.update("generalCount", leftCount);
}
}
function seedEmailSites(projectId) {
var messageSubject = '', messageBody = '';
element = $("messageSubject");
if (element) {
messageSubject = $F("messageSubject");
}
element = $("messageBody");
if (element) {
messageBody = $F("messageBody");
}
if (messageSubject == "") {
alert("Please fill out the email subject");
return;
}
if (messageBody == "") {
alert("Please fill out the email text");
return;
}
var selected = getSelectedSiteIds(".emailCheckbox");
if (selected.length == 0) {
alert("Please select one or more sites to seed to");
return;
}
for (var i = 0; i < selected.length; i++) {
var id = selected[i];
ajaxManager.seedProjectOnSite(projectId, id, messageSubject, messageBody);
$("site_" + id).remove();
}
var leftCount = getAvailableSiteIds(".emailCheckbox");
if (leftCount == 0) {
$("emailSiteList").hide();
if (getAvailableSiteIds(".generalCheckbox") == 0) {
$("finishedSeeding").show();
}
} else {
Element.update("emailCount", leftCount);
}
}
function dwrErrorHandler(msg) {
alert(msg);
}
dwr.engine.setErrorHandler(dwrErrorHandler);