var VisualizationModule = {
  changeDateRange: function(dateRange) {
    var manager = goog.analytics.PropertyManager._getInstance();
    manager._set(goog.analytics.Properties._DATE_RANGE, dateRange);
    manager._set(goog.analytics.Properties._COMPARISON_TYPE, "site");

    manager._set(
        goog.analytics.Properties._EVENT_ID, "DateSliderChanged");
    if (typeof(table) == "object") {
      manager._set(goog.analytics.Properties._TABLE_START_ROW, "0");
      if (table._getData().State.ChartColumn) {
        manager._set(goog.analytics.Properties._TABLE_CHART_COLUMN,
            table._getData().State.ChartColumn);
      }
    }

    goog.analytics.Ajax.send(location.pathname+"?"+manager._getQueryString());
  },

  changeDateRangeAndComparisonDateRange: function(dateRange, comparisonDateRange) {
    var manager = goog.analytics.PropertyManager._getInstance();
    manager._set(goog.analytics.Properties._COMPARISON_TYPE, "date_range");
    manager._set(goog.analytics.Properties._DATE_RANGE, dateRange);
    manager._set(goog.analytics.Properties._COMPARE_DATE_RANGE, comparisonDateRange);

    manager._set(goog.analytics.Properties._EVENT_ID, "DateSliderChanged");

    if (typeof(table) == "object") {
      manager._set(goog.analytics.Properties._TABLE_START_ROW, 0);
      if (table._getData().State.ChartColumn) {
        manager._set(goog.analytics.Properties._TABLE_CHART_COLUMN, table._getData().State.ChartColumn);
      }
    }
    goog.analytics.Ajax.send(location.pathname+"?"+manager._getQueryString());
  },

  changeDateRangeAndComparisonType: function(dateRange, comparisonType) {
    var manager = goog.analytics.PropertyManager._getInstance();
    manager._set(goog.analytics.Properties._COMPARISON_TYPE, comparisonType);
    manager._set(goog.analytics.Properties._DATE_RANGE, dateRange);
    manager._set(goog.analytics.Properties._COMPARE_DATE_RANGE, comparisonDateRange);

    manager._set(goog.analytics.Properties._EVENT_ID, "DateSliderChanged");

    if (typeof(table) == "object") {
      if (table._getData().State.ChartColumn) {
        manager._set(goog.analytics.Properties._TABLE_CHART_COLUMN, table._getData().State.ChartColumn);
      }
    }
    goog.analytics.Ajax.send(location.pathname+"?"+manager._getQueryString());
  },

  changeComparisonType: function(comparisonType) {
    var manager = goog.analytics.PropertyManager._getInstance();
    manager._set(goog.analytics.Properties._COMPARISON_TYPE, comparisonType);

    manager._set(goog.analytics.Properties._EVENT_ID, "DateSliderChanged");

    if (typeof(table) == "object") {
      if (table._getData().State.ChartColumn) {
        manager._set(goog.analytics.Properties._TABLE_CHART_COLUMN, table._getData().State.ChartColumn);
      }
    }
    goog.analytics.Ajax.send(location.pathname+"?"+manager._getQueryString());
  },

  changeSortBy: function() {
    var manager = goog.analytics.PropertyManager._getInstance();
    manager._set(goog.analytics.Properties._EVENT_ID, "TableChanged");
    if (table._getData().State.ChartColumn) {
      manager._set(goog.analytics.Properties._TABLE_CHART_COLUMN, table._getData().State.ChartColumn);
    }
    manager._set(goog.analytics.Properties._TABLE_SORT_COLUMN, table._getData().State.SortColumn)
    manager._set(goog.analytics.Properties._TABLE_START_ROW, 0);

    goog.analytics.Ajax.send(location.pathname+"?"+manager._getQueryString());
  },

  changeView: function() {
    var manager = goog.analytics.PropertyManager._getInstance();
    manager._set(goog.analytics.Properties._EVENT_ID, "ViewChanged");
    manager._set(goog.analytics.Properties._TABLE_VIEW, table._getData().State.View);
    if (table._getData().State.View == 0) {
      manager._set(goog.analytics.Properties._TABLE_SORT_COLUMN, "");
    }

    goog.analytics.Ajax.send(location.pathname+"?"+manager._getQueryString());
  },

  changeTab: function(tab) {
    var manager = goog.analytics.PropertyManager._getInstance();
    manager._set(goog.analytics.Properties._EVENT_ID, "TabChanged");
    manager._set(goog.analytics.Properties._TABLE_TAB, tab);
    manager._set(goog.analytics.Properties._TABLE_START_ROW, 0);
    if (tab == 0) {
      manager._set(goog.analytics.Properties._TABLE_CHART_COLUMN, 0);
    } else {
      manager._set(goog.analytics.Properties._TABLE_CHART_COLUMN, 1);
    }
    manager._set(goog.analytics.Properties._TABLE_SORT_COLUMN, "");

    goog.analytics.Ajax.send(location.pathname+"?"+manager._getQueryString());
  },

  changeSortOrder: function() {
    var manager = goog.analytics.PropertyManager._getInstance();
    manager._set(goog.analytics.Properties._EVENT_ID, "TableChanged");
    if (table._getData().State.ChartColumn) {
      manager._set(goog.analytics.Properties._TABLE_CHART_COLUMN, table._getData().State.ChartColumn);
    }
    manager._set(goog.analytics.Properties._TABLE_SORT_ORDER, table._getData().State.SortOrder);
    manager._set(goog.analytics.Properties._TABLE_START_ROW, 0);
    goog.analytics.Ajax.send(location.pathname+"?"+manager._getQueryString());
  },

  changePage: function() {
    var manager = goog.analytics.PropertyManager._getInstance();
    manager._set(goog.analytics.Properties._EVENT_ID, "TableChanged");
    if (table._getData().State.ChartColumn) {
      manager._set(goog.analytics.Properties._TABLE_CHART_COLUMN, table._getData().State.ChartColumn);
    }
    manager._set(goog.analytics.Properties._TABLE_START_ROW, table._getData().RowStart);
    manager._set(goog.analytics.Properties._TABLE_ROW_COUNT, table._getData().RowShow);
    goog.analytics.Ajax.send(location.pathname+"?"+manager._getQueryString());
  },

  changeSearch: function() {
    var manager = goog.analytics.PropertyManager._getInstance();
    manager._set(goog.analytics.Properties._EVENT_ID, "Filter");
    if (table._getData().State.ChartColumn) {
      manager._set(goog.analytics.Properties._TABLE_CHART_COLUMN, table._getData().State.ChartColumn);
    }
    manager._set(goog.analytics.Properties._FILTER, table._getData().FilterString);
    manager._set(goog.analytics.Properties._FILTER_TYPE, table._getData().FilterType);
    manager._set(goog.analytics.Properties._TABLE_START_ROW, 0);
    goog.analytics.Ajax.send(location.pathname+"?"+manager._getQueryString());
  },

  changeSegmentBy: function(segmentBy) {
    var manager = goog.analytics.PropertyManager._getInstance();
    if (typeof(table) == "object") {
      manager._set(goog.analytics.Properties._EVENT_ID, "NarrativeChanged");
      manager._set(goog.analytics.Properties._TABLE_CHART_COLUMN, table._getData().State.ChartColumn);
      manager._set(goog.analytics.Properties._FILTER, "");
      manager._set(goog.analytics.Properties._TABLE_START_ROW, 0);
      manager._set(goog.analytics.Properties._SEGMENT_BY, segmentBy);
      manager._set(goog.analytics.Properties._SEGMENT, 1);

      goog.analytics.Ajax.send(location.pathname+"?"+manager._getQueryString());
    } else {
      var path = window.location.pathname;

      var newPropertyManager = goog.analytics.PropertyManager._getNewInstance();
      newPropertyManager._addProperties(manager._getQueryString());

      newPropertyManager._set(goog.analytics.Properties._EVENT_ID, "");
      newPropertyManager._set(goog.analytics.Properties._SEGMENT, "1");
      newPropertyManager._set(goog.analytics.Properties._SEGMENT_BY, segmentBy);

      newPropertyManager._set(goog.analytics.Properties._EVENT_ID, "");

      window.location.href = path + "?" + newPropertyManager._getQueryString();
    }
  },

  changeSegmentation: function(showSegment) {
    var path = window.location.pathname;
    var manager = goog.analytics.PropertyManager._getInstance();
    var newPropertyManager = goog.analytics.PropertyManager._getNewInstance();
    newPropertyManager._addProperties(propertyManager._getQueryString());
    newPropertyManager._set(goog.analytics.Properties._SEGMENT, (showSegment ? "1" : "0"));
    newPropertyManager._set(goog.analytics.Properties._EVENT_ID, "");

    window.location.href = path + "?" + newPropertyManager._getQueryString();
  },

  changeSliceBy: function(slice) {
    var manager = goog.analytics.PropertyManager._getInstance();
    manager._set(goog.analytics.Properties._EVENT_ID, "NarrativeChanged");
    if (typeof(table) == "object") {
      manager._set(goog.analytics.Properties._TABLE_CHART_COLUMN, table._getData().State.ChartColumn);
      manager._set(goog.analytics.Properties._FILTER, "");
      manager._set(goog.analytics.Properties._TABLE_START_ROW, "0");
    }
    manager._set(goog.analytics.Properties._SLICE_BY, slice);
    goog.analytics.Ajax.send(location.pathname+"?"+manager._getQueryString());
  },

  changeDetailKeyword: function(drilldown) {
    var manager = goog.analytics.PropertyManager._getInstance();
    manager._set(goog.analytics.Properties._EVENT_ID, "Filter");
    if (table._getData().State.ChartColumn) {
      manager._set(goog.analytics.Properties._TABLE_CHART_COLUMN, table._getData().State.ChartColumn);
    }
    if (drilldown && drilldown != "") {
      manager._set(goog.analytics.Properties._DRILLDOWN, drilldown);
    }
    goog.analytics.Ajax.send(location.pathname+"?"+manager._getQueryString());
  },

  changeDrilldown: function(newDrilldown) {
    var manager = goog.analytics.PropertyManager._getInstance();
    manager._set(goog.analytics.Properties._EVENT_ID, "DrilldownChanged");
    manager._set(goog.analytics.Properties._DRILLDOWN, newDrilldown);
    manager._set(goog.analytics.Properties._DRILLDOWN2, "");
    manager._set(goog.analytics.Properties._DRILLDOWN3, "");
    goog.analytics.Ajax.send(location.pathname+"?"+manager._getQueryString());
  },

  changeGraphValue: function(index) {
    var manager = goog.analytics.PropertyManager._getInstance();
    manager._set(goog.analytics.Properties._EVENT_ID, "GraphChanged");
    manager._set(goog.analytics.Properties._GRAPH_VALUE, index);
    goog.analytics.Ajax.send(location.pathname+"?"+manager._getQueryString());
  },

  changeMapIndex: function(index) {
    var manager = goog.analytics.PropertyManager._getInstance();
    manager._set(goog.analytics.Properties._EVENT_ID, "MapChanged");
    manager._set(goog.analytics.Properties._GEOMAP_VALUE_INDEX, index);
    goog.analytics.Ajax.send(location.pathname+"?"+manager._getQueryString());
  },

  changeGoal: function(goalNumber) {
    var params = goog.analytics.Properties._GOAL + "=" + goalNumber;
    VisualizationModule.changeReport(location.pathname, params);
  },


  changeReport: function(report, params) {
    var propertyManager = goog.analytics.PropertyManager._getInstance();
    propertyManager._set(goog.analytics.Properties._EVENT_ID, "");
    if (params && params != "") {
      window.location.href =  report + "?" + propertyManager._getPersistentQueryString() + "&" + params;
    } else {
      window.location.href =  report + "?" + propertyManager._getPersistentQueryString();
    }
    return false;
  },

  launchOverlay: function() {
    var manager = goog.analytics.PropertyManager._getInstance();
    var newManager = manager._cloneAll();
    var url =  "overlay_launch?" + newManager._getQueryString();
    var mywin = window.open(url, "GA_SiteOverlay",'scrollbars=yes,menubar=yes,toolbar=yes,location=yes,width=800,height=600,resizable=yes');
    mywin.focus();
    return false;
  },

  launchDefaultOverlay: function() {
    var manager = goog.analytics.PropertyManager._getInstance();
    var newManager = manager._cloneAll();
    newManager._set(goog.analytics.Properties._DRILLDOWN, "");
    newManager._set(goog.analytics.Properties._DRILLDOWN2, "");
    newManager._set(goog.analytics.Properties._DRILLDOWN3, "");
    var url =  "overlay_launch?" + newManager._getQueryString();
    var mywin = window.open(url, "GA_SiteOverlay",'scrollbars=yes,menubar=yes,toolbar=yes,location=yes,width=800,height=600,resizable=yes');
    mywin.focus();
    return false;
  },

  changeSelectorFilter: function(filterString) {
    var manager = goog.analytics.PropertyManager._getInstance();
    manager._set(goog.analytics.Properties._EVENT_ID, "SelectorFilterChanged");
    manager._set(goog.analytics.Properties._SELECTOR_FILTER, filterString);
    goog.analytics.Ajax.sendCustomLoading(location.pathname+"?"+manager._getQueryString(), "ContentControl_menu_loading");
  },

  changeSegmentView: function(viewId) {
    var path = window.location.pathname;

    var manager = goog.analytics.PropertyManager._getInstance();
    var clonedManager = goog.analytics.PropertyManager._getInstance()._cloneAll();
    clonedManager._set(goog.analytics.Properties._EVENT_ID, "");
    clonedManager._set(goog.analytics.Properties._TABLE_VIEW, viewId);
    clonedManager._set(goog.analytics.Properties._SEGMENT, "1");

    window.location.href = path + "?" + clonedManager._getQueryString();
  },

  changeAnalyzeContent: function(analyzeUrl) {
    var manager = goog.analytics.PropertyManager._getInstance();
    var clonedManager = manager._clonePersistent();

    clonedManager._set(goog.analytics.Properties._DRILLDOWN,
        manager._get(goog.analytics.Properties._DRILLDOWN));

    window.location.href = analyzeUrl + "?" + clonedManager._getQueryString();
  },

  redirectReport: function(report, params) {
    var clonedManager = goog.analytics.PropertyManager._getInstance()._cloneAll();

    if (params && params != "") {
      clonedManager._addProperties(params);
    }
    clonedManager._set(goog.analytics.Properties._EVENT_ID, "");

    window.location.href = report + "?" + clonedManager._getQueryString() + getLimitParam();
  },

  exportReport: function(params) {
    var manager = goog.analytics.PropertyManager._getInstance();
    var newPropertyManager = goog.analytics.PropertyManager._getNewInstance();
    manager._set(goog.analytics.Properties._EVENT_ID, "");
    newPropertyManager._addProperties(manager._getQueryString() + "&" + params);

    window.open("export" + "?" + newPropertyManager._getQueryString() + getLimitParam());
  },

  changeNavigationPathDrilldown: function(drilldown1, drilldown2) {
    var params = goog.analytics.Properties._DRILLDOWN +
                 "=" + encodeURIComponent(drilldown1);
    params += "&" + goog.analytics.Properties._DRILLDOWN2 +
              "=" + encodeURIComponent(drilldown2);

    VisualizationModule.changeReport("content_detail_path", params);
  },

  changeGeoMap: function(targetId, zoomLevel, segmentBy) {
    var clonedManager = goog.analytics.PropertyManager._getInstance()._cloneAll();
    clonedManager._set(goog.analytics.Properties._DRILLDOWN, targetId);
    clonedManager._set(goog.analytics.Properties._GEOMAP_ZOOM_LEVEL, zoomLevel);
    clonedManager._set(goog.analytics.Properties._SEGMENT_BY, segmentBy);
    clonedManager._set(goog.analytics.Properties._EVENT_ID, "");

    location.href = "maps?" + clonedManager._getQueryString();
  },

  segmentMap: function(segmentBy) {
    var clonedManager = goog.analytics.PropertyManager._getInstance()._cloneAll();
    clonedManager._set(goog.analytics.Properties._SEGMENT_BY, segmentBy);
    clonedManager._set(goog.analytics.Properties._SEGMENT, "1");
    clonedManager._set(goog.analytics.Properties._EVENT_ID, "");

    location.href = "map_detail?" + clonedManager._getQueryString();
  },

  returnToMap: function(segmentBy) {
    var clonedManager = goog.analytics.PropertyManager._getInstance()._cloneAll();
    clonedManager._set(goog.analytics.Properties._SEGMENT_BY, segmentBy);
    clonedManager._set(goog.analytics.Properties._SEGMENT, "1");
    clonedManager._set(goog.analytics.Properties._EVENT_ID, "");

    location.href = "maps?" + clonedManager._getQueryString();
  },

  changeTimeSlice: function(newTimeSlice) {
    var manager = goog.analytics.PropertyManager._getInstance();
    manager._set(goog.analytics.Properties._TIME_RESOLUTION, newTimeSlice);
    manager._set(goog.analytics.Properties._EVENT_ID, "SliceChanged");

    goog.analytics.Ajax.send(location.pathname+"?"+manager._getQueryString());
  }

};

var VisualizationInstance = function() { }
VisualizationInstance.prototype = VisualizationModule;

var Visualization = new VisualizationInstance();


var FormsetSections = function(id, default_section) {
  this.id = id;
  this.currentSection = default_section;
}
FormsetSections.prototype = {
  toggle: function(section) {
    if (this.currentSection == section) return;

    goog.style.setStyle(document.getElementById(this.id+'_section_'+this.currentSection), "display", "none");

    goog.style.setStyle(document.getElementById(this.id+'_section_'+section), "display", "block");

    goog.dom.classes.remove(document.getElementById(this.id+'_tab_'+this.currentSection), "current");

    goog.dom.classes.add(document.getElementById(this.id+'_tab_'+section), "current");

    this.currentSection = section;

    email_preview.update(section);

    _urchinTracker("/analytics/reporting/ui/email/section/" + section);
  }
}

var EmailPreview = function(numScheduledEmails, numReports) {
  this.numScheduledEmails = numScheduledEmails;
  this.numReports = numReports;
  this.numFormats = 4;
}
EmailPreview.prototype = {
  update: function(source) {
    this.updateToEmails(source);
    this.updateSubject(source);
    this.updateDescription(source);
    this.updateAttachments(source);
  },
  setNumReports: function(numReports) {
    this.numReports = numReports;
  },
  updateToEmails: function(source) {
    var to_emails='';
    var user_email = userEmail;
    if (source!='add_to') {
      var recipientsElement =
          document.getElementById('f_email_'+source+'_to_emails');
      if (recipientsElement) {
        to_emails = recipientsElement.value;
      }
      to_emails = to_emails.replace(/,/g, ", ");
      var ccSelfElement = document.getElementById('f_email_'+source+'_cc_self');
      if (ccSelfElement && ccSelfElement.checked) {
        if (to_emails!='') {
          to_emails+=', '+user_email;
        } else {
          to_emails=user_email;
        }
      }
    } else {
      for (var s = 0; s < this.numScheduledEmails; s++) {
        var targetElement =
            document.getElementById('f_email_target_schedule_'+s);
        if (targetElement && targetElement.checked) {
          to_emails=document.getElementById('f_email_target_schedule_'+s+'_to_emails').innerHTML;
        }
      }
    }
    document.getElementById('f_email_preview_to_emails').innerHTML =
      scriptEscape(to_emails);
  },
  updateSubject: function(source) {
    var subject = "";

    var schedule = "now";
    if (source == "schedule") {
      var scheduleElement = document.getElementById("f_email_schedule_repeating_schedule");
      if (scheduleElement) {
        var selectedSchedule = scheduleElement.options[scheduleElement.selectedIndex];
        schedule = selectedSchedule.value;
      }
    }
    var date_range = subjectDate[schedule];
    if (source != 'add_to') {
      subject = date_range;
      var subjectElement = document.getElementById('f_email_'+source+'_subject');
      var userText = "";
      if (subjectElement) {
        userText = subjectElement.value;
      }
      if (userText.length > 0) {
        subject += " (" + userText + ")";
      }
    } else {
      for (var s = 0; s < this.numScheduledEmails; s++) {
        var targetElement =
            document.getElementById('f_email_target_schedule_'+s);
        if (targetElement && targetElement.checked) {
          subject=document.getElementById('f_email_target_schedule_'+s+'_subject').innerHTML;
        }
        date_range = "";
      }
    }
    document.getElementById('f_email_preview_subject').innerHTML =
      scriptEscape(subject);
  },
  updateDescription: function(source) {
    var description='';
    if (source!='add_to') {
      var bodyElement = document.getElementById('f_email_'+source+'_description');
      if (bodyElement) {
        description = bodyElement.value;
      }
    } else {
      for (var i = 0; i < this.numScheduledEmails; i++) {
        var targetElement =
            document.getElementById('f_email_target_schedule_'+i);
        if (targetElement && targetElement.checked) {
          var dataFieldId = "f_email_target_schedule_" + i + "_description";
          var dataField = document.getElementById(dataFieldId);
          description = dataField.innerHTML;
        }
      }
    }
    document.getElementById('f_email_preview_description').innerHTML =
      scriptEscape(description);
  },
  updateAttachments: function(source) {
    var formatName = "";
    var attachmentText = "";

    if (source == "send_now" || source == "schedule" || source == "edit") {
      for (var f = 0 ; f < this.numFormats; f++) {
        var formatRadioId = "f_email_" + source + "_format_" + (f + 1);
        var currentFormatRadio = document.getElementById(formatRadioId);
        if (currentFormatRadio && currentFormatRadio.checked) {
          formatName = currentFormatRadio.value;
          break;
        }
      }

      if (source == "send_now") {
        var formatNum = 0;
        if (formatName == "pdf") {
          formatNum = 0;
        } else if (formatName == "xml") {
          formatNum = 1;
        } else if (formatName == "csv") {
          formatNum = 2;
        } else if (formatName == "tsv") {
          formatNum = 3;
        }

        var href = "export" +
                   "?" + goog.analytics.Properties._EXPORT_FORMAT +
                        "=" + formatNum +
                   "&" + goog.analytics.Properties._REPORT_NAME +
                        "=" + enc_report_name +
                   "&" + goog.analytics.PropertyManager._getInstance().
                            _getQueryString();

        attachmentText =
          '<a href="' + href + '" class="'+formatName+'">'+formatName.toUpperCase()+'</a>';
      } else {
        attachmentText = "<div class=\"" + formatName + "\">" +
                         formatName.toUpperCase() +"</div>";
      }
    } else if (source == "add_to") {
      for (var i = 0; i < this.numScheduledEmails; i++) {
        var targetElement =
            document.getElementById("f_email_target_schedule_" + i);
        if (targetElement && targetElement.checked) {
          var dataFieldId = "f_email_target_schedule_" + i + "_format";
          var dataField = document.getElementById(dataFieldId);
          formatName = dataField.innerHTML;
        }
      }
      attachmentText = "<div class=\"" + formatName + "\">" +
                       formatName +"</div>";
    }
    document.getElementById("f_email_preview_attachments").innerHTML = attachmentText;
  }
}

function scriptEscape(str) {
  str = str.replace(/\>/g, "&gt;");
  str = str.replace(/\</g, "&lt;");
  return str;
}

function isValidEmail(str) {
	return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
}
function _openFeedback() {
  var manager = goog.analytics.PropertyManager._getInstance();
  var email = document.getElementById("f_email").innerHTML;
  var request = manager._getQueryString();

  var url = "http://www.google.com/support/analytics/bin/request.py?";
  url += "fb_email=" + encodeURIComponent(email);
  url += "&fb_cookie=" + encodeURIComponent(request);
  var mywin = window.open(url, "googlefeedback",'scrollbars=yes,menubar=yes,toolbar=yes,location=yes,width=800,height=600,resizable=yes');
  mywin.focus();
  return false;
}

