
Function.NoOp = function(a) { return (a); }
if (!window.BtvOverlay) window.BtvOverlay = {};
(function(){
if (!BtvOverlay.Util) BtvOverlay.Util = {};
BtvOverlay.Util.ArrayToHash = function(a, fnc)
{
fnc = fnc || Function.NoOp;
var ht = {};
for (var i = 0; a && (i < a.length); i++) ht[fnc(a[i])] = true;
return (ht);
}
BtvOverlay.Util.ToLowerCase = function(s)
{
return(s.toLowerCase());
}
BtvOverlay.Util.ToUpperCase = function(s)
{
return(s.toUpperCase());
}
var re = new RegExp("[\\[\\]{}\\\\|().*+?\^\$]", "g");
BtvOverlay.Util.RegExpEscape = function(s)
{
return s.replace(re, "\\$&");
}
})();
BtvOverlay.Dom = new function()
{
var oThis = this;
oThis.Traverse = function(oNode, fnc, fncStop)
{
function Loop()
{
while (aNodesToSearch.length > 0)
{
if (iDelayIterations++ == 100)
{
iDelayIterations = 0;
window.setTimeout(Loop, 10);
fncStop(true);
return;
}
else
{
oNode = aNodesToSearch[aNodesToSearch.length-1];
if (oNode == aParentNodes[aParentNodes.length-1])
{
aParentNodes.pop();
aNodesToSearch.pop();
fnc(oNode, false);
}
else
{
if (!fnc(oNode, true) && oNode.childNodes.length)
{
aParentNodes.push(oNode);
for (var i = oNode.childNodes.length - 1; i >= 0; i--)
{
aNodesToSearch.push(oNode.childNodes[i]);
}
}
else
{
aNodesToSearch.pop();
fnc(oNode, false)
}
}
}
}
fncStop(false);
}
var iDelayIterations = 0;
var aNodesToSearch = oNode ? [oNode] : [];
var aParentNodes = [];
Loop();
}
oThis.FindNodes = function(oNode, aNodeTypes, oRules, fncCallback)
{
function Nodify(oNode, bln)
{
if (bln)
{
var iType = oNode.nodeType;
if (iInclude && htNodeTypes[iType]) aTextNodes.push(oNode);
if (iType != 1) return(true);
var id = oNode.getAttribute("id");
if (lookup[0] && lookup[0].ids[id]) return(true);
var strTagName = oNode.tagName;
if (lookup[0] && lookup[0].tags[strTagName]) return(true);
var strClasses = oNode.className;
if (lookup[0] && lookup[0].classes[strClasses]) return(true);
if (lookup[1] && (lookup[1].tags[strTagName] || lookup[1].ids[id] || lookup[1].classes[strClasses]))
{
aIncludeNodes.push(oNode);
iInclude++;
}
return(false);
}
else
{
if (aIncludeNodes.length && (aIncludeNodes[aIncludeNodes.length-1] == oNode))
{
aIncludeNodes.pop();
iInclude--;
}
}
}
function Stop(bln)
{
fncCallback(aTextNodes, bln);
aTextNodes = [];
}
function CreateLookup()
{
var lookup = [];
if (oRules.oExclude) lookup[0] = {
tags: ath(oRules.oExclude.aTags, BtvOverlay.Util.ToUpperCase)
,ids: ath(oRules.oExclude.aIds)
,classes: ath(oRules.oExclude.aClasses)
};
if (oRules.oInclude) lookup[1] = {
tags: ath(oRules.oInclude.aTags, BtvOverlay.Util.ToUpperCase)
,ids: ath(oRules.oInclude.aIds)
,classes: ath(oRules.oInclude.aClasses)
};
return(lookup);
}
oRules.aNodeTypes = aNodeTypes;
var iInclude = oRules.oInclude ? 0 : 1;
var ath = BtvOverlay.Util.ArrayToHash;
var htNodeTypes = BtvOverlay.Util.ArrayToHash(oRules.aNodeTypes);
var lookup = CreateLookup();
var aIncludeNodes = [];
var aTextNodes = [];
BtvOverlay.Dom.Traverse(oNode, Nodify, Stop);
}
};
BtvOverlay.Dom.Tokenizer = new function()
{
var oThis = this;
oThis.Run = function(oNode, astrKeywords, htTermsData, oRules, strTermColor, fnc)
{
function RunSet(aNodes, astrKeywords, fnc)
{
function BuildReplacement(oNode, strText, aMatches)
{
function InAnchor()
{
var o = oNode;
while (o.parentNode)
{
if (o.parentNode.tagName && (o.parentNode.tagName.toLowerCase() == "a")) return(true);
o = o.parentNode
}
return(false);
}
function Adorn(str)
{
var span = document.createElement("foo");
if (!span.addEventListener) span.style.position = "relative";
span.style.display = "inline";
span.style.textDecoration = "underline";
span.style.borderBottom = "solid 1px " + strTermColor;
if (!span.addEventListener) span.style.top = "1px";
span.style.cursor = "pointer";
span.style.zoom = 1;
fnc(span, str);
span.innerHTML = str;
return (span);
}
function CheckSpan(span)
{
var str = span.innerHTML;
span.innerHTML = '&nbsp;';
var iOneLineHeight = span.offsetHeight;
span.innerHTML = str;
var iEntireHeight = span.offsetHeight;
span._blnWrap = (iEntireHeight > (1.5 * iOneLineHeight));
}
function CreateIcon(str)
{
var img = document.createElement('img');
img.src = '/images/overlay-action.png';
img.style.borderWidth = '0px';
img.style.display = 'inline';
//img.style.verticalAlign = 'text-bottom';
img.style.padding = '1px 0px 0px 4px';
img.style.margin = '0px';
img.style.cursor = "pointer";
img.style.zoom = 1;
img.__blnOverlay = true;
fnc(img, str);
return(img);
}
if (!oNode.parentNode) return;
for (var i=0; i < oNode.parentNode.childNodes.length; i++)
{
if (oNode.parentNode.childNodes[i].__blnOverlay) return;
}
var iStart = 0;
for (var i = 0; i < aMatches.length; i++)
{
var strMatch = aMatches[i][0];
var strTerm = aMatches[i][1];
if (true)
{
var iPlainTextLength = aMatches[i].index + strMatch.indexOf(strTerm);
var textNode = document.createTextNode(strText.substring(iStart, iPlainTextLength));
oNode.parentNode.insertBefore(textNode, oNode);
var span = Adorn(strTerm);
oNode.parentNode.insertBefore(span, oNode);
CheckSpan(span);
iStart = iPlainTextLength + strTerm.length;
}
else
{
var iPlainTextLength = aMatches[i].index + strMatch.indexOf(strTerm) + strTerm.length;
var textNode = document.createTextNode(strText.substring(iStart, iPlainTextLength));
oNode.parentNode.insertBefore(textNode, oNode);
oNode.parentNode.insertBefore(CreateIcon(strTerm), oNode);
iStart = iPlainTextLength;
}
}
var textNode = document.createTextNode(strText.substring(iStart));
oNode.parentNode.insertBefore(textNode, oNode);
oNode.parentNode.removeChild(oNode);
}
function SortKeywords(s1, s2)
{
var i1 = s1.length;
var i2 = s2.length;
return((i1 < i2) ? 1 : ((i1 > i2) ? -1 : 0));
}
astrKeywords.sort(SortKeywords);
var aReKeywords = [];
for (var i=0; i < astrKeywords.length; i++)
{
aReKeywords.push(BtvOverlay.Util.RegExpEscape(astrKeywords[i]));
}
var reSearch = new RegExp("(?:^|[^0-9A-Za-z])(" + aReKeywords.join('|') + ")([^0-9A-Za-z]|$)", "g");
var aMatch;
var aMatches;
var strTerm;
for (var i = 0; i < aNodes.length; i++)
{
aMatches = null;
var str = aNodes[i].nodeValue;
while ((aMatch = reSearch.exec(str)) != null)
{
aMatches = aMatches || [];
strTerm = aMatch[1];
if (!htTermMatches[strTerm]) htTermMatches[strTerm] = 0;
if (!htTermsData[strTerm] || (htTermsData[strTerm].MaxCount <= 0) || (htTermMatches[strTerm] < htTermsData[strTerm].MaxCount))
{
htTermMatches[strTerm]++;
aMatches.push(aMatch);
}
if (aMatch[2]) reSearch.lastIndex -= 1;
}
if (aMatches) BuildReplacement(aNodes[i], str, aMatches);
}
}
function HaveNodes(aTextNodes, bln)
{
RunSet(aTextNodes, astrKeywords, fnc);
if (!bln)
{
var dtEnd = (new Date()).valueOf();
//alert(dtEnd - dtStart);
}
}
var dtStart = (new Date()).valueOf();
if (!oRules.oExclude) oRules.oExclude = {};
if (!oRules.oExclude.aTags) oRules.oExclude.aTags = [];
if (!oRules.oExclude.aClasses) oRules.oExclude.aClasses = [];
oRules.oExclude.aTags.push("script");
oRules.oExclude.aTags.push("foo");
oRules.oExclude.aTags.push("textarea");
oRules.oExclude.aClasses.push("nooverlay", "btv_orange_button", "article_page_title");
var htTermMatches = {};
var aTextNodes = BtvOverlay.Dom.FindNodes(oNode, [3], oRules, HaveNodes);
}
};
(function()
{
var oOverlayData = {"data":[{"Url":"john-e.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/John-English.jpg","Term":"John English","ID":16863,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"joe-1.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Joe.jpg","Term":"Joe","ID":16864,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"amanda-6.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Amanda.jpg","Term":"Amanda","ID":16859,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"jason-1.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Jason.jpg","Term":"Jason","ID":16862,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"jim-2.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Jim.jpg","Term":"Jim","ID":16865,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"chris-2.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Chris.jpg","Term":"Chris","ID":16868,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"katie-roberson.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Katie-Roberson.jpg","Term":"Katie Roberson","ID":10000077,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"jonathan-1.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Jonathan-Prater.jpg","Term":"Jonathan Prater","ID":16866,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"greg-3.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Greg.jpg","Term":"Greg","ID":16867,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"amber-2.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Amber.jpg","Term":"Amber","ID":16857,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"chuck-and-caitilin.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Chuck-and-Caitilin.jpg","Term":"Chuck and Caitilin","ID":11151,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"mike-richards.aspx","PhotoCount":5,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Mike-Richards.jpg","Term":"Mike Richards","ID":13077,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"shawn-and-scarlet.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Shawn-and-Scarlet.jpg","Term":"Shawn and Scarlet","ID":11149,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"richard-and-mindi.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Richard-and-Mindi.jpg","Term":"Richard and Mindi","ID":11150,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"megan-hauserman.aspx","PhotoCount":24,"Rank":2661,"ImageSrc":"/articles/i-love-money/profile/Megan-Hauserman.jpg","Term":"Megan Hauserman","ID":15287,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"jillian-1.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Jillian-Beyor.jpg","Term":"Jillian Beyor","ID":16855,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"cara.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Cara.jpg","Term":"Cara","ID":16856,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"randi-1.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Randi.jpg","Term":"Randi","ID":16852,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"kristina.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Kristina.jpg","Term":"Kristina","ID":16854,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"leticia-cline.aspx","PhotoCount":14,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Leticia.jpg","Term":"Leticia Cline","ID":10000120,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"sheree-swanson.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Sheree-Swanson.jpg","Term":"Sheree Swanson","ID":10000293,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"tara-mccomas.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Tara.jpg","Term":"Tara McComas","ID":10000322,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"sanjay-shah.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Sanjay-Shah.jpg","Term":"Sanjay Shah","ID":10000276,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"shay-cham.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Shay-Cham.jpg","Term":"Shay Cham","ID":10000288,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"tiffany-(beauty-and-the-geek).aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Tiffany.jpg","Term":"Tiffany","ID":10000335,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"will-frank.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Will-Frank.jpg","Term":"Will Frank","ID":10000366,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"william-mcdonald.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/William-McDonald.jpg","Term":"William McDonald","ID":10000368,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"tommy-severo.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Tommy.jpg","Term":"Tommy Severo","ID":10000342,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"tori-elmore.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Tori-Elmore.jpg","Term":"Tori Elmore","ID":10000345,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"rebecca-nichols.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Rebecca-Nichols.jpg","Term":"Rebecca Nichols","ID":10000248,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"matt-carter.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Matt.jpg","Term":"Matt Carter","ID":10000164,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"matt-herman.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Matt-Herman.jpg","Term":"Matt Herman","ID":10000165,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"luke-neyer.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Luke-Neyer.jpg","Term":"Luke Neyer","ID":10000138,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"mario-muscar.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Mario-Muscar.jpg","Term":"Mario Muscar","ID":10000154,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"nadia-underwood.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Nadia-Underwood.jpg","Term":"Nadia Underwood","ID":10000200,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"niels-hoven.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Niels-Hoven.jpg","Term":"Niels Hoven","ID":10000221,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"piao-sam.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Piao-Sam.jpg","Term":"Piao Sam","ID":10000239,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"natalie-reeves.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Natalie-Reeves.jpg","Term":"Natalie Reeves","ID":10000204,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"nate-dern.aspx","PhotoCount":3,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Nate-Dern.jpg","Term":"Nate Dern","ID":10000206,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"jasmine-1.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Jasmine-Moore.jpg","Term":"Jasmine Moore","ID":9912,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"hollie-winnard.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Hollie-Winnard.jpg","Term":"Hollie Winnard","ID":9914,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"jesse-yeary.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Jesse-Yeary.jpg","Term":"Jesse Yeary","ID":9910,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"jennifer.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Jennifer-Carter.jpg","Term":"Jennifer Carter","ID":9911,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"erin.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Erin-Schneider.jpg","Term":"Erin Schneider","ID":9915,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"nicole-morgan.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Nicole-Morgan.jpg","Term":"Nicole Morgan","ID":11076,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"sam-horrigan.aspx","PhotoCount":4,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Sam-Horrigan.jpg","Term":"Sam Horrigan","ID":11077,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"dave.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Dave-Olsen.jpg","Term":"Dave Olsen","ID":9916,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"amanda-hanshaw.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Amanda-Hanshaw.jpg","Term":"Amanda Hanshaw","ID":9917,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"john.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/John-Gardner.jpg","Term":"John Gardner","ID":9909,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"erin-gipson.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Erin-Gipson.jpg","Term":"Erin Gipson","ID":2697,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"drew.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Drew-Sawa.jpg","Term":"Drew Sawa","ID":2698,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"scooter.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Alan-Scooter-Zackheim.jpg","Term":"Alan 'Scooter' Zackheim","ID":2686,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"jennylee.aspx","PhotoCount":12,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Jennylee-Berns.jpg","Term":"Jennylee Berns","ID":2696,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"cecille.aspx","PhotoCount":28,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Cecille-Gahr.jpg","Term":"Cecille Gahr","ID":2699,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"joshua.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Joshua-Green.jpg","Term":"Joshua Green","ID":9907,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"josh-bishop-moser.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Josh-Bishop-Moser.jpg","Term":"Josh Bishop-Moser","ID":9908,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"andrea.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Andrea-Ciliberti.jpg","Term":"Andrea Ciliberti","ID":2700,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"tony-tran.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Tony-Tran.jpg","Term":"Tony Tran","ID":9901,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"brandon-blankenship.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Brandon-Blankenship.jpg","Term":"Brandon Blankenship","ID":11127,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"brittany-knott.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Brittany-Knott.jpg","Term":"Brittany Knott","ID":11142,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"josh-herman.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Josh-Herman.jpg","Term":"Josh Herman","ID":11143,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"jennipher-johnson.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Jennipher-Johnson.jpg","Term":"Jennipher Johnson","ID":11139,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"joe-block.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Joe-Block.jpg","Term":"Joe Block","ID":11141,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"cher-tenbush.aspx","PhotoCount":35,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Cher-Tenbush.jpg","Term":"Cher Tenbush","ID":11144,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"brad-and-krystal.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Brad-and-Krystal.jpg","Term":"Brad and Krystal","ID":11147,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"bill-and-lauren.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Bill-and-Lauren.jpg","Term":"Bill and Lauren","ID":11148,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"cheryl-and-eric.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Cheryl-and-Eric.jpg","Term":"Cheryl and Eric","ID":11145,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"erika-and-joe.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Joe-and-Erika.jpg","Term":"Joe and Erika","ID":11146,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"ankur-mehta.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Ankur-Mehta.jpg","Term":"Ankur Mehta","ID":11138,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"thais-soares.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Thais-Soares.jpg","Term":"Thais Soares","ID":11130,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"chris-saroki.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Chris-Saroki.jpg","Term":"Chris Saroki","ID":11131,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"amanda-horan.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Amanda-Horan.jpg","Term":"Amanda Horan","ID":11128,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"tyson-mao.aspx","PhotoCount":7,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Tyson-Mao.jpg","Term":"Tyson Mao","ID":11129,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"tristin-clowthomsen.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Tristin-Clow-Thomsen.jpg","Term":"Tristin Clow-Thomsen","ID":11132,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"sarah-coleman.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Sarah-Coleman.jpg","Term":"Sarah Coleman","ID":11136,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"wes-wilson.aspx","PhotoCount":16,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Wes-Wilson.jpg","Term":"Wes Wilson","ID":11137,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"karl-hench.aspx","PhotoCount":1,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Karl-Hench.jpg","Term":"Karl Hench","ID":11133,"RelatedID":652,"Scope":0,"MaxCount":3},{"Url":"danielle-gonzalez.aspx","PhotoCount":2,"Rank":2661,"ImageSrc":"/articles/beauty-and-the-geek/profile/Danielle-Gonzalez.jpg","Term":"Danielle Gonzalez","ID":11135,"RelatedID":652,"Scope":0,"MaxCount":3}]};
var oExcludeData = {"Ids":null,"Tags":["h2"],"Classes":["wiki-text"]};
var oIncludeData = {"Ids":null,"Tags":null,"Classes":["content-col"]};
var strTermColor = null || "#999999";
var strBaseUrl = '';
var oRules = {};
if (oExcludeData)
{
oRules.oExclude = {
aIds: oExcludeData.Ids || []
,aTags: oExcludeData.Tags || []
,aClasses: oExcludeData.Classes || []
};
}
if (oIncludeData)
{
oRules.oInclude = {
aIds: oIncludeData.Ids || []
,aTags: oIncludeData.Tags || []
,aClasses: oIncludeData.Classes || []
};
}
var afncCastOverlayBuilders = {};
afncCastOverlayBuilders[0] = function($data){var $text = [];var _write = function(text) {$text.push((typeof text == "number")?text:(text||""));};with($data){ _write('<div id=\"divHoverHandle');_write(Term);_write('\" style=\"width:285px;background:url(\'');_write(strBaseUrl);_write('/images/pop-shadow.png\');zoom:1;\">\n<div style=\"border:1px solid #666666; background:#eeeeee; font-size:11px;  padding:7px; position:relative;bottom:3px;right:3px;zoom:1;\">\n<a href=\"');_write(strBaseUrl);_write('/');_write(Url);_write('\"><img src=\"http://www.buddytv.com');_write(ImageSrc);_write('\" style=\"border:none;width:92px;float:left;margin-right:5px;\"/></a>\n<div style=\"float:right;width:165px;zoom:1;\">\n<div style=\"font-size:16px;font-weight:bold;margin:-2px 0px 5px 0px;zoom:1;\"><a href=\"');_write(strBaseUrl);_write('/');_write(Url);_write('\">');_write(Term);_write('</a></div>\n<div style=\"margin-bottom:2px;zoom:1;\">Today’s Ranking: ');_write(Rank);_write('</div>\n<div style=\"margin-bottom:3px;zoom:1;\"><a href=\"');_write(strBaseUrl);_write('/btvredir.aspx?ctxtypid=21&ctxid=');_write(ID);_write('&pid=21&pnum=-1\">View Photos</a></div>\n<div style=\"zoom:1;\"><a href=\"');_write(strBaseUrl);_write('/btvredir.aspx?ctxtypid=21&ctxid=');_write(ID);_write('&pid=28&pnum=-1\">Rate now &raquo;</a></div>\n</div>\n<div style=\"clear:both;\"></div>\n</div>\n</div>');}return $text.join("");};
afncCastOverlayBuilders[1] = function($data){var $text = [];var _write = function(text) {$text.push((typeof text == "number")?text:(text||""));};with($data){ _write('<div id=\"divHoverHandle');_write(Term);_write('\" style=\"width:285px;background:url(\'');_write(strBaseUrl);_write('/images/pop-shadow.png\'); zoom:1;\">\n<div style=\"border:1px solid #666666; background:#eeeeee; font-size:11px;  padding:7px; position:relative;bottom:3px;right:3px;zoom:1;\">\n<a href=\"');_write(strBaseUrl);_write('/');_write(Url);_write('\"><img src=\"http://www.buddytv.com');_write(ImageSrc);_write('\" style=\"border:none;width:92px;float:left;margin-right:5px;\"/></a>\n<div style=\"float:right;width:165px;zoom:1;\">\n<div style=\"font-size:16px;font-weight:bold;margin:-2px 0px 5px 0px;zoom:1;\"><a href=\"');_write(strBaseUrl);_write('/');_write(Url);_write('\">');_write(Term);_write('</a></div>\n<div style=\"margin-bottom:2px;zoom:1;\">Today’s Ranking: ');_write(Rank);_write('</div>\n<div style=\"margin-bottom:3px;zoom:1;\"><a href=\"');_write(strBaseUrl);_write('/btvredir.aspx?ctxtypid=-1000&ctxid=');_write(ID);_write('&pid=21&pnum=-1\">View Photos (');_write(PhotoCount);_write(')</a></div>\n<div style=\"margin-bottom:3px;zoom:1;\"><a href=\"');_write(strBaseUrl);_write('/btvredir.aspx?ctxtypid=-1000&ctxid=');_write(ID);_write('&pid=35&pnum=-1\">Play Trivia &raquo;</a></div>\n</div>\n<div style=\"clear:both;\"></div>\n</div>\n</div>');}return $text.join("");};
function Run()
{
function GiveElementLayout(el)
{
if (el && !el.hasLayout) el.style.zoom = 1;
}
function GetWindowPosition()
{
function f(p1, p2)
{
var iWin = window[p1] ? window[p1] : 0;
var iDocEl = document.documentElement ? document.documentElement[p2] : 0;
var iBody = document.body ? document.body[p2] : 0;
var i = iWin ? iWin : 0;
if (iDocEl && (!i || (i > iDocEl))) i = iDocEl;
return(iBody && (!i || (i > iBody)) ? iBody : i);
}
var iW = f('innerWidth', 'clientWidth');
var iH = f('innerHeight', 'clientHeight');
var iL = f('pageXOffset', 'scrollLeft');
var iT = f('pageYOffset', 'scrollTop');
return({t:iT, r:(iW + iL), b:(iH + iT), l:iL});
}
function GetElPosition(el)
{
var pt = GetAbsPos(el);
return({t:pt.y, r:(pt.x + el.offsetWidth), b:(pt.y + el.offsetHeight), l:pt.x});
}
function GetOverlayPlacementPoint(elContext, elOverlay)
{
var elPos = GetElPosition(elContext);
var wndPos = GetWindowPosition();
var iSpace = 10;
var posSpace = {t:(elPos.t - wndPos.t - iSpace), r:(wndPos.r - elPos.r - iSpace), b:(wndPos.b - elPos.b - iSpace), l:(elPos.l - wndPos.l - iSpace)};
var iW = elOverlay.offsetWidth;
var iH = elOverlay.offsetHeight;
var pt = {x:wndPos.l, y:wndPos.t};
if (posSpace.t >= iH)
{
pt.y = elPos.t - iH;
}
else if (posSpace.b >= iH)
{
pt.y = elPos.b;
}
if (posSpace.r >= iW)
{
pt.x = elPos.r;
}
else if (posSpace.l >= iW)
{
pt.x = elPos.l - iW;
}
//pt.y += 3;
return(pt);
}
function AdjustPlacementPoint(pt, elOverlay)
{
var iW = elOverlay.offsetWidth;
var iH = elOverlay.offsetHeight;
var posOverlay = {t:pt.y, r:(pt.x + iW), b:(pt.y + iH), l:pt.x};
var wndPos = GetWindowPosition();
var iSpace = 10;
var posSpace = {t:(posOverlay.t - wndPos.t - iSpace), r:(wndPos.r - posOverlay.r - iSpace), b:(wndPos.b - posOverlay.b - iSpace), l:(posOverlay.l - wndPos.l - iSpace)};
if (posSpace.r < 0)
{
pt.x += posSpace.r;
}
else if (posSpace.l < 0)
{
pt.x += (0 - posSpace.l);
}
if (posSpace.t < 0)
{
pt.y += (0 - posSpace.t);
}
else if (posSpace.b < 0)
{
pt.y += posSpace.b;
}
return(pt);
}
function GetAbsPos(element)
{
function F(el)
{ 
var pt = {x:0,y:0};
if (el)
{ 
GiveElementLayout(el); 
pt.x += el.offsetLeft;
pt.y += el.offsetTop; 
var elOffset = el.offsetParent;
var elParent = el.parentNode;
while (elOffset)
{
GiveElementLayout(elOffset);
pt.x += elOffset.offsetLeft; 
pt.y += elOffset.offsetTop; 
if ((document.body != elOffset) && (document.documentElement != elOffset))
{ 
pt.x -= elOffset.scrollLeft; 
pt.y -= elOffset.scrollTop; 
} 
if (false && blnFirefox)
{ 
while (elParent && (elOffset != elParent))
{ 
pt.x -= elParent.scrollLeft; 
pt.y -= elParent.scrollTop; 
elParent = elParent.parentNode; 
}
} 
elParent = elOffset.parentNode;
elOffset = elOffset.offsetParent; 
} 
} 
return pt; 
} 
var blnFirefox = !!element.addEventListener;
if (!blnFirefox)
{
F(element, blnFirefox);
}
return(F(element, blnFirefox));
}
function AddEvent(obj, type, fn)
{
if (obj.addEventListener)
{
obj.addEventListener(type, fn, false);
}
else if (obj.attachEvent)
{
obj["e" + type + fn] = fn;
obj[type + fn] = function() { obj["e" + type + fn](window.event); }
obj.attachEvent("on" + type, obj[type + fn]);
}
}
function GetOverlayNode(strTerm)
{
if (!htOverlays[strTerm])
{
var oData = htTermsData[strTerm];
var strOverlayHtml = afncCastOverlayBuilders[oData.Scope](oData);
var div = document.createElement("div");
div.innerHTML = strOverlayHtml;
htOverlays[strTerm] = div.childNodes[0];
}
return(htOverlays[strTerm]);
}
function ShowOverlay(oNode, strTerm, pt)
{
blnNeedEventHookup = !htOverlays[strTerm];
HideCurrentOverlay(true);
elCurrentOverlay = GetOverlayNode(strTerm);
divOverlay.appendChild(elCurrentOverlay);
document.body.appendChild(divOverlay);
if (blnNeedEventHookup)
{
var elHandler = document.getElementById("divHoverHandle" + strTerm);
AddEvent(elHandler, blnIsIE ? "mouseenter" : "mouseover", OverlayOver);
AddEvent(elHandler, blnIsIE ? "mouseleave" : "mouseout", CommonOut);
}
var oPoint = GetAbsPos(oNode);
var overlayPt = GetOverlayPlacementPoint(oNode, divOverlay);
if (oNode._blnWrap)
{
overlayPt.x = pt.x - divOverlay.offsetWidth;
AdjustPlacementPoint(overlayPt, divOverlay);
}
divOverlay.style.visibility = "hidden";
divOverlay.style.top = overlayPt.y + "px";
divOverlay.style.left = overlayPt.x + "px";
divOverlay.style.visibility = "visible";
}
function MouseCoordinates(evt)
{
if (blnIsIE)
{
var oPoint = GetAbsPos(evt.srcElement);
return({x:(evt.x + oPoint.x), y:(evt.y + oPoint.y)});
}
else
{
return({x:evt.pageX, y:evt.pageY});
}
}
function HideCurrentOverlay(bln)
{
function F()
{
if ((elCurrentOverlay) && (iCounter_local == iCounter) && (!iOverCount))
{
iOverCount = 0;
divOverlay.removeChild(elCurrentOverlay);
divOverlay.parentNode.removeChild(divOverlay);
elCurrentOverlay = null;
}
}
iCounter++;
var iCounter_local = iCounter;
if (bln)
{
iOverCount= 0;
F();
}
else
{
window.setTimeout(F, 400);
}
}
var iCounter = 0;
if (Btv && Btv.Ads)
{
//Btv.Ads.onChangeRequest.Attach(RunFromBody);
}
var elCurrentOverlay;
var htOverlays = {};
function HookupTerm(oNode, strTerm)
{
function Over(evt)
{
ShowOverlay(oNode, strTerm, MouseCoordinates(evt));
iOverCount++;
}
AddEvent(oNode, blnIsIE ? "mouseenter" : "mouseover", Over);
AddEvent(oNode, blnIsIE ? "mouseleave" : "mouseout", CommonOut);
AddEvent(oNode, "click", function(){HideCurrentOverlay(true);});
}
function OverlayOver()
{
iOverCount++;
}
function CommonOut()
{
iOverCount--;
HideCurrentOverlay();
}
var iOverCount = 0; 
var divOverlay = document.createElement('div');
divOverlay.style.position = "absolute";
divOverlay.style.zIndex = "9999";
var blnIsIE = !divOverlay.addEventListener;
var astrTerms = [];
var htTermsData = {};
function ProcessOverlayData()
{
for (var i=0; i < oOverlayData.data.length; i++)
{
if (!htTermsData[oOverlayData.data[i].Term])
{
astrTerms.push(oOverlayData.data[i].Term);
htTermsData[oOverlayData.data[i].Term] = oOverlayData.data[i];
oOverlayData.data[i].strBaseUrl = "";
}
}
}
ProcessOverlayData();
window["RunBtvTokenizer"] = function(el, oOverlayData_)
{
if (oOverlayData_)
{
oOverlayData.data = oOverlayData_;
ProcessOverlayData();
} 
if (el)
{
if (astrTerms.length > 0) BtvOverlay.Dom.Tokenizer.Run(el, astrTerms, htTermsData, oRules, strTermColor, HookupTerm);
blnPending = false;
}
else
{
Refresh();
}
}
function RunFromBody()
{
RunBtvTokenizer(document.body);
}
function TimedRun()
{
if (blnPending) RunFromBody();
}
function Refresh()
{
if (!blnPending)
{
blnPending = true;
window.setTimeout(TimedRun, 1000);
}
}
var blnPending = true;
if (true)
{
if (window["YAHOO"] && YAHOO.Btv && YAHOO.Btv.Runtime && YAHOO.Btv.Runtime.RegisterOnInit)
{
YAHOO.Btv.Runtime.RegisterOnInit(RunFromBody);
}
else
{
window.setTimeout(RunFromBody, 100);
}
} 
}
Run();
})();
