/* 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/dom/dom.js']) {
  _$jscoverage['build/dom/dom.js'] = [];
  _$jscoverage['build/dom/dom.js'][13] = 0;
  _$jscoverage['build/dom/dom.js'][15] = 0;
  _$jscoverage['build/dom/dom.js'][18] = 0;
  _$jscoverage['build/dom/dom.js'][77] = 0;
  _$jscoverage['build/dom/dom.js'][95] = 0;
  _$jscoverage['build/dom/dom.js'][97] = 0;
  _$jscoverage['build/dom/dom.js'][98] = 0;
  _$jscoverage['build/dom/dom.js'][99] = 0;
  _$jscoverage['build/dom/dom.js'][102] = 0;
  _$jscoverage['build/dom/dom.js'][103] = 0;
  _$jscoverage['build/dom/dom.js'][104] = 0;
  _$jscoverage['build/dom/dom.js'][105] = 0;
  _$jscoverage['build/dom/dom.js'][106] = 0;
  _$jscoverage['build/dom/dom.js'][107] = 0;
  _$jscoverage['build/dom/dom.js'][108] = 0;
  _$jscoverage['build/dom/dom.js'][109] = 0;
  _$jscoverage['build/dom/dom.js'][110] = 0;
  _$jscoverage['build/dom/dom.js'][111] = 0;
  _$jscoverage['build/dom/dom.js'][112] = 0;
  _$jscoverage['build/dom/dom.js'][113] = 0;
  _$jscoverage['build/dom/dom.js'][117] = 0;
  _$jscoverage['build/dom/dom.js'][120] = 0;
  _$jscoverage['build/dom/dom.js'][121] = 0;
  _$jscoverage['build/dom/dom.js'][124] = 0;
  _$jscoverage['build/dom/dom.js'][125] = 0;
  _$jscoverage['build/dom/dom.js'][126] = 0;
  _$jscoverage['build/dom/dom.js'][127] = 0;
  _$jscoverage['build/dom/dom.js'][130] = 0;
  _$jscoverage['build/dom/dom.js'][133] = 0;
  _$jscoverage['build/dom/dom.js'][136] = 0;
  _$jscoverage['build/dom/dom.js'][140] = 0;
  _$jscoverage['build/dom/dom.js'][141] = 0;
  _$jscoverage['build/dom/dom.js'][142] = 0;
  _$jscoverage['build/dom/dom.js'][143] = 0;
  _$jscoverage['build/dom/dom.js'][155] = 0;
  _$jscoverage['build/dom/dom.js'][160] = 0;
  _$jscoverage['build/dom/dom.js'][161] = 0;
  _$jscoverage['build/dom/dom.js'][162] = 0;
  _$jscoverage['build/dom/dom.js'][165] = 0;
  _$jscoverage['build/dom/dom.js'][168] = 0;
  _$jscoverage['build/dom/dom.js'][169] = 0;
  _$jscoverage['build/dom/dom.js'][170] = 0;
  _$jscoverage['build/dom/dom.js'][171] = 0;
  _$jscoverage['build/dom/dom.js'][175] = 0;
  _$jscoverage['build/dom/dom.js'][177] = 0;
  _$jscoverage['build/dom/dom.js'][178] = 0;
  _$jscoverage['build/dom/dom.js'][179] = 0;
  _$jscoverage['build/dom/dom.js'][181] = 0;
  _$jscoverage['build/dom/dom.js'][183] = 0;
  _$jscoverage['build/dom/dom.js'][184] = 0;
  _$jscoverage['build/dom/dom.js'][185] = 0;
  _$jscoverage['build/dom/dom.js'][188] = 0;
  _$jscoverage['build/dom/dom.js'][189] = 0;
  _$jscoverage['build/dom/dom.js'][193] = 0;
  _$jscoverage['build/dom/dom.js'][195] = 0;
  _$jscoverage['build/dom/dom.js'][197] = 0;
  _$jscoverage['build/dom/dom.js'][198] = 0;
  _$jscoverage['build/dom/dom.js'][199] = 0;
  _$jscoverage['build/dom/dom.js'][213] = 0;
  _$jscoverage['build/dom/dom.js'][217] = 0;
  _$jscoverage['build/dom/dom.js'][218] = 0;
  _$jscoverage['build/dom/dom.js'][219] = 0;
  _$jscoverage['build/dom/dom.js'][222] = 0;
  _$jscoverage['build/dom/dom.js'][223] = 0;
  _$jscoverage['build/dom/dom.js'][225] = 0;
  _$jscoverage['build/dom/dom.js'][226] = 0;
  _$jscoverage['build/dom/dom.js'][228] = 0;
  _$jscoverage['build/dom/dom.js'][229] = 0;
  _$jscoverage['build/dom/dom.js'][232] = 0;
  _$jscoverage['build/dom/dom.js'][234] = 0;
  _$jscoverage['build/dom/dom.js'][236] = 0;
  _$jscoverage['build/dom/dom.js'][242] = 0;
  _$jscoverage['build/dom/dom.js'][243] = 0;
  _$jscoverage['build/dom/dom.js'][245] = 0;
  _$jscoverage['build/dom/dom.js'][246] = 0;
  _$jscoverage['build/dom/dom.js'][247] = 0;
  _$jscoverage['build/dom/dom.js'][249] = 0;
  _$jscoverage['build/dom/dom.js'][266] = 0;
  _$jscoverage['build/dom/dom.js'][270] = 0;
  _$jscoverage['build/dom/dom.js'][274] = 0;
  _$jscoverage['build/dom/dom.js'][275] = 0;
  _$jscoverage['build/dom/dom.js'][276] = 0;
  _$jscoverage['build/dom/dom.js'][281] = 0;
  _$jscoverage['build/dom/dom.js'][282] = 0;
  _$jscoverage['build/dom/dom.js'][283] = 0;
  _$jscoverage['build/dom/dom.js'][284] = 0;
  _$jscoverage['build/dom/dom.js'][285] = 0;
  _$jscoverage['build/dom/dom.js'][286] = 0;
  _$jscoverage['build/dom/dom.js'][288] = 0;
  _$jscoverage['build/dom/dom.js'][289] = 0;
  _$jscoverage['build/dom/dom.js'][290] = 0;
  _$jscoverage['build/dom/dom.js'][291] = 0;
  _$jscoverage['build/dom/dom.js'][293] = 0;
  _$jscoverage['build/dom/dom.js'][294] = 0;
  _$jscoverage['build/dom/dom.js'][295] = 0;
  _$jscoverage['build/dom/dom.js'][296] = 0;
  _$jscoverage['build/dom/dom.js'][300] = 0;
  _$jscoverage['build/dom/dom.js'][301] = 0;
  _$jscoverage['build/dom/dom.js'][302] = 0;
  _$jscoverage['build/dom/dom.js'][303] = 0;
  _$jscoverage['build/dom/dom.js'][304] = 0;
  _$jscoverage['build/dom/dom.js'][306] = 0;
  _$jscoverage['build/dom/dom.js'][307] = 0;
  _$jscoverage['build/dom/dom.js'][311] = 0;
  _$jscoverage['build/dom/dom.js'][312] = 0;
  _$jscoverage['build/dom/dom.js'][316] = 0;
  _$jscoverage['build/dom/dom.js'][317] = 0;
  _$jscoverage['build/dom/dom.js'][318] = 0;
  _$jscoverage['build/dom/dom.js'][322] = 0;
  _$jscoverage['build/dom/dom.js'][323] = 0;
  _$jscoverage['build/dom/dom.js'][327] = 0;
  _$jscoverage['build/dom/dom.js'][330] = 0;
  _$jscoverage['build/dom/dom.js'][331] = 0;
  _$jscoverage['build/dom/dom.js'][337] = 0;
  _$jscoverage['build/dom/dom.js'][338] = 0;
  _$jscoverage['build/dom/dom.js'][339] = 0;
  _$jscoverage['build/dom/dom.js'][340] = 0;
  _$jscoverage['build/dom/dom.js'][343] = 0;
  _$jscoverage['build/dom/dom.js'][346] = 0;
  _$jscoverage['build/dom/dom.js'][347] = 0;
  _$jscoverage['build/dom/dom.js'][348] = 0;
  _$jscoverage['build/dom/dom.js'][349] = 0;
  _$jscoverage['build/dom/dom.js'][350] = 0;
  _$jscoverage['build/dom/dom.js'][355] = 0;
  _$jscoverage['build/dom/dom.js'][356] = 0;
  _$jscoverage['build/dom/dom.js'][358] = 0;
  _$jscoverage['build/dom/dom.js'][359] = 0;
  _$jscoverage['build/dom/dom.js'][360] = 0;
  _$jscoverage['build/dom/dom.js'][363] = 0;
  _$jscoverage['build/dom/dom.js'][364] = 0;
  _$jscoverage['build/dom/dom.js'][367] = 0;
  _$jscoverage['build/dom/dom.js'][368] = 0;
  _$jscoverage['build/dom/dom.js'][369] = 0;
  _$jscoverage['build/dom/dom.js'][372] = 0;
  _$jscoverage['build/dom/dom.js'][373] = 0;
  _$jscoverage['build/dom/dom.js'][377] = 0;
  _$jscoverage['build/dom/dom.js'][378] = 0;
  _$jscoverage['build/dom/dom.js'][379] = 0;
  _$jscoverage['build/dom/dom.js'][380] = 0;
  _$jscoverage['build/dom/dom.js'][381] = 0;
  _$jscoverage['build/dom/dom.js'][382] = 0;
  _$jscoverage['build/dom/dom.js'][386] = 0;
  _$jscoverage['build/dom/dom.js'][387] = 0;
  _$jscoverage['build/dom/dom.js'][390] = 0;
  _$jscoverage['build/dom/dom.js'][402] = 0;
  _$jscoverage['build/dom/dom.js'][403] = 0;
  _$jscoverage['build/dom/dom.js'][406] = 0;
  _$jscoverage['build/dom/dom.js'][416] = 0;
  _$jscoverage['build/dom/dom.js'][417] = 0;
  _$jscoverage['build/dom/dom.js'][420] = 0;
  _$jscoverage['build/dom/dom.js'][432] = 0;
  _$jscoverage['build/dom/dom.js'][436] = 0;
  _$jscoverage['build/dom/dom.js'][449] = 0;
  _$jscoverage['build/dom/dom.js'][450] = 0;
  _$jscoverage['build/dom/dom.js'][451] = 0;
  _$jscoverage['build/dom/dom.js'][454] = 0;
  _$jscoverage['build/dom/dom.js'][456] = 0;
  _$jscoverage['build/dom/dom.js'][457] = 0;
  _$jscoverage['build/dom/dom.js'][460] = 0;
  _$jscoverage['build/dom/dom.js'][461] = 0;
  _$jscoverage['build/dom/dom.js'][463] = 0;
  _$jscoverage['build/dom/dom.js'][464] = 0;
  _$jscoverage['build/dom/dom.js'][467] = 0;
  _$jscoverage['build/dom/dom.js'][468] = 0;
  _$jscoverage['build/dom/dom.js'][471] = 0;
  _$jscoverage['build/dom/dom.js'][472] = 0;
  _$jscoverage['build/dom/dom.js'][475] = 0;
  _$jscoverage['build/dom/dom.js'][476] = 0;
  _$jscoverage['build/dom/dom.js'][479] = 0;
  _$jscoverage['build/dom/dom.js'][481] = 0;
  _$jscoverage['build/dom/dom.js'][495] = 0;
  _$jscoverage['build/dom/dom.js'][506] = 0;
  _$jscoverage['build/dom/dom.js'][517] = 0;
  _$jscoverage['build/dom/dom.js'][518] = 0;
  _$jscoverage['build/dom/dom.js'][519] = 0;
  _$jscoverage['build/dom/dom.js'][520] = 0;
  _$jscoverage['build/dom/dom.js'][524] = 0;
  _$jscoverage['build/dom/dom.js'][527] = 0;
  _$jscoverage['build/dom/dom.js'][537] = 0;
  _$jscoverage['build/dom/dom.js'][547] = 0;
  _$jscoverage['build/dom/dom.js'][568] = 0;
  _$jscoverage['build/dom/dom.js'][569] = 0;
  _$jscoverage['build/dom/dom.js'][570] = 0;
  _$jscoverage['build/dom/dom.js'][571] = 0;
  _$jscoverage['build/dom/dom.js'][574] = 0;
  _$jscoverage['build/dom/dom.js'][578] = 0;
  _$jscoverage['build/dom/dom.js'][579] = 0;
  _$jscoverage['build/dom/dom.js'][580] = 0;
  _$jscoverage['build/dom/dom.js'][584] = 0;
  _$jscoverage['build/dom/dom.js'][585] = 0;
  _$jscoverage['build/dom/dom.js'][588] = 0;
  _$jscoverage['build/dom/dom.js'][599] = 0;
  _$jscoverage['build/dom/dom.js'][603] = 0;
  _$jscoverage['build/dom/dom.js'][606] = 0;
  _$jscoverage['build/dom/dom.js'][607] = 0;
  _$jscoverage['build/dom/dom.js'][608] = 0;
  _$jscoverage['build/dom/dom.js'][609] = 0;
  _$jscoverage['build/dom/dom.js'][611] = 0;
  _$jscoverage['build/dom/dom.js'][617] = 0;
  _$jscoverage['build/dom/dom.js'][628] = 0;
  _$jscoverage['build/dom/dom.js'][632] = 0;
  _$jscoverage['build/dom/dom.js'][635] = 0;
  _$jscoverage['build/dom/dom.js'][636] = 0;
  _$jscoverage['build/dom/dom.js'][637] = 0;
  _$jscoverage['build/dom/dom.js'][638] = 0;
  _$jscoverage['build/dom/dom.js'][639] = 0;
  _$jscoverage['build/dom/dom.js'][644] = 0;
  _$jscoverage['build/dom/dom.js'][655] = 0;
  _$jscoverage['build/dom/dom.js'][659] = 0;
  _$jscoverage['build/dom/dom.js'][664] = 0;
  _$jscoverage['build/dom/dom.js'][665] = 0;
  _$jscoverage['build/dom/dom.js'][666] = 0;
  _$jscoverage['build/dom/dom.js'][668] = 0;
  _$jscoverage['build/dom/dom.js'][669] = 0;
  _$jscoverage['build/dom/dom.js'][670] = 0;
  _$jscoverage['build/dom/dom.js'][671] = 0;
  _$jscoverage['build/dom/dom.js'][673] = 0;
  _$jscoverage['build/dom/dom.js'][674] = 0;
  _$jscoverage['build/dom/dom.js'][675] = 0;
  _$jscoverage['build/dom/dom.js'][682] = 0;
  _$jscoverage['build/dom/dom.js'][695] = 0;
  _$jscoverage['build/dom/dom.js'][699] = 0;
  _$jscoverage['build/dom/dom.js'][705] = 0;
  _$jscoverage['build/dom/dom.js'][706] = 0;
  _$jscoverage['build/dom/dom.js'][707] = 0;
  _$jscoverage['build/dom/dom.js'][709] = 0;
  _$jscoverage['build/dom/dom.js'][710] = 0;
  _$jscoverage['build/dom/dom.js'][711] = 0;
  _$jscoverage['build/dom/dom.js'][712] = 0;
  _$jscoverage['build/dom/dom.js'][713] = 0;
  _$jscoverage['build/dom/dom.js'][715] = 0;
  _$jscoverage['build/dom/dom.js'][716] = 0;
  _$jscoverage['build/dom/dom.js'][720] = 0;
  _$jscoverage['build/dom/dom.js'][721] = 0;
  _$jscoverage['build/dom/dom.js'][722] = 0;
  _$jscoverage['build/dom/dom.js'][727] = 0;
  _$jscoverage['build/dom/dom.js'][738] = 0;
  _$jscoverage['build/dom/dom.js'][740] = 0;
  _$jscoverage['build/dom/dom.js'][741] = 0;
  _$jscoverage['build/dom/dom.js'][742] = 0;
  _$jscoverage['build/dom/dom.js'][745] = 0;
  _$jscoverage['build/dom/dom.js'][747] = 0;
  _$jscoverage['build/dom/dom.js'][748] = 0;
  _$jscoverage['build/dom/dom.js'][750] = 0;
  _$jscoverage['build/dom/dom.js'][752] = 0;
  _$jscoverage['build/dom/dom.js'][755] = 0;
  _$jscoverage['build/dom/dom.js'][759] = 0;
  _$jscoverage['build/dom/dom.js'][770] = 0;
  _$jscoverage['build/dom/dom.js'][771] = 0;
  _$jscoverage['build/dom/dom.js'][773] = 0;
  _$jscoverage['build/dom/dom.js'][775] = 0;
  _$jscoverage['build/dom/dom.js'][776] = 0;
  _$jscoverage['build/dom/dom.js'][777] = 0;
  _$jscoverage['build/dom/dom.js'][779] = 0;
  _$jscoverage['build/dom/dom.js'][780] = 0;
  _$jscoverage['build/dom/dom.js'][784] = 0;
  _$jscoverage['build/dom/dom.js'][795] = 0;
  _$jscoverage['build/dom/dom.js'][799] = 0;
  _$jscoverage['build/dom/dom.js'][800] = 0;
  _$jscoverage['build/dom/dom.js'][801] = 0;
  _$jscoverage['build/dom/dom.js'][802] = 0;
  _$jscoverage['build/dom/dom.js'][805] = 0;
  _$jscoverage['build/dom/dom.js'][825] = 0;
  _$jscoverage['build/dom/dom.js'][826] = 0;
  _$jscoverage['build/dom/dom.js'][828] = 0;
  _$jscoverage['build/dom/dom.js'][829] = 0;
  _$jscoverage['build/dom/dom.js'][832] = 0;
  _$jscoverage['build/dom/dom.js'][835] = 0;
  _$jscoverage['build/dom/dom.js'][836] = 0;
  _$jscoverage['build/dom/dom.js'][837] = 0;
  _$jscoverage['build/dom/dom.js'][838] = 0;
  _$jscoverage['build/dom/dom.js'][839] = 0;
  _$jscoverage['build/dom/dom.js'][841] = 0;
  _$jscoverage['build/dom/dom.js'][846] = 0;
  _$jscoverage['build/dom/dom.js'][847] = 0;
  _$jscoverage['build/dom/dom.js'][851] = 0;
  _$jscoverage['build/dom/dom.js'][863] = 0;
  _$jscoverage['build/dom/dom.js'][877] = 0;
  _$jscoverage['build/dom/dom.js'][880] = 0;
  _$jscoverage['build/dom/dom.js'][881] = 0;
  _$jscoverage['build/dom/dom.js'][882] = 0;
  _$jscoverage['build/dom/dom.js'][883] = 0;
  _$jscoverage['build/dom/dom.js'][886] = 0;
  _$jscoverage['build/dom/dom.js'][887] = 0;
  _$jscoverage['build/dom/dom.js'][890] = 0;
  _$jscoverage['build/dom/dom.js'][892] = 0;
  _$jscoverage['build/dom/dom.js'][901] = 0;
  _$jscoverage['build/dom/dom.js'][904] = 0;
  _$jscoverage['build/dom/dom.js'][913] = 0;
  _$jscoverage['build/dom/dom.js'][915] = 0;
  _$jscoverage['build/dom/dom.js'][924] = 0;
  _$jscoverage['build/dom/dom.js'][927] = 0;
  _$jscoverage['build/dom/dom.js'][928] = 0;
  _$jscoverage['build/dom/dom.js'][933] = 0;
  _$jscoverage['build/dom/dom.js'][943] = 0;
  _$jscoverage['build/dom/dom.js'][946] = 0;
  _$jscoverage['build/dom/dom.js'][947] = 0;
  _$jscoverage['build/dom/dom.js'][951] = 0;
  _$jscoverage['build/dom/dom.js'][963] = 0;
  _$jscoverage['build/dom/dom.js'][964] = 0;
  _$jscoverage['build/dom/dom.js'][965] = 0;
  _$jscoverage['build/dom/dom.js'][969] = 0;
  _$jscoverage['build/dom/dom.js'][980] = 0;
  _$jscoverage['build/dom/dom.js'][981] = 0;
  _$jscoverage['build/dom/dom.js'][982] = 0;
  _$jscoverage['build/dom/dom.js'][984] = 0;
  _$jscoverage['build/dom/dom.js'][985] = 0;
  _$jscoverage['build/dom/dom.js'][996] = 0;
  _$jscoverage['build/dom/dom.js'][997] = 0;
  _$jscoverage['build/dom/dom.js'][998] = 0;
  _$jscoverage['build/dom/dom.js'][1000] = 0;
  _$jscoverage['build/dom/dom.js'][1001] = 0;
  _$jscoverage['build/dom/dom.js'][1004] = 0;
  _$jscoverage['build/dom/dom.js'][1018] = 0;
  _$jscoverage['build/dom/dom.js'][1019] = 0;
  _$jscoverage['build/dom/dom.js'][1020] = 0;
  _$jscoverage['build/dom/dom.js'][1021] = 0;
  _$jscoverage['build/dom/dom.js'][1024] = 0;
  _$jscoverage['build/dom/dom.js'][1034] = 0;
  _$jscoverage['build/dom/dom.js'][1035] = 0;
  _$jscoverage['build/dom/dom.js'][1036] = 0;
  _$jscoverage['build/dom/dom.js'][1039] = 0;
  _$jscoverage['build/dom/dom.js'][1053] = 0;
  _$jscoverage['build/dom/dom.js'][1054] = 0;
  _$jscoverage['build/dom/dom.js'][1055] = 0;
  _$jscoverage['build/dom/dom.js'][1056] = 0;
  _$jscoverage['build/dom/dom.js'][1059] = 0;
  _$jscoverage['build/dom/dom.js'][1069] = 0;
  _$jscoverage['build/dom/dom.js'][1070] = 0;
  _$jscoverage['build/dom/dom.js'][1071] = 0;
  _$jscoverage['build/dom/dom.js'][1074] = 0;
  _$jscoverage['build/dom/dom.js'][1086] = 0;
  _$jscoverage['build/dom/dom.js'][1087] = 0;
  _$jscoverage['build/dom/dom.js'][1097] = 0;
  _$jscoverage['build/dom/dom.js'][1098] = 0;
  _$jscoverage['build/dom/dom.js'][1099] = 0;
  _$jscoverage['build/dom/dom.js'][1101] = 0;
  _$jscoverage['build/dom/dom.js'][1113] = 0;
  _$jscoverage['build/dom/dom.js'][1114] = 0;
  _$jscoverage['build/dom/dom.js'][1116] = 0;
  _$jscoverage['build/dom/dom.js'][1117] = 0;
  _$jscoverage['build/dom/dom.js'][1127] = 0;
  _$jscoverage['build/dom/dom.js'][1128] = 0;
  _$jscoverage['build/dom/dom.js'][1140] = 0;
  _$jscoverage['build/dom/dom.js'][1143] = 0;
  _$jscoverage['build/dom/dom.js'][1144] = 0;
  _$jscoverage['build/dom/dom.js'][1145] = 0;
  _$jscoverage['build/dom/dom.js'][1147] = 0;
  _$jscoverage['build/dom/dom.js'][1150] = 0;
  _$jscoverage['build/dom/dom.js'][1160] = 0;
  _$jscoverage['build/dom/dom.js'][1161] = 0;
  _$jscoverage['build/dom/dom.js'][1164] = 0;
  _$jscoverage['build/dom/dom.js'][1174] = 0;
  _$jscoverage['build/dom/dom.js'][1175] = 0;
  _$jscoverage['build/dom/dom.js'][1185] = 0;
  _$jscoverage['build/dom/dom.js'][1186] = 0;
  _$jscoverage['build/dom/dom.js'][1197] = 0;
  _$jscoverage['build/dom/dom.js'][1198] = 0;
  _$jscoverage['build/dom/dom.js'][1200] = 0;
  _$jscoverage['build/dom/dom.js'][1201] = 0;
  _$jscoverage['build/dom/dom.js'][1204] = 0;
  _$jscoverage['build/dom/dom.js'][1215] = 0;
  _$jscoverage['build/dom/dom.js'][1216] = 0;
  _$jscoverage['build/dom/dom.js'][1218] = 0;
  _$jscoverage['build/dom/dom.js'][1219] = 0;
  _$jscoverage['build/dom/dom.js'][1222] = 0;
  _$jscoverage['build/dom/dom.js'][1223] = 0;
  _$jscoverage['build/dom/dom.js'][1225] = 0;
  _$jscoverage['build/dom/dom.js'][1235] = 0;
  _$jscoverage['build/dom/dom.js'][1240] = 0;
  _$jscoverage['build/dom/dom.js'][1251] = 0;
  _$jscoverage['build/dom/dom.js'][1255] = 0;
  _$jscoverage['build/dom/dom.js'][1258] = 0;
  _$jscoverage['build/dom/dom.js'][1259] = 0;
  _$jscoverage['build/dom/dom.js'][1260] = 0;
  _$jscoverage['build/dom/dom.js'][1262] = 0;
  _$jscoverage['build/dom/dom.js'][1263] = 0;
  _$jscoverage['build/dom/dom.js'][1277] = 0;
  _$jscoverage['build/dom/dom.js'][1282] = 0;
  _$jscoverage['build/dom/dom.js'][1283] = 0;
  _$jscoverage['build/dom/dom.js'][1285] = 0;
  _$jscoverage['build/dom/dom.js'][1286] = 0;
  _$jscoverage['build/dom/dom.js'][1290] = 0;
  _$jscoverage['build/dom/dom.js'][1294] = 0;
  _$jscoverage['build/dom/dom.js'][1296] = 0;
  _$jscoverage['build/dom/dom.js'][1297] = 0;
  _$jscoverage['build/dom/dom.js'][1300] = 0;
  _$jscoverage['build/dom/dom.js'][1306] = 0;
  _$jscoverage['build/dom/dom.js'][1307] = 0;
  _$jscoverage['build/dom/dom.js'][1308] = 0;
  _$jscoverage['build/dom/dom.js'][1309] = 0;
  _$jscoverage['build/dom/dom.js'][1311] = 0;
  _$jscoverage['build/dom/dom.js'][1312] = 0;
  _$jscoverage['build/dom/dom.js'][1314] = 0;
  _$jscoverage['build/dom/dom.js'][1315] = 0;
  _$jscoverage['build/dom/dom.js'][1319] = 0;
  _$jscoverage['build/dom/dom.js'][1329] = 0;
  _$jscoverage['build/dom/dom.js'][1333] = 0;
  _$jscoverage['build/dom/dom.js'][1335] = 0;
  _$jscoverage['build/dom/dom.js'][1336] = 0;
  _$jscoverage['build/dom/dom.js'][1337] = 0;
  _$jscoverage['build/dom/dom.js'][1338] = 0;
  _$jscoverage['build/dom/dom.js'][1341] = 0;
  _$jscoverage['build/dom/dom.js'][1342] = 0;
  _$jscoverage['build/dom/dom.js'][1343] = 0;
  _$jscoverage['build/dom/dom.js'][1347] = 0;
  _$jscoverage['build/dom/dom.js'][1349] = 0;
  _$jscoverage['build/dom/dom.js'][1350] = 0;
  _$jscoverage['build/dom/dom.js'][1351] = 0;
  _$jscoverage['build/dom/dom.js'][1352] = 0;
  _$jscoverage['build/dom/dom.js'][1353] = 0;
  _$jscoverage['build/dom/dom.js'][1356] = 0;
  _$jscoverage['build/dom/dom.js'][1362] = 0;
  _$jscoverage['build/dom/dom.js'][1363] = 0;
  _$jscoverage['build/dom/dom.js'][1364] = 0;
  _$jscoverage['build/dom/dom.js'][1366] = 0;
  _$jscoverage['build/dom/dom.js'][1367] = 0;
  _$jscoverage['build/dom/dom.js'][1370] = 0;
  _$jscoverage['build/dom/dom.js'][1375] = 0;
  _$jscoverage['build/dom/dom.js'][1376] = 0;
  _$jscoverage['build/dom/dom.js'][1391] = 0;
  _$jscoverage['build/dom/dom.js'][1398] = 0;
  _$jscoverage['build/dom/dom.js'][1405] = 0;
  _$jscoverage['build/dom/dom.js'][1412] = 0;
  _$jscoverage['build/dom/dom.js'][1419] = 0;
  _$jscoverage['build/dom/dom.js'][1426] = 0;
  _$jscoverage['build/dom/dom.js'][1433] = 0;
  _$jscoverage['build/dom/dom.js'][1440] = 0;
  _$jscoverage['build/dom/dom.js'][1447] = 0;
  _$jscoverage['build/dom/dom.js'][1454] = 0;
  _$jscoverage['build/dom/dom.js'][1461] = 0;
  _$jscoverage['build/dom/dom.js'][1471] = 0;
  _$jscoverage['build/dom/dom.js'][1472] = 0;
  _$jscoverage['build/dom/dom.js'][1484] = 0;
  _$jscoverage['build/dom/dom.js'][1485] = 0;
  _$jscoverage['build/dom/dom.js'][1494] = 0;
  _$jscoverage['build/dom/dom.js'][1495] = 0;
  _$jscoverage['build/dom/dom.js'][1500] = 0;
  _$jscoverage['build/dom/dom.js'][1501] = 0;
  _$jscoverage['build/dom/dom.js'][1503] = 0;
  _$jscoverage['build/dom/dom.js'][1514] = 0;
  _$jscoverage['build/dom/dom.js'][1515] = 0;
  _$jscoverage['build/dom/dom.js'][1520] = 0;
  _$jscoverage['build/dom/dom.js'][1528] = 0;
  _$jscoverage['build/dom/dom.js'][1529] = 0;
  _$jscoverage['build/dom/dom.js'][1546] = 0;
  _$jscoverage['build/dom/dom.js'][1547] = 0;
  _$jscoverage['build/dom/dom.js'][1553] = 0;
  _$jscoverage['build/dom/dom.js'][1569] = 0;
  _$jscoverage['build/dom/dom.js'][1570] = 0;
  _$jscoverage['build/dom/dom.js'][1571] = 0;
  _$jscoverage['build/dom/dom.js'][1572] = 0;
  _$jscoverage['build/dom/dom.js'][1575] = 0;
  _$jscoverage['build/dom/dom.js'][1578] = 0;
  _$jscoverage['build/dom/dom.js'][1580] = 0;
  _$jscoverage['build/dom/dom.js'][1587] = 0;
  _$jscoverage['build/dom/dom.js'][1614] = 0;
  _$jscoverage['build/dom/dom.js'][1617] = 0;
  _$jscoverage['build/dom/dom.js'][1618] = 0;
  _$jscoverage['build/dom/dom.js'][1619] = 0;
  _$jscoverage['build/dom/dom.js'][1620] = 0;
  _$jscoverage['build/dom/dom.js'][1621] = 0;
  _$jscoverage['build/dom/dom.js'][1622] = 0;
  _$jscoverage['build/dom/dom.js'][1623] = 0;
  _$jscoverage['build/dom/dom.js'][1624] = 0;
  _$jscoverage['build/dom/dom.js'][1626] = 0;
  _$jscoverage['build/dom/dom.js'][1629] = 0;
  _$jscoverage['build/dom/dom.js'][1633] = 0;
  _$jscoverage['build/dom/dom.js'][1640] = 0;
  _$jscoverage['build/dom/dom.js'][1641] = 0;
  _$jscoverage['build/dom/dom.js'][1642] = 0;
  _$jscoverage['build/dom/dom.js'][1643] = 0;
  _$jscoverage['build/dom/dom.js'][1646] = 0;
  _$jscoverage['build/dom/dom.js'][1647] = 0;
  _$jscoverage['build/dom/dom.js'][1648] = 0;
  _$jscoverage['build/dom/dom.js'][1649] = 0;
  _$jscoverage['build/dom/dom.js'][1651] = 0;
  _$jscoverage['build/dom/dom.js'][1653] = 0;
  _$jscoverage['build/dom/dom.js'][1656] = 0;
  _$jscoverage['build/dom/dom.js'][1657] = 0;
  _$jscoverage['build/dom/dom.js'][1659] = 0;
  _$jscoverage['build/dom/dom.js'][1661] = 0;
  _$jscoverage['build/dom/dom.js'][1667] = 0;
  _$jscoverage['build/dom/dom.js'][1668] = 0;
  _$jscoverage['build/dom/dom.js'][1669] = 0;
  _$jscoverage['build/dom/dom.js'][1672] = 0;
  _$jscoverage['build/dom/dom.js'][1674] = 0;
  _$jscoverage['build/dom/dom.js'][1675] = 0;
  _$jscoverage['build/dom/dom.js'][1677] = 0;
  _$jscoverage['build/dom/dom.js'][1678] = 0;
  _$jscoverage['build/dom/dom.js'][1680] = 0;
  _$jscoverage['build/dom/dom.js'][1681] = 0;
  _$jscoverage['build/dom/dom.js'][1683] = 0;
  _$jscoverage['build/dom/dom.js'][1684] = 0;
  _$jscoverage['build/dom/dom.js'][1686] = 0;
  _$jscoverage['build/dom/dom.js'][1691] = 0;
  _$jscoverage['build/dom/dom.js'][1695] = 0;
  _$jscoverage['build/dom/dom.js'][1696] = 0;
  _$jscoverage['build/dom/dom.js'][1697] = 0;
  _$jscoverage['build/dom/dom.js'][1699] = 0;
  _$jscoverage['build/dom/dom.js'][1703] = 0;
  _$jscoverage['build/dom/dom.js'][1704] = 0;
  _$jscoverage['build/dom/dom.js'][1705] = 0;
  _$jscoverage['build/dom/dom.js'][1707] = 0;
  _$jscoverage['build/dom/dom.js'][1709] = 0;
  _$jscoverage['build/dom/dom.js'][1713] = 0;
  _$jscoverage['build/dom/dom.js'][1714] = 0;
  _$jscoverage['build/dom/dom.js'][1715] = 0;
  _$jscoverage['build/dom/dom.js'][1717] = 0;
  _$jscoverage['build/dom/dom.js'][1721] = 0;
  _$jscoverage['build/dom/dom.js'][1725] = 0;
  _$jscoverage['build/dom/dom.js'][1727] = 0;
  _$jscoverage['build/dom/dom.js'][1735] = 0;
  _$jscoverage['build/dom/dom.js'][1738] = 0;
  _$jscoverage['build/dom/dom.js'][1740] = 0;
  _$jscoverage['build/dom/dom.js'][1744] = 0;
  _$jscoverage['build/dom/dom.js'][1747] = 0;
  _$jscoverage['build/dom/dom.js'][1748] = 0;
  _$jscoverage['build/dom/dom.js'][1752] = 0;
  _$jscoverage['build/dom/dom.js'][1753] = 0;
  _$jscoverage['build/dom/dom.js'][1755] = 0;
  _$jscoverage['build/dom/dom.js'][1762] = 0;
  _$jscoverage['build/dom/dom.js'][1767] = 0;
  _$jscoverage['build/dom/dom.js'][1792] = 0;
  _$jscoverage['build/dom/dom.js'][1793] = 0;
  _$jscoverage['build/dom/dom.js'][1796] = 0;
  _$jscoverage['build/dom/dom.js'][1797] = 0;
  _$jscoverage['build/dom/dom.js'][1803] = 0;
  _$jscoverage['build/dom/dom.js'][1807] = 0;
  _$jscoverage['build/dom/dom.js'][1808] = 0;
  _$jscoverage['build/dom/dom.js'][1809] = 0;
  _$jscoverage['build/dom/dom.js'][1813] = 0;
  _$jscoverage['build/dom/dom.js'][1820] = 0;
  _$jscoverage['build/dom/dom.js'][1821] = 0;
  _$jscoverage['build/dom/dom.js'][1824] = 0;
  _$jscoverage['build/dom/dom.js'][1825] = 0;
  _$jscoverage['build/dom/dom.js'][1828] = 0;
  _$jscoverage['build/dom/dom.js'][1832] = 0;
}
_$jscoverage['build/dom/dom.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\"> * The dom module provides helper methods for manipulating Dom elements.</span>","<span class=\"c\"> * @module dom</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=\"c\">// for use with generateId (global to save state if Dom is overwritten)</span>","    YAHOO<span class=\"k\">.</span>env<span class=\"k\">.</span>_id_counter <span class=\"k\">=</span> YAHOO<span class=\"k\">.</span>env<span class=\"k\">.</span>_id_counter <span class=\"k\">||</span> <span class=\"s\">0</span><span class=\"k\">;</span>","","    <span class=\"c\">// internal shorthand</span>","    <span class=\"k\">var</span> Y <span class=\"k\">=</span> YAHOO<span class=\"k\">.</span>util<span class=\"k\">,</span>","        lang <span class=\"k\">=</span> YAHOO<span class=\"k\">.</span>lang<span class=\"k\">,</span>","        UA <span class=\"k\">=</span> YAHOO<span class=\"k\">.</span>env<span class=\"k\">.</span>ua<span class=\"k\">,</span>","        trim <span class=\"k\">=</span> YAHOO<span class=\"k\">.</span>lang<span class=\"k\">.</span>trim<span class=\"k\">,</span>","        propertyCache <span class=\"k\">=</span> <span class=\"k\">{}</span><span class=\"k\">,</span> <span class=\"c\">// for faster hyphen converts</span>","        reCache <span class=\"k\">=</span> <span class=\"k\">{}</span><span class=\"k\">,</span> <span class=\"c\">// cache className regexes</span>","        RE_TABLE <span class=\"k\">=</span> <span class=\"s\">/^t(?:able|d|h)$/i</span><span class=\"k\">,</span> <span class=\"c\">// for _calcBorders</span>","        RE_COLOR <span class=\"k\">=</span> <span class=\"s\">/color$/i</span><span class=\"k\">,</span>","","        <span class=\"c\">// DOM aliases </span>","        document <span class=\"k\">=</span> window<span class=\"k\">.</span>document<span class=\"k\">,</span>     ","        documentElement <span class=\"k\">=</span> document<span class=\"k\">.</span>documentElement<span class=\"k\">,</span>","","        <span class=\"c\">// string constants</span>","        OWNER_DOCUMENT <span class=\"k\">=</span> <span class=\"s\">'ownerDocument'</span><span class=\"k\">,</span>","        DEFAULT_VIEW <span class=\"k\">=</span> <span class=\"s\">'defaultView'</span><span class=\"k\">,</span>","        DOCUMENT_ELEMENT <span class=\"k\">=</span> <span class=\"s\">'documentElement'</span><span class=\"k\">,</span>","        COMPAT_MODE <span class=\"k\">=</span> <span class=\"s\">'compatMode'</span><span class=\"k\">,</span>","        OFFSET_LEFT <span class=\"k\">=</span> <span class=\"s\">'offsetLeft'</span><span class=\"k\">,</span>","        OFFSET_TOP <span class=\"k\">=</span> <span class=\"s\">'offsetTop'</span><span class=\"k\">,</span>","        OFFSET_PARENT <span class=\"k\">=</span> <span class=\"s\">'offsetParent'</span><span class=\"k\">,</span>","        PARENT_NODE <span class=\"k\">=</span> <span class=\"s\">'parentNode'</span><span class=\"k\">,</span>","        NODE_TYPE <span class=\"k\">=</span> <span class=\"s\">'nodeType'</span><span class=\"k\">,</span>","        TAG_NAME <span class=\"k\">=</span> <span class=\"s\">'tagName'</span><span class=\"k\">,</span>","        SCROLL_LEFT <span class=\"k\">=</span> <span class=\"s\">'scrollLeft'</span><span class=\"k\">,</span>","        SCROLL_TOP <span class=\"k\">=</span> <span class=\"s\">'scrollTop'</span><span class=\"k\">,</span>","        GET_BOUNDING_CLIENT_RECT <span class=\"k\">=</span> <span class=\"s\">'getBoundingClientRect'</span><span class=\"k\">,</span>","        GET_COMPUTED_STYLE <span class=\"k\">=</span> <span class=\"s\">'getComputedStyle'</span><span class=\"k\">,</span>","        CURRENT_STYLE <span class=\"k\">=</span> <span class=\"s\">'currentStyle'</span><span class=\"k\">,</span>","        CSS1_COMPAT <span class=\"k\">=</span> <span class=\"s\">'CSS1Compat'</span><span class=\"k\">,</span>","        _BACK_COMPAT <span class=\"k\">=</span> <span class=\"s\">'BackCompat'</span><span class=\"k\">,</span>","        _CLASS <span class=\"k\">=</span> <span class=\"s\">'class'</span><span class=\"k\">,</span> <span class=\"c\">// underscore due to reserved word</span>","        CLASS_NAME <span class=\"k\">=</span> <span class=\"s\">'className'</span><span class=\"k\">,</span>","        EMPTY <span class=\"k\">=</span> <span class=\"s\">''</span><span class=\"k\">,</span>","        SPACE <span class=\"k\">=</span> <span class=\"s\">' '</span><span class=\"k\">,</span>","        C_START <span class=\"k\">=</span> <span class=\"s\">'(?:^|</span><span class=\"t\">\\\\</span><span class=\"s\">s)'</span><span class=\"k\">,</span>","        C_END <span class=\"k\">=</span> <span class=\"s\">'(?= |$)'</span><span class=\"k\">,</span>","        G <span class=\"k\">=</span> <span class=\"s\">'g'</span><span class=\"k\">,</span>","        POSITION <span class=\"k\">=</span> <span class=\"s\">'position'</span><span class=\"k\">,</span>","        FIXED <span class=\"k\">=</span> <span class=\"s\">'fixed'</span><span class=\"k\">,</span>","        RELATIVE <span class=\"k\">=</span> <span class=\"s\">'relative'</span><span class=\"k\">,</span>","        LEFT <span class=\"k\">=</span> <span class=\"s\">'left'</span><span class=\"k\">,</span>","        TOP <span class=\"k\">=</span> <span class=\"s\">'top'</span><span class=\"k\">,</span>","        MEDIUM <span class=\"k\">=</span> <span class=\"s\">'medium'</span><span class=\"k\">,</span>","        BORDER_LEFT_WIDTH <span class=\"k\">=</span> <span class=\"s\">'borderLeftWidth'</span><span class=\"k\">,</span>","        BORDER_TOP_WIDTH <span class=\"k\">=</span> <span class=\"s\">'borderTopWidth'</span><span class=\"k\">,</span>","    ","    <span class=\"c\">// brower detection</span>","        isOpera <span class=\"k\">=</span> UA<span class=\"k\">.</span>opera<span class=\"k\">,</span>","        isSafari <span class=\"k\">=</span> UA<span class=\"k\">.</span>webkit<span class=\"k\">,</span> ","        isGecko <span class=\"k\">=</span> UA<span class=\"k\">.</span>gecko<span class=\"k\">,</span> ","        isIE <span class=\"k\">=</span> UA<span class=\"k\">.</span>ie<span class=\"k\">;</span> ","    ","    <span class=\"c\">/**</span>","<span class=\"c\">     * Provides helper methods for DOM elements.</span>","<span class=\"c\">     * @namespace YAHOO.util</span>","<span class=\"c\">     * @class Dom</span>","<span class=\"c\">     * @requires yahoo, event</span>","<span class=\"c\">     */</span>","    Y<span class=\"k\">.</span>Dom <span class=\"k\">=</span> <span class=\"k\">{</span>","        CUSTOM_ATTRIBUTES<span class=\"k\">:</span> <span class=\"k\">(!</span>documentElement<span class=\"k\">.</span>hasAttribute<span class=\"k\">)</span> <span class=\"k\">?</span> <span class=\"k\">{</span> <span class=\"c\">// IE &lt; 8</span>","            <span class=\"s\">'for'</span><span class=\"k\">:</span> <span class=\"s\">'htmlFor'</span><span class=\"k\">,</span>","            <span class=\"s\">'class'</span><span class=\"k\">:</span> CLASS_NAME","        <span class=\"k\">}</span> <span class=\"k\">:</span> <span class=\"k\">{</span> <span class=\"c\">// w3c</span>","            <span class=\"s\">'htmlFor'</span><span class=\"k\">:</span> <span class=\"s\">'for'</span><span class=\"k\">,</span>","            <span class=\"s\">'className'</span><span class=\"k\">:</span> _CLASS","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        DOT_ATTRIBUTES<span class=\"k\">:</span> <span class=\"k\">{}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns an HTMLElement reference.</span>","<span class=\"c\">         * @method get</span>","<span class=\"c\">         * @param {String | HTMLElement |Array} el Accepts a string to use as an ID for getting a DOM reference, an actual DOM reference, or an Array of IDs and/or HTMLElements.</span>","<span class=\"c\">         * @return {HTMLElement | Array} A DOM reference to an HTML element or an array of HTMLElements.</span>","<span class=\"c\">         */</span>","        get<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> id<span class=\"k\">,</span> nodes<span class=\"k\">,</span> c<span class=\"k\">,</span> i<span class=\"k\">,</span> len<span class=\"k\">,</span> attr<span class=\"k\">;</span>","","            <span class=\"k\">if</span> <span class=\"k\">(</span>el<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>el<span class=\"k\">[</span>NODE_TYPE<span class=\"k\">]</span> <span class=\"k\">||</span> el<span class=\"k\">.</span>item<span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// Node, or NodeList</span>","                    <span class=\"k\">return</span> el<span class=\"k\">;</span>","                <span class=\"k\">}</span>","","                <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"k\">typeof</span> el <span class=\"k\">===</span> <span class=\"s\">'string'</span><span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// id</span>","                    id <span class=\"k\">=</span> el<span class=\"k\">;</span>","                    el <span class=\"k\">=</span> document<span class=\"k\">.</span>getElementById<span class=\"k\">(</span>el<span class=\"k\">);</span>","                    attr <span class=\"k\">=</span> <span class=\"k\">(</span>el<span class=\"k\">)</span> <span class=\"k\">?</span> el<span class=\"k\">.</span>attributes <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">;</span>","                    <span class=\"k\">if</span> <span class=\"k\">(</span>el <span class=\"k\">&amp;&amp;</span> attr <span class=\"k\">&amp;&amp;</span> attr<span class=\"k\">.</span>id <span class=\"k\">&amp;&amp;</span> attr<span class=\"k\">.</span>id<span class=\"k\">.</span>value <span class=\"k\">===</span> id<span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// IE: avoid false match on \"name\" attribute</span>","                        <span class=\"k\">return</span> el<span class=\"k\">;</span>","                    <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">if</span> <span class=\"k\">(</span>el <span class=\"k\">&amp;&amp;</span> document<span class=\"k\">.</span>all<span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// filter by name</span>","                        el <span class=\"k\">=</span> <span class=\"k\">null</span><span class=\"k\">;</span>","                        nodes <span class=\"k\">=</span> document<span class=\"k\">.</span>all<span class=\"k\">[</span>id<span class=\"k\">];</span>","                        <span class=\"k\">for</span> <span class=\"k\">(</span>i <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">,</span> len <span class=\"k\">=</span> nodes<span class=\"k\">.</span>length<span class=\"k\">;</span> i <span class=\"k\">&lt;</span> len<span class=\"k\">;</span> <span class=\"k\">++</span>i<span class=\"k\">)</span> <span class=\"k\">{</span>","                            <span class=\"k\">if</span> <span class=\"k\">(</span>nodes<span class=\"k\">[</span>i<span class=\"k\">].</span>id <span class=\"k\">===</span> id<span class=\"k\">)</span> <span class=\"k\">{</span>","                                <span class=\"k\">return</span> nodes<span class=\"k\">[</span>i<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=\"k\">if</span> <span class=\"k\">(</span>YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>Element <span class=\"k\">&amp;&amp;</span> el <span class=\"k\">instanceof</span> YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>Element<span class=\"k\">)</span> <span class=\"k\">{</span>","                    el <span class=\"k\">=</span> el<span class=\"k\">.</span>get<span class=\"k\">(</span><span class=\"s\">'element'</span><span class=\"k\">);</span>","                <span class=\"k\">}</span>","","                <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"s\">'length'</span> <span class=\"k\">in</span> el<span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// array-like </span>","                    c <span class=\"k\">=</span> <span class=\"k\">[];</span>","                    <span class=\"k\">for</span> <span class=\"k\">(</span>i <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">,</span> len <span class=\"k\">=</span> el<span class=\"k\">.</span>length<span class=\"k\">;</span> i <span class=\"k\">&lt;</span> len<span class=\"k\">;</span> <span class=\"k\">++</span>i<span class=\"k\">)</span> <span class=\"k\">{</span>","                        c<span class=\"k\">[</span>c<span class=\"k\">.</span>length<span class=\"k\">]</span> <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>get<span class=\"k\">(</span>el<span class=\"k\">[</span>i<span class=\"k\">]);</span>","                    <span class=\"k\">}</span>","                    ","                    <span class=\"k\">return</span> c<span class=\"k\">;</span>","                <span class=\"k\">}</span>","","                <span class=\"k\">return</span> el<span class=\"k\">;</span> <span class=\"c\">// some other object, just pass it back</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">return</span> <span class=\"k\">null</span><span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","    ","        getComputedStyle<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> property<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>window<span class=\"k\">[</span>GET_COMPUTED_STYLE<span class=\"k\">])</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> el<span class=\"k\">[</span>OWNER_DOCUMENT<span class=\"k\">][</span>DEFAULT_VIEW<span class=\"k\">][</span>GET_COMPUTED_STYLE<span class=\"k\">](</span>el<span class=\"k\">,</span> <span class=\"k\">null</span><span class=\"k\">)[</span>property<span class=\"k\">];</span>","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">if</span> <span class=\"k\">(</span>el<span class=\"k\">[</span>CURRENT_STYLE<span class=\"k\">])</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>IE_ComputedStyle<span class=\"k\">.</span>get<span class=\"k\">(</span>el<span class=\"k\">,</span> property<span class=\"k\">);</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Normalizes currentStyle and ComputedStyle.</span>","<span class=\"c\">         * @method getStyle</span>","<span class=\"c\">         * @param {String | HTMLElement |Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.</span>","<span class=\"c\">         * @param {String} property The style property whose value is returned.</span>","<span class=\"c\">         * @return {String | Array} The current value of the style property for the element(s).</span>","<span class=\"c\">         */</span>","        getStyle<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> property<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>batch<span class=\"k\">(</span>el<span class=\"k\">,</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_getStyle<span class=\"k\">,</span> property<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">// branching at load instead of runtime</span>","        _getStyle<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>window<span class=\"k\">[</span>GET_COMPUTED_STYLE<span class=\"k\">])</span> <span class=\"k\">{</span> <span class=\"c\">// W3C DOM method</span>","                <span class=\"k\">return</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> property<span class=\"k\">)</span> <span class=\"k\">{</span>","                    property <span class=\"k\">=</span> <span class=\"k\">(</span>property <span class=\"k\">===</span> <span class=\"s\">'float'</span><span class=\"k\">)</span> <span class=\"k\">?</span> property <span class=\"k\">=</span> <span class=\"s\">'cssFloat'</span> <span class=\"k\">:</span>","                            Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_toCamel<span class=\"k\">(</span>property<span class=\"k\">);</span>","","                    <span class=\"k\">var</span> value <span class=\"k\">=</span> el<span class=\"k\">.</span>style<span class=\"k\">[</span>property<span class=\"k\">],</span>","                        computed<span class=\"k\">;</span>","                    ","                    <span class=\"k\">if</span> <span class=\"k\">(!</span>value<span class=\"k\">)</span> <span class=\"k\">{</span>","                        computed <span class=\"k\">=</span> el<span class=\"k\">[</span>OWNER_DOCUMENT<span class=\"k\">][</span>DEFAULT_VIEW<span class=\"k\">][</span>GET_COMPUTED_STYLE<span class=\"k\">](</span>el<span class=\"k\">,</span> <span class=\"k\">null</span><span class=\"k\">);</span>","                        <span class=\"k\">if</span> <span class=\"k\">(</span>computed<span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// test computed before touching for safari</span>","                            value <span class=\"k\">=</span> computed<span class=\"k\">[</span>property<span class=\"k\">];</span>","                        <span class=\"k\">}</span>","                    <span class=\"k\">}</span>","                    ","                    <span class=\"k\">return</span> value<span class=\"k\">;</span>","                <span class=\"k\">}</span><span class=\"k\">;</span>","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">if</span> <span class=\"k\">(</span>documentElement<span class=\"k\">[</span>CURRENT_STYLE<span class=\"k\">])</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> property<span class=\"k\">)</span> <span class=\"k\">{</span>                         ","                    <span class=\"k\">var</span> value<span class=\"k\">;</span>","","                    <span class=\"k\">switch</span><span class=\"k\">(</span>property<span class=\"k\">)</span> <span class=\"k\">{</span>","                        <span class=\"k\">case</span> <span class=\"s\">'opacity'</span> <span class=\"k\">:</span><span class=\"c\">// IE opacity uses filter</span>","                            value <span class=\"k\">=</span> <span class=\"s\">100</span><span class=\"k\">;</span>","                            <span class=\"k\">try</span> <span class=\"k\">{</span> <span class=\"c\">// will error if no DXImageTransform</span>","                                value <span class=\"k\">=</span> el<span class=\"k\">.</span>filters<span class=\"k\">[</span><span class=\"s\">'DXImageTransform.Microsoft.Alpha'</span><span class=\"k\">].</span>opacity<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\">try</span> <span class=\"k\">{</span> <span class=\"c\">// make sure its in the document</span>","                                    value <span class=\"k\">=</span> el<span class=\"k\">.</span>filters<span class=\"k\">(</span><span class=\"s\">'alpha'</span><span class=\"k\">).</span>opacity<span class=\"k\">;</span>","                                <span class=\"k\">}</span> <span class=\"k\">catch</span><span class=\"k\">(</span>err<span class=\"k\">)</span> <span class=\"k\">{</span>","                                <span class=\"k\">}</span>","                            <span class=\"k\">}</span>","                            <span class=\"k\">return</span> value <span class=\"k\">/</span> <span class=\"s\">100</span><span class=\"k\">;</span>","                        <span class=\"k\">case</span> <span class=\"s\">'float'</span><span class=\"k\">:</span> <span class=\"c\">// fix reserved word</span>","                            property <span class=\"k\">=</span> <span class=\"s\">'styleFloat'</span><span class=\"k\">;</span> <span class=\"c\">// fall through</span>","                        <span class=\"k\">default</span><span class=\"k\">:</span> ","                            property <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_toCamel<span class=\"k\">(</span>property<span class=\"k\">);</span>","                            value <span class=\"k\">=</span> el<span class=\"k\">[</span>CURRENT_STYLE<span class=\"k\">]</span> <span class=\"k\">?</span> el<span class=\"k\">[</span>CURRENT_STYLE<span class=\"k\">][</span>property<span class=\"k\">]</span> <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">;</span>","                            <span class=\"k\">return</span> <span class=\"k\">(</span> el<span class=\"k\">.</span>style<span class=\"k\">[</span>property<span class=\"k\">]</span> <span class=\"k\">||</span> value <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=\"k\">(),</span>","    ","        <span class=\"c\">/**</span>","<span class=\"c\">         * Wrapper for setting style properties of HTMLElements.  Normalizes \"opacity\" across modern browsers.</span>","<span class=\"c\">         * @method setStyle</span>","<span class=\"c\">         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.</span>","<span class=\"c\">         * @param {String} property The style property to be set.</span>","<span class=\"c\">         * @param {String} val The value to apply to the given property.</span>","<span class=\"c\">         */</span>","        setStyle<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> property<span class=\"k\">,</span> val<span class=\"k\">)</span> <span class=\"k\">{</span>","            Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>batch<span class=\"k\">(</span>el<span class=\"k\">,</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_setStyle<span class=\"k\">,</span> <span class=\"k\">{</span> prop<span class=\"k\">:</span> property<span class=\"k\">,</span> val<span class=\"k\">:</span> val <span class=\"k\">}</span><span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        _setStyle<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>isIE<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> args<span class=\"k\">)</span> <span class=\"k\">{</span>","                    <span class=\"k\">var</span> property <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_toCamel<span class=\"k\">(</span>args<span class=\"k\">.</span>prop<span class=\"k\">),</span>","                        val <span class=\"k\">=</span> args<span class=\"k\">.</span>val<span class=\"k\">;</span>","","                    <span class=\"k\">if</span> <span class=\"k\">(</span>el<span class=\"k\">)</span> <span class=\"k\">{</span>","                        <span class=\"k\">switch</span> <span class=\"k\">(</span>property<span class=\"k\">)</span> <span class=\"k\">{</span>","                            <span class=\"k\">case</span> <span class=\"s\">'opacity'</span><span class=\"k\">:</span>","                                <span class=\"k\">if</span> <span class=\"k\">(</span> lang<span class=\"k\">.</span>isString<span class=\"k\">(</span>el<span class=\"k\">.</span>style<span class=\"k\">.</span>filter<span class=\"k\">)</span> <span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// in case not appended</span>","                                    el<span class=\"k\">.</span>style<span class=\"k\">.</span>filter <span class=\"k\">=</span> <span class=\"s\">'alpha(opacity='</span> <span class=\"k\">+</span> val <span class=\"k\">*</span> <span class=\"s\">100</span> <span class=\"k\">+</span> <span class=\"s\">')'</span><span class=\"k\">;</span>","                                    ","                                    <span class=\"k\">if</span> <span class=\"k\">(!</span>el<span class=\"k\">[</span>CURRENT_STYLE<span class=\"k\">]</span> <span class=\"k\">||</span> <span class=\"k\">!</span>el<span class=\"k\">[</span>CURRENT_STYLE<span class=\"k\">].</span>hasLayout<span class=\"k\">)</span> <span class=\"k\">{</span>","                                        el<span class=\"k\">.</span>style<span class=\"k\">.</span>zoom <span class=\"k\">=</span> <span class=\"s\">1</span><span class=\"k\">;</span> <span class=\"c\">// when no layout or cant tell</span>","                                    <span class=\"k\">}</span>","                                <span class=\"k\">}</span>","                                <span class=\"k\">break</span><span class=\"k\">;</span>","                            <span class=\"k\">case</span> <span class=\"s\">'float'</span><span class=\"k\">:</span>","                                property <span class=\"k\">=</span> <span class=\"s\">'styleFloat'</span><span class=\"k\">;</span>","                            <span class=\"k\">default</span><span class=\"k\">:</span>","                            el<span class=\"k\">.</span>style<span class=\"k\">[</span>property<span class=\"k\">]</span> <span class=\"k\">=</span> val<span class=\"k\">;</span>","                        <span class=\"k\">}</span>","                    <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                    <span class=\"k\">}</span>","                <span class=\"k\">}</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\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> args<span class=\"k\">)</span> <span class=\"k\">{</span>","                    <span class=\"k\">var</span> property <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_toCamel<span class=\"k\">(</span>args<span class=\"k\">.</span>prop<span class=\"k\">),</span>","                        val <span class=\"k\">=</span> args<span class=\"k\">.</span>val<span class=\"k\">;</span>","                    <span class=\"k\">if</span> <span class=\"k\">(</span>el<span class=\"k\">)</span> <span class=\"k\">{</span>","                        <span class=\"k\">if</span> <span class=\"k\">(</span>property <span class=\"k\">==</span> <span class=\"s\">'float'</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                            property <span class=\"k\">=</span> <span class=\"s\">'cssFloat'</span><span class=\"k\">;</span>","                        <span class=\"k\">}</span>","                        el<span class=\"k\">.</span>style<span class=\"k\">[</span>property<span class=\"k\">]</span> <span class=\"k\">=</span> val<span class=\"k\">;</span>","                    <span class=\"k\">}</span> <span class=\"k\">else</span> <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=\"k\">(),</span>","        ","        <span class=\"c\">/**</span>","<span class=\"c\">         * Gets the current position of an element based on page coordinates. </span>","<span class=\"c\">         * Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).</span>","<span class=\"c\">         * @method getXY</span>","<span class=\"c\">         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM</span>","<span class=\"c\">         * reference, or an Array of IDs and/or HTMLElements</span>","<span class=\"c\">         * @return {Array} The XY position of the element(s)</span>","<span class=\"c\">         */</span>","        getXY<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>batch<span class=\"k\">(</span>el<span class=\"k\">,</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_getXY<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        _canPosition<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> <span class=\"k\">(</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_getStyle<span class=\"k\">(</span>el<span class=\"k\">,</span> <span class=\"s\">'display'</span><span class=\"k\">)</span> <span class=\"k\">!==</span> <span class=\"s\">'none'</span> <span class=\"k\">&amp;&amp;</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_inDoc<span class=\"k\">(</span>el<span class=\"k\">)</span> <span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        _getXY<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>document<span class=\"k\">[</span>DOCUMENT_ELEMENT<span class=\"k\">][</span>GET_BOUNDING_CLIENT_RECT<span class=\"k\">])</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">)</span> <span class=\"k\">{</span>","                    <span class=\"k\">var</span> scrollLeft<span class=\"k\">,</span> scrollTop<span class=\"k\">,</span> box<span class=\"k\">,</span> doc<span class=\"k\">,</span>","                        off1<span class=\"k\">,</span> off2<span class=\"k\">,</span> mode<span class=\"k\">,</span> bLeft<span class=\"k\">,</span> bTop<span class=\"k\">,</span>","                        floor <span class=\"k\">=</span> Math<span class=\"k\">.</span>floor<span class=\"k\">,</span> <span class=\"c\">// TODO: round?</span>","                        xy <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","","                    <span class=\"k\">if</span> <span class=\"k\">(</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_canPosition<span class=\"k\">(</span>node<span class=\"k\">))</span> <span class=\"k\">{</span>","                        box <span class=\"k\">=</span> node<span class=\"k\">[</span>GET_BOUNDING_CLIENT_RECT<span class=\"k\">]();</span>","                        doc <span class=\"k\">=</span> node<span class=\"k\">[</span>OWNER_DOCUMENT<span class=\"k\">];</span>","                        scrollLeft <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getDocumentScrollLeft<span class=\"k\">(</span>doc<span class=\"k\">);</span>","                        scrollTop <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getDocumentScrollTop<span class=\"k\">(</span>doc<span class=\"k\">);</span>","                        xy <span class=\"k\">=</span> <span class=\"k\">[</span>floor<span class=\"k\">(</span>box<span class=\"k\">[</span>LEFT<span class=\"k\">]),</span> floor<span class=\"k\">(</span>box<span class=\"k\">[</span>TOP<span class=\"k\">])];</span>","","                        <span class=\"k\">if</span> <span class=\"k\">(</span>isIE <span class=\"k\">&amp;&amp;</span> UA<span class=\"k\">.</span>ie <span class=\"k\">&lt;</span> <span class=\"s\">8</span><span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// IE &lt; 8: viewport off by 2</span>","                            off1 <span class=\"k\">=</span> <span class=\"s\">2</span><span class=\"k\">;</span>","                            off2 <span class=\"k\">=</span> <span class=\"s\">2</span><span class=\"k\">;</span>","                            mode <span class=\"k\">=</span> doc<span class=\"k\">[</span>COMPAT_MODE<span class=\"k\">];</span>","","                            <span class=\"k\">if</span> <span class=\"k\">(</span>UA<span class=\"k\">.</span>ie <span class=\"k\">===</span> <span class=\"s\">6</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                                <span class=\"k\">if</span> <span class=\"k\">(</span>mode <span class=\"k\">!==</span> _BACK_COMPAT<span class=\"k\">)</span> <span class=\"k\">{</span>","                                    off1 <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">;</span>","                                    off2 <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">;</span>","                                <span class=\"k\">}</span>","                            <span class=\"k\">}</span>","                            ","                            <span class=\"k\">if</span> <span class=\"k\">((</span>mode <span class=\"k\">===</span> _BACK_COMPAT<span class=\"k\">))</span> <span class=\"k\">{</span>","                                bLeft <span class=\"k\">=</span> _getComputedStyle<span class=\"k\">(</span>doc<span class=\"k\">[</span>DOCUMENT_ELEMENT<span class=\"k\">],</span> BORDER_LEFT_WIDTH<span class=\"k\">);</span>","                                bTop <span class=\"k\">=</span> _getComputedStyle<span class=\"k\">(</span>doc<span class=\"k\">[</span>DOCUMENT_ELEMENT<span class=\"k\">],</span> BORDER_TOP_WIDTH<span class=\"k\">);</span>","                                <span class=\"k\">if</span> <span class=\"k\">(</span>bLeft <span class=\"k\">!==</span> MEDIUM<span class=\"k\">)</span> <span class=\"k\">{</span>","                                    off1 <span class=\"k\">=</span> parseInt<span class=\"k\">(</span>bLeft<span class=\"k\">,</span> <span class=\"s\">10</span><span class=\"k\">);</span>","                                <span class=\"k\">}</span>","                                <span class=\"k\">if</span> <span class=\"k\">(</span>bTop <span class=\"k\">!==</span> MEDIUM<span class=\"k\">)</span> <span class=\"k\">{</span>","                                    off2 <span class=\"k\">=</span> parseInt<span class=\"k\">(</span>bTop<span class=\"k\">,</span> <span class=\"s\">10</span><span class=\"k\">);</span>","                                <span class=\"k\">}</span>","                            <span class=\"k\">}</span>","                            ","                            xy<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">-=</span> off1<span class=\"k\">;</span>","                            xy<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]</span> <span class=\"k\">-=</span> off2<span class=\"k\">;</span>","","                        <span class=\"k\">}</span>","","                        <span class=\"k\">if</span> <span class=\"k\">((</span>scrollTop <span class=\"k\">||</span> scrollLeft<span class=\"k\">))</span> <span class=\"k\">{</span>","                            xy<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">+=</span> scrollLeft<span class=\"k\">;</span>","                            xy<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]</span> <span class=\"k\">+=</span> scrollTop<span class=\"k\">;</span>","                        <span class=\"k\">}</span>","","                        <span class=\"c\">// gecko may return sub-pixel (non-int) values</span>","                        xy<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">=</span> floor<span class=\"k\">(</span>xy<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]);</span>","                        xy<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]</span> <span class=\"k\">=</span> floor<span class=\"k\">(</span>xy<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]);</span>","                    <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                    <span class=\"k\">}</span>","","                    <span class=\"k\">return</span> xy<span class=\"k\">;</span>","                <span class=\"k\">}</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\">function</span><span class=\"k\">(</span>node<span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// ff2, safari: manually calculate by crawling up offsetParents</span>","                    <span class=\"k\">var</span> docScrollLeft<span class=\"k\">,</span> docScrollTop<span class=\"k\">,</span>","                        scrollTop<span class=\"k\">,</span> scrollLeft<span class=\"k\">,</span>","                        bCheck<span class=\"k\">,</span>","                        xy <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">,</span>","                        parentNode <span class=\"k\">=</span> node<span class=\"k\">;</span>","","                    <span class=\"k\">if</span>  <span class=\"k\">(</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_canPosition<span class=\"k\">(</span>node<span class=\"k\">)</span> <span class=\"k\">)</span> <span class=\"k\">{</span>","                        xy <span class=\"k\">=</span> <span class=\"k\">[</span>node<span class=\"k\">[</span>OFFSET_LEFT<span class=\"k\">],</span> node<span class=\"k\">[</span>OFFSET_TOP<span class=\"k\">]];</span>","                        docScrollLeft <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getDocumentScrollLeft<span class=\"k\">(</span>node<span class=\"k\">[</span>OWNER_DOCUMENT<span class=\"k\">]);</span>","                        docScrollTop <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getDocumentScrollTop<span class=\"k\">(</span>node<span class=\"k\">[</span>OWNER_DOCUMENT<span class=\"k\">]);</span>","","                        <span class=\"c\">// TODO: refactor with !! or just falsey</span>","                        bCheck <span class=\"k\">=</span> <span class=\"k\">((</span>isGecko <span class=\"k\">||</span> UA<span class=\"k\">.</span>webkit <span class=\"k\">&gt;</span> <span class=\"s\">519</span><span class=\"k\">)</span> <span class=\"k\">?</span> <span class=\"k\">true</span> <span class=\"k\">:</span> <span class=\"k\">false</span><span class=\"k\">);</span>","","                        <span class=\"c\">// TODO: worth refactoring for TOP/LEFT only?</span>","                        <span class=\"k\">while</span> <span class=\"k\">((</span>parentNode <span class=\"k\">=</span> parentNode<span class=\"k\">[</span>OFFSET_PARENT<span class=\"k\">]))</span> <span class=\"k\">{</span>","                            xy<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">+=</span> parentNode<span class=\"k\">[</span>OFFSET_LEFT<span class=\"k\">];</span>","                            xy<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]</span> <span class=\"k\">+=</span> parentNode<span class=\"k\">[</span>OFFSET_TOP<span class=\"k\">];</span>","                            <span class=\"k\">if</span> <span class=\"k\">(</span>bCheck<span class=\"k\">)</span> <span class=\"k\">{</span>","                                xy <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_calcBorders<span class=\"k\">(</span>parentNode<span class=\"k\">,</span> xy<span class=\"k\">);</span>","                            <span class=\"k\">}</span>","                        <span class=\"k\">}</span>","","                        <span class=\"c\">// account for any scrolled ancestors</span>","                        <span class=\"k\">if</span> <span class=\"k\">(</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_getStyle<span class=\"k\">(</span>node<span class=\"k\">,</span> POSITION<span class=\"k\">)</span> <span class=\"k\">!==</span> FIXED<span class=\"k\">)</span> <span class=\"k\">{</span>","                            parentNode <span class=\"k\">=</span> node<span class=\"k\">;</span>","","                            <span class=\"k\">while</span> <span class=\"k\">((</span>parentNode <span class=\"k\">=</span> parentNode<span class=\"k\">[</span>PARENT_NODE<span class=\"k\">])</span> <span class=\"k\">&amp;&amp;</span> parentNode<span class=\"k\">[</span>TAG_NAME<span class=\"k\">])</span> <span class=\"k\">{</span>","                                scrollTop <span class=\"k\">=</span> parentNode<span class=\"k\">[</span>SCROLL_TOP<span class=\"k\">];</span>","                                scrollLeft <span class=\"k\">=</span> parentNode<span class=\"k\">[</span>SCROLL_LEFT<span class=\"k\">];</span>","","                                <span class=\"c\">//Firefox does something funky with borders when overflow is not visible.</span>","                                <span class=\"k\">if</span> <span class=\"k\">(</span>isGecko <span class=\"k\">&amp;&amp;</span> <span class=\"k\">(</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_getStyle<span class=\"k\">(</span>parentNode<span class=\"k\">,</span> <span class=\"s\">'overflow'</span><span class=\"k\">)</span> <span class=\"k\">!==</span> <span class=\"s\">'visible'</span><span class=\"k\">))</span> <span class=\"k\">{</span>","                                        xy <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_calcBorders<span class=\"k\">(</span>parentNode<span class=\"k\">,</span> xy<span class=\"k\">);</span>","                                <span class=\"k\">}</span>","","                                <span class=\"k\">if</span> <span class=\"k\">(</span>scrollTop <span class=\"k\">||</span> scrollLeft<span class=\"k\">)</span> <span class=\"k\">{</span>","                                    xy<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">-=</span> scrollLeft<span class=\"k\">;</span>","                                    xy<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]</span> <span class=\"k\">-=</span> scrollTop<span class=\"k\">;</span>","                                <span class=\"k\">}</span>","                            <span class=\"k\">}</span>","                            xy<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">+=</span> docScrollLeft<span class=\"k\">;</span>","                            xy<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]</span> <span class=\"k\">+=</span> docScrollTop<span class=\"k\">;</span>","","                        <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                            <span class=\"c\">//Fix FIXED position -- add scrollbars</span>","                            <span class=\"k\">if</span> <span class=\"k\">(</span>isOpera<span class=\"k\">)</span> <span class=\"k\">{</span>","                                xy<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">-=</span> docScrollLeft<span class=\"k\">;</span>","                                xy<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]</span> <span class=\"k\">-=</span> docScrollTop<span class=\"k\">;</span>","                            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">if</span> <span class=\"k\">(</span>isSafari <span class=\"k\">||</span> isGecko<span class=\"k\">)</span> <span class=\"k\">{</span>","                                xy<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">+=</span> docScrollLeft<span class=\"k\">;</span>","                                xy<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]</span> <span class=\"k\">+=</span> docScrollTop<span class=\"k\">;</span>","                            <span class=\"k\">}</span>","                        <span class=\"k\">}</span>","                        <span class=\"c\">//Round the numbers so we get sane data back</span>","                        xy<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">=</span> Math<span class=\"k\">.</span>floor<span class=\"k\">(</span>xy<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]);</span>","                        xy<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]</span> <span class=\"k\">=</span> Math<span class=\"k\">.</span>floor<span class=\"k\">(</span>xy<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]);</span>","                    <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                    <span class=\"k\">}</span>","                    <span class=\"k\">return</span> xy<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\">// NOTE: Executing for loadtime branching</span>","        ","        <span class=\"c\">/**</span>","<span class=\"c\">         * Gets the current X position of an element based on page coordinates.  The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).</span>","<span class=\"c\">         * @method getX</span>","<span class=\"c\">         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements</span>","<span class=\"c\">         * @return {Number | Array} The X position of the element(s)</span>","<span class=\"c\">         */</span>","        getX<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> f <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getXY<span class=\"k\">(</span>el<span class=\"k\">)[</span><span class=\"s\">0</span><span class=\"k\">];</span>","            <span class=\"k\">}</span><span class=\"k\">;</span>","            ","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>batch<span class=\"k\">(</span>el<span class=\"k\">,</span> f<span class=\"k\">,</span> Y<span class=\"k\">.</span>Dom<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\">         * Gets the current Y position of an element based on page coordinates.  Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).</span>","<span class=\"c\">         * @method getY</span>","<span class=\"c\">         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements</span>","<span class=\"c\">         * @return {Number | Array} The Y position of the element(s)</span>","<span class=\"c\">         */</span>","        getY<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> f <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getXY<span class=\"k\">(</span>el<span class=\"k\">)[</span><span class=\"s\">1</span><span class=\"k\">];</span>","            <span class=\"k\">}</span><span class=\"k\">;</span>","            ","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>batch<span class=\"k\">(</span>el<span class=\"k\">,</span> f<span class=\"k\">,</span> Y<span class=\"k\">.</span>Dom<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\">         * Set the position of an html element in page coordinates, regardless of how the element is positioned.</span>","<span class=\"c\">         * The element(s) must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).</span>","<span class=\"c\">         * @method setXY</span>","<span class=\"c\">         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements</span>","<span class=\"c\">         * @param {Array} pos Contains X &amp; Y values for new position (coordinates are page-based)</span>","<span class=\"c\">         * @param {Boolean} noRetry By default we try and set the position a second time if the first fails</span>","<span class=\"c\">         */</span>","        setXY<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> pos<span class=\"k\">,</span> noRetry<span class=\"k\">)</span> <span class=\"k\">{</span>","            Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>batch<span class=\"k\">(</span>el<span class=\"k\">,</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_setXY<span class=\"k\">,</span> <span class=\"k\">{</span> pos<span class=\"k\">:</span> pos<span class=\"k\">,</span> noRetry<span class=\"k\">:</span> noRetry <span class=\"k\">}</span><span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        _setXY<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">,</span> args<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> pos <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_getStyle<span class=\"k\">(</span>node<span class=\"k\">,</span> POSITION<span class=\"k\">),</span>","                setStyle <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>setStyle<span class=\"k\">,</span>","                xy <span class=\"k\">=</span> args<span class=\"k\">.</span>pos<span class=\"k\">,</span>","                noRetry <span class=\"k\">=</span> args<span class=\"k\">.</span>noRetry<span class=\"k\">,</span>","","                delta <span class=\"k\">=</span> <span class=\"k\">[</span> <span class=\"c\">// assuming pixels; if not we will have to retry</span>","                    parseInt<span class=\"k\">(</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getComputedStyle<span class=\"k\">(</span>node<span class=\"k\">,</span> LEFT<span class=\"k\">),</span> <span class=\"s\">10</span> <span class=\"k\">),</span>","                    parseInt<span class=\"k\">(</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getComputedStyle<span class=\"k\">(</span>node<span class=\"k\">,</span> TOP<span class=\"k\">),</span> <span class=\"s\">10</span> <span class=\"k\">)</span>","                <span class=\"k\">],</span>","","                currentXY<span class=\"k\">,</span>","                newXY<span class=\"k\">;</span>","        ","            <span class=\"k\">if</span> <span class=\"k\">(</span>pos <span class=\"k\">==</span> <span class=\"s\">'static'</span><span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// default to relative</span>","                pos <span class=\"k\">=</span> RELATIVE<span class=\"k\">;</span>","                setStyle<span class=\"k\">(</span>node<span class=\"k\">,</span> POSITION<span class=\"k\">,</span> pos<span class=\"k\">);</span>","            <span class=\"k\">}</span>","","            currentXY <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_getXY<span class=\"k\">(</span>node<span class=\"k\">);</span>","","            <span class=\"k\">if</span> <span class=\"k\">(!</span>xy <span class=\"k\">||</span> currentXY <span class=\"k\">===</span> <span class=\"k\">false</span><span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// has to be part of doc to have xy</span>","                <span class=\"k\">return</span> <span class=\"k\">false</span><span class=\"k\">;</span> ","            <span class=\"k\">}</span>","            ","            <span class=\"k\">if</span> <span class=\"k\">(</span> isNaN<span class=\"k\">(</span>delta<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">])</span> <span class=\"k\">)</span> <span class=\"k\">{</span><span class=\"c\">// in case of 'auto'</span>","                delta<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">=</span> <span class=\"k\">(</span>pos <span class=\"k\">==</span> RELATIVE<span class=\"k\">)</span> <span class=\"k\">?</span> <span class=\"s\">0</span> <span class=\"k\">:</span> node<span class=\"k\">[</span>OFFSET_LEFT<span class=\"k\">];</span>","            <span class=\"k\">}</span> ","            <span class=\"k\">if</span> <span class=\"k\">(</span> isNaN<span class=\"k\">(</span>delta<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">])</span> <span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// in case of 'auto'</span>","                delta<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]</span> <span class=\"k\">=</span> <span class=\"k\">(</span>pos <span class=\"k\">==</span> RELATIVE<span class=\"k\">)</span> <span class=\"k\">?</span> <span class=\"s\">0</span> <span class=\"k\">:</span> node<span class=\"k\">[</span>OFFSET_TOP<span class=\"k\">];</span>","            <span class=\"k\">}</span> ","","            <span class=\"k\">if</span> <span class=\"k\">(</span>xy<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">!==</span> <span class=\"k\">null</span><span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// from setX</span>","                setStyle<span class=\"k\">(</span>node<span class=\"k\">,</span> LEFT<span class=\"k\">,</span> xy<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">-</span> currentXY<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">+</span> delta<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">+</span> <span class=\"s\">'px'</span><span class=\"k\">);</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">if</span> <span class=\"k\">(</span>xy<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]</span> <span class=\"k\">!==</span> <span class=\"k\">null</span><span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// from setY</span>","                setStyle<span class=\"k\">(</span>node<span class=\"k\">,</span> TOP<span class=\"k\">,</span> xy<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]</span> <span class=\"k\">-</span> currentXY<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]</span> <span class=\"k\">+</span> delta<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]</span> <span class=\"k\">+</span> <span class=\"s\">'px'</span><span class=\"k\">);</span>","            <span class=\"k\">}</span>","          ","            <span class=\"k\">if</span> <span class=\"k\">(!</span>noRetry<span class=\"k\">)</span> <span class=\"k\">{</span>","                newXY <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_getXY<span class=\"k\">(</span>node<span class=\"k\">);</span>","","                <span class=\"c\">// if retry is true, try one more time if we miss </span>","               <span class=\"k\">if</span> <span class=\"k\">(</span> <span class=\"k\">(</span>xy<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">!==</span> <span class=\"k\">null</span> <span class=\"k\">&amp;&amp;</span> newXY<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">!=</span> xy<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">])</span> <span class=\"k\">||</span> ","                    <span class=\"k\">(</span>xy<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]</span> <span class=\"k\">!==</span> <span class=\"k\">null</span> <span class=\"k\">&amp;&amp;</span> newXY<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]</span> <span class=\"k\">!=</span> xy<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">])</span> <span class=\"k\">)</span> <span class=\"k\">{</span>","                   Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_setXY<span class=\"k\">(</span>node<span class=\"k\">,</span> <span class=\"k\">{</span> pos<span class=\"k\">:</span> xy<span class=\"k\">,</span> noRetry<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=\"k\">}</span><span class=\"k\">,</span>","        ","        <span class=\"c\">/**</span>","<span class=\"c\">         * Set the X position of an html element in page coordinates, regardless of how the element is positioned.</span>","<span class=\"c\">         * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).</span>","<span class=\"c\">         * @method setX</span>","<span class=\"c\">         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.</span>","<span class=\"c\">         * @param {Int} x The value to use as the X coordinate for the element(s).</span>","<span class=\"c\">         */</span>","        setX<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> x<span class=\"k\">)</span> <span class=\"k\">{</span>","            Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>setXY<span class=\"k\">(</span>el<span class=\"k\">,</span> <span class=\"k\">[</span>x<span class=\"k\">,</span> <span class=\"k\">null</span><span class=\"k\">]);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","        ","        <span class=\"c\">/**</span>","<span class=\"c\">         * Set the Y position of an html element in page coordinates, regardless of how the element is positioned.</span>","<span class=\"c\">         * The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).</span>","<span class=\"c\">         * @method setY</span>","<span class=\"c\">         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.</span>","<span class=\"c\">         * @param {Int} x To use as the Y coordinate for the element(s).</span>","<span class=\"c\">         */</span>","        setY<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> y<span class=\"k\">)</span> <span class=\"k\">{</span>","            Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>setXY<span class=\"k\">(</span>el<span class=\"k\">,</span> <span class=\"k\">[</span><span class=\"k\">null</span><span class=\"k\">,</span> y<span class=\"k\">]);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","        ","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns the region position of the given element.</span>","<span class=\"c\">         * The element must be part of the DOM tree to have a region (display:none or elements not appended return false).</span>","<span class=\"c\">         * @method getRegion</span>","<span class=\"c\">         * @param {String | HTMLElement | Array} el Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.</span>","<span class=\"c\">         * @return {Region | Array} A Region or array of Region instances containing \"top, left, bottom, right\" member data.</span>","<span class=\"c\">         */</span>","        getRegion<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> f <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">var</span> region <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_canPosition<span class=\"k\">(</span>el<span class=\"k\">)</span> <span class=\"k\">)</span> <span class=\"k\">{</span>","                    region <span class=\"k\">=</span> Y<span class=\"k\">.</span>Region<span class=\"k\">.</span>getRegion<span class=\"k\">(</span>el<span class=\"k\">);</span>","                <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                <span class=\"k\">}</span>","","                <span class=\"k\">return</span> region<span class=\"k\">;</span>","            <span class=\"k\">}</span><span class=\"k\">;</span>","            ","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>batch<span class=\"k\">(</span>el<span class=\"k\">,</span> f<span class=\"k\">,</span> Y<span class=\"k\">.</span>Dom<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\">         * Returns the width of the client (viewport).</span>","<span class=\"c\">         * @method getClientWidth</span>","<span class=\"c\">         * @deprecated Now using getViewportWidth.  This interface left intact for back compat.</span>","<span class=\"c\">         * @return {Int} The width of the viewable area of the page.</span>","<span class=\"c\">         */</span>","        getClientWidth<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getViewportWidth<span class=\"k\">();</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","        ","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns the height of the client (viewport).</span>","<span class=\"c\">         * @method getClientHeight</span>","<span class=\"c\">         * @deprecated Now using getViewportHeight.  This interface left intact for back compat.</span>","<span class=\"c\">         * @return {Int} The height of the viewable area of the page.</span>","<span class=\"c\">         */</span>","        getClientHeight<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getViewportHeight<span class=\"k\">();</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns an array of HTMLElements with the given class.</span>","<span class=\"c\">         * For optimized performance, include a tag and/or root node when possible.</span>","<span class=\"c\">         * Note: This method operates against a live collection, so modifying the </span>","<span class=\"c\">         * collection in the callback (removing/appending nodes, etc.) will have</span>","<span class=\"c\">         * side effects.  Instead you should iterate the returned nodes array,</span>","<span class=\"c\">         * as you would with the native \"getElementsByTagName\" method. </span>","<span class=\"c\">         * @method getElementsByClassName</span>","<span class=\"c\">         * @param {String} className The class name to match against</span>","<span class=\"c\">         * @param {String} tag (optional) The tag name of the elements being collected</span>","<span class=\"c\">         * @param {String | HTMLElement} root (optional) The HTMLElement or an ID to use as the starting point.</span>","<span class=\"c\">         * This element is not included in the className scan.</span>","<span class=\"c\">         * @param {Function} apply (optional) A function to apply to each element when found </span>","<span class=\"c\">         * @param {Any} o (optional) An optional arg that is passed to the supplied method</span>","<span class=\"c\">         * @param {Boolean} overrides (optional) Whether or not to override the scope of \"method\" with \"o\"</span>","<span class=\"c\">         * @return {Array} An array of elements that have the given class name</span>","<span class=\"c\">         */</span>","        getElementsByClassName<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>className<span class=\"k\">,</span> tag<span class=\"k\">,</span> root<span class=\"k\">,</span> apply<span class=\"k\">,</span> o<span class=\"k\">,</span> overrides<span class=\"k\">)</span> <span class=\"k\">{</span>","            tag <span class=\"k\">=</span> tag <span class=\"k\">||</span> <span class=\"s\">'*'</span><span class=\"k\">;</span>","            root <span class=\"k\">=</span> <span class=\"k\">(</span>root<span class=\"k\">)</span> <span class=\"k\">?</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>get<span class=\"k\">(</span>root<span class=\"k\">)</span> <span class=\"k\">:</span> <span class=\"k\">null</span> <span class=\"k\">||</span> document<span class=\"k\">;</span> ","            <span class=\"k\">if</span> <span class=\"k\">(!</span>root<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> <span class=\"k\">[];</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">var</span> nodes <span class=\"k\">=</span> <span class=\"k\">[],</span>","                elements <span class=\"k\">=</span> root<span class=\"k\">.</span>getElementsByTagName<span class=\"k\">(</span>tag<span class=\"k\">),</span>","                hasClass <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>hasClass<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> len <span class=\"k\">=</span> elements<span class=\"k\">.</span>length<span class=\"k\">;</span> i <span class=\"k\">&lt;</span> len<span class=\"k\">;</span> <span class=\"k\">++</span>i<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span> hasClass<span class=\"k\">(</span>elements<span class=\"k\">[</span>i<span class=\"k\">],</span> className<span class=\"k\">)</span> <span class=\"k\">)</span> <span class=\"k\">{</span>","                    nodes<span class=\"k\">[</span>nodes<span class=\"k\">.</span>length<span class=\"k\">]</span> <span class=\"k\">=</span> elements<span class=\"k\">[</span>i<span class=\"k\">];</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","            ","            <span class=\"k\">if</span> <span class=\"k\">(</span>apply<span class=\"k\">)</span> <span class=\"k\">{</span>","                Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>batch<span class=\"k\">(</span>nodes<span class=\"k\">,</span> apply<span class=\"k\">,</span> o<span class=\"k\">,</span> overrides<span class=\"k\">);</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">return</span> nodes<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Determines whether an HTMLElement has the given className.</span>","<span class=\"c\">         * @method hasClass</span>","<span class=\"c\">         * @param {String | HTMLElement | Array} el The element or collection to test</span>","<span class=\"c\">         * @param {String} className the class name to search for</span>","<span class=\"c\">         * @return {Boolean | Array} A boolean value or array of boolean values</span>","<span class=\"c\">         */</span>","        hasClass<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> className<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>batch<span class=\"k\">(</span>el<span class=\"k\">,</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_hasClass<span class=\"k\">,</span> className<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        _hasClass<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> className<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> ret <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">,</span>","                current<span class=\"k\">;</span>","            ","            <span class=\"k\">if</span> <span class=\"k\">(</span>el <span class=\"k\">&amp;&amp;</span> className<span class=\"k\">)</span> <span class=\"k\">{</span>","                current <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_getAttribute<span class=\"k\">(</span>el<span class=\"k\">,</span> CLASS_NAME<span class=\"k\">)</span> <span class=\"k\">||</span> EMPTY<span class=\"k\">;</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>className<span class=\"k\">.</span>exec<span class=\"k\">)</span> <span class=\"k\">{</span>","                    ret <span class=\"k\">=</span> className<span class=\"k\">.</span>test<span class=\"k\">(</span>current<span class=\"k\">);</span>","                <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                    ret <span class=\"k\">=</span> className <span class=\"k\">&amp;&amp;</span> <span class=\"k\">(</span>SPACE <span class=\"k\">+</span> current <span class=\"k\">+</span> SPACE<span class=\"k\">).</span>","                        indexOf<span class=\"k\">(</span>SPACE <span class=\"k\">+</span> className <span class=\"k\">+</span> SPACE<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\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">return</span> ret<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","    ","        <span class=\"c\">/**</span>","<span class=\"c\">         * Adds a class name to a given element or collection of elements.</span>","<span class=\"c\">         * @method addClass         </span>","<span class=\"c\">         * @param {String | HTMLElement | Array} el The element or collection to add the class to</span>","<span class=\"c\">         * @param {String} className the class name to add to the class attribute</span>","<span class=\"c\">         * @return {Boolean | Array} A pass/fail boolean or array of booleans</span>","<span class=\"c\">         */</span>","        addClass<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> className<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>batch<span class=\"k\">(</span>el<span class=\"k\">,</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_addClass<span class=\"k\">,</span> className<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        _addClass<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> className<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> ret <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">,</span>","                current<span class=\"k\">;</span>","","            <span class=\"k\">if</span> <span class=\"k\">(</span>el <span class=\"k\">&amp;&amp;</span> className<span class=\"k\">)</span> <span class=\"k\">{</span>","                current <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_getAttribute<span class=\"k\">(</span>el<span class=\"k\">,</span> CLASS_NAME<span class=\"k\">)</span> <span class=\"k\">||</span> EMPTY<span class=\"k\">;</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span> <span class=\"k\">!</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_hasClass<span class=\"k\">(</span>el<span class=\"k\">,</span> className<span class=\"k\">)</span> <span class=\"k\">)</span> <span class=\"k\">{</span>","                    Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>setAttribute<span class=\"k\">(</span>el<span class=\"k\">,</span> CLASS_NAME<span class=\"k\">,</span> trim<span class=\"k\">(</span>current <span class=\"k\">+</span> SPACE <span class=\"k\">+</span> className<span class=\"k\">));</span>","                    ret <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">return</span> ret<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","    ","        <span class=\"c\">/**</span>","<span class=\"c\">         * Removes a class name from a given element or collection of elements.</span>","<span class=\"c\">         * @method removeClass         </span>","<span class=\"c\">         * @param {String | HTMLElement | Array} el The element or collection to remove the class from</span>","<span class=\"c\">         * @param {String} className the class name to remove from the class attribute</span>","<span class=\"c\">         * @return {Boolean | Array} A pass/fail boolean or array of booleans</span>","<span class=\"c\">         */</span>","        removeClass<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> className<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>batch<span class=\"k\">(</span>el<span class=\"k\">,</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_removeClass<span class=\"k\">,</span> className<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","        ","        _removeClass<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> className<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> ret <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">,</span>","                current<span class=\"k\">,</span>","                newClass<span class=\"k\">,</span>","                attr<span class=\"k\">;</span>","","            <span class=\"k\">if</span> <span class=\"k\">(</span>el <span class=\"k\">&amp;&amp;</span> className<span class=\"k\">)</span> <span class=\"k\">{</span>","                current <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_getAttribute<span class=\"k\">(</span>el<span class=\"k\">,</span> CLASS_NAME<span class=\"k\">)</span> <span class=\"k\">||</span> EMPTY<span class=\"k\">;</span>","                Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>setAttribute<span class=\"k\">(</span>el<span class=\"k\">,</span> CLASS_NAME<span class=\"k\">,</span> current<span class=\"k\">.</span>replace<span class=\"k\">(</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_getClassRegex<span class=\"k\">(</span>className<span class=\"k\">),</span> EMPTY<span class=\"k\">));</span>","","                newClass <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_getAttribute<span class=\"k\">(</span>el<span class=\"k\">,</span> CLASS_NAME<span class=\"k\">);</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>current <span class=\"k\">!==</span> newClass<span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// else nothing changed</span>","                    Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>setAttribute<span class=\"k\">(</span>el<span class=\"k\">,</span> CLASS_NAME<span class=\"k\">,</span> trim<span class=\"k\">(</span>newClass<span class=\"k\">));</span> <span class=\"c\">// trim after comparing to current class</span>","                    ret <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","","                    <span class=\"k\">if</span> <span class=\"k\">(</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_getAttribute<span class=\"k\">(</span>el<span class=\"k\">,</span> CLASS_NAME<span class=\"k\">)</span> <span class=\"k\">===</span> <span class=\"s\">''</span><span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// remove class attribute if empty</span>","                        attr <span class=\"k\">=</span> <span class=\"k\">(</span>el<span class=\"k\">.</span>hasAttribute <span class=\"k\">&amp;&amp;</span> el<span class=\"k\">.</span>hasAttribute<span class=\"k\">(</span>_CLASS<span class=\"k\">))</span> <span class=\"k\">?</span> _CLASS <span class=\"k\">:</span> CLASS_NAME<span class=\"k\">;</span>","                        el<span class=\"k\">.</span>removeAttribute<span class=\"k\">(</span>attr<span class=\"k\">);</span>","                    <span class=\"k\">}</span>","                <span class=\"k\">}</span>","","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">return</span> ret<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","        ","        <span class=\"c\">/**</span>","<span class=\"c\">         * Replace a class with another class for a given element or collection of elements.</span>","<span class=\"c\">         * If no oldClassName is present, the newClassName is simply added.</span>","<span class=\"c\">         * @method replaceClass  </span>","<span class=\"c\">         * @param {String | HTMLElement | Array} el The element or collection to remove the class from</span>","<span class=\"c\">         * @param {String} oldClassName the class name to be replaced</span>","<span class=\"c\">         * @param {String} newClassName the class name that will be replacing the old class name</span>","<span class=\"c\">         * @return {Boolean | Array} A pass/fail boolean or array of booleans</span>","<span class=\"c\">         */</span>","        replaceClass<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> oldClassName<span class=\"k\">,</span> newClassName<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>batch<span class=\"k\">(</span>el<span class=\"k\">,</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_replaceClass<span class=\"k\">,</span> <span class=\"k\">{</span> from<span class=\"k\">:</span> oldClassName<span class=\"k\">,</span> to<span class=\"k\">:</span> newClassName <span class=\"k\">}</span><span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        _replaceClass<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> classObj<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> className<span class=\"k\">,</span>","                from<span class=\"k\">,</span>","                to<span class=\"k\">,</span>","                ret <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">,</span>","                current<span class=\"k\">;</span>","","            <span class=\"k\">if</span> <span class=\"k\">(</span>el <span class=\"k\">&amp;&amp;</span> classObj<span class=\"k\">)</span> <span class=\"k\">{</span>","                from <span class=\"k\">=</span> classObj<span class=\"k\">.</span>from<span class=\"k\">;</span>","                to <span class=\"k\">=</span> classObj<span class=\"k\">.</span>to<span class=\"k\">;</span>","","                <span class=\"k\">if</span> <span class=\"k\">(!</span>to<span class=\"k\">)</span> <span class=\"k\">{</span>","                    ret <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","                <span class=\"k\">}</span>  <span class=\"k\">else</span> <span class=\"k\">if</span> <span class=\"k\">(!</span>from<span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// just add if no \"from\"</span>","                    ret <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_addClass<span class=\"k\">(</span>el<span class=\"k\">,</span> classObj<span class=\"k\">.</span>to<span class=\"k\">);</span>","                <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">if</span> <span class=\"k\">(</span>from <span class=\"k\">!==</span> to<span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// else nothing to replace</span>","                    <span class=\"c\">// May need to lead with DBLSPACE?</span>","                    current <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_getAttribute<span class=\"k\">(</span>el<span class=\"k\">,</span> CLASS_NAME<span class=\"k\">)</span> <span class=\"k\">||</span> EMPTY<span class=\"k\">;</span>","                    className <span class=\"k\">=</span> <span class=\"k\">(</span>SPACE <span class=\"k\">+</span> current<span class=\"k\">.</span>replace<span class=\"k\">(</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_getClassRegex<span class=\"k\">(</span>from<span class=\"k\">),</span> SPACE <span class=\"k\">+</span> to<span class=\"k\">)).</span>","                               split<span class=\"k\">(</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_getClassRegex<span class=\"k\">(</span>to<span class=\"k\">));</span>","","                    <span class=\"c\">// insert to into what would have been the first occurrence slot</span>","                    className<span class=\"k\">.</span>splice<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">,</span> <span class=\"s\">0</span><span class=\"k\">,</span> SPACE <span class=\"k\">+</span> to<span class=\"k\">);</span>","                    Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>setAttribute<span class=\"k\">(</span>el<span class=\"k\">,</span> CLASS_NAME<span class=\"k\">,</span> trim<span class=\"k\">(</span>className<span class=\"k\">.</span>join<span class=\"k\">(</span>EMPTY<span class=\"k\">)));</span>","                    ret <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">return</span> ret<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","        ","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns an ID and applies it to the element \"el\", if provided.</span>","<span class=\"c\">         * @method generateId  </span>","<span class=\"c\">         * @param {String | HTMLElement | Array} el (optional) An optional element array of elements to add an ID to (no ID is added if one is already present).</span>","<span class=\"c\">         * @param {String} prefix (optional) an optional prefix to use (defaults to \"yui-gen\").</span>","<span class=\"c\">         * @return {String | Array} The generated ID, or array of generated IDs (or original ID if already present on an element)</span>","<span class=\"c\">         */</span>","        generateId<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> prefix<span class=\"k\">)</span> <span class=\"k\">{</span>","            prefix <span class=\"k\">=</span> prefix <span class=\"k\">||</span> <span class=\"s\">'yui-gen'</span><span class=\"k\">;</span>","","            <span class=\"k\">var</span> f <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>el <span class=\"k\">&amp;&amp;</span> el<span class=\"k\">.</span>id<span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// do not override existing ID</span>","                    <span class=\"k\">return</span> el<span class=\"k\">.</span>id<span class=\"k\">;</span>","                <span class=\"k\">}</span>","","                <span class=\"k\">var</span> id <span class=\"k\">=</span> prefix <span class=\"k\">+</span> YAHOO<span class=\"k\">.</span>env<span class=\"k\">.</span>_id_counter<span class=\"k\">++;</span>","","                <span class=\"k\">if</span> <span class=\"k\">(</span>el<span class=\"k\">)</span> <span class=\"k\">{</span>","                    <span class=\"k\">if</span> <span class=\"k\">(</span>el<span class=\"k\">[</span>OWNER_DOCUMENT<span class=\"k\">]</span> <span class=\"k\">&amp;&amp;</span> el<span class=\"k\">[</span>OWNER_DOCUMENT<span class=\"k\">].</span>getElementById<span class=\"k\">(</span>id<span class=\"k\">))</span> <span class=\"k\">{</span> <span class=\"c\">// in case one already exists</span>","                        <span class=\"c\">// use failed id plus prefix to help ensure uniqueness</span>","                        <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>generateId<span class=\"k\">(</span>el<span class=\"k\">,</span> id <span class=\"k\">+</span> prefix<span class=\"k\">);</span>","                    <span class=\"k\">}</span>","                    el<span class=\"k\">.</span>id <span class=\"k\">=</span> id<span class=\"k\">;</span>","                <span class=\"k\">}</span>","                ","                <span class=\"k\">return</span> id<span class=\"k\">;</span>","            <span class=\"k\">}</span><span class=\"k\">;</span>","","            <span class=\"c\">// batch fails when no element, so just generate and return single ID</span>","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>batch<span class=\"k\">(</span>el<span class=\"k\">,</span> f<span class=\"k\">,</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">,</span> <span class=\"k\">true</span><span class=\"k\">)</span> <span class=\"k\">||</span> f<span class=\"k\">.</span>apply<span class=\"k\">(</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">,</span> arguments<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","        ","        <span class=\"c\">/**</span>","<span class=\"c\">         * Determines whether an HTMLElement is an ancestor of another HTML element in the DOM hierarchy.</span>","<span class=\"c\">         * @method isAncestor</span>","<span class=\"c\">         * @param {String | HTMLElement} haystack The possible ancestor</span>","<span class=\"c\">         * @param {String | HTMLElement} needle The possible descendent</span>","<span class=\"c\">         * @return {Boolean} Whether or not the haystack is an ancestor of needle</span>","<span class=\"c\">         */</span>","        isAncestor<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>haystack<span class=\"k\">,</span> needle<span class=\"k\">)</span> <span class=\"k\">{</span>","            haystack <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>get<span class=\"k\">(</span>haystack<span class=\"k\">);</span>","            needle <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>get<span class=\"k\">(</span>needle<span class=\"k\">);</span>","            ","            <span class=\"k\">var</span> ret <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\">(</span>haystack <span class=\"k\">&amp;&amp;</span> needle<span class=\"k\">)</span> <span class=\"k\">&amp;&amp;</span> <span class=\"k\">(</span>haystack<span class=\"k\">[</span>NODE_TYPE<span class=\"k\">]</span> <span class=\"k\">&amp;&amp;</span> needle<span class=\"k\">[</span>NODE_TYPE<span class=\"k\">])</span> <span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>haystack<span class=\"k\">.</span>contains <span class=\"k\">&amp;&amp;</span> haystack <span class=\"k\">!==</span> needle<span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// contains returns true when equal</span>","                    ret <span class=\"k\">=</span> haystack<span class=\"k\">.</span>contains<span class=\"k\">(</span>needle<span class=\"k\">);</span>","                <span class=\"k\">}</span>","                <span class=\"k\">else</span> <span class=\"k\">if</span> <span class=\"k\">(</span>haystack<span class=\"k\">.</span>compareDocumentPosition<span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// gecko</span>","                    ret <span class=\"k\">=</span> <span class=\"k\">!!(</span>haystack<span class=\"k\">.</span>compareDocumentPosition<span class=\"k\">(</span>needle<span class=\"k\">)</span> <span class=\"k\">&amp;</span> <span class=\"s\">16</span><span class=\"k\">);</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","            <span class=\"k\">}</span>","            <span class=\"k\">return</span> ret<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","        ","        <span class=\"c\">/**</span>","<span class=\"c\">         * Determines whether an HTMLElement is present in the current document.</span>","<span class=\"c\">         * @method inDocument         </span>","<span class=\"c\">         * @param {String | HTMLElement} el The element to search for</span>","<span class=\"c\">         * @param {Object} doc An optional document to search, defaults to element's owner document </span>","<span class=\"c\">         * @return {Boolean} Whether or not the element is present in the current document</span>","<span class=\"c\">         */</span>","        inDocument<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> doc<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_inDoc<span class=\"k\">(</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>get<span class=\"k\">(</span>el<span class=\"k\">),</span> doc<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        _inDoc<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> doc<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> ret <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>el <span class=\"k\">&amp;&amp;</span> el<span class=\"k\">[</span>TAG_NAME<span class=\"k\">])</span> <span class=\"k\">{</span>","                doc <span class=\"k\">=</span> doc <span class=\"k\">||</span> el<span class=\"k\">[</span>OWNER_DOCUMENT<span class=\"k\">];</span> ","                ret <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>isAncestor<span class=\"k\">(</span>doc<span class=\"k\">[</span>DOCUMENT_ELEMENT<span class=\"k\">],</span> el<span class=\"k\">);</span>","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","            <span class=\"k\">}</span>","            <span class=\"k\">return</span> ret<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","        ","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns an array of HTMLElements that pass the test applied by supplied boolean method.</span>","<span class=\"c\">         * For optimized performance, include a tag and/or root node when possible.</span>","<span class=\"c\">         * Note: This method operates against a live collection, so modifying the </span>","<span class=\"c\">         * collection in the callback (removing/appending nodes, etc.) will have</span>","<span class=\"c\">         * side effects.  Instead you should iterate the returned nodes array,</span>","<span class=\"c\">         * as you would with the native \"getElementsByTagName\" method. </span>","<span class=\"c\">         * @method getElementsBy</span>","<span class=\"c\">         * @param {Function} method - A boolean method for testing elements which receives the element as its only argument.</span>","<span class=\"c\">         * @param {String} tag (optional) The tag name of the elements being collected</span>","<span class=\"c\">         * @param {String | HTMLElement} root (optional) The HTMLElement or an ID to use as the starting point </span>","<span class=\"c\">         * @param {Function} apply (optional) A function to apply to each element when found </span>","<span class=\"c\">         * @param {Any} o (optional) An optional arg that is passed to the supplied method</span>","<span class=\"c\">         * @param {Boolean} overrides (optional) Whether or not to override the scope of \"method\" with \"o\"</span>","<span class=\"c\">         * @return {Array} Array of HTMLElements</span>","<span class=\"c\">         */</span>","        getElementsBy<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>method<span class=\"k\">,</span> tag<span class=\"k\">,</span> root<span class=\"k\">,</span> apply<span class=\"k\">,</span> o<span class=\"k\">,</span> overrides<span class=\"k\">,</span> firstOnly<span class=\"k\">)</span> <span class=\"k\">{</span>","            tag <span class=\"k\">=</span> tag <span class=\"k\">||</span> <span class=\"s\">'*'</span><span class=\"k\">;</span>","            root <span class=\"k\">=</span> <span class=\"k\">(</span>root<span class=\"k\">)</span> <span class=\"k\">?</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>get<span class=\"k\">(</span>root<span class=\"k\">)</span> <span class=\"k\">:</span> <span class=\"k\">null</span> <span class=\"k\">||</span> document<span class=\"k\">;</span> ","","            <span class=\"k\">if</span> <span class=\"k\">(!</span>root<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> <span class=\"k\">[];</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">var</span> nodes <span class=\"k\">=</span> <span class=\"k\">[],</span>","                elements <span class=\"k\">=</span> root<span class=\"k\">.</span>getElementsByTagName<span class=\"k\">(</span>tag<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> len <span class=\"k\">=</span> elements<span class=\"k\">.</span>length<span class=\"k\">;</span> i <span class=\"k\">&lt;</span> len<span class=\"k\">;</span> <span class=\"k\">++</span>i<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span> method<span class=\"k\">(</span>elements<span class=\"k\">[</span>i<span class=\"k\">])</span> <span class=\"k\">)</span> <span class=\"k\">{</span>","                    <span class=\"k\">if</span> <span class=\"k\">(</span>firstOnly<span class=\"k\">)</span> <span class=\"k\">{</span>","                        nodes <span class=\"k\">=</span> elements<span class=\"k\">[</span>i<span class=\"k\">];</span> ","                        <span class=\"k\">break</span><span class=\"k\">;</span>","                    <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                        nodes<span class=\"k\">[</span>nodes<span class=\"k\">.</span>length<span class=\"k\">]</span> <span class=\"k\">=</span> elements<span class=\"k\">[</span>i<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>apply<span class=\"k\">)</span> <span class=\"k\">{</span>","                Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>batch<span class=\"k\">(</span>nodes<span class=\"k\">,</span> apply<span class=\"k\">,</span> o<span class=\"k\">,</span> overrides<span class=\"k\">);</span>","            <span class=\"k\">}</span>","","            ","            <span class=\"k\">return</span> nodes<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","        ","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns the first HTMLElement that passes the test applied by the supplied boolean method.</span>","<span class=\"c\">         * @method getElementBy</span>","<span class=\"c\">         * @param {Function} method - A boolean method for testing elements which receives the element as its only argument.</span>","<span class=\"c\">         * @param {String} tag (optional) The tag name of the elements being collected</span>","<span class=\"c\">         * @param {String | HTMLElement} root (optional) The HTMLElement or an ID to use as the starting point </span>","<span class=\"c\">         * @return {HTMLElement}</span>","<span class=\"c\">         */</span>","        getElementBy<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>method<span class=\"k\">,</span> tag<span class=\"k\">,</span> root<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getElementsBy<span class=\"k\">(</span>method<span class=\"k\">,</span> tag<span class=\"k\">,</span> root<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\">null</span><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\">         * Runs the supplied method against each item in the Collection/Array.</span>","<span class=\"c\">         * The method is called with the element(s) as the first arg, and the optional param as the second ( method(el, o) ).</span>","<span class=\"c\">         * @method batch</span>","<span class=\"c\">         * @param {String | HTMLElement | Array} el (optional) An element or array of elements to apply the method to</span>","<span class=\"c\">         * @param {Function} method The method to apply to the element(s)</span>","<span class=\"c\">         * @param {Any} o (optional) An optional arg that is passed to the supplied method</span>","<span class=\"c\">         * @param {Boolean} overrides (optional) Whether or not to override the scope of \"method\" with \"o\"</span>","<span class=\"c\">         * @return {Any | Array} The return value(s) from the supplied method</span>","<span class=\"c\">         */</span>","        batch<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> method<span class=\"k\">,</span> o<span class=\"k\">,</span> overrides<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> collection <span class=\"k\">=</span> <span class=\"k\">[],</span>","                scope <span class=\"k\">=</span> <span class=\"k\">(</span>overrides<span class=\"k\">)</span> <span class=\"k\">?</span> o <span class=\"k\">:</span> window<span class=\"k\">;</span>","                ","            el <span class=\"k\">=</span> <span class=\"k\">(</span>el <span class=\"k\">&amp;&amp;</span> <span class=\"k\">(</span>el<span class=\"k\">[</span>TAG_NAME<span class=\"k\">]</span> <span class=\"k\">||</span> el<span class=\"k\">.</span>item<span class=\"k\">))</span> <span class=\"k\">?</span> el <span class=\"k\">:</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>get<span class=\"k\">(</span>el<span class=\"k\">);</span> <span class=\"c\">// skip get() when possible</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>el <span class=\"k\">&amp;&amp;</span> method<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>el<span class=\"k\">[</span>TAG_NAME<span class=\"k\">]</span> <span class=\"k\">||</span> el<span class=\"k\">.</span>length <span class=\"k\">===</span> undefined<span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// element or not array-like </span>","                    <span class=\"k\">return</span> method<span class=\"k\">.</span>call<span class=\"k\">(</span>scope<span class=\"k\">,</span> el<span class=\"k\">,</span> o<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> el<span class=\"k\">.</span>length<span class=\"k\">;</span> <span class=\"k\">++</span>i<span class=\"k\">)</span> <span class=\"k\">{</span>","                    collection<span class=\"k\">[</span>collection<span class=\"k\">.</span>length<span class=\"k\">]</span> <span class=\"k\">=</span> method<span class=\"k\">.</span>call<span class=\"k\">(</span>scope<span class=\"k\">,</span> el<span class=\"k\">[</span>i<span class=\"k\">],</span> o<span class=\"k\">);</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\">return</span> collection<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","        ","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns the height of the document.</span>","<span class=\"c\">         * @method getDocumentHeight</span>","<span class=\"c\">         * @return {Int} The height of the actual document (which includes the body and its margin).</span>","<span class=\"c\">         */</span>","        getDocumentHeight<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> scrollHeight <span class=\"k\">=</span> <span class=\"k\">(</span>document<span class=\"k\">[</span>COMPAT_MODE<span class=\"k\">]</span> <span class=\"k\">!=</span> CSS1_COMPAT <span class=\"k\">||</span> isSafari<span class=\"k\">)</span> <span class=\"k\">?</span> document<span class=\"k\">.</span>body<span class=\"k\">.</span>scrollHeight <span class=\"k\">:</span> documentElement<span class=\"k\">.</span>scrollHeight<span class=\"k\">,</span>","                h <span class=\"k\">=</span> Math<span class=\"k\">.</span>max<span class=\"k\">(</span>scrollHeight<span class=\"k\">,</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getViewportHeight<span class=\"k\">());</span>","","            <span class=\"k\">return</span> h<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","        ","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns the width of the document.</span>","<span class=\"c\">         * @method getDocumentWidth</span>","<span class=\"c\">         * @return {Int} The width of the actual document (which includes the body and its margin).</span>","<span class=\"c\">         */</span>","        getDocumentWidth<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> scrollWidth <span class=\"k\">=</span> <span class=\"k\">(</span>document<span class=\"k\">[</span>COMPAT_MODE<span class=\"k\">]</span> <span class=\"k\">!=</span> CSS1_COMPAT <span class=\"k\">||</span> isSafari<span class=\"k\">)</span> <span class=\"k\">?</span> document<span class=\"k\">.</span>body<span class=\"k\">.</span>scrollWidth <span class=\"k\">:</span> documentElement<span class=\"k\">.</span>scrollWidth<span class=\"k\">,</span>","                w <span class=\"k\">=</span> Math<span class=\"k\">.</span>max<span class=\"k\">(</span>scrollWidth<span class=\"k\">,</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getViewportWidth<span class=\"k\">());</span>","            <span class=\"k\">return</span> w<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns the current height of the viewport.</span>","<span class=\"c\">         * @method getViewportHeight</span>","<span class=\"c\">         * @return {Int} The height of the viewable area of the page (excludes scrollbars).</span>","<span class=\"c\">         */</span>","        getViewportHeight<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> height <span class=\"k\">=</span> self<span class=\"k\">.</span>innerHeight<span class=\"k\">,</span> <span class=\"c\">// Safari, Opera</span>","                mode <span class=\"k\">=</span> document<span class=\"k\">[</span>COMPAT_MODE<span class=\"k\">];</span>","        ","            <span class=\"k\">if</span> <span class=\"k\">(</span> <span class=\"k\">(</span>mode <span class=\"k\">||</span> isIE<span class=\"k\">)</span> <span class=\"k\">&amp;&amp;</span> <span class=\"k\">!</span>isOpera <span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// IE, Gecko</span>","                height <span class=\"k\">=</span> <span class=\"k\">(</span>mode <span class=\"k\">==</span> CSS1_COMPAT<span class=\"k\">)</span> <span class=\"k\">?</span>","                        documentElement<span class=\"k\">.</span>clientHeight <span class=\"k\">:</span> <span class=\"c\">// Standards</span>","                        document<span class=\"k\">.</span>body<span class=\"k\">.</span>clientHeight<span class=\"k\">;</span> <span class=\"c\">// Quirks</span>","            <span class=\"k\">}</span>","        ","            <span class=\"k\">return</span> height<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","        ","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns the current width of the viewport.</span>","<span class=\"c\">         * @method getViewportWidth</span>","<span class=\"c\">         * @return {Int} The width of the viewable area of the page (excludes scrollbars).</span>","<span class=\"c\">         */</span>","        ","        getViewportWidth<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> width <span class=\"k\">=</span> self<span class=\"k\">.</span>innerWidth<span class=\"k\">,</span>  <span class=\"c\">// Safari</span>","                mode <span class=\"k\">=</span> document<span class=\"k\">[</span>COMPAT_MODE<span class=\"k\">];</span>","            ","            <span class=\"k\">if</span> <span class=\"k\">(</span>mode <span class=\"k\">||</span> isIE<span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// IE, Gecko, Opera</span>","                width <span class=\"k\">=</span> <span class=\"k\">(</span>mode <span class=\"k\">==</span> CSS1_COMPAT<span class=\"k\">)</span> <span class=\"k\">?</span>","                        documentElement<span class=\"k\">.</span>clientWidth <span class=\"k\">:</span> <span class=\"c\">// Standards</span>","                        document<span class=\"k\">.</span>body<span class=\"k\">.</span>clientWidth<span class=\"k\">;</span> <span class=\"c\">// Quirks</span>","            <span class=\"k\">}</span>","            <span class=\"k\">return</span> width<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","       <span class=\"c\">/**</span>","<span class=\"c\">         * Returns the nearest ancestor that passes the test applied by supplied boolean method.</span>","<span class=\"c\">         * For performance reasons, IDs are not accepted and argument validation omitted.</span>","<span class=\"c\">         * @method getAncestorBy</span>","<span class=\"c\">         * @param {HTMLElement} node The HTMLElement to use as the starting point </span>","<span class=\"c\">         * @param {Function} method - A boolean method for testing elements which receives the element as its only argument.</span>","<span class=\"c\">         * @return {Object} HTMLElement or null if not found</span>","<span class=\"c\">         */</span>","        getAncestorBy<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">,</span> method<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">while</span> <span class=\"k\">(</span> <span class=\"k\">(</span>node <span class=\"k\">=</span> node<span class=\"k\">[</span>PARENT_NODE<span class=\"k\">])</span> <span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// NOTE: assignment</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_testElement<span class=\"k\">(</span>node<span class=\"k\">,</span> method<span class=\"k\">)</span> <span class=\"k\">)</span> <span class=\"k\">{</span>","                    <span class=\"k\">return</span> node<span class=\"k\">;</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span> ","","            <span class=\"k\">return</span> <span class=\"k\">null</span><span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","        ","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns the nearest ancestor with the given className.</span>","<span class=\"c\">         * @method getAncestorByClassName</span>","<span class=\"c\">         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point </span>","<span class=\"c\">         * @param {String} className</span>","<span class=\"c\">         * @return {Object} HTMLElement</span>","<span class=\"c\">         */</span>","        getAncestorByClassName<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">,</span> className<span class=\"k\">)</span> <span class=\"k\">{</span>","            node <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>get<span class=\"k\">(</span>node<span class=\"k\">);</span>","            <span class=\"k\">if</span> <span class=\"k\">(!</span>node<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> <span class=\"k\">null</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","            <span class=\"k\">var</span> method <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>hasClass<span class=\"k\">(</span>el<span class=\"k\">,</span> className<span class=\"k\">);</span> <span class=\"k\">}</span><span class=\"k\">;</span>","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getAncestorBy<span class=\"k\">(</span>node<span class=\"k\">,</span> method<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns the nearest ancestor with the given tagName.</span>","<span class=\"c\">         * @method getAncestorByTagName</span>","<span class=\"c\">         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point </span>","<span class=\"c\">         * @param {String} tagName</span>","<span class=\"c\">         * @return {Object} HTMLElement</span>","<span class=\"c\">         */</span>","        getAncestorByTagName<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">,</span> tagName<span class=\"k\">)</span> <span class=\"k\">{</span>","            node <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>get<span class=\"k\">(</span>node<span class=\"k\">);</span>","            <span class=\"k\">if</span> <span class=\"k\">(!</span>node<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> <span class=\"k\">null</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","            <span class=\"k\">var</span> method <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">)</span> <span class=\"k\">{</span>","                 <span class=\"k\">return</span> el<span class=\"k\">[</span>TAG_NAME<span class=\"k\">]</span> <span class=\"k\">&amp;&amp;</span> el<span class=\"k\">[</span>TAG_NAME<span class=\"k\">].</span>toUpperCase<span class=\"k\">()</span> <span class=\"k\">==</span> tagName<span class=\"k\">.</span>toUpperCase<span class=\"k\">();</span>","            <span class=\"k\">}</span><span class=\"k\">;</span>","","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getAncestorBy<span class=\"k\">(</span>node<span class=\"k\">,</span> method<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns the previous sibling that is an HTMLElement. </span>","<span class=\"c\">         * For performance reasons, IDs are not accepted and argument validation omitted.</span>","<span class=\"c\">         * Returns the nearest HTMLElement sibling if no method provided.</span>","<span class=\"c\">         * @method getPreviousSiblingBy</span>","<span class=\"c\">         * @param {HTMLElement} node The HTMLElement to use as the starting point </span>","<span class=\"c\">         * @param {Function} method A boolean function used to test siblings</span>","<span class=\"c\">         * that receives the sibling node being tested as its only argument</span>","<span class=\"c\">         * @return {Object} HTMLElement or null if not found</span>","<span class=\"c\">         */</span>","        getPreviousSiblingBy<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">,</span> method<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">while</span> <span class=\"k\">(</span>node<span class=\"k\">)</span> <span class=\"k\">{</span>","                node <span class=\"k\">=</span> node<span class=\"k\">.</span>previousSibling<span class=\"k\">;</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_testElement<span class=\"k\">(</span>node<span class=\"k\">,</span> method<span class=\"k\">)</span> <span class=\"k\">)</span> <span class=\"k\">{</span>","                    <span class=\"k\">return</span> node<span class=\"k\">;</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","            <span class=\"k\">return</span> <span class=\"k\">null</span><span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span> ","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns the previous sibling that is an HTMLElement </span>","<span class=\"c\">         * @method getPreviousSibling</span>","<span class=\"c\">         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point </span>","<span class=\"c\">         * @return {Object} HTMLElement or null if not found</span>","<span class=\"c\">         */</span>","        getPreviousSibling<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">)</span> <span class=\"k\">{</span>","            node <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>get<span class=\"k\">(</span>node<span class=\"k\">);</span>","            <span class=\"k\">if</span> <span class=\"k\">(!</span>node<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> <span class=\"k\">null</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getPreviousSiblingBy<span class=\"k\">(</span>node<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span> ","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns the next HTMLElement sibling that passes the boolean method. </span>","<span class=\"c\">         * For performance reasons, IDs are not accepted and argument validation omitted.</span>","<span class=\"c\">         * Returns the nearest HTMLElement sibling if no method provided.</span>","<span class=\"c\">         * @method getNextSiblingBy</span>","<span class=\"c\">         * @param {HTMLElement} node The HTMLElement to use as the starting point </span>","<span class=\"c\">         * @param {Function} method A boolean function used to test siblings</span>","<span class=\"c\">         * that receives the sibling node being tested as its only argument</span>","<span class=\"c\">         * @return {Object} HTMLElement or null if not found</span>","<span class=\"c\">         */</span>","        getNextSiblingBy<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">,</span> method<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">while</span> <span class=\"k\">(</span>node<span class=\"k\">)</span> <span class=\"k\">{</span>","                node <span class=\"k\">=</span> node<span class=\"k\">.</span>nextSibling<span class=\"k\">;</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_testElement<span class=\"k\">(</span>node<span class=\"k\">,</span> method<span class=\"k\">)</span> <span class=\"k\">)</span> <span class=\"k\">{</span>","                    <span class=\"k\">return</span> node<span class=\"k\">;</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","            <span class=\"k\">return</span> <span class=\"k\">null</span><span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span> ","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns the next sibling that is an HTMLElement </span>","<span class=\"c\">         * @method getNextSibling</span>","<span class=\"c\">         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point </span>","<span class=\"c\">         * @return {Object} HTMLElement or null if not found</span>","<span class=\"c\">         */</span>","        getNextSibling<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">)</span> <span class=\"k\">{</span>","            node <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>get<span class=\"k\">(</span>node<span class=\"k\">);</span>","            <span class=\"k\">if</span> <span class=\"k\">(!</span>node<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> <span class=\"k\">null</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getNextSiblingBy<span class=\"k\">(</span>node<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span> ","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns the first HTMLElement child that passes the test method. </span>","<span class=\"c\">         * @method getFirstChildBy</span>","<span class=\"c\">         * @param {HTMLElement} node The HTMLElement to use as the starting point </span>","<span class=\"c\">         * @param {Function} method A boolean function used to test children</span>","<span class=\"c\">         * that receives the node being tested as its only argument</span>","<span class=\"c\">         * @return {Object} HTMLElement or null if not found</span>","<span class=\"c\">         */</span>","        getFirstChildBy<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">,</span> method<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> child <span class=\"k\">=</span> <span class=\"k\">(</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_testElement<span class=\"k\">(</span>node<span class=\"k\">.</span>firstChild<span class=\"k\">,</span> method<span class=\"k\">)</span> <span class=\"k\">)</span> <span class=\"k\">?</span> node<span class=\"k\">.</span>firstChild <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">;</span>","            <span class=\"k\">return</span> child <span class=\"k\">||</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getNextSiblingBy<span class=\"k\">(</span>node<span class=\"k\">.</span>firstChild<span class=\"k\">,</span> method<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span> ","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns the first HTMLElement child. </span>","<span class=\"c\">         * @method getFirstChild</span>","<span class=\"c\">         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point </span>","<span class=\"c\">         * @return {Object} HTMLElement or null if not found</span>","<span class=\"c\">         */</span>","        getFirstChild<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">,</span> method<span class=\"k\">)</span> <span class=\"k\">{</span>","            node <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>get<span class=\"k\">(</span>node<span class=\"k\">);</span>","            <span class=\"k\">if</span> <span class=\"k\">(!</span>node<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> <span class=\"k\">null</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getFirstChildBy<span class=\"k\">(</span>node<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span> ","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns the last HTMLElement child that passes the test method. </span>","<span class=\"c\">         * @method getLastChildBy</span>","<span class=\"c\">         * @param {HTMLElement} node The HTMLElement to use as the starting point </span>","<span class=\"c\">         * @param {Function} method A boolean function used to test children</span>","<span class=\"c\">         * that receives the node being tested as its only argument</span>","<span class=\"c\">         * @return {Object} HTMLElement or null if not found</span>","<span class=\"c\">         */</span>","        getLastChildBy<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">,</span> method<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">if</span> <span class=\"k\">(!</span>node<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> <span class=\"k\">null</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","            <span class=\"k\">var</span> child <span class=\"k\">=</span> <span class=\"k\">(</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_testElement<span class=\"k\">(</span>node<span class=\"k\">.</span>lastChild<span class=\"k\">,</span> method<span class=\"k\">)</span> <span class=\"k\">)</span> <span class=\"k\">?</span> node<span class=\"k\">.</span>lastChild <span class=\"k\">:</span> <span class=\"k\">null</span><span class=\"k\">;</span>","            <span class=\"k\">return</span> child <span class=\"k\">||</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getPreviousSiblingBy<span class=\"k\">(</span>node<span class=\"k\">.</span>lastChild<span class=\"k\">,</span> method<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span> ","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns the last HTMLElement child. </span>","<span class=\"c\">         * @method getLastChild</span>","<span class=\"c\">         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point </span>","<span class=\"c\">         * @return {Object} HTMLElement or null if not found</span>","<span class=\"c\">         */</span>","        getLastChild<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">)</span> <span class=\"k\">{</span>","            node <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>get<span class=\"k\">(</span>node<span class=\"k\">);</span>","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getLastChildBy<span class=\"k\">(</span>node<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span> ","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns an array of HTMLElement childNodes that pass the test method. </span>","<span class=\"c\">         * @method getChildrenBy</span>","<span class=\"c\">         * @param {HTMLElement} node The HTMLElement to start from</span>","<span class=\"c\">         * @param {Function} method A boolean function used to test children</span>","<span class=\"c\">         * that receives the node being tested as its only argument</span>","<span class=\"c\">         * @return {Array} A static array of HTMLElements</span>","<span class=\"c\">         */</span>","        getChildrenBy<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">,</span> method<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> child <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getFirstChildBy<span class=\"k\">(</span>node<span class=\"k\">,</span> method<span class=\"k\">),</span>","                children <span class=\"k\">=</span> child <span class=\"k\">?</span> <span class=\"k\">[</span>child<span class=\"k\">]</span> <span class=\"k\">:</span> <span class=\"k\">[];</span>","","            Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getNextSiblingBy<span class=\"k\">(</span>child<span class=\"k\">,</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span> <span class=\"k\">!</span>method <span class=\"k\">||</span> method<span class=\"k\">(</span>node<span class=\"k\">)</span> <span class=\"k\">)</span> <span class=\"k\">{</span>","                    children<span class=\"k\">[</span>children<span class=\"k\">.</span>length<span class=\"k\">]</span> <span class=\"k\">=</span> node<span class=\"k\">;</span>","                <span class=\"k\">}</span>","                <span class=\"k\">return</span> <span class=\"k\">false</span><span class=\"k\">;</span> <span class=\"c\">// fail test to collect all children</span>","            <span class=\"k\">}</span><span class=\"k\">);</span>","","            <span class=\"k\">return</span> children<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>"," ","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns an array of HTMLElement childNodes. </span>","<span class=\"c\">         * @method getChildren</span>","<span class=\"c\">         * @param {String | HTMLElement} node The HTMLElement or an ID to use as the starting point </span>","<span class=\"c\">         * @return {Array} A static array of HTMLElements</span>","<span class=\"c\">         */</span>","        getChildren<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">)</span> <span class=\"k\">{</span>","            node <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>get<span class=\"k\">(</span>node<span class=\"k\">);</span>","            <span class=\"k\">if</span> <span class=\"k\">(!</span>node<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getChildrenBy<span class=\"k\">(</span>node<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns the left scroll value of the document </span>","<span class=\"c\">         * @method getDocumentScrollLeft</span>","<span class=\"c\">         * @param {HTMLDocument} document (optional) The document to get the scroll value of</span>","<span class=\"c\">         * @return {Int}  The amount that the document is scrolled to the left</span>","<span class=\"c\">         */</span>","        getDocumentScrollLeft<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>doc<span class=\"k\">)</span> <span class=\"k\">{</span>","            doc <span class=\"k\">=</span> doc <span class=\"k\">||</span> document<span class=\"k\">;</span>","            <span class=\"k\">return</span> Math<span class=\"k\">.</span>max<span class=\"k\">(</span>doc<span class=\"k\">[</span>DOCUMENT_ELEMENT<span class=\"k\">].</span>scrollLeft<span class=\"k\">,</span> doc<span class=\"k\">.</span>body<span class=\"k\">.</span>scrollLeft<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span> ","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Returns the top scroll value of the document </span>","<span class=\"c\">         * @method getDocumentScrollTop</span>","<span class=\"c\">         * @param {HTMLDocument} document (optional) The document to get the scroll value of</span>","<span class=\"c\">         * @return {Int}  The amount that the document is scrolled to the top</span>","<span class=\"c\">         */</span>","        getDocumentScrollTop<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>doc<span class=\"k\">)</span> <span class=\"k\">{</span>","            doc <span class=\"k\">=</span> doc <span class=\"k\">||</span> document<span class=\"k\">;</span>","            <span class=\"k\">return</span> Math<span class=\"k\">.</span>max<span class=\"k\">(</span>doc<span class=\"k\">[</span>DOCUMENT_ELEMENT<span class=\"k\">].</span>scrollTop<span class=\"k\">,</span> doc<span class=\"k\">.</span>body<span class=\"k\">.</span>scrollTop<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Inserts the new node as the previous sibling of the reference node </span>","<span class=\"c\">         * @method insertBefore</span>","<span class=\"c\">         * @param {String | HTMLElement} newNode The node to be inserted</span>","<span class=\"c\">         * @param {String | HTMLElement} referenceNode The node to insert the new node before </span>","<span class=\"c\">         * @return {HTMLElement} The node that was inserted (or null if insert fails) </span>","<span class=\"c\">         */</span>","        insertBefore<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>newNode<span class=\"k\">,</span> referenceNode<span class=\"k\">)</span> <span class=\"k\">{</span>","            newNode <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>get<span class=\"k\">(</span>newNode<span class=\"k\">);</span> ","            referenceNode <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>get<span class=\"k\">(</span>referenceNode<span class=\"k\">);</span> ","            ","            <span class=\"k\">if</span> <span class=\"k\">(!</span>newNode <span class=\"k\">||</span> <span class=\"k\">!</span>referenceNode <span class=\"k\">||</span> <span class=\"k\">!</span>referenceNode<span class=\"k\">[</span>PARENT_NODE<span class=\"k\">])</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> <span class=\"k\">null</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>       ","","            <span class=\"k\">return</span> referenceNode<span class=\"k\">[</span>PARENT_NODE<span class=\"k\">].</span>insertBefore<span class=\"k\">(</span>newNode<span class=\"k\">,</span> referenceNode<span class=\"k\">);</span> ","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Inserts the new node as the next sibling of the reference node </span>","<span class=\"c\">         * @method insertAfter</span>","<span class=\"c\">         * @param {String | HTMLElement} newNode The node to be inserted</span>","<span class=\"c\">         * @param {String | HTMLElement} referenceNode The node to insert the new node after </span>","<span class=\"c\">         * @return {HTMLElement} The node that was inserted (or null if insert fails) </span>","<span class=\"c\">         */</span>","        insertAfter<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>newNode<span class=\"k\">,</span> referenceNode<span class=\"k\">)</span> <span class=\"k\">{</span>","            newNode <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>get<span class=\"k\">(</span>newNode<span class=\"k\">);</span> ","            referenceNode <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>get<span class=\"k\">(</span>referenceNode<span class=\"k\">);</span> ","            ","            <span class=\"k\">if</span> <span class=\"k\">(!</span>newNode <span class=\"k\">||</span> <span class=\"k\">!</span>referenceNode <span class=\"k\">||</span> <span class=\"k\">!</span>referenceNode<span class=\"k\">[</span>PARENT_NODE<span class=\"k\">])</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> <span class=\"k\">null</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>       ","","            <span class=\"k\">if</span> <span class=\"k\">(</span>referenceNode<span class=\"k\">.</span>nextSibling<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> referenceNode<span class=\"k\">[</span>PARENT_NODE<span class=\"k\">].</span>insertBefore<span class=\"k\">(</span>newNode<span class=\"k\">,</span> referenceNode<span class=\"k\">.</span>nextSibling<span class=\"k\">);</span> ","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> referenceNode<span class=\"k\">[</span>PARENT_NODE<span class=\"k\">].</span>appendChild<span class=\"k\">(</span>newNode<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 Region based on the viewport relative to the document. </span>","<span class=\"c\">         * @method getClientRegion</span>","<span class=\"c\">         * @return {Region} A Region object representing the viewport which accounts for document scroll</span>","<span class=\"c\">         */</span>","        getClientRegion<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> t <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getDocumentScrollTop<span class=\"k\">(),</span>","                l <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getDocumentScrollLeft<span class=\"k\">(),</span>","                r <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getViewportWidth<span class=\"k\">()</span> <span class=\"k\">+</span> l<span class=\"k\">,</span>","                b <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getViewportHeight<span class=\"k\">()</span> <span class=\"k\">+</span> t<span class=\"k\">;</span>","","            <span class=\"k\">return</span> <span class=\"k\">new</span> Y<span class=\"k\">.</span>Region<span class=\"k\">(</span>t<span class=\"k\">,</span> r<span class=\"k\">,</span> b<span class=\"k\">,</span> l<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Provides a normalized attribute interface. </span>","<span class=\"c\">         * @method setAttribute</span>","<span class=\"c\">         * @param {String | HTMLElement} el The target element for the attribute.</span>","<span class=\"c\">         * @param {String} attr The attribute to set.</span>","<span class=\"c\">         * @param {String} val The value of the attribute.</span>","<span class=\"c\">         */</span>","        setAttribute<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> attr<span class=\"k\">,</span> val<span class=\"k\">)</span> <span class=\"k\">{</span>","            Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>batch<span class=\"k\">(</span>el<span class=\"k\">,</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_setAttribute<span class=\"k\">,</span> <span class=\"k\">{</span> attr<span class=\"k\">:</span> attr<span class=\"k\">,</span> val<span class=\"k\">:</span> val <span class=\"k\">}</span><span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        _setAttribute<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> args<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> attr <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_toCamel<span class=\"k\">(</span>args<span class=\"k\">.</span>attr<span class=\"k\">),</span>","                val <span class=\"k\">=</span> args<span class=\"k\">.</span>val<span class=\"k\">;</span>","","            <span class=\"k\">if</span> <span class=\"k\">(</span>el <span class=\"k\">&amp;&amp;</span> el<span class=\"k\">.</span>setAttribute<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>DOT_ATTRIBUTES<span class=\"k\">[</span>attr<span class=\"k\">])</span> <span class=\"k\">{</span>","                    el<span class=\"k\">[</span>attr<span class=\"k\">]</span> <span class=\"k\">=</span> val<span class=\"k\">;</span>","                <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                    attr <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>CUSTOM_ATTRIBUTES<span class=\"k\">[</span>attr<span class=\"k\">]</span> <span class=\"k\">||</span> attr<span class=\"k\">;</span>","                    el<span class=\"k\">.</span>setAttribute<span class=\"k\">(</span>attr<span class=\"k\">,</span> val<span class=\"k\">);</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * Provides a normalized attribute interface. </span>","<span class=\"c\">         * @method getAttribute</span>","<span class=\"c\">         * @param {String | HTMLElement} el The target element for the attribute.</span>","<span class=\"c\">         * @param {String} attr The attribute to get.</span>","<span class=\"c\">         * @return {String} The current value of the attribute. </span>","<span class=\"c\">         */</span>","        getAttribute<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> attr<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>batch<span class=\"k\">(</span>el<span class=\"k\">,</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_getAttribute<span class=\"k\">,</span> attr<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","","        _getAttribute<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> attr<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> val<span class=\"k\">;</span>","            attr <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>CUSTOM_ATTRIBUTES<span class=\"k\">[</span>attr<span class=\"k\">]</span> <span class=\"k\">||</span> attr<span class=\"k\">;</span>","","            <span class=\"k\">if</span> <span class=\"k\">(</span>el <span class=\"k\">&amp;&amp;</span> el<span class=\"k\">.</span>getAttribute<span class=\"k\">)</span> <span class=\"k\">{</span>","                val <span class=\"k\">=</span> el<span class=\"k\">.</span>getAttribute<span class=\"k\">(</span>attr<span class=\"k\">,</span> <span class=\"s\">2</span><span class=\"k\">);</span>","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">return</span> val<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        _toCamel<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>property<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> c <span class=\"k\">=</span> propertyCache<span class=\"k\">;</span>","","            <span class=\"k\">function</span> tU<span class=\"k\">(</span>x<span class=\"k\">,</span>l<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> l<span class=\"k\">.</span>toUpperCase<span class=\"k\">();</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">return</span> c<span class=\"k\">[</span>property<span class=\"k\">]</span> <span class=\"k\">||</span> <span class=\"k\">(</span>c<span class=\"k\">[</span>property<span class=\"k\">]</span> <span class=\"k\">=</span> property<span class=\"k\">.</span>indexOf<span class=\"k\">(</span><span class=\"s\">'-'</span><span class=\"k\">)</span> <span class=\"k\">===</span> <span class=\"k\">-</span><span class=\"s\">1</span> <span class=\"k\">?</span> ","                                    property <span class=\"k\">:</span>","                                    property<span class=\"k\">.</span>replace<span class=\"k\">(</span> <span class=\"s\">/-([a-z])/gi</span><span class=\"k\">,</span> tU <span class=\"k\">));</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        _getClassRegex<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>className<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> re<span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>className <span class=\"k\">!==</span> undefined<span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// allow empty string to pass</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>className<span class=\"k\">.</span>exec<span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// already a RegExp</span>","                    re <span class=\"k\">=</span> className<span class=\"k\">;</span>","                <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                    re <span class=\"k\">=</span> reCache<span class=\"k\">[</span>className<span class=\"k\">];</span>","                    <span class=\"k\">if</span> <span class=\"k\">(!</span>re<span class=\"k\">)</span> <span class=\"k\">{</span>","                        <span class=\"c\">// escape special chars (\".\", \"[\", etc.)</span>","                        className <span class=\"k\">=</span> className<span class=\"k\">.</span>replace<span class=\"k\">(</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>_patterns<span class=\"k\">.</span>CLASS_RE_TOKENS<span class=\"k\">,</span> <span class=\"s\">'</span><span class=\"t\">\\\\</span><span class=\"s\">$1'</span><span class=\"k\">);</span>","                        re <span class=\"k\">=</span> reCache<span class=\"k\">[</span>className<span class=\"k\">]</span> <span class=\"k\">=</span> <span class=\"k\">new</span> RegExp<span class=\"k\">(</span>C_START <span class=\"k\">+</span> className <span class=\"k\">+</span> C_END<span class=\"k\">,</span> G<span class=\"k\">);</span>","                    <span class=\"k\">}</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","            <span class=\"k\">return</span> re<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        _patterns<span class=\"k\">:</span> <span class=\"k\">{</span>","            ROOT_TAG<span class=\"k\">:</span> <span class=\"s\">/^body|html$/i</span><span class=\"k\">,</span> <span class=\"c\">// body for quirks mode, html for standards,</span>","            CLASS_RE_TOKENS<span class=\"k\">:</span> <span class=\"s\">/([\\.\\(\\)\\^\\$\\*\\+\\?\\|\\[\\]\\{\\}\\\\])/g</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","","        _testElement<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">,</span> method<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> node <span class=\"k\">&amp;&amp;</span> node<span class=\"k\">[</span>NODE_TYPE<span class=\"k\">]</span> <span class=\"k\">==</span> <span class=\"s\">1</span> <span class=\"k\">&amp;&amp;</span> <span class=\"k\">(</span> <span class=\"k\">!</span>method <span class=\"k\">||</span> method<span class=\"k\">(</span>node<span class=\"k\">)</span> <span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        _calcBorders<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">,</span> xy2<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> t <span class=\"k\">=</span> parseInt<span class=\"k\">(</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">[</span>GET_COMPUTED_STYLE<span class=\"k\">](</span>node<span class=\"k\">,</span> BORDER_TOP_WIDTH<span class=\"k\">),</span> <span class=\"s\">10</span><span class=\"k\">)</span> <span class=\"k\">||</span> <span class=\"s\">0</span><span class=\"k\">,</span>","                l <span class=\"k\">=</span> parseInt<span class=\"k\">(</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">[</span>GET_COMPUTED_STYLE<span class=\"k\">](</span>node<span class=\"k\">,</span> BORDER_LEFT_WIDTH<span class=\"k\">),</span> <span class=\"s\">10</span><span class=\"k\">)</span> <span class=\"k\">||</span> <span class=\"s\">0</span><span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>isGecko<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>RE_TABLE<span class=\"k\">.</span>test<span class=\"k\">(</span>node<span class=\"k\">[</span>TAG_NAME<span class=\"k\">]))</span> <span class=\"k\">{</span>","                    t <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">;</span>","                    l <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">;</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","            xy2<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">+=</span> l<span class=\"k\">;</span>","            xy2<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]</span> <span class=\"k\">+=</span> t<span class=\"k\">;</span>","            <span class=\"k\">return</span> xy2<span class=\"k\">;</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">;</span>","        ","    <span class=\"k\">var</span> _getComputedStyle <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">[</span>GET_COMPUTED_STYLE<span class=\"k\">];</span>","    <span class=\"c\">// fix opera computedStyle default color unit (convert to rgb)</span>","    <span class=\"k\">if</span> <span class=\"k\">(</span>UA<span class=\"k\">.</span>opera<span class=\"k\">)</span> <span class=\"k\">{</span>","        Y<span class=\"k\">.</span>Dom<span class=\"k\">[</span>GET_COMPUTED_STYLE<span class=\"k\">]</span> <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">,</span> att<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> val <span class=\"k\">=</span> _getComputedStyle<span class=\"k\">(</span>node<span class=\"k\">,</span> att<span class=\"k\">);</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>RE_COLOR<span class=\"k\">.</span>test<span class=\"k\">(</span>att<span class=\"k\">))</span> <span class=\"k\">{</span>","                val <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>Color<span class=\"k\">.</span>toRGB<span class=\"k\">(</span>val<span class=\"k\">);</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">return</span> val<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">;</span>","","    <span class=\"k\">}</span>","","    <span class=\"c\">// safari converts transparent to rgba(), others use \"transparent\"</span>","    <span class=\"k\">if</span> <span class=\"k\">(</span>UA<span class=\"k\">.</span>webkit<span class=\"k\">)</span> <span class=\"k\">{</span>","        Y<span class=\"k\">.</span>Dom<span class=\"k\">[</span>GET_COMPUTED_STYLE<span class=\"k\">]</span> <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">,</span> att<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> val <span class=\"k\">=</span> _getComputedStyle<span class=\"k\">(</span>node<span class=\"k\">,</span> att<span class=\"k\">);</span>","","            <span class=\"k\">if</span> <span class=\"k\">(</span>val <span class=\"k\">===</span> <span class=\"s\">'rgba(0, 0, 0, 0)'</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                val <span class=\"k\">=</span> <span class=\"s\">'transparent'</span><span class=\"k\">;</span> ","            <span class=\"k\">}</span>","","            <span class=\"k\">return</span> val<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>UA<span class=\"k\">.</span>ie <span class=\"k\">&amp;&amp;</span> UA<span class=\"k\">.</span>ie <span class=\"k\">&gt;=</span> <span class=\"s\">8</span> <span class=\"k\">&amp;&amp;</span> document<span class=\"k\">.</span>documentElement<span class=\"k\">.</span>hasAttribute<span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// IE 8 standards</span>","        Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>DOT_ATTRIBUTES<span class=\"k\">.</span>type <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span> <span class=\"c\">// IE 8 errors on input.setAttribute('type')</span>","    <span class=\"k\">}</span>","<span class=\"k\">}</span><span class=\"k\">)();</span>","<span class=\"c\">/**</span>","<span class=\"c\"> * A region is a representation of an object on a grid.  It is defined</span>","<span class=\"c\"> * by the top, right, bottom, left extents, so is rectangular by default.  If </span>","<span class=\"c\"> * other shapes are required, this class could be extended to support it.</span>","<span class=\"c\"> * @namespace YAHOO.util</span>","<span class=\"c\"> * @class Region</span>","<span class=\"c\"> * @param {Int} t the top extent</span>","<span class=\"c\"> * @param {Int} r the right extent</span>","<span class=\"c\"> * @param {Int} b the bottom extent</span>","<span class=\"c\"> * @param {Int} l the left extent</span>","<span class=\"c\"> * @constructor</span>","<span class=\"c\"> */</span>","YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>Region <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>t<span class=\"k\">,</span> r<span class=\"k\">,</span> b<span class=\"k\">,</span> l<span class=\"k\">)</span> <span class=\"k\">{</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * The region's top extent</span>","<span class=\"c\">     * @property top</span>","<span class=\"c\">     * @type Int</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>top <span class=\"k\">=</span> t<span class=\"k\">;</span>","    ","    <span class=\"c\">/**</span>","<span class=\"c\">     * The region's top extent</span>","<span class=\"c\">     * @property y</span>","<span class=\"c\">     * @type Int</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>y <span class=\"k\">=</span> t<span class=\"k\">;</span>","    ","    <span class=\"c\">/**</span>","<span class=\"c\">     * The region's top extent as index, for symmetry with set/getXY</span>","<span class=\"c\">     * @property 1</span>","<span class=\"c\">     * @type Int</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]</span> <span class=\"k\">=</span> t<span class=\"k\">;</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * The region's right extent</span>","<span class=\"c\">     * @property right</span>","<span class=\"c\">     * @type int</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>right <span class=\"k\">=</span> r<span class=\"k\">;</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * The region's bottom extent</span>","<span class=\"c\">     * @property bottom</span>","<span class=\"c\">     * @type Int</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>bottom <span class=\"k\">=</span> b<span class=\"k\">;</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * The region's left extent</span>","<span class=\"c\">     * @property left</span>","<span class=\"c\">     * @type Int</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>left <span class=\"k\">=</span> l<span class=\"k\">;</span>","    ","    <span class=\"c\">/**</span>","<span class=\"c\">     * The region's left extent</span>","<span class=\"c\">     * @property x</span>","<span class=\"c\">     * @type Int</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>x <span class=\"k\">=</span> l<span class=\"k\">;</span>","    ","    <span class=\"c\">/**</span>","<span class=\"c\">     * The region's left extent as index, for symmetry with set/getXY</span>","<span class=\"c\">     * @property 0</span>","<span class=\"c\">     * @type Int</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">=</span> l<span class=\"k\">;</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * The region's total width </span>","<span class=\"c\">     * @property width </span>","<span class=\"c\">     * @type Int</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>width <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>right <span class=\"k\">-</span> <span class=\"k\">this</span><span class=\"k\">.</span>left<span class=\"k\">;</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * The region's total height </span>","<span class=\"c\">     * @property height </span>","<span class=\"c\">     * @type Int</span>","<span class=\"c\">     */</span>","    <span class=\"k\">this</span><span class=\"k\">.</span>height <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>bottom <span class=\"k\">-</span> <span class=\"k\">this</span><span class=\"k\">.</span>top<span class=\"k\">;</span>","<span class=\"k\">}</span><span class=\"k\">;</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Returns true if this region contains the region passed in</span>","<span class=\"c\"> * @method contains</span>","<span class=\"c\"> * @param  {Region}  region The region to evaluate</span>","<span class=\"c\"> * @return {Boolean}        True if the region is contained with this region, </span>","<span class=\"c\"> *                          else false</span>","<span class=\"c\"> */</span>","YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>Region<span class=\"k\">.</span>prototype<span class=\"k\">.</span>contains <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>region<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">return</span> <span class=\"k\">(</span> region<span class=\"k\">.</span>left   <span class=\"k\">&gt;=</span> <span class=\"k\">this</span><span class=\"k\">.</span>left   <span class=\"k\">&amp;&amp;</span> ","             region<span class=\"k\">.</span>right  <span class=\"k\">&lt;=</span> <span class=\"k\">this</span><span class=\"k\">.</span>right  <span class=\"k\">&amp;&amp;</span> ","             region<span class=\"k\">.</span>top    <span class=\"k\">&gt;=</span> <span class=\"k\">this</span><span class=\"k\">.</span>top    <span class=\"k\">&amp;&amp;</span> ","             region<span class=\"k\">.</span>bottom <span class=\"k\">&lt;=</span> <span class=\"k\">this</span><span class=\"k\">.</span>bottom    <span class=\"k\">);</span>","","<span class=\"k\">}</span><span class=\"k\">;</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Returns the area of the region</span>","<span class=\"c\"> * @method getArea</span>","<span class=\"c\"> * @return {Int} the region's area</span>","<span class=\"c\"> */</span>","YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>Region<span class=\"k\">.</span>prototype<span class=\"k\">.</span>getArea <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\">(</span> <span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>bottom <span class=\"k\">-</span> <span class=\"k\">this</span><span class=\"k\">.</span>top<span class=\"k\">)</span> <span class=\"k\">*</span> <span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>right <span class=\"k\">-</span> <span class=\"k\">this</span><span class=\"k\">.</span>left<span class=\"k\">)</span> <span class=\"k\">);</span>","<span class=\"k\">}</span><span class=\"k\">;</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * Returns the region where the passed in region overlaps with this one</span>","<span class=\"c\"> * @method intersect</span>","<span class=\"c\"> * @param  {Region} region The region that intersects</span>","<span class=\"c\"> * @return {Region}        The overlap region, or null if there is no overlap</span>","<span class=\"c\"> */</span>","YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>Region<span class=\"k\">.</span>prototype<span class=\"k\">.</span>intersect <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>region<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">var</span> t <span class=\"k\">=</span> Math<span class=\"k\">.</span>max<span class=\"k\">(</span> <span class=\"k\">this</span><span class=\"k\">.</span>top<span class=\"k\">,</span>    region<span class=\"k\">.</span>top    <span class=\"k\">),</span>","        r <span class=\"k\">=</span> Math<span class=\"k\">.</span>min<span class=\"k\">(</span> <span class=\"k\">this</span><span class=\"k\">.</span>right<span class=\"k\">,</span>  region<span class=\"k\">.</span>right  <span class=\"k\">),</span>","        b <span class=\"k\">=</span> Math<span class=\"k\">.</span>min<span class=\"k\">(</span> <span class=\"k\">this</span><span class=\"k\">.</span>bottom<span class=\"k\">,</span> region<span class=\"k\">.</span>bottom <span class=\"k\">),</span>","        l <span class=\"k\">=</span> Math<span class=\"k\">.</span>max<span class=\"k\">(</span> <span class=\"k\">this</span><span class=\"k\">.</span>left<span class=\"k\">,</span>   region<span class=\"k\">.</span>left   <span class=\"k\">);</span>","    ","    <span class=\"k\">if</span> <span class=\"k\">(</span>b <span class=\"k\">&gt;=</span> t <span class=\"k\">&amp;&amp;</span> r <span class=\"k\">&gt;=</span> l<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">return</span> <span class=\"k\">new</span> YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>Region<span class=\"k\">(</span>t<span class=\"k\">,</span> r<span class=\"k\">,</span> b<span class=\"k\">,</span> l<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\">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\"> * Returns the region representing the smallest region that can contain both</span>","<span class=\"c\"> * the passed in region and this region.</span>","<span class=\"c\"> * @method union</span>","<span class=\"c\"> * @param  {Region} region The region that to create the union with</span>","<span class=\"c\"> * @return {Region}        The union region</span>","<span class=\"c\"> */</span>","YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>Region<span class=\"k\">.</span>prototype<span class=\"k\">.</span>union <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>region<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">var</span> t <span class=\"k\">=</span> Math<span class=\"k\">.</span>min<span class=\"k\">(</span> <span class=\"k\">this</span><span class=\"k\">.</span>top<span class=\"k\">,</span>    region<span class=\"k\">.</span>top    <span class=\"k\">),</span>","        r <span class=\"k\">=</span> Math<span class=\"k\">.</span>max<span class=\"k\">(</span> <span class=\"k\">this</span><span class=\"k\">.</span>right<span class=\"k\">,</span>  region<span class=\"k\">.</span>right  <span class=\"k\">),</span>","        b <span class=\"k\">=</span> Math<span class=\"k\">.</span>max<span class=\"k\">(</span> <span class=\"k\">this</span><span class=\"k\">.</span>bottom<span class=\"k\">,</span> region<span class=\"k\">.</span>bottom <span class=\"k\">),</span>","        l <span class=\"k\">=</span> Math<span class=\"k\">.</span>min<span class=\"k\">(</span> <span class=\"k\">this</span><span class=\"k\">.</span>left<span class=\"k\">,</span>   region<span class=\"k\">.</span>left   <span class=\"k\">);</span>","","    <span class=\"k\">return</span> <span class=\"k\">new</span> YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>Region<span class=\"k\">(</span>t<span class=\"k\">,</span> r<span class=\"k\">,</span> b<span class=\"k\">,</span> l<span class=\"k\">);</span>","<span class=\"k\">}</span><span class=\"k\">;</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * toString</span>","<span class=\"c\"> * @method toString</span>","<span class=\"c\"> * @return string the region properties</span>","<span class=\"c\"> */</span>","YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>Region<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=\"k\">(</span> <span class=\"s\">\"Region {\"</span>    <span class=\"k\">+</span>","             <span class=\"s\">\"top: \"</span>       <span class=\"k\">+</span> <span class=\"k\">this</span><span class=\"k\">.</span>top    <span class=\"k\">+</span> ","             <span class=\"s\">\", right: \"</span>   <span class=\"k\">+</span> <span class=\"k\">this</span><span class=\"k\">.</span>right  <span class=\"k\">+</span> ","             <span class=\"s\">\", bottom: \"</span>  <span class=\"k\">+</span> <span class=\"k\">this</span><span class=\"k\">.</span>bottom <span class=\"k\">+</span> ","             <span class=\"s\">\", left: \"</span>    <span class=\"k\">+</span> <span class=\"k\">this</span><span class=\"k\">.</span>left   <span class=\"k\">+</span> ","             <span class=\"s\">\", height: \"</span>  <span class=\"k\">+</span> <span class=\"k\">this</span><span class=\"k\">.</span>height <span class=\"k\">+</span> ","             <span class=\"s\">\", width: \"</span>    <span class=\"k\">+</span> <span class=\"k\">this</span><span class=\"k\">.</span>width   <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\"> * Returns a region that is occupied by the DOM element</span>","<span class=\"c\"> * @method getRegion</span>","<span class=\"c\"> * @param  {HTMLElement} el The element</span>","<span class=\"c\"> * @return {Region}         The region that the element occupies</span>","<span class=\"c\"> * @static</span>","<span class=\"c\"> */</span>","YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>Region<span class=\"k\">.</span>getRegion <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">)</span> <span class=\"k\">{</span>","    <span class=\"k\">var</span> p <span class=\"k\">=</span> YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getXY<span class=\"k\">(</span>el<span class=\"k\">),</span>","        t <span class=\"k\">=</span> p<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">],</span>","        r <span class=\"k\">=</span> p<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">]</span> <span class=\"k\">+</span> el<span class=\"k\">.</span>offsetWidth<span class=\"k\">,</span>","        b <span class=\"k\">=</span> p<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">]</span> <span class=\"k\">+</span> el<span class=\"k\">.</span>offsetHeight<span class=\"k\">,</span>","        l <span class=\"k\">=</span> p<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">];</span>","","    <span class=\"k\">return</span> <span class=\"k\">new</span> YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>Region<span class=\"k\">(</span>t<span class=\"k\">,</span> r<span class=\"k\">,</span> b<span class=\"k\">,</span> l<span class=\"k\">);</span>","<span class=\"k\">}</span><span class=\"k\">;</span>","","<span class=\"c\">/////////////////////////////////////////////////////////////////////////////</span>","","","<span class=\"c\">/**</span>","<span class=\"c\"> * A point is a region that is special in that it represents a single point on </span>","<span class=\"c\"> * the grid.</span>","<span class=\"c\"> * @namespace YAHOO.util</span>","<span class=\"c\"> * @class Point</span>","<span class=\"c\"> * @param {Int} x The X position of the point</span>","<span class=\"c\"> * @param {Int} y The Y position of the point</span>","<span class=\"c\"> * @constructor</span>","<span class=\"c\"> * @extends YAHOO.util.Region</span>","<span class=\"c\"> */</span>","YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>Point <span class=\"k\">=</span> <span class=\"k\">function</span><span class=\"k\">(</span>x<span class=\"k\">,</span> y<span class=\"k\">)</span> <span class=\"k\">{</span>","   <span class=\"k\">if</span> <span class=\"k\">(</span>YAHOO<span class=\"k\">.</span>lang<span class=\"k\">.</span>isArray<span class=\"k\">(</span>x<span class=\"k\">))</span> <span class=\"k\">{</span> <span class=\"c\">// accept input from Dom.getXY, Event.getXY, etc.</span>","      y <span class=\"k\">=</span> x<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">];</span> <span class=\"c\">// dont blow away x yet</span>","      x <span class=\"k\">=</span> x<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">];</span>","   <span class=\"k\">}</span>"," ","    YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>Point<span class=\"k\">.</span>superclass<span class=\"k\">.</span>constructor<span class=\"k\">.</span>call<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">,</span> y<span class=\"k\">,</span> x<span class=\"k\">,</span> y<span class=\"k\">,</span> x<span class=\"k\">);</span>","<span class=\"k\">}</span><span class=\"k\">;</span>","","YAHOO<span class=\"k\">.</span>extend<span class=\"k\">(</span>YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>Point<span class=\"k\">,</span> YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>Region<span class=\"k\">);</span>","","<span class=\"k\">(</span><span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","<span class=\"c\">/**</span>","<span class=\"c\"> * Add style management functionality to DOM.</span>","<span class=\"c\"> * @module dom</span>","<span class=\"c\"> * @for Dom</span>","<span class=\"c\"> */</span>","","<span class=\"k\">var</span> Y <span class=\"k\">=</span> YAHOO<span class=\"k\">.</span>util<span class=\"k\">,</span> ","    CLIENT_TOP <span class=\"k\">=</span> <span class=\"s\">'clientTop'</span><span class=\"k\">,</span>","    CLIENT_LEFT <span class=\"k\">=</span> <span class=\"s\">'clientLeft'</span><span class=\"k\">,</span>","    PARENT_NODE <span class=\"k\">=</span> <span class=\"s\">'parentNode'</span><span class=\"k\">,</span>","    RIGHT <span class=\"k\">=</span> <span class=\"s\">'right'</span><span class=\"k\">,</span>","    HAS_LAYOUT <span class=\"k\">=</span> <span class=\"s\">'hasLayout'</span><span class=\"k\">,</span>","    PX <span class=\"k\">=</span> <span class=\"s\">'px'</span><span class=\"k\">,</span>","    OPACITY <span class=\"k\">=</span> <span class=\"s\">'opacity'</span><span class=\"k\">,</span>","    AUTO <span class=\"k\">=</span> <span class=\"s\">'auto'</span><span class=\"k\">,</span>","    BORDER_LEFT_WIDTH <span class=\"k\">=</span> <span class=\"s\">'borderLeftWidth'</span><span class=\"k\">,</span>","    BORDER_TOP_WIDTH <span class=\"k\">=</span> <span class=\"s\">'borderTopWidth'</span><span class=\"k\">,</span>","    BORDER_RIGHT_WIDTH <span class=\"k\">=</span> <span class=\"s\">'borderRightWidth'</span><span class=\"k\">,</span>","    BORDER_BOTTOM_WIDTH <span class=\"k\">=</span> <span class=\"s\">'borderBottomWidth'</span><span class=\"k\">,</span>","    VISIBLE <span class=\"k\">=</span> <span class=\"s\">'visible'</span><span class=\"k\">,</span>","    TRANSPARENT <span class=\"k\">=</span> <span class=\"s\">'transparent'</span><span class=\"k\">,</span>","    HEIGHT <span class=\"k\">=</span> <span class=\"s\">'height'</span><span class=\"k\">,</span>","    WIDTH <span class=\"k\">=</span> <span class=\"s\">'width'</span><span class=\"k\">,</span>","    STYLE <span class=\"k\">=</span> <span class=\"s\">'style'</span><span class=\"k\">,</span>","    CURRENT_STYLE <span class=\"k\">=</span> <span class=\"s\">'currentStyle'</span><span class=\"k\">,</span>","","<span class=\"c\">// IE getComputedStyle</span>","<span class=\"c\">// TODO: unit-less lineHeight (e.g. 1.22)</span>","    re_size <span class=\"k\">=</span> <span class=\"s\">/^width|height$/</span><span class=\"k\">,</span>","    re_unit <span class=\"k\">=</span> <span class=\"s\">/^(\\d[.\\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i</span><span class=\"k\">,</span>","","    ComputedStyle <span class=\"k\">=</span> <span class=\"k\">{</span>","        get<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> property<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> value <span class=\"k\">=</span> <span class=\"s\">''</span><span class=\"k\">,</span>","                current <span class=\"k\">=</span> el<span class=\"k\">[</span>CURRENT_STYLE<span class=\"k\">][</span>property<span class=\"k\">];</span>","","            <span class=\"k\">if</span> <span class=\"k\">(</span>property <span class=\"k\">===</span> OPACITY<span class=\"k\">)</span> <span class=\"k\">{</span>","                value <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>getStyle<span class=\"k\">(</span>el<span class=\"k\">,</span> OPACITY<span class=\"k\">);</span>        ","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">if</span> <span class=\"k\">(!</span>current <span class=\"k\">||</span> <span class=\"k\">(</span>current<span class=\"k\">.</span>indexOf <span class=\"k\">&amp;&amp;</span> current<span class=\"k\">.</span>indexOf<span class=\"k\">(</span>PX<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=\"c\">// no need to convert</span>","                value <span class=\"k\">=</span> current<span class=\"k\">;</span>","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">if</span> <span class=\"k\">(</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>IE_COMPUTED<span class=\"k\">[</span>property<span class=\"k\">])</span> <span class=\"k\">{</span> <span class=\"c\">// use compute function</span>","                value <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>IE_COMPUTED<span class=\"k\">[</span>property<span class=\"k\">](</span>el<span class=\"k\">,</span> property<span class=\"k\">);</span>","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">if</span> <span class=\"k\">(</span>re_unit<span class=\"k\">.</span>test<span class=\"k\">(</span>current<span class=\"k\">))</span> <span class=\"k\">{</span> <span class=\"c\">// convert to pixel</span>","                value <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>IE<span class=\"k\">.</span>ComputedStyle<span class=\"k\">.</span>getPixel<span class=\"k\">(</span>el<span class=\"k\">,</span> property<span class=\"k\">);</span>","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                value <span class=\"k\">=</span> current<span class=\"k\">;</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">return</span> value<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        getOffset<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> prop<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> current <span class=\"k\">=</span> el<span class=\"k\">[</span>CURRENT_STYLE<span class=\"k\">][</span>prop<span class=\"k\">],</span>                        <span class=\"c\">// value of \"width\", \"top\", etc.</span>","                capped <span class=\"k\">=</span> prop<span class=\"k\">.</span>charAt<span class=\"k\">(</span><span class=\"s\">0</span><span class=\"k\">).</span>toUpperCase<span class=\"k\">()</span> <span class=\"k\">+</span> prop<span class=\"k\">.</span>substr<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">),</span> <span class=\"c\">// \"Width\", \"Top\", etc.</span>","                offset <span class=\"k\">=</span> <span class=\"s\">'offset'</span> <span class=\"k\">+</span> capped<span class=\"k\">,</span>                             <span class=\"c\">// \"offsetWidth\", \"offsetTop\", etc.</span>","                pixel <span class=\"k\">=</span> <span class=\"s\">'pixel'</span> <span class=\"k\">+</span> capped<span class=\"k\">,</span>                               <span class=\"c\">// \"pixelWidth\", \"pixelTop\", etc.</span>","                value <span class=\"k\">=</span> <span class=\"s\">''</span><span class=\"k\">,</span>","                actual<span class=\"k\">;</span>","","            <span class=\"k\">if</span> <span class=\"k\">(</span>current <span class=\"k\">==</span> AUTO<span class=\"k\">)</span> <span class=\"k\">{</span>","                actual <span class=\"k\">=</span> el<span class=\"k\">[</span>offset<span class=\"k\">];</span> <span class=\"c\">// offsetHeight/Top etc.</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>actual <span class=\"k\">===</span> undefined<span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// likely \"right\" or \"bottom\"</span>","                    value <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">;</span>","                <span class=\"k\">}</span>","","                value <span class=\"k\">=</span> actual<span class=\"k\">;</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>re_size<span class=\"k\">.</span>test<span class=\"k\">(</span>prop<span class=\"k\">))</span> <span class=\"k\">{</span> <span class=\"c\">// account for box model diff </span>","                    el<span class=\"k\">[</span>STYLE<span class=\"k\">][</span>prop<span class=\"k\">]</span> <span class=\"k\">=</span> actual<span class=\"k\">;</span> ","                    <span class=\"k\">if</span> <span class=\"k\">(</span>el<span class=\"k\">[</span>offset<span class=\"k\">]</span> <span class=\"k\">&gt;</span> actual<span class=\"k\">)</span> <span class=\"k\">{</span>","                        <span class=\"c\">// the difference is padding + border (works in Standards &amp; Quirks modes)</span>","                        value <span class=\"k\">=</span> actual <span class=\"k\">-</span> <span class=\"k\">(</span>el<span class=\"k\">[</span>offset<span class=\"k\">]</span> <span class=\"k\">-</span> actual<span class=\"k\">);</span>","                    <span class=\"k\">}</span>","                    el<span class=\"k\">[</span>STYLE<span class=\"k\">][</span>prop<span class=\"k\">]</span> <span class=\"k\">=</span> AUTO<span class=\"k\">;</span> <span class=\"c\">// revert to auto</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span> <span class=\"c\">// convert units to px</span>","                <span class=\"k\">if</span> <span class=\"k\">(!</span>el<span class=\"k\">[</span>STYLE<span class=\"k\">][</span>pixel<span class=\"k\">]</span> <span class=\"k\">&amp;&amp;</span> <span class=\"k\">!</span>el<span class=\"k\">[</span>STYLE<span class=\"k\">][</span>prop<span class=\"k\">])</span> <span class=\"k\">{</span> <span class=\"c\">// need to map style.width to currentStyle (no currentStyle.pixelWidth)</span>","                    el<span class=\"k\">[</span>STYLE<span class=\"k\">][</span>prop<span class=\"k\">]</span> <span class=\"k\">=</span> current<span class=\"k\">;</span>              <span class=\"c\">// no style.pixelWidth if no style.width</span>","                <span class=\"k\">}</span>","                value <span class=\"k\">=</span> el<span class=\"k\">[</span>STYLE<span class=\"k\">][</span>pixel<span class=\"k\">];</span>","            <span class=\"k\">}</span>","            <span class=\"k\">return</span> value <span class=\"k\">+</span> PX<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        getBorderWidth<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>el<span class=\"k\">,</span> property<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"c\">// clientHeight/Width = paddingBox (e.g. offsetWidth - borderWidth)</span>","            <span class=\"c\">// clientTop/Left = borderWidth</span>","            <span class=\"k\">var</span> value <span class=\"k\">=</span> <span class=\"k\">null</span><span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(!</span>el<span class=\"k\">[</span>CURRENT_STYLE<span class=\"k\">][</span>HAS_LAYOUT<span class=\"k\">])</span> <span class=\"k\">{</span> <span class=\"c\">// TODO: unset layout?</span>","                el<span class=\"k\">[</span>STYLE<span class=\"k\">].</span>zoom <span class=\"k\">=</span> <span class=\"s\">1</span><span class=\"k\">;</span> <span class=\"c\">// need layout to measure client</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">switch</span><span class=\"k\">(</span>property<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">case</span> BORDER_TOP_WIDTH<span class=\"k\">:</span>","                    value <span class=\"k\">=</span> el<span class=\"k\">[</span>CLIENT_TOP<span class=\"k\">];</span>","                    <span class=\"k\">break</span><span class=\"k\">;</span>","                <span class=\"k\">case</span> BORDER_BOTTOM_WIDTH<span class=\"k\">:</span>","                    value <span class=\"k\">=</span> el<span class=\"k\">.</span>offsetHeight <span class=\"k\">-</span> el<span class=\"k\">.</span>clientHeight <span class=\"k\">-</span> el<span class=\"k\">[</span>CLIENT_TOP<span class=\"k\">];</span>","                    <span class=\"k\">break</span><span class=\"k\">;</span>","                <span class=\"k\">case</span> BORDER_LEFT_WIDTH<span class=\"k\">:</span>","                    value <span class=\"k\">=</span> el<span class=\"k\">[</span>CLIENT_LEFT<span class=\"k\">];</span>","                    <span class=\"k\">break</span><span class=\"k\">;</span>","                <span class=\"k\">case</span> BORDER_RIGHT_WIDTH<span class=\"k\">:</span>","                    value <span class=\"k\">=</span> el<span class=\"k\">.</span>offsetWidth <span class=\"k\">-</span> el<span class=\"k\">.</span>clientWidth <span class=\"k\">-</span> el<span class=\"k\">[</span>CLIENT_LEFT<span class=\"k\">];</span>","                    <span class=\"k\">break</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","            <span class=\"k\">return</span> value <span class=\"k\">+</span> PX<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        getPixel<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">,</span> att<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"c\">// use pixelRight to convert to px</span>","            <span class=\"k\">var</span> val <span class=\"k\">=</span> <span class=\"k\">null</span><span class=\"k\">,</span>","                styleRight <span class=\"k\">=</span> node<span class=\"k\">[</span>CURRENT_STYLE<span class=\"k\">][</span>RIGHT<span class=\"k\">],</span>","                current <span class=\"k\">=</span> node<span class=\"k\">[</span>CURRENT_STYLE<span class=\"k\">][</span>att<span class=\"k\">];</span>","","            node<span class=\"k\">[</span>STYLE<span class=\"k\">][</span>RIGHT<span class=\"k\">]</span> <span class=\"k\">=</span> current<span class=\"k\">;</span>","            val <span class=\"k\">=</span> node<span class=\"k\">[</span>STYLE<span class=\"k\">].</span>pixelRight<span class=\"k\">;</span>","            node<span class=\"k\">[</span>STYLE<span class=\"k\">][</span>RIGHT<span class=\"k\">]</span> <span class=\"k\">=</span> styleRight<span class=\"k\">;</span> <span class=\"c\">// revert</span>","","            <span class=\"k\">return</span> val <span class=\"k\">+</span> PX<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        getMargin<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">,</span> att<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> val<span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>node<span class=\"k\">[</span>CURRENT_STYLE<span class=\"k\">][</span>att<span class=\"k\">]</span> <span class=\"k\">==</span> AUTO<span class=\"k\">)</span> <span class=\"k\">{</span>","                val <span class=\"k\">=</span> <span class=\"s\">0</span> <span class=\"k\">+</span> PX<span class=\"k\">;</span>","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                val <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>IE<span class=\"k\">.</span>ComputedStyle<span class=\"k\">.</span>getPixel<span class=\"k\">(</span>node<span class=\"k\">,</span> att<span class=\"k\">);</span>","            <span class=\"k\">}</span>","            <span class=\"k\">return</span> val<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        getVisibility<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">,</span> att<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> current<span class=\"k\">;</span>","            <span class=\"k\">while</span> <span class=\"k\">(</span> <span class=\"k\">(</span>current <span class=\"k\">=</span> node<span class=\"k\">[</span>CURRENT_STYLE<span class=\"k\">])</span> <span class=\"k\">&amp;&amp;</span> current<span class=\"k\">[</span>att<span class=\"k\">]</span> <span class=\"k\">==</span> <span class=\"s\">'inherit'</span><span class=\"k\">)</span> <span class=\"k\">{</span> <span class=\"c\">// NOTE: assignment in test</span>","                node <span class=\"k\">=</span> node<span class=\"k\">[</span>PARENT_NODE<span class=\"k\">];</span>","            <span class=\"k\">}</span>","            <span class=\"k\">return</span> <span class=\"k\">(</span>current<span class=\"k\">)</span> <span class=\"k\">?</span> current<span class=\"k\">[</span>att<span class=\"k\">]</span> <span class=\"k\">:</span> VISIBLE<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        getColor<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">,</span> att<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>Color<span class=\"k\">.</span>toRGB<span class=\"k\">(</span>node<span class=\"k\">[</span>CURRENT_STYLE<span class=\"k\">][</span>att<span class=\"k\">])</span> <span class=\"k\">||</span> TRANSPARENT<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        getBorderColor<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>node<span class=\"k\">,</span> att<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> current <span class=\"k\">=</span> node<span class=\"k\">[</span>CURRENT_STYLE<span class=\"k\">],</span>","                val <span class=\"k\">=</span> current<span class=\"k\">[</span>att<span class=\"k\">]</span> <span class=\"k\">||</span> current<span class=\"k\">.</span>color<span class=\"k\">;</span>","            <span class=\"k\">return</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>Color<span class=\"k\">.</span>toRGB<span class=\"k\">(</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>Color<span class=\"k\">.</span>toHex<span class=\"k\">(</span>val<span class=\"k\">));</span>","        <span class=\"k\">}</span>","","    <span class=\"k\">}</span><span class=\"k\">,</span>","","<span class=\"c\">//fontSize: getPixelFont,</span>","    IEComputed <span class=\"k\">=</span> <span class=\"k\">{}</span><span class=\"k\">;</span>","","IEComputed<span class=\"k\">.</span>top <span class=\"k\">=</span> IEComputed<span class=\"k\">.</span>right <span class=\"k\">=</span> IEComputed<span class=\"k\">.</span>bottom <span class=\"k\">=</span> IEComputed<span class=\"k\">.</span>left <span class=\"k\">=</span> ","        IEComputed<span class=\"k\">[</span>WIDTH<span class=\"k\">]</span> <span class=\"k\">=</span> IEComputed<span class=\"k\">[</span>HEIGHT<span class=\"k\">]</span> <span class=\"k\">=</span> ComputedStyle<span class=\"k\">.</span>getOffset<span class=\"k\">;</span>","","IEComputed<span class=\"k\">.</span>color <span class=\"k\">=</span> ComputedStyle<span class=\"k\">.</span>getColor<span class=\"k\">;</span>","","IEComputed<span class=\"k\">[</span>BORDER_TOP_WIDTH<span class=\"k\">]</span> <span class=\"k\">=</span> IEComputed<span class=\"k\">[</span>BORDER_RIGHT_WIDTH<span class=\"k\">]</span> <span class=\"k\">=</span>","        IEComputed<span class=\"k\">[</span>BORDER_BOTTOM_WIDTH<span class=\"k\">]</span> <span class=\"k\">=</span> IEComputed<span class=\"k\">[</span>BORDER_LEFT_WIDTH<span class=\"k\">]</span> <span class=\"k\">=</span>","        ComputedStyle<span class=\"k\">.</span>getBorderWidth<span class=\"k\">;</span>","","IEComputed<span class=\"k\">.</span>marginTop <span class=\"k\">=</span> IEComputed<span class=\"k\">.</span>marginRight <span class=\"k\">=</span> IEComputed<span class=\"k\">.</span>marginBottom <span class=\"k\">=</span>","        IEComputed<span class=\"k\">.</span>marginLeft <span class=\"k\">=</span> ComputedStyle<span class=\"k\">.</span>getMargin<span class=\"k\">;</span>","","IEComputed<span class=\"k\">.</span>visibility <span class=\"k\">=</span> ComputedStyle<span class=\"k\">.</span>getVisibility<span class=\"k\">;</span>","IEComputed<span class=\"k\">.</span>borderColor <span class=\"k\">=</span> IEComputed<span class=\"k\">.</span>borderTopColor <span class=\"k\">=</span>","        IEComputed<span class=\"k\">.</span>borderRightColor <span class=\"k\">=</span> IEComputed<span class=\"k\">.</span>borderBottomColor <span class=\"k\">=</span>","        IEComputed<span class=\"k\">.</span>borderLeftColor <span class=\"k\">=</span> ComputedStyle<span class=\"k\">.</span>getBorderColor<span class=\"k\">;</span>","","Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>IE_COMPUTED <span class=\"k\">=</span> IEComputed<span class=\"k\">;</span>","Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>IE_ComputedStyle <span class=\"k\">=</span> ComputedStyle<span class=\"k\">;</span>","<span class=\"k\">}</span><span class=\"k\">)();</span>","<span class=\"k\">(</span><span class=\"k\">function</span><span class=\"k\">()</span> <span class=\"k\">{</span>","<span class=\"c\">/**</span>","<span class=\"c\"> * Add style management functionality to DOM.</span>","<span class=\"c\"> * @module dom</span>","<span class=\"c\"> * @for Dom</span>","<span class=\"c\"> */</span>","","<span class=\"k\">var</span> TO_STRING <span class=\"k\">=</span> <span class=\"s\">'toString'</span><span class=\"k\">,</span>","    PARSE_INT <span class=\"k\">=</span> parseInt<span class=\"k\">,</span>","    RE <span class=\"k\">=</span> RegExp<span class=\"k\">,</span>","    Y <span class=\"k\">=</span> YAHOO<span class=\"k\">.</span>util<span class=\"k\">;</span>","","Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>Color <span class=\"k\">=</span> <span class=\"k\">{</span>","    KEYWORDS<span class=\"k\">:</span> <span class=\"k\">{</span>","        black<span class=\"k\">:</span> <span class=\"s\">'000'</span><span class=\"k\">,</span>","        silver<span class=\"k\">:</span> <span class=\"s\">'c0c0c0'</span><span class=\"k\">,</span>","        gray<span class=\"k\">:</span> <span class=\"s\">'808080'</span><span class=\"k\">,</span>","        white<span class=\"k\">:</span> <span class=\"s\">'fff'</span><span class=\"k\">,</span>","        maroon<span class=\"k\">:</span> <span class=\"s\">'800000'</span><span class=\"k\">,</span>","        red<span class=\"k\">:</span> <span class=\"s\">'f00'</span><span class=\"k\">,</span>","        purple<span class=\"k\">:</span> <span class=\"s\">'800080'</span><span class=\"k\">,</span>","        fuchsia<span class=\"k\">:</span> <span class=\"s\">'f0f'</span><span class=\"k\">,</span>","        green<span class=\"k\">:</span> <span class=\"s\">'008000'</span><span class=\"k\">,</span>","        lime<span class=\"k\">:</span> <span class=\"s\">'0f0'</span><span class=\"k\">,</span>","        olive<span class=\"k\">:</span> <span class=\"s\">'808000'</span><span class=\"k\">,</span>","        yellow<span class=\"k\">:</span> <span class=\"s\">'ff0'</span><span class=\"k\">,</span>","        navy<span class=\"k\">:</span> <span class=\"s\">'000080'</span><span class=\"k\">,</span>","        blue<span class=\"k\">:</span> <span class=\"s\">'00f'</span><span class=\"k\">,</span>","        teal<span class=\"k\">:</span> <span class=\"s\">'008080'</span><span class=\"k\">,</span>","        aqua<span class=\"k\">:</span> <span class=\"s\">'0ff'</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    re_RGB<span class=\"k\">:</span> <span class=\"s\">/^rgb\\(([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\)$/i</span><span class=\"k\">,</span>","    re_hex<span class=\"k\">:</span> <span class=\"s\">/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i</span><span class=\"k\">,</span>","    re_hex3<span class=\"k\">:</span> <span class=\"s\">/([0-9A-F])/gi</span><span class=\"k\">,</span>","","    toRGB<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>val<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">if</span> <span class=\"k\">(!</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>Color<span class=\"k\">.</span>re_RGB<span class=\"k\">.</span>test<span class=\"k\">(</span>val<span class=\"k\">))</span> <span class=\"k\">{</span>","            val <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>Color<span class=\"k\">.</span>toHex<span class=\"k\">(</span>val<span class=\"k\">);</span>","        <span class=\"k\">}</span>","","        <span class=\"k\">if</span><span class=\"k\">(</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>Color<span class=\"k\">.</span>re_hex<span class=\"k\">.</span>exec<span class=\"k\">(</span>val<span class=\"k\">))</span> <span class=\"k\">{</span>","            val <span class=\"k\">=</span> <span class=\"s\">'rgb('</span> <span class=\"k\">+</span> <span class=\"k\">[</span>","                PARSE_INT<span class=\"k\">(</span>RE<span class=\"k\">.</span>$1<span class=\"k\">,</span> <span class=\"s\">16</span><span class=\"k\">),</span>","                PARSE_INT<span class=\"k\">(</span>RE<span class=\"k\">.</span>$2<span class=\"k\">,</span> <span class=\"s\">16</span><span class=\"k\">),</span>","                PARSE_INT<span class=\"k\">(</span>RE<span class=\"k\">.</span>$3<span class=\"k\">,</span> <span class=\"s\">16</span><span class=\"k\">)</span>","            <span class=\"k\">].</span>join<span class=\"k\">(</span><span class=\"s\">', '</span><span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">')'</span><span class=\"k\">;</span>","        <span class=\"k\">}</span>","        <span class=\"k\">return</span> val<span class=\"k\">;</span>","    <span class=\"k\">}</span><span class=\"k\">,</span>","","    toHex<span class=\"k\">:</span> <span class=\"k\">function</span><span class=\"k\">(</span>val<span class=\"k\">)</span> <span class=\"k\">{</span>","        val <span class=\"k\">=</span> Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>Color<span class=\"k\">.</span>KEYWORDS<span class=\"k\">[</span>val<span class=\"k\">]</span> <span class=\"k\">||</span> val<span class=\"k\">;</span>","        <span class=\"k\">if</span> <span class=\"k\">(</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>Color<span class=\"k\">.</span>re_RGB<span class=\"k\">.</span>exec<span class=\"k\">(</span>val<span class=\"k\">))</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> r <span class=\"k\">=</span> <span class=\"k\">(</span>RE<span class=\"k\">.</span>$1<span class=\"k\">.</span>length <span class=\"k\">===</span> <span class=\"s\">1</span><span class=\"k\">)</span> <span class=\"k\">?</span> <span class=\"s\">'0'</span> <span class=\"k\">+</span> RE<span class=\"k\">.</span>$1 <span class=\"k\">:</span> Number<span class=\"k\">(</span>RE<span class=\"k\">.</span>$1<span class=\"k\">),</span>","                g <span class=\"k\">=</span> <span class=\"k\">(</span>RE<span class=\"k\">.</span>$2<span class=\"k\">.</span>length <span class=\"k\">===</span> <span class=\"s\">1</span><span class=\"k\">)</span> <span class=\"k\">?</span> <span class=\"s\">'0'</span> <span class=\"k\">+</span> RE<span class=\"k\">.</span>$2 <span class=\"k\">:</span> Number<span class=\"k\">(</span>RE<span class=\"k\">.</span>$2<span class=\"k\">),</span>","                b <span class=\"k\">=</span> <span class=\"k\">(</span>RE<span class=\"k\">.</span>$3<span class=\"k\">.</span>length <span class=\"k\">===</span> <span class=\"s\">1</span><span class=\"k\">)</span> <span class=\"k\">?</span> <span class=\"s\">'0'</span> <span class=\"k\">+</span> RE<span class=\"k\">.</span>$3 <span class=\"k\">:</span> Number<span class=\"k\">(</span>RE<span class=\"k\">.</span>$3<span class=\"k\">);</span>","","            val <span class=\"k\">=</span> <span class=\"k\">[</span>","                r<span class=\"k\">[</span>TO_STRING<span class=\"k\">](</span><span class=\"s\">16</span><span class=\"k\">),</span>","                g<span class=\"k\">[</span>TO_STRING<span class=\"k\">](</span><span class=\"s\">16</span><span class=\"k\">),</span>","                b<span class=\"k\">[</span>TO_STRING<span class=\"k\">](</span><span class=\"s\">16</span><span class=\"k\">)</span>","            <span class=\"k\">].</span>join<span class=\"k\">(</span><span class=\"s\">''</span><span class=\"k\">);</span>","        <span class=\"k\">}</span>","","        <span class=\"k\">if</span> <span class=\"k\">(</span>val<span class=\"k\">.</span>length <span class=\"k\">&lt;</span> <span class=\"s\">6</span><span class=\"k\">)</span> <span class=\"k\">{</span>","            val <span class=\"k\">=</span> val<span class=\"k\">.</span>replace<span class=\"k\">(</span>Y<span class=\"k\">.</span>Dom<span class=\"k\">.</span>Color<span class=\"k\">.</span>re_hex3<span class=\"k\">,</span> <span class=\"s\">'$1$1'</span><span class=\"k\">);</span>","        <span class=\"k\">}</span>","","        <span class=\"k\">if</span> <span class=\"k\">(</span>val <span class=\"k\">!==</span> <span class=\"s\">'transparent'</span> <span class=\"k\">&amp;&amp;</span> val<span class=\"k\">.</span>indexOf<span class=\"k\">(</span><span class=\"s\">'#'</span><span class=\"k\">)</span> <span class=\"k\">&lt;</span> <span class=\"s\">0</span><span class=\"k\">)</span> <span class=\"k\">{</span>","            val <span class=\"k\">=</span> <span class=\"s\">'#'</span> <span class=\"k\">+</span> val<span class=\"k\">;</span>","        <span class=\"k\">}</span>","","        <span class=\"k\">return</span> val<span class=\"k\">.</span>toLowerCase<span class=\"k\">();</span>","    <span class=\"k\">}</span>","<span class=\"k\">}</span><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\">\"dom\"</span><span class=\"k\">,</span> YAHOO<span class=\"k\">.</span>util<span class=\"k\">.</span>Dom<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/dom/dom.js'][13]++;
(function () {
  _$jscoverage['build/dom/dom.js'][15]++;
  YAHOO.env._id_counter = (YAHOO.env._id_counter || 0);
  _$jscoverage['build/dom/dom.js'][18]++;
  var Y = YAHOO.util, lang = YAHOO.lang, UA = YAHOO.env.ua, trim = YAHOO.lang.trim, propertyCache = {}, reCache = {}, RE_TABLE = /^t(?:able|d|h)$/i, RE_COLOR = /color$/i, document = window.document, documentElement = document.documentElement, OWNER_DOCUMENT = "ownerDocument", DEFAULT_VIEW = "defaultView", DOCUMENT_ELEMENT = "documentElement", COMPAT_MODE = "compatMode", OFFSET_LEFT = "offsetLeft", OFFSET_TOP = "offsetTop", OFFSET_PARENT = "offsetParent", PARENT_NODE = "parentNode", NODE_TYPE = "nodeType", TAG_NAME = "tagName", SCROLL_LEFT = "scrollLeft", SCROLL_TOP = "scrollTop", GET_BOUNDING_CLIENT_RECT = "getBoundingClientRect", GET_COMPUTED_STYLE = "getComputedStyle", CURRENT_STYLE = "currentStyle", CSS1_COMPAT = "CSS1Compat", _BACK_COMPAT = "BackCompat", _CLASS = "class", CLASS_NAME = "className", EMPTY = "", SPACE = " ", C_START = "(?:^|\\s)", C_END = "(?= |$)", G = "g", POSITION = "position", FIXED = "fixed", RELATIVE = "relative", LEFT = "left", TOP = "top", MEDIUM = "medium", BORDER_LEFT_WIDTH = "borderLeftWidth", BORDER_TOP_WIDTH = "borderTopWidth", isOpera = UA.opera, isSafari = UA.webkit, isGecko = UA.gecko, isIE = UA.ie;
  _$jscoverage['build/dom/dom.js'][77]++;
  Y.Dom = {CUSTOM_ATTRIBUTES: ((! documentElement.hasAttribute)? {"for": "htmlFor", "class": CLASS_NAME}: {"htmlFor": "for", "className": _CLASS}), DOT_ATTRIBUTES: {}, get: (function (el) {
  _$jscoverage['build/dom/dom.js'][95]++;
  var id, nodes, c, i, len, attr;
  _$jscoverage['build/dom/dom.js'][97]++;
  if (el) {
    _$jscoverage['build/dom/dom.js'][98]++;
    if ((el[NODE_TYPE] || el.item)) {
      _$jscoverage['build/dom/dom.js'][99]++;
      return el;
    }
    _$jscoverage['build/dom/dom.js'][102]++;
    if (((typeof el) === "string")) {
      _$jscoverage['build/dom/dom.js'][103]++;
      id = el;
      _$jscoverage['build/dom/dom.js'][104]++;
      el = document.getElementById(el);
      _$jscoverage['build/dom/dom.js'][105]++;
      attr = (el? el.attributes: null);
      _$jscoverage['build/dom/dom.js'][106]++;
      if ((el && attr && attr.id && (attr.id.value === id))) {
        _$jscoverage['build/dom/dom.js'][107]++;
        return el;
      }
      else {
        _$jscoverage['build/dom/dom.js'][108]++;
        if ((el && document.all)) {
          _$jscoverage['build/dom/dom.js'][109]++;
          el = null;
          _$jscoverage['build/dom/dom.js'][110]++;
          nodes = document.all[id];
          _$jscoverage['build/dom/dom.js'][111]++;
          for (((i = 0), (len = nodes.length)); (i < len); (++i)) {
            _$jscoverage['build/dom/dom.js'][112]++;
            if ((nodes[i].id === id)) {
              _$jscoverage['build/dom/dom.js'][113]++;
              return nodes[i];
            }
}
        }
      }
      _$jscoverage['build/dom/dom.js'][117]++;
      return el;
    }
    _$jscoverage['build/dom/dom.js'][120]++;
    if ((YAHOO.util.Element && (el instanceof YAHOO.util.Element))) {
      _$jscoverage['build/dom/dom.js'][121]++;
      el = el.get("element");
    }
    _$jscoverage['build/dom/dom.js'][124]++;
    if (("length" in el)) {
      _$jscoverage['build/dom/dom.js'][125]++;
      c = [];
      _$jscoverage['build/dom/dom.js'][126]++;
      for (((i = 0), (len = el.length)); (i < len); (++i)) {
        _$jscoverage['build/dom/dom.js'][127]++;
        c[c.length] = Y.Dom.get(el[i]);
}
      _$jscoverage['build/dom/dom.js'][130]++;
      return c;
    }
    _$jscoverage['build/dom/dom.js'][133]++;
    return el;
  }
  _$jscoverage['build/dom/dom.js'][136]++;
  return null;
}), getComputedStyle: (function (el, property) {
  _$jscoverage['build/dom/dom.js'][140]++;
  if (window[GET_COMPUTED_STYLE]) {
    _$jscoverage['build/dom/dom.js'][141]++;
    return (el[OWNER_DOCUMENT][DEFAULT_VIEW][GET_COMPUTED_STYLE])(el, null)[property];
  }
  else {
    _$jscoverage['build/dom/dom.js'][142]++;
    if (el[CURRENT_STYLE]) {
      _$jscoverage['build/dom/dom.js'][143]++;
      return Y.Dom.IE_ComputedStyle.get(el, property);
    }
  }
}), getStyle: (function (el, property) {
  _$jscoverage['build/dom/dom.js'][155]++;
  return Y.Dom.batch(el, Y.Dom._getStyle, property);
}), _getStyle: (function () {
  _$jscoverage['build/dom/dom.js'][160]++;
  if (window[GET_COMPUTED_STYLE]) {
    _$jscoverage['build/dom/dom.js'][161]++;
    return (function (el, property) {
  _$jscoverage['build/dom/dom.js'][162]++;
  property = ((property === "float")? (property = "cssFloat"): Y.Dom._toCamel(property));
  _$jscoverage['build/dom/dom.js'][165]++;
  var value = el.style[property], computed;
  _$jscoverage['build/dom/dom.js'][168]++;
  if ((! value)) {
    _$jscoverage['build/dom/dom.js'][169]++;
    computed = (el[OWNER_DOCUMENT][DEFAULT_VIEW][GET_COMPUTED_STYLE])(el, null);
    _$jscoverage['build/dom/dom.js'][170]++;
    if (computed) {
      _$jscoverage['build/dom/dom.js'][171]++;
      value = computed[property];
    }
  }
  _$jscoverage['build/dom/dom.js'][175]++;
  return value;
});
  }
  else {
    _$jscoverage['build/dom/dom.js'][177]++;
    if (documentElement[CURRENT_STYLE]) {
      _$jscoverage['build/dom/dom.js'][178]++;
      return (function (el, property) {
  _$jscoverage['build/dom/dom.js'][179]++;
  var value;
  _$jscoverage['build/dom/dom.js'][181]++;
  switch (property) {
  case "opacity":
    _$jscoverage['build/dom/dom.js'][183]++;
    value = 100;
    _$jscoverage['build/dom/dom.js'][184]++;
    try {
      _$jscoverage['build/dom/dom.js'][185]++;
      value = el.filters["DXImageTransform.Microsoft.Alpha"].opacity;
    }
    catch (e) {
      _$jscoverage['build/dom/dom.js'][188]++;
      try {
        _$jscoverage['build/dom/dom.js'][189]++;
        value = el.filters("alpha").opacity;
      }
      catch (err) {
      }
    }
    _$jscoverage['build/dom/dom.js'][193]++;
    return (value / 100);
  case "float":
    _$jscoverage['build/dom/dom.js'][195]++;
    property = "styleFloat";
  default:
    _$jscoverage['build/dom/dom.js'][197]++;
    property = Y.Dom._toCamel(property);
    _$jscoverage['build/dom/dom.js'][198]++;
    value = (el[CURRENT_STYLE]? el[CURRENT_STYLE][property]: null);
    _$jscoverage['build/dom/dom.js'][199]++;
    return (el.style[property] || value);
  }
});
    }
  }
})(), setStyle: (function (el, property, val) {
  _$jscoverage['build/dom/dom.js'][213]++;
  Y.Dom.batch(el, Y.Dom._setStyle, {prop: property, val: val});
}), _setStyle: (function () {
  _$jscoverage['build/dom/dom.js'][217]++;
  if (isIE) {
    _$jscoverage['build/dom/dom.js'][218]++;
    return (function (el, args) {
  _$jscoverage['build/dom/dom.js'][219]++;
  var property = Y.Dom._toCamel(args.prop), val = args.val;
  _$jscoverage['build/dom/dom.js'][222]++;
  if (el) {
    _$jscoverage['build/dom/dom.js'][223]++;
    switch (property) {
    case "opacity":
      _$jscoverage['build/dom/dom.js'][225]++;
      if (lang.isString(el.style.filter)) {
        _$jscoverage['build/dom/dom.js'][226]++;
        el.style.filter = ("alpha(opacity=" + (val * 100) + ")");
        _$jscoverage['build/dom/dom.js'][228]++;
        if (((! el[CURRENT_STYLE]) || (! el[CURRENT_STYLE].hasLayout))) {
          _$jscoverage['build/dom/dom.js'][229]++;
          el.style.zoom = 1;
        }
      }
      _$jscoverage['build/dom/dom.js'][232]++;
      break;
    case "float":
      _$jscoverage['build/dom/dom.js'][234]++;
      property = "styleFloat";
    default:
      _$jscoverage['build/dom/dom.js'][236]++;
      el.style[property] = val;
    }
  }
  else {
  }
});
  }
  else {
    _$jscoverage['build/dom/dom.js'][242]++;
    return (function (el, args) {
  _$jscoverage['build/dom/dom.js'][243]++;
  var property = Y.Dom._toCamel(args.prop), val = args.val;
  _$jscoverage['build/dom/dom.js'][245]++;
  if (el) {
    _$jscoverage['build/dom/dom.js'][246]++;
    if ((property == "float")) {
      _$jscoverage['build/dom/dom.js'][247]++;
      property = "cssFloat";
    }
    _$jscoverage['build/dom/dom.js'][249]++;
    el.style[property] = val;
  }
  else {
  }
});
  }
})(), getXY: (function (el) {
  _$jscoverage['build/dom/dom.js'][266]++;
  return Y.Dom.batch(el, Y.Dom._getXY);
}), _canPosition: (function (el) {
  _$jscoverage['build/dom/dom.js'][270]++;
  return ((Y.Dom._getStyle(el, "display") !== "none") && Y.Dom._inDoc(el));
}), _getXY: (function () {
  _$jscoverage['build/dom/dom.js'][274]++;
  if (document[DOCUMENT_ELEMENT][GET_BOUNDING_CLIENT_RECT]) {
    _$jscoverage['build/dom/dom.js'][275]++;
    return (function (node) {
  _$jscoverage['build/dom/dom.js'][276]++;
  var scrollLeft, scrollTop, box, doc, off1, off2, mode, bLeft, bTop, floor = Math.floor, xy = false;
  _$jscoverage['build/dom/dom.js'][281]++;
  if (Y.Dom._canPosition(node)) {
    _$jscoverage['build/dom/dom.js'][282]++;
    box = (node[GET_BOUNDING_CLIENT_RECT])();
    _$jscoverage['build/dom/dom.js'][283]++;
    doc = node[OWNER_DOCUMENT];
    _$jscoverage['build/dom/dom.js'][284]++;
    scrollLeft = Y.Dom.getDocumentScrollLeft(doc);
    _$jscoverage['build/dom/dom.js'][285]++;
    scrollTop = Y.Dom.getDocumentScrollTop(doc);
    _$jscoverage['build/dom/dom.js'][286]++;
    xy = [floor(box[LEFT]), floor(box[TOP])];
    _$jscoverage['build/dom/dom.js'][288]++;
    if ((isIE && (UA.ie < 8))) {
      _$jscoverage['build/dom/dom.js'][289]++;
      off1 = 2;
      _$jscoverage['build/dom/dom.js'][290]++;
      off2 = 2;
      _$jscoverage['build/dom/dom.js'][291]++;
      mode = doc[COMPAT_MODE];
      _$jscoverage['build/dom/dom.js'][293]++;
      if ((UA.ie === 6)) {
        _$jscoverage['build/dom/dom.js'][294]++;
        if ((mode !== _BACK_COMPAT)) {
          _$jscoverage['build/dom/dom.js'][295]++;
          off1 = 0;
          _$jscoverage['build/dom/dom.js'][296]++;
          off2 = 0;
        }
      }
      _$jscoverage['build/dom/dom.js'][300]++;
      if ((mode === _BACK_COMPAT)) {
        _$jscoverage['build/dom/dom.js'][301]++;
        bLeft = _getComputedStyle(doc[DOCUMENT_ELEMENT], BORDER_LEFT_WIDTH);
        _$jscoverage['build/dom/dom.js'][302]++;
        bTop = _getComputedStyle(doc[DOCUMENT_ELEMENT], BORDER_TOP_WIDTH);
        _$jscoverage['build/dom/dom.js'][303]++;
        if ((bLeft !== MEDIUM)) {
          _$jscoverage['build/dom/dom.js'][304]++;
          off1 = parseInt(bLeft, 10);
        }
        _$jscoverage['build/dom/dom.js'][306]++;
        if ((bTop !== MEDIUM)) {
          _$jscoverage['build/dom/dom.js'][307]++;
          off2 = parseInt(bTop, 10);
        }
      }
      _$jscoverage['build/dom/dom.js'][311]++;
      xy[0] -= off1;
      _$jscoverage['build/dom/dom.js'][312]++;
      xy[1] -= off2;
    }
    _$jscoverage['build/dom/dom.js'][316]++;
    if ((scrollTop || scrollLeft)) {
      _$jscoverage['build/dom/dom.js'][317]++;
      xy[0] += scrollLeft;
      _$jscoverage['build/dom/dom.js'][318]++;
      xy[1] += scrollTop;
    }
    _$jscoverage['build/dom/dom.js'][322]++;
    xy[0] = floor(xy[0]);
    _$jscoverage['build/dom/dom.js'][323]++;
    xy[1] = floor(xy[1]);
  }
  else {
  }
  _$jscoverage['build/dom/dom.js'][327]++;
  return xy;
});
  }
  else {
    _$jscoverage['build/dom/dom.js'][330]++;
    return (function (node) {
  _$jscoverage['build/dom/dom.js'][331]++;
  var docScrollLeft, docScrollTop, scrollTop, scrollLeft, bCheck, xy = false, parentNode = node;
  _$jscoverage['build/dom/dom.js'][337]++;
  if (Y.Dom._canPosition(node)) {
    _$jscoverage['build/dom/dom.js'][338]++;
    xy = [node[OFFSET_LEFT], node[OFFSET_TOP]];
    _$jscoverage['build/dom/dom.js'][339]++;
    docScrollLeft = Y.Dom.getDocumentScrollLeft(node[OWNER_DOCUMENT]);
    _$jscoverage['build/dom/dom.js'][340]++;
    docScrollTop = Y.Dom.getDocumentScrollTop(node[OWNER_DOCUMENT]);
    _$jscoverage['build/dom/dom.js'][343]++;
    bCheck = ((isGecko || (UA.webkit > 519))? true: false);
    _$jscoverage['build/dom/dom.js'][346]++;
    while ((parentNode = parentNode[OFFSET_PARENT])) {
      _$jscoverage['build/dom/dom.js'][347]++;
      xy[0] += parentNode[OFFSET_LEFT];
      _$jscoverage['build/dom/dom.js'][348]++;
      xy[1] += parentNode[OFFSET_TOP];
      _$jscoverage['build/dom/dom.js'][349]++;
      if (bCheck) {
        _$jscoverage['build/dom/dom.js'][350]++;
        xy = Y.Dom._calcBorders(parentNode, xy);
      }
}
    _$jscoverage['build/dom/dom.js'][355]++;
    if ((Y.Dom._getStyle(node, POSITION) !== FIXED)) {
      _$jscoverage['build/dom/dom.js'][356]++;
      parentNode = node;
      _$jscoverage['build/dom/dom.js'][358]++;
      while (((parentNode = parentNode[PARENT_NODE]) && parentNode[TAG_NAME])) {
        _$jscoverage['build/dom/dom.js'][359]++;
        scrollTop = parentNode[SCROLL_TOP];
        _$jscoverage['build/dom/dom.js'][360]++;
        scrollLeft = parentNode[SCROLL_LEFT];
        _$jscoverage['build/dom/dom.js'][363]++;
        if ((isGecko && (Y.Dom._getStyle(parentNode, "overflow") !== "visible"))) {
          _$jscoverage['build/dom/dom.js'][364]++;
          xy = Y.Dom._calcBorders(parentNode, xy);
        }
        _$jscoverage['build/dom/dom.js'][367]++;
        if ((scrollTop || scrollLeft)) {
          _$jscoverage['build/dom/dom.js'][368]++;
          xy[0] -= scrollLeft;
          _$jscoverage['build/dom/dom.js'][369]++;
          xy[1] -= scrollTop;
        }
}
      _$jscoverage['build/dom/dom.js'][372]++;
      xy[0] += docScrollLeft;
      _$jscoverage['build/dom/dom.js'][373]++;
      xy[1] += docScrollTop;
    }
    else {
      _$jscoverage['build/dom/dom.js'][377]++;
      if (isOpera) {
        _$jscoverage['build/dom/dom.js'][378]++;
        xy[0] -= docScrollLeft;
        _$jscoverage['build/dom/dom.js'][379]++;
        xy[1] -= docScrollTop;
      }
      else {
        _$jscoverage['build/dom/dom.js'][380]++;
        if ((isSafari || isGecko)) {
          _$jscoverage['build/dom/dom.js'][381]++;
          xy[0] += docScrollLeft;
          _$jscoverage['build/dom/dom.js'][382]++;
          xy[1] += docScrollTop;
        }
      }
    }
    _$jscoverage['build/dom/dom.js'][386]++;
    xy[0] = Math.floor(xy[0]);
    _$jscoverage['build/dom/dom.js'][387]++;
    xy[1] = Math.floor(xy[1]);
  }
  else {
  }
  _$jscoverage['build/dom/dom.js'][390]++;
  return xy;
});
  }
})(), getX: (function (el) {
  _$jscoverage['build/dom/dom.js'][402]++;
  var f = (function (el) {
  _$jscoverage['build/dom/dom.js'][403]++;
  return Y.Dom.getXY(el)[0];
});
  _$jscoverage['build/dom/dom.js'][406]++;
  return Y.Dom.batch(el, f, Y.Dom, true);
}), getY: (function (el) {
  _$jscoverage['build/dom/dom.js'][416]++;
  var f = (function (el) {
  _$jscoverage['build/dom/dom.js'][417]++;
  return Y.Dom.getXY(el)[1];
});
  _$jscoverage['build/dom/dom.js'][420]++;
  return Y.Dom.batch(el, f, Y.Dom, true);
}), setXY: (function (el, pos, noRetry) {
  _$jscoverage['build/dom/dom.js'][432]++;
  Y.Dom.batch(el, Y.Dom._setXY, {pos: pos, noRetry: noRetry});
}), _setXY: (function (node, args) {
  _$jscoverage['build/dom/dom.js'][436]++;
  var pos = Y.Dom._getStyle(node, POSITION), setStyle = Y.Dom.setStyle, xy = args.pos, noRetry = args.noRetry, delta = [parseInt(Y.Dom.getComputedStyle(node, LEFT), 10), parseInt(Y.Dom.getComputedStyle(node, TOP), 10)], currentXY, newXY;
  _$jscoverage['build/dom/dom.js'][449]++;
  if ((pos == "static")) {
    _$jscoverage['build/dom/dom.js'][450]++;
    pos = RELATIVE;
    _$jscoverage['build/dom/dom.js'][451]++;
    setStyle(node, POSITION, pos);
  }
  _$jscoverage['build/dom/dom.js'][454]++;
  currentXY = Y.Dom._getXY(node);
  _$jscoverage['build/dom/dom.js'][456]++;
  if (((! xy) || (currentXY === false))) {
    _$jscoverage['build/dom/dom.js'][457]++;
    return false;
  }
  _$jscoverage['build/dom/dom.js'][460]++;
  if (isNaN(delta[0])) {
    _$jscoverage['build/dom/dom.js'][461]++;
    delta[0] = ((pos == RELATIVE)? 0: node[OFFSET_LEFT]);
  }
  _$jscoverage['build/dom/dom.js'][463]++;
  if (isNaN(delta[1])) {
    _$jscoverage['build/dom/dom.js'][464]++;
    delta[1] = ((pos == RELATIVE)? 0: node[OFFSET_TOP]);
  }
  _$jscoverage['build/dom/dom.js'][467]++;
  if ((xy[0] !== null)) {
    _$jscoverage['build/dom/dom.js'][468]++;
    setStyle(node, LEFT, ((xy[0] - currentXY[0]) + delta[0] + "px"));
  }
  _$jscoverage['build/dom/dom.js'][471]++;
  if ((xy[1] !== null)) {
    _$jscoverage['build/dom/dom.js'][472]++;
    setStyle(node, TOP, ((xy[1] - currentXY[1]) + delta[1] + "px"));
  }
  _$jscoverage['build/dom/dom.js'][475]++;
  if ((! noRetry)) {
    _$jscoverage['build/dom/dom.js'][476]++;
    newXY = Y.Dom._getXY(node);
    _$jscoverage['build/dom/dom.js'][479]++;
    if ((((xy[0] !== null) && (newXY[0] != xy[0])) || ((xy[1] !== null) && (newXY[1] != xy[1])))) {
      _$jscoverage['build/dom/dom.js'][481]++;
      Y.Dom._setXY(node, {pos: xy, noRetry: true});
    }
  }
}), setX: (function (el, x) {
  _$jscoverage['build/dom/dom.js'][495]++;
  Y.Dom.setXY(el, [x, null]);
}), setY: (function (el, y) {
  _$jscoverage['build/dom/dom.js'][506]++;
  Y.Dom.setXY(el, [null, y]);
}), getRegion: (function (el) {
  _$jscoverage['build/dom/dom.js'][517]++;
  var f = (function (el) {
  _$jscoverage['build/dom/dom.js'][518]++;
  var region = false;
  _$jscoverage['build/dom/dom.js'][519]++;
  if (Y.Dom._canPosition(el)) {
    _$jscoverage['build/dom/dom.js'][520]++;
    region = Y.Region.getRegion(el);
  }
  else {
  }
  _$jscoverage['build/dom/dom.js'][524]++;
  return region;
});
  _$jscoverage['build/dom/dom.js'][527]++;
  return Y.Dom.batch(el, f, Y.Dom, true);
}), getClientWidth: (function () {
  _$jscoverage['build/dom/dom.js'][537]++;
  return Y.Dom.getViewportWidth();
}), getClientHeight: (function () {
  _$jscoverage['build/dom/dom.js'][547]++;
  return Y.Dom.getViewportHeight();
}), getElementsByClassName: (function (className, tag, root, apply, o, overrides) {
  _$jscoverage['build/dom/dom.js'][568]++;
  tag = (tag || "*");
  _$jscoverage['build/dom/dom.js'][569]++;
  root = (root? Y.Dom.get(root): (null || document));
  _$jscoverage['build/dom/dom.js'][570]++;
  if ((! root)) {
    _$jscoverage['build/dom/dom.js'][571]++;
    return [];
  }
  _$jscoverage['build/dom/dom.js'][574]++;
  var nodes = [], elements = root.getElementsByTagName(tag), hasClass = Y.Dom.hasClass;
  _$jscoverage['build/dom/dom.js'][578]++;
  for (var i = 0, len = elements.length; (i < len); (++i)) {
    _$jscoverage['build/dom/dom.js'][579]++;
    if (hasClass(elements[i], className)) {
      _$jscoverage['build/dom/dom.js'][580]++;
      nodes[nodes.length] = elements[i];
    }
}
  _$jscoverage['build/dom/dom.js'][584]++;
  if (apply) {
    _$jscoverage['build/dom/dom.js'][585]++;
    Y.Dom.batch(nodes, apply, o, overrides);
  }
  _$jscoverage['build/dom/dom.js'][588]++;
  return nodes;
}), hasClass: (function (el, className) {
  _$jscoverage['build/dom/dom.js'][599]++;
  return Y.Dom.batch(el, Y.Dom._hasClass, className);
}), _hasClass: (function (el, className) {
  _$jscoverage['build/dom/dom.js'][603]++;
  var ret = false, current;
  _$jscoverage['build/dom/dom.js'][606]++;
  if ((el && className)) {
    _$jscoverage['build/dom/dom.js'][607]++;
    current = (Y.Dom._getAttribute(el, CLASS_NAME) || EMPTY);
    _$jscoverage['build/dom/dom.js'][608]++;
    if (className.exec) {
      _$jscoverage['build/dom/dom.js'][609]++;
      ret = className.test(current);
    }
    else {
      _$jscoverage['build/dom/dom.js'][611]++;
      ret = (className && ((SPACE + current + SPACE).indexOf((SPACE + className + SPACE)) > -1));
    }
  }
  else {
  }
  _$jscoverage['build/dom/dom.js'][617]++;
  return ret;
}), addClass: (function (el, className) {
  _$jscoverage['build/dom/dom.js'][628]++;
  return Y.Dom.batch(el, Y.Dom._addClass, className);
}), _addClass: (function (el, className) {
  _$jscoverage['build/dom/dom.js'][632]++;
  var ret = false, current;
  _$jscoverage['build/dom/dom.js'][635]++;
  if ((el && className)) {
    _$jscoverage['build/dom/dom.js'][636]++;
    current = (Y.Dom._getAttribute(el, CLASS_NAME) || EMPTY);
    _$jscoverage['build/dom/dom.js'][637]++;
    if ((! Y.Dom._hasClass(el, className))) {
      _$jscoverage['build/dom/dom.js'][638]++;
      Y.Dom.setAttribute(el, CLASS_NAME, trim((current + SPACE + className)));
      _$jscoverage['build/dom/dom.js'][639]++;
      ret = true;
    }
  }
  else {
  }
  _$jscoverage['build/dom/dom.js'][644]++;
  return ret;
}), removeClass: (function (el, className) {
  _$jscoverage['build/dom/dom.js'][655]++;
  return Y.Dom.batch(el, Y.Dom._removeClass, className);
}), _removeClass: (function (el, className) {
  _$jscoverage['build/dom/dom.js'][659]++;
  var ret = false, current, newClass, attr;
  _$jscoverage['build/dom/dom.js'][664]++;
  if ((el && className)) {
    _$jscoverage['build/dom/dom.js'][665]++;
    current = (Y.Dom._getAttribute(el, CLASS_NAME) || EMPTY);
    _$jscoverage['build/dom/dom.js'][666]++;
    Y.Dom.setAttribute(el, CLASS_NAME, current.replace(Y.Dom._getClassRegex(className), EMPTY));
    _$jscoverage['build/dom/dom.js'][668]++;
    newClass = Y.Dom._getAttribute(el, CLASS_NAME);
    _$jscoverage['build/dom/dom.js'][669]++;
    if ((current !== newClass)) {
      _$jscoverage['build/dom/dom.js'][670]++;
      Y.Dom.setAttribute(el, CLASS_NAME, trim(newClass));
      _$jscoverage['build/dom/dom.js'][671]++;
      ret = true;
      _$jscoverage['build/dom/dom.js'][673]++;
      if ((Y.Dom._getAttribute(el, CLASS_NAME) === "")) {
        _$jscoverage['build/dom/dom.js'][674]++;
        attr = ((el.hasAttribute && el.hasAttribute(_CLASS))? _CLASS: CLASS_NAME);
        _$jscoverage['build/dom/dom.js'][675]++;
        el.removeAttribute(attr);
      }
    }
  }
  else {
  }
  _$jscoverage['build/dom/dom.js'][682]++;
  return ret;
}), replaceClass: (function (el, oldClassName, newClassName) {
  _$jscoverage['build/dom/dom.js'][695]++;
  return Y.Dom.batch(el, Y.Dom._replaceClass, {from: oldClassName, to: newClassName});
}), _replaceClass: (function (el, classObj) {
  _$jscoverage['build/dom/dom.js'][699]++;
  var className, from, to, ret = false, current;
  _$jscoverage['build/dom/dom.js'][705]++;
  if ((el && classObj)) {
    _$jscoverage['build/dom/dom.js'][706]++;
    from = classObj.from;
    _$jscoverage['build/dom/dom.js'][707]++;
    to = classObj.to;
    _$jscoverage['build/dom/dom.js'][709]++;
    if ((! to)) {
      _$jscoverage['build/dom/dom.js'][710]++;
      ret = false;
    }
    else {
      _$jscoverage['build/dom/dom.js'][711]++;
      if ((! from)) {
        _$jscoverage['build/dom/dom.js'][712]++;
        ret = Y.Dom._addClass(el, classObj.to);
      }
      else {
        _$jscoverage['build/dom/dom.js'][713]++;
        if ((from !== to)) {
          _$jscoverage['build/dom/dom.js'][715]++;
          current = (Y.Dom._getAttribute(el, CLASS_NAME) || EMPTY);
          _$jscoverage['build/dom/dom.js'][716]++;
          className = (SPACE + current.replace(Y.Dom._getClassRegex(from), (SPACE + to))).split(Y.Dom._getClassRegex(to));
          _$jscoverage['build/dom/dom.js'][720]++;
          className.splice(1, 0, (SPACE + to));
          _$jscoverage['build/dom/dom.js'][721]++;
          Y.Dom.setAttribute(el, CLASS_NAME, trim(className.join(EMPTY)));
          _$jscoverage['build/dom/dom.js'][722]++;
          ret = true;
        }
      }
    }
  }
  else {
  }
  _$jscoverage['build/dom/dom.js'][727]++;
  return ret;
}), generateId: (function (el, prefix) {
  _$jscoverage['build/dom/dom.js'][738]++;
  prefix = (prefix || "yui-gen");
  _$jscoverage['build/dom/dom.js'][740]++;
  var f = (function (el) {
  _$jscoverage['build/dom/dom.js'][741]++;
  if ((el && el.id)) {
    _$jscoverage['build/dom/dom.js'][742]++;
    return el.id;
  }
  _$jscoverage['build/dom/dom.js'][745]++;
  var id = (prefix + (YAHOO.env._id_counter++));
  _$jscoverage['build/dom/dom.js'][747]++;
  if (el) {
    _$jscoverage['build/dom/dom.js'][748]++;
    if ((el[OWNER_DOCUMENT] && el[OWNER_DOCUMENT].getElementById(id))) {
      _$jscoverage['build/dom/dom.js'][750]++;
      return Y.Dom.generateId(el, (id + prefix));
    }
    _$jscoverage['build/dom/dom.js'][752]++;
    el.id = id;
  }
  _$jscoverage['build/dom/dom.js'][755]++;
  return id;
});
  _$jscoverage['build/dom/dom.js'][759]++;
  return (Y.Dom.batch(el, f, Y.Dom, true) || f.apply(Y.Dom, arguments));
}), isAncestor: (function (haystack, needle) {
  _$jscoverage['build/dom/dom.js'][770]++;
  haystack = Y.Dom.get(haystack);
  _$jscoverage['build/dom/dom.js'][771]++;
  needle = Y.Dom.get(needle);
  _$jscoverage['build/dom/dom.js'][773]++;
  var ret = false;
  _$jscoverage['build/dom/dom.js'][775]++;
  if ((haystack && needle && (haystack[NODE_TYPE] && needle[NODE_TYPE]))) {
    _$jscoverage['build/dom/dom.js'][776]++;
    if ((haystack.contains && (haystack !== needle))) {
      _$jscoverage['build/dom/dom.js'][777]++;
      ret = haystack.contains(needle);
    }
    else {
      _$jscoverage['build/dom/dom.js'][779]++;
      if (haystack.compareDocumentPosition) {
        _$jscoverage['build/dom/dom.js'][780]++;
        ret = (! (! (haystack.compareDocumentPosition(needle) & 16)));
      }
    }
  }
  else {
  }
  _$jscoverage['build/dom/dom.js'][784]++;
  return ret;
}), inDocument: (function (el, doc) {
  _$jscoverage['build/dom/dom.js'][795]++;
  return Y.Dom._inDoc(Y.Dom.get(el), doc);
}), _inDoc: (function (el, doc) {
  _$jscoverage['build/dom/dom.js'][799]++;
  var ret = false;
  _$jscoverage['build/dom/dom.js'][800]++;
  if ((el && el[TAG_NAME])) {
    _$jscoverage['build/dom/dom.js'][801]++;
    doc = (doc || el[OWNER_DOCUMENT]);
    _$jscoverage['build/dom/dom.js'][802]++;
    ret = Y.Dom.isAncestor(doc[DOCUMENT_ELEMENT], el);
  }
  else {
  }
  _$jscoverage['build/dom/dom.js'][805]++;
  return ret;
}), getElementsBy: (function (method, tag, root, apply, o, overrides, firstOnly) {
  _$jscoverage['build/dom/dom.js'][825]++;
  tag = (tag || "*");
  _$jscoverage['build/dom/dom.js'][826]++;
  root = (root? Y.Dom.get(root): (null || document));
  _$jscoverage['build/dom/dom.js'][828]++;
  if ((! root)) {
    _$jscoverage['build/dom/dom.js'][829]++;
    return [];
  }
  _$jscoverage['build/dom/dom.js'][832]++;
  var nodes = [], elements = root.getElementsByTagName(tag);
  _$jscoverage['build/dom/dom.js'][835]++;
  for (var i = 0, len = elements.length; (i < len); (++i)) {
    _$jscoverage['build/dom/dom.js'][836]++;
    if (method(elements[i])) {
      _$jscoverage['build/dom/dom.js'][837]++;
      if (firstOnly) {
        _$jscoverage['build/dom/dom.js'][838]++;
        nodes = elements[i];
        _$jscoverage['build/dom/dom.js'][839]++;
        break;
      }
      else {
        _$jscoverage['build/dom/dom.js'][841]++;
        nodes[nodes.length] = elements[i];
      }
    }
}
  _$jscoverage['build/dom/dom.js'][846]++;
  if (apply) {
    _$jscoverage['build/dom/dom.js'][847]++;
    Y.Dom.batch(nodes, apply, o, overrides);
  }
  _$jscoverage['build/dom/dom.js'][851]++;
  return nodes;
}), getElementBy: (function (method, tag, root) {
  _$jscoverage['build/dom/dom.js'][863]++;
  return Y.Dom.getElementsBy(method, tag, root, null, null, null, true);
}), batch: (function (el, method, o, overrides) {
  _$jscoverage['build/dom/dom.js'][877]++;
  var collection = [], scope = (overrides? o: window);
  _$jscoverage['build/dom/dom.js'][880]++;
  el = ((el && (el[TAG_NAME] || el.item))? el: Y.Dom.get(el));
  _$jscoverage['build/dom/dom.js'][881]++;
  if ((el && method)) {
    _$jscoverage['build/dom/dom.js'][882]++;
    if ((el[TAG_NAME] || (el.length === undefined))) {
      _$jscoverage['build/dom/dom.js'][883]++;
      return method.call(scope, el, o);
    }
    _$jscoverage['build/dom/dom.js'][886]++;
    for (var i = 0; (i < el.length); (++i)) {
      _$jscoverage['build/dom/dom.js'][887]++;
      collection[collection.length] = method.call(scope, el[i], o);
}
  }
  else {
    _$jscoverage['build/dom/dom.js'][890]++;
    return false;
  }
  _$jscoverage['build/dom/dom.js'][892]++;
  return collection;
}), getDocumentHeight: (function () {
  _$jscoverage['build/dom/dom.js'][901]++;
  var scrollHeight = (((document[COMPAT_MODE] != CSS1_COMPAT) || isSafari)? document.body.scrollHeight: documentElement.scrollHeight), h = Math.max(scrollHeight, Y.Dom.getViewportHeight());
  _$jscoverage['build/dom/dom.js'][904]++;
  return h;
}), getDocumentWidth: (function () {
  _$jscoverage['build/dom/dom.js'][913]++;
  var scrollWidth = (((document[COMPAT_MODE] != CSS1_COMPAT) || isSafari)? document.body.scrollWidth: documentElement.scrollWidth), w = Math.max(scrollWidth, Y.Dom.getViewportWidth());
  _$jscoverage['build/dom/dom.js'][915]++;
  return w;
}), getViewportHeight: (function () {
  _$jscoverage['build/dom/dom.js'][924]++;
  var height = self.innerHeight, mode = document[COMPAT_MODE];
  _$jscoverage['build/dom/dom.js'][927]++;
  if (((mode || isIE) && (! isOpera))) {
    _$jscoverage['build/dom/dom.js'][928]++;
    height = ((mode == CSS1_COMPAT)? documentElement.clientHeight: document.body.clientHeight);
  }
  _$jscoverage['build/dom/dom.js'][933]++;
  return height;
}), getViewportWidth: (function () {
  _$jscoverage['build/dom/dom.js'][943]++;
  var width = self.innerWidth, mode = document[COMPAT_MODE];
  _$jscoverage['build/dom/dom.js'][946]++;
  if ((mode || isIE)) {
    _$jscoverage['build/dom/dom.js'][947]++;
    width = ((mode == CSS1_COMPAT)? documentElement.clientWidth: document.body.clientWidth);
  }
  _$jscoverage['build/dom/dom.js'][951]++;
  return width;
}), getAncestorBy: (function (node, method) {
  _$jscoverage['build/dom/dom.js'][963]++;
  while ((node = node[PARENT_NODE])) {
    _$jscoverage['build/dom/dom.js'][964]++;
    if (Y.Dom._testElement(node, method)) {
      _$jscoverage['build/dom/dom.js'][965]++;
      return node;
    }
}
  _$jscoverage['build/dom/dom.js'][969]++;
  return null;
}), getAncestorByClassName: (function (node, className) {
  _$jscoverage['build/dom/dom.js'][980]++;
  node = Y.Dom.get(node);
  _$jscoverage['build/dom/dom.js'][981]++;
  if ((! node)) {
    _$jscoverage['build/dom/dom.js'][982]++;
    return null;
  }
  _$jscoverage['build/dom/dom.js'][984]++;
  var method = (function (el) {
  _$jscoverage['build/dom/dom.js'][984]++;
  return Y.Dom.hasClass(el, className);
});
  _$jscoverage['build/dom/dom.js'][985]++;
  return Y.Dom.getAncestorBy(node, method);
}), getAncestorByTagName: (function (node, tagName) {
  _$jscoverage['build/dom/dom.js'][996]++;
  node = Y.Dom.get(node);
  _$jscoverage['build/dom/dom.js'][997]++;
  if ((! node)) {
    _$jscoverage['build/dom/dom.js'][998]++;
    return null;
  }
  _$jscoverage['build/dom/dom.js'][1000]++;
  var method = (function (el) {
  _$jscoverage['build/dom/dom.js'][1001]++;
  return (el[TAG_NAME] && (el[TAG_NAME].toUpperCase() == tagName.toUpperCase()));
});
  _$jscoverage['build/dom/dom.js'][1004]++;
  return Y.Dom.getAncestorBy(node, method);
}), getPreviousSiblingBy: (function (node, method) {
  _$jscoverage['build/dom/dom.js'][1018]++;
  while (node) {
    _$jscoverage['build/dom/dom.js'][1019]++;
    node = node.previousSibling;
    _$jscoverage['build/dom/dom.js'][1020]++;
    if (Y.Dom._testElement(node, method)) {
      _$jscoverage['build/dom/dom.js'][1021]++;
      return node;
    }
}
  _$jscoverage['build/dom/dom.js'][1024]++;
  return null;
}), getPreviousSibling: (function (node) {
  _$jscoverage['build/dom/dom.js'][1034]++;
  node = Y.Dom.get(node);
  _$jscoverage['build/dom/dom.js'][1035]++;
  if ((! node)) {
    _$jscoverage['build/dom/dom.js'][1036]++;
    return null;
  }
  _$jscoverage['build/dom/dom.js'][1039]++;
  return Y.Dom.getPreviousSiblingBy(node);
}), getNextSiblingBy: (function (node, method) {
  _$jscoverage['build/dom/dom.js'][1053]++;
  while (node) {
    _$jscoverage['build/dom/dom.js'][1054]++;
    node = node.nextSibling;
    _$jscoverage['build/dom/dom.js'][1055]++;
    if (Y.Dom._testElement(node, method)) {
      _$jscoverage['build/dom/dom.js'][1056]++;
      return node;
    }
}
  _$jscoverage['build/dom/dom.js'][1059]++;
  return null;
}), getNextSibling: (function (node) {
  _$jscoverage['build/dom/dom.js'][1069]++;
  node = Y.Dom.get(node);
  _$jscoverage['build/dom/dom.js'][1070]++;
  if ((! node)) {
    _$jscoverage['build/dom/dom.js'][1071]++;
    return null;
  }
  _$jscoverage['build/dom/dom.js'][1074]++;
  return Y.Dom.getNextSiblingBy(node);
}), getFirstChildBy: (function (node, method) {
  _$jscoverage['build/dom/dom.js'][1086]++;
  var child = (Y.Dom._testElement(node.firstChild, method)? node.firstChild: null);
  _$jscoverage['build/dom/dom.js'][1087]++;
  return (child || Y.Dom.getNextSiblingBy(node.firstChild, method));
}), getFirstChild: (function (node, method) {
  _$jscoverage['build/dom/dom.js'][1097]++;
  node = Y.Dom.get(node);
  _$jscoverage['build/dom/dom.js'][1098]++;
  if ((! node)) {
    _$jscoverage['build/dom/dom.js'][1099]++;
    return null;
  }
  _$jscoverage['build/dom/dom.js'][1101]++;
  return Y.Dom.getFirstChildBy(node);
}), getLastChildBy: (function (node, method) {
  _$jscoverage['build/dom/dom.js'][1113]++;
  if ((! node)) {
    _$jscoverage['build/dom/dom.js'][1114]++;
    return null;
  }
  _$jscoverage['build/dom/dom.js'][1116]++;
  var child = (Y.Dom._testElement(node.lastChild, method)? node.lastChild: null);
  _$jscoverage['build/dom/dom.js'][1117]++;
  return (child || Y.Dom.getPreviousSiblingBy(node.lastChild, method));
}), getLastChild: (function (node) {
  _$jscoverage['build/dom/dom.js'][1127]++;
  node = Y.Dom.get(node);
  _$jscoverage['build/dom/dom.js'][1128]++;
  return Y.Dom.getLastChildBy(node);
}), getChildrenBy: (function (node, method) {
  _$jscoverage['build/dom/dom.js'][1140]++;
  var child = Y.Dom.getFirstChildBy(node, method), children = (child? [child]: []);
  _$jscoverage['build/dom/dom.js'][1143]++;
  Y.Dom.getNextSiblingBy(child, (function (node) {
  _$jscoverage['build/dom/dom.js'][1144]++;
  if (((! method) || method(node))) {
    _$jscoverage['build/dom/dom.js'][1145]++;
    children[children.length] = node;
  }
  _$jscoverage['build/dom/dom.js'][1147]++;
  return false;
}));
  _$jscoverage['build/dom/dom.js'][1150]++;
  return children;
}), getChildren: (function (node) {
  _$jscoverage['build/dom/dom.js'][1160]++;
  node = Y.Dom.get(node);
  _$jscoverage['build/dom/dom.js'][1161]++;
  if ((! node)) {
  }
  _$jscoverage['build/dom/dom.js'][1164]++;
  return Y.Dom.getChildrenBy(node);
}), getDocumentScrollLeft: (function (doc) {
  _$jscoverage['build/dom/dom.js'][1174]++;
  doc = (doc || document);
  _$jscoverage['build/dom/dom.js'][1175]++;
  return Math.max(doc[DOCUMENT_ELEMENT].scrollLeft, doc.body.scrollLeft);
}), getDocumentScrollTop: (function (doc) {
  _$jscoverage['build/dom/dom.js'][1185]++;
  doc = (doc || document);
  _$jscoverage['build/dom/dom.js'][1186]++;
  return Math.max(doc[DOCUMENT_ELEMENT].scrollTop, doc.body.scrollTop);
}), insertBefore: (function (newNode, referenceNode) {
  _$jscoverage['build/dom/dom.js'][1197]++;
  newNode = Y.Dom.get(newNode);
  _$jscoverage['build/dom/dom.js'][1198]++;
  referenceNode = Y.Dom.get(referenceNode);
  _$jscoverage['build/dom/dom.js'][1200]++;
  if (((! newNode) || (! referenceNode) || (! referenceNode[PARENT_NODE]))) {
    _$jscoverage['build/dom/dom.js'][1201]++;
    return null;
  }
  _$jscoverage['build/dom/dom.js'][1204]++;
  return referenceNode[PARENT_NODE].insertBefore(newNode, referenceNode);
}), insertAfter: (function (newNode, referenceNode) {
  _$jscoverage['build/dom/dom.js'][1215]++;
  newNode = Y.Dom.get(newNode);
  _$jscoverage['build/dom/dom.js'][1216]++;
  referenceNode = Y.Dom.get(referenceNode);
  _$jscoverage['build/dom/dom.js'][1218]++;
  if (((! newNode) || (! referenceNode) || (! referenceNode[PARENT_NODE]))) {
    _$jscoverage['build/dom/dom.js'][1219]++;
    return null;
  }
  _$jscoverage['build/dom/dom.js'][1222]++;
  if (referenceNode.nextSibling) {
    _$jscoverage['build/dom/dom.js'][1223]++;
    return referenceNode[PARENT_NODE].insertBefore(newNode, referenceNode.nextSibling);
  }
  else {
    _$jscoverage['build/dom/dom.js'][1225]++;
    return referenceNode[PARENT_NODE].appendChild(newNode);
  }
}), getClientRegion: (function () {
  _$jscoverage['build/dom/dom.js'][1235]++;
  var t = Y.Dom.getDocumentScrollTop(), l = Y.Dom.getDocumentScrollLeft(), r = (Y.Dom.getViewportWidth() + l), b = (Y.Dom.getViewportHeight() + t);
  _$jscoverage['build/dom/dom.js'][1240]++;
  return new (Y.Region)(t, r, b, l);
}), setAttribute: (function (el, attr, val) {
  _$jscoverage['build/dom/dom.js'][1251]++;
  Y.Dom.batch(el, Y.Dom._setAttribute, {attr: attr, val: val});
}), _setAttribute: (function (el, args) {
  _$jscoverage['build/dom/dom.js'][1255]++;
  var attr = Y.Dom._toCamel(args.attr), val = args.val;
  _$jscoverage['build/dom/dom.js'][1258]++;
  if ((el && el.setAttribute)) {
    _$jscoverage['build/dom/dom.js'][1259]++;
    if (Y.Dom.DOT_ATTRIBUTES[attr]) {
      _$jscoverage['build/dom/dom.js'][1260]++;
      el[attr] = val;
    }
    else {
      _$jscoverage['build/dom/dom.js'][1262]++;
      attr = (Y.Dom.CUSTOM_ATTRIBUTES[attr] || attr);
      _$jscoverage['build/dom/dom.js'][1263]++;
      el.setAttribute(attr, val);
    }
  }
  else {
  }
}), getAttribute: (function (el, attr) {
  _$jscoverage['build/dom/dom.js'][1277]++;
  return Y.Dom.batch(el, Y.Dom._getAttribute, attr);
}), _getAttribute: (function (el, attr) {
  _$jscoverage['build/dom/dom.js'][1282]++;
  var val;
  _$jscoverage['build/dom/dom.js'][1283]++;
  attr = (Y.Dom.CUSTOM_ATTRIBUTES[attr] || attr);
  _$jscoverage['build/dom/dom.js'][1285]++;
  if ((el && el.getAttribute)) {
    _$jscoverage['build/dom/dom.js'][1286]++;
    val = el.getAttribute(attr, 2);
  }
  else {
  }
  _$jscoverage['build/dom/dom.js'][1290]++;
  return val;
}), _toCamel: (function (property) {
  _$jscoverage['build/dom/dom.js'][1294]++;
  var c = propertyCache;
  _$jscoverage['build/dom/dom.js'][1296]++;
  function tU(x, l) {
    _$jscoverage['build/dom/dom.js'][1297]++;
    return l.toUpperCase();
}
  _$jscoverage['build/dom/dom.js'][1300]++;
  return (c[property] || (c[property] = ((property.indexOf("-") === -1)? property: property.replace(/-([a-z])/gi, tU))));
}), _getClassRegex: (function (className) {
  _$jscoverage['build/dom/dom.js'][1306]++;
  var re;
  _$jscoverage['build/dom/dom.js'][1307]++;
  if ((className !== undefined)) {
    _$jscoverage['build/dom/dom.js'][1308]++;
    if (className.exec) {
      _$jscoverage['build/dom/dom.js'][1309]++;
      re = className;
    }
    else {
      _$jscoverage['build/dom/dom.js'][1311]++;
      re = reCache[className];
      _$jscoverage['build/dom/dom.js'][1312]++;
      if ((! re)) {
        _$jscoverage['build/dom/dom.js'][1314]++;
        className = className.replace(Y.Dom._patterns.CLASS_RE_TOKENS, "\\$1");
        _$jscoverage['build/dom/dom.js'][1315]++;
        re = (reCache[className] = new RegExp((C_START + className + C_END), G));
      }
    }
  }
  _$jscoverage['build/dom/dom.js'][1319]++;
  return re;
}), _patterns: {ROOT_TAG: /^body|html$/i, CLASS_RE_TOKENS: /([\.\(\)\^\$\*\+\?\|\[\]\{\}\\])/g}, _testElement: (function (node, method) {
  _$jscoverage['build/dom/dom.js'][1329]++;
  return (node && (node[NODE_TYPE] == 1) && ((! method) || method(node)));
}), _calcBorders: (function (node, xy2) {
  _$jscoverage['build/dom/dom.js'][1333]++;
  var t = (parseInt((Y.Dom[GET_COMPUTED_STYLE])(node, BORDER_TOP_WIDTH), 10) || 0), l = (parseInt((Y.Dom[GET_COMPUTED_STYLE])(node, BORDER_LEFT_WIDTH), 10) || 0);
  _$jscoverage['build/dom/dom.js'][1335]++;
  if (isGecko) {
    _$jscoverage['build/dom/dom.js'][1336]++;
    if (RE_TABLE.test(node[TAG_NAME])) {
      _$jscoverage['build/dom/dom.js'][1337]++;
      t = 0;
      _$jscoverage['build/dom/dom.js'][1338]++;
      l = 0;
    }
  }
  _$jscoverage['build/dom/dom.js'][1341]++;
  xy2[0] += l;
  _$jscoverage['build/dom/dom.js'][1342]++;
  xy2[1] += t;
  _$jscoverage['build/dom/dom.js'][1343]++;
  return xy2;
})};
  _$jscoverage['build/dom/dom.js'][1347]++;
  var _getComputedStyle = Y.Dom[GET_COMPUTED_STYLE];
  _$jscoverage['build/dom/dom.js'][1349]++;
  if (UA.opera) {
    _$jscoverage['build/dom/dom.js'][1350]++;
    Y.Dom[GET_COMPUTED_STYLE] = (function (node, att) {
  _$jscoverage['build/dom/dom.js'][1351]++;
  var val = _getComputedStyle(node, att);
  _$jscoverage['build/dom/dom.js'][1352]++;
  if (RE_COLOR.test(att)) {
    _$jscoverage['build/dom/dom.js'][1353]++;
    val = Y.Dom.Color.toRGB(val);
  }
  _$jscoverage['build/dom/dom.js'][1356]++;
  return val;
});
  }
  _$jscoverage['build/dom/dom.js'][1362]++;
  if (UA.webkit) {
    _$jscoverage['build/dom/dom.js'][1363]++;
    Y.Dom[GET_COMPUTED_STYLE] = (function (node, att) {
  _$jscoverage['build/dom/dom.js'][1364]++;
  var val = _getComputedStyle(node, att);
  _$jscoverage['build/dom/dom.js'][1366]++;
  if ((val === "rgba(0, 0, 0, 0)")) {
    _$jscoverage['build/dom/dom.js'][1367]++;
    val = "transparent";
  }
  _$jscoverage['build/dom/dom.js'][1370]++;
  return val;
});
  }
  _$jscoverage['build/dom/dom.js'][1375]++;
  if ((UA.ie && (UA.ie >= 8) && document.documentElement.hasAttribute)) {
    _$jscoverage['build/dom/dom.js'][1376]++;
    Y.Dom.DOT_ATTRIBUTES.type = true;
  }
})();
_$jscoverage['build/dom/dom.js'][1391]++;
YAHOO.util.Region = (function (t, r, b, l) {
  _$jscoverage['build/dom/dom.js'][1398]++;
  this.top = t;
  _$jscoverage['build/dom/dom.js'][1405]++;
  this.y = t;
  _$jscoverage['build/dom/dom.js'][1412]++;
  this[1] = t;
  _$jscoverage['build/dom/dom.js'][1419]++;
  this.right = r;
  _$jscoverage['build/dom/dom.js'][1426]++;
  this.bottom = b;
  _$jscoverage['build/dom/dom.js'][1433]++;
  this.left = l;
  _$jscoverage['build/dom/dom.js'][1440]++;
  this.x = l;
  _$jscoverage['build/dom/dom.js'][1447]++;
  this[0] = l;
  _$jscoverage['build/dom/dom.js'][1454]++;
  this.width = (this.right - this.left);
  _$jscoverage['build/dom/dom.js'][1461]++;
  this.height = (this.bottom - this.top);
});
_$jscoverage['build/dom/dom.js'][1471]++;
YAHOO.util.Region.prototype.contains = (function (region) {
  _$jscoverage['build/dom/dom.js'][1472]++;
  return ((region.left >= this.left) && (region.right <= this.right) && (region.top >= this.top) && (region.bottom <= this.bottom));
});
_$jscoverage['build/dom/dom.js'][1484]++;
YAHOO.util.Region.prototype.getArea = (function () {
  _$jscoverage['build/dom/dom.js'][1485]++;
  return ((this.bottom - this.top) * (this.right - this.left));
});
_$jscoverage['build/dom/dom.js'][1494]++;
YAHOO.util.Region.prototype.intersect = (function (region) {
  _$jscoverage['build/dom/dom.js'][1495]++;
  var t = Math.max(this.top, region.top), r = Math.min(this.right, region.right), b = Math.min(this.bottom, region.bottom), l = Math.max(this.left, region.left);
  _$jscoverage['build/dom/dom.js'][1500]++;
  if (((b >= t) && (r >= l))) {
    _$jscoverage['build/dom/dom.js'][1501]++;
    return new (YAHOO.util.Region)(t, r, b, l);
  }
  else {
    _$jscoverage['build/dom/dom.js'][1503]++;
    return null;
  }
});
_$jscoverage['build/dom/dom.js'][1514]++;
YAHOO.util.Region.prototype.union = (function (region) {
  _$jscoverage['build/dom/dom.js'][1515]++;
  var t = Math.min(this.top, region.top), r = Math.max(this.right, region.right), b = Math.max(this.bottom, region.bottom), l = Math.min(this.left, region.left);
  _$jscoverage['build/dom/dom.js'][1520]++;
  return new (YAHOO.util.Region)(t, r, b, l);
});
_$jscoverage['build/dom/dom.js'][1528]++;
YAHOO.util.Region.prototype.toString = (function () {
  _$jscoverage['build/dom/dom.js'][1529]++;
  return ("Region {" + "top: " + this.top + ", right: " + this.right + ", bottom: " + this.bottom + ", left: " + this.left + ", height: " + this.height + ", width: " + this.width + "}");
});
_$jscoverage['build/dom/dom.js'][1546]++;
YAHOO.util.Region.getRegion = (function (el) {
  _$jscoverage['build/dom/dom.js'][1547]++;
  var p = YAHOO.util.Dom.getXY(el), t = p[1], r = (p[0] + el.offsetWidth), b = (p[1] + el.offsetHeight), l = p[0];
  _$jscoverage['build/dom/dom.js'][1553]++;
  return new (YAHOO.util.Region)(t, r, b, l);
});
_$jscoverage['build/dom/dom.js'][1569]++;
YAHOO.util.Point = (function (x, y) {
  _$jscoverage['build/dom/dom.js'][1570]++;
  if (YAHOO.lang.isArray(x)) {
    _$jscoverage['build/dom/dom.js'][1571]++;
    y = x[1];
    _$jscoverage['build/dom/dom.js'][1572]++;
    x = x[0];
  }
  _$jscoverage['build/dom/dom.js'][1575]++;
  YAHOO.util.Point.superclass.constructor.call(this, y, x, y, x);
});
_$jscoverage['build/dom/dom.js'][1578]++;
YAHOO.extend(YAHOO.util.Point, YAHOO.util.Region);
_$jscoverage['build/dom/dom.js'][1580]++;
(function () {
  _$jscoverage['build/dom/dom.js'][1587]++;
  var Y = YAHOO.util, CLIENT_TOP = "clientTop", CLIENT_LEFT = "clientLeft", PARENT_NODE = "parentNode", RIGHT = "right", HAS_LAYOUT = "hasLayout", PX = "px", OPACITY = "opacity", AUTO = "auto", BORDER_LEFT_WIDTH = "borderLeftWidth", BORDER_TOP_WIDTH = "borderTopWidth", BORDER_RIGHT_WIDTH = "borderRightWidth", BORDER_BOTTOM_WIDTH = "borderBottomWidth", VISIBLE = "visible", TRANSPARENT = "transparent", HEIGHT = "height", WIDTH = "width", STYLE = "style", CURRENT_STYLE = "currentStyle", re_size = /^width|height$/, re_unit = /^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i, ComputedStyle = {get: (function (el, property) {
  _$jscoverage['build/dom/dom.js'][1614]++;
  var value = "", current = el[CURRENT_STYLE][property];
  _$jscoverage['build/dom/dom.js'][1617]++;
  if ((property === OPACITY)) {
    _$jscoverage['build/dom/dom.js'][1618]++;
    value = Y.Dom.getStyle(el, OPACITY);
  }
  else {
    _$jscoverage['build/dom/dom.js'][1619]++;
    if (((! current) || (current.indexOf && (current.indexOf(PX) > -1)))) {
      _$jscoverage['build/dom/dom.js'][1620]++;
      value = current;
    }
    else {
      _$jscoverage['build/dom/dom.js'][1621]++;
      if (Y.Dom.IE_COMPUTED[property]) {
        _$jscoverage['build/dom/dom.js'][1622]++;
        value = (Y.Dom.IE_COMPUTED[property])(el, property);
      }
      else {
        _$jscoverage['build/dom/dom.js'][1623]++;
        if (re_unit.test(current)) {
          _$jscoverage['build/dom/dom.js'][1624]++;
          value = Y.Dom.IE.ComputedStyle.getPixel(el, property);
        }
        else {
          _$jscoverage['build/dom/dom.js'][1626]++;
          value = current;
        }
      }
    }
  }
  _$jscoverage['build/dom/dom.js'][1629]++;
  return value;
}), getOffset: (function (el, prop) {
  _$jscoverage['build/dom/dom.js'][1633]++;
  var current = el[CURRENT_STYLE][prop], capped = (prop.charAt(0).toUpperCase() + prop.substr(1)), offset = ("offset" + capped), pixel = ("pixel" + capped), value = "", actual;
  _$jscoverage['build/dom/dom.js'][1640]++;
  if ((current == AUTO)) {
    _$jscoverage['build/dom/dom.js'][1641]++;
    actual = el[offset];
    _$jscoverage['build/dom/dom.js'][1642]++;
    if ((actual === undefined)) {
      _$jscoverage['build/dom/dom.js'][1643]++;
      value = 0;
    }
    _$jscoverage['build/dom/dom.js'][1646]++;
    value = actual;
    _$jscoverage['build/dom/dom.js'][1647]++;
    if (re_size.test(prop)) {
      _$jscoverage['build/dom/dom.js'][1648]++;
      el[STYLE][prop] = actual;
      _$jscoverage['build/dom/dom.js'][1649]++;
      if ((el[offset] > actual)) {
        _$jscoverage['build/dom/dom.js'][1651]++;
        value = (actual - (el[offset] - actual));
      }
      _$jscoverage['build/dom/dom.js'][1653]++;
      el[STYLE][prop] = AUTO;
    }
  }
  else {
    _$jscoverage['build/dom/dom.js'][1656]++;
    if (((! el[STYLE][pixel]) && (! el[STYLE][prop]))) {
      _$jscoverage['build/dom/dom.js'][1657]++;
      el[STYLE][prop] = current;
    }
    _$jscoverage['build/dom/dom.js'][1659]++;
    value = el[STYLE][pixel];
  }
  _$jscoverage['build/dom/dom.js'][1661]++;
  return (value + PX);
}), getBorderWidth: (function (el, property) {
  _$jscoverage['build/dom/dom.js'][1667]++;
  var value = null;
  _$jscoverage['build/dom/dom.js'][1668]++;
  if ((! el[CURRENT_STYLE][HAS_LAYOUT])) {
    _$jscoverage['build/dom/dom.js'][1669]++;
    el[STYLE].zoom = 1;
  }
  _$jscoverage['build/dom/dom.js'][1672]++;
  switch (property) {
  case BORDER_TOP_WIDTH:
    _$jscoverage['build/dom/dom.js'][1674]++;
    value = el[CLIENT_TOP];
    _$jscoverage['build/dom/dom.js'][1675]++;
    break;
  case BORDER_BOTTOM_WIDTH:
    _$jscoverage['build/dom/dom.js'][1677]++;
    value = (el.offsetHeight - el.clientHeight - el[CLIENT_TOP]);
    _$jscoverage['build/dom/dom.js'][1678]++;
    break;
  case BORDER_LEFT_WIDTH:
    _$jscoverage['build/dom/dom.js'][1680]++;
    value = el[CLIENT_LEFT];
    _$jscoverage['build/dom/dom.js'][1681]++;
    break;
  case BORDER_RIGHT_WIDTH:
    _$jscoverage['build/dom/dom.js'][1683]++;
    value = (el.offsetWidth - el.clientWidth - el[CLIENT_LEFT]);
    _$jscoverage['build/dom/dom.js'][1684]++;
    break;
  }
  _$jscoverage['build/dom/dom.js'][1686]++;
  return (value + PX);
}), getPixel: (function (node, att) {
  _$jscoverage['build/dom/dom.js'][1691]++;
  var val = null, styleRight = node[CURRENT_STYLE][RIGHT], current = node[CURRENT_STYLE][att];
  _$jscoverage['build/dom/dom.js'][1695]++;
  node[STYLE][RIGHT] = current;
  _$jscoverage['build/dom/dom.js'][1696]++;
  val = node[STYLE].pixelRight;
  _$jscoverage['build/dom/dom.js'][1697]++;
  node[STYLE][RIGHT] = styleRight;
  _$jscoverage['build/dom/dom.js'][1699]++;
  return (val + PX);
}), getMargin: (function (node, att) {
  _$jscoverage['build/dom/dom.js'][1703]++;
  var val;
  _$jscoverage['build/dom/dom.js'][1704]++;
  if ((node[CURRENT_STYLE][att] == AUTO)) {
    _$jscoverage['build/dom/dom.js'][1705]++;
    val = (0 + PX);
  }
  else {
    _$jscoverage['build/dom/dom.js'][1707]++;
    val = Y.Dom.IE.ComputedStyle.getPixel(node, att);
  }
  _$jscoverage['build/dom/dom.js'][1709]++;
  return val;
}), getVisibility: (function (node, att) {
  _$jscoverage['build/dom/dom.js'][1713]++;
  var current;
  _$jscoverage['build/dom/dom.js'][1714]++;
  while (((current = node[CURRENT_STYLE]) && (current[att] == "inherit"))) {
    _$jscoverage['build/dom/dom.js'][1715]++;
    node = node[PARENT_NODE];
}
  _$jscoverage['build/dom/dom.js'][1717]++;
  return (current? current[att]: VISIBLE);
}), getColor: (function (node, att) {
  _$jscoverage['build/dom/dom.js'][1721]++;
  return (Y.Dom.Color.toRGB(node[CURRENT_STYLE][att]) || TRANSPARENT);
}), getBorderColor: (function (node, att) {
  _$jscoverage['build/dom/dom.js'][1725]++;
  var current = node[CURRENT_STYLE], val = (current[att] || current.color);
  _$jscoverage['build/dom/dom.js'][1727]++;
  return Y.Dom.Color.toRGB(Y.Dom.Color.toHex(val));
})}, IEComputed = {};
  _$jscoverage['build/dom/dom.js'][1735]++;
  IEComputed.top = (IEComputed.right = (IEComputed.bottom = (IEComputed.left = (IEComputed[WIDTH] = (IEComputed[HEIGHT] = ComputedStyle.getOffset)))));
  _$jscoverage['build/dom/dom.js'][1738]++;
  IEComputed.color = ComputedStyle.getColor;
  _$jscoverage['build/dom/dom.js'][1740]++;
  IEComputed[BORDER_TOP_WIDTH] = (IEComputed[BORDER_RIGHT_WIDTH] = (IEComputed[BORDER_BOTTOM_WIDTH] = (IEComputed[BORDER_LEFT_WIDTH] = ComputedStyle.getBorderWidth)));
  _$jscoverage['build/dom/dom.js'][1744]++;
  IEComputed.marginTop = (IEComputed.marginRight = (IEComputed.marginBottom = (IEComputed.marginLeft = ComputedStyle.getMargin)));
  _$jscoverage['build/dom/dom.js'][1747]++;
  IEComputed.visibility = ComputedStyle.getVisibility;
  _$jscoverage['build/dom/dom.js'][1748]++;
  IEComputed.borderColor = (IEComputed.borderTopColor = (IEComputed.borderRightColor = (IEComputed.borderBottomColor = (IEComputed.borderLeftColor = ComputedStyle.getBorderColor))));
  _$jscoverage['build/dom/dom.js'][1752]++;
  Y.Dom.IE_COMPUTED = IEComputed;
  _$jscoverage['build/dom/dom.js'][1753]++;
  Y.Dom.IE_ComputedStyle = ComputedStyle;
})();
_$jscoverage['build/dom/dom.js'][1755]++;
(function () {
  _$jscoverage['build/dom/dom.js'][1762]++;
  var TO_STRING = "toString", PARSE_INT = parseInt, RE = RegExp, Y = YAHOO.util;
  _$jscoverage['build/dom/dom.js'][1767]++;
  Y.Dom.Color = {KEYWORDS: {black: "000", silver: "c0c0c0", gray: "808080", white: "fff", maroon: "800000", red: "f00", purple: "800080", fuchsia: "f0f", green: "008000", lime: "0f0", olive: "808000", yellow: "ff0", navy: "000080", blue: "00f", teal: "008080", aqua: "0ff"}, re_RGB: /^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i, re_hex: /^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i, re_hex3: /([0-9A-F])/gi, toRGB: (function (val) {
  _$jscoverage['build/dom/dom.js'][1792]++;
  if ((! Y.Dom.Color.re_RGB.test(val))) {
    _$jscoverage['build/dom/dom.js'][1793]++;
    val = Y.Dom.Color.toHex(val);
  }
  _$jscoverage['build/dom/dom.js'][1796]++;
  if (Y.Dom.Color.re_hex.exec(val)) {
    _$jscoverage['build/dom/dom.js'][1797]++;
    val = ("rgb(" + [PARSE_INT(RE.$1, 16), PARSE_INT(RE.$2, 16), PARSE_INT(RE.$3, 16)].join(", ") + ")");
  }
  _$jscoverage['build/dom/dom.js'][1803]++;
  return val;
}), toHex: (function (val) {
  _$jscoverage['build/dom/dom.js'][1807]++;
  val = (Y.Dom.Color.KEYWORDS[val] || val);
  _$jscoverage['build/dom/dom.js'][1808]++;
  if (Y.Dom.Color.re_RGB.exec(val)) {
    _$jscoverage['build/dom/dom.js'][1809]++;
    var r = ((RE.$1.length === 1)? ("0" + RE.$1): Number(RE.$1)), g = ((RE.$2.length === 1)? ("0" + RE.$2): Number(RE.$2)), b = ((RE.$3.length === 1)? ("0" + RE.$3): Number(RE.$3));
    _$jscoverage['build/dom/dom.js'][1813]++;
    val = [(r[TO_STRING])(16), (g[TO_STRING])(16), (b[TO_STRING])(16)].join("");
  }
  _$jscoverage['build/dom/dom.js'][1820]++;
  if ((val.length < 6)) {
    _$jscoverage['build/dom/dom.js'][1821]++;
    val = val.replace(Y.Dom.Color.re_hex3, "$1$1");
  }
  _$jscoverage['build/dom/dom.js'][1824]++;
  if (((val !== "transparent") && (val.indexOf("#") < 0))) {
    _$jscoverage['build/dom/dom.js'][1825]++;
    val = ("#" + val);
  }
  _$jscoverage['build/dom/dom.js'][1828]++;
  return val.toLowerCase();
})};
})();
_$jscoverage['build/dom/dom.js'][1832]++;
YAHOO.register("dom", YAHOO.util.Dom, {version: "2.8.0r4", build: "2449"});