function openAdmin() {
  var element = document.getElementById("profile");
  var profileId = element.options[element.selectedIndex].value;

  var accountId = "";
  if ((element = document.getElementById("account"))) {
    accountId = element.options[element.selectedIndex].value;
  } else if ((element = document.getElementById("accountId"))) {
    accountId = element.value;
  }

  var url = "/analytics/home/admin?vid=1101&rid="+profileId+"&scid="+accountId;
  var mywin = window.open(url, "gaadmin",'scrollbars=yes,menubar=yes,toolbar=yes,location=yes,width=800,height=600,resizable=yes');
  mywin.focus();
  return false;
}
function _openHelp(path) {
  var manager = goog.analytics.PropertyManager._getInstance();
  var lang = manager._get(goog.analytics.Properties._LOCALE_HELP);
  var url = "";
  if (path.indexOf("?") > -1) {
    url = "http://www.google.com/support/googleanalytics/bin/"+path + "&hl=" + lang;
  } else {
    url = "http://www.google.com/support/googleanalytics/bin/"+path + "?hl=" + lang;
  }
  var mywin = window.open(url, "gahelp",'scrollbars=yes,menubar=yes,toolbar=yes,location=yes,width=800,height=600,resizable=yes');
  mywin.focus();
}

function _urchinTracker(page) {
  if (typeof(urchinTracker) != 'undefined') {
    urchinTracker(page);
  }
}

function _urchinTrackerRedirect(page) {
  if (typeof(urchinTracker) != 'undefined') {
    urchinTracker(page);
  }
  return true;
}

var dropdowns = new Object();

function toggleMenu(dropdownId) {
  goog.analytics.Menu.toggle(dropdownId + "_button", dropdownId + "_menu", goog.analytics.MenuType.NARRATIVE)
}

function toggleAndFetchMenu(dropdownId, bodyId) {
  if (!dropdowns[dropdownId]) {
    var propertyManager = goog.analytics.PropertyManager._getInstance();
    propertyManager._set(goog.analytics.Properties._EVENT_ID, "Load" + bodyId);
    goog.analytics.Ajax.sendCustomLoading(location.pathname + "?" + propertyManager._getQueryString(), dropdownId + "_menu_loading");
    dropdowns[dropdownId] = true;
  }
  goog.analytics.Menu.toggle(dropdownId + "_button", dropdownId + "_menu", goog.analytics.MenuType.NARRATIVE)
}

function getLimitParam() {
  var limit = getUrlParam("limit");
  return (limit && (limit != "")) ? ("&limit=" + limit) : "";
}

function getUrlParam(name) {
  var regexp = new RegExp("[\\?&]" + name + "=([^&#]*)");
  var results = regexp.exec(window.location.href);
  return (results == null) ? null : results[1];
}

if (typeof Flash == "undefined") {
  var Flash = new Object();
}

Flash.defaultVersion = "7,0,14,0";

Flash.Builder = {

  writeFlash: function(swf, width, height, initializer) {
    this._createFlashTag(swf, width, height, initializer).write();
  },

  writeFlash: function(elementId, swf, width, height, initializer) {
    this._createFlashTag(swf, width, height, initializer).writeToDom(elementId);
  },

  writeJsIntegratedFlash: function(swf, width, height, initializer) {
    var proxy = this.createJsIntegratedFlash(swf, width, height, initializer);
    proxy.write();
    return proxy;
  },

  writeJsIntegratedFlashToDom: function(elementId, swf, width, height, initializer) {
    var proxy = this.createJsIntegratedFlash(swf, width, height, initializer);
    proxy.writeToDom(elementId);
    return proxy;
  },  

  createJsIntegratedFlash: function(swf, width, height, initializer) {
    var tag = this._createFlashTag(swf, width, height, initializer); 
    return new Flash.Proxy(tag);
  },
  
  _createFlashTag: function(swf, width, height, initializer) {
    var tag = new Flash.Tag(swf, width, height);
    if (initializer instanceof Function) {
      initializer.call(this, tag);
    }
    return tag;
  }
}

Flash.Proxy = function(flashTag) {
  this.flashTag = flashTag;
  this.serializer = new Flash.Serializer(false);
  var id = "flashProxy" + (Flash.Proxy._proxyIdCounter++);
  this.flashTag.setId(id);
  this.flashTag.setFlashVar("JavascriptProxyId", id);

  if (navigator.appName.indexOf ("Microsoft") != -1) {
    this.flashTag.setFlashVar("JavascriptProxyQueueInterval", 100);
  }
}
Flash.Proxy._proxyIdCounter = 0;
Flash.Proxy.prototype = {
  
  getId: function() {
    return this.flashTag.getId();
  },

  write: function() {
    this.flashTag.write();
  },

  writeToDom: function(elementId) {
    this.flashTag.writeToDom(elementId);
  },

  sendMessage: function(__arguments__) {
    
    var functionName = arguments[0];
    var functionArgs = [];
    for (var i = 1; i < arguments.length; i++) {
      functionArgs.push(arguments[i]);
    }
    
    var serializedData = this.serializer.serializeAll([functionName, functionArgs]);
    this.flashTag.getSwf().SetVariable("__JavascriptProxy" + this.getId(), serializedData);
  }
};

Flash.Tag = function(swf, width, height, version) {
  this.swf = swf;
  this.width = width;
  this.height = height;
  this.version = version || Flash.defaultVersion;
  this.id = null;
  this.paramsHash = { bgcolor: "#FFFFFF", quality: "high" };
  this.flashVarsHash = {};
}
Flash.Tag.prototype = {

  getId: function() {
    return this.id;
  },

  setId: function(id) {
    this.id = id;
  },

  getSwf: function() {
    return document.getElementById(this.getId());
  },

  setParam: function(name, value) {
    this.paramsHash[name] = value;
  },

  setFlashVar: function(name, value) {
    this.flashVarsHash[name] = value;
  },
  
  toString: function() {
    if (navigator.appName.indexOf ("Microsoft") != -1) {
      return this._toStringForExplorer();
    } else {
      return this._toStringForStandard();
    }
  },
  
  write: function() {
    document.write(this.toString());
  },

  writeToDom: function(elementId) {
    var element = document.getElementById(elementId)
    if (element) {
      element.innerHTML = this.toString();
    }
  },
  
  _toStringForExplorer: function() {
    var str = "<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" ";
    str += "codebase=\"" + location.protocol + "//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=" + this.version + "\" ";
    str += "width=\"" + this.width + "\" ";
    str += "height=\"" + this.height + "\"";
    if (this.id) {
      str += "id=\"" + this.id + "\"";
    }
    str += ">";
    str += "<param name=\"movie\" value=\"" + this.swf + "\" />";
    str += "<param name=\"flashvars\" value=\"" + this._flashVarsString() + "\" />";
    for (var key in this.paramsHash) {
      str += "<param name=\"" + key + "\" value=\"" + this.paramsHash[key] + "\" />";
    }
    str += "</object>";
    return str;
  },
  _toStringForStandard: function() {
    var str = "<embed src=\"" + this.swf + "\" width=\"" + this.width + "\" height=\"" + this.height + "\" salign=\"tl\" scale=\"noScale\" quality=\"high\" ";
    str += "type=\"application/x-shockwave-flash\" ";
    str += "pluginspage=\"http://www.macromedia.com/go/getflashplayer\" ";
    str += "flashvars=\"" + this._flashVarsString() + "\" ";
    if (this.id) {
      str += "id=\"" + this.id + "\"";
    }
    for (var key in this.paramsHash) {
      str += key + "=\"" + this.paramsHash[key] + "\" ";
    }
    str += "</embed>";
    return str;
  },
  _flashVarsString: function() {
    var vars = [];
    for (var key in this.flashVarsHash) {
      vars.push(encodeURIComponent(key) + "=" + encodeURIComponent(this.flashVarsHash[key]));
    }
    return vars.join("&");
  }
};

Flash.Receiver = {

  register: function(flashProxy, receiver) {
    this.instances[flashProxy.getId()] = receiver;
  },

  execute: function(id, functionName, functionArgs) {

    functionArgs = (functionArgs instanceof Array) ? functionArgs : []
    var instance = Flash.Receiver.instances[id];
    if (instance) {
      var func = instance[functionName];
      if (func) {
        func.apply(instance, functionArgs);
      } else {
        alert("Flash.Receiver.NoMethodError: " + functionName + ", for id: " + id + " (received by: " + instance + ")");
      }
    } else {
      var func = window[functionName];
      if (func) {
        func.apply(window, functionArgs);
      } else {
        alert("Flash.Receiver.NoMethodError: " + functionName);
      }
    }
  },

  instances: {}
}

Flash.Serializer = function(useCdata) {
  this.useCdata = useCdata;
}
Flash.Serializer.prototype = {
  
  serialize: function(value) {
    return this.Builder.serialize(value);
  },

  serializeAll: function(values) {
    var str = "";
    for (var i = 0; i < values.length; i++) {
      str += this.serialize(values[i]);
    }
    return str;
  },
  
  Builder: {
    
    serialize: function(value, name) {
      var type = typeof value;
      if (type == "undefined") {
        return this.encode("undef", value, name);
      } else if (value == null) {
        return this.encode("null", value, name);
      } else {
        switch(type) {
          case "string":  return this.encode("s", value, name);
          case "number":  return this.encode("n", value, name);
          case "boolean": return this.encode("b", value, name);
          case "object":
            for (var i = 0; i < Flash.Serializers.length; i++) {
              var serializer = Flash.Serializers[i];
              if (serializer.serializes(value)) {
                return serializer.serialize(this, value, name);
              }
            }
        }
      }
      alert("Flash.Serializer: unhandled type of object: " + typeof(value));
    },
    
    encode: function(type, value, name) {
      if (typeof(value) == "string") {
        value = this._escapeXmlString(value);
      }
      if (value != undefined && name != undefined ) {
        return "<" + type + " n=\"" + name + "\" v=\"" + encodeURIComponent(value) + "\"/>";
      } else if (value != undefined) {
        return "<" + type + " v=\"" + encodeURIComponent(value) + "\"/>";
      } else {
        return "<" + type + "/>";
      }
    },
  
    wrap: function(type, contentBuilder) {
      var content = contentBuilder();
      if (content.length > 0) {
        return "<" + type + ">" + content + "</" + type + ">";
      } else {
        return "<" + type + "/>";
      }
    },
  
    _escapeXmlString: function(string) {
      if (this.useCdata) {
        return "<![CDATA[" + string +"]]>";
      } else {
        return string.replace(/&/g, "&amp;").replace(/</g, "&lt;");
      }
    }
  }
    
};

Flash.Serializers = [

  { serializes: function(value) {
      return (value instanceof Date);
    },
    serialize: function(builder, date) {
      return builder.encode("d", date.getTime());
    } 
  },

  { serializes: function(value) {
      return (value instanceof Array);
    },
    serialize: function(builder, array) {
      return builder.wrap("a", function() {
        var str = "";
        for (var i = 0; i < array.length; i++) {
          str += builder.serialize(array[i]);
        }
        return str;
      });
    }
  },

  { serializes: function(value) {
      return true;
    },
    serialize: function(builder, object) {
      return builder.wrap("o", function() {
        var str = "";
        for (var key in object) {
          str += builder.serialize(object[key], key);
        }
        return str;
      });
    }  
  }
];

Flash.Serializers.add = function(serializer) {
  this.unshift(serializer);
}

var DateRange = function(begin, end) {
  this.begin = begin;
  this.end = end;
}
DateRange.prototype = {
  getBegin: function() {
    return this.begin;
  },
  getEnd: function() {
    return this.end;
  },
  toParam: function() {
    return this._formatDate(this.begin) + "-" + this._formatDate(this.end);
  },
  toString: function() {
    return "[DateRange " + this.begin + " - " + this.end + "]";
  },
  _formatDate: function(date) {
    var YYYY = date.getFullYear();
    var MM = date.getMonth() + 1;
    if (MM < 10) {
      MM = "0" + MM;
    }
    var DD = date.getDate();
    if (DD < 10) {
      DD = "0" + DD;
    }
    return "" + YYYY + MM + DD;
  }
}

Flash.Serializers.add({
  serializes: function(value) {
    return (value instanceof DateRange);
  },
  serialize: function(builder, dateRange) {
    return builder.wrap("dr", function() {
      return builder.serialize(dateRange.begin) + builder.serialize(dateRange.end);
    });
  }
});

var DateInputView = function(dateInputInterfaceProxy, localeString, errorMessage) {
  this.proxy = dateInputInterfaceProxy;
  this.dateParser = DateInputView.createDateParser(localeString);
  this.errorMessage = errorMessage;

  this.loading = document.getElementById("f_dateInputLoading");
  this.flash = document.getElementById("f_dateInputFlash");
  this.form = document.getElementById("f_dateInputForm");
  this.primaryBeginField = document.getElementById("f_primaryBegin");
  this.primaryEndField = document.getElementById("f_primaryEnd");
  this.comparisonBeginField = document.getElementById("f_comparisonBegin");
  this.comparisonEndField = document.getElementById("f_comparisonEnd");
  this.primaryBeginFocus = document.getElementById("f_primaryBeginFocus");
  this.primaryEndFocus = document.getElementById("f_primaryEndFocus");
  this.comparisonBeginFocus = document.getElementById("f_comparisonBeginFocus");
  this.comparisonEndFocus = document.getElementById("f_comparisonEndFocus");
  this.comparisonEnabledCheckbox = document.getElementById("f_comparisonEnabledCheckbox");
  this.comparisonInputs = document.getElementById("f_comparisonInputs");
  this.applyButton = document.getElementById("f_apply");
  this.cancelButton = document.getElementById("f_cancel");
  this.dateRangeLengthNotice = document.getElementById("f_dateRangeLengthNotice");

  this.lastValidPrimary = null;
  this.lastValidPrimaryLength = null;
  this.lastValidComparison = null;
  this.lastValidComparisonLength = null;
  this.currentFocus = null;

  this.windowHasLoaded = false;
  goog.events.listen(window, "load", function() {
    self.windowHasLoaded = true;
    self.hideLoadingMessage();
    if (self.displayed) {
      self.initFunction();
    }
  });  

  this.displayed = false;

  this.initializedFlash = false;

  this.form.style.display = "none";

  var self = this;
  var proxy = this.proxy;
  
  this.doNothingFunction = function() { return false; };
  this.applyFunction     = function() { proxy.sendMessage("applyDates"); return false; };
  this.cancelFunction    = function() { proxy.sendMessage("cancelDateChanges"); return false; };

  this.primaryBeginField.onclick    = function() { proxy.sendMessage("focusPrimaryBegin"); }
  this.primaryEndField.onclick      = function() { proxy.sendMessage("focusPrimaryEnd"); }
  this.comparisonBeginField.onclick = function() { proxy.sendMessage("focusComparisonBegin"); }
  this.comparisonEndField.onclick   = function() { proxy.sendMessage("focusComparisonEnd"); }

  this.primaryBeginField.onchange = this.primaryEndField.onchange = function() { 
    var begin = self.readDateFrom(self.primaryBeginField);
    var end = self.readDateFrom(self.primaryEndField);
    if (begin && end) {
      proxy.sendMessage("setPrimaryDateRange", new DateRange(begin, end)); 
    } else {
      self.messageBadInput();
      self.setPrimaryDateRange(
        self.lastValidPrimary, 
        self.lastValidPrimaryLength
      );
    }
  }

  this.comparisonBeginField.onchange = this.comparisonEndField.onchange = function() { 
    var begin = self.readDateFrom(self.comparisonBeginField);
    var end = self.readDateFrom(self.comparisonEndField);
    if (begin && end) {
      proxy.sendMessage("setComparisonDateRange", new DateRange(begin, end)); 
    } else {
      self.messageBadInput();
      self.setComparisonDateRange(
        self.lastValidComparison, 
        self.lastValidComparisonLength
      );
    }
  }

  this.comparisonEnabledCheckbox.onclick = function() {
    if (this.checked) {
      proxy.sendMessage("enableComparisonDateRange");
    } else {
      proxy.sendMessage("disableComparisonDateRange");
    }
  }
  
}
DateInputView.prototype = {

  initFunction: function() {

    this.displayed = true;

    if (this.windowHasLoaded && !this.initializedFlash) {
      this.proxy.sendMessage("initialize");
      this.initializedFlash = true;
    }
  },

  initialize: function() {
    this.hideLoadingMessage();
    this.form.style.display = "block";
  },
  
  hideLoadingMessage: function() {
    this.loading.style.display = "none";    
  },

  onApply: function(primaryDateRange, comparisonDateRange) {
    if (primaryDateRange && comparisonDateRange) {
      VisualizationModule.changeDateRangeAndComparisonDateRange(
        primaryDateRange.toParam(), comparisonDateRange.toParam());
    } else if (primaryDateRange) {
      VisualizationModule.changeDateRange(primaryDateRange.toParam());
    }

    goog.analytics.Menu.toggle("f_date_range", "f_date_range_options",
    goog.analytics.MenuType.CALENDAR);
    goog.analytics.Menu.clear("f_date_range", "f_date_range_options",
    goog.analytics.MenuType.CALENDAR);
  },


  setPrimaryDateRange: function(dateRange, length) {
    this.primaryBeginField.value = this.formatDate(dateRange.getBegin());
    this.primaryEndField.value = this.formatDate(dateRange.getEnd());
    this.lastValidPrimary = dateRange;
    this.lastValidPrimaryLength = length;
    this.needsToApply();
    this.showAlertIfDateRangeLengthsDiffer();
  },
  setComparisonDateRange: function(dateRange, length) {
    this.comparisonBeginField.value = this.formatDate(dateRange.getBegin());
    this.comparisonEndField.value = this.formatDate(dateRange.getEnd());
    this.lastValidComparison = dateRange;
    this.lastValidComparisonLength = length;
    this.enableComparisonDateRange();
    this.showAlertIfDateRangeLengthsDiffer();
  },
  disableComparisonDateRange: function() {
    this.comparisonEnabledCheckbox.checked = false;
    this.comparisonBeginField.disabled = true;
    this.comparisonEndField.disabled = true;
    this.comparisonBeginField.value = "";
    this.comparisonEndField.value = "";
    this.comparisonInputs.style.display = "none";
    this.lastValidComparison = null;
    this.lastValidComparisonLength = null;
    this.showAlertIfDateRangeLengthsDiffer();
    this.needsToApply();
  },
  enableComparisonDateRange: function() {
    this.comparisonEnabledCheckbox.checked = true;
    this.comparisonBeginField.disabled = false;
    this.comparisonEndField.disabled = false;
    this.comparisonInputs.style.display = "block";
    this.needsToApply();
  },

  applyDates: function() {
    this.onApply(this.lastValidPrimary, this.lastValidComparison);
    this.doesNotNeedToApply();
  },
  cancelDateChanges: function() {
    this.doesNotNeedToApply();
  },

  focusPrimaryBegin: function() {
    this.focusOnly(this.primaryBeginFocus, "left");
  },
  focusPrimaryEnd: function() {
    this.focusOnly(this.primaryEndFocus, "right");
  },
  focusComparisonBegin: function() {
    this.focusOnly(this.comparisonBeginFocus, "left");
  },
  focusComparisonEnd: function() {
    this.focusOnly(this.comparisonEndFocus, "right");
  },

  handlePrimaryDateRangeValidationError: function(resetDateRange, length) {
    this.messageValidationError();
    this.setPrimaryDateRange(resetDateRange, length);
  },

  handleComparisonDateRangeValidationError: function(resetDateRange, length) {
    this.messageValidationError();
    this.setComparisonDateRange(resetDateRange, length);
  },
  
  messageValidationError: function() {
    alert(this.errorMessage);
    this.reFocus();
  },
  
  messageBadInput: function() {
    alert(this.errorMessage);
    this.reFocus();
  },
  
  needsToApply: function() {
    this.form.onsubmit = this.applyFunction;
    this.applyButton.disabled = false;
    this.cancelButton.onclick = this.cancelFunction;
    this.cancelButton.className = "enabled";
  },
  
  doesNotNeedToApply: function() {
    this.form.onsubmit = this.doNothingFunction;
    this.applyButton.disabled = true;
    this.cancelButton.onclick = this.doNothingFunction;
    this.cancelButton.className = "disabled";
  },
  
  focusOnly: function(focusedField, side, opt_select) {
    this.primaryBeginFocus.className    = "focus_indicator left disabled";
    this.primaryEndFocus.className      = "focus_indicator right disabled";
    this.comparisonBeginFocus.className = "focus_indicator left disabled";
    this.comparisonEndFocus.className   = "focus_indicator right disabled";
    focusedField.className = "focus_indicator " + side + " enabled";
    if (opt_select) {
      var input = focusedField.getElementsByTagName("input")[0];
      setTimeout(function() {
        try {
          input.focus();
          input.select();
        } catch(e) {}
      }, 50);
    }
    this.currentFocus = [focusedField, side];
  },
  
  reFocus: function() {
    if (this.currentFocus) {
      this.focusOnly(this.currentFocus[0], this.currentFocus[1], true);
    }
  },
  
  dateRangeLengthsDiffer: function() {
    if (this.lastValidPrimaryLength && this.lastValidComparisonLength) {
      return Math.abs(this.lastValidPrimaryLength - this.lastValidComparisonLength) != 0;
    } else {
      return false;
    }
  },
  
  showAlertIfDateRangeLengthsDiffer: function() {
    if (this.dateRangeLengthsDiffer()) {
      this.dateRangeLengthNotice.style.display = "block";
    } else {
      this.dateRangeLengthNotice.style.display = "none";
    }
  },
  
  readDateFrom: function(textField) {
    return this.parseDate(textField.value);
  },
  
  formatDate: function(date) {
    return this.dateParser.format(date);
  },
  
  parseDate: function(date) {
    return this.dateParser.parse(date);
  }
  
}

DateInputView.createDateParser = function(localeString) {
  return this.DateParsers[localeString] || this.DateParsers["en-US"];
}

DateInputView.Parser = function(separator, order, pad, fullYear) {
  this.joinSeparator = separator;
  this.splitSeparator = separator.match(/[^\s]/)
  this.order = order;
  this.pad = pad;
  this.fullYear = fullYear;
}
DateInputView.Parser.prototype = {

  format: function(date) {
    return this["format" + this.order](date);
  },
  
  parse: function(string) {
    return this["parse" + this.order](string);
  },
  
  parseMDY: function(string) {
    var parts = string.split(this.splitSeparator);
    return this.getValidDateOrNull(parts[2], parts[0], parts[1]);
  },
  
  parseDMY: function(string) {
    var parts = string.split(this.splitSeparator);
    return this.getValidDateOrNull(parts[2], parts[1], parts[0]);
  },
  
  parseYMD: function(string) {
    var parts = string.split(this.splitSeparator);
    return this.getValidDateOrNull(parts[0], parts[1], parts[2]);
  },
  
  formatMDY: function(date) {
    var p = this.getDateParts(date);
    return [p.month, p.day, p.year].join(this.joinSeparator);
  },
  
  formatYMD: function(date) {
    var p = this.getDateParts(date);
    return [p.year, p.month, p.day].join(this.joinSeparator);
  },
  
  formatDMY: function(date) {
    var p = this.getDateParts(date);
    return [p.day, p.month, p.year].join(this.joinSeparator);
  },
  
  getDateParts: function(date) {
    var month = date.getMonth() + 1;
    if (month < 10 && this.pad) month = "0" + month;
    var day = date.getDate();
    if (day < 10 && this.pad) day = "0" + day;
    var year = (this.fullYear) ? date.getFullYear() : date.getFullYear() % 100;
    if (year < 10) year = "0" + year;
    return { year: year, month: month, day: day };
  },

  getValidDateOrNull: function(year, month, day) {
    var nYear = Number(year);
    var nMonth = Number(month) - 1;
    var nDay = Number(day);
    if (!isNaN(nYear) && !isNaN(nMonth) && !isNaN(nDay)) {
      if (year.length == 2) {
        nYear += 2000;
      } else if (year.length != 4) {
        return null;
      }
      var date = new Date(nYear, nMonth, nDay);
      if (date.getFullYear() == nYear && 
          date.getMonth() == nMonth && 
          date.getDate() == nDay) {
        return date;
      }
    }
    return null;
  }
  
}
  
