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);