/* automatically generated by JSCoverage - do not edit */
try {
  if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) {
    // this is a browser window that was opened from another window

    if (! top.opener._$jscoverage) {
      top.opener._$jscoverage = {};
    }
  }
}
catch (e) {}

try {
  if (typeof top === 'object' && top !== null) {
    // this is a browser window

    try {
      if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) {
        top._$jscoverage = top.opener._$jscoverage;
      }
    }
    catch (e) {}

    if (! top._$jscoverage) {
      top._$jscoverage = {};
    }
  }
}
catch (e) {}

try {
  if (typeof top === 'object' && top !== null && top._$jscoverage) {
    this._$jscoverage = top._$jscoverage;
  }
}
catch (e) {}
if (! this._$jscoverage) {
  this._$jscoverage = {};
}
if (! _$jscoverage['build/logger/logger.js']) {
  _$jscoverage['build/logger/logger.js'] = [];
  _$jscoverage['build/logger/logger.js'][18] = 0;
  _$jscoverage['build/logger/logger.js'][26] = 0;
  _$jscoverage['build/logger/logger.js'][60] = 0;
  _$jscoverage['build/logger/logger.js'][61] = 0;
  _$jscoverage['build/logger/logger.js'][62] = 0;
  _$jscoverage['build/logger/logger.js'][63] = 0;
  _$jscoverage['build/logger/logger.js'][80] = 0;
  _$jscoverage['build/logger/logger.js'][81] = 0;
  _$jscoverage['build/logger/logger.js'][82] = 0;
  _$jscoverage['build/logger/logger.js'][84] = 0;
  _$jscoverage['build/logger/logger.js'][86] = 0;
  _$jscoverage['build/logger/logger.js'][101] = 0;
  _$jscoverage['build/logger/logger.js'][102] = 0;
  _$jscoverage['build/logger/logger.js'][112] = 0;
  _$jscoverage['build/logger/logger.js'][113] = 0;
  _$jscoverage['build/logger/logger.js'][122] = 0;
  _$jscoverage['build/logger/logger.js'][123] = 0;
  _$jscoverage['build/logger/logger.js'][132] = 0;
  _$jscoverage['build/logger/logger.js'][133] = 0;
  _$jscoverage['build/logger/logger.js'][134] = 0;
  _$jscoverage['build/logger/logger.js'][135] = 0;
  _$jscoverage['build/logger/logger.js'][138] = 0;
  _$jscoverage['build/logger/logger.js'][155] = 0;
  _$jscoverage['build/logger/logger.js'][178] = 0;
  _$jscoverage['build/logger/logger.js'][189] = 0;
  _$jscoverage['build/logger/logger.js'][299] = 0;
  _$jscoverage['build/logger/logger.js'][300] = 0;
  _$jscoverage['build/logger/logger.js'][301] = 0;
  _$jscoverage['build/logger/logger.js'][302] = 0;
  _$jscoverage['build/logger/logger.js'][305] = 0;
  _$jscoverage['build/logger/logger.js'][306] = 0;
  _$jscoverage['build/logger/logger.js'][307] = 0;
  _$jscoverage['build/logger/logger.js'][310] = 0;
  _$jscoverage['build/logger/logger.js'][311] = 0;
  _$jscoverage['build/logger/logger.js'][312] = 0;
  _$jscoverage['build/logger/logger.js'][313] = 0;
  _$jscoverage['build/logger/logger.js'][314] = 0;
  _$jscoverage['build/logger/logger.js'][316] = 0;
  _$jscoverage['build/logger/logger.js'][318] = 0;
  _$jscoverage['build/logger/logger.js'][321] = 0;
  _$jscoverage['build/logger/logger.js'][323] = 0;
  _$jscoverage['build/logger/logger.js'][324] = 0;
  _$jscoverage['build/logger/logger.js'][328] = 0;
  _$jscoverage['build/logger/logger.js'][329] = 0;
  _$jscoverage['build/logger/logger.js'][337] = 0;
  _$jscoverage['build/logger/logger.js'][338] = 0;
  _$jscoverage['build/logger/logger.js'][339] = 0;
  _$jscoverage['build/logger/logger.js'][341] = 0;
  _$jscoverage['build/logger/logger.js'][343] = 0;
  _$jscoverage['build/logger/logger.js'][344] = 0;
  _$jscoverage['build/logger/logger.js'][346] = 0;
  _$jscoverage['build/logger/logger.js'][347] = 0;
  _$jscoverage['build/logger/logger.js'][349] = 0;
  _$jscoverage['build/logger/logger.js'][352] = 0;
  _$jscoverage['build/logger/logger.js'][361] = 0;
  _$jscoverage['build/logger/logger.js'][362] = 0;
  _$jscoverage['build/logger/logger.js'][363] = 0;
  _$jscoverage['build/logger/logger.js'][364] = 0;
  _$jscoverage['build/logger/logger.js'][365] = 0;
  _$jscoverage['build/logger/logger.js'][366] = 0;
  _$jscoverage['build/logger/logger.js'][375] = 0;
  _$jscoverage['build/logger/logger.js'][376] = 0;
  _$jscoverage['build/logger/logger.js'][385] = 0;
  _$jscoverage['build/logger/logger.js'][386] = 0;
  _$jscoverage['build/logger/logger.js'][395] = 0;
  _$jscoverage['build/logger/logger.js'][396] = 0;
  _$jscoverage['build/logger/logger.js'][397] = 0;
  _$jscoverage['build/logger/logger.js'][406] = 0;
  _$jscoverage['build/logger/logger.js'][407] = 0;
  _$jscoverage['build/logger/logger.js'][408] = 0;
  _$jscoverage['build/logger/logger.js'][418] = 0;
  _$jscoverage['build/logger/logger.js'][419] = 0;
  _$jscoverage['build/logger/logger.js'][421] = 0;
  _$jscoverage['build/logger/logger.js'][422] = 0;
  _$jscoverage['build/logger/logger.js'][424] = 0;
  _$jscoverage['build/logger/logger.js'][425] = 0;
  _$jscoverage['build/logger/logger.js'][426] = 0;
  _$jscoverage['build/logger/logger.js'][429] = 0;
  _$jscoverage['build/logger/logger.js'][440] = 0;
  _$jscoverage['build/logger/logger.js'][441] = 0;
  _$jscoverage['build/logger/logger.js'][443] = 0;
  _$jscoverage['build/logger/logger.js'][444] = 0;
  _$jscoverage['build/logger/logger.js'][445] = 0;
  _$jscoverage['build/logger/logger.js'][448] = 0;
  _$jscoverage['build/logger/logger.js'][450] = 0;
  _$jscoverage['build/logger/logger.js'][451] = 0;
  _$jscoverage['build/logger/logger.js'][454] = 0;
  _$jscoverage['build/logger/logger.js'][470] = 0;
  _$jscoverage['build/logger/logger.js'][479] = 0;
  _$jscoverage['build/logger/logger.js'][488] = 0;
  _$jscoverage['build/logger/logger.js'][495] = 0;
  _$jscoverage['build/logger/logger.js'][510] = 0;
  _$jscoverage['build/logger/logger.js'][511] = 0;
  _$jscoverage['build/logger/logger.js'][512] = 0;
  _$jscoverage['build/logger/logger.js'][523] = 0;
  _$jscoverage['build/logger/logger.js'][524] = 0;
  _$jscoverage['build/logger/logger.js'][525] = 0;
  _$jscoverage['build/logger/logger.js'][526] = 0;
  _$jscoverage['build/logger/logger.js'][529] = 0;
  _$jscoverage['build/logger/logger.js'][539] = 0;
  _$jscoverage['build/logger/logger.js'][540] = 0;
  _$jscoverage['build/logger/logger.js'][541] = 0;
  _$jscoverage['build/logger/logger.js'][552] = 0;
  _$jscoverage['build/logger/logger.js'][553] = 0;
  _$jscoverage['build/logger/logger.js'][554] = 0;
  _$jscoverage['build/logger/logger.js'][555] = 0;
  _$jscoverage['build/logger/logger.js'][556] = 0;
  _$jscoverage['build/logger/logger.js'][559] = 0;
  _$jscoverage['build/logger/logger.js'][570] = 0;
  _$jscoverage['build/logger/logger.js'][571] = 0;
  _$jscoverage['build/logger/logger.js'][572] = 0;
  _$jscoverage['build/logger/logger.js'][573] = 0;
  _$jscoverage['build/logger/logger.js'][575] = 0;
  _$jscoverage['build/logger/logger.js'][576] = 0;
  _$jscoverage['build/logger/logger.js'][577] = 0;
  _$jscoverage['build/logger/logger.js'][578] = 0;
  _$jscoverage['build/logger/logger.js'][581] = 0;
  _$jscoverage['build/logger/logger.js'][584] = 0;
  _$jscoverage['build/logger/logger.js'][585] = 0;
  _$jscoverage['build/logger/logger.js'][587] = 0;
  _$jscoverage['build/logger/logger.js'][589] = 0;
  _$jscoverage['build/logger/logger.js'][595] = 0;
  _$jscoverage['build/logger/logger.js'][596] = 0;
  _$jscoverage['build/logger/logger.js'][599] = 0;
  _$jscoverage['build/logger/logger.js'][618] = 0;
  _$jscoverage['build/logger/logger.js'][620] = 0;
  _$jscoverage['build/logger/logger.js'][621] = 0;
  _$jscoverage['build/logger/logger.js'][622] = 0;
  _$jscoverage['build/logger/logger.js'][623] = 0;
  _$jscoverage['build/logger/logger.js'][627] = 0;
  _$jscoverage['build/logger/logger.js'][637] = 0;
  _$jscoverage['build/logger/logger.js'][643] = 0;
  _$jscoverage['build/logger/logger.js'][644] = 0;
  _$jscoverage['build/logger/logger.js'][650] = 0;
  _$jscoverage['build/logger/logger.js'][651] = 0;
  _$jscoverage['build/logger/logger.js'][652] = 0;
  _$jscoverage['build/logger/logger.js'][653] = 0;
  _$jscoverage['build/logger/logger.js'][654] = 0;
  _$jscoverage['build/logger/logger.js'][655] = 0;
  _$jscoverage['build/logger/logger.js'][659] = 0;
  _$jscoverage['build/logger/logger.js'][671] = 0;
  _$jscoverage['build/logger/logger.js'][672] = 0;
  _$jscoverage['build/logger/logger.js'][673] = 0;
  _$jscoverage['build/logger/logger.js'][675] = 0;
  _$jscoverage['build/logger/logger.js'][685] = 0;
  _$jscoverage['build/logger/logger.js'][686] = 0;
  _$jscoverage['build/logger/logger.js'][695] = 0;
  _$jscoverage['build/logger/logger.js'][715] = 0;
  _$jscoverage['build/logger/logger.js'][741] = 0;
  _$jscoverage['build/logger/logger.js'][923] = 0;
  _$jscoverage['build/logger/logger.js'][932] = 0;
  _$jscoverage['build/logger/logger.js'][933] = 0;
  _$jscoverage['build/logger/logger.js'][934] = 0;
  _$jscoverage['build/logger/logger.js'][935] = 0;
  _$jscoverage['build/logger/logger.js'][936] = 0;
  _$jscoverage['build/logger/logger.js'][947] = 0;
  _$jscoverage['build/logger/logger.js'][948] = 0;
  _$jscoverage['build/logger/logger.js'][949] = 0;
  _$jscoverage['build/logger/logger.js'][950] = 0;
  _$jscoverage['build/logger/logger.js'][951] = 0;
  _$jscoverage['build/logger/logger.js'][962] = 0;
  _$jscoverage['build/logger/logger.js'][963] = 0;
  _$jscoverage['build/logger/logger.js'][966] = 0;
  _$jscoverage['build/logger/logger.js'][968] = 0;
  _$jscoverage['build/logger/logger.js'][969] = 0;
  _$jscoverage['build/logger/logger.js'][970] = 0;
  _$jscoverage['build/logger/logger.js'][972] = 0;
  _$jscoverage['build/logger/logger.js'][973] = 0;
  _$jscoverage['build/logger/logger.js'][975] = 0;
  _$jscoverage['build/logger/logger.js'][978] = 0;
  _$jscoverage['build/logger/logger.js'][979] = 0;
  _$jscoverage['build/logger/logger.js'][981] = 0;
  _$jscoverage['build/logger/logger.js'][982] = 0;
  _$jscoverage['build/logger/logger.js'][984] = 0;
  _$jscoverage['build/logger/logger.js'][986] = 0;
  _$jscoverage['build/logger/logger.js'][996] = 0;
  _$jscoverage['build/logger/logger.js'][997] = 0;
  _$jscoverage['build/logger/logger.js'][998] = 0;
  _$jscoverage['build/logger/logger.js'][1000] = 0;
  _$jscoverage['build/logger/logger.js'][1009] = 0;
  _$jscoverage['build/logger/logger.js'][1018] = 0;
  _$jscoverage['build/logger/logger.js'][1027] = 0;
  _$jscoverage['build/logger/logger.js'][1028] = 0;
  _$jscoverage['build/logger/logger.js'][1029] = 0;
  _$jscoverage['build/logger/logger.js'][1031] = 0;
  _$jscoverage['build/logger/logger.js'][1032] = 0;
  _$jscoverage['build/logger/logger.js'][1041] = 0;
  _$jscoverage['build/logger/logger.js'][1042] = 0;
  _$jscoverage['build/logger/logger.js'][1043] = 0;
  _$jscoverage['build/logger/logger.js'][1045] = 0;
  _$jscoverage['build/logger/logger.js'][1046] = 0;
  _$jscoverage['build/logger/logger.js'][1057] = 0;
  _$jscoverage['build/logger/logger.js'][1067] = 0;
  _$jscoverage['build/logger/logger.js'][1077] = 0;
  _$jscoverage['build/logger/logger.js'][1080] = 0;
  _$jscoverage['build/logger/logger.js'][1081] = 0;
  _$jscoverage['build/logger/logger.js'][1082] = 0;
  _$jscoverage['build/logger/logger.js'][1087] = 0;
  _$jscoverage['build/logger/logger.js'][1088] = 0;
  _$jscoverage['build/logger/logger.js'][1089] = 0;
  _$jscoverage['build/logger/logger.js'][1094] = 0;
  _$jscoverage['build/logger/logger.js'][1095] = 0;
  _$jscoverage['build/logger/logger.js'][1096] = 0;
  _$jscoverage['build/logger/logger.js'][1097] = 0;
  _$jscoverage['build/logger/logger.js'][1098] = 0;
  _$jscoverage['build/logger/logger.js'][1109] = 0;
  _$jscoverage['build/logger/logger.js'][1110] = 0;
  _$jscoverage['build/logger/logger.js'][1111] = 0;
  _$jscoverage['build/logger/logger.js'][1112] = 0;
  _$jscoverage['build/logger/logger.js'][1113] = 0;
  _$jscoverage['build/logger/logger.js'][1116] = 0;
  _$jscoverage['build/logger/logger.js'][1117] = 0;
  _$jscoverage['build/logger/logger.js'][1118] = 0;
  _$jscoverage['build/logger/logger.js'][1119] = 0;
  _$jscoverage['build/logger/logger.js'][1130] = 0;
  _$jscoverage['build/logger/logger.js'][1140] = 0;
  _$jscoverage['build/logger/logger.js'][1143] = 0;
  _$jscoverage['build/logger/logger.js'][1144] = 0;
  _$jscoverage['build/logger/logger.js'][1145] = 0;
  _$jscoverage['build/logger/logger.js'][1150] = 0;
  _$jscoverage['build/logger/logger.js'][1151] = 0;
  _$jscoverage['build/logger/logger.js'][1152] = 0;
  _$jscoverage['build/logger/logger.js'][1156] = 0;
  _$jscoverage['build/logger/logger.js'][1157] = 0;
  _$jscoverage['build/logger/logger.js'][1158] = 0;
  _$jscoverage['build/logger/logger.js'][1159] = 0;
  _$jscoverage['build/logger/logger.js'][1160] = 0;
  _$jscoverage['build/logger/logger.js'][1171] = 0;
  _$jscoverage['build/logger/logger.js'][1172] = 0;
  _$jscoverage['build/logger/logger.js'][1173] = 0;
  _$jscoverage['build/logger/logger.js'][1174] = 0;
  _$jscoverage['build/logger/logger.js'][1175] = 0;
  _$jscoverage['build/logger/logger.js'][1178] = 0;
  _$jscoverage['build/logger/logger.js'][1179] = 0;
  _$jscoverage['build/logger/logger.js'][1180] = 0;
  _$jscoverage['build/logger/logger.js'][1181] = 0;
  _$jscoverage['build/logger/logger.js'][1195] = 0;
  _$jscoverage['build/logger/logger.js'][1196] = 0;
  _$jscoverage['build/logger/logger.js'][1197] = 0;
  _$jscoverage['build/logger/logger.js'][1199] = 0;
  _$jscoverage['build/logger/logger.js'][1200] = 0;
  _$jscoverage['build/logger/logger.js'][1210] = 0;
  _$jscoverage['build/logger/logger.js'][1220] = 0;
  _$jscoverage['build/logger/logger.js'][1224] = 0;
  _$jscoverage['build/logger/logger.js'][1242] = 0;
  _$jscoverage['build/logger/logger.js'][1243] = 0;
  _$jscoverage['build/logger/logger.js'][1250] = 0;
  _$jscoverage['build/logger/logger.js'][1252] = 0;
  _$jscoverage['build/logger/logger.js'][1255] = 0;
  _$jscoverage['build/logger/logger.js'][1256] = 0;
  _$jscoverage['build/logger/logger.js'][1257] = 0;
  _$jscoverage['build/logger/logger.js'][1261] = 0;
  _$jscoverage['build/logger/logger.js'][1263] = 0;
  _$jscoverage['build/logger/logger.js'][1266] = 0;
  _$jscoverage['build/logger/logger.js'][1277] = 0;
  _$jscoverage['build/logger/logger.js'][1278] = 0;
  _$jscoverage['build/logger/logger.js'][1279] = 0;
  _$jscoverage['build/logger/logger.js'][1283] = 0;
  _$jscoverage['build/logger/logger.js'][1501] = 0;
  _$jscoverage['build/logger/logger.js'][1502] = 0;
  _$jscoverage['build/logger/logger.js'][1503] = 0;
  _$jscoverage['build/logger/logger.js'][1506] = 0;
  _$jscoverage['build/logger/logger.js'][1507] = 0;
  _$jscoverage['build/logger/logger.js'][1508] = 0;
  _$jscoverage['build/logger/logger.js'][1509] = 0;
  _$jscoverage['build/logger/logger.js'][1514] = 0;
  _$jscoverage['build/logger/logger.js'][1516] = 0;
  _$jscoverage['build/logger/logger.js'][1528] = 0;
  _$jscoverage['build/logger/logger.js'][1529] = 0;
  _$jscoverage['build/logger/logger.js'][1531] = 0;
  _$jscoverage['build/logger/logger.js'][1534] = 0;
  _$jscoverage['build/logger/logger.js'][1537] = 0;
  _$jscoverage['build/logger/logger.js'][1541] = 0;
  _$jscoverage['build/logger/logger.js'][1542] = 0;
  _$jscoverage['build/logger/logger.js'][1543] = 0;
  _$jscoverage['build/logger/logger.js'][1544] = 0;
  _$jscoverage['build/logger/logger.js'][1548] = 0;
  _$jscoverage['build/logger/logger.js'][1549] = 0;
  _$jscoverage['build/logger/logger.js'][1550] = 0;
  _$jscoverage['build/logger/logger.js'][1552] = 0;
  _$jscoverage['build/logger/logger.js'][1553] = 0;
  _$jscoverage['build/logger/logger.js'][1554] = 0;
  _$jscoverage['build/logger/logger.js'][1558] = 0;
  _$jscoverage['build/logger/logger.js'][1559] = 0;
  _$jscoverage['build/logger/logger.js'][1572] = 0;
  _$jscoverage['build/logger/logger.js'][1574] = 0;
  _$jscoverage['build/logger/logger.js'][1577] = 0;
  _$jscoverage['build/logger/logger.js'][1582] = 0;
  _$jscoverage['build/logger/logger.js'][1587] = 0;
  _$jscoverage['build/logger/logger.js'][1589] = 0;
  _$jscoverage['build/logger/logger.js'][1594] = 0;
  _$jscoverage['build/logger/logger.js'][1597] = 0;
  _$jscoverage['build/logger/logger.js'][1599] = 0;
  _$jscoverage['build/logger/logger.js'][1600] = 0;
  _$jscoverage['build/logger/logger.js'][1601] = 0;
  _$jscoverage['build/logger/logger.js'][1602] = 0;
  _$jscoverage['build/logger/logger.js'][1613] = 0;
  _$jscoverage['build/logger/logger.js'][1615] = 0;
  _$jscoverage['build/logger/logger.js'][1618] = 0;
  _$jscoverage['build/logger/logger.js'][1622] = 0;
  _$jscoverage['build/logger/logger.js'][1625] = 0;
  _$jscoverage['build/logger/logger.js'][1626] = 0;
  _$jscoverage['build/logger/logger.js'][1629] = 0;
  _$jscoverage['build/logger/logger.js'][1640] = 0;
  _$jscoverage['build/logger/logger.js'][1642] = 0;
  _$jscoverage['build/logger/logger.js'][1644] = 0;
  _$jscoverage['build/logger/logger.js'][1647] = 0;
  _$jscoverage['build/logger/logger.js'][1651] = 0;
  _$jscoverage['build/logger/logger.js'][1652] = 0;
  _$jscoverage['build/logger/logger.js'][1653] = 0;
  _$jscoverage['build/logger/logger.js'][1659] = 0;
  _$jscoverage['build/logger/logger.js'][1661] = 0;
  _$jscoverage['build/logger/logger.js'][1667] = 0;
  _$jscoverage['build/logger/logger.js'][1669] = 0;
  _$jscoverage['build/logger/logger.js'][1670] = 0;
  _$jscoverage['build/logger/logger.js'][1672] = 0;
  _$jscoverage['build/logger/logger.js'][1673] = 0;
  _$jscoverage['build/logger/logger.js'][1674] = 0;
  _$jscoverage['build/logger/logger.js'][1675] = 0;
  _$jscoverage['build/logger/logger.js'][1676] = 0;
  _$jscoverage['build/logger/logger.js'][1677] = 0;
  _$jscoverage['build/logger/logger.js'][1691] = 0;
  _$jscoverage['build/logger/logger.js'][1692] = 0;
  _$jscoverage['build/logger/logger.js'][1693] = 0;
  _$jscoverage['build/logger/logger.js'][1695] = 0;
  _$jscoverage['build/logger/logger.js'][1707] = 0;
  _$jscoverage['build/logger/logger.js'][1708] = 0;
  _$jscoverage['build/logger/logger.js'][1710] = 0;
  _$jscoverage['build/logger/logger.js'][1711] = 0;
  _$jscoverage['build/logger/logger.js'][1714] = 0;
  _$jscoverage['build/logger/logger.js'][1717] = 0;
  _$jscoverage['build/logger/logger.js'][1718] = 0;
  _$jscoverage['build/logger/logger.js'][1731] = 0;
  _$jscoverage['build/logger/logger.js'][1732] = 0;
  _$jscoverage['build/logger/logger.js'][1734] = 0;
  _$jscoverage['build/logger/logger.js'][1735] = 0;
  _$jscoverage['build/logger/logger.js'][1738] = 0;
  _$jscoverage['build/logger/logger.js'][1741] = 0;
  _$jscoverage['build/logger/logger.js'][1742] = 0;
  _$jscoverage['build/logger/logger.js'][1755] = 0;
  _$jscoverage['build/logger/logger.js'][1756] = 0;
  _$jscoverage['build/logger/logger.js'][1771] = 0;
  _$jscoverage['build/logger/logger.js'][1773] = 0;
  _$jscoverage['build/logger/logger.js'][1777] = 0;
  _$jscoverage['build/logger/logger.js'][1778] = 0;
  _$jscoverage['build/logger/logger.js'][1779] = 0;
  _$jscoverage['build/logger/logger.js'][1780] = 0;
  _$jscoverage['build/logger/logger.js'][1792] = 0;
  _$jscoverage['build/logger/logger.js'][1793] = 0;
  _$jscoverage['build/logger/logger.js'][1808] = 0;
  _$jscoverage['build/logger/logger.js'][1810] = 0;
  _$jscoverage['build/logger/logger.js'][1814] = 0;
  _$jscoverage['build/logger/logger.js'][1815] = 0;
  _$jscoverage['build/logger/logger.js'][1816] = 0;
  _$jscoverage['build/logger/logger.js'][1817] = 0;
  _$jscoverage['build/logger/logger.js'][1829] = 0;
  _$jscoverage['build/logger/logger.js'][1830] = 0;
  _$jscoverage['build/logger/logger.js'][1831] = 0;
  _$jscoverage['build/logger/logger.js'][1842] = 0;
  _$jscoverage['build/logger/logger.js'][1844] = 0;
  _$jscoverage['build/logger/logger.js'][1845] = 0;
  _$jscoverage['build/logger/logger.js'][1846] = 0;
  _$jscoverage['build/logger/logger.js'][1847] = 0;
  _$jscoverage['build/logger/logger.js'][1848] = 0;
  _$jscoverage['build/logger/logger.js'][1849] = 0;
  _$jscoverage['build/logger/logger.js'][1850] = 0;
  _$jscoverage['build/logger/logger.js'][1852] = 0;
  _$jscoverage['build/logger/logger.js'][1853] = 0;
  _$jscoverage['build/logger/logger.js'][1856] = 0;
  _$jscoverage['build/logger/logger.js'][1859] = 0;
  _$jscoverage['build/logger/logger.js'][1860] = 0;
  _$jscoverage['build/logger/logger.js'][1875] = 0;
  _$jscoverage['build/logger/logger.js'][1884] = 0;
  _$jscoverage['build/logger/logger.js'][1885] = 0;
  _$jscoverage['build/logger/logger.js'][1887] = 0;
  _$jscoverage['build/logger/logger.js'][1890] = 0;
  _$jscoverage['build/logger/logger.js'][1892] = 0;
  _$jscoverage['build/logger/logger.js'][1898] = 0;
  _$jscoverage['build/logger/logger.js'][1899] = 0;
  _$jscoverage['build/logger/logger.js'][1900] = 0;
  _$jscoverage['build/logger/logger.js'][1901] = 0;
  _$jscoverage['build/logger/logger.js'][1904] = 0;
  _$jscoverage['build/logger/logger.js'][1905] = 0;
  _$jscoverage['build/logger/logger.js'][1906] = 0;
  _$jscoverage['build/logger/logger.js'][1907] = 0;
  _$jscoverage['build/logger/logger.js'][1908] = 0;
  _$jscoverage['build/logger/logger.js'][1912] = 0;
  _$jscoverage['build/logger/logger.js'][1914] = 0;
  _$jscoverage['build/logger/logger.js'][1915] = 0;
  _$jscoverage['build/logger/logger.js'][1918] = 0;
  _$jscoverage['build/logger/logger.js'][1919] = 0;
  _$jscoverage['build/logger/logger.js'][1920] = 0;
  _$jscoverage['build/logger/logger.js'][1922] = 0;
  _$jscoverage['build/logger/logger.js'][1925] = 0;
  _$jscoverage['build/logger/logger.js'][1926] = 0;
  _$jscoverage['build/logger/logger.js'][1930] = 0;
  _$jscoverage['build/logger/logger.js'][1931] = 0;
  _$jscoverage['build/logger/logger.js'][1932] = 0;
  _$jscoverage['build/logger/logger.js'][1935] = 0;
  _$jscoverage['build/logger/logger.js'][1936] = 0;
  _$jscoverage['build/logger/logger.js'][1957] = 0;
  _$jscoverage['build/logger/logger.js'][1960] = 0;
  _$jscoverage['build/logger/logger.js'][1962] = 0;
  _$jscoverage['build/logger/logger.js'][1963] = 0;
  _$jscoverage['build/logger/logger.js'][1977] = 0;
  _$jscoverage['build/logger/logger.js'][1980] = 0;
  _$jscoverage['build/logger/logger.js'][1982] = 0;
  _$jscoverage['build/logger/logger.js'][1983] = 0;
  _$jscoverage['build/logger/logger.js'][1996] = 0;
  _$jscoverage['build/logger/logger.js'][1997] = 0;
  _$jscoverage['build/logger/logger.js'][1998] = 0;
  _$jscoverage['build/logger/logger.js'][2001] = 0;
  _$jscoverage['build/logger/logger.js'][2014] = 0;
  _$jscoverage['build/logger/logger.js'][2015] = 0;
  _$jscoverage['build/logger/logger.js'][2016] = 0;
  _$jscoverage['build/logger/logger.js'][2019] = 0;
  _$jscoverage['build/logger/logger.js'][2032] = 0;
  _$jscoverage['build/logger/logger.js'][2033] = 0;
  _$jscoverage['build/logger/logger.js'][2036] = 0;
  _$jscoverage['build/logger/logger.js'][2049] = 0;
  _$jscoverage['build/logger/logger.js'][2050] = 0;
  _$jscoverage['build/logger/logger.js'][2053] = 0;
  _$jscoverage['build/logger/logger.js'][2066] = 0;
  _$jscoverage['build/logger/logger.js'][2079] = 0;
  _$jscoverage['build/logger/logger.js'][2080] = 0;
  _$jscoverage['build/logger/logger.js'][2082] = 0;
  _$jscoverage['build/logger/logger.js'][2083] = 0;
  _$jscoverage['build/logger/logger.js'][2097] = 0;
  _$jscoverage['build/logger/logger.js'][2101] = 0;
  _$jscoverage['build/logger/logger.js'][2104] = 0;
}
_$jscoverage['build/logger/logger.js'].source = ["<span class=\"c\">/*</span>","<span class=\"c\">Copyright (c) 2009, Yahoo! Inc. All rights reserved.</span>","<span class=\"c\">Code licensed under the BSD License:</span>","<span class=\"c\">http://developer.yahoo.net/yui/license.txt</span>","<span class=\"c\">version: 2.8.0r4</span>","<span class=\"c\">*/</span>","<span class=\"c\">/****************************************************************************/</span>","<span class=\"c\">/****************************************************************************/</span>","<span class=\"c\">/****************************************************************************/</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * The LogMsg class defines a single log message.</span>","<span class=\"c\"> *</span>","<span class=\"c\"> * @class LogMsg</span>","<span class=\"c\"> * @constructor</span>","<span class=\"c\"> * @param oConfigs {Object} Object literal of configuration params.</span>","<span class=\"c\"> */</span>","YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>LogMsg <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>oConfigs<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"c\">// Parse configs</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * Log message.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property msg</span>","<span class=\"c\">     * @type String</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>msg <span class=\"k\">=</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * Log timestamp.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property time</span>","<span class=\"c\">     * @type Date</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>time <span class=\"k\">=</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Log category.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property category</span>","<span class=\"c\">     * @type String</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>category <span class=\"k\">=</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Log source. The first word passed in as the source argument.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property source</span>","<span class=\"c\">     * @type String</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>source <span class=\"k\">=</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Log source detail. The remainder of the string passed in as the source argument, not</span>","<span class=\"c\">     * including the first word (if any).</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property sourceDetail</span>","<span class=\"c\">     * @type String</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>sourceDetail <span class=\"k\">=</span> <span class=\"k\">null</span><span class=\"k\">;</span>","","    <span class=\"k\">if</span> <span class=\"k\">(</span>oConfigs <span class=\"k\">&amp;&amp;</span> <span class=\"k\">(</span>oConfigs<span class=\"k\">.</span>constructor <span class=\"k\">==</span> Object<span class=\"k\">))</span> <span class=\"k\">{</span>","        <span class=\"k\">for</span><span class=\"k\">(</span><span class=\"k\">var</span> param <span class=\"k\">in</span> oConfigs<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>oConfigs<span class=\"k\">.</span>hasOwnProperty<span class=\"k\">(</span>param<span class=\"k\">))</span> <span class=\"k\">{</span>","                <span class=\"k\">this</span><span class=\"k\">[</span>param<span class=\"k\">]</span> <span class=\"k\">=</span> oConfigs<span class=\"k\">[</span>param<span class=\"k\">];</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span>","<span class=\"k\">}</span><span class=\"k\">;</span>","<span class=\"c\">/****************************************************************************/</span>","<span class=\"c\">/****************************************************************************/</span>","<span class=\"c\">/****************************************************************************/</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * The LogWriter class provides a mechanism to log messages through</span>","<span class=\"c\"> * YAHOO.widget.Logger from a named source.</span>","<span class=\"c\"> *</span>","<span class=\"c\"> * @class LogWriter</span>","<span class=\"c\"> * @constructor</span>","<span class=\"c\"> * @param sSource {String} Source of LogWriter instance.</span>","<span class=\"c\"> */</span>","YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>LogWriter <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>sSource<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">if</span><span class=\"k\">(!</span>sSource<span class=\"k\">)</span> <span class=\"k\">{</span>","        YAHOO<span class=\"k\">.</span>log<span class=\"k\">(</span><span class=\"s\">\"Could not instantiate LogWriter due to invalid source.\"</span><span class=\"k\">,</span>","            <span class=\"s\">\"error\"</span><span class=\"k\">,</span> <span class=\"s\">\"LogWriter\"</span><span class=\"k\">);</span>","        <span class=\"k\">return</span><span class=\"k\">;</span>","    <span class=\"k\">}</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>_source <span class=\"k\">=</span> sSource<span class=\"k\">;</span>"," <span class=\"k\">}</span><span class=\"k\">;</span>","","<span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","<span class=\"c\">//</span>","<span class=\"c\">// Public methods</span>","<span class=\"c\">//</span>","<span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>",""," <span class=\"c\">/**</span>","<span class=\"c\"> * Public accessor to the unique name of the LogWriter instance.</span>","<span class=\"c\"> *</span>","<span class=\"c\"> * @method toString</span>","<span class=\"c\"> * @return {String} Unique name of the LogWriter instance.</span>","<span class=\"c\"> */</span>","YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>LogWriter<span class=\"k\">.</span>prototype<span class=\"k\">.</span>toString <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","    <span class=\"k\">return</span> <span class=\"s\">\"LogWriter \"</span> <span class=\"k\">+</span> <span class=\"k\">this</span><span class=\"k\">.</span>_sSource<span class=\"k\">;</span>","<span class=\"k\">}</span><span class=\"k\">;</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Logs a message attached to the source of the LogWriter.</span>","<span class=\"c\"> *</span>","<span class=\"c\"> * @method log</span>","<span class=\"c\"> * @param sMsg {String} The log message.</span>","<span class=\"c\"> * @param sCategory {String} Category name.</span>","<span class=\"c\"> */</span>","YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>LogWriter<span class=\"k\">.</span>prototype<span class=\"k\">.</span>log <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>sMsg<span class=\"k\">,</span> sCategory<span class=\"k\">)</span> <span class=\"k\">{</span>","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>log<span class=\"k\">(</span>sMsg<span class=\"k\">,</span> sCategory<span class=\"k\">,</span> <span class=\"k\">this</span><span class=\"k\">.</span>_source<span class=\"k\">);</span>","<span class=\"k\">}</span><span class=\"k\">;</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Public accessor to get the source name.</span>","<span class=\"c\"> *</span>","<span class=\"c\"> * @method getSource</span>","<span class=\"c\"> * @return {String} The LogWriter source.</span>","<span class=\"c\"> */</span>","YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>LogWriter<span class=\"k\">.</span>prototype<span class=\"k\">.</span>getSource <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","    <span class=\"k\">return</span> <span class=\"k\">this</span><span class=\"k\">.</span>_source<span class=\"k\">;</span>","<span class=\"k\">}</span><span class=\"k\">;</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Public accessor to set the source name.</span>","<span class=\"c\"> *</span>","<span class=\"c\"> * @method setSource</span>","<span class=\"c\"> * @param sSource {String} Source of LogWriter instance.</span>","<span class=\"c\"> */</span>","YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>LogWriter<span class=\"k\">.</span>prototype<span class=\"k\">.</span>setSource <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>sSource<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">if</span><span class=\"k\">(!</span>sSource<span class=\"k\">)</span> <span class=\"k\">{</span>","        YAHOO<span class=\"k\">.</span>log<span class=\"k\">(</span><span class=\"s\">\"Could not set source due to invalid source.\"</span><span class=\"k\">,</span> <span class=\"s\">\"error\"</span><span class=\"k\">,</span> <span class=\"k\">this</span><span class=\"k\">.</span>toString<span class=\"k\">());</span>","        <span class=\"k\">return</span><span class=\"k\">;</span>","    <span class=\"k\">}</span>","    <span class=\"k\">else</span> <span class=\"k\">{</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_source <span class=\"k\">=</span> sSource<span class=\"k\">;</span>","    <span class=\"k\">}</span>","<span class=\"k\">}</span><span class=\"k\">;</span>","","<span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","<span class=\"c\">//</span>","<span class=\"c\">// Private member variables</span>","<span class=\"c\">//</span>","<span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Source of the LogWriter instance.</span>","<span class=\"c\"> *</span>","<span class=\"c\"> * @property _source</span>","<span class=\"c\"> * @type String</span>","<span class=\"c\"> * @private</span>","<span class=\"c\"> */</span>","YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>LogWriter<span class=\"k\">.</span>prototype<span class=\"k\">.</span>_source <span class=\"k\">=</span> <span class=\"k\">null</span><span class=\"k\">;</span>","","",""," <span class=\"c\">/**</span>","<span class=\"c\"> * The Logger widget provides a simple way to read or write log messages in</span>","<span class=\"c\"> * JavaScript code. Integration with the YUI Library's debug builds allow</span>","<span class=\"c\"> * implementers to access under-the-hood events, errors, and debugging messages.</span>","<span class=\"c\"> * Output may be read through a LogReader console and/or output to a browser</span>","<span class=\"c\"> * console.</span>","<span class=\"c\"> *</span>","<span class=\"c\"> * @module logger</span>","<span class=\"c\"> * @requires yahoo, event, dom</span>","<span class=\"c\"> * @optional dragdrop</span>","<span class=\"c\"> * @namespace YAHOO.widget</span>","<span class=\"c\"> * @title Logger Widget</span>","<span class=\"c\"> */</span>","","<span class=\"c\">/****************************************************************************/</span>","<span class=\"c\">/****************************************************************************/</span>","<span class=\"c\">/****************************************************************************/</span>","","<span class=\"c\">// Define once</span>","<span class=\"k\">if</span><span class=\"k\">(!</span>YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * The singleton Logger class provides core log management functionality. Saves</span>","<span class=\"c\">     * logs written through the global YAHOO.log function or written by a LogWriter</span>","<span class=\"c\">     * instance. Provides access to logs for reading by a LogReader instance or</span>","<span class=\"c\">     * native browser console such as the Firebug extension to Firefox or Safari's</span>","<span class=\"c\">     * JavaScript console through integration with the console.log() method.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @class Logger</span>","<span class=\"c\">     * @static</span>","<span class=\"c\">     */</span>","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger <span class=\"k\">=</span> <span class=\"k\">{</span>","        <span class=\"c\">// Initialize properties</span>","        loggerEnabled<span class=\"k\">:</span> <span class=\"k\">true</span><span class=\"k\">,</span>","        _browserConsoleEnabled<span class=\"k\">:</span> <span class=\"k\">false</span><span class=\"k\">,</span>","        categories<span class=\"k\">:</span> <span class=\"k\">[</span><span class=\"s\">\"info\"</span><span class=\"k\">,</span><span class=\"s\">\"warn\"</span><span class=\"k\">,</span><span class=\"s\">\"error\"</span><span class=\"k\">,</span><span class=\"s\">\"time\"</span><span class=\"k\">,</span><span class=\"s\">\"window\"</span><span class=\"k\">],</span>","        sources<span class=\"k\">:</span> <span class=\"k\">[</span><span class=\"s\">\"global\"</span><span class=\"k\">],</span>","        _stack<span class=\"k\">:</span> <span class=\"k\">[],</span> <span class=\"c\">// holds all log msgs</span>","        maxStackEntries<span class=\"k\">:</span> <span class=\"s\">2500</span><span class=\"k\">,</span>","        _startTime<span class=\"k\">:</span> <span class=\"k\">new</span> Date<span class=\"k\">().</span>getTime<span class=\"k\">(),</span> <span class=\"c\">// static start timestamp</span>","        _lastTime<span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span> <span class=\"c\">// timestamp of last logged message</span>","        _windowErrorsHandled<span class=\"k\">:</span> <span class=\"k\">false</span><span class=\"k\">,</span>","        _origOnWindowError<span class=\"k\">:</span> <span class=\"k\">null</span>","    <span class=\"k\">}</span><span class=\"k\">;</span>","","    <span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","    <span class=\"c\">//</span>","    <span class=\"c\">// Public properties</span>","    <span class=\"c\">//</span>","    <span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * True if Logger is enabled, false otherwise.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property loggerEnabled</span>","<span class=\"c\">     * @type Boolean</span>","<span class=\"c\">     * @static</span>","<span class=\"c\">     * @default true</span>","<span class=\"c\">     */</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Array of categories.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property categories</span>","<span class=\"c\">     * @type String[]</span>","<span class=\"c\">     * @static</span>","<span class=\"c\">     * @default [\"info\",\"warn\",\"error\",\"time\",\"window\"]</span>","<span class=\"c\">     */</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Array of sources.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property sources</span>","<span class=\"c\">     * @type String[]</span>","<span class=\"c\">     * @static</span>","<span class=\"c\">     * @default [\"global\"]</span>","<span class=\"c\">     */</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Upper limit on size of internal stack.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property maxStackEntries</span>","<span class=\"c\">     * @type Number</span>","<span class=\"c\">     * @static</span>","<span class=\"c\">     * @default 2500</span>","<span class=\"c\">     */</span>","","    <span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","    <span class=\"c\">//</span>","    <span class=\"c\">// Private properties</span>","    <span class=\"c\">//</span>","    <span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * Internal property to track whether output to browser console is enabled.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _browserConsoleEnabled</span>","<span class=\"c\">     * @type Boolean</span>","<span class=\"c\">     * @static</span>","<span class=\"c\">     * @default false</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Array to hold all log messages.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _stack</span>","<span class=\"c\">     * @type Array</span>","<span class=\"c\">     * @static</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * Static timestamp of Logger initialization.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _startTime</span>","<span class=\"c\">     * @type Date</span>","<span class=\"c\">     * @static</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * Timestamp of last logged message.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _lastTime</span>","<span class=\"c\">     * @type Date</span>","<span class=\"c\">     * @static</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    <span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","    <span class=\"c\">//</span>","    <span class=\"c\">// Public methods</span>","    <span class=\"c\">//</span>","    <span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * Saves a log message to the stack and fires newLogEvent. If the log message is</span>","<span class=\"c\">     * assigned to an unknown category, creates a new category. If the log message is</span>","<span class=\"c\">     * from an unknown source, creates a new source.  If browser console is enabled,</span>","<span class=\"c\">     * outputs the log message to browser console.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method log</span>","<span class=\"c\">     * @param sMsg {String} The log message.</span>","<span class=\"c\">     * @param sCategory {String} Category of log message, or null.</span>","<span class=\"c\">     * @param sSource {String} Source of LogWriter, or null if global.</span>","<span class=\"c\">     */</span>","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>log <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>sMsg<span class=\"k\">,</span> sCategory<span class=\"k\">,</span> sSource<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">if</span><span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>loggerEnabled<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">if</span><span class=\"k\">(!</span>sCategory<span class=\"k\">)</span> <span class=\"k\">{</span>","                sCategory <span class=\"k\">=</span> <span class=\"s\">\"info\"</span><span class=\"k\">;</span> <span class=\"c\">// default category</span>","            <span class=\"k\">}</span>","            <span class=\"k\">else</span> <span class=\"k\">{</span>","                sCategory <span class=\"k\">=</span> sCategory<span class=\"k\">.</span>toLocaleLowerCase<span class=\"k\">();</span>","                <span class=\"k\">if</span><span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_isNewCategory<span class=\"k\">(</span>sCategory<span class=\"k\">))</span> <span class=\"k\">{</span>","                    <span class=\"k\">this</span><span class=\"k\">.</span>_createNewCategory<span class=\"k\">(</span>sCategory<span class=\"k\">);</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","            <span class=\"k\">var</span> sClass <span class=\"k\">=</span> <span class=\"s\">\"global\"</span><span class=\"k\">;</span> <span class=\"c\">// default source</span>","            <span class=\"k\">var</span> sDetail <span class=\"k\">=</span> <span class=\"k\">null</span><span class=\"k\">;</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>sSource<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">var</span> spaceIndex <span class=\"k\">=</span> sSource<span class=\"k\">.</span>indexOf<span class=\"k\">(</span><span class=\"s\">\" \"</span><span class=\"k\">);</span>","                <span class=\"k\">if</span><span class=\"k\">(</span>spaceIndex <span class=\"k\">&gt;</span> <span class=\"s\">0</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                    <span class=\"c\">// Substring until first space</span>","                    sClass <span class=\"k\">=</span> sSource<span class=\"k\">.</span>substring<span class=\"k\">(</span><span class=\"s\">0</span><span class=\"k\">,</span>spaceIndex<span class=\"k\">);</span>","                    <span class=\"c\">// The rest of the source</span>","                    sDetail <span class=\"k\">=</span> sSource<span class=\"k\">.</span>substring<span class=\"k\">(</span>spaceIndex<span class=\"k\">,</span>sSource<span class=\"k\">.</span>length<span class=\"k\">);</span>","                <span class=\"k\">}</span>","                <span class=\"k\">else</span> <span class=\"k\">{</span>","                    sClass <span class=\"k\">=</span> sSource<span class=\"k\">;</span>","                <span class=\"k\">}</span>","                <span class=\"k\">if</span><span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_isNewSource<span class=\"k\">(</span>sClass<span class=\"k\">))</span> <span class=\"k\">{</span>","                    <span class=\"k\">this</span><span class=\"k\">.</span>_createNewSource<span class=\"k\">(</span>sClass<span class=\"k\">);</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">var</span> timestamp <span class=\"k\">=</span> <span class=\"k\">new</span> Date<span class=\"k\">();</span>","            <span class=\"k\">var</span> logEntry <span class=\"k\">=</span> <span class=\"k\">new</span> YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>LogMsg<span class=\"k\">(</span><span class=\"k\">{</span>","                msg<span class=\"k\">:</span> sMsg<span class=\"k\">,</span>","                time<span class=\"k\">:</span> timestamp<span class=\"k\">,</span>","                category<span class=\"k\">:</span> sCategory<span class=\"k\">,</span>","                source<span class=\"k\">:</span> sClass<span class=\"k\">,</span>","                sourceDetail<span class=\"k\">:</span> sDetail","            <span class=\"k\">}</span><span class=\"k\">);</span>","","            <span class=\"k\">var</span> stack <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>_stack<span class=\"k\">;</span>","            <span class=\"k\">var</span> maxStackEntries <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>maxStackEntries<span class=\"k\">;</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>maxStackEntries <span class=\"k\">&amp;&amp;</span> <span class=\"k\">!</span>isNaN<span class=\"k\">(</span>maxStackEntries<span class=\"k\">)</span> <span class=\"k\">&amp;&amp;</span>","                <span class=\"k\">(</span>stack<span class=\"k\">.</span>length <span class=\"k\">&gt;=</span> maxStackEntries<span class=\"k\">))</span> <span class=\"k\">{</span>","                stack<span class=\"k\">.</span>shift<span class=\"k\">();</span>","            <span class=\"k\">}</span>","            stack<span class=\"k\">.</span>push<span class=\"k\">(</span>logEntry<span class=\"k\">);</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>newLogEvent<span class=\"k\">.</span>fire<span class=\"k\">(</span>logEntry<span class=\"k\">);</span>","","            <span class=\"k\">if</span><span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_browserConsoleEnabled<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">this</span><span class=\"k\">.</span>_printToBrowserConsole<span class=\"k\">(</span>logEntry<span class=\"k\">);</span>","            <span class=\"k\">}</span>","            <span class=\"k\">return</span> <span class=\"k\">true</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","        <span class=\"k\">else</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> <span class=\"k\">false</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">;</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Resets internal stack and startTime, enables Logger, and fires logResetEvent.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method reset</span>","<span class=\"c\">     */</span>","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>reset <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_stack <span class=\"k\">=</span> <span class=\"k\">[];</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_startTime <span class=\"k\">=</span> <span class=\"k\">new</span> Date<span class=\"k\">().</span>getTime<span class=\"k\">();</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>loggerEnabled <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>log<span class=\"k\">(</span><span class=\"s\">\"Logger reset\"</span><span class=\"k\">);</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>logResetEvent<span class=\"k\">.</span>fire<span class=\"k\">();</span>","    <span class=\"k\">}</span><span class=\"k\">;</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Public accessor to internal stack of log message objects.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method getStack</span>","<span class=\"c\">     * @return {Object[]} Array of log message objects.</span>","<span class=\"c\">     */</span>","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>getStack <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"k\">return</span> <span class=\"k\">this</span><span class=\"k\">.</span>_stack<span class=\"k\">;</span>","    <span class=\"k\">}</span><span class=\"k\">;</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Public accessor to internal start time.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method getStartTime</span>","<span class=\"c\">     * @return {Date} Internal date of when Logger singleton was initialized.</span>","<span class=\"c\">     */</span>","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>getStartTime <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"k\">return</span> <span class=\"k\">this</span><span class=\"k\">.</span>_startTime<span class=\"k\">;</span>","    <span class=\"k\">}</span><span class=\"k\">;</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Disables output to the browser's global console.log() function, which is used</span>","<span class=\"c\">     * by the Firebug extension to Firefox as well as Safari.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method disableBrowserConsole</span>","<span class=\"c\">     */</span>","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>disableBrowserConsole <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        YAHOO<span class=\"k\">.</span>log<span class=\"k\">(</span><span class=\"s\">\"Logger output to the function console.log() has been disabled.\"</span><span class=\"k\">);</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_browserConsoleEnabled <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","    <span class=\"k\">}</span><span class=\"k\">;</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Enables output to the browser's global console.log() function, which is used</span>","<span class=\"c\">     * by the Firebug extension to Firefox as well as Safari.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method enableBrowserConsole</span>","<span class=\"c\">     */</span>","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>enableBrowserConsole <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_browserConsoleEnabled <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","        YAHOO<span class=\"k\">.</span>log<span class=\"k\">(</span><span class=\"s\">\"Logger output to the function console.log() has been enabled.\"</span><span class=\"k\">);</span>","    <span class=\"k\">}</span><span class=\"k\">;</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Surpresses native JavaScript errors and outputs to console. By default,</span>","<span class=\"c\">     * Logger does not handle JavaScript window error events.</span>","<span class=\"c\">     * NB: Not all browsers support the window.onerror event.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method handleWindowErrors</span>","<span class=\"c\">     */</span>","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>handleWindowErrors <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"k\">if</span><span class=\"k\">(!</span>YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>_windowErrorsHandled<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"c\">// Save any previously defined handler to call</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>window<span class=\"k\">.</span>error<span class=\"k\">)</span> <span class=\"k\">{</span>","                YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>_origOnWindowError <span class=\"k\">=</span> window<span class=\"k\">.</span>onerror<span class=\"k\">;</span>","            <span class=\"k\">}</span>","            window<span class=\"k\">.</span>onerror <span class=\"k\">=</span> YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>_onWindowError<span class=\"k\">;</span>","            YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>_windowErrorsHandled <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","            YAHOO<span class=\"k\">.</span>log<span class=\"k\">(</span><span class=\"s\">\"Logger handling of window.onerror has been enabled.\"</span><span class=\"k\">);</span>","        <span class=\"k\">}</span>","        <span class=\"k\">else</span> <span class=\"k\">{</span>","            YAHOO<span class=\"k\">.</span>log<span class=\"k\">(</span><span class=\"s\">\"Logger handling of window.onerror had already been enabled.\"</span><span class=\"k\">);</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">;</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Unsurpresses native JavaScript errors. By default,</span>","<span class=\"c\">     * Logger does not handle JavaScript window error events.</span>","<span class=\"c\">     * NB: Not all browsers support the window.onerror event.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method unhandleWindowErrors</span>","<span class=\"c\">     */</span>","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>unhandleWindowErrors <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"k\">if</span><span class=\"k\">(</span>YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>_windowErrorsHandled<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"c\">// Revert to any previously defined handler to call</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>_origOnWindowError<span class=\"k\">)</span> <span class=\"k\">{</span>","                window<span class=\"k\">.</span>onerror <span class=\"k\">=</span> YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>_origOnWindowError<span class=\"k\">;</span>","                YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>_origOnWindowError <span class=\"k\">=</span> <span class=\"k\">null</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","            <span class=\"k\">else</span> <span class=\"k\">{</span>","                window<span class=\"k\">.</span>onerror <span class=\"k\">=</span> <span class=\"k\">null</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","            YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>_windowErrorsHandled <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","            YAHOO<span class=\"k\">.</span>log<span class=\"k\">(</span><span class=\"s\">\"Logger handling of window.onerror has been disabled.\"</span><span class=\"k\">);</span>","        <span class=\"k\">}</span>","        <span class=\"k\">else</span> <span class=\"k\">{</span>","            YAHOO<span class=\"k\">.</span>log<span class=\"k\">(</span><span class=\"s\">\"Logger handling of window.onerror had already been disabled.\"</span><span class=\"k\">);</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">;</span>","    ","    <span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","    <span class=\"c\">//</span>","    <span class=\"c\">// Public events</span>","    <span class=\"c\">//</span>","    <span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","","     <span class=\"c\">/**</span>","<span class=\"c\">     * Fired when a new category has been created.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @event categoryCreateEvent</span>","<span class=\"c\">     * @param sCategory {String} Category name.</span>","<span class=\"c\">     */</span>","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>categoryCreateEvent <span class=\"k\">=</span>","        <span class=\"k\">new</span> YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>CustomEvent<span class=\"k\">(</span><span class=\"s\">\"categoryCreate\"</span><span class=\"k\">,</span> <span class=\"k\">this</span><span class=\"k\">,</span> <span class=\"k\">true</span><span class=\"k\">);</span>","","     <span class=\"c\">/**</span>","<span class=\"c\">     * Fired when a new source has been named.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @event sourceCreateEvent</span>","<span class=\"c\">     * @param sSource {String} Source name.</span>","<span class=\"c\">     */</span>","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>sourceCreateEvent <span class=\"k\">=</span>","        <span class=\"k\">new</span> YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>CustomEvent<span class=\"k\">(</span><span class=\"s\">\"sourceCreate\"</span><span class=\"k\">,</span> <span class=\"k\">this</span><span class=\"k\">,</span> <span class=\"k\">true</span><span class=\"k\">);</span>","","     <span class=\"c\">/**</span>","<span class=\"c\">     * Fired when a new log message has been created.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @event newLogEvent</span>","<span class=\"c\">     * @param sMsg {String} Log message.</span>","<span class=\"c\">     */</span>","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>newLogEvent <span class=\"k\">=</span> <span class=\"k\">new</span> YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>CustomEvent<span class=\"k\">(</span><span class=\"s\">\"newLog\"</span><span class=\"k\">,</span> <span class=\"k\">this</span><span class=\"k\">,</span> <span class=\"k\">true</span><span class=\"k\">);</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Fired when the Logger has been reset has been created.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @event logResetEvent</span>","<span class=\"c\">     */</span>","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>logResetEvent <span class=\"k\">=</span> <span class=\"k\">new</span> YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>CustomEvent<span class=\"k\">(</span><span class=\"s\">\"logReset\"</span><span class=\"k\">,</span> <span class=\"k\">this</span><span class=\"k\">,</span> <span class=\"k\">true</span><span class=\"k\">);</span>","","    <span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","    <span class=\"c\">//</span>","    <span class=\"c\">// Private methods</span>","    <span class=\"c\">//</span>","    <span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Creates a new category of log messages and fires categoryCreateEvent.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _createNewCategory</span>","<span class=\"c\">     * @param sCategory {String} Category name.</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>_createNewCategory <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>sCategory<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>categories<span class=\"k\">.</span>push<span class=\"k\">(</span>sCategory<span class=\"k\">);</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>categoryCreateEvent<span class=\"k\">.</span>fire<span class=\"k\">(</span>sCategory<span class=\"k\">);</span>","    <span class=\"k\">}</span><span class=\"k\">;</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Checks to see if a category has already been created.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _isNewCategory</span>","<span class=\"c\">     * @param sCategory {String} Category name.</span>","<span class=\"c\">     * @return {Boolean} Returns true if category is unknown, else returns false.</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>_isNewCategory <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>sCategory<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">for</span><span class=\"k\">(</span><span class=\"k\">var</span> i<span class=\"k\">=</span><span class=\"s\">0</span><span class=\"k\">;</span> i <span class=\"k\">&lt;</span> <span class=\"k\">this</span><span class=\"k\">.</span>categories<span class=\"k\">.</span>length<span class=\"k\">;</span> i<span class=\"k\">++)</span> <span class=\"k\">{</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>sCategory <span class=\"k\">==</span> <span class=\"k\">this</span><span class=\"k\">.</span>categories<span class=\"k\">[</span>i<span class=\"k\">])</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> <span class=\"k\">false</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","        <span class=\"k\">return</span> <span class=\"k\">true</span><span class=\"k\">;</span>","    <span class=\"k\">}</span><span class=\"k\">;</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Creates a new source of log messages and fires sourceCreateEvent.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _createNewSource</span>","<span class=\"c\">     * @param sSource {String} Source name.</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>_createNewSource <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>sSource<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>sources<span class=\"k\">.</span>push<span class=\"k\">(</span>sSource<span class=\"k\">);</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>sourceCreateEvent<span class=\"k\">.</span>fire<span class=\"k\">(</span>sSource<span class=\"k\">);</span>","    <span class=\"k\">}</span><span class=\"k\">;</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Checks to see if a source already exists.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _isNewSource</span>","<span class=\"c\">     * @param sSource {String} Source name.</span>","<span class=\"c\">     * @return {Boolean} Returns true if source is unknown, else returns false.</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>_isNewSource <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>sSource<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">if</span><span class=\"k\">(</span>sSource<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">for</span><span class=\"k\">(</span><span class=\"k\">var</span> i<span class=\"k\">=</span><span class=\"s\">0</span><span class=\"k\">;</span> i <span class=\"k\">&lt;</span> <span class=\"k\">this</span><span class=\"k\">.</span>sources<span class=\"k\">.</span>length<span class=\"k\">;</span> i<span class=\"k\">++)</span> <span class=\"k\">{</span>","                <span class=\"k\">if</span><span class=\"k\">(</span>sSource <span class=\"k\">==</span> <span class=\"k\">this</span><span class=\"k\">.</span>sources<span class=\"k\">[</span>i<span class=\"k\">])</span> <span class=\"k\">{</span>","                    <span class=\"k\">return</span> <span class=\"k\">false</span><span class=\"k\">;</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","            <span class=\"k\">return</span> <span class=\"k\">true</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">;</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Outputs a log message to global console.log() function.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _printToBrowserConsole</span>","<span class=\"c\">     * @param oEntry {Object} Log entry object.</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>_printToBrowserConsole <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>oEntry<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">if</span><span class=\"k\">(</span>window<span class=\"k\">.</span>console <span class=\"k\">&amp;&amp;</span> console<span class=\"k\">.</span>log<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> category <span class=\"k\">=</span> oEntry<span class=\"k\">.</span>category<span class=\"k\">;</span>","            <span class=\"k\">var</span> label <span class=\"k\">=</span> oEntry<span class=\"k\">.</span>category<span class=\"k\">.</span>substring<span class=\"k\">(</span><span class=\"s\">0</span><span class=\"k\">,</span><span class=\"s\">4</span><span class=\"k\">).</span>toUpperCase<span class=\"k\">();</span>","","            <span class=\"k\">var</span> time <span class=\"k\">=</span> oEntry<span class=\"k\">.</span>time<span class=\"k\">;</span>","            <span class=\"k\">var</span> localTime<span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>time<span class=\"k\">.</span>toLocaleTimeString<span class=\"k\">)</span> <span class=\"k\">{</span>","                localTime  <span class=\"k\">=</span> time<span class=\"k\">.</span>toLocaleTimeString<span class=\"k\">();</span>","            <span class=\"k\">}</span>","            <span class=\"k\">else</span> <span class=\"k\">{</span>","                localTime <span class=\"k\">=</span> time<span class=\"k\">.</span>toString<span class=\"k\">();</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">var</span> msecs <span class=\"k\">=</span> time<span class=\"k\">.</span>getTime<span class=\"k\">();</span>","            <span class=\"k\">var</span> elapsedTime <span class=\"k\">=</span> <span class=\"k\">(</span>YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>_lastTime<span class=\"k\">)</span> <span class=\"k\">?</span>","                <span class=\"k\">(</span>msecs <span class=\"k\">-</span> YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>_lastTime<span class=\"k\">)</span> <span class=\"k\">:</span> <span class=\"s\">0</span><span class=\"k\">;</span>","            YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>_lastTime <span class=\"k\">=</span> msecs<span class=\"k\">;</span>","","            <span class=\"k\">var</span> output <span class=\"k\">=</span>","                localTime <span class=\"k\">+</span> <span class=\"s\">\" (\"</span> <span class=\"k\">+</span>","                elapsedTime <span class=\"k\">+</span> <span class=\"s\">\"ms): \"</span> <span class=\"k\">+</span>","                oEntry<span class=\"k\">.</span>source <span class=\"k\">+</span> <span class=\"s\">\": \"</span><span class=\"k\">;</span>","","            <span class=\"c\">// for bug 1987607</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>YAHOO<span class=\"k\">.</span>env<span class=\"k\">.</span>ua<span class=\"k\">.</span>webkit<span class=\"k\">)</span> <span class=\"k\">{</span>","                output <span class=\"k\">+=</span> oEntry<span class=\"k\">.</span>msg<span class=\"k\">;</span>","            <span class=\"k\">}</span>","","            console<span class=\"k\">.</span>log<span class=\"k\">(</span>output<span class=\"k\">,</span> oEntry<span class=\"k\">.</span>msg<span class=\"k\">);</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">;</span>","","    <span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","    <span class=\"c\">//</span>","    <span class=\"c\">// Private event handlers</span>","    <span class=\"c\">//</span>","    <span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Handles logging of messages due to window error events.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _onWindowError</span>","<span class=\"c\">     * @param sMsg {String} The error message.</span>","<span class=\"c\">     * @param sUrl {String} URL of the error.</span>","<span class=\"c\">     * @param sLine {String} Line number of the error.</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>_onWindowError <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>sMsg<span class=\"k\">,</span>sUrl<span class=\"k\">,</span>sLine<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"c\">// Logger is not in scope of this event handler</span>","        <span class=\"k\">try</span> <span class=\"k\">{</span>","            YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>log<span class=\"k\">(</span>sMsg<span class=\"k\">+</span><span class=\"s\">' ('</span><span class=\"k\">+</span>sUrl<span class=\"k\">+</span><span class=\"s\">', line '</span><span class=\"k\">+</span>sLine<span class=\"k\">+</span><span class=\"s\">')'</span><span class=\"k\">,</span> <span class=\"s\">\"window\"</span><span class=\"k\">);</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>_origOnWindowError<span class=\"k\">)</span> <span class=\"k\">{</span>","                YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>_origOnWindowError<span class=\"k\">();</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","        <span class=\"k\">catch</span><span class=\"k\">(</span>e<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> <span class=\"k\">false</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">;</span>","","    <span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","    <span class=\"c\">//</span>","    <span class=\"c\">// First log</span>","    <span class=\"c\">//</span>","    <span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","","    YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">.</span>log<span class=\"k\">(</span><span class=\"s\">\"Logger initialized\"</span><span class=\"k\">);</span>","<span class=\"k\">}</span>","","<span class=\"c\">/****************************************************************************/</span>","<span class=\"c\">/****************************************************************************/</span>","<span class=\"c\">/****************************************************************************/</span>","<span class=\"k\">(</span><span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","<span class=\"k\">var</span> Logger <span class=\"k\">=</span> YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">,</span>","    u      <span class=\"k\">=</span> YAHOO<span class=\"k\">.</span>util<span class=\"k\">,</span>","    Dom    <span class=\"k\">=</span> u<span class=\"k\">.</span>Dom<span class=\"k\">,</span>","    Event  <span class=\"k\">=</span> u<span class=\"k\">.</span>Event<span class=\"k\">,</span>","    d      <span class=\"k\">=</span> document<span class=\"k\">;</span>","","<span class=\"k\">function</span> make<span class=\"k\">(</span>el<span class=\"k\">,</span>props<span class=\"k\">)</span> <span class=\"k\">{</span>","    el <span class=\"k\">=</span> d<span class=\"k\">.</span>createElement<span class=\"k\">(</span>el<span class=\"k\">);</span>","    <span class=\"k\">if</span> <span class=\"k\">(</span>props<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> p <span class=\"k\">in</span> props<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>props<span class=\"k\">.</span>hasOwnProperty<span class=\"k\">(</span>p<span class=\"k\">))</span> <span class=\"k\">{</span>","                el<span class=\"k\">[</span>p<span class=\"k\">]</span> <span class=\"k\">=</span> props<span class=\"k\">[</span>p<span class=\"k\">];</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span>","    <span class=\"k\">return</span> el<span class=\"k\">;</span>","<span class=\"k\">}</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * The LogReader class provides UI to read messages logged to YAHOO.widget.Logger.</span>","<span class=\"c\"> *</span>","<span class=\"c\"> * @class LogReader</span>","<span class=\"c\"> * @constructor</span>","<span class=\"c\"> * @param elContainer {HTMLElement} (optional) DOM element reference of an existing DIV.</span>","<span class=\"c\"> * @param elContainer {String} (optional) String ID of an existing DIV.</span>","<span class=\"c\"> * @param oConfigs {Object} (optional) Object literal of configuration params.</span>","<span class=\"c\"> */</span>","<span class=\"k\">function</span> LogReader<span class=\"k\">(</span>elContainer<span class=\"k\">,</span> oConfigs<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>_sName <span class=\"k\">=</span> LogReader<span class=\"k\">.</span>_index<span class=\"k\">;</span>","    LogReader<span class=\"k\">.</span>_index<span class=\"k\">++;</span>","    ","    <span class=\"k\">this</span><span class=\"k\">.</span>_init<span class=\"k\">.</span>apply<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">,</span>arguments<span class=\"k\">);</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Render the LogReader immediately upon instantiation.  If set to false,</span>","<span class=\"c\">     * you must call myLogReader.render() to generate the UI.</span>","<span class=\"c\">     * </span>","<span class=\"c\">     * @property autoRender</span>","<span class=\"c\">     * @type {Boolean}</span>","<span class=\"c\">     * @default true</span>","<span class=\"c\">     */</span>","    <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>autoRender <span class=\"k\">!==</span> <span class=\"k\">false</span><span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>render<span class=\"k\">();</span>","    <span class=\"k\">}</span>","<span class=\"k\">}</span>","","<span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","<span class=\"c\">//</span>","<span class=\"c\">// Static member variables</span>","<span class=\"c\">//</span>","<span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","YAHOO<span class=\"k\">.</span>lang<span class=\"k\">.</span>augmentObject<span class=\"k\">(</span>LogReader<span class=\"k\">,</span> <span class=\"k\">{</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * Internal class member to index multiple LogReader instances.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _memberName</span>","<span class=\"c\">     * @static</span>","<span class=\"c\">     * @type Number</span>","<span class=\"c\">     * @default 0</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _index <span class=\"k\">:</span> <span class=\"s\">0</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Node template for the log entries</span>","<span class=\"c\">     * @property ENTRY_TEMPLATE</span>","<span class=\"c\">     * @static</span>","<span class=\"c\">     * @type {HTMLElement}</span>","<span class=\"c\">     * @default &lt;code&gt;pre&lt;/code&gt; element with class yui-log-entry</span>","<span class=\"c\">     */</span>","    ENTRY_TEMPLATE <span class=\"k\">:</span> <span class=\"k\">(</span><span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"k\">return</span> make<span class=\"k\">(</span><span class=\"s\">'pre'</span><span class=\"k\">,</span><span class=\"k\">{</span> className<span class=\"k\">:</span> <span class=\"s\">'yui-log-entry'</span> <span class=\"k\">}</span><span class=\"k\">);</span>","    <span class=\"k\">}</span><span class=\"k\">)(),</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Template used for innerHTML of verbose entry output.</span>","<span class=\"c\">     * @property VERBOSE_TEMPLATE</span>","<span class=\"c\">     * @static</span>","<span class=\"c\">     * @default \"&amp;lt;p&gt;&amp;lt;span class='{category}'&gt;{label}&amp;lt;/span&gt;{totalTime}ms (+{elapsedTime}) {localTime}:&amp;lt;/p&gt;&amp;lt;p&gt;{sourceAndDetail}&amp;lt;/p&gt;&amp;lt;p&gt;{message}&amp;lt;/p&gt;\"</span>","<span class=\"c\">     */</span>","    VERBOSE_TEMPLATE <span class=\"k\">:</span> <span class=\"s\">\"&lt;p&gt;&lt;span class='{category}'&gt;{label}&lt;/span&gt; {totalTime}ms (+{elapsedTime}) {localTime}:&lt;/p&gt;&lt;p&gt;{sourceAndDetail}&lt;/p&gt;&lt;p&gt;{message}&lt;/p&gt;\"</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Template used for innerHTML of compact entry output.</span>","<span class=\"c\">     * @property BASIC_TEMPLATE</span>","<span class=\"c\">     * @static</span>","<span class=\"c\">     * @default \"&amp;lt;p&gt;&amp;lt;span class='{category}'&gt;{label}&amp;lt;/span&gt;{totalTime}ms (+{elapsedTime}) {localTime}: {sourceAndDetail}: {message}&amp;lt;/p&gt;\"</span>","<span class=\"c\">     */</span>","    BASIC_TEMPLATE <span class=\"k\">:</span> <span class=\"s\">\"&lt;p&gt;&lt;span class='{category}'&gt;{label}&lt;/span&gt; {totalTime}ms (+{elapsedTime}) {localTime}: {sourceAndDetail}: {message}&lt;/p&gt;\"</span>","<span class=\"k\">}</span><span class=\"k\">);</span>","","<span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","<span class=\"c\">//</span>","<span class=\"c\">// Public member variables</span>","<span class=\"c\">//</span>","<span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","","LogReader<span class=\"k\">.</span>prototype <span class=\"k\">=</span> <span class=\"k\">{</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * Whether or not LogReader is enabled to output log messages.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property logReaderEnabled</span>","<span class=\"c\">     * @type Boolean</span>","<span class=\"c\">     * @default true</span>","<span class=\"c\">     */</span>","    logReaderEnabled <span class=\"k\">:</span> <span class=\"k\">true</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Public member to access CSS width of the LogReader container.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property width</span>","<span class=\"c\">     * @type String</span>","<span class=\"c\">     */</span>","    width <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Public member to access CSS height of the LogReader container.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property height</span>","<span class=\"c\">     * @type String</span>","<span class=\"c\">     */</span>","    height <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Public member to access CSS top position of the LogReader container.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property top</span>","<span class=\"c\">     * @type String</span>","<span class=\"c\">     */</span>","    top <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Public member to access CSS left position of the LogReader container.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property left</span>","<span class=\"c\">     * @type String</span>","<span class=\"c\">     */</span>","    left <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Public member to access CSS right position of the LogReader container.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property right</span>","<span class=\"c\">     * @type String</span>","<span class=\"c\">     */</span>","    right <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Public member to access CSS bottom position of the LogReader container.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property bottom</span>","<span class=\"c\">     * @type String</span>","<span class=\"c\">     */</span>","    bottom <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Public member to access CSS font size of the LogReader container.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property fontSize</span>","<span class=\"c\">     * @type String</span>","<span class=\"c\">     */</span>","    fontSize <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Whether or not the footer UI is enabled for the LogReader.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property footerEnabled</span>","<span class=\"c\">     * @type Boolean</span>","<span class=\"c\">     * @default true</span>","<span class=\"c\">     */</span>","    footerEnabled <span class=\"k\">:</span> <span class=\"k\">true</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Whether or not output is verbose (more readable). Setting to true will make</span>","<span class=\"c\">     * output more compact (less readable).</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property verboseOutput</span>","<span class=\"c\">     * @type Boolean</span>","<span class=\"c\">     * @default true</span>","<span class=\"c\">     */</span>","    verboseOutput <span class=\"k\">:</span> <span class=\"k\">true</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Custom output format for log messages.  Defaults to null, which falls</span>","<span class=\"c\">     * back to verboseOutput param deciding between LogReader.VERBOSE_TEMPLATE</span>","<span class=\"c\">     * and LogReader.BASIC_TEMPLATE.  Use bracketed place holders to mark where</span>","<span class=\"c\">     * message info should go.  Available place holder names include:</span>","<span class=\"c\">     * &lt;ul&gt;</span>","<span class=\"c\">     *  &lt;li&gt;category&lt;/li&gt;</span>","<span class=\"c\">     *  &lt;li&gt;label&lt;/li&gt;</span>","<span class=\"c\">     *  &lt;li&gt;sourceAndDetail&lt;/li&gt;</span>","<span class=\"c\">     *  &lt;li&gt;message&lt;/li&gt;</span>","<span class=\"c\">     *  &lt;li&gt;localTime&lt;/li&gt;</span>","<span class=\"c\">     *  &lt;li&gt;elapsedTime&lt;/li&gt;</span>","<span class=\"c\">     *  &lt;li&gt;totalTime&lt;/li&gt;</span>","<span class=\"c\">     * &lt;/ul&gt;</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property entryFormat</span>","<span class=\"c\">     * @type String</span>","<span class=\"c\">     * @default null</span>","<span class=\"c\">     */</span>","    entryFormat <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Whether or not newest message is printed on top.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property newestOnTop</span>","<span class=\"c\">     * @type Boolean</span>","<span class=\"c\">     */</span>","    newestOnTop <span class=\"k\">:</span> <span class=\"k\">true</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Output timeout buffer in milliseconds.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property outputBuffer</span>","<span class=\"c\">     * @type Number</span>","<span class=\"c\">     * @default 100</span>","<span class=\"c\">     */</span>","    outputBuffer <span class=\"k\">:</span> <span class=\"s\">100</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Maximum number of messages a LogReader console will display.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property thresholdMax</span>","<span class=\"c\">     * @type Number</span>","<span class=\"c\">     * @default 500</span>","<span class=\"c\">     */</span>","    thresholdMax <span class=\"k\">:</span> <span class=\"s\">500</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * When a LogReader console reaches its thresholdMax, it will clear out messages</span>","<span class=\"c\">     * and print out the latest thresholdMin number of messages.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property thresholdMin</span>","<span class=\"c\">     * @type Number</span>","<span class=\"c\">     * @default 100</span>","<span class=\"c\">     */</span>","    thresholdMin <span class=\"k\">:</span> <span class=\"s\">100</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * True when LogReader is in a collapsed state, false otherwise.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property isCollapsed</span>","<span class=\"c\">     * @type Boolean</span>","<span class=\"c\">     * @default false</span>","<span class=\"c\">     */</span>","    isCollapsed <span class=\"k\">:</span> <span class=\"k\">false</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * True when LogReader is in a paused state, false otherwise.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property isPaused</span>","<span class=\"c\">     * @type Boolean</span>","<span class=\"c\">     * @default false</span>","<span class=\"c\">     */</span>","    isPaused <span class=\"k\">:</span> <span class=\"k\">false</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Enables draggable LogReader if DragDrop Utility is present.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property draggable</span>","<span class=\"c\">     * @type Boolean</span>","<span class=\"c\">     * @default true</span>","<span class=\"c\">     */</span>","    draggable <span class=\"k\">:</span> <span class=\"k\">true</span><span class=\"k\">,</span>","","    <span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","    <span class=\"c\">//</span>","    <span class=\"c\">// Public methods</span>","    <span class=\"c\">//</span>","    <span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","","     <span class=\"c\">/**</span>","<span class=\"c\">     * Public accessor to the unique name of the LogReader instance.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method toString</span>","<span class=\"c\">     * @return {String} Unique name of the LogReader instance.</span>","<span class=\"c\">     */</span>","    toString <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"k\">return</span> <span class=\"s\">\"LogReader instance\"</span> <span class=\"k\">+</span> <span class=\"k\">this</span><span class=\"k\">.</span>_sName<span class=\"k\">;</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * Pauses output of log messages. While paused, log messages are not lost, but</span>","<span class=\"c\">     * get saved to a buffer and then output upon resume of LogReader.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method pause</span>","<span class=\"c\">     */</span>","    pause <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>isPaused <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_timeout <span class=\"k\">=</span> <span class=\"k\">null</span><span class=\"k\">;</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>logReaderEnabled <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","        <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_btnPause<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_btnPause<span class=\"k\">.</span>value <span class=\"k\">=</span> <span class=\"s\">\"Resume\"</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Resumes output of log messages, including outputting any log messages that</span>","<span class=\"c\">     * have been saved to buffer while paused.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method resume</span>","<span class=\"c\">     */</span>","    resume <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>isPaused <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>logReaderEnabled <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_printBuffer<span class=\"k\">();</span>","        <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_btnPause<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_btnPause<span class=\"k\">.</span>value <span class=\"k\">=</span> <span class=\"s\">\"Pause\"</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Adds the UI to the DOM, attaches event listeners, and bootstraps initial</span>","<span class=\"c\">     * UI state.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method render</span>","<span class=\"c\">     */</span>","    render <span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>rendered<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","","        <span class=\"k\">this</span><span class=\"k\">.</span>_initContainerEl<span class=\"k\">();</span>","        ","        <span class=\"k\">this</span><span class=\"k\">.</span>_initHeaderEl<span class=\"k\">();</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_initConsoleEl<span class=\"k\">();</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_initFooterEl<span class=\"k\">();</span>","","        <span class=\"k\">this</span><span class=\"k\">.</span>_initCategories<span class=\"k\">();</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_initSources<span class=\"k\">();</span>","","        <span class=\"k\">this</span><span class=\"k\">.</span>_initDragDrop<span class=\"k\">();</span>","","        <span class=\"c\">// Subscribe to Logger custom events</span>","        Logger<span class=\"k\">.</span>newLogEvent<span class=\"k\">.</span>subscribe<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_onNewLog<span class=\"k\">,</span> <span class=\"k\">this</span><span class=\"k\">);</span>","        Logger<span class=\"k\">.</span>logResetEvent<span class=\"k\">.</span>subscribe<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_onReset<span class=\"k\">,</span> <span class=\"k\">this</span><span class=\"k\">);</span>","","        Logger<span class=\"k\">.</span>categoryCreateEvent<span class=\"k\">.</span>subscribe<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_onCategoryCreate<span class=\"k\">,</span> <span class=\"k\">this</span><span class=\"k\">);</span>","        Logger<span class=\"k\">.</span>sourceCreateEvent<span class=\"k\">.</span>subscribe<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_onSourceCreate<span class=\"k\">,</span> <span class=\"k\">this</span><span class=\"k\">);</span>","","        <span class=\"k\">this</span><span class=\"k\">.</span>rendered <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","","        <span class=\"k\">this</span><span class=\"k\">.</span>_filterLogs<span class=\"k\">();</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Removes the UI from the DOM entirely and detaches all event listeners.</span>","<span class=\"c\">     * Implementers should note that Logger will still accumulate messages.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method destroy</span>","<span class=\"c\">     */</span>","    destroy <span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","        Event<span class=\"k\">.</span>purgeElement<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elContainer<span class=\"k\">,</span><span class=\"k\">true</span><span class=\"k\">);</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_elContainer<span class=\"k\">.</span>innerHTML <span class=\"k\">=</span> <span class=\"s\">''</span><span class=\"k\">;</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_elContainer<span class=\"k\">.</span>parentNode<span class=\"k\">.</span>removeChild<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elContainer<span class=\"k\">);</span>","","        <span class=\"k\">this</span><span class=\"k\">.</span>rendered <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Hides UI of LogReader. Logging functionality is not disrupted.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method hide</span>","<span class=\"c\">     */</span>","    hide <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_elContainer<span class=\"k\">.</span>style<span class=\"k\">.</span>display <span class=\"k\">=</span> <span class=\"s\">\"none\"</span><span class=\"k\">;</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Shows UI of LogReader. Logging functionality is not disrupted.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method show</span>","<span class=\"c\">     */</span>","    show <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_elContainer<span class=\"k\">.</span>style<span class=\"k\">.</span>display <span class=\"k\">=</span> <span class=\"s\">\"block\"</span><span class=\"k\">;</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Collapses UI of LogReader. Logging functionality is not disrupted.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method collapse</span>","<span class=\"c\">     */</span>","    collapse <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_elConsole<span class=\"k\">.</span>style<span class=\"k\">.</span>display <span class=\"k\">=</span> <span class=\"s\">\"none\"</span><span class=\"k\">;</span>","        <span class=\"k\">if</span><span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elFt<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_elFt<span class=\"k\">.</span>style<span class=\"k\">.</span>display <span class=\"k\">=</span> <span class=\"s\">\"none\"</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_btnCollapse<span class=\"k\">.</span>value <span class=\"k\">=</span> <span class=\"s\">\"Expand\"</span><span class=\"k\">;</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>isCollapsed <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Expands UI of LogReader. Logging functionality is not disrupted.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method expand</span>","<span class=\"c\">     */</span>","    expand <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_elConsole<span class=\"k\">.</span>style<span class=\"k\">.</span>display <span class=\"k\">=</span> <span class=\"s\">\"block\"</span><span class=\"k\">;</span>","        <span class=\"k\">if</span><span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elFt<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_elFt<span class=\"k\">.</span>style<span class=\"k\">.</span>display <span class=\"k\">=</span> <span class=\"s\">\"block\"</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_btnCollapse<span class=\"k\">.</span>value <span class=\"k\">=</span> <span class=\"s\">\"Collapse\"</span><span class=\"k\">;</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>isCollapsed <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Returns related checkbox element for given filter (i.e., category or source).</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method getCheckbox</span>","<span class=\"c\">     * @param {String} Category or source name.</span>","<span class=\"c\">     * @return {Array} Array of all filter checkboxes.</span>","<span class=\"c\">     */</span>","    getCheckbox <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>filter<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">return</span> <span class=\"k\">this</span><span class=\"k\">.</span>_filterCheckboxes<span class=\"k\">[</span>filter<span class=\"k\">];</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Returns array of enabled categories.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method getCategories</span>","<span class=\"c\">     * @return {String[]} Array of enabled categories.</span>","<span class=\"c\">     */</span>","    getCategories <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"k\">return</span> <span class=\"k\">this</span><span class=\"k\">.</span>_categoryFilters<span class=\"k\">;</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Shows log messages associated with given category.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method showCategory</span>","<span class=\"c\">     * @param {String} Category name.</span>","<span class=\"c\">     */</span>","    showCategory <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>sCategory<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">var</span> filtersArray <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>_categoryFilters<span class=\"k\">;</span>","        <span class=\"c\">// Don't do anything if category is already enabled</span>","        <span class=\"c\">// Use Array.indexOf if available...</span>","        <span class=\"k\">if</span><span class=\"k\">(</span>filtersArray<span class=\"k\">.</span>indexOf<span class=\"k\">)</span> <span class=\"k\">{</span>","             <span class=\"k\">if</span><span class=\"k\">(</span>filtersArray<span class=\"k\">.</span>indexOf<span class=\"k\">(</span>sCategory<span class=\"k\">)</span> <span class=\"k\">&gt;</span>  <span class=\"k\">-</span><span class=\"s\">1</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","        <span class=\"c\">// ...or do it the old-fashioned way</span>","        <span class=\"k\">else</span> <span class=\"k\">{</span>","            <span class=\"k\">for</span><span class=\"k\">(</span><span class=\"k\">var</span> i<span class=\"k\">=</span><span class=\"s\">0</span><span class=\"k\">;</span> i<span class=\"k\">&lt;</span>filtersArray<span class=\"k\">.</span>length<span class=\"k\">;</span> i<span class=\"k\">++)</span> <span class=\"k\">{</span>","               <span class=\"k\">if</span><span class=\"k\">(</span>filtersArray<span class=\"k\">[</span>i<span class=\"k\">]</span> <span class=\"k\">===</span> sCategory<span class=\"k\">)</span><span class=\"k\">{</span>","                    <span class=\"k\">return</span><span class=\"k\">;</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","","        <span class=\"k\">this</span><span class=\"k\">.</span>_categoryFilters<span class=\"k\">.</span>push<span class=\"k\">(</span>sCategory<span class=\"k\">);</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_filterLogs<span class=\"k\">();</span>","        <span class=\"k\">var</span> elCheckbox <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>getCheckbox<span class=\"k\">(</span>sCategory<span class=\"k\">);</span>","        <span class=\"k\">if</span><span class=\"k\">(</span>elCheckbox<span class=\"k\">)</span> <span class=\"k\">{</span>","            elCheckbox<span class=\"k\">.</span>checked <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Hides log messages associated with given category.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method hideCategory</span>","<span class=\"c\">     * @param {String} Category name.</span>","<span class=\"c\">     */</span>","    hideCategory <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>sCategory<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">var</span> filtersArray <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>_categoryFilters<span class=\"k\">;</span>","        <span class=\"k\">for</span><span class=\"k\">(</span><span class=\"k\">var</span> i<span class=\"k\">=</span><span class=\"s\">0</span><span class=\"k\">;</span> i<span class=\"k\">&lt;</span>filtersArray<span class=\"k\">.</span>length<span class=\"k\">;</span> i<span class=\"k\">++)</span> <span class=\"k\">{</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>sCategory <span class=\"k\">==</span> filtersArray<span class=\"k\">[</span>i<span class=\"k\">])</span> <span class=\"k\">{</span>","                filtersArray<span class=\"k\">.</span>splice<span class=\"k\">(</span>i<span class=\"k\">,</span> <span class=\"s\">1</span><span class=\"k\">);</span>","                <span class=\"k\">break</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_filterLogs<span class=\"k\">();</span>","        <span class=\"k\">var</span> elCheckbox <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>getCheckbox<span class=\"k\">(</span>sCategory<span class=\"k\">);</span>","        <span class=\"k\">if</span><span class=\"k\">(</span>elCheckbox<span class=\"k\">)</span> <span class=\"k\">{</span>","            elCheckbox<span class=\"k\">.</span>checked <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Returns array of enabled sources.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method getSources</span>","<span class=\"c\">     * @return {Array} Array of enabled sources.</span>","<span class=\"c\">     */</span>","    getSources <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"k\">return</span> <span class=\"k\">this</span><span class=\"k\">.</span>_sourceFilters<span class=\"k\">;</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Shows log messages associated with given source.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method showSource</span>","<span class=\"c\">     * @param {String} Source name.</span>","<span class=\"c\">     */</span>","    showSource <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>sSource<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">var</span> filtersArray <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>_sourceFilters<span class=\"k\">;</span>","        <span class=\"c\">// Don't do anything if category is already enabled</span>","        <span class=\"c\">// Use Array.indexOf if available...</span>","        <span class=\"k\">if</span><span class=\"k\">(</span>filtersArray<span class=\"k\">.</span>indexOf<span class=\"k\">)</span> <span class=\"k\">{</span>","             <span class=\"k\">if</span><span class=\"k\">(</span>filtersArray<span class=\"k\">.</span>indexOf<span class=\"k\">(</span>sSource<span class=\"k\">)</span> <span class=\"k\">&gt;</span>  <span class=\"k\">-</span><span class=\"s\">1</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","        <span class=\"c\">// ...or do it the old-fashioned way</span>","        <span class=\"k\">else</span> <span class=\"k\">{</span>","            <span class=\"k\">for</span><span class=\"k\">(</span><span class=\"k\">var</span> i<span class=\"k\">=</span><span class=\"s\">0</span><span class=\"k\">;</span> i<span class=\"k\">&lt;</span>filtersArray<span class=\"k\">.</span>length<span class=\"k\">;</span> i<span class=\"k\">++)</span> <span class=\"k\">{</span>","               <span class=\"k\">if</span><span class=\"k\">(</span>sSource <span class=\"k\">==</span> filtersArray<span class=\"k\">[</span>i<span class=\"k\">])</span><span class=\"k\">{</span>","                    <span class=\"k\">return</span><span class=\"k\">;</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","        filtersArray<span class=\"k\">.</span>push<span class=\"k\">(</span>sSource<span class=\"k\">);</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_filterLogs<span class=\"k\">();</span>","        <span class=\"k\">var</span> elCheckbox <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>getCheckbox<span class=\"k\">(</span>sSource<span class=\"k\">);</span>","        <span class=\"k\">if</span><span class=\"k\">(</span>elCheckbox<span class=\"k\">)</span> <span class=\"k\">{</span>","            elCheckbox<span class=\"k\">.</span>checked <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Hides log messages associated with given source.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method hideSource</span>","<span class=\"c\">     * @param {String} Source name.</span>","<span class=\"c\">     */</span>","    hideSource <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>sSource<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">var</span> filtersArray <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>_sourceFilters<span class=\"k\">;</span>","        <span class=\"k\">for</span><span class=\"k\">(</span><span class=\"k\">var</span> i<span class=\"k\">=</span><span class=\"s\">0</span><span class=\"k\">;</span> i<span class=\"k\">&lt;</span>filtersArray<span class=\"k\">.</span>length<span class=\"k\">;</span> i<span class=\"k\">++)</span> <span class=\"k\">{</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>sSource <span class=\"k\">==</span> filtersArray<span class=\"k\">[</span>i<span class=\"k\">])</span> <span class=\"k\">{</span>","                filtersArray<span class=\"k\">.</span>splice<span class=\"k\">(</span>i<span class=\"k\">,</span> <span class=\"s\">1</span><span class=\"k\">);</span>","                <span class=\"k\">break</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_filterLogs<span class=\"k\">();</span>","        <span class=\"k\">var</span> elCheckbox <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>getCheckbox<span class=\"k\">(</span>sSource<span class=\"k\">);</span>","        <span class=\"k\">if</span><span class=\"k\">(</span>elCheckbox<span class=\"k\">)</span> <span class=\"k\">{</span>","            elCheckbox<span class=\"k\">.</span>checked <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Does not delete any log messages, but clears all printed log messages from</span>","<span class=\"c\">     * the console. Log messages will be printed out again if user re-filters. The</span>","<span class=\"c\">     * static method YAHOO.widget.Logger.reset() should be called in order to</span>","<span class=\"c\">     * actually delete log messages.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method clearConsole</span>","<span class=\"c\">     */</span>","    clearConsole <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"c\">// Clear the buffer of any pending messages</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_timeout <span class=\"k\">=</span> <span class=\"k\">null</span><span class=\"k\">;</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_buffer <span class=\"k\">=</span> <span class=\"k\">[];</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_consoleMsgCount <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">;</span>","","        <span class=\"k\">var</span> elConsole <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>_elConsole<span class=\"k\">;</span>","        elConsole<span class=\"k\">.</span>innerHTML <span class=\"k\">=</span> <span class=\"s\">''</span><span class=\"k\">;</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Updates title to given string.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method setTitle</span>","<span class=\"c\">     * @param sTitle {String} New title.</span>","<span class=\"c\">     */</span>","    setTitle <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>sTitle<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_title<span class=\"k\">.</span>innerHTML <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>html2Text<span class=\"k\">(</span>sTitle<span class=\"k\">);</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Gets timestamp of the last log.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method getLastTime</span>","<span class=\"c\">     * @return {Date} Timestamp of the last log.</span>","<span class=\"c\">     */</span>","    getLastTime <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"k\">return</span> <span class=\"k\">this</span><span class=\"k\">.</span>_lastTime<span class=\"k\">;</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    formatMsg <span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>entry<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">var</span> entryFormat <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>entryFormat <span class=\"k\">||</span> <span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>verboseOutput <span class=\"k\">?</span>","                          LogReader<span class=\"k\">.</span>VERBOSE_TEMPLATE <span class=\"k\">:</span> LogReader<span class=\"k\">.</span>BASIC_TEMPLATE<span class=\"k\">),</span>","            info        <span class=\"k\">=</span> <span class=\"k\">{</span>","                category <span class=\"k\">:</span> entry<span class=\"k\">.</span>category<span class=\"k\">,</span>","","                <span class=\"c\">// Label for color-coded display</span>","                label <span class=\"k\">:</span> entry<span class=\"k\">.</span>category<span class=\"k\">.</span>substring<span class=\"k\">(</span><span class=\"s\">0</span><span class=\"k\">,</span><span class=\"s\">4</span><span class=\"k\">).</span>toUpperCase<span class=\"k\">(),</span>","","                sourceAndDetail <span class=\"k\">:</span> entry<span class=\"k\">.</span>sourceDetail <span class=\"k\">?</span>","                                  entry<span class=\"k\">.</span>source <span class=\"k\">+</span> <span class=\"s\">\" \"</span> <span class=\"k\">+</span> entry<span class=\"k\">.</span>sourceDetail <span class=\"k\">:</span>","                                  entry<span class=\"k\">.</span>source<span class=\"k\">,</span>","","                <span class=\"c\">// Escape HTML entities in the log message itself for output</span>","                <span class=\"c\">// to console</span>","                message <span class=\"k\">:</span> <span class=\"k\">this</span><span class=\"k\">.</span>html2Text<span class=\"k\">(</span>entry<span class=\"k\">.</span>msg <span class=\"k\">||</span> entry<span class=\"k\">.</span>message <span class=\"k\">||</span> <span class=\"s\">''</span><span class=\"k\">)</span>","            <span class=\"k\">}</span><span class=\"k\">;</span>","","        <span class=\"c\">// Add time info</span>","        <span class=\"k\">if</span> <span class=\"k\">(</span>entry<span class=\"k\">.</span>time <span class=\"k\">&amp;&amp;</span> entry<span class=\"k\">.</span>time<span class=\"k\">.</span>getTime<span class=\"k\">)</span> <span class=\"k\">{</span>","            info<span class=\"k\">.</span>localTime <span class=\"k\">=</span> entry<span class=\"k\">.</span>time<span class=\"k\">.</span>toLocaleTimeString <span class=\"k\">?</span>","                             entry<span class=\"k\">.</span>time<span class=\"k\">.</span>toLocaleTimeString<span class=\"k\">()</span> <span class=\"k\">:</span>","                             entry<span class=\"k\">.</span>time<span class=\"k\">.</span>toString<span class=\"k\">();</span>","","            <span class=\"c\">// Calculate the elapsed time to be from the last item that</span>","            <span class=\"c\">// passed through the filter, not the absolute previous item</span>","            <span class=\"c\">// in the stack</span>","            info<span class=\"k\">.</span>elapsedTime <span class=\"k\">=</span> entry<span class=\"k\">.</span>time<span class=\"k\">.</span>getTime<span class=\"k\">()</span> <span class=\"k\">-</span> <span class=\"k\">this</span><span class=\"k\">.</span>getLastTime<span class=\"k\">();</span>","","            info<span class=\"k\">.</span>totalTime <span class=\"k\">=</span> entry<span class=\"k\">.</span>time<span class=\"k\">.</span>getTime<span class=\"k\">()</span> <span class=\"k\">-</span> Logger<span class=\"k\">.</span>getStartTime<span class=\"k\">();</span>","        <span class=\"k\">}</span>","","        <span class=\"k\">var</span> msg <span class=\"k\">=</span> LogReader<span class=\"k\">.</span>ENTRY_TEMPLATE<span class=\"k\">.</span>cloneNode<span class=\"k\">(</span><span class=\"k\">true</span><span class=\"k\">);</span>","        <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>verboseOutput<span class=\"k\">)</span> <span class=\"k\">{</span>","            msg<span class=\"k\">.</span>className <span class=\"k\">+=</span> <span class=\"s\">' yui-log-verbose'</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","","        <span class=\"c\">// Bug 2061169: Workaround for YAHOO.lang.substitute()</span>","        msg<span class=\"k\">.</span>innerHTML <span class=\"k\">=</span> entryFormat<span class=\"k\">.</span>replace<span class=\"k\">(</span><span class=\"s\">/\\{(\\w+)\\}/g</span><span class=\"k\">,</span>","            <span class=\"k\">function</span> <span class=\"k\">(</span>x<span class=\"k\">,</span> placeholder<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> <span class=\"k\">(</span>placeholder <span class=\"k\">in</span> info<span class=\"k\">)</span> <span class=\"k\">?</span> info<span class=\"k\">[</span>placeholder<span class=\"k\">]</span> <span class=\"k\">:</span> <span class=\"s\">''</span><span class=\"k\">;</span>","            <span class=\"k\">}</span><span class=\"k\">);</span>","","        <span class=\"k\">return</span> msg<span class=\"k\">;</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Converts input chars \"&lt;\", \"&gt;\", and \"&amp;\" to HTML entities.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method html2Text</span>","<span class=\"c\">     * @param sHtml {String} String to convert.</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    html2Text <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>sHtml<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">if</span><span class=\"k\">(</span>sHtml<span class=\"k\">)</span> <span class=\"k\">{</span>","            sHtml <span class=\"k\">+=</span> <span class=\"s\">\"\"</span><span class=\"k\">;</span>","            <span class=\"k\">return</span> sHtml<span class=\"k\">.</span>replace<span class=\"k\">(</span><span class=\"s\">/&amp;/g</span><span class=\"k\">,</span> <span class=\"s\">\"&amp;#38;\"</span><span class=\"k\">).</span>","                         replace<span class=\"k\">(</span><span class=\"s\">/&lt;/g</span><span class=\"k\">,</span> <span class=\"s\">\"&amp;#60;\"</span><span class=\"k\">).</span>","                         replace<span class=\"k\">(</span><span class=\"s\">/&gt;/g</span><span class=\"k\">,</span> <span class=\"s\">\"&amp;#62;\"</span><span class=\"k\">);</span>","        <span class=\"k\">}</span>","        <span class=\"k\">return</span> <span class=\"s\">\"\"</span><span class=\"k\">;</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","<span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","<span class=\"c\">//</span>","<span class=\"c\">// Private member variables</span>","<span class=\"c\">//</span>","<span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Name of LogReader instance.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _sName</span>","<span class=\"c\">     * @type String</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _sName <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">//TODO: remove</span>","    <span class=\"c\">/**</span>","<span class=\"c\">     * A class member shared by all LogReaders if a container needs to be</span>","<span class=\"c\">     * created during instantiation. Will be null if a container element never needs to</span>","<span class=\"c\">     * be created on the fly, such as when the implementer passes in their own element.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _elDefaultContainer</span>","<span class=\"c\">     * @type HTMLElement</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    <span class=\"c\">//YAHOO.widget.LogReader._elDefaultContainer = null;</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Buffer of log message objects for batch output.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _buffer</span>","<span class=\"c\">     * @type Object[]</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _buffer <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Number of log messages output to console.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _consoleMsgCount</span>","<span class=\"c\">     * @type Number</span>","<span class=\"c\">     * @default 0</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _consoleMsgCount <span class=\"k\">:</span> <span class=\"s\">0</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Date of last output log message.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _lastTime</span>","<span class=\"c\">     * @type Date</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _lastTime <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Batched output timeout ID.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _timeout</span>","<span class=\"c\">     * @type Number</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _timeout <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Hash of filters and their related checkbox elements.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _filterCheckboxes</span>","<span class=\"c\">     * @type Object</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _filterCheckboxes <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Array of filters for log message categories.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _categoryFilters</span>","<span class=\"c\">     * @type String[]</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _categoryFilters <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Array of filters for log message sources.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _sourceFilters</span>","<span class=\"c\">     * @type String[]</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _sourceFilters <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * LogReader container element.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _elContainer</span>","<span class=\"c\">     * @type HTMLElement</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _elContainer <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * LogReader header element.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _elHd</span>","<span class=\"c\">     * @type HTMLElement</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _elHd <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * LogReader collapse element.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _elCollapse</span>","<span class=\"c\">     * @type HTMLElement</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _elCollapse <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * LogReader collapse button element.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _btnCollapse</span>","<span class=\"c\">     * @type HTMLElement</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _btnCollapse <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * LogReader title header element.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _title</span>","<span class=\"c\">     * @type HTMLElement</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _title <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * LogReader console element.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _elConsole</span>","<span class=\"c\">     * @type HTMLElement</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _elConsole <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * LogReader footer element.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _elFt</span>","<span class=\"c\">     * @type HTMLElement</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _elFt <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * LogReader buttons container element.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _elBtns</span>","<span class=\"c\">     * @type HTMLElement</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _elBtns <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Container element for LogReader category filter checkboxes.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _elCategoryFilters</span>","<span class=\"c\">     * @type HTMLElement</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _elCategoryFilters <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Container element for LogReader source filter checkboxes.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _elSourceFilters</span>","<span class=\"c\">     * @type HTMLElement</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _elSourceFilters <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * LogReader pause button element.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _btnPause</span>","<span class=\"c\">     * @type HTMLElement</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _btnPause <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Clear button element.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @property _btnClear</span>","<span class=\"c\">     * @type HTMLElement</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _btnClear <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">,</span>","","    <span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","    <span class=\"c\">//</span>","    <span class=\"c\">// Private methods</span>","    <span class=\"c\">//</span>","    <span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Initializes the instance's message buffer, start time, etc</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _init</span>","<span class=\"c\">     * @param container {String|HTMLElement} (optional) the render target</span>","<span class=\"c\">     * @param config {Object} (optional) instance configuration</span>","<span class=\"c\">     * @protected</span>","<span class=\"c\">     */</span>","    _init <span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>container<span class=\"k\">,</span> config<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"c\">// Internal vars</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_buffer <span class=\"k\">=</span> <span class=\"k\">[];</span> <span class=\"c\">// output buffer</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_filterCheckboxes <span class=\"k\">=</span> <span class=\"k\">{}</span><span class=\"k\">;</span> <span class=\"c\">// pointers to checkboxes</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_lastTime <span class=\"k\">=</span> Logger<span class=\"k\">.</span>getStartTime<span class=\"k\">();</span> <span class=\"c\">// timestamp of last log message to console</span>","","        <span class=\"c\">// Parse config vars here</span>","        <span class=\"k\">if</span> <span class=\"k\">(</span>config <span class=\"k\">&amp;&amp;</span> <span class=\"k\">(</span>config<span class=\"k\">.</span>constructor <span class=\"k\">==</span> Object<span class=\"k\">))</span> <span class=\"k\">{</span>","            <span class=\"k\">for</span><span class=\"k\">(</span><span class=\"k\">var</span> param <span class=\"k\">in</span> config<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>config<span class=\"k\">.</span>hasOwnProperty<span class=\"k\">(</span>param<span class=\"k\">))</span> <span class=\"k\">{</span>","                    <span class=\"k\">this</span><span class=\"k\">[</span>param<span class=\"k\">]</span> <span class=\"k\">=</span> config<span class=\"k\">[</span>param<span class=\"k\">];</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","","        <span class=\"k\">this</span><span class=\"k\">.</span>_elContainer <span class=\"k\">=</span> Dom<span class=\"k\">.</span>get<span class=\"k\">(</span>container<span class=\"k\">);</span>","","        YAHOO<span class=\"k\">.</span>log<span class=\"k\">(</span><span class=\"s\">\"LogReader initialized\"</span><span class=\"k\">,</span> <span class=\"k\">null</span><span class=\"k\">,</span> <span class=\"k\">this</span><span class=\"k\">.</span>toString<span class=\"k\">());</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Initializes the primary container element.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _initContainerEl</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _initContainerEl <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","","        <span class=\"c\">// Default the container if unset or not a div</span>","        <span class=\"k\">if</span><span class=\"k\">(!</span><span class=\"k\">this</span><span class=\"k\">.</span>_elContainer <span class=\"k\">||</span> <span class=\"k\">!</span><span class=\"s\">/div$/i</span><span class=\"k\">.</span>test<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elContainer<span class=\"k\">.</span>tagName<span class=\"k\">))</span> <span class=\"k\">{</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_elContainer <span class=\"k\">=</span> d<span class=\"k\">.</span>body<span class=\"k\">.</span>insertBefore<span class=\"k\">(</span>make<span class=\"k\">(</span><span class=\"s\">\"div\"</span><span class=\"k\">),</span>d<span class=\"k\">.</span>body<span class=\"k\">.</span>firstChild<span class=\"k\">);</span>","            <span class=\"c\">// Only position absolutely if an in-DOM element is not supplied</span>","            Dom<span class=\"k\">.</span>addClass<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elContainer<span class=\"k\">,</span><span class=\"s\">\"yui-log-container\"</span><span class=\"k\">);</span>","        <span class=\"k\">}</span>","","        Dom<span class=\"k\">.</span>addClass<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elContainer<span class=\"k\">,</span><span class=\"s\">\"yui-log\"</span><span class=\"k\">);</span>","","        <span class=\"c\">// If implementer has provided container values, trust and set those</span>","        <span class=\"k\">var</span> style <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>_elContainer<span class=\"k\">.</span>style<span class=\"k\">,</span>","            styleProps <span class=\"k\">=</span> <span class=\"k\">[</span><span class=\"s\">'width'</span><span class=\"k\">,</span><span class=\"s\">'right'</span><span class=\"k\">,</span><span class=\"s\">'top'</span><span class=\"k\">,</span><span class=\"s\">'fontSize'</span><span class=\"k\">],</span>","            prop<span class=\"k\">,</span>i<span class=\"k\">;</span>","","        <span class=\"k\">for</span> <span class=\"k\">(</span>i <span class=\"k\">=</span> styleProps<span class=\"k\">.</span>length <span class=\"k\">-</span> <span class=\"s\">1</span><span class=\"k\">;</span> i <span class=\"k\">&gt;=</span> <span class=\"s\">0</span><span class=\"k\">;</span> <span class=\"k\">--</span>i<span class=\"k\">)</span> <span class=\"k\">{</span>","            prop <span class=\"k\">=</span> styleProps<span class=\"k\">[</span>i<span class=\"k\">];</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">[</span>prop<span class=\"k\">])</span><span class=\"k\">{</span> ","                style<span class=\"k\">[</span>prop<span class=\"k\">]</span> <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">[</span>prop<span class=\"k\">];</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","","        <span class=\"k\">if</span><span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>left<span class=\"k\">)</span> <span class=\"k\">{</span>","            style<span class=\"k\">.</span>left  <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>left<span class=\"k\">;</span>","            style<span class=\"k\">.</span>right <span class=\"k\">=</span> <span class=\"s\">\"auto\"</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","        <span class=\"k\">if</span><span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>bottom<span class=\"k\">)</span> <span class=\"k\">{</span>","            style<span class=\"k\">.</span>bottom <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>bottom<span class=\"k\">;</span>","            style<span class=\"k\">.</span>top    <span class=\"k\">=</span> <span class=\"s\">\"auto\"</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","","        <span class=\"c\">// Opera needs a little prodding to reflow sometimes</span>","        <span class=\"k\">if</span> <span class=\"k\">(</span>YAHOO<span class=\"k\">.</span>env<span class=\"k\">.</span>ua<span class=\"k\">.</span>opera<span class=\"k\">)</span> <span class=\"k\">{</span>","            d<span class=\"k\">.</span>body<span class=\"k\">.</span>style <span class=\"k\">+=</span> <span class=\"s\">''</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Initializes the header element.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _initHeaderEl</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _initHeaderEl <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"c\">// Destroy header if present</span>","        <span class=\"k\">if</span><span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elHd<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"c\">// Unhook DOM events</span>","            Event<span class=\"k\">.</span>purgeElement<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elHd<span class=\"k\">,</span> <span class=\"k\">true</span><span class=\"k\">);</span>","","            <span class=\"c\">// Remove DOM elements</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_elHd<span class=\"k\">.</span>innerHTML <span class=\"k\">=</span> <span class=\"s\">\"\"</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","        ","        <span class=\"c\">// Create header</span>","        <span class=\"c\">// TODO: refactor this into an innerHTML</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_elHd <span class=\"k\">=</span> make<span class=\"k\">(</span><span class=\"s\">\"div\"</span><span class=\"k\">,</span><span class=\"k\">{</span>","            id<span class=\"k\">:</span> <span class=\"s\">'yui-log-hd'</span> <span class=\"k\">+</span> <span class=\"k\">this</span><span class=\"k\">.</span>_sName<span class=\"k\">,</span>","            className<span class=\"k\">:</span> <span class=\"s\">\"yui-log-hd\"</span>","        <span class=\"k\">}</span><span class=\"k\">);</span>","","        <span class=\"k\">this</span><span class=\"k\">.</span>_elCollapse <span class=\"k\">=</span> make<span class=\"k\">(</span><span class=\"s\">\"div\"</span><span class=\"k\">,</span><span class=\"k\">{</span> className<span class=\"k\">:</span> <span class=\"s\">'yui-log-btns'</span> <span class=\"k\">}</span><span class=\"k\">);</span>","","        <span class=\"k\">this</span><span class=\"k\">.</span>_btnCollapse <span class=\"k\">=</span> make<span class=\"k\">(</span><span class=\"s\">\"input\"</span><span class=\"k\">,</span><span class=\"k\">{</span>","            type<span class=\"k\">:</span> <span class=\"s\">'button'</span><span class=\"k\">,</span>","            className<span class=\"k\">:</span> <span class=\"s\">'yui-log-button'</span><span class=\"k\">,</span>","            value<span class=\"k\">:</span> <span class=\"s\">'Collapse'</span>","        <span class=\"k\">}</span><span class=\"k\">);</span>","        Event<span class=\"k\">.</span>on<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_btnCollapse<span class=\"k\">,</span><span class=\"s\">'click'</span><span class=\"k\">,</span><span class=\"k\">this</span><span class=\"k\">.</span>_onClickCollapseBtn<span class=\"k\">,</span><span class=\"k\">this</span><span class=\"k\">);</span>","","","        <span class=\"k\">this</span><span class=\"k\">.</span>_title <span class=\"k\">=</span> make<span class=\"k\">(</span><span class=\"s\">\"h4\"</span><span class=\"k\">,</span><span class=\"k\">{</span> innerHTML <span class=\"k\">:</span> <span class=\"s\">\"Logger Console\"</span> <span class=\"k\">}</span><span class=\"k\">);</span>","","        <span class=\"k\">this</span><span class=\"k\">.</span>_elCollapse<span class=\"k\">.</span>appendChild<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_btnCollapse<span class=\"k\">);</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_elHd<span class=\"k\">.</span>appendChild<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elCollapse<span class=\"k\">);</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_elHd<span class=\"k\">.</span>appendChild<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_title<span class=\"k\">);</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_elContainer<span class=\"k\">.</span>appendChild<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elHd<span class=\"k\">);</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Initializes the console element.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _initConsoleEl</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _initConsoleEl <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"c\">// Destroy console</span>","        <span class=\"k\">if</span><span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elConsole<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"c\">// Unhook DOM events</span>","            Event<span class=\"k\">.</span>purgeElement<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elConsole<span class=\"k\">,</span> <span class=\"k\">true</span><span class=\"k\">);</span>","","            <span class=\"c\">// Remove DOM elements</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_elConsole<span class=\"k\">.</span>innerHTML <span class=\"k\">=</span> <span class=\"s\">\"\"</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","","        <span class=\"c\">// Ceate console</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_elConsole <span class=\"k\">=</span> make<span class=\"k\">(</span><span class=\"s\">\"div\"</span><span class=\"k\">,</span> <span class=\"k\">{</span> className<span class=\"k\">:</span> <span class=\"s\">\"yui-log-bd\"</span> <span class=\"k\">}</span><span class=\"k\">);</span>","","        <span class=\"c\">// If implementer has provided console, trust and set those</span>","        <span class=\"k\">if</span><span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>height<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_elConsole<span class=\"k\">.</span>style<span class=\"k\">.</span>height <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>height<span class=\"k\">;</span>","        <span class=\"k\">}</span>","","        <span class=\"k\">this</span><span class=\"k\">.</span>_elContainer<span class=\"k\">.</span>appendChild<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elConsole<span class=\"k\">);</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Initializes the footer element.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _initFooterEl</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _initFooterEl <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"c\">// Don't create footer elements if footer is disabled</span>","        <span class=\"k\">if</span><span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>footerEnabled<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"c\">// Destroy console</span>","            <span class=\"k\">if</span><span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elFt<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"c\">// Unhook DOM events</span>","                Event<span class=\"k\">.</span>purgeElement<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elFt<span class=\"k\">,</span> <span class=\"k\">true</span><span class=\"k\">);</span>","","                <span class=\"c\">// Remove DOM elements</span>","                <span class=\"k\">this</span><span class=\"k\">.</span>_elFt<span class=\"k\">.</span>innerHTML <span class=\"k\">=</span> <span class=\"s\">\"\"</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","","            <span class=\"c\">// TODO: use innerHTML</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_elFt <span class=\"k\">=</span> make<span class=\"k\">(</span><span class=\"s\">\"div\"</span><span class=\"k\">,</span><span class=\"k\">{</span> className<span class=\"k\">:</span> <span class=\"s\">\"yui-log-ft\"</span> <span class=\"k\">}</span><span class=\"k\">);</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_elBtns <span class=\"k\">=</span> make<span class=\"k\">(</span><span class=\"s\">\"div\"</span><span class=\"k\">,</span> <span class=\"k\">{</span> className<span class=\"k\">:</span> <span class=\"s\">\"yui-log-btns\"</span> <span class=\"k\">}</span><span class=\"k\">);</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_btnPause <span class=\"k\">=</span> make<span class=\"k\">(</span><span class=\"s\">\"input\"</span><span class=\"k\">,</span> <span class=\"k\">{</span>","                type<span class=\"k\">:</span> <span class=\"s\">\"button\"</span><span class=\"k\">,</span>","                className<span class=\"k\">:</span> <span class=\"s\">\"yui-log-button\"</span><span class=\"k\">,</span>","                value<span class=\"k\">:</span> <span class=\"s\">\"Pause\"</span>","            <span class=\"k\">}</span><span class=\"k\">);</span>","","            Event<span class=\"k\">.</span>on<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_btnPause<span class=\"k\">,</span><span class=\"s\">'click'</span><span class=\"k\">,</span><span class=\"k\">this</span><span class=\"k\">.</span>_onClickPauseBtn<span class=\"k\">,</span><span class=\"k\">this</span><span class=\"k\">);</span>","","            <span class=\"k\">this</span><span class=\"k\">.</span>_btnClear <span class=\"k\">=</span> make<span class=\"k\">(</span><span class=\"s\">\"input\"</span><span class=\"k\">,</span> <span class=\"k\">{</span>","                type<span class=\"k\">:</span> <span class=\"s\">\"button\"</span><span class=\"k\">,</span>","                className<span class=\"k\">:</span> <span class=\"s\">\"yui-log-button\"</span><span class=\"k\">,</span>","                value<span class=\"k\">:</span> <span class=\"s\">\"Clear\"</span>","            <span class=\"k\">}</span><span class=\"k\">);</span>","","            Event<span class=\"k\">.</span>on<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_btnClear<span class=\"k\">,</span><span class=\"s\">'click'</span><span class=\"k\">,</span><span class=\"k\">this</span><span class=\"k\">.</span>_onClickClearBtn<span class=\"k\">,</span><span class=\"k\">this</span><span class=\"k\">);</span>","","            <span class=\"k\">this</span><span class=\"k\">.</span>_elCategoryFilters <span class=\"k\">=</span> make<span class=\"k\">(</span><span class=\"s\">\"div\"</span><span class=\"k\">,</span> <span class=\"k\">{</span> className<span class=\"k\">:</span> <span class=\"s\">\"yui-log-categoryfilters\"</span> <span class=\"k\">}</span><span class=\"k\">);</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_elSourceFilters <span class=\"k\">=</span> make<span class=\"k\">(</span><span class=\"s\">\"div\"</span><span class=\"k\">,</span> <span class=\"k\">{</span> className<span class=\"k\">:</span> <span class=\"s\">\"yui-log-sourcefilters\"</span> <span class=\"k\">}</span><span class=\"k\">);</span>","","            <span class=\"k\">this</span><span class=\"k\">.</span>_elBtns<span class=\"k\">.</span>appendChild<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_btnPause<span class=\"k\">);</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_elBtns<span class=\"k\">.</span>appendChild<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_btnClear<span class=\"k\">);</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_elFt<span class=\"k\">.</span>appendChild<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elBtns<span class=\"k\">);</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_elFt<span class=\"k\">.</span>appendChild<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elCategoryFilters<span class=\"k\">);</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_elFt<span class=\"k\">.</span>appendChild<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elSourceFilters<span class=\"k\">);</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_elContainer<span class=\"k\">.</span>appendChild<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elFt<span class=\"k\">);</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Initializes Drag and Drop on the header element.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _initDragDrop</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _initDragDrop <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"c\">// If Drag and Drop utility is available...</span>","        <span class=\"c\">// ...and draggable is true...</span>","        <span class=\"c\">// ...then make the header draggable</span>","        <span class=\"k\">if</span><span class=\"k\">(</span>u<span class=\"k\">.</span>DD <span class=\"k\">&amp;&amp;</span> <span class=\"k\">this</span><span class=\"k\">.</span>draggable <span class=\"k\">&amp;&amp;</span> <span class=\"k\">this</span><span class=\"k\">.</span>_elHd<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> ylog_dd <span class=\"k\">=</span> <span class=\"k\">new</span> u<span class=\"k\">.</span>DD<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elContainer<span class=\"k\">);</span>","            ylog_dd<span class=\"k\">.</span>setHandleElId<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elHd<span class=\"k\">.</span>id<span class=\"k\">);</span>","            <span class=\"c\">//TODO: use class name</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_elHd<span class=\"k\">.</span>style<span class=\"k\">.</span>cursor <span class=\"k\">=</span> <span class=\"s\">\"move\"</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Initializes category filters.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _initCategories</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _initCategories <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"c\">// Initialize category filters</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_categoryFilters <span class=\"k\">=</span> <span class=\"k\">[];</span>","        <span class=\"k\">var</span> aInitialCategories <span class=\"k\">=</span> Logger<span class=\"k\">.</span>categories<span class=\"k\">;</span>","","        <span class=\"k\">for</span><span class=\"k\">(</span><span class=\"k\">var</span> j<span class=\"k\">=</span><span class=\"s\">0</span><span class=\"k\">;</span> j <span class=\"k\">&lt;</span> aInitialCategories<span class=\"k\">.</span>length<span class=\"k\">;</span> j<span class=\"k\">++)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> sCategory <span class=\"k\">=</span> aInitialCategories<span class=\"k\">[</span>j<span class=\"k\">];</span>","","            <span class=\"c\">// Add category to the internal array of filters</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_categoryFilters<span class=\"k\">.</span>push<span class=\"k\">(</span>sCategory<span class=\"k\">);</span>","","            <span class=\"c\">// Add checkbox element if UI is enabled</span>","            <span class=\"k\">if</span><span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elCategoryFilters<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">this</span><span class=\"k\">.</span>_createCategoryCheckbox<span class=\"k\">(</span>sCategory<span class=\"k\">);</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Initializes source filters.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _initSources</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _initSources <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"c\">// Initialize source filters</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_sourceFilters <span class=\"k\">=</span> <span class=\"k\">[];</span>","        <span class=\"k\">var</span> aInitialSources <span class=\"k\">=</span> Logger<span class=\"k\">.</span>sources<span class=\"k\">;</span>","","        <span class=\"k\">for</span><span class=\"k\">(</span><span class=\"k\">var</span> j<span class=\"k\">=</span><span class=\"s\">0</span><span class=\"k\">;</span> j <span class=\"k\">&lt;</span> aInitialSources<span class=\"k\">.</span>length<span class=\"k\">;</span> j<span class=\"k\">++)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> sSource <span class=\"k\">=</span> aInitialSources<span class=\"k\">[</span>j<span class=\"k\">];</span>","","            <span class=\"c\">// Add source to the internal array of filters</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_sourceFilters<span class=\"k\">.</span>push<span class=\"k\">(</span>sSource<span class=\"k\">);</span>","","            <span class=\"c\">// Add checkbox element if UI is enabled</span>","            <span class=\"k\">if</span><span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elSourceFilters<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">this</span><span class=\"k\">.</span>_createSourceCheckbox<span class=\"k\">(</span>sSource<span class=\"k\">);</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Creates the UI for a category filter in the LogReader footer element.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _createCategoryCheckbox</span>","<span class=\"c\">     * @param sCategory {String} Category name.</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _createCategoryCheckbox <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>sCategory<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">if</span><span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elFt<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> filter <span class=\"k\">=</span> make<span class=\"k\">(</span><span class=\"s\">\"span\"</span><span class=\"k\">,</span><span class=\"k\">{</span> className<span class=\"k\">:</span> <span class=\"s\">\"yui-log-filtergrp\"</span> <span class=\"k\">}</span><span class=\"k\">),</span>","                check  <span class=\"k\">=</span> make<span class=\"k\">(</span><span class=\"s\">\"input\"</span><span class=\"k\">,</span> <span class=\"k\">{</span>","                    id<span class=\"k\">:</span> <span class=\"s\">\"yui-log-filter-\"</span> <span class=\"k\">+</span> sCategory <span class=\"k\">+</span> <span class=\"k\">this</span><span class=\"k\">.</span>_sName<span class=\"k\">,</span>","                    className<span class=\"k\">:</span> <span class=\"s\">\"yui-log-filter-\"</span> <span class=\"k\">+</span> sCategory<span class=\"k\">,</span>","                    type<span class=\"k\">:</span> <span class=\"s\">\"checkbox\"</span><span class=\"k\">,</span>","                    category<span class=\"k\">:</span> sCategory","                <span class=\"k\">}</span><span class=\"k\">),</span>","                label  <span class=\"k\">=</span> make<span class=\"k\">(</span><span class=\"s\">\"label\"</span><span class=\"k\">,</span> <span class=\"k\">{</span>","                    htmlFor<span class=\"k\">:</span> check<span class=\"k\">.</span>id<span class=\"k\">,</span>","                    className<span class=\"k\">:</span> sCategory<span class=\"k\">,</span>","                    innerHTML<span class=\"k\">:</span> sCategory","                <span class=\"k\">}</span><span class=\"k\">);</span>","            ","","            <span class=\"c\">// Subscribe to the click event</span>","            Event<span class=\"k\">.</span>on<span class=\"k\">(</span>check<span class=\"k\">,</span><span class=\"s\">'click'</span><span class=\"k\">,</span><span class=\"k\">this</span><span class=\"k\">.</span>_onCheckCategory<span class=\"k\">,</span><span class=\"k\">this</span><span class=\"k\">);</span>","","            <span class=\"k\">this</span><span class=\"k\">.</span>_filterCheckboxes<span class=\"k\">[</span>sCategory<span class=\"k\">]</span> <span class=\"k\">=</span> check<span class=\"k\">;</span>","","            <span class=\"c\">// Append el at the end so IE 5.5 can set \"type\" attribute</span>","            <span class=\"c\">// and THEN set checked property</span>","            filter<span class=\"k\">.</span>appendChild<span class=\"k\">(</span>check<span class=\"k\">);</span>","            filter<span class=\"k\">.</span>appendChild<span class=\"k\">(</span>label<span class=\"k\">);</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_elCategoryFilters<span class=\"k\">.</span>appendChild<span class=\"k\">(</span>filter<span class=\"k\">);</span>","            check<span class=\"k\">.</span>checked <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Creates a checkbox in the LogReader footer element to filter by source.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _createSourceCheckbox</span>","<span class=\"c\">     * @param sSource {String} Source name.</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _createSourceCheckbox <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>sSource<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">if</span><span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elFt<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> filter <span class=\"k\">=</span> make<span class=\"k\">(</span><span class=\"s\">\"span\"</span><span class=\"k\">,</span><span class=\"k\">{</span> className<span class=\"k\">:</span> <span class=\"s\">\"yui-log-filtergrp\"</span> <span class=\"k\">}</span><span class=\"k\">),</span>","                check  <span class=\"k\">=</span> make<span class=\"k\">(</span><span class=\"s\">\"input\"</span><span class=\"k\">,</span> <span class=\"k\">{</span>","                    id<span class=\"k\">:</span> <span class=\"s\">\"yui-log-filter-\"</span> <span class=\"k\">+</span> sSource <span class=\"k\">+</span> <span class=\"k\">this</span><span class=\"k\">.</span>_sName<span class=\"k\">,</span>","                    className<span class=\"k\">:</span> <span class=\"s\">\"yui-log-filter-\"</span> <span class=\"k\">+</span> sSource<span class=\"k\">,</span>","                    type<span class=\"k\">:</span> <span class=\"s\">\"checkbox\"</span><span class=\"k\">,</span>","                    source<span class=\"k\">:</span> sSource","                <span class=\"k\">}</span><span class=\"k\">),</span>","                label  <span class=\"k\">=</span> make<span class=\"k\">(</span><span class=\"s\">\"label\"</span><span class=\"k\">,</span> <span class=\"k\">{</span>","                    htmlFor<span class=\"k\">:</span> check<span class=\"k\">.</span>id<span class=\"k\">,</span>","                    className<span class=\"k\">:</span> sSource<span class=\"k\">,</span>","                    innerHTML<span class=\"k\">:</span> sSource","                <span class=\"k\">}</span><span class=\"k\">);</span>","            ","","            <span class=\"c\">// Subscribe to the click event</span>","            Event<span class=\"k\">.</span>on<span class=\"k\">(</span>check<span class=\"k\">,</span><span class=\"s\">'click'</span><span class=\"k\">,</span><span class=\"k\">this</span><span class=\"k\">.</span>_onCheckSource<span class=\"k\">,</span><span class=\"k\">this</span><span class=\"k\">);</span>","","            <span class=\"k\">this</span><span class=\"k\">.</span>_filterCheckboxes<span class=\"k\">[</span>sSource<span class=\"k\">]</span> <span class=\"k\">=</span> check<span class=\"k\">;</span>","","            <span class=\"c\">// Append el at the end so IE 5.5 can set \"type\" attribute</span>","            <span class=\"c\">// and THEN set checked property</span>","            filter<span class=\"k\">.</span>appendChild<span class=\"k\">(</span>check<span class=\"k\">);</span>","            filter<span class=\"k\">.</span>appendChild<span class=\"k\">(</span>label<span class=\"k\">);</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_elSourceFilters<span class=\"k\">.</span>appendChild<span class=\"k\">(</span>filter<span class=\"k\">);</span>","            check<span class=\"k\">.</span>checked <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Reprints all log messages in the stack through filters.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _filterLogs</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _filterLogs <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"c\">// Reprint stack with new filters</span>","        <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elConsole <span class=\"k\">!==</span> <span class=\"k\">null</span><span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>clearConsole<span class=\"k\">();</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_printToConsole<span class=\"k\">(</span>Logger<span class=\"k\">.</span>getStack<span class=\"k\">());</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Sends buffer of log messages to output and clears buffer.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _printBuffer</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _printBuffer <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","        <span class=\"k\">this</span><span class=\"k\">.</span>_timeout <span class=\"k\">=</span> <span class=\"k\">null</span><span class=\"k\">;</span>","","        <span class=\"k\">if</span><span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_elConsole <span class=\"k\">!==</span> <span class=\"k\">null</span><span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> thresholdMax <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>thresholdMax<span class=\"k\">;</span>","            thresholdMax <span class=\"k\">=</span> <span class=\"k\">(</span>thresholdMax <span class=\"k\">&amp;&amp;</span> <span class=\"k\">!</span>isNaN<span class=\"k\">(</span>thresholdMax<span class=\"k\">))</span> <span class=\"k\">?</span> thresholdMax <span class=\"k\">:</span> <span class=\"s\">500</span><span class=\"k\">;</span>","            <span class=\"k\">if</span><span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_consoleMsgCount <span class=\"k\">&lt;</span> thresholdMax<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">var</span> entries <span class=\"k\">=</span> <span class=\"k\">[];</span>","                <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> i<span class=\"k\">=</span><span class=\"s\">0</span><span class=\"k\">;</span> i<span class=\"k\">&lt;</span><span class=\"k\">this</span><span class=\"k\">.</span>_buffer<span class=\"k\">.</span>length<span class=\"k\">;</span> i<span class=\"k\">++)</span> <span class=\"k\">{</span>","                    entries<span class=\"k\">[</span>i<span class=\"k\">]</span> <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>_buffer<span class=\"k\">[</span>i<span class=\"k\">];</span>","                <span class=\"k\">}</span>","                <span class=\"k\">this</span><span class=\"k\">.</span>_buffer <span class=\"k\">=</span> <span class=\"k\">[];</span>","                <span class=\"k\">this</span><span class=\"k\">.</span>_printToConsole<span class=\"k\">(</span>entries<span class=\"k\">);</span>","            <span class=\"k\">}</span>","            <span class=\"k\">else</span> <span class=\"k\">{</span>","                <span class=\"k\">this</span><span class=\"k\">.</span>_filterLogs<span class=\"k\">();</span>","            <span class=\"k\">}</span>","            ","            <span class=\"k\">if</span><span class=\"k\">(!</span><span class=\"k\">this</span><span class=\"k\">.</span>newestOnTop<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">this</span><span class=\"k\">.</span>_elConsole<span class=\"k\">.</span>scrollTop <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>_elConsole<span class=\"k\">.</span>scrollHeight<span class=\"k\">;</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Cycles through an array of log messages, and outputs each one to the console</span>","<span class=\"c\">     * if its category has not been filtered out.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _printToConsole</span>","<span class=\"c\">     * @param aEntries {Object[]} Array of LogMsg objects to output to console.</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _printToConsole <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>aEntries<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"c\">// Manage the number of messages displayed in the console</span>","        <span class=\"k\">var</span> entriesLen         <span class=\"k\">=</span> aEntries<span class=\"k\">.</span>length<span class=\"k\">,</span>","            df                 <span class=\"k\">=</span> d<span class=\"k\">.</span>createDocumentFragment<span class=\"k\">(),</span>","            msgHTML            <span class=\"k\">=</span> <span class=\"k\">[],</span>","            thresholdMin       <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>thresholdMin<span class=\"k\">,</span>","            sourceFiltersLen   <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>_sourceFilters<span class=\"k\">.</span>length<span class=\"k\">,</span>","            categoryFiltersLen <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>_categoryFilters<span class=\"k\">.</span>length<span class=\"k\">,</span>","            entriesStartIndex<span class=\"k\">,</span>","            i<span class=\"k\">,</span> j<span class=\"k\">,</span> msg<span class=\"k\">,</span> before<span class=\"k\">;</span>","","        <span class=\"k\">if</span><span class=\"k\">(</span>isNaN<span class=\"k\">(</span>thresholdMin<span class=\"k\">)</span> <span class=\"k\">||</span> <span class=\"k\">(</span>thresholdMin <span class=\"k\">&gt;</span> <span class=\"k\">this</span><span class=\"k\">.</span>thresholdMax<span class=\"k\">))</span> <span class=\"k\">{</span>","            thresholdMin <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","        entriesStartIndex <span class=\"k\">=</span> <span class=\"k\">(</span>entriesLen <span class=\"k\">&gt;</span> thresholdMin<span class=\"k\">)</span> <span class=\"k\">?</span> <span class=\"k\">(</span>entriesLen <span class=\"k\">-</span> thresholdMin<span class=\"k\">)</span> <span class=\"k\">:</span> <span class=\"s\">0</span><span class=\"k\">;</span>","        ","        <span class=\"c\">// Iterate through all log entries </span>","        <span class=\"k\">for</span><span class=\"k\">(</span>i<span class=\"k\">=</span>entriesStartIndex<span class=\"k\">;</span> i<span class=\"k\">&lt;</span>entriesLen<span class=\"k\">;</span> i<span class=\"k\">++)</span> <span class=\"k\">{</span>","            <span class=\"c\">// Print only the ones that filter through</span>","            <span class=\"k\">var</span> okToPrint <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">,</span>","                okToFilterCats <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">,</span>","                entry <span class=\"k\">=</span> aEntries<span class=\"k\">[</span>i<span class=\"k\">],</span>","                source <span class=\"k\">=</span> entry<span class=\"k\">.</span>source<span class=\"k\">,</span>","                category <span class=\"k\">=</span> entry<span class=\"k\">.</span>category<span class=\"k\">;</span>","","            <span class=\"k\">for</span><span class=\"k\">(</span>j<span class=\"k\">=</span><span class=\"s\">0</span><span class=\"k\">;</span> j<span class=\"k\">&lt;</span>sourceFiltersLen<span class=\"k\">;</span> j<span class=\"k\">++)</span> <span class=\"k\">{</span>","                <span class=\"k\">if</span><span class=\"k\">(</span>source <span class=\"k\">==</span> <span class=\"k\">this</span><span class=\"k\">.</span>_sourceFilters<span class=\"k\">[</span>j<span class=\"k\">])</span> <span class=\"k\">{</span>","                    okToFilterCats <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","                    <span class=\"k\">break</span><span class=\"k\">;</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>okToFilterCats<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">for</span><span class=\"k\">(</span>j<span class=\"k\">=</span><span class=\"s\">0</span><span class=\"k\">;</span> j<span class=\"k\">&lt;</span>categoryFiltersLen<span class=\"k\">;</span> j<span class=\"k\">++)</span> <span class=\"k\">{</span>","                    <span class=\"k\">if</span><span class=\"k\">(</span>category <span class=\"k\">==</span> <span class=\"k\">this</span><span class=\"k\">.</span>_categoryFilters<span class=\"k\">[</span>j<span class=\"k\">])</span> <span class=\"k\">{</span>","                        okToPrint <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","                        <span class=\"k\">break</span><span class=\"k\">;</span>","                    <span class=\"k\">}</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","            <span class=\"k\">if</span><span class=\"k\">(</span>okToPrint<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"c\">// Start from 0ms elapsed time</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>_consoleMsgCount <span class=\"k\">===</span> <span class=\"s\">0</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                    <span class=\"k\">this</span><span class=\"k\">.</span>_lastTime <span class=\"k\">=</span> entry<span class=\"k\">.</span>time<span class=\"k\">.</span>getTime<span class=\"k\">();</span>","                <span class=\"k\">}</span>","","                msg <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>formatMsg<span class=\"k\">(</span>entry<span class=\"k\">);</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"k\">typeof</span> msg <span class=\"k\">===</span> <span class=\"s\">'string'</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                    msgHTML<span class=\"k\">[</span>msgHTML<span class=\"k\">.</span>length<span class=\"k\">]</span> <span class=\"k\">=</span> msg<span class=\"k\">;</span>","                <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                    df<span class=\"k\">.</span>insertBefore<span class=\"k\">(</span>msg<span class=\"k\">,</span> <span class=\"k\">this</span><span class=\"k\">.</span>newestOnTop <span class=\"k\">?</span>","                        df<span class=\"k\">.</span>firstChild <span class=\"k\">||</span> <span class=\"k\">null</span> <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">);</span>","                <span class=\"k\">}</span>","                <span class=\"k\">this</span><span class=\"k\">.</span>_consoleMsgCount<span class=\"k\">++;</span>","                <span class=\"k\">this</span><span class=\"k\">.</span>_lastTime <span class=\"k\">=</span> entry<span class=\"k\">.</span>time<span class=\"k\">.</span>getTime<span class=\"k\">();</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","","        <span class=\"k\">if</span> <span class=\"k\">(</span>msgHTML<span class=\"k\">.</span>length<span class=\"k\">)</span> <span class=\"k\">{</span>","            msgHTML<span class=\"k\">.</span>splice<span class=\"k\">(</span><span class=\"s\">0</span><span class=\"k\">,</span><span class=\"s\">0</span><span class=\"k\">,</span><span class=\"k\">this</span><span class=\"k\">.</span>_elConsole<span class=\"k\">.</span>innerHTML<span class=\"k\">);</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_elConsole<span class=\"k\">.</span>innerHTML <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>newestOnTop <span class=\"k\">?</span>","                                            msgHTML<span class=\"k\">.</span>reverse<span class=\"k\">().</span>join<span class=\"k\">(</span><span class=\"s\">''</span><span class=\"k\">)</span> <span class=\"k\">:</span>","                                            msgHTML<span class=\"k\">.</span>join<span class=\"k\">(</span><span class=\"s\">''</span><span class=\"k\">);</span>","        <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">if</span> <span class=\"k\">(</span>df<span class=\"k\">.</span>firstChild<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_elConsole<span class=\"k\">.</span>insertBefore<span class=\"k\">(</span>df<span class=\"k\">,</span> <span class=\"k\">this</span><span class=\"k\">.</span>newestOnTop <span class=\"k\">?</span>","                        <span class=\"k\">this</span><span class=\"k\">.</span>_elConsole<span class=\"k\">.</span>firstChild <span class=\"k\">||</span> <span class=\"k\">null</span> <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">);</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","<span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","<span class=\"c\">//</span>","<span class=\"c\">// Private event handlers</span>","<span class=\"c\">//</span>","<span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Handles Logger's categoryCreateEvent.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _onCategoryCreate</span>","<span class=\"c\">     * @param sType {String} The event.</span>","<span class=\"c\">     * @param aArgs {Object[]} Data passed from event firer.</span>","<span class=\"c\">     * @param oSelf {Object} The LogReader instance.</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _onCategoryCreate <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>sType<span class=\"k\">,</span> aArgs<span class=\"k\">,</span> oSelf<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">var</span> category <span class=\"k\">=</span> aArgs<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">];</span>","        ","        <span class=\"c\">// Add category to the internal array of filters</span>","        oSelf<span class=\"k\">.</span>_categoryFilters<span class=\"k\">.</span>push<span class=\"k\">(</span>category<span class=\"k\">);</span>","","        <span class=\"k\">if</span><span class=\"k\">(</span>oSelf<span class=\"k\">.</span>_elFt<span class=\"k\">)</span> <span class=\"k\">{</span>","            oSelf<span class=\"k\">.</span>_createCategoryCheckbox<span class=\"k\">(</span>category<span class=\"k\">);</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Handles Logger's sourceCreateEvent.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _onSourceCreate</span>","<span class=\"c\">     * @param sType {String} The event.</span>","<span class=\"c\">     * @param aArgs {Object[]} Data passed from event firer.</span>","<span class=\"c\">     * @param oSelf {Object} The LogReader instance.</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _onSourceCreate <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>sType<span class=\"k\">,</span> aArgs<span class=\"k\">,</span> oSelf<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">var</span> source <span class=\"k\">=</span> aArgs<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">];</span>","        ","        <span class=\"c\">// Add source to the internal array of filters</span>","        oSelf<span class=\"k\">.</span>_sourceFilters<span class=\"k\">.</span>push<span class=\"k\">(</span>source<span class=\"k\">);</span>","","        <span class=\"k\">if</span><span class=\"k\">(</span>oSelf<span class=\"k\">.</span>_elFt<span class=\"k\">)</span> <span class=\"k\">{</span>","            oSelf<span class=\"k\">.</span>_createSourceCheckbox<span class=\"k\">(</span>source<span class=\"k\">);</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Handles check events on the category filter checkboxes.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _onCheckCategory</span>","<span class=\"c\">     * @param v {HTMLEvent} The click event.</span>","<span class=\"c\">     * @param oSelf {Object} The LogReader instance.</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _onCheckCategory <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>v<span class=\"k\">,</span> oSelf<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">var</span> category <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>category<span class=\"k\">;</span>","        <span class=\"k\">if</span><span class=\"k\">(!</span><span class=\"k\">this</span><span class=\"k\">.</span>checked<span class=\"k\">)</span> <span class=\"k\">{</span>","            oSelf<span class=\"k\">.</span>hideCategory<span class=\"k\">(</span>category<span class=\"k\">);</span>","        <span class=\"k\">}</span>","        <span class=\"k\">else</span> <span class=\"k\">{</span>","            oSelf<span class=\"k\">.</span>showCategory<span class=\"k\">(</span>category<span class=\"k\">);</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Handles check events on the category filter checkboxes.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _onCheckSource</span>","<span class=\"c\">     * @param v {HTMLEvent} The click event.</span>","<span class=\"c\">     * @param oSelf {Object} The LogReader instance.</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _onCheckSource <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>v<span class=\"k\">,</span> oSelf<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">var</span> source <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>source<span class=\"k\">;</span>","        <span class=\"k\">if</span><span class=\"k\">(!</span><span class=\"k\">this</span><span class=\"k\">.</span>checked<span class=\"k\">)</span> <span class=\"k\">{</span>","            oSelf<span class=\"k\">.</span>hideSource<span class=\"k\">(</span>source<span class=\"k\">);</span>","        <span class=\"k\">}</span>","        <span class=\"k\">else</span> <span class=\"k\">{</span>","            oSelf<span class=\"k\">.</span>showSource<span class=\"k\">(</span>source<span class=\"k\">);</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Handles click events on the collapse button.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _onClickCollapseBtn</span>","<span class=\"c\">     * @param v {HTMLEvent} The click event.</span>","<span class=\"c\">     * @param oSelf {Object} The LogReader instance</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _onClickCollapseBtn <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>v<span class=\"k\">,</span> oSelf<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">if</span><span class=\"k\">(!</span>oSelf<span class=\"k\">.</span>isCollapsed<span class=\"k\">)</span> <span class=\"k\">{</span>","            oSelf<span class=\"k\">.</span>collapse<span class=\"k\">();</span>","        <span class=\"k\">}</span>","        <span class=\"k\">else</span> <span class=\"k\">{</span>","            oSelf<span class=\"k\">.</span>expand<span class=\"k\">();</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Handles click events on the pause button.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _onClickPauseBtn</span>","<span class=\"c\">     * @param v {HTMLEvent} The click event.</span>","<span class=\"c\">     * @param oSelf {Object} The LogReader instance.</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _onClickPauseBtn <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>v<span class=\"k\">,</span> oSelf<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">if</span><span class=\"k\">(!</span>oSelf<span class=\"k\">.</span>isPaused<span class=\"k\">)</span> <span class=\"k\">{</span>","            oSelf<span class=\"k\">.</span>pause<span class=\"k\">();</span>","        <span class=\"k\">}</span>","        <span class=\"k\">else</span> <span class=\"k\">{</span>","            oSelf<span class=\"k\">.</span>resume<span class=\"k\">();</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Handles click events on the clear button.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _onClickClearBtn</span>","<span class=\"c\">     * @param v {HTMLEvent} The click event.</span>","<span class=\"c\">     * @param oSelf {Object} The LogReader instance.</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _onClickClearBtn <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>v<span class=\"k\">,</span> oSelf<span class=\"k\">)</span> <span class=\"k\">{</span>","        oSelf<span class=\"k\">.</span>clearConsole<span class=\"k\">();</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Handles Logger's newLogEvent.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _onNewLog</span>","<span class=\"c\">     * @param sType {String} The event.</span>","<span class=\"c\">     * @param aArgs {Object[]} Data passed from event firer.</span>","<span class=\"c\">     * @param oSelf {Object} The LogReader instance.</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _onNewLog <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>sType<span class=\"k\">,</span> aArgs<span class=\"k\">,</span> oSelf<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">var</span> logEntry <span class=\"k\">=</span> aArgs<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">];</span>","        oSelf<span class=\"k\">.</span>_buffer<span class=\"k\">.</span>push<span class=\"k\">(</span>logEntry<span class=\"k\">);</span>","","        <span class=\"k\">if</span> <span class=\"k\">(</span>oSelf<span class=\"k\">.</span>logReaderEnabled <span class=\"k\">===</span> <span class=\"k\">true</span> <span class=\"k\">&amp;&amp;</span> oSelf<span class=\"k\">.</span>_timeout <span class=\"k\">===</span> <span class=\"k\">null</span><span class=\"k\">)</span> <span class=\"k\">{</span>","            oSelf<span class=\"k\">.</span>_timeout <span class=\"k\">=</span> setTimeout<span class=\"k\">(</span><span class=\"k\">function</span><span class=\"k\">()</span><span class=\"k\">{</span>oSelf<span class=\"k\">.</span>_printBuffer<span class=\"k\">();</span><span class=\"k\">}</span><span class=\"k\">,</span> oSelf<span class=\"k\">.</span>outputBuffer<span class=\"k\">);</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * Handles Logger's resetEvent.</span>","<span class=\"c\">     *</span>","<span class=\"c\">     * @method _onReset</span>","<span class=\"c\">     * @param sType {String} The event.</span>","<span class=\"c\">     * @param aArgs {Object[]} Data passed from event firer.</span>","<span class=\"c\">     * @param oSelf {Object} The LogReader instance.</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     */</span>","    _onReset <span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>sType<span class=\"k\">,</span> aArgs<span class=\"k\">,</span> oSelf<span class=\"k\">)</span> <span class=\"k\">{</span>","        oSelf<span class=\"k\">.</span>_filterLogs<span class=\"k\">();</span>","    <span class=\"k\">}</span>","<span class=\"k\">}</span><span class=\"k\">;</span>","","YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>LogReader <span class=\"k\">=</span> LogReader<span class=\"k\">;</span>","","<span class=\"k\">}</span><span class=\"k\">)();</span>","YAHOO<span class=\"k\">.</span>register<span class=\"k\">(</span><span class=\"s\">\"logger\"</span><span class=\"k\">,</span> YAHOO<span class=\"k\">.</span>widget<span class=\"k\">.</span>Logger<span class=\"k\">,</span> <span class=\"k\">{</span>version<span class=\"k\">:</span> <span class=\"s\">\"2.8.0r4\"</span><span class=\"k\">,</span> build<span class=\"k\">:</span> <span class=\"s\">\"2449\"</span><span class=\"k\">}</span><span class=\"k\">);</span>"];
_$jscoverage['build/logger/logger.js'][18]++;
YAHOO.widget.LogMsg = (function (oConfigs) {
  _$jscoverage['build/logger/logger.js'][26]++;
  this.msg = (this.time = (this.category = (this.source = (this.sourceDetail = null))));
  _$jscoverage['build/logger/logger.js'][60]++;
  if ((oConfigs && (oConfigs.constructor == Object))) {
    _$jscoverage['build/logger/logger.js'][61]++;
    for (var param in oConfigs) {
      _$jscoverage['build/logger/logger.js'][62]++;
      if (oConfigs.hasOwnProperty(param)) {
        _$jscoverage['build/logger/logger.js'][63]++;
        this[param] = oConfigs[param];
      }
}
  }
});
_$jscoverage['build/logger/logger.js'][80]++;
YAHOO.widget.LogWriter = (function (sSource) {
  _$jscoverage['build/logger/logger.js'][81]++;
  if ((! sSource)) {
    _$jscoverage['build/logger/logger.js'][82]++;
    YAHOO.log("Could not instantiate LogWriter due to invalid source.", "error", "LogWriter");
    _$jscoverage['build/logger/logger.js'][84]++;
    return;
  }
  _$jscoverage['build/logger/logger.js'][86]++;
  this._source = sSource;
});
_$jscoverage['build/logger/logger.js'][101]++;
YAHOO.widget.LogWriter.prototype.toString = (function () {
  _$jscoverage['build/logger/logger.js'][102]++;
  return ("LogWriter " + this._sSource);
});
_$jscoverage['build/logger/logger.js'][112]++;
YAHOO.widget.LogWriter.prototype.log = (function (sMsg, sCategory) {
  _$jscoverage['build/logger/logger.js'][113]++;
  YAHOO.widget.Logger.log(sMsg, sCategory, this._source);
});
_$jscoverage['build/logger/logger.js'][122]++;
YAHOO.widget.LogWriter.prototype.getSource = (function () {
  _$jscoverage['build/logger/logger.js'][123]++;
  return this._source;
});
_$jscoverage['build/logger/logger.js'][132]++;
YAHOO.widget.LogWriter.prototype.setSource = (function (sSource) {
  _$jscoverage['build/logger/logger.js'][133]++;
  if ((! sSource)) {
    _$jscoverage['build/logger/logger.js'][134]++;
    YAHOO.log("Could not set source due to invalid source.", "error", this.toString());
    _$jscoverage['build/logger/logger.js'][135]++;
    return;
  }
  else {
    _$jscoverage['build/logger/logger.js'][138]++;
    this._source = sSource;
  }
});
_$jscoverage['build/logger/logger.js'][155]++;
YAHOO.widget.LogWriter.prototype._source = null;
_$jscoverage['build/logger/logger.js'][178]++;
if ((! YAHOO.widget.Logger)) {
  _$jscoverage['build/logger/logger.js'][189]++;
  YAHOO.widget.Logger = {loggerEnabled: true, _browserConsoleEnabled: false, categories: ["info", "warn", "error", "time", "window"], sources: ["global"], _stack: [], maxStackEntries: 2500, _startTime: new Date().getTime(), _lastTime: null, _windowErrorsHandled: false, _origOnWindowError: null};
  _$jscoverage['build/logger/logger.js'][299]++;
  YAHOO.widget.Logger.log = (function (sMsg, sCategory, sSource) {
  _$jscoverage['build/logger/logger.js'][300]++;
  if (this.loggerEnabled) {
    _$jscoverage['build/logger/logger.js'][301]++;
    if ((! sCategory)) {
      _$jscoverage['build/logger/logger.js'][302]++;
      sCategory = "info";
    }
    else {
      _$jscoverage['build/logger/logger.js'][305]++;
      sCategory = sCategory.toLocaleLowerCase();
      _$jscoverage['build/logger/logger.js'][306]++;
      if (this._isNewCategory(sCategory)) {
        _$jscoverage['build/logger/logger.js'][307]++;
        this._createNewCategory(sCategory);
      }
    }
    _$jscoverage['build/logger/logger.js'][310]++;
    var sClass = "global";
    _$jscoverage['build/logger/logger.js'][311]++;
    var sDetail = null;
    _$jscoverage['build/logger/logger.js'][312]++;
    if (sSource) {
      _$jscoverage['build/logger/logger.js'][313]++;
      var spaceIndex = sSource.indexOf(" ");
      _$jscoverage['build/logger/logger.js'][314]++;
      if ((spaceIndex > 0)) {
        _$jscoverage['build/logger/logger.js'][316]++;
        sClass = sSource.substring(0, spaceIndex);
        _$jscoverage['build/logger/logger.js'][318]++;
        sDetail = sSource.substring(spaceIndex, sSource.length);
      }
      else {
        _$jscoverage['build/logger/logger.js'][321]++;
        sClass = sSource;
      }
      _$jscoverage['build/logger/logger.js'][323]++;
      if (this._isNewSource(sClass)) {
        _$jscoverage['build/logger/logger.js'][324]++;
        this._createNewSource(sClass);
      }
    }
    _$jscoverage['build/logger/logger.js'][328]++;
    var timestamp = new Date();
    _$jscoverage['build/logger/logger.js'][329]++;
    var logEntry = new (YAHOO.widget.LogMsg)({msg: sMsg, time: timestamp, category: sCategory, source: sClass, sourceDetail: sDetail});
    _$jscoverage['build/logger/logger.js'][337]++;
    var stack = this._stack;
    _$jscoverage['build/logger/logger.js'][338]++;
    var maxStackEntries = this.maxStackEntries;
    _$jscoverage['build/logger/logger.js'][339]++;
    if ((maxStackEntries && (! isNaN(maxStackEntries)) && (stack.length >= maxStackEntries))) {
      _$jscoverage['build/logger/logger.js'][341]++;
      stack.shift();
    }
    _$jscoverage['build/logger/logger.js'][343]++;
    stack.push(logEntry);
    _$jscoverage['build/logger/logger.js'][344]++;
    this.newLogEvent.fire(logEntry);
    _$jscoverage['build/logger/logger.js'][346]++;
    if (this._browserConsoleEnabled) {
      _$jscoverage['build/logger/logger.js'][347]++;
      this._printToBrowserConsole(logEntry);
    }
    _$jscoverage['build/logger/logger.js'][349]++;
    return true;
  }
  else {
    _$jscoverage['build/logger/logger.js'][352]++;
    return false;
  }
});
  _$jscoverage['build/logger/logger.js'][361]++;
  YAHOO.widget.Logger.reset = (function () {
  _$jscoverage['build/logger/logger.js'][362]++;
  this._stack = [];
  _$jscoverage['build/logger/logger.js'][363]++;
  this._startTime = new Date().getTime();
  _$jscoverage['build/logger/logger.js'][364]++;
  this.loggerEnabled = true;
  _$jscoverage['build/logger/logger.js'][365]++;
  this.log("Logger reset");
  _$jscoverage['build/logger/logger.js'][366]++;
  this.logResetEvent.fire();
});
  _$jscoverage['build/logger/logger.js'][375]++;
  YAHOO.widget.Logger.getStack = (function () {
  _$jscoverage['build/logger/logger.js'][376]++;
  return this._stack;
});
  _$jscoverage['build/logger/logger.js'][385]++;
  YAHOO.widget.Logger.getStartTime = (function () {
  _$jscoverage['build/logger/logger.js'][386]++;
  return this._startTime;
});
  _$jscoverage['build/logger/logger.js'][395]++;
  YAHOO.widget.Logger.disableBrowserConsole = (function () {
  _$jscoverage['build/logger/logger.js'][396]++;
  YAHOO.log("Logger output to the function console.log() has been disabled.");
  _$jscoverage['build/logger/logger.js'][397]++;
  this._browserConsoleEnabled = false;
});
  _$jscoverage['build/logger/logger.js'][406]++;
  YAHOO.widget.Logger.enableBrowserConsole = (function () {
  _$jscoverage['build/logger/logger.js'][407]++;
  this._browserConsoleEnabled = true;
  _$jscoverage['build/logger/logger.js'][408]++;
  YAHOO.log("Logger output to the function console.log() has been enabled.");
});
  _$jscoverage['build/logger/logger.js'][418]++;
  YAHOO.widget.Logger.handleWindowErrors = (function () {
  _$jscoverage['build/logger/logger.js'][419]++;
  if ((! YAHOO.widget.Logger._windowErrorsHandled)) {
    _$jscoverage['build/logger/logger.js'][421]++;
    if (window.error) {
      _$jscoverage['build/logger/logger.js'][422]++;
      YAHOO.widget.Logger._origOnWindowError = window.onerror;
    }
    _$jscoverage['build/logger/logger.js'][424]++;
    window.onerror = YAHOO.widget.Logger._onWindowError;
    _$jscoverage['build/logger/logger.js'][425]++;
    YAHOO.widget.Logger._windowErrorsHandled = true;
    _$jscoverage['build/logger/logger.js'][426]++;
    YAHOO.log("Logger handling of window.onerror has been enabled.");
  }
  else {
    _$jscoverage['build/logger/logger.js'][429]++;
    YAHOO.log("Logger handling of window.onerror had already been enabled.");
  }
});
  _$jscoverage['build/logger/logger.js'][440]++;
  YAHOO.widget.Logger.unhandleWindowErrors = (function () {
  _$jscoverage['build/logger/logger.js'][441]++;
  if (YAHOO.widget.Logger._windowErrorsHandled) {
    _$jscoverage['build/logger/logger.js'][443]++;
    if (YAHOO.widget.Logger._origOnWindowError) {
      _$jscoverage['build/logger/logger.js'][444]++;
      window.onerror = YAHOO.widget.Logger._origOnWindowError;
      _$jscoverage['build/logger/logger.js'][445]++;
      YAHOO.widget.Logger._origOnWindowError = null;
    }
    else {
      _$jscoverage['build/logger/logger.js'][448]++;
      window.onerror = null;
    }
    _$jscoverage['build/logger/logger.js'][450]++;
    YAHOO.widget.Logger._windowErrorsHandled = false;
    _$jscoverage['build/logger/logger.js'][451]++;
    YAHOO.log("Logger handling of window.onerror has been disabled.");
  }
  else {
    _$jscoverage['build/logger/logger.js'][454]++;
    YAHOO.log("Logger handling of window.onerror had already been disabled.");
  }
});
  _$jscoverage['build/logger/logger.js'][470]++;
  YAHOO.widget.Logger.categoryCreateEvent = new (YAHOO.util.CustomEvent)("categoryCreate", this, true);
  _$jscoverage['build/logger/logger.js'][479]++;
  YAHOO.widget.Logger.sourceCreateEvent = new (YAHOO.util.CustomEvent)("sourceCreate", this, true);
  _$jscoverage['build/logger/logger.js'][488]++;
  YAHOO.widget.Logger.newLogEvent = new (YAHOO.util.CustomEvent)("newLog", this, true);
  _$jscoverage['build/logger/logger.js'][495]++;
  YAHOO.widget.Logger.logResetEvent = new (YAHOO.util.CustomEvent)("logReset", this, true);
  _$jscoverage['build/logger/logger.js'][510]++;
  YAHOO.widget.Logger._createNewCategory = (function (sCategory) {
  _$jscoverage['build/logger/logger.js'][511]++;
  this.categories.push(sCategory);
  _$jscoverage['build/logger/logger.js'][512]++;
  this.categoryCreateEvent.fire(sCategory);
});
  _$jscoverage['build/logger/logger.js'][523]++;
  YAHOO.widget.Logger._isNewCategory = (function (sCategory) {
  _$jscoverage['build/logger/logger.js'][524]++;
  for (var i = 0; (i < this.categories.length); (i++)) {
    _$jscoverage['build/logger/logger.js'][525]++;
    if ((sCategory == this.categories[i])) {
      _$jscoverage['build/logger/logger.js'][526]++;
      return false;
    }
}
  _$jscoverage['build/logger/logger.js'][529]++;
  return true;
});
  _$jscoverage['build/logger/logger.js'][539]++;
  YAHOO.widget.Logger._createNewSource = (function (sSource) {
  _$jscoverage['build/logger/logger.js'][540]++;
  this.sources.push(sSource);
  _$jscoverage['build/logger/logger.js'][541]++;
  this.sourceCreateEvent.fire(sSource);
});
  _$jscoverage['build/logger/logger.js'][552]++;
  YAHOO.widget.Logger._isNewSource = (function (sSource) {
  _$jscoverage['build/logger/logger.js'][553]++;
  if (sSource) {
    _$jscoverage['build/logger/logger.js'][554]++;
    for (var i = 0; (i < this.sources.length); (i++)) {
      _$jscoverage['build/logger/logger.js'][555]++;
      if ((sSource == this.sources[i])) {
        _$jscoverage['build/logger/logger.js'][556]++;
        return false;
      }
}
    _$jscoverage['build/logger/logger.js'][559]++;
    return true;
  }
});
  _$jscoverage['build/logger/logger.js'][570]++;
  YAHOO.widget.Logger._printToBrowserConsole = (function (oEntry) {
  _$jscoverage['build/logger/logger.js'][571]++;
  if ((window.console && console.log)) {
    _$jscoverage['build/logger/logger.js'][572]++;
    var category = oEntry.category;
    _$jscoverage['build/logger/logger.js'][573]++;
    var label = oEntry.category.substring(0, 4).toUpperCase();
    _$jscoverage['build/logger/logger.js'][575]++;
    var time = oEntry.time;
    _$jscoverage['build/logger/logger.js'][576]++;
    var localTime;
    _$jscoverage['build/logger/logger.js'][577]++;
    if (time.toLocaleTimeString) {
      _$jscoverage['build/logger/logger.js'][578]++;
      localTime = time.toLocaleTimeString();
    }
    else {
      _$jscoverage['build/logger/logger.js'][581]++;
      localTime = time.toString();
    }
    _$jscoverage['build/logger/logger.js'][584]++;
    var msecs = time.getTime();
    _$jscoverage['build/logger/logger.js'][585]++;
    var elapsedTime = (YAHOO.widget.Logger._lastTime? (msecs - YAHOO.widget.Logger._lastTime): 0);
    _$jscoverage['build/logger/logger.js'][587]++;
    YAHOO.widget.Logger._lastTime = msecs;
    _$jscoverage['build/logger/logger.js'][589]++;
    var output = (localTime + " (" + elapsedTime + "ms): " + oEntry.source + ": ");
    _$jscoverage['build/logger/logger.js'][595]++;
    if (YAHOO.env.ua.webkit) {
      _$jscoverage['build/logger/logger.js'][596]++;
      output += oEntry.msg;
    }
    _$jscoverage['build/logger/logger.js'][599]++;
    console.log(output, oEntry.msg);
  }
});
  _$jscoverage['build/logger/logger.js'][618]++;
  YAHOO.widget.Logger._onWindowError = (function (sMsg, sUrl, sLine) {
  _$jscoverage['build/logger/logger.js'][620]++;
  try {
    _$jscoverage['build/logger/logger.js'][621]++;
    YAHOO.widget.Logger.log((sMsg + " (" + sUrl + ", line " + sLine + ")"), "window");
    _$jscoverage['build/logger/logger.js'][622]++;
    if (YAHOO.widget.Logger._origOnWindowError) {
      _$jscoverage['build/logger/logger.js'][623]++;
      YAHOO.widget.Logger._origOnWindowError();
    }
  }
  catch (e) {
    _$jscoverage['build/logger/logger.js'][627]++;
    return false;
  }
});
  _$jscoverage['build/logger/logger.js'][637]++;
  YAHOO.widget.Logger.log("Logger initialized");
}
_$jscoverage['build/logger/logger.js'][643]++;
(function () {
  _$jscoverage['build/logger/logger.js'][644]++;
  var Logger = YAHOO.widget.Logger, u = YAHOO.util, Dom = u.Dom, Event = u.Event, d = document;
  _$jscoverage['build/logger/logger.js'][650]++;
  function make(el, props) {
    _$jscoverage['build/logger/logger.js'][651]++;
    el = d.createElement(el);
    _$jscoverage['build/logger/logger.js'][652]++;
    if (props) {
      _$jscoverage['build/logger/logger.js'][653]++;
      for (var p in props) {
        _$jscoverage['build/logger/logger.js'][654]++;
        if (props.hasOwnProperty(p)) {
          _$jscoverage['build/logger/logger.js'][655]++;
          el[p] = props[p];
        }
}
    }
    _$jscoverage['build/logger/logger.js'][659]++;
    return el;
}
  _$jscoverage['build/logger/logger.js'][671]++;
  function LogReader(elContainer, oConfigs) {
    _$jscoverage['build/logger/logger.js'][672]++;
    this._sName = LogReader._index;
    _$jscoverage['build/logger/logger.js'][673]++;
    (LogReader._index++);
    _$jscoverage['build/logger/logger.js'][675]++;
    this._init.apply(this, arguments);
    _$jscoverage['build/logger/logger.js'][685]++;
    if ((this.autoRender !== false)) {
      _$jscoverage['build/logger/logger.js'][686]++;
      this.render();
    }
}
  _$jscoverage['build/logger/logger.js'][695]++;
  YAHOO.lang.augmentObject(LogReader, {_index: 0, ENTRY_TEMPLATE: (function () {
  _$jscoverage['build/logger/logger.js'][715]++;
  return make("pre", {className: "yui-log-entry"});
})(), VERBOSE_TEMPLATE: "<p><span class='{category}'>{label}</span> {totalTime}ms (+{elapsedTime}) {localTime}:</p><p>{sourceAndDetail}</p><p>{message}</p>", BASIC_TEMPLATE: "<p><span class='{category}'>{label}</span> {totalTime}ms (+{elapsedTime}) {localTime}: {sourceAndDetail}: {message}</p>"});
  _$jscoverage['build/logger/logger.js'][741]++;
  LogReader.prototype = {logReaderEnabled: true, width: null, height: null, top: null, left: null, right: null, bottom: null, fontSize: null, footerEnabled: true, verboseOutput: true, entryFormat: null, newestOnTop: true, outputBuffer: 100, thresholdMax: 500, thresholdMin: 100, isCollapsed: false, isPaused: false, draggable: true, toString: (function () {
  _$jscoverage['build/logger/logger.js'][923]++;
  return ("LogReader instance" + this._sName);
}), pause: (function () {
  _$jscoverage['build/logger/logger.js'][932]++;
  this.isPaused = true;
  _$jscoverage['build/logger/logger.js'][933]++;
  this._timeout = null;
  _$jscoverage['build/logger/logger.js'][934]++;
  this.logReaderEnabled = false;
  _$jscoverage['build/logger/logger.js'][935]++;
  if (this._btnPause) {
    _$jscoverage['build/logger/logger.js'][936]++;
    this._btnPause.value = "Resume";
  }
}), resume: (function () {
  _$jscoverage['build/logger/logger.js'][947]++;
  this.isPaused = false;
  _$jscoverage['build/logger/logger.js'][948]++;
  this.logReaderEnabled = true;
  _$jscoverage['build/logger/logger.js'][949]++;
  this._printBuffer();
  _$jscoverage['build/logger/logger.js'][950]++;
  if (this._btnPause) {
    _$jscoverage['build/logger/logger.js'][951]++;
    this._btnPause.value = "Pause";
  }
}), render: (function () {
  _$jscoverage['build/logger/logger.js'][962]++;
  if (this.rendered) {
    _$jscoverage['build/logger/logger.js'][963]++;
    return;
  }
  _$jscoverage['build/logger/logger.js'][966]++;
  this._initContainerEl();
  _$jscoverage['build/logger/logger.js'][968]++;
  this._initHeaderEl();
  _$jscoverage['build/logger/logger.js'][969]++;
  this._initConsoleEl();
  _$jscoverage['build/logger/logger.js'][970]++;
  this._initFooterEl();
  _$jscoverage['build/logger/logger.js'][972]++;
  this._initCategories();
  _$jscoverage['build/logger/logger.js'][973]++;
  this._initSources();
  _$jscoverage['build/logger/logger.js'][975]++;
  this._initDragDrop();
  _$jscoverage['build/logger/logger.js'][978]++;
  Logger.newLogEvent.subscribe(this._onNewLog, this);
  _$jscoverage['build/logger/logger.js'][979]++;
  Logger.logResetEvent.subscribe(this._onReset, this);
  _$jscoverage['build/logger/logger.js'][981]++;
  Logger.categoryCreateEvent.subscribe(this._onCategoryCreate, this);
  _$jscoverage['build/logger/logger.js'][982]++;
  Logger.sourceCreateEvent.subscribe(this._onSourceCreate, this);
  _$jscoverage['build/logger/logger.js'][984]++;
  this.rendered = true;
  _$jscoverage['build/logger/logger.js'][986]++;
  this._filterLogs();
}), destroy: (function () {
  _$jscoverage['build/logger/logger.js'][996]++;
  Event.purgeElement(this._elContainer, true);
  _$jscoverage['build/logger/logger.js'][997]++;
  this._elContainer.innerHTML = "";
  _$jscoverage['build/logger/logger.js'][998]++;
  this._elContainer.parentNode.removeChild(this._elContainer);
  _$jscoverage['build/logger/logger.js'][1000]++;
  this.rendered = false;
}), hide: (function () {
  _$jscoverage['build/logger/logger.js'][1009]++;
  this._elContainer.style.display = "none";
}), show: (function () {
  _$jscoverage['build/logger/logger.js'][1018]++;
  this._elContainer.style.display = "block";
}), collapse: (function () {
  _$jscoverage['build/logger/logger.js'][1027]++;
  this._elConsole.style.display = "none";
  _$jscoverage['build/logger/logger.js'][1028]++;
  if (this._elFt) {
    _$jscoverage['build/logger/logger.js'][1029]++;
    this._elFt.style.display = "none";
  }
  _$jscoverage['build/logger/logger.js'][1031]++;
  this._btnCollapse.value = "Expand";
  _$jscoverage['build/logger/logger.js'][1032]++;
  this.isCollapsed = true;
}), expand: (function () {
  _$jscoverage['build/logger/logger.js'][1041]++;
  this._elConsole.style.display = "block";
  _$jscoverage['build/logger/logger.js'][1042]++;
  if (this._elFt) {
    _$jscoverage['build/logger/logger.js'][1043]++;
    this._elFt.style.display = "block";
  }
  _$jscoverage['build/logger/logger.js'][1045]++;
  this._btnCollapse.value = "Collapse";
  _$jscoverage['build/logger/logger.js'][1046]++;
  this.isCollapsed = false;
}), getCheckbox: (function (filter) {
  _$jscoverage['build/logger/logger.js'][1057]++;
  return this._filterCheckboxes[filter];
}), getCategories: (function () {
  _$jscoverage['build/logger/logger.js'][1067]++;
  return this._categoryFilters;
}), showCategory: (function (sCategory) {
  _$jscoverage['build/logger/logger.js'][1077]++;
  var filtersArray = this._categoryFilters;
  _$jscoverage['build/logger/logger.js'][1080]++;
  if (filtersArray.indexOf) {
    _$jscoverage['build/logger/logger.js'][1081]++;
    if ((filtersArray.indexOf(sCategory) > -1)) {
      _$jscoverage['build/logger/logger.js'][1082]++;
      return;
    }
  }
  else {
    _$jscoverage['build/logger/logger.js'][1087]++;
    for (var i = 0; (i < filtersArray.length); (i++)) {
      _$jscoverage['build/logger/logger.js'][1088]++;
      if ((filtersArray[i] === sCategory)) {
        _$jscoverage['build/logger/logger.js'][1089]++;
        return;
      }
}
  }
  _$jscoverage['build/logger/logger.js'][1094]++;
  this._categoryFilters.push(sCategory);
  _$jscoverage['build/logger/logger.js'][1095]++;
  this._filterLogs();
  _$jscoverage['build/logger/logger.js'][1096]++;
  var elCheckbox = this.getCheckbox(sCategory);
  _$jscoverage['build/logger/logger.js'][1097]++;
  if (elCheckbox) {
    _$jscoverage['build/logger/logger.js'][1098]++;
    elCheckbox.checked = true;
  }
}), hideCategory: (function (sCategory) {
  _$jscoverage['build/logger/logger.js'][1109]++;
  var filtersArray = this._categoryFilters;
  _$jscoverage['build/logger/logger.js'][1110]++;
  for (var i = 0; (i < filtersArray.length); (i++)) {
    _$jscoverage['build/logger/logger.js'][1111]++;
    if ((sCategory == filtersArray[i])) {
      _$jscoverage['build/logger/logger.js'][1112]++;
      filtersArray.splice(i, 1);
      _$jscoverage['build/logger/logger.js'][1113]++;
      break;
    }
}
  _$jscoverage['build/logger/logger.js'][1116]++;
  this._filterLogs();
  _$jscoverage['build/logger/logger.js'][1117]++;
  var elCheckbox = this.getCheckbox(sCategory);
  _$jscoverage['build/logger/logger.js'][1118]++;
  if (elCheckbox) {
    _$jscoverage['build/logger/logger.js'][1119]++;
    elCheckbox.checked = false;
  }
}), getSources: (function () {
  _$jscoverage['build/logger/logger.js'][1130]++;
  return this._sourceFilters;
}), showSource: (function (sSource) {
  _$jscoverage['build/logger/logger.js'][1140]++;
  var filtersArray = this._sourceFilters;
  _$jscoverage['build/logger/logger.js'][1143]++;
  if (filtersArray.indexOf) {
    _$jscoverage['build/logger/logger.js'][1144]++;
    if ((filtersArray.indexOf(sSource) > -1)) {
      _$jscoverage['build/logger/logger.js'][1145]++;
      return;
    }
  }
  else {
    _$jscoverage['build/logger/logger.js'][1150]++;
    for (var i = 0; (i < filtersArray.length); (i++)) {
      _$jscoverage['build/logger/logger.js'][1151]++;
      if ((sSource == filtersArray[i])) {
        _$jscoverage['build/logger/logger.js'][1152]++;
        return;
      }
}
  }
  _$jscoverage['build/logger/logger.js'][1156]++;
  filtersArray.push(sSource);
  _$jscoverage['build/logger/logger.js'][1157]++;
  this._filterLogs();
  _$jscoverage['build/logger/logger.js'][1158]++;
  var elCheckbox = this.getCheckbox(sSource);
  _$jscoverage['build/logger/logger.js'][1159]++;
  if (elCheckbox) {
    _$jscoverage['build/logger/logger.js'][1160]++;
    elCheckbox.checked = true;
  }
}), hideSource: (function (sSource) {
  _$jscoverage['build/logger/logger.js'][1171]++;
  var filtersArray = this._sourceFilters;
  _$jscoverage['build/logger/logger.js'][1172]++;
  for (var i = 0; (i < filtersArray.length); (i++)) {
    _$jscoverage['build/logger/logger.js'][1173]++;
    if ((sSource == filtersArray[i])) {
      _$jscoverage['build/logger/logger.js'][1174]++;
      filtersArray.splice(i, 1);
      _$jscoverage['build/logger/logger.js'][1175]++;
      break;
    }
}
  _$jscoverage['build/logger/logger.js'][1178]++;
  this._filterLogs();
  _$jscoverage['build/logger/logger.js'][1179]++;
  var elCheckbox = this.getCheckbox(sSource);
  _$jscoverage['build/logger/logger.js'][1180]++;
  if (elCheckbox) {
    _$jscoverage['build/logger/logger.js'][1181]++;
    elCheckbox.checked = false;
  }
}), clearConsole: (function () {
  _$jscoverage['build/logger/logger.js'][1195]++;
  this._timeout = null;
  _$jscoverage['build/logger/logger.js'][1196]++;
  this._buffer = [];
  _$jscoverage['build/logger/logger.js'][1197]++;
  this._consoleMsgCount = 0;
  _$jscoverage['build/logger/logger.js'][1199]++;
  var elConsole = this._elConsole;
  _$jscoverage['build/logger/logger.js'][1200]++;
  elConsole.innerHTML = "";
}), setTitle: (function (sTitle) {
  _$jscoverage['build/logger/logger.js'][1210]++;
  this._title.innerHTML = this.html2Text(sTitle);
}), getLastTime: (function () {
  _$jscoverage['build/logger/logger.js'][1220]++;
  return this._lastTime;
}), formatMsg: (function (entry) {
  _$jscoverage['build/logger/logger.js'][1224]++;
  var entryFormat = (this.entryFormat || (this.verboseOutput? LogReader.VERBOSE_TEMPLATE: LogReader.BASIC_TEMPLATE)), info = {category: entry.category, label: entry.category.substring(0, 4).toUpperCase(), sourceAndDetail: (entry.sourceDetail? (entry.source + " " + entry.sourceDetail): entry.source), message: this.html2Text((entry.msg || entry.message || ""))};
  _$jscoverage['build/logger/logger.js'][1242]++;
  if ((entry.time && entry.time.getTime)) {
    _$jscoverage['build/logger/logger.js'][1243]++;
    info.localTime = (entry.time.toLocaleTimeString? entry.time.toLocaleTimeString(): entry.time.toString());
    _$jscoverage['build/logger/logger.js'][1250]++;
    info.elapsedTime = (entry.time.getTime() - this.getLastTime());
    _$jscoverage['build/logger/logger.js'][1252]++;
    info.totalTime = (entry.time.getTime() - Logger.getStartTime());
  }
  _$jscoverage['build/logger/logger.js'][1255]++;
  var msg = LogReader.ENTRY_TEMPLATE.cloneNode(true);
  _$jscoverage['build/logger/logger.js'][1256]++;
  if (this.verboseOutput) {
    _$jscoverage['build/logger/logger.js'][1257]++;
    msg.className += " yui-log-verbose";
  }
  _$jscoverage['build/logger/logger.js'][1261]++;
  msg.innerHTML = entryFormat.replace(/\{(\w+)\}/g, (function (x, placeholder) {
  _$jscoverage['build/logger/logger.js'][1263]++;
  return ((placeholder in info)? info[placeholder]: "");
}));
  _$jscoverage['build/logger/logger.js'][1266]++;
  return msg;
}), html2Text: (function (sHtml) {
  _$jscoverage['build/logger/logger.js'][1277]++;
  if (sHtml) {
    _$jscoverage['build/logger/logger.js'][1278]++;
    sHtml += "";
    _$jscoverage['build/logger/logger.js'][1279]++;
    return sHtml.replace(/&/g, "&#38;").replace(/</g, "&#60;").replace(/>/g, "&#62;");
  }
  _$jscoverage['build/logger/logger.js'][1283]++;
  return "";
}), _sName: null, _buffer: null, _consoleMsgCount: 0, _lastTime: null, _timeout: null, _filterCheckboxes: null, _categoryFilters: null, _sourceFilters: null, _elContainer: null, _elHd: null, _elCollapse: null, _btnCollapse: null, _title: null, _elConsole: null, _elFt: null, _elBtns: null, _elCategoryFilters: null, _elSourceFilters: null, _btnPause: null, _btnClear: null, _init: (function (container, config) {
  _$jscoverage['build/logger/logger.js'][1501]++;
  this._buffer = [];
  _$jscoverage['build/logger/logger.js'][1502]++;
  this._filterCheckboxes = {};
  _$jscoverage['build/logger/logger.js'][1503]++;
  this._lastTime = Logger.getStartTime();
  _$jscoverage['build/logger/logger.js'][1506]++;
  if ((config && (config.constructor == Object))) {
    _$jscoverage['build/logger/logger.js'][1507]++;
    for (var param in config) {
      _$jscoverage['build/logger/logger.js'][1508]++;
      if (config.hasOwnProperty(param)) {
        _$jscoverage['build/logger/logger.js'][1509]++;
        this[param] = config[param];
      }
}
  }
  _$jscoverage['build/logger/logger.js'][1514]++;
  this._elContainer = Dom.get(container);
  _$jscoverage['build/logger/logger.js'][1516]++;
  YAHOO.log("LogReader initialized", null, this.toString());
}), _initContainerEl: (function () {
  _$jscoverage['build/logger/logger.js'][1528]++;
  if (((! this._elContainer) || (! /div$/i.test(this._elContainer.tagName)))) {
    _$jscoverage['build/logger/logger.js'][1529]++;
    this._elContainer = d.body.insertBefore(make("div"), d.body.firstChild);
    _$jscoverage['build/logger/logger.js'][1531]++;
    Dom.addClass(this._elContainer, "yui-log-container");
  }
  _$jscoverage['build/logger/logger.js'][1534]++;
  Dom.addClass(this._elContainer, "yui-log");
  _$jscoverage['build/logger/logger.js'][1537]++;
  var style = this._elContainer.style, styleProps = ["width", "right", "top", "fontSize"], prop, i;
  _$jscoverage['build/logger/logger.js'][1541]++;
  for (i = (styleProps.length - 1); (i >= 0); (--i)) {
    _$jscoverage['build/logger/logger.js'][1542]++;
    prop = styleProps[i];
    _$jscoverage['build/logger/logger.js'][1543]++;
    if (this[prop]) {
      _$jscoverage['build/logger/logger.js'][1544]++;
      style[prop] = this[prop];
    }
}
  _$jscoverage['build/logger/logger.js'][1548]++;
  if (this.left) {
    _$jscoverage['build/logger/logger.js'][1549]++;
    style.left = this.left;
    _$jscoverage['build/logger/logger.js'][1550]++;
    style.right = "auto";
  }
  _$jscoverage['build/logger/logger.js'][1552]++;
  if (this.bottom) {
    _$jscoverage['build/logger/logger.js'][1553]++;
    style.bottom = this.bottom;
    _$jscoverage['build/logger/logger.js'][1554]++;
    style.top = "auto";
  }
  _$jscoverage['build/logger/logger.js'][1558]++;
  if (YAHOO.env.ua.opera) {
    _$jscoverage['build/logger/logger.js'][1559]++;
    d.body.style += "";
  }
}), _initHeaderEl: (function () {
  _$jscoverage['build/logger/logger.js'][1572]++;
  if (this._elHd) {
    _$jscoverage['build/logger/logger.js'][1574]++;
    Event.purgeElement(this._elHd, true);
    _$jscoverage['build/logger/logger.js'][1577]++;
    this._elHd.innerHTML = "";
  }
  _$jscoverage['build/logger/logger.js'][1582]++;
  this._elHd = make("div", {id: ("yui-log-hd" + this._sName), className: "yui-log-hd"});
  _$jscoverage['build/logger/logger.js'][1587]++;
  this._elCollapse = make("div", {className: "yui-log-btns"});
  _$jscoverage['build/logger/logger.js'][1589]++;
  this._btnCollapse = make("input", {type: "button", className: "yui-log-button", value: "Collapse"});
  _$jscoverage['build/logger/logger.js'][1594]++;
  Event.on(this._btnCollapse, "click", this._onClickCollapseBtn, this);
  _$jscoverage['build/logger/logger.js'][1597]++;
  this._title = make("h4", {innerHTML: "Logger Console"});
  _$jscoverage['build/logger/logger.js'][1599]++;
  this._elCollapse.appendChild(this._btnCollapse);
  _$jscoverage['build/logger/logger.js'][1600]++;
  this._elHd.appendChild(this._elCollapse);
  _$jscoverage['build/logger/logger.js'][1601]++;
  this._elHd.appendChild(this._title);
  _$jscoverage['build/logger/logger.js'][1602]++;
  this._elContainer.appendChild(this._elHd);
}), _initConsoleEl: (function () {
  _$jscoverage['build/logger/logger.js'][1613]++;
  if (this._elConsole) {
    _$jscoverage['build/logger/logger.js'][1615]++;
    Event.purgeElement(this._elConsole, true);
    _$jscoverage['build/logger/logger.js'][1618]++;
    this._elConsole.innerHTML = "";
  }
  _$jscoverage['build/logger/logger.js'][1622]++;
  this._elConsole = make("div", {className: "yui-log-bd"});
  _$jscoverage['build/logger/logger.js'][1625]++;
  if (this.height) {
    _$jscoverage['build/logger/logger.js'][1626]++;
    this._elConsole.style.height = this.height;
  }
  _$jscoverage['build/logger/logger.js'][1629]++;
  this._elContainer.appendChild(this._elConsole);
}), _initFooterEl: (function () {
  _$jscoverage['build/logger/logger.js'][1640]++;
  if (this.footerEnabled) {
    _$jscoverage['build/logger/logger.js'][1642]++;
    if (this._elFt) {
      _$jscoverage['build/logger/logger.js'][1644]++;
      Event.purgeElement(this._elFt, true);
      _$jscoverage['build/logger/logger.js'][1647]++;
      this._elFt.innerHTML = "";
    }
    _$jscoverage['build/logger/logger.js'][1651]++;
    this._elFt = make("div", {className: "yui-log-ft"});
    _$jscoverage['build/logger/logger.js'][1652]++;
    this._elBtns = make("div", {className: "yui-log-btns"});
    _$jscoverage['build/logger/logger.js'][1653]++;
    this._btnPause = make("input", {type: "button", className: "yui-log-button", value: "Pause"});
    _$jscoverage['build/logger/logger.js'][1659]++;
    Event.on(this._btnPause, "click", this._onClickPauseBtn, this);
    _$jscoverage['build/logger/logger.js'][1661]++;
    this._btnClear = make("input", {type: "button", className: "yui-log-button", value: "Clear"});
    _$jscoverage['build/logger/logger.js'][1667]++;
    Event.on(this._btnClear, "click", this._onClickClearBtn, this);
    _$jscoverage['build/logger/logger.js'][1669]++;
    this._elCategoryFilters = make("div", {className: "yui-log-categoryfilters"});
    _$jscoverage['build/logger/logger.js'][1670]++;
    this._elSourceFilters = make("div", {className: "yui-log-sourcefilters"});
    _$jscoverage['build/logger/logger.js'][1672]++;
    this._elBtns.appendChild(this._btnPause);
    _$jscoverage['build/logger/logger.js'][1673]++;
    this._elBtns.appendChild(this._btnClear);
    _$jscoverage['build/logger/logger.js'][1674]++;
    this._elFt.appendChild(this._elBtns);
    _$jscoverage['build/logger/logger.js'][1675]++;
    this._elFt.appendChild(this._elCategoryFilters);
    _$jscoverage['build/logger/logger.js'][1676]++;
    this._elFt.appendChild(this._elSourceFilters);
    _$jscoverage['build/logger/logger.js'][1677]++;
    this._elContainer.appendChild(this._elFt);
  }
}), _initDragDrop: (function () {
  _$jscoverage['build/logger/logger.js'][1691]++;
  if ((u.DD && this.draggable && this._elHd)) {
    _$jscoverage['build/logger/logger.js'][1692]++;
    var ylog_dd = new (u.DD)(this._elContainer);
    _$jscoverage['build/logger/logger.js'][1693]++;
    ylog_dd.setHandleElId(this._elHd.id);
    _$jscoverage['build/logger/logger.js'][1695]++;
    this._elHd.style.cursor = "move";
  }
}), _initCategories: (function () {
  _$jscoverage['build/logger/logger.js'][1707]++;
  this._categoryFilters = [];
  _$jscoverage['build/logger/logger.js'][1708]++;
  var aInitialCategories = Logger.categories;
  _$jscoverage['build/logger/logger.js'][1710]++;
  for (var j = 0; (j < aInitialCategories.length); (j++)) {
    _$jscoverage['build/logger/logger.js'][1711]++;
    var sCategory = aInitialCategories[j];
    _$jscoverage['build/logger/logger.js'][1714]++;
    this._categoryFilters.push(sCategory);
    _$jscoverage['build/logger/logger.js'][1717]++;
    if (this._elCategoryFilters) {
      _$jscoverage['build/logger/logger.js'][1718]++;
      this._createCategoryCheckbox(sCategory);
    }
}
}), _initSources: (function () {
  _$jscoverage['build/logger/logger.js'][1731]++;
  this._sourceFilters = [];
  _$jscoverage['build/logger/logger.js'][1732]++;
  var aInitialSources = Logger.sources;
  _$jscoverage['build/logger/logger.js'][1734]++;
  for (var j = 0; (j < aInitialSources.length); (j++)) {
    _$jscoverage['build/logger/logger.js'][1735]++;
    var sSource = aInitialSources[j];
    _$jscoverage['build/logger/logger.js'][1738]++;
    this._sourceFilters.push(sSource);
    _$jscoverage['build/logger/logger.js'][1741]++;
    if (this._elSourceFilters) {
      _$jscoverage['build/logger/logger.js'][1742]++;
      this._createSourceCheckbox(sSource);
    }
}
}), _createCategoryCheckbox: (function (sCategory) {
  _$jscoverage['build/logger/logger.js'][1755]++;
  if (this._elFt) {
    _$jscoverage['build/logger/logger.js'][1756]++;
    var filter = make("span", {className: "yui-log-filtergrp"}), check = make("input", {id: ("yui-log-filter-" + sCategory + this._sName), className: ("yui-log-filter-" + sCategory), type: "checkbox", category: sCategory}), label = make("label", {htmlFor: check.id, className: sCategory, innerHTML: sCategory});
    _$jscoverage['build/logger/logger.js'][1771]++;
    Event.on(check, "click", this._onCheckCategory, this);
    _$jscoverage['build/logger/logger.js'][1773]++;
    this._filterCheckboxes[sCategory] = check;
    _$jscoverage['build/logger/logger.js'][1777]++;
    filter.appendChild(check);
    _$jscoverage['build/logger/logger.js'][1778]++;
    filter.appendChild(label);
    _$jscoverage['build/logger/logger.js'][1779]++;
    this._elCategoryFilters.appendChild(filter);
    _$jscoverage['build/logger/logger.js'][1780]++;
    check.checked = true;
  }
}), _createSourceCheckbox: (function (sSource) {
  _$jscoverage['build/logger/logger.js'][1792]++;
  if (this._elFt) {
    _$jscoverage['build/logger/logger.js'][1793]++;
    var filter = make("span", {className: "yui-log-filtergrp"}), check = make("input", {id: ("yui-log-filter-" + sSource + this._sName), className: ("yui-log-filter-" + sSource), type: "checkbox", source: sSource}), label = make("label", {htmlFor: check.id, className: sSource, innerHTML: sSource});
    _$jscoverage['build/logger/logger.js'][1808]++;
    Event.on(check, "click", this._onCheckSource, this);
    _$jscoverage['build/logger/logger.js'][1810]++;
    this._filterCheckboxes[sSource] = check;
    _$jscoverage['build/logger/logger.js'][1814]++;
    filter.appendChild(check);
    _$jscoverage['build/logger/logger.js'][1815]++;
    filter.appendChild(label);
    _$jscoverage['build/logger/logger.js'][1816]++;
    this._elSourceFilters.appendChild(filter);
    _$jscoverage['build/logger/logger.js'][1817]++;
    check.checked = true;
  }
}), _filterLogs: (function () {
  _$jscoverage['build/logger/logger.js'][1829]++;
  if ((this._elConsole !== null)) {
    _$jscoverage['build/logger/logger.js'][1830]++;
    this.clearConsole();
    _$jscoverage['build/logger/logger.js'][1831]++;
    this._printToConsole(Logger.getStack());
  }
}), _printBuffer: (function () {
  _$jscoverage['build/logger/logger.js'][1842]++;
  this._timeout = null;
  _$jscoverage['build/logger/logger.js'][1844]++;
  if ((this._elConsole !== null)) {
    _$jscoverage['build/logger/logger.js'][1845]++;
    var thresholdMax = this.thresholdMax;
    _$jscoverage['build/logger/logger.js'][1846]++;
    thresholdMax = ((thresholdMax && (! isNaN(thresholdMax)))? thresholdMax: 500);
    _$jscoverage['build/logger/logger.js'][1847]++;
    if ((this._consoleMsgCount < thresholdMax)) {
      _$jscoverage['build/logger/logger.js'][1848]++;
      var entries = [];
      _$jscoverage['build/logger/logger.js'][1849]++;
      for (var i = 0; (i < this._buffer.length); (i++)) {
        _$jscoverage['build/logger/logger.js'][1850]++;
        entries[i] = this._buffer[i];
}
      _$jscoverage['build/logger/logger.js'][1852]++;
      this._buffer = [];
      _$jscoverage['build/logger/logger.js'][1853]++;
      this._printToConsole(entries);
    }
    else {
      _$jscoverage['build/logger/logger.js'][1856]++;
      this._filterLogs();
    }
    _$jscoverage['build/logger/logger.js'][1859]++;
    if ((! this.newestOnTop)) {
      _$jscoverage['build/logger/logger.js'][1860]++;
      this._elConsole.scrollTop = this._elConsole.scrollHeight;
    }
  }
}), _printToConsole: (function (aEntries) {
  _$jscoverage['build/logger/logger.js'][1875]++;
  var entriesLen = aEntries.length, df = d.createDocumentFragment(), msgHTML = [], thresholdMin = this.thresholdMin, sourceFiltersLen = this._sourceFilters.length, categoryFiltersLen = this._categoryFilters.length, entriesStartIndex, i, j, msg, before;
  _$jscoverage['build/logger/logger.js'][1884]++;
  if ((isNaN(thresholdMin) || (thresholdMin > this.thresholdMax))) {
    _$jscoverage['build/logger/logger.js'][1885]++;
    thresholdMin = 0;
  }
  _$jscoverage['build/logger/logger.js'][1887]++;
  entriesStartIndex = ((entriesLen > thresholdMin)? (entriesLen - thresholdMin): 0);
  _$jscoverage['build/logger/logger.js'][1890]++;
  for (i = entriesStartIndex; (i < entriesLen); (i++)) {
    _$jscoverage['build/logger/logger.js'][1892]++;
    var okToPrint = false, okToFilterCats = false, entry = aEntries[i], source = entry.source, category = entry.category;
    _$jscoverage['build/logger/logger.js'][1898]++;
    for (j = 0; (j < sourceFiltersLen); (j++)) {
      _$jscoverage['build/logger/logger.js'][1899]++;
      if ((source == this._sourceFilters[j])) {
        _$jscoverage['build/logger/logger.js'][1900]++;
        okToFilterCats = true;
        _$jscoverage['build/logger/logger.js'][1901]++;
        break;
      }
}
    _$jscoverage['build/logger/logger.js'][1904]++;
    if (okToFilterCats) {
      _$jscoverage['build/logger/logger.js'][1905]++;
      for (j = 0; (j < categoryFiltersLen); (j++)) {
        _$jscoverage['build/logger/logger.js'][1906]++;
        if ((category == this._categoryFilters[j])) {
          _$jscoverage['build/logger/logger.js'][1907]++;
          okToPrint = true;
          _$jscoverage['build/logger/logger.js'][1908]++;
          break;
        }
}
    }
    _$jscoverage['build/logger/logger.js'][1912]++;
    if (okToPrint) {
      _$jscoverage['build/logger/logger.js'][1914]++;
      if ((this._consoleMsgCount === 0)) {
        _$jscoverage['build/logger/logger.js'][1915]++;
        this._lastTime = entry.time.getTime();
      }
      _$jscoverage['build/logger/logger.js'][1918]++;
      msg = this.formatMsg(entry);
      _$jscoverage['build/logger/logger.js'][1919]++;
      if (((typeof msg) === "string")) {
        _$jscoverage['build/logger/logger.js'][1920]++;
        msgHTML[msgHTML.length] = msg;
      }
      else {
        _$jscoverage['build/logger/logger.js'][1922]++;
        df.insertBefore(msg, (this.newestOnTop? (df.firstChild || null): null));
      }
      _$jscoverage['build/logger/logger.js'][1925]++;
      (this._consoleMsgCount++);
      _$jscoverage['build/logger/logger.js'][1926]++;
      this._lastTime = entry.time.getTime();
    }
}
  _$jscoverage['build/logger/logger.js'][1930]++;
  if (msgHTML.length) {
    _$jscoverage['build/logger/logger.js'][1931]++;
    msgHTML.splice(0, 0, this._elConsole.innerHTML);
    _$jscoverage['build/logger/logger.js'][1932]++;
    this._elConsole.innerHTML = (this.newestOnTop? msgHTML.reverse().join(""): msgHTML.join(""));
  }
  else {
    _$jscoverage['build/logger/logger.js'][1935]++;
    if (df.firstChild) {
      _$jscoverage['build/logger/logger.js'][1936]++;
      this._elConsole.insertBefore(df, (this.newestOnTop? (this._elConsole.firstChild || null): null));
    }
  }
}), _onCategoryCreate: (function (sType, aArgs, oSelf) {
  _$jscoverage['build/logger/logger.js'][1957]++;
  var category = aArgs[0];
  _$jscoverage['build/logger/logger.js'][1960]++;
  oSelf._categoryFilters.push(category);
  _$jscoverage['build/logger/logger.js'][1962]++;
  if (oSelf._elFt) {
    _$jscoverage['build/logger/logger.js'][1963]++;
    oSelf._createCategoryCheckbox(category);
  }
}), _onSourceCreate: (function (sType, aArgs, oSelf) {
  _$jscoverage['build/logger/logger.js'][1977]++;
  var source = aArgs[0];
  _$jscoverage['build/logger/logger.js'][1980]++;
  oSelf._sourceFilters.push(source);
  _$jscoverage['build/logger/logger.js'][1982]++;
  if (oSelf._elFt) {
    _$jscoverage['build/logger/logger.js'][1983]++;
    oSelf._createSourceCheckbox(source);
  }
}), _onCheckCategory: (function (v, oSelf) {
  _$jscoverage['build/logger/logger.js'][1996]++;
  var category = this.category;
  _$jscoverage['build/logger/logger.js'][1997]++;
  if ((! this.checked)) {
    _$jscoverage['build/logger/logger.js'][1998]++;
    oSelf.hideCategory(category);
  }
  else {
    _$jscoverage['build/logger/logger.js'][2001]++;
    oSelf.showCategory(category);
  }
}), _onCheckSource: (function (v, oSelf) {
  _$jscoverage['build/logger/logger.js'][2014]++;
  var source = this.source;
  _$jscoverage['build/logger/logger.js'][2015]++;
  if ((! this.checked)) {
    _$jscoverage['build/logger/logger.js'][2016]++;
    oSelf.hideSource(source);
  }
  else {
    _$jscoverage['build/logger/logger.js'][2019]++;
    oSelf.showSource(source);
  }
}), _onClickCollapseBtn: (function (v, oSelf) {
  _$jscoverage['build/logger/logger.js'][2032]++;
  if ((! oSelf.isCollapsed)) {
    _$jscoverage['build/logger/logger.js'][2033]++;
    oSelf.collapse();
  }
  else {
    _$jscoverage['build/logger/logger.js'][2036]++;
    oSelf.expand();
  }
}), _onClickPauseBtn: (function (v, oSelf) {
  _$jscoverage['build/logger/logger.js'][2049]++;
  if ((! oSelf.isPaused)) {
    _$jscoverage['build/logger/logger.js'][2050]++;
    oSelf.pause();
  }
  else {
    _$jscoverage['build/logger/logger.js'][2053]++;
    oSelf.resume();
  }
}), _onClickClearBtn: (function (v, oSelf) {
  _$jscoverage['build/logger/logger.js'][2066]++;
  oSelf.clearConsole();
}), _onNewLog: (function (sType, aArgs, oSelf) {
  _$jscoverage['build/logger/logger.js'][2079]++;
  var logEntry = aArgs[0];
  _$jscoverage['build/logger/logger.js'][2080]++;
  oSelf._buffer.push(logEntry);
  _$jscoverage['build/logger/logger.js'][2082]++;
  if (((oSelf.logReaderEnabled === true) && (oSelf._timeout === null))) {
    _$jscoverage['build/logger/logger.js'][2083]++;
    oSelf._timeout = setTimeout((function () {
  _$jscoverage['build/logger/logger.js'][2083]++;
  oSelf._printBuffer();
}), oSelf.outputBuffer);
  }
}), _onReset: (function (sType, aArgs, oSelf) {
  _$jscoverage['build/logger/logger.js'][2097]++;
  oSelf._filterLogs();
})};
  _$jscoverage['build/logger/logger.js'][2101]++;
  YAHOO.widget.LogReader = LogReader;
})();
_$jscoverage['build/logger/logger.js'][2104]++;
YAHOO.register("logger", YAHOO.widget.Logger, {version: "2.8.0r4", build: "2449"});