DateInputView.DateParsers = {
  
  "en-US": new DateInputView.Parser("/",  "MDY", true,  true),
  "en-GB": new DateInputView.Parser("/",  "DMY", true,  true),
  "fr-FR": new DateInputView.Parser("/",  "DMY", true,  false),
  "it-IT": new DateInputView.Parser("/",  "DMY", true,  false),
  "de-DE": new DateInputView.Parser(".",  "DMY", true,  true),
  "es-ES": new DateInputView.Parser("/",  "DMY", true,  true),
  "nl-NL": new DateInputView.Parser("-",  "DMY", true,  false),
  "pt-BR": new DateInputView.Parser("/",  "DMY", true,  true),
  "da-DK": new DateInputView.Parser("/",  "DMY", true,  true),
  "fi-FI": new DateInputView.Parser(".",  "DMY", false, true),
  "no-NO": new DateInputView.Parser(".",  "DMY", true,  false),
  "sv-SE": new DateInputView.Parser("-",  "YMD", true,  true),
  "ja-JP": new DateInputView.Parser("/",  "YMD", true,  true),
  "ko-KR": new DateInputView.Parser(". ", "YMD", true,  true),
  "zh-CN": new DateInputView.Parser("-",  "YMD", false, true),
  "zh-TW": new DateInputView.Parser("/",  "YMD", false, true),
  "ru-RU": new DateInputView.Parser(".",  "DMY", true,  true)
  
}

var Tb=navigator,Da=Error,Sb=Boolean,M=undefined,yc=encodeURIComponent,mb=parseInt,$a=parseFloat,Z=String,P=window,na=Number,xb=Function,xc=Object,L=document,yb=_urchinTracker,Me=decodeURIComponent,D=VisualizationModule,Ja=isNaN,t=Math;function bc(a,b){return a.filter=b}function qb(a,b){return a.toString=b}function Oa(a,b){return a.length=b}function pb(a,b){return a.position=b}function cc(a,b){return a.relatedTarget=b}function qa(a,b){return a.className=b}function ra(a,b){return a.width=b}function R(a,
b){return a.innerHTML=b}function cb(a,b){return a.currentTarget=b}function Hb(a,b){return a.left=b}function dc(a,b){return a.target=b}function Kc(a,b){return a.send=b}function db(a,b){return a.remove=b}function Jc(a,b){return a.keyCode=b}function Gb(a,b){return a.href=b}function Ib(a,b){return a.type=b}function ya(a,b){return a.contains=b}function Ma(a,b){return a.clear=b}function Na(a,b){return a.display=b}function Lc(a,b){return a.whiteSpace=b}function Fb(a,b){return a.height=b}var ac="scrollTop",
Hc="previousSibling",I="object",F="global",i="length",_P="prototype",Ic="sourceIndex",J="width",ob="slice",Ga="nodeType",sa="document",Eb="offsetWidth",xa="offsetParent",r="userAgent",ta="location",Vb="caller",Ub="button",nb="offsetLeft",Bb="message",k="style",Cb="nodeName",Fa="body",u="left",Ha="target",Dc="lastChild",Gc="pathname",La="start",Cc="keyCode",Ka="firstChild",$b="scrollLeft",zb="compatMode",da="bottom",Ab="currentStyle",Bc="href",ua="type",zc="contains",ab="childNodes",Yb="defaultView",
Ec="name",G="parentNode",Zb="nextSibling",bb="offsetTop",N="height",Db="offsetHeight",Fc="nodeValue",Wb="clientX",Xb="clientY",Ac="documentElement",ha="right",g=g||{};g.global=this;var nc=null;g.Lb=nc;g.provide=function(a){he(a)};var he=function(a,b){var c=a.split("."),d=g[F],e;while(e=c.shift()){if(!c[i]&&S(b)){d[e]=b}else if(d[e]){d=d[e]}else{d=(d[e]={})}}};g.qe=he;g.getObjectByName=function(a){var b=a.split("."),c=g[F];for(var d;d=b.shift();){if(c[d]){c=c[d]}else{return null}}return c};g.globalize=
function(a,b){var c=b||g[F];for(var d in a){c[d]=a[d]}};g.addDependency=function(a,b,c){};g.require=function(a){};g.basePath="";var Dg=function(){};g.nullFunction=Dg;var sb={UNDEFINED:"undefined",NUMBER:"number",STRING:"string",BOOLEAN:"boolean",FUNCTION:"function",OBJECT:"object"},ch=sb.BOOLEAN,Sa=sb.FUNCTION,Se=sb.NUMBER,dh=sb.OBJECT,eh=sb.STRING,fh=sb.UNDEFINED;g.Vd=sb;var S=function(a){return typeof a!=fh};g.isDef=S;var ie=function(a){return a===null};g.isNull=ie;g.isDefAndNotNull=function(a){return S(a)&&
!ie(a)};var Ba=function(a){return a instanceof Array||Ra(a)&&typeof a.join==Sa&&typeof a.reverse==Sa};g.isArray=Ba;var ca=function(a){return Ra(a)&&typeof a[i]==Se};g.isArrayLike=ca;g.isDateLike=function(a){return Ra(a)&&wb(a.getFullYear)};var V=function(a){return typeof a==eh};g.isString=V;g.isBoolean=function(a){return typeof a==ch};g.isNumber=function(a){return typeof a==Se};var wb=function(a){return typeof a==Sa||!(!(a&&a.call))};g.isFunction=wb;var Ra=function(a){return a!=null&&typeof a==dh};
g.isObject=Ra;var Qa=function(a){if(a.hasOwnProperty&&a.hasOwnProperty(gb)){return a[gb]}if(!a[gb]){a[gb]=++g.qd}return a[gb]};g.getHashCode=Qa;g.removeHashCode=function(a){if("removeAttribute"in a){a.removeAttribute(gb)}try{delete a[gb]}catch(b){}};var gb="closure_hashCode_";g.Sd=gb;g.qd=0;var wf=function(a){if(Ra(a)){if(a.clone){return a.clone()}var b=Ba(a)?[]:{};for(var c in a){b[c]=wf(a[c])}return b}return a};g.cloneObject=wf;var za=function(a,b){var c=a.bd;if(arguments[i]>2){var d=Array[_P][ob].call(arguments,
2);if(c){d.unshift.apply(d,c)}c=d}b=a.dd||b;a=a.cd||a;var e,f=b||g[F];if(c){e=function(){var h=Array[_P][ob].call(arguments);h.unshift.apply(h,c);return a.apply(f,h)}}else{e=function(){return a.apply(f,arguments)}}e.bd=c;e.dd=b;e.cd=a;return e};g.bind=za;g.partial=function(a){var b=Array[_P][ob].call(arguments,1);b.unshift(a,null);return za.apply(null,b)};var xg=function(a,b){for(var c in b){a[c]=b[c]}};g.mixin=xg;var kb=function(){return(new Date).getTime()};g.now=kb;g.globalEval=function(a){if(g[F].execScript){g[F].execScript(a,
"JavaScript")}else if(g[F].eval){if(nc==null){g[F].eval("var _et_ = 1;");if(typeof g[F]._et_!="undefined"){delete g[F]._et_;nc=(g.Lb=true)}else{nc=(g.Lb=false)}}if(nc){g[F].eval(a)}else{var b=g[F][sa],c=b.createElement("script");Ib(c,"text/javascript");c.defer=false;c.text=a;b[Fa].appendChild(c);b[Fa].removeChild(c)}}else{throw Da("goog.globalEval not available");}};g.getMsg=function(a,b){var c=b||{};for(var d in c){a=a.replace(new RegExp("\\{\\$"+d+"\\}","gi"),c[d])}return a};var qg=function(a,b){he(a,
b)};g.exportSymbol=qg;var pg=function(a,b,c){a[b]=c};g.exportProperty=pg;if(!xb[_P].apply){xb[_P].apply=function(a,b){var c=[],d,e;if(!a)a=g[F];if(!b)b=[];for(var f=0;f<b[i];f++){c[f]="args["+f+"]"}e="oScope.__applyTemp__.peek().("+c.join(",")+");";if(!a.__applyTemp__){a.__applyTemp__=[]}a.__applyTemp__.push(this);d=eval(e);a.__applyTemp__.pop();return d}}xb[_P].bind=function(a){if(arguments[i]>1){var b=Array[_P][ob].call(arguments,1);b.unshift(this,a);return za.apply(null,b)}else{return za(this,
a)}};xb[_P].partial=function(){var a=Array[_P][ob].call(arguments);a.unshift(this,null);return za.apply(null,a)};xb[_P].inherits=function(a){rg(this,a)};var rg=function(a,b){function c(){}c.prototype=b[_P];a.Sc=b[_P];a.prototype=new c;a[_P].constructor=a};g.inherits=rg;xb[_P].mixin=function(a){xg(this[_P],a)};if(!Array[_P].push){Array[_P].push=function(a){for(var b=0;b<arguments[i];b++){this[this[i]]=arguments[b]}return this[i]}}if(!Array[_P].pop){Array[_P].pop=function(){var a;if(this[i]){a=this[this[i]-
1];this.length--}return a}}Array[_P].peek=function(){return this[this[i]-1]};if(!Array[_P].shift){Array[_P].shift=function(){var a;if(this[i]){a=this[0];for(var b=0;b<this[i]-1;b++){this[b]=this[b+1]}this.length--}return a}}if(!Array[_P].unshift){Array[_P].unshift=function(a){var b=arguments[i];for(var c=this[i]-1;c>=0;c--){this[c+b]=this[c]}for(var d=0;d<b;d++){this[d]=arguments[d]}return this[i]}};var n={};g.array=n;n.peek=function(a){return a[a[i]-1]};n.indexOf=function(a,b,c){if(a.indexOf){return a.indexOf(b,c)}if(Array.indexOf){return Array.indexOf(a,b,c)}if(c==null){c=0}else if(c<0){c=t.max(0,a[i]+c)}for(var d=c;d<a[i];d++){if(a[d]===b)return d}return-1};n.lastIndexOf=function(a,b,c){if(c==null){c=a[i]-1}if(a.lastIndexOf){return a.lastIndexOf(b,c)}if(Array.lastIndexOf){return Array.lastIndexOf(a,b,c)}if(c<0){c=t.max(0,a[i]+c)}for(var d=c;d>=0;d--){if(a[d]===b)return d}return-1};n.forEach=
function(a,b,c){if(a.forEach){a.forEach(b,c)}else if(Array.forEach){Array.forEach(a,b,c)}else{var d=a[i],e=V(a)?a.split(""):a;for(var f=0;f<d;f++){b.call(c,e[f],f,a)}}};var tf=function(a,b,c){var d=a[i],e=V(a)?a.split(""):a;for(var f=d-1;f>=0;--f){b.call(c,e[f],f,a)}};n.forEachRight=tf;bc(n,function(a,b,c){if(a.filter){return a.filter(b,c)}if(Array.filter){return Array.filter(a,b,c)}var d=a[i],e=[],f=V(a)?a.split(""):a;for(var h=0;h<d;h++){if(b.call(c,f[h],h,a)){e.push(f[h])}}return e});n.map=function(a,
b,c){if(a.map){return a.map(b,c)}if(Array.map){return Array.map(a,b,c)}var d=a[i],e=[],f=V(a)?a.split(""):a;for(var h=0;h<d;h++){e.push(b.call(c,f[h],h,a))}return e};n.reduce=function(a,b,c,d){var e=c;if(a.reduce){if(d){return a.reduce(za(b,d),c)}else{return a.reduce(b,c)}}n.forEach(a,function(f){e=b.call(d,e,f)});return e};n.reduceRight=function(a,b,c,d){var e=c;if(a.reduceRight){if(d){return a.reduceRight(za(b,d),c)}else{return a.reduceRight(b,c)}}tf(a,function(f){e=b.call(d,e,f)});return e};n.some=
function(a,b,c){if(a.some){return a.some(b,c)}if(Array.some){return Array.some(a,b,c)}var d=a[i],e=V(a)?a.split(""):a;for(var f=0;f<d;f++){if(b.call(c,e[f],f,a)){return true}}return false};n.every=function(a,b,c){if(a.every){return a.every(b,c)}if(Array.every){return Array.every(a,b,c)}var d=a[i],e=V(a)?a.split(""):a;for(var f=0;f<d;f++){if(!b.call(c,e[f],f,a)){return false}}return true};ya(n,function(a,b){if(a[zc]){return a.contains(b)}return n.indexOf(a,b)>-1});var vf=function(a){return a[i]==0};
n.m=vf;Ma(n,function(a){if(!Ba(a)){for(var b=a[i]-1;b>=0;b--){delete a[b]}}Oa(a,0)});var uf=function(a,b){if(!n.contains(a,b)){a.push(b)}};n.insert=uf;var Hd=function(a,b,c){n.splice(a,c,0,b)};n.insertAt=Hd;n.insertBefore=function(a,b,c){var d;if(arguments[i]==2||(d=n.indexOf(a,c))==-1){a.push(b)}else{Hd(a,b,d)}};db(n,function(a,b){var c=n.indexOf(a,b),d;if(d=c!=-1){Uc(a,c)}return d});var Uc=function(a,b){return Array[_P].splice.call(a,b,1)[i]==1};n.removeAt=Uc;var Fd=function(a){if(Ba(a)){return a.concat()}else{var b=
[];for(var c=0,d=a[i];c<d;c++){b[c]=a[c]}return b}};n.clone=Fd;n.toArray=function(a){if(Ba(a)){return a.concat()}if(ca(a)){return Fd(a)}return[a]};n.extend=function(a,b){for(var c=1;c<arguments[i];c++){var d=arguments[c];if(!Ba(d)){a.push(d)}else{a.push.apply(a,d)}}};n.splice=function(a,b,c,d){return Array[_P].splice.apply(a,n.slice(arguments,1))};n.slice=function(a,b,c){if(arguments[i]<=2){return Array[_P][ob].call(a,b)}else{return Array[_P][ob].call(a,b,c)}};n.find=n.indexOf;n.insertValue=uf;n.deleteValue=
n.remove;n.removeDuplicates=function(a,b){var c=b||a,d={},e=0,f=0;while(f<a[i]){var h=a[f++],j=Ra(h)?Qa(h):h;if(!(j in d)){d[j]=true;c[e++]=h}}Oa(c,e)};var Ed=function(a,b,c){var d=0,e=a[i]-1,f=c||Gd;while(d<=e){var h=d+e>>1,j=f(b,a[h]);if(j>0){d=h+1}else if(j<0){e=h-1}else{return h}}return-(d+1)};n.binarySearch=Ed;n.sort=function(a,b){Array[_P].sort.call(a,b||Gd)};var Gd=function(a,b){return a>b?1:(a<b?-1:0)};n.defaultCompare=Gd;n.binaryInsert=function(a,b,c){var d=Ed(a,b,c);if(d<0){Hd(a,b,-(d+1));
return true}return false};n.binaryRemove=function(a,b,c){var d=Ed(a,b,c);return d>=0?Uc(a,d):false};g.object={};g[I].forEach=function(a,b,c){for(var d in a){b.call(c,a[d],d,a)}};bc(g[I],function(a,b,c){var d={};for(var e in a){if(b.call(c,a[e],e,a)){d[e]=a[e]}}return d});g[I].map=function(a,b,c){var d={};for(var e in a){d[e]=b.call(c,a[e],e,a)}return d};g[I].some=function(a,b,c){for(var d in a){if(b.call(c,a[d],d,a)){return true}}return false};g[I].every=function(a,b,c){for(var d in a){if(!b.call(c,a[d],d,a)){return false}}return true};var pe=function(a){var b=0;for(var c in a){b++}return b};g[I].p=
pe;ya(g[I],function(a,b){return oe(a,b)});var qe=function(a){var b=[];for(var c in a){b.push(a[c])}return b};g[I].l=qe;var Ob=function(a){var b=[];for(var c in a){b.push(c)}return b};g[I].v=Ob;var Eg=function(a,b){return b in a};g[I].S=Eg;var oe=function(a,b){for(var c in a){if(a[c]==b){return true}}return false};g[I].Ka=oe;var Fg=function(a){for(var b in a){return false}return true};g[I].m=Fg;Ma(g[I],function(a){var b=Ob(a);for(var c=b[i]-1;c>=0;c--){g[I].remove(a,b[c])}});db(g[I],function(a,b){var c;
if(c=b in a){delete a[b]}return c});g[I].add=function(a,b,c){if(b in a){throw Da('The object already contains the key "'+b+'"');}re(a,b,c)};g[I].get=function(a,b,c){if(b in a){return a[b]}return c};var re=function(a,b,c){a[b]=c};g[I].set=re;g[I].clone=function(a){var b={};for(var c in a){b[c]=a[c]}return b};g[I].transpose=function(a){var b={},c=Ob(a);for(var d=0,e=c[i];d<e;d++){var f=c[d];b[a[f]]=f}return b};var ne=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString",
"toString","valueOf"];g[I].Yd=ne;g[I].extend=function(a,b){var c,d;for(var e=1;e<arguments[i];e++){d=arguments[e];for(c in d){a[c]=d[c]}for(var f=0;f<ne[i];f++){c=ne[f];if(xc[_P].hasOwnProperty.call(d,c)){a[c]=d[c]}}}};var p={};g.string=p;p.startsWith=function(a,b){return a.indexOf(b)==0};p.endsWith=function(a,b){var c=a[i]-b[i];return c>=0&&a.lastIndexOf(b,c)==c};p.subs=function(a){for(var b=1;b<arguments[i];b++){a=a.replace(/\%s/,Z(arguments[b]))}return a};p.collapseWhitespace=function(a){return a.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"")};var Ng=function(a){return/^\s*$/.test(a)};p.m=Ng;p.isEmptySafe=function(a){return Ng(Pg(a))};p.isAlpha=function(a){return!/[^a-zA-Z]/.test(a)};p.isNumeric=function(a){return!/[^0-9]/.test(a)};
p.isAlphaNumeric=function(a){return!/[^a-zA-Z0-9]/.test(a)};p.isSpace=function(a){return a==" "};p.stripNewlines=function(a){return a.replace(/(\r\n|\r|\n)+/g," ")};var Jg=function(a){return a.replace(/(\r\n|\r|\n)/g,"\n")};p.canonicalizeNewlines=Jg;p.normalizeWhitespace=function(a){return a.replace(/\xa0|\s/g," ")};p.normalizeSpaces=function(a){return a.replace(/\xa0|[ \t]+/g," ")};var Tg=function(a){return a.replace(/^\s+|\s+$/g,"")};p.trim=Tg;var Ug=function(a){return a.replace(/^\s+/,"")};p.trimLeft=
Ug;p.trimRight=function(a){return a.replace(/\s+$/,"")};p.caseInsensitiveCompare=function(a,b){var c=Z(a).toLowerCase(),d=Z(b).toLowerCase();if(c<d){return-1}else if(c==d){return 0}else{return 1}};var ye=/(\.\d+)|(\d+)|(\D+)/g;p.ff=ye;p.numerateCompare=function(a,b){if(a==b){return 0}if(!a){return-1}if(!b){return 1}var c=a.toLowerCase().match(ye),d=b.toLowerCase().match(ye),e=t.min(c[i],d[i]);for(var f=0;f<e;f++){var h=c[f],j=d[f];if(h!=j){var l=mb(h,10);if(!Ja(l)){var m=mb(j,10);if(!Ja(m)&&l-m){return l-
m}}return h<j?-1:1}}if(c[i]!=d[i]){return c[i]-d[i]}return a<b?-1:1};var Kg=/^[a-zA-Z0-9\-_.!~*'()]*$/;p.oe=Kg;p.urlEncode=function(a){a=Z(a);if(!Kg.test(a)){return yc(a)}return a};p.urlDecode=function(a){return Me(a.replace(/\+/g," "))};var jd=function(a,b){return a.replace(/(\r\n|\r|\n)/g,b?"<br />":"<br>")};p.newLineToBr=jd;var Za=function(a,b){if(b){return a.replace(se,te).replace(we,xe).replace(ue,ve).replace(ze,Ae)}else{if(!Hg.test(a))return a;if(a.indexOf(Ig)!=-1){a=a.replace(se,te)}if(a.indexOf(Og)!=
-1){a=a.replace(we,xe)}if(a.indexOf(Mg)!=-1){a=a.replace(ue,ve)}if(a.indexOf(Qg)!=-1){a=a.replace(ze,Ae)}return a}};p.htmlEscape=Za;var Ig="&";p.de=Ig;var Og="<";p.cf=Og;var Mg=">";p.Ne=Mg;var Qg='"';p.nf=Qg;var te="&amp;";p.ee=te;var xe="&lt;";p.df=xe;var ve="&gt;";p.Oe=ve;var Ae="&quot;";p.of=Ae;var se=/&/g;p.ce=se;var we=/</g;p.bf=we;var ue=/>/g;p.Me=ue;var ze=/\"/g;p.mf=ze;var Hg=/[&<>\"]/;p.be=Hg;var Be=function(a){if(p.contains(a,"&")){if("document"in g[F]&&!p.contains(a,"<")){var b=g[F].document.createElement("a");
b.innerHTML=a;if(b.normalize){b.normalize()}a=b.firstChild.nodeValue;b.innerHTML=""}else{return a.replace(/&([^;]+);/g,function(c,d){switch(d){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:if(d.charAt(0)=="#"){var e=na("0"+d.substr(1));if(!Ja(e)){return Z.fromCharCode(e)}}return c}})}}return a};p.unescapeEntities=Be;p.Xd="normalize";var kd=function(a,b){return jd(a.replace(/  /g," &#160;"),b)};p.whitespaceEscape=kd;p.stripQuotes=function(a,b){if(a.charAt(0)==
b&&a.charAt(a[i]-1)==b){return a.substring(1,a[i]-1)}return a};p.truncate=function(a,b,c){if(c){a=Be(a)}if(a[i]>b){a=a.substring(0,b-3)+"..."}if(c){a=Za(a)}return a};p.truncateMiddle=function(a,b,c){if(c){a=Be(a)}if(a[i]>b){var d=t.floor(b/2),e=a[i]-d;d+=b%2;a=a.substring(0,d)+"..."+a.substring(e)}if(c){a=Za(a)}return a};var id={"\u0008":"\\b","\u000c":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\u000b":"\\x0B",'"':'\\"',"'":"\\'","\\":"\\\\"};p.Ue=id;p.quote=function(a){a=Z(a);if(a.quote){return a.quote()}else{var b=
'"';for(var c=0;c<a[i];c++){b+=Lg(a.charAt(c))}return b+'"'}};var Lg=function(a){if(a in id){return id[a]}var b=a,c=a.charCodeAt(0);if(c>31&&c<127){b=a}else{if(c<256){b="\\x";if(c<16||c>256){b+="0"}}else{b="\\u";if(c<4096){b+="0"}}b+=c.toString(16).toUpperCase()}return id[a]=b};p.escapeChar=Lg;var Sg=function(a){var b={};for(var c=0;c<a[i];c++){b[a.charAt(c)]=true}return b};p.toMap=Sg;var Gg=Sg("()[]{}+-?*.$^|,:#<!\\");p.Ud=Gg;ya(p,function(a,b){return a.indexOf(b)!=-1});p.regExpEscape=function(a){a=
Z(a);var b="",c;for(var d=0;d<a[i];d++){c=a.charAt(d);if(c=="\u0008"){c="\\x08"}else if(c in Gg){c="\\"+c}b+=c}return b};var Rg=function(a,b){return(new Array(b+1)).join(a)};p.repeat=Rg;p.padNumber=function(a,b,c){var d=t.floor(a),e=Z(d);return Rg("0",t.max(0,b-e[i]))+(S(c)?a.toFixed(c):a)};var Pg=function(a){return a==null?"":Z(a)};p.makeSafe=Pg;p.buildString=function(){return Array[_P].join.call(arguments,"")};p.getRandomString=function(){return t.floor(t.random()*2147483648).toString(36)+(t.floor(t.random()*
2147483648)^(new Date).getTime()).toString(36)};var O={};g.math=O;O.randomInt=function(a){return t.floor(t.random()*a)};O.uniformRandom=function(a,b){return a+t.random()*(b-a)};O.clamp=function(a,b,c){return t.min(t.max(a,b),c)};var vg=function(a,b){var c=a%b;return c*b<0?c+b:c};O.modulo=vg;O.lerp=function(a,b,c){return a+c*(b-a)};var Ca=function(a,b){ra(this,S(a)?na(a):M);Fb(this,S(b)?na(b):M)};O.Size=Ca;Ca[_P].clone=function(){return new Ca(this[J],this[N])};qb(Ca[_P],function(){return"("+this[J]+" x "+this[N]+")"});Ca.equals=function(a,b){if(a==
b){return true}if(!a||!b){return false}return a[J]==b[J]&&a[N]==b[N]};var ga=function(a,b){this.x=S(a)?na(a):M;this.y=S(b)?na(b):M};O.Coordinate=ga;ga[_P].clone=function(){return new ga(this.x,this.y)};qb(ga[_P],function(){return"("+this.x+", "+this.y+")"});ga.equals=function(a,b){if(a==b){return true}if(!a||!b){return false}return a.x==b.x&&a.y==b.y};var tg=function(a,b){var c=a.x-b.x,d=a.y-b.y;return t.sqrt(c*c+d*d)};ga.distance=tg;ga.squaredDistance=function(a,b){var c=a.x-b.x,d=a.y-b.y;return c*
c+d*d};ga.difference=function(a,b){return new ga(a.x-b.x,a.y-b.y)};O.Range=function(a,b){a=na(a);b=na(b);this.start=a<b?a:b;this.end=a<b?b:a};O.Range[_P].clone=function(){return new O.Range(this[La],this.end)};qb(O.Range[_P],function(){return"["+this[La]+", "+this.end+"]"});O.Range.equals=function(a,b){if(a==b){return true}if(!a||!b){return false}return a[La]==b[La]&&a.end==b.end};O.Range.intersection=function(a,b){var c=t.max(a[La],b[La]),d=t.min(a.end,b.end);return c<=d?new O.Range(c,d):null};O.Range.boundingRange=
function(a,b){return new O.Range(t.min(a[La],b[La]),t.max(a.end,b.end))};ya(O.Range,function(a,b){return a[La]<=b[La]&&a.end>=b.end});var ka=function(a,b,c,d){Hb(this,S(a)?na(a):M);this.top=S(b)?na(b):M;ra(this,S(c)?na(c):M);Fb(this,S(d)?na(d):M)};O.Rect=ka;ka[_P].clone=function(){return new ka(this[u],this.top,this[J],this[N])};ka[_P].Od=function(){return new fa(this.top,this[u]+this[J]||M,this.top+this[N]||M,this[u])};qb(ka[_P],function(){return"("+this[u]+", "+this.top+" - "+this[J]+"w x "+this[N]+
"h)"});ka.equals=function(a,b){if(a==b){return true}if(!a||!b){return false}return a[u]==b[u]&&a[J]==b[J]&&a.top==b.top&&a[N]==b[N]};var ug=function(a,b){var c=t.max(a[u],b[u]),d=t.min(a[u]+a[J],b[u]+b[J]);if(c<=d){var e=t.max(a.top,b.top),f=t.min(a.top+a[N],b.top+b[N]);if(e<=f){return new ka(c,e,d-c,f-e)}}return null};ka.intersection=ug;ka.difference=function(a,b){if(!ug(a,b)){return[a.clone()]}var c=[],d=a.top,e=a[N],f=a[u]+a[J],h=a.top+a[N],j=b[u]+b[J],l=b.top+b[N];if(b.top>a.top){c.push(new ka(a[u],
a.top,a[J],b.top-a.top));d=b.top}if(l<h){c.push(new ka(a[u],l,a[J],h-l));e=l-d}if(b[u]>a[u]){c.push(new ka(a[u],d,b[u]-a[u],e))}if(j<f){c.push(new ka(j,d,f-j,e))}return c};ka.boundingRect=function(a,b){if(!a||!b){return null}var c=t.min(a[u],b[u]),d=t.min(a.top,b.top),e=t.max(a[u]+a[J],b[u]+b[J]),f=t.max(a.top+a[N],b.top+b[N]);return new ka(c,d,e-c,f-d)};var fa=function(a,b,c,d){this.top=S(a)?na(a):M;this.right=S(b)?na(b):M;this.bottom=S(c)?na(c):M;Hb(this,S(d)?na(d):M)};O.Box=fa;fa.boundingBox=function(){var a=
new fa(arguments[0].y,arguments[0].x,arguments[0].y,arguments[0].x);for(var b=1;b<arguments[i];b++){var c=arguments[b];a.top=t.min(a.top,c.y);a.right=t.max(a[ha],c.x);a.bottom=t.max(a[da],c.y);Hb(a,t.min(a[u],c.x))}return a};fa[_P].clone=function(){return new fa(this.top,this[ha],this[da],this[u])};fa[_P].Pd=function(){return new ka(this[u],this.top,this[ha]-this[u]||M,this[da]-this.top||M)};qb(fa[_P],function(){return"("+this.top+"t, "+this[ha]+"r, "+this[da]+"b, "+this[u]+"l)"});ya(fa[_P],function(a){return fa.contains(this,
a)});fa[_P].expand=function(a,b,c,d){if(Ra(a)){this.top-=a.top;this.right+=a[ha];this.bottom+=a[da];this.left-=a[u]}else{this.top-=a;this.right+=b;this.bottom+=c;this.left-=d}return this};fa.equals=function(a,b){if(a==b){return true}if(!a||!b){return false}return a.top==b.top&&a[ha]==b[ha]&&a[da]==b[da]&&a[u]==b[u]};ya(fa,function(a,b){if(!a||!b){return false}return b.x>=a[u]&&b.x<=a[ha]&&b.y>=a.top&&b.y<=a[da]});fa.distance=function(a,b){if(b.x>=a[u]&&b.x<=a[ha]){if(b.y>=a.top&&b.y<=a[da]){return 0}return b.y<
a.top?a.top-b.y:b.y-a[da]}if(b.y>=a.top&&b.y<=a[da]){return b.x<a[u]?a[u]-b.x:b.x-a[ha]}return tg(b,new ga(b.x<a[u]?a[u]:a[ha],b.y<a.top?a.top:a[da]))};var fd=function(a){return vg(a,360)};O.standardAngle=fd;var je=function(a){return a*t.PI/180};O.toRadians=je;var wg=function(a){return a*180/t.PI};O.toDegrees=wg;O.angleDx=function(a,b){return b*t.cos(je(a))};O.angleDy=function(a,b){return b*t.sin(je(a))};O.angle=function(a,b,c,d){return fd(wg(t.atan2(d-b,c-a)))};O.angleDifference=function(a,b){var c=
fd(b)-fd(a);if(c>180){c=c-360}else if(c<=-180){c=360+c}return c};g.userAgent={};(function(){var a=Tb[r],b=typeof opera!="undefined",c=!b&&a.indexOf("MSIE")!=-1,d=!b&&a.indexOf("WebKit")!=-1,e=!b&&Tb.product=="Gecko"&&!d,f=e&&Tb.vendor=="Camino",h=!b&&a.indexOf("Konqueror")!=-1,j=h||d,l,m;if(b){l=opera.version()}else{if(e){m=/rv\:([^\);]+)(\)|;)/}else if(c){m=/MSIE\s+([^\);]+)(\)|;)/}else if(d){m=/WebKit\/(\S+)/}else if(h){m=/Konqueror\/([^\);]+)(\)|;)/}if(m){m.test(a);l=RegExp.$1}}var q=Tb.platform,E=q.indexOf("Mac")!=-1,A=q.indexOf("Win")!=-1,Ea=q.indexOf("Linux")!=
-1;g[r].OPERA=b;g[r].IE=c;g[r].GECKO=e;g[r].CAMINO=f;g[r].KONQUEROR=h;g[r].SAFARI=d;g[r].KHTML=j;g[r].VERSION=l;g[r].PLATFORM=Tb.platform;g[r].MAC=E;g[r].WINDOWS=A;g[r].LINUX=Ea})();var qd=function(a,b){if(!Ja(a)&&!Ja(b)){return a-b}var c=a.split("."),d=b.split("."),e=t.min(c[i],d[i]);for(var f=0;f<e;f++){if(typeof d[f]=="undefined"){return 1}if(typeof c[f]=="undefined"){return-1}if(!Ja(c[f])&&Ja(d[f])&&c[f]==mb(d[f],10)){return 1}if(Ja(c[f])&&!Ja(d[f])&&mb(c[f],10)==d[f]){return-1}if(d[f]>c[f]){return-1}else if(d[f]<
c[f]){return 1}}return 0};g[r].compare=qd;var $g=function(a){return qd(g[r].VERSION,a)>=0};g[r].isVersion=$g;var s={};g.dom=s;var Vc={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12},Lf=Vc.DOCUMENT,jc=Vc.ELEMENT,Xd=Vc.TEXT;s.NodeType=Vc;var Va=function(){if(!s.Fb){s.Fb=new y}return s.Fb};s.xe=Va;var ae=function(a){return a?new y(wa(a)):Va()};s.Pb=ae;var Qf=function(){return Va().za()};s.za=Qf;var ba=function(a){return Va().Wa(a)};s.Wa=ba;s.xb=ba;var Rf=function(a,b,c){return Va().Xa(a,
b,c)};s.Xa=Rf;s.ta=Rf;var ce=function(a,b){g[I].forEach(b,function(c,d){if(d=="style"){a[k].cssText=c}else if(d=="class"){qa(a,c)}else if(d=="for"){a.htmlFor=c}else if(d in Wd){a.setAttribute(Wd[d],c)}else{a[d]=c}})};s.Mc=ce;var Wd={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",rowspan:"rowSpan",valign:"vAlign",height:"height",width:"width",frameborder:"frameBorder"};s.Rd=Wd;var Zf=function(a){var b=a||g[F]||P,c=b[sa],d=(g[r].SAFARI||c[zb]=="CSS1Compat")&&!g[r].OPERA?c[Ac]:
c[Fa];return new Ca(d.clientWidth,d.clientHeight)};s.hc=Zf;s.getPageScroll=function(a){var b=a||g[F]||P,c=b[sa],d,e;if(c[zb]=="CSS1Compat"){d=c[Ac][$b];e=c[Ac][ac]}else{d=c[Fa][$b];e=c[Fa][ac]}return new ga(d,e)};s.getWindow=function(a){return a.parentWindow||a[Yb]};var $d=function(a,b){var c=Va();return c.fa.apply(c,arguments)};s.fa=$d;s.yb=$d;s.createElement=function(a){return Va().createElement(a)};s.createTextNode=function(a){return Va().createTextNode(a)};s.eb=function(a){return Va().eb(a)};
s.appendChild=function(a,b){a.appendChild(b)};var bg=function(a){var b;while(b=a[Ka]){a.removeChild(b)}};s.uc=bg;var ag=function(a,b){if(b[G]){b[G].insertBefore(a,b)}};s.kc=ag;var $f=function(a,b){if(b[G]){b[G].insertBefore(a,b[Zb])}};s.jc=$f;s.removeNode=function(a){if(a[G]){a[G].removeChild(a)}};var Sf=function(a){return mc(a[Ka],true)};s.Ub=Sf;var Uf=function(a){return mc(a[Dc],false)};s.Wb=Uf;var Vf=function(a){return mc(a[Zb],true)};s.Xb=Vf;var Yf=function(a){return mc(a[Hc],false)};s.dc=Yf;
var mc=function(a,b){while(a&&a[Ga]!=jc){a=b?a[Zb]:a[Hc]}return a};s.Ee=mc;var be=function(a){return Ra(a)&&a[Ga]>0};s.lc=be;var Hf=g[r].SAFARI&&qd(g[r].VERSION,"521")<=0;s.Qd=Hf;ya(s,function(a,b){if(typeof a[zc]!="undefined"&&!Hf&&b[Ga]==jc){return a==b||a.contains(b)}if(typeof a.compareDocumentPosition!="undefined"){return a==b||Sb(a.compareDocumentPosition(b)&16)}while(b&&a!=b){b=b[G]}return b==a});s.compareNodeOrder=function(a,b){if(a==b){return 0}if(a.compareDocumentPosition){return a.compareDocumentPosition(b)&
2?1:-1}if("sourceIndex"in a||a[G]&&"sourceIndex"in a[G]){var c=a[Ga]==jc,d=b[Ga]==jc,e=c?a[Ic]:a[G][Ic],f=d?b[Ic]:b[G][Ic];if(e!=f){return e-f}else{if(c){return-1}if(d){return 1}var h=b;while(h=h[Hc]){if(h==a){return-1}}return 1}}var j=wa(a),l,m;l=j.createRange();l.selectNode(a);l.collapse(true);m=j.createRange();m.selectNode(b);m.collapse(true);return l.compareBoundaryPoints(Range.START_TO_END,m)};var wa=function(a){return a[Ga]==Lf?a:a.ownerDocument||a[sa]};s.$b=wa;var Tf=function(a){return g[r].SAFARI?
a[sa]||a.contentWindow[sa]:a.contentDocument||a.contentWindow[sa]};s.Vb=Tf;var cg=function(a,b){if("textContent"in a){a.textContent=b}else if(a[Ka]&&a[Ka][Ga]==Xd){while(a[Dc]!=a[Ka]){a.removeChild(a[Dc])}a[Ka].data=b}else{while(a.hasChildNodes()){a.removeChild(a[Dc])}var c=wa(a);a.appendChild(c.createTextNode(b))}};s.Nc=cg;var Of=function(a,b){var c=[];Wc(a,b,c,true);return c[i]?c[0]:M};s.Mb=Of;var Pf=function(a,b){var c=[];Wc(a,b,c,false);return c};s.Nb=Pf;var Wc=function(a,b,c,d){if(a!=null){for(var e=
0,f;f=a[ab][e];e++){if(b(f)){c.push(f);if(d){return}}Wc(f,b,c,d)}}};s.re=Wc;var Yd={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1};s.TAGS_TO_IGNORE=Yd;var kc={IMG:" ",BR:"\n"};s.PREDEFINED_TAG_VALUES=kc;var Xc=function(a){if(g[r].IE&&"innerText"in a){return Jg(a.innerText)}var b=[];Yc(a,b,true);var c=b.join("").replace(/ +/g," ");if(c!=" "){c=c.replace(/^\s*/,"")}return c};s.fc=Xc;s.getRawTextContent=function(a){var b=[];Yc(a,b,false);return b.join("")};var Yc=function(a,b,c){if(a[Cb]in Yd){}else if(a[Ga]==
Xd){if(c){b.push(Z(a[Fc]).replace(/(\r\n|\r|\n)/g,""))}else{b.push(a[Fc])}}else if(a[Cb]in kc){b.push(kc[a[Cb]])}else{var d=a[Ka];while(d){Yc(d,b,c);d=d[Zb]}}};s.Ke=Yc;var Wf=function(a){return Xc(a)[i]};s.Yb=Wf;var Xf=function(a,b){var c=b||wa(a)[Fa],d=[];while(a&&a!=c){var e=a;while(e=e[Hc]){d.unshift(Xc(e))}a=a[G]}return Ug(d.join("")).replace(/ +/g," ")[i]};s.Zb=Xf;s.getNodeAtOffset=function(a,b,c){var d=[a],e=0,f;while(d[i]>0&&e<b){f=d.pop();if(f[Cb]in Yd){}else if(f[Ga]==Xd){var h=f[Fc].replace(/(\r\n|\r|\n)/g,
"").replace(/ +/g," ");e+=h[i]}else if(f[Cb]in kc){e+=kc(f[Cb])[i]}else{for(var j=f[ab][i]-1;j>=0;j--){d.push(f[ab][j])}}}if(Ra(c)){c.remainder=f?f[Fc][i]+b-e-1:0;c.node=f}return f};var y=function(a){this.B=a||g[F][sa]||L};s.DomHelper=y;y[_P].Pb=ae;y[_P].Kd=function(a){this.B=a};y[_P].za=function(){return this.B};var Jf=function(a){if(V(a)){return this.B.getElementById(a)}else{return a}};y[_P].Wa=Jf;y[_P].xb=Jf;var Kf=function(a,b,c){var d=a||"*",e=c||this.B,f=e.getElementsByTagName(d);if(b){return n.filter(f,
function(h){return n.contains(h.className.split(" "),b)})}else{return f}};y[_P].Xa=Kf;y[_P].ta=Kf;y[_P].Mc=ce;y[_P].hc=Zf;var If=function(a,b){if(g[r].IE&&b&&b[Ec]){a="<"+a+' name="'+Za(b[Ec])+'">'}var c=this.createElement(a);if(b){ce(c,b)}if(arguments[i]>2){function d(h){if(h){this.appendChild(c,V(h)?this.createTextNode(h):h)}};for(var e=2;e<arguments[i];e++){var f=arguments[e];if((ca(f)||g[r].SAFARI&&typeof f=="function"&&typeof f[i]=="number")&&!be(f)){n.forEach(Ba(f)?f:Fd(f),d,this)}else{d.call(this,
f)}}}return c};y[_P].fa=If;y[_P].yb=If;y[_P].createElement=function(a){return this.B.createElement(a)};y[_P].createTextNode=function(a){return this.B.createTextNode(a)};y[_P].eb=function(a){var b=this.B.createElement("div");R(b,a);if(b[ab][i]==1){return b[Ka]}else{var c=this.B.createDocumentFragment();while(b[Ka]){c.appendChild(b[Ka])}return c}};y[_P].appendChild=s.appendChild;y[_P].uc=bg;y[_P].kc=ag;y[_P].jc=$f;y[_P].removeNode=s.removeNode;y[_P].Ub=Sf;y[_P].Wb=Uf;y[_P].Xb=Vf;y[_P].dc=Yf;y[_P].lc=
be;ya(y[_P],s[zc]);y[_P].$b=wa;y[_P].Vb=Tf;y[_P].Nc=cg;y[_P].Mb=Of;y[_P].Nb=Pf;y[_P].fc=Xc;y[_P].Yb=Wf;y[_P].Zb=Xf;var U={};s.classes=U;var Nf=function(a,b){qa(a,b)};U.set=Nf;var lc=function(a){return a.className.split(" ")};U.get=lc;U.add=function(a,b){var c=lc(a),d=n.slice(arguments,1),e=1;for(var f=0;f<d[i];f++){if(!n.contains(c,d[f])){c.push(d[f]);e&=1}else{e&=0}}qa(a,c.join(" "));return Sb(e)};db(U,function(a,b){var c=lc(a),d=n.slice(arguments,1),e=0;for(var f=0;f<c[i];f++){if(n.contains(d,c[f])){n.splice(c,f--,1);e++}}qa(a,c.join(" "));return e==d[i]});U.swap=function(a,b,c){var d=lc(a),e=false;for(var f=
0;f<d[i];f++){if(d[f]==b){n.splice(d,f--,1);e=true}}if(e){d.push(c);qa(a,d.join(" "))}return e};var Zd=function(a,b){return n.contains(lc(a),b)};U.has=Zd;var Mf=function(a,b,c){if(c){U.add(a,b)}else{U.remove(a,b)}};U.enable=Mf;U.toggle=function(a,b){var c=!Zd(a,b);Mf(a,b,c);return c};var fb=function(){};g.Disposable=fb;fb[_P].xa=false;fb[_P].V=function(){return this.xa};var Re=function(){if(!this.xa){this.xa=true}};fb[_P].dispose=Re;g.dispose=function(a){if(typeof a.dispose=="function"){a.dispose()}};var o={};g.events=o;o.Event=function(a,b){Ib(this,a);dc(this,b);cb(this,this[Ha])};o.Event.inherits(fb);o.Event[_P].z=false;o.Event[_P].M=true;o.Event[_P].stopPropagation=function(){this.z=true};o.Event[_P].preventDefault=function(){this.M=false};var H=function(a,b){if(a){this.init(a,b)}};o.BrowserEvent=H;H.inherits(o.Event);H.MouseButton={LEFT:0,MIDDLE:1,RIGHT:2};var dg=[1,4,2];H.Td=dg;Ib(H[_P],null);dc(H[_P],null);cb(H[_P],null);cc(H[_P],null);H[_P].offsetX=0;H[_P].offsetY=0;H[_P].clientX=0;H[_P].clientY=0;H[_P].screenX=0;H[_P].screenY=0;H[_P].button=0;Jc(H[_P],0);H[_P].charCode=0;H[_P].ctrlKey=false;H[_P].altKey=false;H[_P].shiftKey=false;H[_P].metaKey=false;H[_P].j=null;H[_P].init=function(a,b){Ib(this,a[ua]);dc(this,a[Ha]||a.srcElement);
cb(this,b);if(S(a.relatedTarget)){cc(this,a.relatedTarget)}else if(this[ua]==jh){cc(this,a.fromElement)}else if(this[ua]==ih){cc(this,a.toElement)}else{cc(this,null)}this.offsetX=S(a.layerX)?a.layerX:a.offsetX;this.offsetY=S(a.layerY)?a.layerY:a.offsetY;this.clientX=S(a[Wb])?a[Wb]:a.pageX;this.clientY=S(a[Xb])?a[Xb]:a.pageY;this.screenX=a.screenX||0;this.screenY=a.screenY||0;this.button=a[Ub];Jc(this,a[Cc]||0);this.charCode=a.charCode||(this[ua]==hh?a[Cc]:0);this.ctrlKey=a.ctrlKey;this.altKey=a.altKey;
this.shiftKey=a.shiftKey;this.metaKey=a.metaKey;this.j=a;this.M=null;this.z=null};H[_P].ud=function(a){if(g[r].IE){return!(!(this.j[Ub]&dg[a]))}else{return this.j[Ub]==a}return false};H[_P].stopPropagation=function(){this.z=true;if(this.j.stopPropagation){this.j.stopPropagation()}else{this.j.cancelBubble=true}};H[_P].preventDefault=function(){this.M=false;if(!this.j.preventDefault){this.j.returnValue=false;try{Jc(this.j,-1)}catch(a){}}else{this.j.preventDefault()}};H[_P].fd=function(){return this.j};
H[_P].dispose=function(){if(!this.V()){o.Event[_P].dispose.call(this);this.j=null}};var pa=function(){};o.Listener=pa;pa.ed=0;pa[_P].Aa=null;pa[_P].listener=null;pa[_P].proxy=null;pa[_P].src=null;Ib(pa[_P],null);pa[_P].capture=null;pa[_P].handler=null;pa[_P].key=0;pa[_P].removed=false;pa[_P].da=false;pa[_P].init=function(a,b,c,d,e,f){if(wb(a)){this.Aa=true}else if(a&&a.I&&wb(a.I)){this.Aa=false}else{throw Da("Invalid listener argument");}this.listener=a;this.proxy=b;this.src=c;Ib(this,d);this.capture=!(!e);this.handler=f;this.da=false;this.key=++g.events.Listener.ed;this.removed=
false};pa[_P].I=function(a){if(this.Aa){return this.listener.call(this.handler||this.src,a)}return this.listener.I.call(this.listener,a)};var Y={};g.structs=Y;var la=function(a,b){fb.call(this);this.vd=b;this.U=[];for(var c=0;c<a;c++){this.D(this.La())}};Y.SimplePool=la;la.inherits(fb);la[_P].va=null;la[_P].wa=null;la[_P].aa=function(a){this.va=a};la[_P].qb=function(a){this.wa=a};la[_P].w=function(){if(this.U[i]){return this.U.pop()}return this.La()};la[_P].D=function(a){if(this.U[i]<this.vd){this.U.push(a)}else{this.Oa(a)}};la[_P].La=function(){if(this.va){return this.va()}else{return{}}};la[_P].Oa=function(a){if(this.wa){this.wa(a)}else{if(wb(a.dispose)){a.dispose()}else{for(var b in a){delete a[b]}}}};
la[_P].dispose=function(){if(!this.V()){la.Sc.dispose.call(this);var a=this.U;while(a[i]){this.Oa(a.pop())}this.U=null}};var Wa={};o.$e=Wa;var ja={};o.Ze=ja;var Pa={};o.qf=Pa;o.OBJECT_POOL_INITIAL_COUNT=0;o.OBJECT_POOL_MAX_COUNT=600;var vb=new la(0,600);o.gf=vb;vb.aa(function(){return{h:0}});vb.qb(function(a){a.h=0});o.ARRAY_POOL_INITIAL_COUNT=0;o.ARRAY_POOL_MAX_COUNT=600;var ib=new la(0,600);o.fe=ib;ib.aa(function(){return[]});ib.qb(function(a){Oa(a,0);delete a.qa;delete a.nb});o.HANDLE_EVENT_PROXY_POOL_INITIAL_COUNT=0;o.HANDLE_EVENT_PROXY_POOL_MAX_COUNT=600;var ge=new la(0,600);o.Qe=ge;ge.aa(function(){var a=function(b){return jg.call(a.src,
a.key,b)};return a});o.LISTENER_POOL_INITIAL_COUNT=0;o.LISTENER_POOL_MAX_COUNT=600;var ig=function(){return new pa};o.ke=ig;var ad=new la(0,600);o.Ye=ad;ad.aa(ig);o.EVENT_POOL_INITIAL_COUNT=0;o.EVENT_POOL_MAX_COUNT=600;var gg=function(){return new H};o.ie=gg;var hg=function(){var a=null;if(g[r].IE){a=new la(0,600);a.aa(gg)}return a};o.je=hg;var ee=hg();o.pe=ee;var ng="on";o.jf=ng;var bd={};o.hf=bd;o.Xe="_";var ub=function(a,b,c,d,e){if(Ba(b)){for(var f=0;f<b[i];f++){ub(a,b[f],c,d,e)}return null}var h=
!(!d),j=ja;if(!(b in j)){j[b]=vb.w()}j=j[b];if(!(h in j)){j[h]=vb.w();j.h++}j=j[h];var l=Qa(a),m,q;if(!j[l]){m=(j[l]=ib.w());j.h++}else{m=j[l];for(var f=0;f<m[i];f++){q=m[f];if(q.listener==c&&q.handler==e){if(q.removed){break}return m[f].key}}}var E=ge.w();E.src=a;q=ad.w();q.init(c,E,a,b,h,e);var A=q.key;E.key=A;m.push(q);Wa[A]=q;if(!Pa[l]){Pa[l]=ib.w()}Pa[l].push(q);if(a.addEventListener){if(a==g[F]||!a.Ma){a.addEventListener(b,E,h)}}else{a.attachEvent(fe(b),E)}return A};o.listen=ub;var lg=function(a,
b,c,d,e){if(Ba(b)){for(var f=0;f<b[i];f++){lg(a,b[f],c,d,e)}return null}var h=ub(a,b,c,d,e),j=Wa[h];j.da=true;return h};o.listenOnce=lg;var cd=function(a,b,c,d,e){if(Ba(b)){for(var f=0;f<b[i];f++){cd(a,b[f],c,d,e)}return null}var h=!(!d),j=$c(a,b,h);if(!j){return false}for(var f=0;f<j[i];f++){if(j[f].listener==c&&j[f].capture==h&&j[f].handler==e){return pc(j[f].key)}}return false};o.unlisten=cd;var pc=function(a){if(!Wa[a]){return false}var b=Wa[a];if(b.removed){return false}var c=b.src,d=b[ua],e=
b.proxy,f=b.capture;if(c.removeEventListener){if(c==g[F]||!c.Ma){c.removeEventListener(d,e,f)}}else if(c.detachEvent){c.detachEvent(fe(d),e)}var h=Qa(c),j=ja[d][f][h];if(Pa[h]){var l=Pa[h];n.remove(l,b);if(l[i]==0){delete Pa[h]}}b.removed=true;j.nb=true;de(d,f,h,j);delete Wa[a];return true};o.unlistenByKey=pc;var de=function(a,b,c,d){if(!d.qa){if(d.nb){for(var e=0,f=0;e<d[i];e++){if(d[e].removed){ad.D(d[e]);continue}if(e!=f){d[f]=d[e]}f++}Oa(d,f);d.nb=false;if(f==0){ib.D(d);delete ja[a][b][c];ja[a][b].h--;
if(ja[a][b].h==0){vb.D(ja[a][b]);delete ja[a][b];ja[a].h--}if(ja[a].h==0){vb.D(ja[a]);delete ja[a]}}}}};o.he=de;var og=function(a,b,c){var d=0,e=a==null,f=b==null,h=c==null;c=!(!c);if(!e){var j=Qa(a);if(Pa[j]){var l=Pa[j];for(var m=l[i]-1;m>=0;m--){var q=l[m];if((f||b==q[ua])&&(h||c==q.capture)){pc(q.key);d++}}}}else{g[I].forEach(Pa,function(E){for(var A=E[i]-1;A>=0;A--){var Ea=E[A];if((f||b==Ea[ua])&&(h||c==Ea.capture)){pc(Ea.key);d++}}})}return d};o.removeAll=og;o.getListeners=function(a,b,c){return $c(a,
b,c)||[]};var $c=function(a,b,c){var d=ja;if(b in d){d=d[b];if(c in d){d=d[c];var e=Qa(a);if(d[e]){return d[e]}}}return null};o.Ce=$c;o.getListener=function(a,b,c,d,e){var f=!(!d),h=$c(a,b,f);if(h){for(var j=0;j<h[i];j++){if(h[j].listener==c&&h[j].capture==f&&h[j].handler==e){return h[j]}}}return null};o.hasListener=function(a,b,c){var d=ja;if(b in d){d=d[b];if(c in d){d=d[c];var e=Qa(a);if(d[e]){return true}}}return false};o.expose=function(a){var b=[];for(var c in a){if(a[c]&&a[c].id){b.push(c+
" = "+a[c]+" ("+a[c].id+")")}else{b.push(c+" = "+a[c])}}return b.join("\n")};var oc={CLICK:"click",DBLCLICK:"dblclick",MOUSEDOWN:"mousedown",MOUSEUP:"mouseup",MOUSEOVER:"mouseover",MOUSEOUT:"mouseout",MOUSEMOVE:"mousemove",KEYPRESS:"keypress",KEYDOWN:"keydown",KEYUP:"keyup",BLUR:"blur",FOCUS:"focus",DEACTIVATE:"deactivate",FOCUSIN:g[r].IE?"focusin":"DOMFocusIn",FOCUSOUT:g[r].IE?"focusout":"DOMFocusOut",CHANGE:"change",SELECT:"select",SUBMIT:"submit",LOAD:"load",UNLOAD:"unload",HELP:"help",RESIZE:"resize",
SCROLL:"scroll",READYSTATECHANGE:"readystatechange",CONTEXTMENU:"contextmenu"},hh=oc.KEYPRESS,ih=oc.MOUSEOUT,jh=oc.MOUSEOVER,fg=oc.MOUSEUP;o.EventType=oc;var fe=function(a){if(a in bd){return bd[a]}return bd[a]=ng+a};o.Fe=fe;var Lb=function(a,b,c,d){var e=1,f=ja;if(b in f){f=f[b];if(c in f){f=f[c];var h=Qa(a);if(f[h]){var j=f[h];if(!j.qa){j.qa=1}else{j.qa++}try{var l=j[i];for(var m=0;m<l;m++){var q=j[m];if(q&&!q.removed){e&=Zc(q,d)!==false;if(q.da){pc(q.key)}}}}finally{j.qa--;de(b,c,h,j)}}}}return Sb(e)};
o.fireListeners=Lb;var Zc=function(a,b){return a.I(b)};o.fireListener=Zc;o.getTotalListenerCount=function(){return pe(Wa)};o.dispatchEvent=function(a,b){if(V(b)){b=new o.Event(b,a)}else if(!(b instanceof o.Event)){var c=b;b=new o.Event(b[ua],a);g[I].extend(b,c)}else{dc(b,b[Ha]||a)}var d=1,e,f=b[ua],h=ja;if(!(f in h)){return true}h=h[f];var j=true in h,l=false in h;if(j){e=[];for(var m=a;m;m=m.cb()){e.push(m)}for(var q=e[i]-1;!b.z&&q>=0;q--){cb(b,e[q]);d&=Lb(e[q],b[ua],true,b)&&b.M!=false}}if(l){if(j){for(var q=
0;!b.z&&q<e[i];q++){cb(b,e[q]);d&=Lb(e[q],b[ua],false,b)&&b.M!=false}}else{for(var E=a;!b.z&&E;E=E.cb()){cb(b,E);d&=Lb(E,b[ua],false,b)&&b.M!=false}}}return Sb(d)};var jg=function(a,b){if(!Wa[a]){return true}var c=Wa[a],d=c[ua],e=ja;if(!(d in e)){return true}e=e[d];if(g[r].IE){var f=b||P.event,h=true in e;if(h){if(kg(f)){return true}mg(f)}var j=Qa(c.src),l=ee.w();l.init(f,this);try{var m=true;if(h){var q=ib.w();for(var E=l.currentTarget;E;E=E[G]){q.push(E)}for(var A=q[i]-1;!l.z&&A>=0;A--){cb(l,q[A]);
m&=Lb(q[A],d,true,l)}for(var A=0;!l.z&&A<q[i];A++){cb(l,q[A]);m&=Lb(q[A],d,false,l)}}else{m=Zc(c,l)}return m}finally{if(q){Oa(q,0);ib.D(q)}l.dispose();ee.D(l)}}var Ea=new H(b,this);try{return Zc(c,Ea)}finally{Ea.dispose()}};o.Pe=jg;var mg=function(a){var b=false;if(a[Cc]==0){try{Jc(a,-1);return}catch(c){b=true}}if(b||a.returnValue==M){a.returnValue=true}};o.ef=mg;var kg=function(a){return a[Cc]<0||a.returnValue!=M};o.Se=kg;var qc={};g.net=qc;var jb={COMPLETE:"complete",SUCCESS:"success",ERROR:"error",ABORT:"abort",READY:"ready",READY_STATE_CHANGE:"readystatechange",TIMEOUT:"timeout"},oh=jb.ABORT,rc=jb.COMPLETE,Ag=jb.ERROR,Bg=jb.READY,ph=jb.READY_STATE_CHANGE,qh=jb.SUCCESS,rh=jb.TIMEOUT;qc.EventType=jb;var Mb=function(){var a=Cg();if(a){return new ActiveXObject(a)}else{return new XMLHttpRequest}};qc.XmlHttp=Mb;var Nb={};Mb.ReadyState=Nb;Nb.UNINITIALIZED=0;Nb.LOADING=1;Nb.LOADED=2;Nb.INTERACTIVE=3;Nb.COMPLETE=4;var gd=null;Mb.rd=gd;var Cg=function(){if(!gd&&typeof XMLHttpRequest=="undefined"&&typeof ActiveXObject!="undefined"){var a=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];for(var b=0;b<a[i];b++){var c=a[b];try{new ActiveXObject(c);gd=(Mb.rd=c);return c}catch(d){}}throw Da("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed");
}return gd};Mb.Ge=Cg;var Ia={NO_ERROR:0,ACCESS_DENIED:1,FILE_NOT_FOUND:2,FF_SILENT_ERROR:3,CUSTOM_ERROR:4,EXCEPTION:5,HTTP_ERROR:6,ABORT:7,TIMEOUT:8},yg=Ia.ABORT,kh=Ia.ACCESS_DENIED,lh=Ia.CUSTOM_ERROR,ke=Ia.EXCEPTION,mh=Ia.FF_SILENT_ERROR,nh=Ia.FILE_NOT_FOUND,zg=Ia.HTTP_ERROR,le=Ia.NO_ERROR,me=Ia.TIMEOUT;qc.ErrorCode=Ia;Ia.getDebugMessage=function(a){switch(a){case le:return"No Error";case kh:return"Access denied to content document";case nh:return"File not found";case mh:return"Firefox silently errored";case lh:return"Application custom error";
case ke:return"An exception occurred";case zg:return"Http response at 400 or 500 level";case yg:return"Request was aborted";case me:return"Request timed out";default:return"Unrecognized error code"}};var Aa=function(){};o.EventTarget=Aa;Aa.inherits(fb);Aa[_P].cb=function(){return null};Aa[_P].addEventListener=function(a,b,c,d){ub(this,a,b,c,d)};Aa[_P].removeEventListener=function(a,b,c,d){cd(this,a,b,c,d)};Aa[_P].dispatchEvent=function(a){return o.dispatchEvent(this,a)};var eg=function(){if(!this.V()){Re.call(this);og(this)}};Aa[_P].dispose=eg;Aa[_P].Ma=true;var Xa={};g.json=Xa;var sg=function(a){if(a==""){return false}a=a.replace(/"(\\.|[^"\\])*"/g,"");return a==""||!/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(a)};Xa.Te=sg;Xa.parse=function(a){a=Z(a);if(typeof a.parseJSON=="function"){return a.parseJSON()}if(sg(a)){try{return eval("("+a+")")}catch(b){}}throw Da("Invalid JSON string: "+a);};Xa.unsafeParse=function(a){return eval("("+a+")")};var ed=null;Xa.Jd=ed;Xa.serialize=function(a){if(!ed){ed=(Xa.Jd=new Ya)}return ed.serialize(a)};var Ya=function(){};
Xa.Serializer=Ya;Ya[_P].serialize=function(a){if(a!=null&&typeof a.toJSONString=="function"){return a.toJSONString()}var b=[];this.Ea(a,b);return b.join("")};Ya[_P].Ea=function(a,b){switch(typeof a){case "string":this.pb(a,b);break;case "number":this.Cc(a,b);break;case "boolean":b.push(a);break;case "undefined":b.push("null");break;case "object":if(a==null){b.push("null");break}if(Ba(a)){this.Bc(a,b);break}this.Dc(a,b);break;default:throw Da("Unknown type: "+typeof a);}};var dd={'"':'\\"',"\\":"\\\\",
"/":"\\/","\u0008":"\\b","\u000c":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\u000b":"\\u000b"};Ya.ge=dd;Ya[_P].pb=function(a,b){b.push('"',a.replace(/[\\\"\x00-\x1f\x80-\uffff]/g,function(c){if(c in dd){return dd[c]}var d=c.charCodeAt(0),e="\\u";if(d<16){e+="000"}else if(d<256){e+="00"}else if(d<4096){e+="0"}return dd[c]=e+d.toString(16)}),'"')};Ya[_P].Cc=function(a,b){b.push(isFinite(a)&&!Ja(a)?a:"null")};Ya[_P].Bc=function(a,b){var c=a[i];b.push("[");var d="";for(var e=0;e<c;e++){b.push(d);this.Ea(a[e],
b);d=","}b.push("]")};Ya[_P].Dc=function(a,b){b.push("{");var c="";for(var d in a){b.push(c);this.pb(d,b);b.push(":");this.Ea(a[d],b);c=","}b.push("}")};var Fe=function(a){if(typeof a.p=="function"){return a.p()}if(ca(a)||V(a)){return a[i]}return pe(a)};Y.p=Fe;var lb=function(a){if(typeof a.l=="function"){return a.l()}if(V(a)){return a.split("")}if(ca(a)){var b=[],c=a[i];for(var d=0;d<c;d++){b.push(a[d])}return b}return qe(a)};Y.l=lb;var Pb=function(a){if(typeof a.v=="function"){return a.v()}if(typeof a.l=="function"){return M}if(ca(a)||V(a)){var b=[],c=a[i];for(var d=0;d<c;d++){b.push(d)}return b}return Ob(a)};Y.v=Pb;ya(Y,function(a,b){if(typeof a[zc]==
"function"){return a.contains(b)}if(ca(a)||V(a)){return n.contains(a,b)}return oe(a,b)});var Ge=function(a){if(typeof a.m=="function"){return a.m()}if(ca(a)||V(a)){return vf(a)}return Fg(a)};Y.m=Ge;Ma(Y,function(a){if(typeof a.clear=="function"){a.clear()}else if(ca(a)){n.clear(a)}else{g[I].clear(a)}});Y.forEach=function(a,b,c){if(typeof a.forEach=="function"){a.forEach(b,c)}else if(ca(a)||V(a)){n.forEach(a,b,c)}else{var d=Pb(a),e=lb(a),f=e[i];for(var h=0;h<f;h++){b.call(c,e[h],d&&d[h],a)}}};bc(Y,
function(a,b,c,d){if(typeof a.filter=="function"){return a.filter(b,c)}if(ca(a)||V(a)){return n.filter(a,b,c)}var e,f=Pb(a),h=lb(a),j=h[i];if(f&&x){e=new (d||xc);for(var l=0;l<j;l++){if(b.call(c,h[l],f[l],a)){Ee(e,f[l],h[l])}}}else if(Q){e=new (d||Array);for(var l=0;l<j;l++){if(b.call(c,h[l],M,a)){Q.add(e,h[l])}}}return e});Y.map=function(a,b,c,d){if(typeof a.map=="function"){return a.map(b,c)}if(ca(a)||V(a)){return n.map(a,b,c)}var e,f=Pb(a),h=lb(a),j=h[i];if(f&&x){e=new (d||xc);for(var l=0;l<j;l++){Ee(e,
f[l],b.call(c,h[l],f[l],a))}}else if(Q){e=new (d||Array);for(var l=0;l<j;l++){Q.add(e,f[l],b.call(c,h[l],M,a))}}return e};Y.some=function(a,b,c){if(typeof a.some=="function"){return a.some(b,c)}if(ca(a)||V(a)){return n.some(a,b,c)}var d=Pb(a),e=lb(a),f=e[i];for(var h=0;h<f;h++){if(b.call(c,e[h],d&&d[h],a)){return true}}return false};Y.every=function(a,b,c){if(typeof a.every=="function"){return a.every(b,c)}if(ca(a)||V(a)){return n.every(a,b,c)}var d=Pb(a),e=lb(a),f=e[i];for(var h=0;h<f;h++){if(!b.call(c,
e[h],d&&d[h],a)){return false}}return true};var x=function(a){this.g={};this.f=[];if(a){this.ca(a)}};Y.Map=x;var ld=":";x.We=ld;var De=ld.charCodeAt(0);x.Ve=De;x[_P].h=0;var sc=function(a){a=Z(a);if(a in xc[_P]){return ld+a}else if(a.charCodeAt(0)==De){return ld+a}else{return a}};x.rf=sc;var Vg=function(a){if(a.charCodeAt(0)==De){return a.substring(1)}else{return a}};x.ue=Vg;x[_P].p=function(){return this.h};x[_P].l=function(){this.ua();var a=[];for(var b=0;b<this.f[i];b++){var c=this.f[b];a.push(this.g[c])}return a};x[_P].v=function(){this.ua();
var a=[];for(var b=0;b<this.f[i];b++){var c=this.f[b];a.push(Vg(c))}return a};x[_P].S=function(a){return sc(a)in this.g};x[_P].Ka=function(a){for(var b=0;b<this.f[i];b++){var c=this.f[b];if(c in this.g){if(this.g[c]==a){return true}}}return false};x[_P].m=function(){return this.h==0};Ma(x[_P],function(){this.g={};Oa(this.f,0);this.h=0});db(x[_P],function(a){var b=sc(a);if(g[I].remove(this.g,b)){this.h--;if(this.f[i]>2*this.h){this.ua()}return true}return false});x[_P].ua=function(){if(this.h!=this.f[i]){var a=
0,b=0;while(a<this.f[i]){var c=this.f[a];if(c in this.g){this.f[b++]=c}a++}Oa(this.f,b)}if(this.h!=this.f[i]){var d={},a=0,b=0;while(a<this.f[i]){var c=this.f[a];if(!(c in d)){this.f[b++]=c;d[c]=1}a++}Oa(this.f,b)}};x[_P].get=function(a,b){var c=sc(a);if(c in this.g){return this.g[c]}return b};x[_P].set=function(a,b){var c=sc(a);if(!(c in this.g)){this.h++;this.f.push(c)}this.g[c]=b};x[_P].ca=function(a){var b,c;if(a instanceof x){b=a.v();c=a.l()}else{b=Ob(a);c=qe(a)}for(var d=0;d<b[i];d++){this.set(b[d],
c[d])}};x[_P].clone=function(){return new x(this)};x.p=function(a){return Fe(a)};x.l=function(a){return lb(a)};x.v=function(a){if(typeof a.v==Sa){return a.v()}var b=[];if(ca(a)){for(var c=0;c<a[i];c++){b.push(c)}}else{return Ob(a)}return b};var Ce=function(a,b){if(typeof a.S==Sa){return a.S(b)}if(ca(a)){return b<a[i]}return Eg(a,b)};x.S=Ce;x.Ka=function(a,b){return Y.contains(a,b)};x.m=function(a){return Ge(a)};Ma(x,function(a){Y.clear(a)});db(x,function(a,b){if(typeof a.remove==Sa){return a.remove(b)}if(ca(a)){return Uc(a,
b)}return g[I].remove(a,b)});x.add=function(a,b,c){if(typeof a.add==Sa){a.add(b,c)}else if(Ce(a,b)){throw Da('The collection already contains the key "'+b+'"');}else{re(a,b,c)}};x.get=function(a,b,c){if(typeof a.get==Sa){return a.get(b,c)}if(Ce(a,b)){return a[b]}return c};var Ee=function(a,b,c){if(typeof a.set==Sa){a.set(b,c)}else{a[b]=c}};x.set=Ee;var hd=function(){this.H=g[r].IE?[]:"";for(var a=0;a<arguments[i];a++){this.append(arguments[a])}};p.StringBuffer=hd;hd[_P].append=function(){if(g[r].IE){for(var a=0;a<arguments[i];a++){this.H.push(arguments[a])}}else{for(var a=0;a<arguments[i];a++){this.H+=arguments[a]}}return this};Ma(hd[_P],function(){if(g[r].IE){Oa(this.H,0)}else{this.H=""}});qb(hd[_P],function(){if(g[r].IE){var a=this.H.join("");this.clear();if(a){this.H.push(a)}return a}else{return this.H}});var Q=function(a){this.g=new x;if(a){this.ca(a)}};Y.Set=Q;var md=function(a){var b=typeof a;if(b=="object"){return"o"+Qa(a)}else{return b.substr(0,1)+a}};Q.Be=md;Q[_P].p=function(){return this.g.p()};Q[_P].add=function(a){this.g.set(md(a),a)};Q[_P].ca=function(a){var b=Wg(a),c=b[i];for(var d=0;d<c;d++){this.add(b[d])}};db(Q[_P],function(a){return this.g.remove(md(a))});Ma(Q[_P],function(){this.g.clear()});Q[_P].m=function(){return this.g.m()};ya(Q[_P],function(a){return this.g.S(md(a))});Q[_P].l=
function(){return this.g.l()};Q[_P].clone=function(){return new Q(this)};Q.p=function(a){return Fe(a)};var Wg=function(a){return lb(a)};Q.l=Wg;ya(Q,function(a,b){return Y.contains(a,b)});Q.m=function(a){return Ge(a)};Ma(Q,function(a){Y.clear(a)});db(Q,function(a,b){if(typeof a.remove=="function"){return a.remove(b)}else if(ca(a)){return n.remove(a,b)}else{for(var c in a){if(a[c]==b){delete a[c];return true}}return false}});Q.add=function(a,b){if(typeof a.add=="function"){a.add(b)}else if(ca(a)){a[a[i]]=
b}else{throw Da('The collection does not know how to add "'+b+'"');}};var aa={};g.debug=aa;aa.catchErrors=function(a,b,c){var d=a||yf(),e=c||g[F],f=e.onerror;e.onerror=function(h,j,l){if(f){f(h,j,l)}var m=Z(j).split(/[\/\\]/).pop();d.severe("Error: "+h+" ("+m+" @ Line: "+l+")");return Sb(b)}};aa.expose=function(a){if(!S(a))return"undefined";if(a==null)return"NULL";var b=[];for(var c in a){var d=c+" = ";try{d+=a[c]}catch(e){d+="*** "+e+" ***"}b.push(d)}return b.join("\n")};aa.deepExpose=function(a){var b=new Q,c=[],d=function(e,f){var h=f+"  ",j=function(q){return q.replace(/\n/g,
"\n"+f)};try{if(!S(e)){c.push("undefined")}else if(ie(e)){c.push("NULL")}else if(V(e)){c.push('"'+j(e)+'"')}else if(wb(e)){c.push(j(Z(e)))}else if(Ra(e)){if(b.contains(e)){c.push("*** reference loop detected ***")}else{b.add(e);c.push("{");for(var l in e){c.push("\n");c.push(h);c.push(l+" = ");d(e[l],h)}c.push("\n"+f+"}")}}else{c.push(e)}}catch(m){c.push("*** "+m+" ***")}};d(a,"");return c.join("")};var Cf=function(a){var b=[];for(var c=0;c<a[i];c++){if(Ba(a[c])){b.push(Cf(a[c]))}else{b.push(a[c])}}return"[ "+
b.join(", ")+" ]"};aa.exposeArray=Cf;var Df=function(a,b){try{var c=Gf(a),d="Message: "+Za(c[Bb])+'\nUrl: <a href="view-source:'+c.fileName+'" target="_new">'+c.fileName+"</a>\nLine: "+c.lineNumber+"\n\nBrowser stack:\n"+Za(c.stack+"-> ")+"[end]\n\nJS stack traversal:\n"+Za(Ff(b)+"-> ");return d}catch(e){return"Exception trying to expose exception! You win, we lose. "+e}};aa.exposeException=Df;var Gf=function(a){return typeof a=="string"?{message:a,name:"Unknown error",lineNumber:"Not available",
fileName:g[F][sa][ta][Bc],stack:"Not available"}:(!a.lineNumber||!a.fileName||!a.stack?{message:a[Bb],name:a[Ec],lineNumber:"Not available",fileName:g[F][sa][ta][Bc],stack:"Not available"}:a)};aa.normalizeErrorObject=Gf;aa.getStacktraceSimple=function(a){var b=[],c=arguments.callee[Vb],d=0;while(c&&(!a||d<a)){b.push(Ud(c));b.push("()\n");try{c=c[Vb]}catch(e){b.push("[exception trying to get caller]\n");break}d++;if(d>=50){b.push("[...long stack...]");break}}if(a&&d>=a){b.push("[...reached max depth limit...]")}else{b.push("[end]")}return b.join("")};
aa.MAX_STACK_DEPTH=50;var Ff=function(a){return Vd(a||arguments.callee[Vb],[])};aa.getStacktrace=Ff;var Vd=function(a,b){var c=[];if(n.contains(b,a)){c.push("[...circular reference...]")}else if(a&&b[i]<50){c.push(Ud(a)+"(");var d=a.arguments;for(var e=0;e<d[i];e++){if(e>0){c.push(", ")}var f=typeof d[e]=="object"&&d[e].toSource?d[e].toSource():Z(d[e]);if(f[i]>40){f=f.substr(0,40)+"..."}c.push(f)}b.push(a);c.push(")\n");try{c.push(Vd(a[Vb],b))}catch(h){c.push("[exception trying to get caller]\n")}}else if(a){c.push("[...long stack...]")}else{c.push("[end]")}return c.join("")};
aa.Ie=Vd;var Ud=function(a){if(!ic[a]){var b=/function ([^\(]+)/.exec(Z(a));if(b){var c=b[1],d=/^\$(.+)\$$/.exec(c);if(d){c=d[1].replace(/\${1,2}/g,".")}ic[a]=c}else{ic[a]="[Anonymous]"}}return ic[a]};aa.getFunctionName=Ud;var Ef=function(a,b,c,d){if(L.all){return""}var e=b||g[F],f=c||"",h=d||0;if(e==a){return f}for(var j in e){if(j=="Packages"||j=="sun"||j=="netscape"||j=="java"){continue}if(e[j]==a){return f+j}if((typeof e[j]=="function"||typeof e[j]=="object")&&e[j]!=g[F]&&e[j]!=g[F][sa]&&e.hasOwnProperty(j)&&
h<6){var l=Ef(a,e[j],f+j+".",h+1);if(l)return l}}return""};aa.ve=Ef;var ic={};aa.te=ic;var ea=function(a,b,c){this.Hd=g.debug.LogRecord.wd++;this.Yc=kb();this.q=a;this.pc=b;this.nc=c};aa.LogRecord=ea;ea[_P].Sa=null;ea[_P].Ra=null;ea.wd=0;ea[_P].Za=function(){return this.nc};ea[_P].Rb=function(){return this.Sa};ea[_P].Ec=function(a){this.Sa=a};ea[_P].Sb=function(){return this.Ra};ea[_P].Fc=function(a){this.Ra=a};ea[_P].Ld=function(a){this.nc=a};ea[_P].ia=function(){return this.q};ea[_P].Fa=function(a){this.q=a};ea[_P].ab=function(){return this.pc};ea[_P].Md=function(a){this.pc=a};ea[_P].bb=
function(){return this.Yc};ea[_P].Nd=function(a){this.Yc=a};ea[_P].od=function(){return this.Hd};var K=function(a){this.qc=a;this.X=null;this.Eb={};this.n=[]};aa.Logger=K;K[_P].q=null;var T=function(a,b){this.name=a;this.value=b};K.Level=T;qb(T[_P],function(){return this[Ec]});T.OFF=new T("OFF",Infinity);var Rd=new T("SHOUT",1200);T.SHOUT=Rd;var Qd=new T("SEVERE",1000);T.SEVERE=Qd;var Sd=new T("WARNING",900);T.WARNING=Sd;var Pd=new T("INFO",800);T.INFO=Pd;var Nd=new T("CONFIG",700);T.CONFIG=Nd;var Od=new T("FINE",500);T.FINE=Od;var zf=new T("FINER",400);T.FINER=zf;var Af=new T("FINEST",300);
T.FINEST=Af;T.ALL=new T("ALL",0);var Bf=function(a){return Ld(a)};K.getLogger=Bf;K[_P].ld=function(){return this.qc};K[_P].ad=function(a){this.n.push(a)};K[_P].Cd=function(a){for(var b=0;b<this.n[i];b++){if(this.n[b]==a){this.n.splice(b,1);return true}}return false};K[_P].ac=function(){return this.X};K[_P].gd=function(){return this.Eb};K[_P].Fa=function(a){this.q=a};K[_P].ia=function(){return this.q};K[_P].Qb=function(){if(this.q){return this.q}if(this.X){return this.X.Qb()}return null};K[_P].Ba=
function(a){if(this.q){return a.value>=this.q.value}if(this.X){return this.X.Ba(a)}return false};K[_P].log=function(a,b,c){if(!this.Ba(a)){return}var d=new ea(a,Z(b),this.qc);if(c){d.Ec(c);d.Fc(Df(c,arguments.callee[Vb]))}this.mc(d)};K[_P].shout=function(a,b){this.log(Rd,a,b)};K[_P].severe=function(a,b){this.log(Qd,a,b)};K[_P].warning=function(a,b){this.log(Sd,a,b)};K[_P].info=function(a,b){this.log(Pd,a,b)};K[_P].config=function(a,b){this.log(Nd,a,b)};K[_P].fine=function(a,b){this.log(Od,a,b)};K[_P].finer=
function(a,b){this.log(zf,a,b)};K[_P].finest=function(a,b){this.log(Af,a,b)};K[_P].mc=function(a){if(!this.Ba(a.ia())){return}var b=this;while(b){b.Db(a);b=b.ac()}};K[_P].Db=function(a){for(var b=0;b<this.n[i];b++){this.n[b](a)}};K[_P].Jc=function(a){this.X=a};K[_P].Ab=function(a,b){this.Eb[a]=b};var Ua={};aa.LogManager=Ua;var hc={};Ua.af=hc;var Kb=null;Ua.Gd=Kb;var Md=function(){if(!Kb){Kb=(Ua.Gd=new K(""));hc[""]=Kb;Kb.Fa(Nd)}};Ua.initialize=Md;Ua.getLoggers=function(){return hc};var yf=function(){Md();
return Kb};Ua.getRoot=yf;var Ld=function(a){Md();var b=hc[a];if(b==null){b=xf(a)}return b};Ua.getLogger=Ld;var xf=function(a){var b=new K(a),c=a.split("."),d=c[c[i]-1];Oa(c,c[i]-1);var e=c.join("."),f=Ld(e);f.Ab(d,b);b.Jc(f);hc[a]=b;return b};Ua.le=xf;var va=function(a){this.tc=a||"";this.ob=kb()};aa.Formatter=va;va[_P].rb=true;va[_P].tb=true;va[_P].sb=true;va[_P].ha=function(a){throw Da("Must override formatRecord");};va[_P].Fd=function(){this.ob=kb()};var Id=function(a){var b=new Date(a.bb());return hb(b.getFullYear()-2000)+hb(b.getMonth()+1)+hb(b.getDate())+" "+hb(b.getHours())+":"+hb(b.getMinutes())+":"+hb(b.getSeconds())+"."+hb(t.floor(b.getMilliseconds()/10))};va.we=Id;var hb=function(a){if(a<10){return"0"+a}return Z(a)};va.Le=hb;var Jd=
function(a,b){var c=a.bb()-b,d=c/1000,e=d.toFixed(3),f=0;if(d<1){f=2}else{while(d<100){f++;d*=10}}while(f-- >0){e=" "+e}return e};va.He=Jd;var Kd=function(a){va.call(this,a)};aa.HtmlFormatter=Kd;Kd.inherits(va);Kd[_P].ha=function(a){var b;switch(a.ia()){case Rd:b="dbg-sh";break;case Qd:b="dbg-sev";break;case Sd:b="dbg-w";break;case Pd:b="dbg-i";break;case Od:default:b="dbg-f";break}var c=[];c.push(this.tc);c.push(" ");if(this.rb){c.push("["+Id(a)+"] ")}if(this.tb){c.push("[");c.push(kd(Jd(a,this.ob)));
c.push("s] ")}if(this.sb){c.push("[");c.push(Za(a.Za()));c.push("] ")}c.push('<span class="'+b+'">');c.push(jd(kd(Za(a.ab()))));if(a.Rb()){c.push("<br>");c.push(jd(kd(a.Sb())))}c.push("</span><br>");return c.join("")};var Td=function(a){va.call(this,a)};aa.TextFormatter=Td;Td.inherits(va);Td[_P].ha=function(a){var b=[];b.push(this.tc);b[b[i]]=" ";if(this.rb){b.push("[");b.push(Id(a));b.push("] ")}if(this.tb){b.push("[");b.push(Jd(a,this.ob));b.push("s] ")}if(this.sb){b.push("["+a.Za()+"] ")}b.push(a.ab());
b.push("\n");return b.join("")};var v=function(){Aa.call(this);this.headers=new x;this.lb=Bf("goog.net.XhrLite");this.headers.set("Content-type","application/x-www-form-urlencoded;charset=utf-8")};qc.XhrLite=v;v.inherits(Aa);Kc(v,function(a,b,c,d,e,f){var h=new v;if(b){ub(h,rc,b)}ub(h,Bg,h.dispose,false,h);if(f){h.Oc(f)}h.send(a,c,d,e)});v[_P].t=false;v[_P].c=null;v[_P].Ca="";v[_P].ib="";v[_P].J=le;v[_P].K="";v[_P].N=0;v[_P].F=null;v[_P].pd=function(){return this.N};v[_P].Oc=function(a){this.N=t.max(0,a)};Kc(v[_P],function(a,b,
c,d){if(this.t){throw Da("[goog.net.XhrLite] Object is active with another request");}var e=b||"GET";this.Ca=a;this.K="";this.J=le;this.ib=e;this.t=true;this.c=new Mb;this.c.onreadystatechange=za(this.rc,this);try{this.r("Opening Xhr");this.c.open(e,a,true)}catch(f){this.r("Error opening Xhr: "+f[Bb]);this.Qa(ke,f);return}var h=c?Z(c):"";if(e=="POST"){this.c.setRequestHeader("Content-Length",h[i])}var j=this.headers.clone();if(d){Y.forEach(d,function(l,m){j.set(m,l)})}Y.forEach(j,function(l,m){this.c.setRequestHeader(m,
l)},this);try{if(this.F){g[F].clearTimeout(this.F);this.F=null}if(this.N>0){this.r("Will abort after "+this.N+"ms if incomplete");this.F=g[F].setTimeout(za(this.Zc,this),this.N)}this.r("Sending request");this.c.send(h)}catch(f){this.r("Send error: "+f[Bb]);this.Qa(ke,f)}});v[_P].Zc=function(){if(typeof g=="undefined"){}else if(this.c){this.K="Timed out after "+this.N+"ms, aborting";this.J=me;this.r(this.K);this.dispatchEvent(rh);this.abort(me)}};v[_P].Qa=function(a,b){this.t=false;this.c.abort();
this.K=b;this.J=a;this.dispatchEvent(rc);this.dispatchEvent(Ag);this.ea()};v[_P].abort=function(a){if(this.c){this.r("Aborting");this.t=false;this.c.abort();this.J=a||yg;this.dispatchEvent(rc);this.dispatchEvent(oh);this.ea()}};v[_P].dispose=function(){if(!this.V()){if(this.c){this.t=false;this.c.abort();this.ea(true)}v.Sc.dispose.call(this)}};v[_P].rc=function(){if(!this.t){return}if(typeof g=="undefined"){}else if(g[r].IE&&this.ka()==4&&this.ma()==2){this.r("Local request error detected and ignored")}else{this.dispatchEvent(ph);
if(this.hb()){this.r("Request complete");this.t=false;if(this.oa()){this.dispatchEvent(rc);this.dispatchEvent(qh)}else{this.J=zg;this.K=this.ec()+" ["+this.ma()+"]";this.dispatchEvent(rc);this.dispatchEvent(Ag)}this.ea()}}};v[_P].ea=function(a){if(this.c){this.c.onreadystatechange=g[r].IE?Dg:null;this.c=null;if(this.F){g[F].clearTimeout(this.F);this.F=null}if(!a){this.dispatchEvent(Bg)}}};v[_P].td=function(){return this.t};v[_P].hb=function(){return this.ka()==4};v[_P].oa=function(){switch(this.ma()){case 0:case 200:case 304:return true;
default:return false}};v[_P].ka=function(){return this.c?this.c.readyState:0};v[_P].ma=function(){try{return this.ka()>2?this.c.status:-1}catch(a){this.lb.warning("Can not get status: "+a[Bb]);return-1}};v[_P].ec=function(){try{return this.ka()>2?this.c.statusText:""}catch(a){this.lb.fine("Can not get status: "+a[Bb]);return""}};v[_P].kd=function(){return this.Ca};v[_P].la=function(){return this.c?this.c.responseText:""};v[_P].nd=function(){return this.c?this.c.responseXML:null};v[_P].md=function(){return this.c?
Xa.parse(this.c.responseText):M};v[_P].getResponseHeader=function(a){return this.c&&this.hb()?this.c.getResponseHeader(a):M};v[_P].jd=function(){return this.J};v[_P].hd=function(){return this.K};v[_P].r=function(a){this.lb.fine(a+" ["+this.ib+" "+this.Ca+" "+this.ma()+"]")};g.style={};var W=function(a,b,c){a[k][Le(b)]=c};g[k].setStyle=W;var Yg=function(a,b){return a[k][Le(b)]};g[k].getStyle=Yg;g[k].getComputedStyle=function(a,b){var c=wa(a);if(c[Yb]&&c[Yb].getComputedStyle){var d=c[Yb].getComputedStyle(a,"");if(d){return d[b]}}return null};var tc=function(a,b){return a[Ab]?a[Ab][b]:null};g[k].getCascadedStyle=tc;var Rb=function(a,b){return g[k].getComputedStyle(a,b)||tc(a,b)||a[k][b]};g[k].Je=Rb;g[k].getBackgroundColor=function(a){return Rb(a,"backgroundColor")};g[k].setPosition=
function(a,b,c){var d,e;if(b instanceof ga){d=b.x;e=b.y}else{d=b;e=c}Hb(a[k],typeof d=="number"?t.round(d)+"px":d);a[k].top=typeof e=="number"?t.round(e)+"px":e};g[k].ja=function(a){return new ga(a[nb],a[bb])};var Ie=function(a){var b;if(a){if(a[Ga]==Lf){b=a}else{b=wa(a)}}else{b=Qf()}if(g[r].IE&&b[zb]!="CSS1Compat"){return b[Fa]}return b[Ac]};g[k].getClientViewportElement=Ie;var Qb=function(a){var b=wa(a),c=g[r].GECKO&&b.getBoxObjectFor&&Rb(a,"position")=="absolute"&&(a[k].top==""||a[k][u]=="");if(typeof g[k].zb==
"undefined"){g[k].zb=g[r].CAMINO&&!$g("1.8.0.11")}var d=new ga(0,0),e=Ie(b);if(a==e){return d}var f=null,h;if(a.getBoundingClientRect){h=a.getBoundingClientRect();var j=e[ac],l=e[$b];d.x=h[u]+l;d.y=h.top+j}else if(b.getBoxObjectFor&&!c&&!g[k].zb){h=b.getBoxObjectFor(a);var m=b.getBoxObjectFor(e);d.x=h.screenX-m.screenX;d.y=h.screenY-m.screenY}else{d.x=a[nb];d.y=a[bb];f=a[xa];if(f!=a){while(f){d.x+=f[nb];d.y+=f[bb];f=f[xa]}}if(g[r].OPERA||g[r].SAFARI&&Rb(a,"position")=="absolute"){d.y-=b[Fa][bb]}f=
a[xa];while(f&&f!=b[Fa]){d.x-=f[$b];if(!g[r].OPERA||f.tagName!="TR"){d.y-=f[ac]}f=f[xa]}}return d};g[k].getPageOffset=Qb;g[k].getPageOffsetLeft=function(a){return Qb(a).x};g[k].getPageOffsetTop=function(a){return Qb(a).y};g[k].getRelativePosition=function(a,b){var c=He(a),d=He(b);return new ga(c.x-d.x,c.y-d.y)};var He=function(a){var b=new ga;if(a[Ga]==jc){if(a.getBoundingClientRect){var c=a.getBoundingClientRect();b.x=c[u];b.y=c.top}else{var d=wa(a),e=Ie(d),f=Qb(a);b.x=f.x-e[$b];b.y=f.y-e[ac]}}else{b.x=
a[Wb];b.y=a[Xb]}return b};g[k].getClientPosition=He;g[k].setPageOffset=function(a,b,c){var d=Qb(a);if(b instanceof ga){c=b.y;b=b.x}var e=b-d.x,f=c-d.y;g[k].setPosition(a,a[nb]+e,a[bb]+f)};g[k].setSize=function(a,b,c){var d;if(b instanceof Ca){d=b[N];b=b[J]}else{d=c}ra(a[k],typeof b=="number"?t.round(b)+"px":b);Fb(a[k],typeof d=="number"?t.round(d)+"px":d)};var pd=function(a){if(Rb(a,"display")!="none"){return new Ca(a[Eb],a[Db])}var b=a[k],c=b.visibility,d=b.position;b.visibility="hidden";pb(b,"absolute");
Na(b,"");var e=a[Eb],f=a[Db];Na(b,"none");pb(b,d);b.visibility=c;return new Ca(e,f)};g[k].getSize=pd;g[k].getBounds=function(a){var b=Qb(a),c=pd(a);return new ka(b.x,b.y,c[J],c[N])};var Le=function(a){return Z(a).replace(/\-([a-z])/g,function(b,c){return c.toUpperCase()})};g[k].toCamelCase=Le;g[k].toSelectorCase=function(a){return a.replace(/([A-Z])/g,"-$1").toLowerCase()};g[k].setOpacity=function(a,b){var c=a[k];if("opacity"in c){c.opacity=b}else if("MozOpacity"in c){c.MozOpacity=b}else if("KhtmlOpacity"in
c){c.KhtmlOpacity=b}else if("filter"in c){bc(c,"alpha(opacity="+b*100+")")}};g[k].setTransparentBackgroundImage=function(a,b){var c=a[k];if("filter"in c){bc(c,'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+b+'", sizingMethod="crop")')}else{c.backgroundImage="url("+b+")";c.backgroundPosition="top left";c.backgroundRepeat="no-repeat"}};g[k].showElement=function(a,b){Na(a[k],b?"":"none")};g[k].installStyles=function(a,b){var c=ae(b),d=null;if(g[r].IE){d=c.za().createStyleSheet()}else{var e=
c.ta("head")[0];if(!e){var f=c.ta("body")[0];e=c.fa("head");f[G].insertBefore(e,f)}d=c.fa("style");c.appendChild(e,d)}Zg(d,a);return d};var Zg=function(a,b){if(g[r].IE){a.cssText=b}else{var c=g[r].SAFARI?"innerText":"innerHTML";a[c]=b}};g[k].setStyles=Zg;g[k].setPreWrap=function(a){if(g[r].IE){Lc(a[k],"pre");a[k].wordWrap="break-word"}else if(g[r].GECKO){Lc(a[k],"-moz-pre-wrap")}else if(g[r].OPERA){Lc(a[k],"-o-pre-wrap")}else{Lc(a[k],"pre-wrap")}};g[k].setInlineBlock=function(a){pb(a[k],"relative");
if(g[r].IE){a[k].zoom="1";Na(a[k],"inline")}else if(g[r].GECKO){Na(a[k],qd(g[r].VERSION,"1.8")>0?"inline-block":"-moz-inline-box")}else{Na(a[k],"inline-block")}};g[k].isRightToLeft=function(a){return"rtl"==Rb(a,"direction")};g[k].setUnselectable=function(a,b){if(g[r].IE){var c=a.getElementsByTagName("*"),d=b?"on":"off";for(var e=0,f=c[i];e<f;e++){c[e].setAttribute("unselectable",d)}a.setAttribute("unselectable",d)}};var Xg=function(a){return new Ca(a[Eb],a[Db])};g[k].getBorderBoxSize=Xg;g[k].setBorderBoxSize=
function(a,b){if(g[r].IE){var c=wa(a),d=a[k];if(c[zb]=="CSS1Compat"){var e=od(a),f=nd(a);d.pixelWidth=b[J]-f[u]-e[u]-e[ha]-f[ha];d.pixelHeight=b[N]-f.top-e.top-e[da]-f[da]}else{d.pixelWidth=b[J];d.pixelHeight=b[N]}}else{Ke(a,b,"border-box")}};g[k].getContentBoxSize=function(a){var b=wa(a);if(g[r].IE&&b[zb]=="CSS1Compat"){var c=a[Ab],d=wc(a,c[J],"width","pixelWidth"),e=wc(a,c[N],"height","pixelHeight");return new Ca(d,e)}else{var f=Xg(a),h=od(a),j=nd(a);return new Ca(f[J]-j[u]-h[u]-h[ha]-j[ha],f[N]-
j.top-h.top-h[da]-j[da])}};g[k].setContentBoxSize=function(a,b){if(g[r].IE){var c=wa(a),d=a[k];if(c[zb]=="CSS1Compat"){d.pixelWidth=b[J];d.pixelHeight=b[N]}else{var e=od(a),f=nd(a);d.pixelWidth=b[J]+f[u]+e[u]+e[ha]+f[ha];d.pixelHeight=b[N]+f.top+e.top+e[da]+f[da]}}else{Ke(a,b,"content-box")}};var Ke=function(a,b,c){var d=a[k];if(g[r].GECKO){d.MozBoxSizing=c}else if(g[r].SAFARI){d.WebkitBoxSizing=c}else if(g[r].OPERA){var e=a.getAttribute("style")||"";e=e.replace(/box-sizing:[^;]+/g,"")+";box-sizing:"+
c;a.setAttribute("style",e)}else{d.boxSizing=c}ra(d,b[J]+"px");Fb(d,b[N]+"px")};g[k].pf=Ke;var wc=function(a,b,c,d){if(/^\d+px?$/.test(b)){return mb(b,10)}else{var e=a[k][c],f=a.runtimeStyle[c];a.runtimeStyle[c]=a[Ab][c];a[k][c]=b;var h=a[k][d];a[k][c]=e;a.runtimeStyle[c]=f;return h}};g[k].Ae=wc;var vc=function(a,b){return wc(a,tc(a,b),"left","pixelLeft")};g[k].ze=vc;var od=function(a){if(g[r].IE){var b=vc(a,"paddingLeft"),c=vc(a,"paddingRight"),d=vc(a,"paddingTop"),e=vc(a,"paddingBottom");return new fa(d,
c,e,b)}else{var b=g[k].getComputedStyle(a,"paddingLeft"),c=g[k].getComputedStyle(a,"paddingRight"),d=g[k].getComputedStyle(a,"paddingTop"),e=g[k].getComputedStyle(a,"paddingBottom");return new fa($a(d),$a(c),$a(e),$a(b))}};g[k].getPaddingBox=od;var Je={thin:2,medium:4,thick:6};g[k].Re=Je;var uc=function(a,b){if(tc(a,b+"Style")=="none"){return 0}var c=tc(a,b+"Width");if(c in Je){return Je[c]}return wc(a,c,"left","pixelLeft")};g[k].ye=uc;var nd=function(a){if(g[r].IE){var b=uc(a,"borderLeft"),c=uc(a,
"borderRight"),d=uc(a,"borderTop"),e=uc(a,"borderBottom");return new fa(d,c,e,b)}else{var b=g[k].getComputedStyle(a,"borderLeftWidth"),c=g[k].getComputedStyle(a,"borderRightWidth"),d=g[k].getComputedStyle(a,"borderTopWidth"),e=g[k].getComputedStyle(a,"borderBottomWidth");return new fa($a(d),$a(c),$a(e),$a(b))}};g[k].getBorderBox=nd;var oa=function(a,b){Aa.call(this);this.na=a||1;this.ra=b||Oc;this.Ia=za(this.Xc,this);this.jb=kb()};g.Timer=oa;oa.inherits(Aa);oa[_P].enabled=false;var Oc=g[F].window;oa.defaultTimerObject=Oc;var Ue=0.8;oa.intervalScale=Ue;oa[_P].k=null;oa[_P].setInterval=function(a){this.na=a;if(this.k&&this.enabled){this.stop();this.start()}else if(this.k){this.stop()}};oa[_P].Xc=function(){if(this.enabled){var a=kb()-this.jb;if(a>0&&a<this.na*Ue){this.k=this.ra.setTimeout(this.Ia,this.na-a);return}this.dispatchEvent("tick");
if(this.enabled){this.k=this.ra.setTimeout(this.Ia,this.na);this.jb=kb()}}};oa[_P].start=function(){this.enabled=true;if(!this.k){this.k=this.ra.setTimeout(this.Ia,this.na);this.jb=kb()}};oa[_P].stop=function(){this.enabled=false;this.ra.clearTimeout(this.k);this.k=null};oa[_P].dispose=function(){if(!this.V()){eg.call(this);this.stop();this.ra=null}};oa.TICK="tick";var Te=function(a,b,c){if(wb(a)){if(c){a=za(a,c)}}else if(a&&typeof a.I=="function"){a=za(a.I,a)}else{throw Da("Invalid listener argument");
}return Oc.setTimeout(a,b||0)};oa.da=Te;Ma(oa,function(a){Oc.clearTimeout(a)});g.window={};g.window.DEFAULT_POPUP_HEIGHT=500;g.window.DEFAULT_POPUP_WIDTH=690;g.window.DEFAULT_POPUP_TARGET="google_popup";g.window.open=function(a,b,c){if(!b){b={}}var d=c||P,e=V(a)?a:a[Bc],f=b[Ha]||a[Ha],h=[];for(var j in b){switch(j){case "width":case "height":h.push(j+"="+b[j]);break;case "target":break;default:h.push(j+"="+(b[j]?1:0))}}var l=h.join(","),m=d.open(e,f,l);return m};g.window.popup=function(a,b){if(!b){b={}}dc(b,b[Ha]||a[Ha]||"google_popup");ra(b,b[J]||690);Fb(b,b[N]||500);var c=
g.window.open(a,b);if(!c){return true}c.focus();return false};this.goog=g;var ia={};g.analytics=ia;var z={};ia.Properties=z;var mf="rpt";z._REPORT_NAME=mf;var lf="id";z._PROFILE_ID=lf;var Ta="eid";z._EVENT_ID=Ta;var gf="pdr";z._DATE_RANGE=gf;var ef="cdr";z._COMPARE_DATE_RANGE=ef;var ff="cmp";z._COMPARISON_TYPE=ff;z._GOAL="goal";var gc="slice";z._SLICE_BY=gc;z._SEGMENT="seg";var nf="segkey";z._SEGMENT_BY=nf;z._FILTER="q";z._FILTER_TYPE="qtyp";z._DASHBOARD="dashboard";var X="d1";z._DRILLDOWN=X;var tb="d2";z._DRILLDOWN2=tb;var Dd="d3";z._DRILLDOWN3=Dd;z._RESET="reset";var fc=
"msg";z._MESSAGE=fc;z._TABLE_START_ROW="tst";var of="trows";z._TABLE_ROW_COUNT=of;z._TABLE_SORT_COLUMN="tscol";z._TABLE_SORT_ORDER="tsdir";var Sc="tab";z._TABLE_TAB=Sc;var pf="view";z._TABLE_VIEW=pf;var Rc="tchcol";z._TABLE_CHART_COLUMN=Rc;var hf="mdet";z._GEOMAP_ZOOM_LEVEL=hf;z._GEOMAP_VALUE_INDEX="midx";z._GRAPH_VALUE="gidx";z._SELECTOR_FILTER="subq";z._SITE_OVERLAY="gaso";var qf="time";z._TIME_RESOLUTION=qf;z._EXPORT_FORMAT="fmt";var jf="locale";z._LOCALE=jf;var kf="lh";z._LOCALE_HELP=kf;var B=function(a,b,c){this.reset(a,b,c)};ia.PropertyManager=B;B[_P].reset=function(a,b,c){this.R={};this.sa=b||{};this.Y=a||{};this.ya=c||{};this.s=new Q;this.s.add(gf);this.s.add(ef);this.s.add(ff);this.s.add(lf);this.s.add(of);this.s.add(qf);this.T=new Q;this.T.add(jf);this.T.add(kf)};var Tc=null;B.sd=Tc;B[_P].R=null;B[_P].sa=null;B[_P].Y=null;B[_P].ya=null;B[_P].s=null;B[_P].T=null;var C=function(){if(Tc==null){Tc=(B.sd=new B)}return Tc};B._getInstance=C;var rf=function(){return new B};B._getNewInstance=
rf;B[_P]._broadcastChange=function(a,b){var c=this.R[a];if(typeof c=="object"){var d=c[i];for(var e=0;e<d;e++){if(typeof c[e]=="function"){c[e](b)}}}};B[_P]._listenTo=function(a,b){if(typeof this.R[a]!="object"){this.R[a]=[]}this.R[a].push(b)};B[_P]._addProperties=function(a){var b=a.split("&");for(var c=0;c<b[i];c++){var d=b[c].split("=");if(d[0]&&d[0]!=""){if(!d[1]){d[1]=""}var e=d[1].replace(/\+/g," ");this._set(d[0],Me(e))}}};B[_P]._set=function(a,b){if(b==M){return}var c=b+"";if(this.s.contains(a)){this.Kc(a,
c)}else if(this.T.contains(a)){this.Gc(a,c)}else{this.Pc(a,c)}};B[_P].Pc=function(a,b){this.sa[a]=b};B[_P].Kc=function(a,b){this.Y[a]=b};B[_P].Gc=function(a,b){this.ya[a]=b};B[_P]._get=function(a){if(this.s.contains(a)){return this.bc(a)}else if(this.T.contains(a)){return this.Tb(a)}else{return this.gc(a)}};B[_P].gc=function(a){return this.sa[a]};B[_P].bc=function(a){return this.Y[a]};B[_P].Tb=function(a){return this.ya[a]};B[_P]._getQueryString=function(){var a=this.Ga(this.Y),b=this.Ga(this.sa);
return a+"&"+b};B[_P]._getPersistentQueryString=function(){return this.Ga(this.Y)};B[_P]._cloneAll=function(){var a=new B,b=this._getQueryString();a._addProperties(b);return a};B[_P]._clonePersistent=function(){var a=new B,b=this._getPersistentQueryString();a._addProperties(b);return a};B[_P].Ga=function(a){var b="",c,d=0;for(c in a){if(c&&c!=""){var e=a[c];if(e&&e!=""){if(d!=0){b+="&"}b+=c+"="+yc(e);d++}}}return b};B[_P]._getProperty=function(a){return this.lf[a]};var $=function(a,b){this.$c=a;this.yd=b;this.k=null;this.hardcodedDivToUpdate=null;this.kb="f_loading_message";this.useLoadingMessage=true};ia.Ajax=$;$.Wd=1000;var Pc="There was an error fetching data for this view.";$.ERROR_MESSAGE=Pc;Kc($[_P],function(){v.send(this.$c,this.Ac.bind(this),"POST",this.yd);if(this.useLoadingMessage){C()._broadcastChange(fc,"");yb(this.$c);this.k=Te(this.Rc.bind(this),1000)}});$[_P].Hc=function(a){this.hardcodedDivToUpdate=a};$[_P].Qc=function(a){this.useLoadingMessage=
a};$[_P].Ic=function(a){this.kb=a};$[_P].Ac=function(a){var b=a[Ha];oa.clear(this.k);this.k=null;this.ic();var c=b.la();c=c.replace(/(\n|\r)*/g,"");if(c.indexOf("JSRESULT:ERROR")>-1){this.Gb(this.hardcodedDivToUpdate);return}var d=c.split(/<\/ga:data>/);for(var e=0;e<d[i];++e){var f=d[e].split(/<\/ga:id>/);if(!f||f[i]<2){break}f[0]=f[0].replace(/<ga:id>/,"");f[1]=f[1].replace(/<ga:data>/,"");f[0]=Tg(f[0]);if(this.hardcodedDivToUpdate==null){wd(f[0],f[1])}else{wd(this.hardcodedDivToUpdate,f[1])}}};
$[_P].Gb=function(a){if(a!=null){var b="<div class='graph'><div class='loading'>"+Pc+"</div></div>",c=R(ba(a),b)}else{C()._broadcastChange(fc,Pc)}};$._setErrorMessage=function(a){Pc=($.ERROR_MESSAGE=a)};$[_P].Rc=function(){W(ba(this.kb),"display","block")};$[_P].ic=function(){var a=ba(this.kb);if(a){W(a,"display","none")}};Kc($,function(a,b){var c=new $(a,b);c.send()});$.loadDashboardItem=function(a,b){var c=new $(a,"");c.Hc(b);c.Qc(false);c.send()};$.sendCustomLoading=function(a,b){var c=new $(a,
"");c.Ic(b);c.send()};var wd=function(a,b){var c=ba(a);b=b.replace(/^\s*<div.*?>/,"");b=b.replace(/<\/div>\s*$/,"");R(c,b);var d=b,e,f=-1,h=-1;while((f=d.indexOf("<script"))!=-1){if((h=d.indexOf("<\/script>",f))==-1){break}e=d.substring(f,h+9);d=d.replace(e,"");e=e.replace(/(?:<script.*?>)( *<!--|)/,"");e=e.replace(/(\/\/--\> *|)(?:<\/script>)/,"");eval(e)}};$.update=wd;var ec={};ia.Controls=ec;var Xe=function(a){if(a=="none"){D.changeSegmentation(false)}else{D.changeSegmentBy(a)}};ec.setSegment=Xe;var Ye=function(a){D.changeSliceBy(a)};ec.setSlice=Ye;var Ve=function(a){D.changeDrilldown(a)};ec.changeDrilldown=Ve;var We=function(a){D.changeSelectorFilter(a)};ec.changeSelectorFilter=We;C()._listenTo("segment_by",Xe);C()._listenTo("segment",function(a){D.changeSegmentation(a=="true")});C()._listenTo("segment_view",function(a){D.changeSegmentView(a)});C()._listenTo("slice_by",
Ye);C()._listenTo("drilldown",Ve);C()._listenTo("selector_filter",We);C()._listenTo("analyze",D.changeAnalyzeContent);C()._listenTo("goal",D.changeGoal);C()._listenTo("map_index",D.changeMapIndex);C()._listenTo("geo_segmentation",D.segmentMap);C()._listenTo("geo_zoom_level",D.returnToMap);C()._listenTo("time_slice",D.changeTimeSlice);C()._listenTo(fc,function(a){var b=ba("f_message"),c=ba("f_message_text");R(c,a);if(!a||a==""){Na(b[k],"none")}else{Na(b[k],"block")}});var w=function(a,b){this.G=null;this.ba=null;this.a=a.DashboardInfo;this.Na=b};ia.Dashboard=w;w[_P].G=null;w[_P].ba=null;w[_P].a=null;w[_P].Na="Are you sure you want to remove this module?";w.add=function(a){yb("/analytics/reporting/ui/dashboard/add/");var b=C(),c=b._cloneAll();c._set(Ta,"");c._set(mf,a);v.send("dashboard_add?"+c._getQueryString(),function(){$e(this)},"POST")};var $e=function(a){if(a.oa()&&a.la().indexOf("OK")>-1){af(a)}else{Ze(a)}};w.$d=$e;var af=function(a){W(yd(),"display","block")};
w.ae=af;var Ze=function(a){var b=zd(a);xd(b)};w.Zd=Ze;db(w[_P],function(a,b){if(confirm(this.Na)){if(this.G){alert("Please wait.")}else{this.G=a;this.ba=b;yb("/analytics/reporting/ui/dashboard/remove/"+b);var c=C(),d=c._getPersistentQueryString();v.send("dashboard_remove?component="+b+"&"+d,this.xc.bind(this),"POST")}}});w[_P].xc=function(a){var b=a[Ha];if(b.oa()&&b.la().indexOf("OK")>-1){this.yc(b)}else{this.wc(b)}};w[_P].yc=function(a){var b=new Array(2);b[0]="LEFT";b[1]="RIGHT";for(var c=0;c<b[i];c++){var d=
this.a.Modules[b[c]];if(d){for(var e=0;e<d[i];e++){if(d[e]==this.ba){d.splice(e,1);break}}}}this.G[G].removeChild(this.G);this.G=null;this.ba=null;this.Da()};w[_P].wc=function(a){var b=zd(a);xd(b);this.G=null;this.ba=null};w[_P].Da=function(){var a=this.u?ba(this.u)[G]:null,b=["f_modules_col_1","f_modules_col_2"];for(var c=0;c<b[i];c++){var d=L.getElementById(b[c]),e=d.getElementsByTagName("li");for(var f=0;f<e[i];f++){var h=e[f];if(h[G]==d&&h!=a){W(h,"display","none");W(h,"display","block")}}}};
var zd=function(a){if(a.oa()){var b=a.la().split(":"),c=b[1];return c}else{return"Could not contact server"}};w.kf=zd;var xd=function(a){var b=yd();R(b,"<b><b><b><b>"+a+"</b></b></b></b>");W(b,"display","block")};w.displayMessage=xd;var yd=function(){return L.getElementById("f_add_to_dashboard_message")};w.De=yd;w[_P].columns=["LEFT","RIGHT"];w[_P].ja=function(a){for(var b=0;b<this.columns[i];b++){var c=this.a.Modules[this.columns[b]];if(c){for(var d=0;d<c[i];d++){if(c[d].Id==a){return[b,d]}}}}return[-1,
-1]};w[_P].Ya=function(a){for(var b=0;b<this.columns[i];b++){var c=this.a.Modules[this.columns[b]];if(c){for(var d=0;d<c[i];d++){if(c[d].Id==a){return c[d].Handle}}}}return[-1,-1]};w[_P].vc=function(a,b){var c=this.Ib(a,b),d=this.a.Modules[this.columns[a]];d.splice(b,1);return c};w[_P].Bb=function(a,b,c){var d=this.a.Modules[this.columns[b]];if(!d){d=[];this.a.Modules[this.columns[b]]=d}d.splice(c,0,a)};w[_P].Ib=function(a,b){return this.a.Modules[this.columns[a]][b]};w[_P].Pa=function(a){if(!this.a.Modules[this.columns[a]]){return 0}return this.a.Modules[this.columns[a]][i]};
w[_P].u=null;w[_P].o=null;w[_P].Z=-1;w[_P].$=-1;w[_P].Cb=function(a){var b=this.ja(a);this.Z=b[0];this.$=b[1];this.u=a;var c=ba(a)[G];this.o=this.cc(a);c[G].insertBefore(this.o,c);W(c,"display","none")};w[_P].Hb=function(a){var b=[-1,-1],c=null,d=true;if(a=="left_after_pad"||a=="right_after_pad"){var e=a=="left_after_pad"?0:1,f=this.a.Modules[this.columns[e]],h=0;if(f){h=f[i]}b=[e,h];c=ba(a)}else{b=this.ja(a);c=ba(a)[G];if(b[0]==this.Z&&b[1]>=this.$){d=false;++b[1]}}var j=d?c:c[Zb];this.db();if(j!=
this.o){c[G].insertBefore(this.o,j);this.Z=b[0];this.$=b[1]}this.Da()};w[_P].Jb=function(){var a=ba(this.u)[G];a[G].removeChild(a);this.o[G].insertBefore(a,this.o);W(a,"display","block");this.db();var b=this.ja(this.u),c=this.vc(b[0],b[1]);this.Bb(c,this.Z,this.$);yb("/analytics/reporting/ui/dashboard/move/"+this.Ya(this.u));var d=C(),e=d._getPersistentQueryString();v.send("dashboard_move?component="+this.Ya(this.u)+"&x="+this.Z+"&y="+this.$+"&"+e);this.placeholderDiv=null;this.u=null;this.me=-1;
this.ne=-1;var f=this.Pa(1)-this.Pa(0),h=ba("right_after_pad"),j=ba("left_after_pad");W(j,"display",f<0?"none":"block");W(h,"display",f>0?"none":"block");if(f<0){W(h,"height",-18*f+"em")}else if(f>0){W(j,"height",18*f+"em")}this.Da()};w[_P].cc=function(a){var b=ba(a),c=$d("li");Nf(c,"dashboard_module placeholder");W(c,"width",pd(b)[J]);W(c,"height","18em");return c};w[_P].db=function(){if(this.o&&this.o[G]){this.o[G].removeChild(this.o)}};w[_P]._beginDrag=function(a){this.Cb(a)};w[_P]._draggedOver=
function(a){this.Hb(a)};w[_P]._endDrag=function(){this.Jb()};w[_P]._remove=function(a,b){this.remove(a,b)};w._add=function(a){w.add(a)};var bf={};ia.Email=bf;bf._submitForm=function(a){var b=ba("f_action_type");if(b){b.value=a||"send_now"}var c=ba("f_limit");if(c){var d=/[\?&]limit=([^&#]*)/.exec(P[ta][Bc]);if(d!=null){c.value=d[1]}}ba("f_email_form").submit()};function _gel(a){return L.getElementById(a)}function rd(a){var b=0;if(a[xa]){while(a[xa]){b+=a[nb];a=a[xa]}}else if(a.x){b=a.x}return b}function sd(a){var b=0;if(a[xa]){while(a[xa]){b+=a[bb];a=a[xa]}}else if(a.y){b=a.y}return b}function _IG_Drag(){this.surrogateOffsetX=1;this.surrogateOffsetY=1;this.leftMargin=2;this.rightMargin=2;this.topMargin=2;this.bottomMargin=2;this.xMapper=null;this.yMapper=null;this.surrogateInitialX=0;this.surrogateInitialY=0;this.surrogate=null;this.curSource=null;this.curTargetId=
null;this.isDragging=false;this.hasDragged=false;this.isRightButton=false;this.A={};this.ub={};this.vb={};this.i={};this.wb={};this.documentPreviousOnMouseMove=null;this.documentPreviousOnMouseUp=null;this.oc()}_IG_Drag[_P].xd=function(a,b){return a-b};_IG_Drag[_P]._onDragStart=function(a){};_IG_Drag[_P]._onDragTargetHit=function(a,b){};_IG_Drag[_P]._onDragTargetLost=function(a){};_IG_Drag[_P]._onDragEnd=function(a,b){};_IG_Drag[_P]._onDragClick=function(a){};_IG_Drag[_P].Kb=function(){if(!this.surrogate){this.surrogate=
L.createElement("div");R(this.surrogate,"");qa(this.surrogate,"");this.surrogate[k].position="absolute";this.surrogate[k].cursor="move";this.surrogate[k].left=this.surrogateInitialX+"px";this.surrogate[k].top=this.surrogateInitialY+"px";L.getElementById("container").appendChild(this.surrogate)}};_IG_Drag[_P]._addSource=function(a,b,c){if(typeof b=="undefined"){b=_gel(a)}this.A[a]=b;if(typeof c!="undefined"){b._IG_DragSurrogateView=c}this.ub[a]=b.onmousedown;b.onmousedown=this.dragStart;this.vb[a]=
b[k].cursor;b[k].cursor="move";return true};_IG_Drag[_P].Dd=function(a){if(typeof this.A[a]!="undefined"){this.A[a].onmousedown=this.ub[a];this.A[a][k].cursor=this.vb[a]}delete this.A[a]};_IG_Drag[_P].Ad=function(){for(var a in this.A){this.A[a].onmousedown=this.ub[a];this.A[a][k].cursor=this.vb[a]}this.A={}};_IG_Drag[_P]._addTarget=function(a,b,c){if(typeof b=="undefined"){b=_gel(a)}if(typeof c=="undefined"){c=0}this.i[a]=b;this.wb[a]=c};_IG_Drag[_P].Ed=function(a){delete this.i[a]};_IG_Drag[_P].Bd=
function(){this.i={}};_IG_Drag[_P]._cacheTargets=function(){this.Uc={};this.Vc={};this.Wc={};this.Tc={};for(var a in this.i){this.Uc[a]=rd(this.i[a])-this.leftMargin;this.Vc[a]=rd(this.i[a])+this.i[a][Eb]+this.rightMargin;this.Wc[a]=sd(this.i[a])-this.topMargin;this.Tc[a]=sd(this.i[a])+this.i[a][Db]+this.bottomMargin}};_IG_Drag[_P].Ta=function(a){if(typeof a=="undefined")a=P.event;if(typeof a.layerX=="undefined")a.layerX=a.offsetX;if(typeof a.layerY=="undefined")a.layerY=a.offsetY;return a};_IG_Drag[_P].oc=
function(){var a=this;this.dragStart=function(b){if(a.isDragging){a.dragEnd()}a.curSource=this;b=a.Ta(b);a.isDragging=true;a.Kb();if(typeof a.curSource._IG_DragSurrogateView!="undefined"){var c=L.createElement("div");a.surrogate.appendChild(c);qa(a.surrogate,"dashboard_surrogate");var d=a.curSource._IG_DragSurrogateView[Eb]-4;ra(a.surrogate[k],typeof d=="number"?t.round(d)+"px":d);Fb(a.surrogate[k],"18em")}else{R(a.surrogate,a.curSource.innerHTML)}a.surrogateInitialX=rd(a.curSource)+a.surrogateOffsetX;
if(typeof a.curSource._IG_Drag_surrogateOffsetX!="undefined"){a.surrogateInitialX+=a.curSource._IG_Drag_surrogateOffsetX}a.surrogateInitialY=sd(a.curSource)+a.surrogateOffsetY;if(typeof a.curSource._IG_Drag_surrogateOffsetY!="undefined"){a.surrogateInitialY+=a.curSource._IG_Drag_surrogateOffsetY}Hb(a.surrogate[k],a.surrogateInitialX+"px");a.surrogate[k].top=a.surrogateInitialY+"px";Na(a.surrogate[k],"block");a.surrogate.lastMouseX=b[Wb];a.surrogate.lastMouseY=b[Xb];a.documentPreviousOnMouseMove=L.onmousemove;
a.documentPreviousOnMouseUp=L.onmouseup;L.onmousemove=a.dragMove;L.onmouseup=a.dragEnd;a.isRightButton=false;if(b.which&&b.which==3)a.isRightButton=true;if(typeof b[Ub]!="undefined"&&b[Ub]==2)a.isRightButton=true;a._onDragStart(a.curSource);a.curTargetId=null;a._onDragTargetLost(null);a.hasDragged=false;a._cacheTargets();return false};this.dragMove=function(b){a.hasDragged=true;b=a.Ta(b);if(b.which==0){return a.dragEnd()}var c=b[Xb],d=b[Wb],e=mb(a.surrogate[k].top,10),f=mb(a.surrogate[k][u],10),h=
a.xMapper?a.xMapper(f,f-a.surrogateInitialX):f+(d-a.surrogate.lastMouseX),j=a.yMapper?a.yMapper(e,e-a.surrogateInitialY):e+(c-a.surrogate.lastMouseY),l=h+a.surrogate[Eb]/2,m=j+a.surrogate[Db]/2;a.surrogate[k].left=h+"px";a.surrogate[k].top=j+"px";a.surrogate.lastMouseX=d;a.surrogate.lastMouseY=c;var q=null;for(var E in a.i){if(q!=null&&a.wb[E]<a.wb[q]){continue}if(l>=a.Uc[E]&&l<=a.Vc[E]&&m>=a.Wc[E]&&m<=a.Tc[E]){q=E}}if(a.curTargetId!=q){if(q==null){var A=a.i[a.curTargetId];a.curTargetId=null;a._onDragTargetLost(A)}else if(a.curTargetId==
null){a.curTargetId=q;a._onDragTargetHit(a.i[q],null)}else{var A=a.i[a.curTargetId];a.curTargetId=q;a._onDragTargetHit(a.i[q],A)}}if(a.documentPreviousOnMouseMove!=null){a.documentPreviousOnMouseMove()}return false};this.dragEnd=function(){L.onmousemove=a.documentPreviousOnMouseMove;L.onmouseup=a.documentPreviousOnMouseUp;Na(a.surrogate[k],"none");a.isDragging=false;var b=a.hasDragged;a.hasDragged=false;if(a.curSource!=null){a._onDragEnd(a.curSource,a.i[a.curTargetId]);if(!b){a._onDragClick(a.curSource)}}a.curSource=
null;if(a.documentPreviousOnMouseUp!=null){a.documentPreviousOnMouseUp()}}};var Jb={HELP:1,NAV:2,CONTROL:3,CALENDAR:4,POSITION:5,NARRATIVE:6},Ad=Jb.CALENDAR,Bd=Jb.HELP,df=Jb.NARRATIVE,Cd=Jb.NAV,gh=Jb.POSITION;ia.MenuType=Jb;var Qc=function(){this.mb=[]};ia.MenuManager=Qc;Qc[_P].$a=function(a,b,c){var d=null;if(this.mb[b]){d=this.mb[b];if(d.d!=L.getElementById(b)||d.e!=L.getElementById(a)){d.gb(a,b,c)}}if(!d){d=new ma(a,b,c);this.mb[b]=d}return d};var ma=function(a,b,c){this.d=null;this.e=null;this.C=false;this.P=Bd;this.gb(a,b,c)};ia.Menu=ma;ma[_P].gb=function(a,b,c){this.e=
L.getElementById(a);this.d=L.getElementById(b);if(c){this.P=c}if(this.P==Ad){if(Zd(this.d,"hidden")==false){this.C=true}}else{if(Yg(this.d,"display")!="none"){this.C=true}}if(this.P==Cd){return}ub(P[sa][Fa],fg,this.Ha,true,this)};ma[_P].zc=function(){cd(P[sa][Fa],fg,this.Ha,true,this);this.e=null;this.d=null;this.C=false;this.P=Bd};ma[_P].Ha=function(a){if(!ma.contains(this.e,a[Ha])){if(!ma.contains(this.d,a[Ha])){this.Ja()}}};ma[_P].sc=function(){if(!this.C){switch(this.P){case Ad:U.add(this.e,"current");
U.remove(this.d,"hidden");break;case gh:this.Lc();U.add(this.e,"current");W(this.d,"display","block");break;case Cd:U.add(this.e,"expanded");W(this.d,"display","block");break;case df:pb(this.d[k],"absolute");this.d[k].padding="0px 0px 0px 0px";this.d[k].margin="0px 0px 0px 0px";Hb(this.d[k],"0px");this.d[k].bottom="0px";this.d[k].top=this.e[Db]-2+"px";this.d[G].removeChild(this.d);this.e.appendChild(this.d);pb(this.e[k],"relative");U.add(this.e,"expanded");W(this.d,"display","block");break;default:U.add(this.e,
"current");W(this.d,"display","block");break}var a=this.Va();if(a){this.previousZIndex=this.Ob(a).zIndex;pb(a[k],"relative");a[k].zIndex=50}this.C=true;var b=this.e.id.substring(2,this.e.id[i]);yb("/analytics/reporting/ui/menu/"+b+"/")}};ma[_P].Ja=function(){if(this.C){switch(this.P){case Ad:U.remove(this.e,"current");U.add(this.d,"hidden");break;case Cd:U.remove(this.e,"expanded");W(this.d,"display","none");break;case df:U.remove(this.e,"expanded");W(this.d,"display","none");break;default:U.remove(this.e,
"current");W(this.d,"display","none");break}var a=this.Va();if(a){pb(a[k],"relative");a[k].zIndex=this.previousZIndex}this.C=false}};ma[_P].Va=function(){switch(this.P){case Bd:return this.d[G][G]}return null};ma[_P].Ob=function(a){if(typeof a[Ab]!="undefined"){return a[Ab]}else{return L[Yb].getComputedStyle(a,null)}};ma[_P].Lc=function(){var a=cf(this.e),b=pd(this.e);a.y+=b[N]-1;g[k].setPosition(this.d,a)};ma.toggle=function(a,b,c){if(!ia.menus){ia.menus=new Qc}var d=ia.menus.$a(a,b,c);if(d.C){d.Ja()}else{d.sc()}};
Ma(ma,function(a,b,c){if(!ia.menus){ia.menus=new Qc}var d=ia.menus.$a(a,b,c);d.zc()});var cf=function(a){var b=0,c=0;if(a[xa]){b=a[nb];c=a[bb];while(a=a[xa]){b+=a[nb];c+=a[bb]}}else{b=a.x;c=a.y}return new ga(b,c)};ma.se=cf;ya(ma,function(a,b){while(b&&a!=b){b=b[G]}if(b=="undefined")return false;return b==a});var sf={};ia.State=sf;sf._updateState=function(a){yb("/analytics/reporting/state_update?"+a);v.send("state_update?"+a,function(){},"POST")};var Mc={};Mc.Breadcrumb={};function _Breadcrumb(a){this.a=a.Breadcrumb}_Breadcrumb[_P]._getData=function(){return this.a};function _MiniTable(a){this.a=a.MiniTable;this.pa=new rb;ud(this.pa,true)}_MiniTable[_P]._drillDown=function(a){var b=this.a.NextLink,c=this.a.Rows[a-1].Key;if(!b)return;var d=this.pa.Ua(b,[c],a-1);if(d!=null){Gb(P[ta],d);return}var e=P[ta][Gc];e=e.substring(0,e.lastIndexOf("/")+1);var f=C()._clonePersistent();e+=b;if(this.a.StateQuery){var h=rf();h._addProperties(this.a.StateQuery);var j=h._get(X),l=h._get(tb);if(!j||j[i]==0){f._set(X,c)}else{f._set(X,j);if(!l||l[i]>0){f._set(tb,l);f._set(Dd,c)}else{f._set(tb,
c)}}}else{f._set(X,c)}if(this.a.Link){if(this.a.Link.indexOf("&tab=2")>-1){f._set(Sc,"2")}if(this.a.Link.indexOf("revenue")>-1){f._set(Sc,"2")}}if(this.a.LinkParams&&this.a.LinkParams!=""){f._addProperties(this.a.LinkParams)}Gb(P[ta],e+"?"+f._getQueryString())};function _KeywordPosition(a,b){this.a=b[a];this.fb=this.ga(a)}_KeywordPosition[_P]._init=function(){if(this.a.DetailKeyword){this._updateChart(this.a.State.BreakdownColumn)}};_KeywordPosition[_P]._getData=function(){return this.a};_KeywordPosition[_P]._toggleSortCol=function(a){if(a==this.a.State.SortColumn){this._toggleSortOrder();return}this.a.State.SortColumn=a;D.changeSortBy()};_KeywordPosition[_P]._toggleSortOrder=function(){this.a.State.SortOrder=this.a.State.SortOrder==0?1:0;D.changeSortOrder()};
_KeywordPosition[_P]._toggleBreakdownCol=function(a){this._updateChart(a);this.a.State.ChartColumn=a};_KeywordPosition[_P]._togglePage=function(a){if(a!=0){var b=this.a.RowStart+this.a.RowShow*a;if(b<0){if(this.a.RowCount%this.a.RowShow==0){b=this.a.RowCount-this.a.RowShow}else{b=this.a.RowCount-this.a.RowCount%this.a.RowShow}}else if(b>=this.a.RowCount){b=0}this.a.RowStart=b;D.changePage()}};_KeywordPosition[_P]._toggleRowShow=function(a){this.a.RowStart=0;this.a.RowShow=a;D.changePage()};_KeywordPosition[_P]._toggleFilterType=
function(a){this.a.FilterType=a};_KeywordPosition[_P]._setFilterString=function(a){this.a.FilterString=a};_KeywordPosition[_P]._filter=function(){D.changeSearch()};_KeywordPosition[_P]._toggleChartCol=function(a){this._updateChart(a);this.a.State.ChartColumn=a;C()._set(Rc,a)};_KeywordPosition[_P]._updateChart=function(a){var b="";b+="<div>";b+="<div>";b+='<ul class="keyword_positions_top">';for(var c=0;c<this.a.TopPositionDetails[i];c++){b+="<li>";b+=this.a.TopPositionDetails[c].Label;b+=": <strong>";
if(!this.a.Compare){b+=this.a.TopPositionDetails[c].Values[a]}else{b+="<br/>"+this.a.PrimaryMessage+": ";b+=this.a.TopPositionDetails[c].Values[a];b+="<br/>"+this.a.ComparisonMessage+": ";b+=this.a.TopPositionDetails[c].CompareValues[a];b+="<br/>"+this.a.ChangeMessage+": ";b+=this.a.TopPositionDetails[c].Deltas[a]}b+="</strong></li>"}b+="</ul>";b+='<ul class="keyword_positions_side">';for(var c=0;c<this.a.SidePositionDetails[i];c++){b+="<li>";b+=this.a.SidePositionDetails[c].Label;b+=": <strong>";
if(!this.a.Compare){b+=this.a.SidePositionDetails[c].Values[a]}else{b+="<br/>"+this.a.PrimaryMessage+": ";b+=this.a.SidePositionDetails[c].Values[a];b+="<br/>"+this.a.ComparisonMessage+": ";b+=this.a.SidePositionDetails[c].CompareValues[a];b+="<br/>"+this.a.ChangeMessage+": ";b+=this.a.SidePositionDetails[c].Deltas[a]}b+="</strong></li>"}b+="</ul>";b+="</div>";var d=this.b("f_position_detail");if(d){R(d,b)}};_KeywordPosition[_P]._positionDetail=function(a){this.a.DetailKeyword=this.a.KeywordList[a].Keyword;
D.changeDetailKeyword(this.a.DetailKeyword)};_KeywordPosition[_P].ga=function(a){var b={};this.O(L.getElementById(a),b);return b};_KeywordPosition[_P].O=function(a,b){if(a.id){b[a.id]=a}var c=a[ab][i];for(var d=0;d<c;++d){this.O(a[ab][d],b)}};_KeywordPosition[_P].b=function(a){return this.fb[a]};function _NavigationSummary(a){this.a=a.NavigationSummary}_NavigationSummary[_P]._drillDown=function(a,b){var c;if(b==1){c=this.a.ToRows[a].Key}else{c=this.a.FromRows[a].Key}var d=P[ta][Gc],e=X+"="+yc(c);D.changeReport(d,e)};function _EntrancePath(a){this.a=a.EntrancePath}_EntrancePath[_P]._drillDown=function(a){var b=this.a.StartKey,c=this.a.InitialPaths[a].Key;D.changeNavigationPathDrilldown(b,c)};_EntrancePath[_P]._goToContentDetail=function(a){var b=this.a.InitialPaths[a].Key,c="content_detail";if(b&&b[i]>0&&b.charAt(b[i]-1)=="/"){c="content_drilldown"}var d=X+"="+yc(b);D.changeReport(c,d)};var Nc={};Mc.RegexChecker=Nc;var td=function(a){var b;try{b=new RegExp(a)}catch(c){return false}return b!=M};Nc.isValid=td;qg("RegexChecker",Nc);pg(Nc,"isValid",td);var rb=function(){this.W=[];this.n=new x};Mc.TableLinker=rb;rb[_P].n=null;rb[_P].W=null;rb[_P].L=function(a,b){this.W.push(a);this.n.set(a,b)};rb[_P].Ua=function(a,b,c){for(var d=0;d<this.W[i];d++){var e=new RegExp(this.W[d]);if(a.match(e)){var f=this.n.get(this.W[d]);return f(a,b,c)}}return null};var eb={};Mc.TableLinkers=eb;var ud=function(a,b){a.L("all_source_variant",Ne);a.L("content_drilldown",Pe);a.L("maps",Qe);a.L("city",Oe);if(b){a.L("source",vd)}else{a.L("variant",vd)}};eb.registerKnownHandlers=ud;var Ne=function(a,b,c){var d=b[0],e=P[ta][Gc];e=e.substring(0,e.lastIndexOf("/")+1);var f=C();if(f._get(gc)=="source"){e+="all_source_detail"}else if(f._get(gc)=="medium"){e+="all_medium_detail"}else{e+="all_source_medium_base_detail"}var h=C()._clonePersistent();h._set(X,d);h._set(Ta,"");
return e+"?"+h._getQueryString()};eb.allSources=Ne;var vd=function(a,b,c){var d=b[0],e="",f=C()._clonePersistent(),h=d.indexOf(" ("),j=d.substring(h+2,d[i]-1);d=d.substring(0,h);if(j=="(none)"){e+="direct_sources"}else if(j=="referral"){e+="referring_source_detail";f._set(X,d)}else if("cpc|ppc|cpa|cpm|cpv|cpp|organic".indexOf(j)>-1){e+="search_engine_detail";f._set(X,d);if("cpc|ppc|cpa|cpm|cpv|cpp".indexOf(j)>-1){f._set(gc,"paid")}else if("organic".indexOf(j)>-1){f._set(gc,"non-paid")}}else{e+="all_source_medium_base_detail";
f._set(X,d+" / "+j)}return e+"?"+f._getQueryString()};eb.sourceDetail=vd;var Pe=function(a,b,c){var d=b[0],e="content_detail";if(d&&d[i]>0&&d.charAt(d[i]-1)=="/"&&d!="/"){e="content_drilldown"}var f=C()._clonePersistent(),h="",j="/";if(P._breadcrumb){j=P._breadcrumb._getData().CurrentDrilldown}if(j){if(j.charAt(j[i]-1)=="/"){h=j.substring(0,j[i]-1)}else{h=j}}h+=d;f._set(X,h);f._set(Ta,"");return e+"?"+f._getQueryString()};eb.contentDrilldown=Pe;var Qe=function(a,b,c){var d="maps",e=P._breadcrumb._getData().NextUrl,
f=b[1],h=C()._clonePersistent();if(f=="US"){h._set(X,"US");h._set(hf,"COUNTRY");h._set(nf,"REGION")}else{d=e;h._set(X,f)}h._set(Ta,"");if(d.indexOf("?")>-1){return d+"&"+h._getQueryString()}else{return d+"?"+h._getQueryString()}};eb.geoMap=Qe;var Oe=function(a,b,c){var d=b[1],e=b[0],f=C()._clonePersistent();f._set(X,d);f._set(tb,e);f._set(Ta,"");return"city?"+f._getQueryString()};eb.city=Oe;eb.defaultUrlLinker=function(a,b,c){var d=b[0],e=C()._clonePersistent();e._set(X,d);e._set(Ta,"");return a+
"?"+e._getQueryString()};function _Table(a,b,c){this.a=b[a];this.fb=this.ga(a);this.pa=new rb;this.zd=c;ud(this.pa,false)}_Table[_P]._init=function(){var a=this.b("f_chart_col");if(a&&a.options[i]<1){return}if(this.a.State.View>0){if(this.a.State.ChartColumn>=a.options[i]){a.selectedIndex=1;this._toggleChartCol(a.options[1].value)}else{a.selectedIndex=this.a.State.ChartColumn;this._toggleChartCol(this.a.State.ChartColumn)}}};_Table[_P]._getData=function(){return this.a};_Table[_P]._toggleTab=function(a){this.a.State.Tab=
a;D.changeTab()};_Table[_P]._toggleView=function(a){this.a.State.View=a;D.changeView()};_Table[_P]._toggleSortCol=function(a){if(a==this.a.State.SortColumn){this._toggleSortOrder();return}this.a.State.SortColumn=a;D.changeSortBy()};_Table[_P]._toggleSortOrder=function(){this.a.State.SortOrder=this.a.State.SortOrder==0?1:0;D.changeSortOrder()};_Table[_P]._toggleChartCol=function(a){this._updateChart(this.a.State.View,a);this.a.State.ChartColumn=a;var b=C();b._set(Rc,a)};_Table[_P]._togglePage=function(a){if(a!=
0){var b=this.a.RowStart+this.a.RowShow*a;if(b<0){if(this.a.RowCount%this.a.RowShow==0){b=this.a.RowCount-this.a.RowShow}else{b=this.a.RowCount-this.a.RowCount%this.a.RowShow}}else if(b>=this.a.RowCount){b=0}this.a.RowStart=b;D.changePage()}};_Table[_P]._toggleRowShow=function(a){this.a.RowShow=a;D.changePage()};_Table[_P]._toggleRowStart=function(a){if(!a||a==M||a>this.a.RowCount||a<1){a=1}this.a.RowStart=a-1;D.changePage()};_Table[_P]._toggleFilterType=function(a){this.a.FilterType=a};_Table[_P]._setFilterType=
function(a){this.a.FilterType=a;this._filter()};_Table[_P]._setFilterString=function(a){this.a.FilterString=a};_Table[_P]._filter=function(){if(td(this.a.FilterString)){D.changeSearch()}else{C()._broadcastChange(fc,this.zd);Gb(L[ta],"#status_message_anchor")}};_Table[_P]._updateChart=function(a,b){if(a==1){this._updatePie(b)}else if(a==2){this._updatePerf(b)}else if(a==3){this._updateComp(b)}};_Table[_P]._updatePie=function(a){var b=this.a.ActiveColumns[a],c=b.Total[0],d=this.a.Rows,e=[],f=0,h=this.a.Compare,
j=this.b("f_pie_pct_column");if(j){R(j,b.BaseName)}for(var l=0;l<d[i]&&l<10;l++){var m=d[l].Cells[a].Primary;if(h){var q=d[l].Cells[a].Compare;if(d[l].Cells[a].Active){R(this.b("f_pie_pct_0_"+l),m[1]);R(this.b("f_pie_pct_1_"+l),q[1])}else{R(this.b("f_pie_pct_0_"+l),"-");R(this.b("f_pie_pct_1_"+l),"-")}}else{if(d[l].Cells[a].Active){R(this.b("f_pie_pct_"+l),m[1])}else{R(this.b("f_pie_pct_"+l),"-")}}f+=m[0]*100;e.push(m)}if(c==0){j=L.getElementById(this.a.Id+"_pie_vis");if(j){R(j,"")}return}if(f<100){var m=
[],E=t.round((100-f)*100)/100;m.push(E/100);m.push(E+"%");e.push(m)}var A='{"Pie":{"Compare":false,"Id":"';A+=this.a.Id+"_PieChart";A+='","Format":"TABLE","PercentValues":[';var Ea="";for(var l=0;l<e[i];l++){A+=Ea;Ea=",";A+='["';A+=e[l][0];A+='","';A+=e[l][1];A+='"]'}A+="]}}";var ah=this.a.Id+"_pie_vis",sh=Flash.Builder.writeFlash(ah,"flash/pie.swf","100%","255",function(bh){bh.setFlashVar("input",A)})};_Table[_P]._updatePerf=function(a){var b=this.a.Compare,c=this.a.ActiveColumns[a],d=c.PrimaryScale?
c.PrimaryScale:1,e=c.CompareScale?c.CompareScale:1;for(var f=0;f<this.a.Rows[i];f++){var h,j,l=this.a.Rows[f].Cells[a];if(b){if(l.Active){h=l.Compare;j=h[0]/e*88+"%";ra(this.b("f_perf_bar_0_"+f)[k],j);R(this.b("f_perf_bar_value_0_"+f),h[1]);h=l.Primary;j=h[0]/d*88+"%";ra(this.b("f_perf_bar_1_"+f)[k],j);R(this.b("f_perf_bar_value_1_"+f),h[1])}else{ra(this.b("f_perf_bar_0_"+f)[k],"0%");R(this.b("f_perf_bar_value_0_"+f),"-");ra(this.b("f_perf_bar_1_"+f)[k],"0%");R(this.b("f_perf_bar_value_1_"+f),"-")}}else{if(l.Active){h=
l.Primary;j=(d?h[0]/d*88:0)+"%";ra(this.b("f_perf_bar_"+f)[k],j);R(this.b("f_perf_bar_value_"+f),h[1]?h[1]:"")}else{ra(this.b("f_perf_bar_"+f)[k],"0%");R(this.b("f_perf_bar_value_"+f),"-")}}}};_Table[_P]._updateComp=function(a){var b=0;for(var c=0;c<this.a.Rows[i];c++){var d=t.abs(this.a.Rows[c].Cells[a].Delta[0],2);b=b<d?d:b}for(var c=0;c<this.a.Rows[i];c++){var e=this.a.Rows[c].Cells[a],d=e.Delta,f=this.b("f_graph_comp_"+c);if(e.Active){if(e.InverseCompare){qa(f,"graph_variable_bar"+(d[0]<0?"":
" negative"))}else{qa(f,"graph_variable_bar"+(d[0]<0?" negative":""))}ra(this.b("f_comp_bar_"+c)[k],b==0?"0%":t.round(t.abs(d[0])/b*35)+"%");R(this.b("f_comp_bar_value_"+c),d[1])}else{qa(f,"graph_variable_bar");ra(this.b("f_comp_bar_"+c)[k],"0%");R(this.b("f_comp_bar_value_"+c),"-")}}};_Table[_P]._drillDown=function(a){var b=P._breadcrumb._getData().NextUrl,c=this.a.Rows[a].Key,d=this.a.Rows[a].SubKey,e;if(d){e=[c,d]}else{e=[c]}var f=this.pa.Ua(b,e,a);if(f!=null){Gb(P[ta],f);return}if(b=="content_detail_link"){this._goToContentDetailLink(a);
return}var h=P[ta][Gc];h=h.substring(0,h.lastIndexOf("/")+1);h+=b;var j=C()._clonePersistent();j._set(X,"");if(P._breadcrumb._getData().CurrentDrilldown){if(P._breadcrumb._getData().Crumbs[i]==3){j._set(X,P._breadcrumb._getData().Crumbs[2].Drilldown);j._set(tb,P._breadcrumb._getData().CurrentDrilldown);j._set(Dd,this.a.Rows[a].Key)}else{j._set(X,P._breadcrumb._getData().CurrentDrilldown);j._set(tb,this.a.Rows[a].Key)}}else{j._set(X,this.a.Rows[a].Key)}j._set(Sc,this.a.State.Tab);j._set(pf,this.a.State.View);
j._set(Rc,this.a.State.ChartColumn);j._set(Ta,"");Gb(P[ta],h+"?"+j._getQueryString())};_Table[_P]._goToContentDetailLink=function(a){var b="content_detail",c=this.a.Rows[a].Key,d=C()._clonePersistent();d._set(X,c);d._set(Ta,"");Gb(P[ta],b+"?"+d._getQueryString())};_Table[_P]._getFirstIndex=function(a){for(var b=0;b<this.a.Columns[i];b++){if(this.a.Columns[b].Tab==a)return b}};_Table[_P].ga=function(a){var b={};this.O(L.getElementById(a),b);return b};_Table[_P].O=function(a,b){if(a.id){b[a.id]=a}var c=
a[ab][i];for(var d=0;d<c;++d){this.O(a[ab][d],b)}};_Table[_P].b=function(a){return this.fb[a]};function _TabView(a,b){this.a=b[a];this.Q=[];this.Q[0]="table";this.Q[1]="pie";this.Q[2]="performance";this.Q[3]="comparison"}_TabView[_P]._toggleTab=function(a){for(var b=0;b<this.a.Tabs[i];b++){qa(L.getElementById("tab_"+b),"")}qa(L.getElementById("tab_"+a),"current");if(a!=this.a.TabSelected){D.changeTab(a)}this.a.TabSelected=a};_TabView[_P]._toggleView=function(a){for(var b=0;b<this.Q[i];b++){qa(L.getElementById("f_"+this.Q[b]+"_view_option"),"")}qa(L.getElementById("f_"+this.Q[a]+"_view_option"),
"current");this.a.ViewSelected=a};
