<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7926921640048873443</id><updated>2012-01-24T22:24:16.181-06:00</updated><category term='PEPSICO'/><category term='charuca'/><category term='lunetas'/><category term='shigeru miyamoto'/><category term='saw 3d'/><category term='1997'/><category term='sombrero'/><category term='p3p'/><category term='Romeo and Cinderella'/><category term='super fresh'/><category term='culto a cartman'/><category term='gta'/><category term='tidus'/><category term='san nicolas'/><category term='Tommy February6'/><category term='All About Lily Chou-Chou'/><category term='pink flamingos'/><category term='haunting ground'/><category term='monotonia'/><category term='deluxe'/><category term='Higurashi no Naku Koro ni'/><category term='cosplay'/><category term='dibujos'/><category term='mariposa'/><category term='legal'/><category term='1280x800'/><category term='gainax'/><category term='fetish'/><category term='Emilie Autumn'/><category term='18 años'/><category term='hapy new year'/><category term='quemadura'/><category term='sweet pea'/><category term='valle oriente'/><category term='Shihoko Hirata'/><category term='diseño grafico'/><category term='Vladimir Nabokov'/><category term='goth'/><category term='yuka-tan'/><category term='air puff stickers'/><category term='Why Don&apos;t You'/><category term='Zelda'/><category term='comida'/><category term='design'/><category term='desmadre'/><category term='tiki ming'/><category term='tangled'/><category term='Aristocats'/><category term='twister'/><category term='magna carta'/><category term='new single'/><category term='figure'/><category term='tutoriales maquillaje'/><category term='sky'/><category term='conejos'/><category term='BODYLINE'/><category term='mcdonald&apos;s'/><category term='Toricolle'/><category term='Review'/><category term='villa pizza'/><category term='Harry Potter'/><category term='papilion'/><category term='Exótica'/><category term='magika madoka'/><category term='maki'/><category term='Atelier Totori'/><category term='gore'/><category term='SNoW'/><category term='Beckii Cruel'/><category term='professional illustrators'/><category term='sushi'/><category term='kuragehime'/><category term='Lonely in Gorgeous'/><category term='calor'/><category term='japones'/><category term='ohno'/><category term='tsunami'/><category term='espejo'/><category term='remake'/><category term='Saki'/><category term='x-cross'/><category term='Dear You'/><category term='Aigis'/><category term='celular'/><category term='flojera'/><category term='ihop'/><category term='What&apos;s your number?'/><category term='Atelier Rorona'/><category term='figura'/><category term='Plan B'/><category term='yummy breakfast'/><category term='the fallen'/><category term='CCS'/><category term='makeup'/><category term='stocking'/><category term='merry xmas'/><category term='divine'/><category term='hipocresia'/><category term='crepusculo'/><category term='Akiko Shikata'/><category term='serigrafía'/><category term='sheesh'/><category term='hijo de la luna'/><category term='Anniversary Tour 5x10'/><category term='tareas'/><category term='sueño'/><category term='sawa'/><category term='aire libre'/><category term='Kamikaze Girls'/><category term='The Mechanic'/><category term='johnny deep'/><category term='Red Queen Heart Pendant'/><category term='Stanley Kubrick'/><category term='but that&apos;s OK'/><category term='the call'/><category term='urban decay'/><category term='raihou'/><category term='Death Space'/><category term='christian bale'/><category term='edamame'/><category term='Anne Pigalle'/><category term='theurel and thomas'/><category term='just dance'/><category term='Shakira'/><category term='Al sur de la frontera al oeste del sol'/><category term='machete'/><category term='Welcome to the Doll House'/><category term='escuela'/><category term='chocolate'/><category term='japanese'/><category term='Mando Diao'/><category term='cine koreano'/><category term='Mary Kay'/><category term='nylon'/><category term='RoboGeisha'/><category term='broken'/><category term='aburrimiento'/><category term='eternal punishment'/><category term='Atelier Annie'/><category term='francia'/><category term='Wii'/><category term='crónica'/><category term='kuroneko'/><category term='persona live'/><category term='vogue'/><category term='Nono de Gunbuster 2'/><category term='terremoto'/><category term='Alejandro Jodorowsky'/><category term='Bakemonogatari'/><category term='macarons'/><category term='corruptos'/><category term='portarretratos'/><category term='laruku'/><category term='rojo bermelo'/><category term='raidou kuzunoha'/><category term='filthy wretch'/><category term='cat'/><category term='clonar'/><category term='ペルソナ'/><category term='David Lynch. David Bowie'/><category term='sadness'/><category term='digital copy'/><category term='Gramophonedzie'/><category term='&quot;democracia&quot;'/><category term='Kanon Wakeshima'/><category term='2011'/><category term='cinammoroll'/><category term='bondage'/><category term='Zombie'/><category term='liz'/><category term='comics'/><category term='isabella'/><category term='Sabritas'/><category term='avgn'/><category term='cute panda'/><category term='einstein'/><category term='Alice in Wonderland 3D'/><category term='lord of the rings'/><category term='Horror Fest'/><category term='maqueta'/><category term='k-dst'/><category term='viaje'/><category term='italianni&apos;s'/><category term='TeddyLoid'/><category term='paradise kiss'/><category term='31 de diciembre'/><category term='panda'/><category term='The Alchemist of Arland'/><category term='Swarovski'/><category term='starbucks'/><category term='Renai Circulation'/><category term='bjork'/><category term='Aural Vampire'/><category term='arisato'/><category term='read my mind'/><category term='Caramel Purin'/><category term='revista'/><category term='sweet lolita'/><category term='Hot Blood Workout'/><category term='DOLLS'/><category term='BandSlam'/><category term='nocturne'/><category term='rilakkuma'/><category term='rei ayanami'/><category term='2010'/><category term='FLCL'/><category term='tim burton'/><category term='itou kanako'/><category term='Nana Kitade'/><category term='Festival México Japón'/><category term='lunch'/><category term='gripe'/><category term='charlyn'/><category term='hang in there baby'/><category term='Windstruck'/><category term='vocaloid'/><category term='lcd'/><category term='Stand'/><category term='mundial'/><category term='rey del pop'/><category term='perro culiao'/><category term='princess peach'/><category term='Cíclope'/><category term='6 de junio'/><category term='vacaciones'/><category term='candidatos'/><category term='Independencia'/><category term='parque fundidora'/><category term='Paul and Joe'/><category term='pokemon'/><category term='One Flew Over the Cuckoo&apos;s Nest'/><category term='Green Lantern'/><category term='nails'/><category term='monster'/><category term='Empire State of Mind'/><category term='heart of glass'/><category term='air hockey'/><category term='Pheromone Cherry'/><category term='ramona flores'/><category term='anillo'/><category term='14 de febrero'/><category term='cartman revelaciones'/><category term='laura conde'/><category term='tonterias'/><category term='season 1'/><category term='ssbw'/><category term='charlyn_chan'/><category term='chan'/><category term='sephiroth'/><category term='Red Riding Hood'/><category term='HOLLOW'/><category term='amor y amistad'/><category term='Regina Spektor'/><category term='breakfast at tiffanys'/><category term='Bad Romance'/><category term='kuroshitsuji'/><category term='muere'/><category term='season 2'/><category term='bday'/><category term='frío'/><category term='zacatecas'/><category term='p4a'/><category term='cjmc'/><category term='cinnamoroll'/><category term='yukari hasayaka'/><category term='francesa'/><category term='plaza fiesta san agustin'/><category term='sweet'/><category term='falsedad'/><category term='niebla'/><category term='mm&apos;s'/><category term='sick'/><category term='Yuki Kimura'/><category term='evangelion'/><category term='the big bang theory'/><category term='escobedo'/><category term='Miss Dior Cherie'/><category term='Stella McCartney'/><category term='Damas en Guerra'/><category term='tarea'/><category term='lines'/><category term='Megumi Kojima'/><category term='christmas'/><category term='attack it'/><category term='cuadro'/><category term='corona'/><category term='tumblr'/><category term='sera'/><category term='gothic lolita'/><category term='paparazzi'/><category term='year'/><category term='yay'/><category term='whisky'/><category term='arcade'/><category term='nave lewis'/><category term='jordana'/><category term='Nintendo'/><category term='Shoji Meguro'/><category term='black swan'/><category term='rabbit'/><category term='my girl'/><category term='pantalla'/><category term='lady gaga'/><category term='Tu fui ego eris'/><category term='El Cascanueces'/><category term='ibex rock bar'/><category term='Halo of th Sun'/><category term='megaten'/><category term='Wind Waker'/><category term='Breakin&apos; through'/><category term='akihiko'/><category term='uschi'/><category term='anillos'/><category term='putines'/><category term='bdm'/><category term='PONPONPON'/><category term='SCANDALTHE PINK☆PANDA'/><category term='AKB48'/><category term='twitpic'/><category term='cumleaños'/><category term='frank steins'/><category term='Ora Tokyo sa iguda'/><category term='batsu'/><category term='igor'/><category term='gorro'/><category term='the strokes'/><category term='Glee Cast'/><category term='bershka'/><category term='kitamura'/><category term='Contando a mis Ex'/><category term='hunab ku'/><category term='Rurouni Kenshin'/><category term='Hello Kitty'/><category term='moe'/><category term='no automatico'/><category term='monterrey'/><category term='enfermedad'/><category term='pc'/><category term='disney'/><category term='resident evil afterlife'/><category term='4'/><category term='charlyn chan'/><category term='chocolates'/><category term='dulces'/><category term='Bi Rain'/><category term='dvd'/><category term='h1n1'/><category term='Gant'/><category term='shadow of destiny'/><category term='mario bros'/><category term='trickster revolution'/><category term='novel'/><category term='Juan Son'/><category term='rule of rose'/><category term='Boku no Miteiru Fuukei'/><category term='Adrian Lyne'/><category term='merry'/><category term='trabajos'/><category term='persona 2'/><category term='rose'/><category term='Comickers Coloring Book'/><category term='gta iv'/><category term='crystal castles'/><category term='hidden track'/><category term='dedicación'/><category term='ciel'/><category term='wallpapers'/><category term='ice cream'/><category term='Troublemaker'/><category term='zidane'/><category term='TBBT'/><category term='Monochrome frame'/><category term='Ghost World'/><category term='ken'/><category term='Silent Hill'/><category term='juay the rito'/><category term='Daesapo Naughty Girls 다세포 소녀'/><category term='persona 3'/><category term='明日へのキズナ'/><category term='Lost Highway'/><category term='domestica'/><category term='Sirloin Stockade'/><category term='Marina Diamonds'/><category term='watchmen'/><category term='luna nueva'/><category term='persona 2 eternal punishment soundtrack'/><category term='n.o.e.'/><category term='signs of love'/><category term='Dinner for Schmucks'/><category term='Devil Got My Woman - Skip James'/><category term='Demitri'/><category term='rin kokonoe'/><category term='the rite'/><category term='Ikuzo Yoshi'/><category term='Reiko'/><category term='digital devil saga'/><category term='galerías monterrey'/><category term='persona 4'/><category term='end over end'/><category term='kyle justin'/><category term='cover'/><category term='kings of leon'/><category term='persona 3 fes'/><category term='codigo 01641'/><category term='box'/><category term='Heroes'/><category term='tour scene'/><category term='One Life'/><category term='Konata'/><category term='lolita'/><category term='dominique swain'/><category term='teddie'/><category term='fotógrafa'/><category term='caldo'/><category term='dinero'/><category term='chilis'/><category term='ñoño'/><category term='pelo azul'/><category term='velvet room'/><category term='influenza'/><category term='Sailor Moon'/><category term='innocent sin'/><category term='macross plus'/><category term='black french nails'/><category term='game on'/><category term='policias'/><category term='Yoshitaka Amano'/><category term='demon child'/><category term='french nails'/><category term='papiliones'/><category term='The Girls Rebel force of Competitive Swimmers'/><category term='chie'/><category term='honey'/><category term='single'/><category term='kawaii'/><category term='l&apos;arc en ciel'/><category term='happy'/><category term='thriller'/><category term='Ventas.'/><category term='Battle Royal'/><category term='Beads Gems Co'/><category term='jun matsumoto'/><category term='shin megami tensei'/><category term='want to be close'/><category term='george'/><category term='robo-geisha'/><category term='Daydream'/><category term='砂のお城'/><category term='sky&apos;s the limit'/><category term='colores invierno 2009'/><category term='radio x'/><category term='thief'/><category term='dark'/><category term='exposición'/><category term='navidad'/><category term='nueva luna'/><category term='ratero'/><category term='If I Love You'/><category term='nokia 5310'/><category term='latex'/><category term='rocking horse'/><category term='Scott Pilgrim'/><category term='Inocencia Interrumpida'/><category term='bluray'/><category term='onion knight'/><category term='Macaroons'/><category term='cybergoth'/><category term='Takeshi Kitano'/><category term='nacho libre'/><category term='texas cheese fries'/><category term='karaoke'/><category term='dinosaurio'/><category term='annie'/><category term='world is mine'/><category term='I&apos;m a Cyborg'/><category term='complete edition'/><category term='opera'/><category term='dissidia'/><category term='edward cullen'/><category term='halloween'/><category term='loungefly'/><category term='patos'/><category term='crimewave'/><category term='Yumi Kawamura'/><category term='collares'/><category term='nowhere'/><category term='toy story 3'/><category term='What do I Get'/><category term='El lago de los Cisnes'/><category term='mameshiba'/><category term='1000 no Kotoba'/><category term='Fando y Lis'/><category term='The Buzzcocks'/><category term='xmas'/><category term='strap'/><category term='camafeo'/><category term='ore no imouto'/><category term='revelations'/><category term='amber'/><category term='baby doll'/><category term='wok'/><category term='cielo'/><category term='subway'/><category term='Koizora'/><category term='cjmc 34'/><category term='artbook'/><category term='dieño grafico'/><category term='sendero'/><category term='Adventurer of Arland'/><category term='becca'/><category term='LOL'/><category term='lip gloss'/><category term='despicable me'/><category term='Dakota Fanning'/><category term='air doll'/><category term='vintage'/><category term='decora'/><category term='Terra Branford'/><category term='After Dark'/><category term='Chamber of Secrets'/><category term='keyblade'/><category term='ópera'/><category term='pañuelos'/><category term='5 de julio'/><category term='ladrón'/><category term='disecada'/><category term='azoth'/><category term='japanese professional illustrators'/><category term='shota'/><category term='atlus'/><category term='Katy Rose'/><category term='MARCO'/><category term='latin'/><category term='tokyo love'/><category term='evoker'/><category term='alan'/><category term='franz ferdinand'/><category term='keycap'/><category term='new moon'/><category term='el ultimo exorcismo'/><category term='salvando al soldado perez'/><category term='south park'/><category term='focaccia'/><category term='demento'/><category term='graficos'/><category term='tapioca house'/><category term='play asia'/><category term='kof'/><category term='machu picchu'/><category term='Kylee'/><category term='kodomo no jikan'/><category term='Chogokin Persona 3 Aegis'/><category term='devil summoner'/><category term='art as 1'/><category term='rpg'/><category term='Odi et Amo'/><category term='persona 4 animation'/><category term='twitter'/><category term='vol 2'/><category term='Thor'/><category term='king of fighters'/><category term='Cards Ring'/><category term='Atom Egoyan'/><category term='kanonxkanon'/><category term='Heart Ring'/><category term='museo del desierto'/><category term='Aya'/><category term='kidrorobot'/><category term='pandora'/><category term='micheal jackson'/><category term='cushion'/><category term='libro de arte'/><category term='donkey kong'/><category term='Mohammed Rafi'/><category term='zapatos'/><category term='Todd Solondz y Por el lado oscuro del Camino'/><category term='Shuhei Kita'/><category term='kyari pamyu pamyu'/><category term='chatmonchy'/><category term='pobre'/><category term='strawberry'/><category term='convenciones'/><category term='corazon'/><category term='I Want My Innocence Back'/><category term='king monster'/><category term='sho sakurai'/><category term='koreanos'/><category term='Philosopher&apos;s Stone'/><category term='kirino'/><category term='Love and Joy'/><category term='lip balm'/><category term='lucifer call'/><category term='midori komaki'/><category term='elizabeth'/><category term='museo del vidrio'/><category term='fantasy'/><category term='SR Capcom Fighting Jam Part'/><category term='Koko Dake no Hanashi'/><category term='xD'/><category term='himeka'/><category term='natalie portman'/><category term='Jaan Pehechaan Ho'/><category term='babel'/><category term='decoden'/><category term='tokyo gore police'/><category term='shadow the true self'/><category term='fatal frame 4'/><category term='Hanabi made ato sukoshi'/><category term='pino'/><category term='livejournal'/><category term='hikaru utada'/><category term='Park Jin-woo'/><category term='smartphone'/><category term='k-rose'/><category term='Lemon'/><category term='Dance With Somebody'/><category term='expo tatuajes'/><category term='scary'/><category term='graduación'/><category term='meiji'/><category term='corazón'/><category term='basura'/><category term='porcina'/><category term='Tokei Jikake no Umbrella'/><category term='cyber café'/><category term='Takane Manaka'/><category term='Hell Babies'/><category term='Samael'/><category term='jim parsons'/><category term='electro'/><category term='blondie'/><category term='tarjetas'/><category term='Portraits'/><category term='mayas'/><category term='Museo MARCO'/><category term='garganta'/><category term='hot cakes'/><category term='Jay-Z FT Alicia Keys'/><category term='alice bow'/><category term='shigenori soejima'/><category term='fes'/><category term='ZARA'/><category term='bizarro'/><category term='Ballet de Monterrey'/><category term='persona'/><category term='fragile dreams'/><category term='Hayate Ayasaki'/><category term='costumes'/><category term='hamuko'/><category term='tragedia'/><category term='Shattered Memories'/><category term='Bikini'/><category term='the fighter'/><category term='tears of blood'/><category term='to be free'/><category term='Diamond'/><category term='David Bowie'/><category term='margaret'/><category term='annimal'/><category term='Halo / Walking On Sunshine'/><category term='Card Captor Sakura'/><category term='cajún grill'/><category term='carne asada'/><category term='Shiroi Kokoro'/><category term='bear'/><category term='ai yazawa'/><category term='Hayami Saori'/><category term='Annette Messager'/><category term='rocket'/><category term='Slayer'/><category term='shotacon'/><category term='Sale el Sol'/><category term='with garterbelt'/><category term='chinos'/><category term='ost'/><category term='junpei'/><category term='parque san nicolas'/><category term='kh'/><category term='san agustin'/><category term='barrio antiguo'/><category term='mori girl'/><category term='pop art'/><category term='neko'/><category term='Estupidez'/><category term='um jammer lammy'/><category term='ninomiya kazunari'/><category term='Marvel vs. Capcom 3 Ultimate'/><category term='pancakes'/><category term='L.A. Noir'/><category term='mermelada'/><category term='im alive'/><category term='maybelline'/><category term='sucker punch'/><category term='gatos'/><category term='metamorphose'/><category term='suicide club'/><category term='crepúsculo'/><category term='Cine de Arte'/><category term='poison pink'/><category term='dedos de queso'/><category term='zorro'/><category term='River'/><category term='Stravaganzza'/><category term='Midnight in Paris'/><category term='carls jr'/><category term='asalto'/><category term='rosas'/><category term='The Hangover'/><category term='portafolio'/><category term='cute'/><category term='museo de historia mexicana'/><category term='LovePlus'/><category term='set'/><category term='one love'/><category term='smt'/><category term='kurisumasu'/><category term='kidrobot'/><category term='little twin stars'/><category term='oreimo'/><category term='Walking'/><category term='ps3'/><category term='Burn My Dread -Last Battle-'/><category term='plush'/><category term='Marie'/><category term='the king speech'/><category term='vintage square'/><category term='Social Link Expansion Pack'/><category term='Im Su-jeong'/><category term='Cheshire'/><category term='esfuerzo'/><category term='Tokio Blues'/><category term='devil survivor'/><category term='Kim Ok-bin'/><category term='pizza'/><category term='japon'/><category term='banana'/><category term='the killers'/><category term='mario kart'/><category term='red spot'/><category term='sol'/><category term='angelic pretty'/><category term='epidemia'/><category term='fatal frame iv'/><category term='serph'/><category term='Alice in Wonderland'/><category term='Quaker Chewy Granola Bars Chocolatey Mint'/><category term='rpg&apos;s'/><category term='sheldon cooper'/><category term='eternal poison'/><category term='Junko Mizuno'/><category term='farrah fawcett'/><category term='voices'/><category term='minako'/><category term='san-x'/><category term='Random'/><category term='plaza fiesta anáhuac'/><category term='hirokazu koreeda'/><category term='cintermex'/><category term='asdf'/><category term='biutiful'/><category term='coreano'/><category term='narcos'/><category term='korilakkuma'/><category term='nine west'/><category term='robert pattinson'/><category term='Ami Suzuki'/><category term='golgi club. golgi'/><category term='movin&apos; on'/><category term='huracán alex'/><category term='kingdom hearts'/><category term='catherine'/><category term='Onechanbara'/><category term='twilight'/><category term='posters'/><category term='miwako'/><category term='persona 3 portable'/><category term='the runaways'/><category term='love is over'/><category term='kristen stewart'/><category term='Castlevania Judgment'/><category term='decorer'/><category term='forever 21'/><category term='Nokia E5'/><category term='sebastian'/><category term='Konami'/><category term='forever21'/><category term='san andreas'/><category term='spyro the dragon'/><category term='Shinshoku Dolce'/><category term='java chip frappuccino'/><category term='Mark Wahlberg'/><category term='pendejadas'/><category term='Lolita23q'/><category term='jacob black'/><category term='Fruits Candy'/><category term='bento'/><category term='salem'/><category term='nino'/><category term='panty'/><category term='Koda Kumi'/><category term='OPI'/><category term='yukiko amagi'/><category term='pancackes'/><category term='the catcher in the rye'/><category term='下妻物語'/><category term='Lee Won Jong'/><category term='deluxe edition'/><category term='Hobo With A Shotgun'/><category term='Hatsune Miku'/><category term='my best friend'/><category term='soundtrack'/><category term='fatal frame'/><category term='pj berri'/><category term='cute rings'/><category term='special edtion'/><category term='Daphne'/><category term='Perfume'/><category term='role play game'/><category term='año nuevo'/><category term='Haruki Murakami'/><category term='Gouki'/><category term='Portr'/><category term='Megami Ibunroku Persona'/><category term='tartarus'/><category term='capturas'/><category term='persona psp'/><category term='final fantasy'/><category term='minato arisato'/><category term='Bicentenario'/><category term='pull bear'/><category term='cloud'/><category term='Fast five'/><category term='pikachu'/><category term='cultura maya'/><category term='reactor nuclear'/><category term='gashapon'/><category term='Lotus Juice'/><category term='videojuegos'/><category term='minato'/><category term='mind'/><category term='sanrio'/><category term='aya takano'/><category term='Lolitawork libretto'/><category term='brawl'/><category term='mirror'/><category term='Suigetsu Mayoi-Gokoro'/><category term='disfraces'/><category term='doll'/><category term='persona 4 the animation'/><category term='squall'/><category term='angy video game nerd'/><category term='regalos'/><category term='The Pillows'/><category term='Final Fantasy XIII'/><category term='msn'/><category term='bella swan'/><category term='nendoroid'/><category term='Lincoln Lawyer'/><category term='trastorno de identidad disociativo'/><category term='Cherry'/><category term='examen'/><category term='puricura'/><category term='poker face'/><category term='kleenex'/><category term='steve madden'/><category term='animex'/><category term='maquillaje'/><category term='birthday'/><category term='monarca'/><category term='Potential Breakup Song'/><category term='PERSONA MUSIC LIVE Velvetroom in AKASAKA BLITZ'/><category term='examenes'/><category term='Lum no love song'/><category term='vs the world‎'/><category term='maternal heart'/><category term='videogames'/><category term='Paranormal Activity'/><category term='GTA Liberty City Stories'/><category term='Captain America'/><category term='arashi'/><category term='diseñador'/><category term='wishlist'/><category term='Bridesmaids'/><category term='passion'/><category term='Kana Hanasawa'/><category term='cojín'/><category term='polka dots'/><category term='chaos'/><category term='psp'/><category term='Pirates of the Caribbean 4'/><category term='landscape'/><category term='pyro'/><category term='D City Rock'/><category term='nyappy'/><title type='text'>★ Charlyn Chan Kingdom ★</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://charlynchan.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://charlynchan.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default?start-index=101&amp;max-results=100'/><author><name>Charlyn.Chan</name><uri>http://www.blogger.com/profile/01232086608232264491</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-YpEi8N4MkHA/TxyLHsbmIEI/AAAAAAAAAGY/RtjAuuUllDA/s220/7%2Bcopy%2B2.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>168</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7926921640048873443.post-6040926030135815228</id><published>2012-01-04T23:00:00.005-06:00</published><updated>2012-01-05T15:03:02.398-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tokio Blues'/><category scheme='http://www.blogger.com/atom/ns#' term='Perfume'/><category scheme='http://www.blogger.com/atom/ns#' term='L.A. Noir'/><category scheme='http://www.blogger.com/atom/ns#' term='Death Space'/><category scheme='http://www.blogger.com/atom/ns#' term='Mary Kay'/><category scheme='http://www.blogger.com/atom/ns#' term='Haruki Murakami'/><category scheme='http://www.blogger.com/atom/ns#' term='Final Fantasy XIII'/><category scheme='http://www.blogger.com/atom/ns#' term='Al sur de la frontera al oeste del sol'/><category scheme='http://www.blogger.com/atom/ns#' term='After Dark'/><category scheme='http://www.blogger.com/atom/ns#' term='Miss Dior Cherie'/><category scheme='http://www.blogger.com/atom/ns#' term='Marvel vs. Capcom 3 Ultimate'/><title type='text'>2012 ~ Here we go again!</title><content type='html'>&lt;img align="left" border="0" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg" /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Ánimo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Normal~&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Escuchando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Just be Friends - halyosy&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Comiendo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Nada&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Tomando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Nada&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;Jugando:&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Atelier Annie: Alchemists of Sera Island&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img height="200" src="http://24.media.tumblr.com/tumblr_lx4xfjR4vf1qif29do1_250.gif" width="150" /&gt; &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;¡Feliz 2012 queridos lectores!&amp;nbsp; &lt;img alt="2012デコメ絵文字" src="http://media.emjb.jp/img/pictograms/196986.gif" /&gt;&lt;br /&gt;Espero que hayan tenido una linda navidad en compañía de sus seres queridos&lt;img src="http://media.tumblr.com/tumblr_lwbaldYPiB1qcfn0j.gif" /&gt;&lt;img src="http://media.tumblr.com/tumblr_lwbaltHZlD1qcfn0j.gif" /&gt;&amp;nbsp;y les deseo lo mejor para este año que viene&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lvli5cHKPW1qcfn0j.gif" /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;¿Cómo se la pasaron? Les contaré como estuvieron estas fiestas decembrinas&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lv6c0n4esO1qcfn0j.gif" /&gt;~&lt;/div&gt;&lt;div style="text-align: left;"&gt;En navidad me la pasé con mi familia y Wal con la suya, pero ese día en la tarde nos vimos y nos dimos nuestros regalitos&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lv6c0y4IxU1qcfn0j.gif" /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Yo le compré cuatro juegos para PlayStation 3: L.A. Noir,&amp;nbsp;Marvel vs. Capcom 3 Ultimate, Death Space y Final Fantasy XIII (espero que el FF13 esté bueno para que me lo preste&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lurs5yA6Bd1qcfn0j.gif" /&gt;) y el libro de Robinson Crusoe.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;El me regaló tres libritos (y los tres de Haruki Murakami jiji) "Al sur de la frontera, Al oeste del sol", "After Dark" (que es el que estoy leyendo ahorita) y "Tokio Blues".&lt;/div&gt;&lt;div style="text-align: left;"&gt;A lo que llevo del libro me ha parecido muy bueno, me está gustando bastante ♥&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/xmas2.jpg" /&gt; &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/xmas8.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Y para cerrar con broche de oro mis regalitos me compró algo extra...&lt;/div&gt;&lt;div style="text-align: left;"&gt;"Miss Dior Chérie" de Dior... huele delicioso, era uno de los perfumes que quería ♥&lt;br /&gt;Muchas gracias amor&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lurs5e1StV1qcfn0j.gif" /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/xmas1.jpg" /&gt; &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/xmas3.jpg" /&gt; &lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;En el trabajo también me dieron otro regalito...&lt;br /&gt;¡Otro perfume! Este lo voy a traer en mi bolsa~&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/xmas9.jpg" /&gt; &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;En año nuevo me la pasé aquí en mi casa y Wal vino a cenar con nosotros... cenamos Roast Beef con pasta y un pastel de Crunch como postre ♥ Todo estuvo delicioso&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lu9wa58mkb1qf290m.gif" /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;¿Ustedes como se la pasaron estas fechas?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://media.tumblr.com/tumblr_ll5iguYmzR1qfel73.gif" /&gt; &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7926921640048873443-6040926030135815228?l=charlynchan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://charlynchan.blogspot.com/feeds/6040926030135815228/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7926921640048873443&amp;postID=6040926030135815228' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/6040926030135815228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/6040926030135815228'/><link rel='alternate' type='text/html' href='http://charlynchan.blogspot.com/2012/01/2012-here-we-go-again_04.html' title='2012 ~ Here we go again!'/><author><name>Charlyn.Chan</name><uri>http://www.blogger.com/profile/01232086608232264491</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-YpEi8N4MkHA/TxyLHsbmIEI/AAAAAAAAAGY/RtjAuuUllDA/s220/7%2Bcopy%2B2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7926921640048873443.post-4564330683087120656</id><published>2011-12-25T22:37:00.000-06:00</published><updated>2011-12-25T22:37:00.078-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='merry xmas'/><title type='text'>Merry Christmas ♥</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/xmas.png" /&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7926921640048873443-4564330683087120656?l=charlynchan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://charlynchan.blogspot.com/feeds/4564330683087120656/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7926921640048873443&amp;postID=4564330683087120656' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/4564330683087120656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/4564330683087120656'/><link rel='alternate' type='text/html' href='http://charlynchan.blogspot.com/2011/12/merry-christmas.html' title='Merry Christmas ♥'/><author><name>Charlyn.Chan</name><uri>http://www.blogger.com/profile/01232086608232264491</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-YpEi8N4MkHA/TxyLHsbmIEI/AAAAAAAAAGY/RtjAuuUllDA/s220/7%2Bcopy%2B2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7926921640048873443.post-3199130707522428592</id><published>2011-12-18T19:14:00.000-06:00</published><updated>2011-12-18T19:14:02.798-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sombrero'/><category scheme='http://www.blogger.com/atom/ns#' term='anillos'/><category scheme='http://www.blogger.com/atom/ns#' term='panda'/><category scheme='http://www.blogger.com/atom/ns#' term='nendoroid'/><category scheme='http://www.blogger.com/atom/ns#' term='gorro'/><category scheme='http://www.blogger.com/atom/ns#' term='rose'/><category scheme='http://www.blogger.com/atom/ns#' term='LovePlus'/><category scheme='http://www.blogger.com/atom/ns#' term='rojo bermelo'/><category scheme='http://www.blogger.com/atom/ns#' term='yummy breakfast'/><category scheme='http://www.blogger.com/atom/ns#' term='Atelier Annie'/><category scheme='http://www.blogger.com/atom/ns#' term='Hell Babies'/><category scheme='http://www.blogger.com/atom/ns#' term='Takane Manaka'/><category scheme='http://www.blogger.com/atom/ns#' term='Junko Mizuno'/><category scheme='http://www.blogger.com/atom/ns#' term='kidrobot'/><category scheme='http://www.blogger.com/atom/ns#' term='cute rings'/><title type='text'>Almost Christmas...</title><content type='html'>&lt;img align="left" border="0" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg" /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Ánimo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Frío&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lwbal4RNXC1qcfn0j.gif" /&gt;~&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Escuchando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Nada&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Comiendo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Nada&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Tomando: Nada&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Jugando:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #664c59;"&gt;Atelier Annie: Alchemists of Sera Island&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://media.tumblr.com/tumblr_lw9c9jELQd1qcfn0j.gif" /&gt; &lt;/div&gt;&lt;br /&gt;¡Otra vez los abandoné!&lt;br /&gt;He tenido bastante trabajo, y a eso&amp;nbsp;sumándole&amp;nbsp;las posadas, reuniones e intercambios... pues se me ha ido volando el tiempo.&lt;br /&gt;&lt;br /&gt;De hecho les contaré sobre el intercambio que hicimos en el trabajo, a mi me tocó Gio (mi 'hermana' del trabajo jiji) y cómo descubrió que ella era mi secret santa, pues fuimos a comprar sus regalos nuestra 'madre', ella y yo &amp;nbsp;&lt;img alt="Photobucket" src="http://i67.photobucket.com/albums/h312/CherrySodaGirl/p3.gif" /&gt;&lt;br /&gt;Le compré una pashmina de color negro con unos pompones en una tienda de artesanías en San Agustín (y como ví una color uva que me encantó... pues yo también compre una ♥), también le compré tres anillos y un llavero en forma de televisión que encendía y hacía soniditos~&lt;br /&gt;&lt;br /&gt;Ese día que le compré los regalos también aproveché para consentirme un poco con ayuda de mi aguinaldo&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lw97tfIFhn1qcfn0j.gif" /&gt;&amp;nbsp;les mostraré:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/jk7.jpg" /&gt; &lt;/div&gt;&lt;div style="text-align: center;"&gt;Este anillo me costó un poco caro, pero es de plata y la forma de la rosa es hermosa.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img border="1" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/jk8.jpg" /&gt;&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Este otro&amp;nbsp;también&amp;nbsp;en forma de rosa es de metal.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img border="1" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/jk9.jpg" /&gt;&lt;br /&gt;¡Me enamoré de este! ♥&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img border="1" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/jk10.jpg" /&gt;&lt;br /&gt;La piedra de este anillo me encantó~&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img border="1" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/jk12.jpg" /&gt;&lt;br /&gt;Generalmente no soy fanática del color verde, pero este tenía algo especial...&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img border="1" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/jk13.jpg" /&gt;&lt;br /&gt;... ¡podía abrirse! es como tener un compartimento secreto ♥&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img border="1" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/jk11.jpg" /&gt;&lt;br /&gt;Unos aretes de perla~&lt;br /&gt;&lt;br /&gt;&lt;img border="1" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/jk14.jpg" /&gt; &lt;br /&gt;Un llavero de letra W &amp;nbsp;&lt;img alt="Photobucket" src="http://i67.photobucket.com/albums/h312/CherrySodaGirl/earsu.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;Y estos fueron mis regalitos del intercambio: una libreta hard cover de Junko Mizuno "Hell Babies", un monedero de material reciclado que dice "She works hard for the money" (¡y vaya que si! &lt;img src="http://media.tumblr.com/tumblr_lw99e0Ql4G1qcfn0j.gif" /&gt;&amp;nbsp;) y un borrador gigante en forma de sushi.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img border="1" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/jk1.jpg" /&gt; &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/jk4.png" /&gt; &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img border="1" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/jk3.jpg" /&gt; &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img border="1" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/jk2.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Y este fué un regalo de mi jefa, un llavero en forma de leche de Kidrobot&amp;nbsp;&lt;img alt="コーヒー牛乳デコメ絵文字" src="http://media.emjb.jp/img/pictograms/141375.gif" style="text-align: center;" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img border="1" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/jk6.jpg" /&gt; &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Esos fueron mis regalos ♥&lt;br /&gt;El viernes saliendo me fuí al centro de la ciudad con Gio, porque yo andaba en búsqueda de un gorrito en forma de panda que vi el año pasado y me dijeron que allí lo podía encontrar&amp;nbsp;&lt;img alt="アンパンダデコメ絵文字" src="http://media.emjb.jp/img/pictograms/192680.gif" /&gt;&lt;br /&gt;Y miren lo que compré~&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/jk20.jpg" /&gt;&lt;br /&gt;yaaay! I'm a panda now&amp;nbsp;&lt;img alt="うんうん☆パンダデコメ絵文字" src="http://media.emjb.jp/img/pictograms/186992.gif" /&gt;&lt;/div&gt;&lt;br /&gt;También aproveché la vuelta para ir a recoger una nueva figura... Manaka Takane de LovePlus&amp;nbsp;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_manaka_emoji.gif" /&gt;&lt;br /&gt;Desde que jugué el LovePlus me encantó el diseño de Manaka... es tan linda! ♥ (y ahora convertida en nendoroid aún más!)&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/jk18.jpg" /&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/jk19.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/jk16.jpg" /&gt; &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/jk17.jpg" /&gt; &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/jk15.png" /&gt; &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/manaka_gif.gif" /&gt; &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Por cierto... ¡ya casi es navidad!&lt;/div&gt;&lt;div style="text-align: left;"&gt;¿Ya tienen sus regalos y sus wishlist?&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;img src="http://media.tumblr.com/tumblr_lw9bnnsNBL1qcfn0j.gif" /&gt; &lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://media.tumblr.com/tumblr_ll5iguYmzR1qfel73.gif" /&gt; &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7926921640048873443-3199130707522428592?l=charlynchan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://charlynchan.blogspot.com/feeds/3199130707522428592/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7926921640048873443&amp;postID=3199130707522428592' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/3199130707522428592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/3199130707522428592'/><link rel='alternate' type='text/html' href='http://charlynchan.blogspot.com/2011/12/almost-christmas.html' title='Almost Christmas...'/><author><name>Charlyn.Chan</name><uri>http://www.blogger.com/profile/01232086608232264491</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-YpEi8N4MkHA/TxyLHsbmIEI/AAAAAAAAAGY/RtjAuuUllDA/s220/7%2Bcopy%2B2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7926921640048873443.post-3160508317856938926</id><published>2011-11-26T19:23:00.002-06:00</published><updated>2011-11-26T20:48:52.893-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mameshiba'/><category scheme='http://www.blogger.com/atom/ns#' term='special edtion'/><category scheme='http://www.blogger.com/atom/ns#' term='Atelier Totori'/><category scheme='http://www.blogger.com/atom/ns#' term='disecada'/><category scheme='http://www.blogger.com/atom/ns#' term='edamame'/><category scheme='http://www.blogger.com/atom/ns#' term='mariposa'/><category scheme='http://www.blogger.com/atom/ns#' term='cuadro'/><category scheme='http://www.blogger.com/atom/ns#' term='Adventurer of Arland'/><category scheme='http://www.blogger.com/atom/ns#' term='persona 2 eternal punishment soundtrack'/><category scheme='http://www.blogger.com/atom/ns#' term='libro de arte'/><category scheme='http://www.blogger.com/atom/ns#' term='artbook'/><category scheme='http://www.blogger.com/atom/ns#' term='monarca'/><category scheme='http://www.blogger.com/atom/ns#' term='forever 21'/><title type='text'>Pilgrimage</title><content type='html'>&lt;img align="left" border="0" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg" /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Ánimo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Normal&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lu3loi6Cjc1qcfn0j.gif" /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Escuchando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Pilgrimage - Atelier Totori OST&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Comiendo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Nada&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Tomando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Nada&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;Jugando: &lt;/b&gt;SMT: Strange Journey&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;img src="http://media.tumblr.com/tumblr_ll5h6mlfws1qfel73.gif" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Hoy les mostraré lo que me llegó el día de ayer&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lu3loeZUsQ1qcfn0j.gif" /&gt;,&amp;nbsp;llegué a la casa y ya lo había recogido mi madre... Atelier Totori:&amp;nbsp;The Adventurer of Arland, la segunda parte de la saga Arland&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lu9rzjuUeY1qf290m.gif" /&gt;&lt;br /&gt;El arte de la caja está hermoso (es una de las razones por las cuáles me enamoré de la saga Arland ♥), e incluye el juego (obviamente&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lu3lpg2n4a1qcfn0j.gif" /&gt;), el soundtrack y un libro de arte.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/totori1-1.png" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/totori2-1.png" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/totori3-1.png" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/totori7.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/totori8.jpg" /&gt;&lt;br /&gt;Me encantó la portada ♥&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/totori9.jpg" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Necesito un poco de tiempo libre para poder empezarlos&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lurs5yA6Bd1qcfn0j.gif" /&gt;&lt;br /&gt;Cambiando un poco de tema, el miércoles pasado Wal y Yo fuímos al Wok a comer porque teníamos ganas de sushi, y como entrada yo pedí deliciosos edamames&amp;nbsp;&lt;img alt="枝豆デコメ絵文字" src="http://media.emjb.jp/img/pictograms/76218.gif" /&gt;&amp;nbsp;(esperaba que me apareciera un mameshiba y me dijera algo&amp;nbsp;&lt;img alt="枝豆しば バイバイデコメ絵文字" src="http://media.emjb.jp/img/pictograms/130423.gif" /&gt;)&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/totori12.jpg" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;También hace unos días mi hermana me consiguió un lindo collar de Forever 21 en forma de cámara&amp;nbsp;&lt;img alt="カメラデコメ絵文字" src="http://media.emjb.jp/img/pictograms/153302.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/totori10.jpg" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Y para finalizar, les mostraré como quedó la mariposa monarca (muerta) que se encontraron mis hermanas en la calle... me gustan mucho las mariposas, me parecen bellas y misteriosas.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/totori13.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://media.tumblr.com/tumblr_ll5iguYmzR1qfel73.gif" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7926921640048873443-3160508317856938926?l=charlynchan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://charlynchan.blogspot.com/feeds/3160508317856938926/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7926921640048873443&amp;postID=3160508317856938926' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/3160508317856938926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/3160508317856938926'/><link rel='alternate' type='text/html' href='http://charlynchan.blogspot.com/2011/11/pilgrimage.html' title='Pilgrimage'/><author><name>Charlyn.Chan</name><uri>http://www.blogger.com/profile/01232086608232264491</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-YpEi8N4MkHA/TxyLHsbmIEI/AAAAAAAAAGY/RtjAuuUllDA/s220/7%2Bcopy%2B2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7926921640048873443.post-3799978060224062552</id><published>2011-11-19T20:09:00.001-06:00</published><updated>2011-11-19T20:09:42.920-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='persona 2'/><category scheme='http://www.blogger.com/atom/ns#' term='japanese'/><category scheme='http://www.blogger.com/atom/ns#' term='figura'/><category scheme='http://www.blogger.com/atom/ns#' term='ost'/><category scheme='http://www.blogger.com/atom/ns#' term='The Alchemist of Arland'/><category scheme='http://www.blogger.com/atom/ns#' term='batsu'/><category scheme='http://www.blogger.com/atom/ns#' term='eternal punishment'/><category scheme='http://www.blogger.com/atom/ns#' term='figure'/><category scheme='http://www.blogger.com/atom/ns#' term='Megami Ibunroku Persona'/><category scheme='http://www.blogger.com/atom/ns#' term='Atelier Rorona'/><category scheme='http://www.blogger.com/atom/ns#' term='Aigis'/><category scheme='http://www.blogger.com/atom/ns#' term='professional illustrators'/><category scheme='http://www.blogger.com/atom/ns#' term='Chogokin Persona 3 Aegis'/><title type='text'>Beauty of Destiny</title><content type='html'>&lt;img align="left" border="0" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg" /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Ánimo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Normal&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lub0kpjCKu1qf290m.gif" /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Escuchando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Beauty of Destiny - P4A&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Comiendo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Nada&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Tomando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Nada&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;Jugando: &lt;/b&gt;Nada&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://media.tumblr.com/tumblr_lpgfsqpyJz1qfel73.gif" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;¡Esta vez no dejaré que pase tanto tiempo sin actualizar!&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lurs56MX4b1qcfn0j.gif" /&gt;&lt;br /&gt;Estos últimos días han sido de muchas compras, les mostraré.&lt;br /&gt;&lt;br /&gt;La semana pasada fuí a recoger una cosa que había pedido... Atelier Rorona: The Alchemist of Arland para el PS3. Desde que vi las ilustraciones me enamoré del juego y ahora estoy en espera de otro más (pero eso se los contaré cuando llegue&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lurs50XLL61qcfn0j.gif" /&gt;)&lt;br /&gt;Me encanta porque trae un libro de arte hard cover, y en el vienen ilustraciones muy lindas y el profile de los personajes&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lup9g0eqrP1qcfn0j.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/ar2.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/ar3.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/ar4.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/ar1.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/ar5.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/ar6.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Otras de las cosas que compré fueron estos dos videojuegos... Megami Ibunroku Persona y Persona 2: Batsu (Eternal Punishment)&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lub0lxQiMn1qf290m.gif" style="text-align: -webkit-auto;" /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/per1.jpg" style="text-align: -webkit-auto;" /&gt;&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/per2.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/per3.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/per4.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/per5.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/per6.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://media.tumblr.com/tumblr_lsq3zv3eBX1qcfn0j.gif" style="text-align: -webkit-auto;" /&gt;&amp;nbsp;¡Ahora los tres hermanitos del PSX están juntos!&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lsq3zv3eBX1qcfn0j.gif" style="text-align: -webkit-auto;" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/per7.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/per8.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Y no olvidemos el OST del Eternal Punishment...&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/per9.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/per10.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;(Este estuche para DS fué un regalo de mi hermana mayor&amp;nbsp;&lt;img alt="ピーチ姫デコメ絵文字" src="http://media.emjb.jp/img/pictograms/48685.gif" style="text-align: -webkit-auto;" /&gt;)&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;Para cerrar con broche de oro esta entrada, les mostraré una figura que mandé pedir hace tiempo y a finales de octubre llegó: &lt;b&gt;Chogokin Persona 3 Aegis&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;La verdad está muy bien hecha, tiene varias partes de metal y muchos accesorios ♥&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/aigis1.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/aigis2.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/aigis3.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/aigis0.png" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/aigis4.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/aigis5.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/aigis6.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/aigis7.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/aigis_gif.gif" /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Mandé pedir varias figuras más, pero como dije anteriormente, cuando lleguen les digo cuales son&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_ltotmxsN3c1qcfn0j.gif" style="text-align: -webkit-auto;" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;img src="http://media.tumblr.com/tumblr_ltsvu4JfTu1qcfn0j.gif" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7926921640048873443-3799978060224062552?l=charlynchan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://charlynchan.blogspot.com/feeds/3799978060224062552/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7926921640048873443&amp;postID=3799978060224062552' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/3799978060224062552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/3799978060224062552'/><link rel='alternate' type='text/html' href='http://charlynchan.blogspot.com/2011/11/beauty-of-destiny.html' title='Beauty of Destiny'/><author><name>Charlyn.Chan</name><uri>http://www.blogger.com/profile/01232086608232264491</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-YpEi8N4MkHA/TxyLHsbmIEI/AAAAAAAAAGY/RtjAuuUllDA/s220/7%2Bcopy%2B2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7926921640048873443.post-8555228876768013286</id><published>2011-11-13T20:29:00.002-06:00</published><updated>2011-11-13T20:29:59.128-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='halloween'/><category scheme='http://www.blogger.com/atom/ns#' term='pikachu'/><category scheme='http://www.blogger.com/atom/ns#' term='the strokes'/><category scheme='http://www.blogger.com/atom/ns#' term='machu picchu'/><title type='text'>Strokes + Halloween</title><content type='html'>&lt;img align="left" border="0" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg" /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Ánimo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Machu Picchu - The Strokes&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Escuchando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Nada&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Comiendo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Nada&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Tomando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Nada&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;Jugando: &lt;/b&gt;Super Princess Peach&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://media.tumblr.com/tumblr_luckt2d2bi1qfel73.gif" /&gt;&lt;/div&gt;&lt;br /&gt;¡Todo el tiempo del mundo sin escribir!&lt;br /&gt;Tengo tantas cosas que contar...&amp;nbsp;empecemos&amp;nbsp;por el día 14 de Octubre.&lt;br /&gt;Ese día fué el concierto de The Strokes en mi ciudad, y como a mi hermana menor le gustan, la invité (y recordé viejos tiempos... cómo cuando a mi me gustaban&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lub0ldtt5b1qf290m.gif" /&gt;)&lt;br /&gt;Nos la pasamos muy bien, aunque yo estaba cansada pues había&amp;nbsp;tenido&amp;nbsp;una semana pesada en el trabajo&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lub0k2V8Da1qf290m.gif" /&gt;...&lt;br /&gt;Saliendo del concierto compré una playera par a mi hermana y otra para mi~ así como mucha comida basura haha, papitas y un hot-dog~&lt;br /&gt;&lt;br /&gt;Semanas después ya se acercaba halloween, así que fuimos mi hermana menor, mi sobrina, Wal y Yo a HEB a comprar dulces y me encontré con varias cosas lindas&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lub0iqbJxj1qf290m.gif" /&gt;&lt;br /&gt;Los cuernos de diablita tenía mucho tiempo buscando unos que me convencieran, y estos cuando los vi me enamoré de ellos, son como de tela vinilica&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lsok8xHSEj1qcfn0j.gif" /&gt;&lt;br /&gt;La diadema de "zombie" también me gustó mucho, se ve muy linda&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lspoeg1sgu1qfel73.gif" /&gt;&lt;br /&gt;Compramos muchos dulces (los cuales la mayoría los llevé al trabajo en mi caldero de bruja&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lsok9dexrh1qcfn0j.gif" /&gt;&amp;nbsp;así como el cuervo que está super lindo ♥&lt;br /&gt;El sombrero de bruja con polka dots se lo compré a mi sobrina, pero Korilakkuma se lo quiso poner un momento para la foto!&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lsq40nH5031qcfn0j.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/ar15.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/ar16.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/ar12.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/ar13.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/ar14.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/ar8.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Después de ir a comprar cosas para el halloween, nos pasamos al McDonald's para cenar&amp;nbsp;&lt;img alt="ドナルド・マクドナルドデコメ絵文字" src="http://media.emjb.jp/img/pictograms/170816.gif" style="text-align: -webkit-auto;" /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Le compré una cajita feliz a mi sobrina y me regaló el juguete... eran de Pokémon! y nos tocó Pikachu&amp;nbsp;&lt;img alt="ピカチュウデコメ絵文字" src="http://media.emjb.jp/img/pictograms/147363.gif" style="text-align: -webkit-auto;" /&gt;&amp;nbsp;♥&amp;nbsp;Está super bien hecho y muy lindo&amp;nbsp;&lt;img alt="ピカチュウ　ハートデコメ絵文字" src="http://media.emjb.jp/img/pictograms/162000.gif" style="text-align: -webkit-auto;" /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/ar11.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Yo me la pasé súper divertido en Halloween... ¿y ustedes?&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://media.tumblr.com/tumblr_lsu2r3ezf31qcfn0j.gif" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7926921640048873443-8555228876768013286?l=charlynchan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://charlynchan.blogspot.com/feeds/8555228876768013286/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7926921640048873443&amp;postID=8555228876768013286' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/8555228876768013286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/8555228876768013286'/><link rel='alternate' type='text/html' href='http://charlynchan.blogspot.com/2011/11/strokes-halloween.html' title='Strokes + Halloween'/><author><name>Charlyn.Chan</name><uri>http://www.blogger.com/profile/01232086608232264491</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-YpEi8N4MkHA/TxyLHsbmIEI/AAAAAAAAAGY/RtjAuuUllDA/s220/7%2Bcopy%2B2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7926921640048873443.post-8646110498539533555</id><published>2011-10-23T17:28:00.008-05:00</published><updated>2011-10-23T17:37:19.278-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sky&apos;s the limit'/><category scheme='http://www.blogger.com/atom/ns#' term='p4a'/><category scheme='http://www.blogger.com/atom/ns#' term='Shihoko Hirata'/><category scheme='http://www.blogger.com/atom/ns#' term='Review'/><category scheme='http://www.blogger.com/atom/ns#' term='persona 4 the animation'/><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Juice'/><category scheme='http://www.blogger.com/atom/ns#' term='persona 4'/><title type='text'>sky's the limit</title><content type='html'>&lt;img align="left" border="0" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg" /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Ánimo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Feliz&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Escuchando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;sky's the limit - P4A opening&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Comiendo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Nada&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Tomando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Nada&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;Jugando: &lt;/b&gt;Nada&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/hellop4_.png" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;Por fin les traigo mi review de &amp;nbsp;Persona 4: The Animation.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;Aunque ya va en el capítulo 3, estos tres han sido más que perfectos... me hace recordar tantas cosas tan bonitas... tantos momentos innolvidables... y todo gracias a un videojuego.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;Me molesta que la gente diga que los videojuegos son para niños, cuando ni siquiera saben su historia (y lo profundas que pueden ser estas)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;Pero bueno, el motivo de esta entrada es para comentarles sobre la serie recién estrenada de este juego que en lo personal es mi favorito♥&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;&lt;br /&gt;La serie se estrenó el 7 de Octubre en japón, y gracias a los fansubs (en especial a EvermorE Fansub) la he podido ver en todo su esplendor ~&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;Va muy apegada al juego, y eso me parece más que perfecto, si, hay algunos ligeros cambios, pero nada que altere la historia (por el momento)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;&lt;br /&gt;Algo que me encantó totalmente es que se usó la música del juego para las situaciones de la serie, eso me parece más que acertado, así como la pantalla del cambio de día ♥&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt; El opening y ending son interpretados por Shihoko Hirata y Lotus Juice... ¿que podría ser mejor?&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;Es hora de screenshoots!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;&lt;img height="179" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/sab_p1.jpg" width="320" /&gt;&amp;nbsp;&lt;/span&gt;&lt;img height="179" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/sab_p2.jpg" width="320" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img height="179" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/sab_p3.jpg" width="320" /&gt;&amp;nbsp;&lt;img height="179" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/sab_p4.jpg" width="320" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img height="179" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/sab_p5.jpg" width="320" /&gt;&amp;nbsp;&lt;img height="179" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/sab_p6.jpg" width="320" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img height="179" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/sab_p7.jpg" width="320" /&gt;&amp;nbsp;&lt;img height="179" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/sab_p8.jpg" width="320" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img height="179" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/sab_p9.jpg" width="320" /&gt;&amp;nbsp;&lt;img height="179" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/sab_p10.jpg" width="320" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img height="179" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/sab_p11.jpg" width="320" /&gt;&amp;nbsp;&lt;img height="179" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/sab_p12.jpg" width="320" /&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #4c1130; font-family: Verdana, sans-serif;"&gt;&lt;b&gt;Calificación: 10/10&lt;/b&gt;&lt;br /&gt;Para mi, como fan del Persona, merece un perfecto 10/10.&lt;br /&gt;La animación, la música, los nuevos openings y endings, la historia...&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #4c1130; font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #4c1130; font-family: Verdana, sans-serif;"&gt;Si algo le faltaba al Persona para ser perfecto eran animaciones, ¿ahora ya podemos decir oficialmente completo? &lt;b&gt;¡NO!&lt;/b&gt; porque aún hay mucho más Persona 4... &lt;br /&gt;En las próximas entradas comentaré al respecto ;3&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #4c1130; font-family: Verdana, sans-serif;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/sab_p0.jpg" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #4c1130; font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7926921640048873443-8646110498539533555?l=charlynchan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://charlynchan.blogspot.com/feeds/8646110498539533555/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7926921640048873443&amp;postID=8646110498539533555' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/8646110498539533555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/8646110498539533555'/><link rel='alternate' type='text/html' href='http://charlynchan.blogspot.com/2011/10/skys-limit.html' title='sky&apos;s the limit'/><author><name>Charlyn.Chan</name><uri>http://www.blogger.com/profile/01232086608232264491</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-YpEi8N4MkHA/TxyLHsbmIEI/AAAAAAAAAGY/RtjAuuUllDA/s220/7%2Bcopy%2B2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7926921640048873443.post-3834189728754028363</id><published>2011-10-05T22:26:00.008-05:00</published><updated>2011-10-16T18:04:33.011-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ihop'/><category scheme='http://www.blogger.com/atom/ns#' term='Shakira'/><category scheme='http://www.blogger.com/atom/ns#' term='Sale el Sol'/><category scheme='http://www.blogger.com/atom/ns#' term='Ventas.'/><category scheme='http://www.blogger.com/atom/ns#' term='Sabritas'/><title type='text'>Po-ta-toes</title><content type='html'>&lt;img align="left" border="0" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg" /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Ánimo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Cansada&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Escuchando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Sale el Sol - Shakira&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Comiendo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Nada&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Tomando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Nada&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;Jugando: &lt;/b&gt;Nada&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;img src="http://media.tumblr.com/tumblr_ll5h6mlfws1qfel73.gif" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ya tenía una semana de no escribir!&lt;br /&gt;Hoy les contaré que fuí lo que hice el viernes pasado, el día que fuí a una sucursal Sabritas para hacer la ruta de ventas.&lt;br /&gt;&lt;br /&gt;Me tuve que levantar super temprano para estar a las 6:40am en la sucursal, me reuní con un nuevo compañero de trabajo y cada quien se fué con un vendedor.&lt;br /&gt;&lt;br /&gt;Estuve todo el día con el, fue divertido andar en el camión (en el que yo estuve es como el de la izquierda) aunque si terminé cansada~ &lt;br /&gt;Cuando mi padre me fué a recoger me iba durmiendo en el carro!&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lsvzwzH4xW1qcfn0j.gif" /&gt;&lt;br /&gt;&lt;div&gt;Pero bueno, fue una experiencia diferente y divertida&amp;nbsp;&lt;img alt="拍手デコメ絵文字" src="http://media.emjb.jp/img/pictograms/179218.gif" /&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/sab1.jpg" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ese mismo día que llegué a la casa saqué todas las fotos que traía en mi celular, y encontré unas que tomé el otro día:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/sab2.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/sab3.jpg" /&gt;&lt;br /&gt;A esta le puse unos efectos que trae la cámara del celular&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lsvzygKloN1qcfn0j.gif" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/sab4.jpg" /&gt;&amp;nbsp;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/sab5.jpg" /&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;img src="http://media.tumblr.com/tumblr_ll5iguYmzR1qfel73.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7926921640048873443-3834189728754028363?l=charlynchan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://charlynchan.blogspot.com/feeds/3834189728754028363/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7926921640048873443&amp;postID=3834189728754028363' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/3834189728754028363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/3834189728754028363'/><link rel='alternate' type='text/html' href='http://charlynchan.blogspot.com/2011/10/po-ta-toes.html' title='Po-ta-toes'/><author><name>Charlyn.Chan</name><uri>http://www.blogger.com/profile/01232086608232264491</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-YpEi8N4MkHA/TxyLHsbmIEI/AAAAAAAAAGY/RtjAuuUllDA/s220/7%2Bcopy%2B2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7926921640048873443.post-3758568403517210730</id><published>2011-10-02T20:32:00.001-05:00</published><updated>2011-10-11T22:28:52.351-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='persona 2'/><category scheme='http://www.blogger.com/atom/ns#' term='Midnight in Paris'/><category scheme='http://www.blogger.com/atom/ns#' term='Contando a mis Ex'/><category scheme='http://www.blogger.com/atom/ns#' term='cushion'/><category scheme='http://www.blogger.com/atom/ns#' term='El lago de los Cisnes'/><category scheme='http://www.blogger.com/atom/ns#' term='cojín'/><category scheme='http://www.blogger.com/atom/ns#' term='Gant'/><category scheme='http://www.blogger.com/atom/ns#' term='korilakkuma'/><category scheme='http://www.blogger.com/atom/ns#' term='El Cascanueces'/><category scheme='http://www.blogger.com/atom/ns#' term='Ballet de Monterrey'/><category scheme='http://www.blogger.com/atom/ns#' term='innocent sin'/><category scheme='http://www.blogger.com/atom/ns#' term='bdm'/><category scheme='http://www.blogger.com/atom/ns#' term='What&apos;s your number?'/><title type='text'>Innocent Swan</title><content type='html'>&lt;img align="left" border="0" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg" /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Ánimo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lpehxq81kf1qcfn0j.gif" /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Escuchando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;SETSUNA -&amp;nbsp;SHIKI feat. Mao Koyima&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Comiendo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Nada&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Tomando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Nada&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;Jugando: &lt;/b&gt;Catherine&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;img src="http://media.tumblr.com/tumblr_ll5h6mlfws1qfel73.gif" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;Después de la entrada ñoña&amp;nbsp;&lt;/span&gt;&lt;img src="http://media.tumblr.com/tumblr_lpzmbjCEP21qfel73.gif" /&gt;, vengo con buenas noticias~&lt;br /&gt;Esta semana estuvo llena de cosas lindas, el martes me llegó un juego que estuve esperando tiempo atrás: &lt;b&gt;SMT: Persona 2 Innocent Sin&lt;/b&gt;!&lt;br /&gt;El remake del original que solo salió en tierras niponas... ya había empezado a jugarlo con un fansub que hicieron, pero ahora que está para PSP con gráficas mejoradas, nueva música y extras... es mucho mejor&amp;nbsp;&lt;span class="Apple-style-span" style="background-color: white; color: #664c59; font-family: Verdana, Geneva, sans-serif; font-size: 14px; line-height: 19px;"&gt;★&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/is1.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/is2.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/is7.jpg" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;El jueves tambien me llegó algo muy especial... algo que me compró Wal, lo ví el martes y el jueves ya estaba en casa ♥&lt;br /&gt;Un enorme cojín de Korilakkuma!&amp;nbsp;&lt;img alt="コリラックマデコメ絵文字" src="http://media.emjb.jp/img/pictograms/148029.gif" /&gt;&lt;br /&gt;Está hermoso... Super suavecito y abrazable!&amp;nbsp;&lt;img alt="リラックマデコメ絵文字" src="http://media.emjb.jp/img/pictograms/142671.gif" /&gt;&amp;nbsp; (Además me la mandaron en una bolsa gigante de TAITO~)&amp;nbsp;Muchas gracias amor! ♥&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/is3.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/is4.jpg" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;El viernes salimos Wal y Yo (después de un día de trabajo y comidas de restaurantes) y&amp;nbsp;fuimos&amp;nbsp;a Valle Oriente, anduvimos caminando, cenamos en el Wok y de postre un Cinnabon&amp;nbsp;&lt;img src="http://nonnonya.blog.eonet.jp/.shared/images/emoticon/confident.gif" /&gt;&lt;br /&gt;Fuímos a Gant y compré unas cositas lindas~&lt;br /&gt;Un llavero en forma de rayo (que hace ruidos y prende) y un espejito.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/is5.jpg" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Después vimos la cartelera y ya estaba la película que yo quería ver "&lt;b&gt;What's your number?&lt;/b&gt;" o "&lt;b&gt;Contando a mis Ex&lt;/b&gt;", nos divertimos bastante! Está muy graciosa... a pesar de que es la típica mujer joven que es muy activa sexualmente (por no decirlo de otra forma haha) la historia es entretenida y muy divertida.&lt;br /&gt;Días anteriores habíamos visto la de "&lt;b&gt;Midnight in Paris&lt;/b&gt;", me encantó, recordé tanto mis clases de Historia del Arte ♥&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img height="400" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/mn1.jpg" width="268" /&gt;&amp;nbsp;&lt;img height="400" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/c1.jpg" width="269" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;El día de ayer también salimos, ya había llegado el día de ir a ver "El Lago de los Cisnes" por el Ballet de Monterrey!&amp;nbsp;&lt;img src="http://emoji.ameba.jp/img/user/he/he---love/883576.gif" /&gt;&amp;nbsp;Llegamos una hora antes, y nos comentaron que las puertas se abrían hasta dentro de media hora... así que nos sentamos en unas escaleras que están donde iba a ser la presentación, El Teatro de la Ciudad y comimos papas fritas y cacahuates&amp;nbsp;garapiñados&amp;nbsp;&lt;img src="http://nonnonya.blog.eonet.jp/.shared/images/emoticon/confident.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/is10.jpg" /&gt;&amp;nbsp;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/is12.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Ya cuando llegó la hora, entramos y como nuestros asientos eran numerados, no nos preocupamos de filas ni nada por el estilo&amp;nbsp;~&lt;/div&gt;&lt;div style="text-align: left;"&gt;Fué&amp;nbsp;una hermosa presentación, todos se veían muy animados... a mi en lo personal me gustó mucho y ya quiero que sea noviembre/diciembre para ir a ver "El Cascanueces"&amp;nbsp;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Emoticons/th_nutcracker.gif" /&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/is6.jpg" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Ya cuando salimos de la presentación, tomé unas cuantas fotografías ~&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/is8.jpg" /&gt;&amp;nbsp;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/is9.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/is11.jpg" /&gt;&amp;nbsp;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/is13.jpg" /&gt;&lt;/div&gt;&lt;br /&gt;Como ven no me pude resistir a comprar un algodón de azúcar y una manzana de caramelo&amp;nbsp;&lt;img alt="わたがし" src="http://blog-imgs-1-origin.fc2.com/emoji/2008-08-18/289073.gif" /&gt;&amp;nbsp;&lt;img src="http://png.findicons.com/files/icons/1204/trick_or_trash/16/caramel_apple.png" /&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="background-color: white; color: #664c59; font-family: Verdana, Geneva, sans-serif; font-size: 14px; line-height: 19px;"&gt;★&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://media.tumblr.com/tumblr_ll5iguYmzR1qfel73.gif" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7926921640048873443-3758568403517210730?l=charlynchan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://charlynchan.blogspot.com/feeds/3758568403517210730/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7926921640048873443&amp;postID=3758568403517210730' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/3758568403517210730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/3758568403517210730'/><link rel='alternate' type='text/html' href='http://charlynchan.blogspot.com/2011/10/innocent-swan.html' title='Innocent Swan'/><author><name>Charlyn.Chan</name><uri>http://www.blogger.com/profile/01232086608232264491</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-YpEi8N4MkHA/TxyLHsbmIEI/AAAAAAAAAGY/RtjAuuUllDA/s220/7%2Bcopy%2B2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7926921640048873443.post-802979544995018906</id><published>2011-09-25T18:06:00.004-05:00</published><updated>2011-09-25T18:08:33.457-05:00</updated><title type='text'>365 . My Will</title><content type='html'>&lt;img align="left" border="0" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg" /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Ánimo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Feliz&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Escuchando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;My Will - Dream&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Comiendo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Nada&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Tomando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Nada&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;Jugando: &lt;/b&gt;Nada&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Ha pasado un año desde que nos conocimos en persona...&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;En un año suceden demasiadas cosas, tal y como lo&amp;nbsp;&lt;/span&gt;platicábamos&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;ayer por la noche.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Te haz convertido en algo&amp;nbsp;&lt;/span&gt;esencial para mi...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;Hemos pasado 365 días juntos, en los cuales siempre hiciste que en mi rostro hubiese una sonrisa...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;i&gt;Siempre temí entregar mi vida...&amp;nbsp;Hoy ya no es así,&amp;nbsp;Me decidí&amp;nbsp;y nada habrá qué me lo impida...&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;i&gt;Quiero que mi corazón lo goce,&amp;nbsp;Un sentimiento el desconoce...&amp;nbsp;El de amar sin freno entregándose...&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/2409.png" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;Ayer&amp;nbsp;fue&amp;nbsp;un gran día, tu compañía no tiene precio....&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/24091.png" /&gt;&lt;br /&gt;Gracias por todo amor... Te amo.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;&lt;img alt="Photobucket" src="http://i67.photobucket.com/albums/h312/CherrySodaGirl/t00420021_0042002110427263049.gif" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7926921640048873443-802979544995018906?l=charlynchan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://charlynchan.blogspot.com/feeds/802979544995018906/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7926921640048873443&amp;postID=802979544995018906' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/802979544995018906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/802979544995018906'/><link rel='alternate' type='text/html' href='http://charlynchan.blogspot.com/2011/09/365-my-will.html' title='365 . My Will'/><author><name>Charlyn.Chan</name><uri>http://www.blogger.com/profile/01232086608232264491</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-YpEi8N4MkHA/TxyLHsbmIEI/AAAAAAAAAGY/RtjAuuUllDA/s220/7%2Bcopy%2B2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7926921640048873443.post-1256695966651578197</id><published>2011-09-10T18:19:00.000-05:00</published><updated>2011-09-10T18:19:26.857-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sanrio'/><category scheme='http://www.blogger.com/atom/ns#' term='Bridesmaids'/><category scheme='http://www.blogger.com/atom/ns#' term='Portr'/><category scheme='http://www.blogger.com/atom/ns#' term='Damas en Guerra'/><category scheme='http://www.blogger.com/atom/ns#' term='forever21'/><category scheme='http://www.blogger.com/atom/ns#' term='Rurouni Kenshin'/><category scheme='http://www.blogger.com/atom/ns#' term='Daphne'/><category scheme='http://www.blogger.com/atom/ns#' term='Green Lantern'/><category scheme='http://www.blogger.com/atom/ns#' term='dieño grafico'/><category scheme='http://www.blogger.com/atom/ns#' term='bershka'/><category scheme='http://www.blogger.com/atom/ns#' term='graduación'/><category scheme='http://www.blogger.com/atom/ns#' term='pull bear'/><category scheme='http://www.blogger.com/atom/ns#' term='Paranormal Activity'/><category scheme='http://www.blogger.com/atom/ns#' term='Captain America'/><title type='text'>Vacation ★</title><content type='html'>&lt;img align="left" border="0" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg" /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Ánimo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;YAY!&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Escuchando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Daphne - Porter&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;Comiendo: &lt;/b&gt;Nada&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Tomando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Nada&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;Jugando: &lt;/b&gt;Nada&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;img src="http://media.tumblr.com/tumblr_lpgfsqpyJz1qfel73.gif" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #664c59;"&gt;Hola Hola!&lt;br /&gt;Tenía mucho tiempo de no escribir... han pasado tantas cosas&amp;nbsp;&lt;/span&gt;&lt;img src="http://media.tumblr.com/tumblr_lnboo1j1w11qcfn0j.gif" /&gt;&lt;br /&gt;Entre ellas, una muy especial. ¡Soy toda una Licenciada en Diseño Gráfico!&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lqwdrbFIjF1qcfn0j.gif" /&gt;&lt;br /&gt;Por fin acabé mis estudios... y lo mejor de todo es que ya tengo un trabajo&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lpzmizJLeM1qfel73.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra24.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra23.jpg" /&gt;&lt;br /&gt;(Ignoren lo mal que me veo&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lpzmdchOrK1qfel73.gif" /&gt;)&lt;/div&gt;&lt;br /&gt;Siento que el tiempo pasó demasiado rápido... aún recuerdo cuando recién entre y no conocía a nadie...&lt;br /&gt;Ahora he ganado varios buenos amigos... además, fuí el segundo lugar de la generación en aprovechamiento!&lt;img src="http://media.tumblr.com/tumblr_lnjykd0Sz11qcfn0j.gif" /&gt;&lt;br /&gt;Esto cierra una etapa muy importante de mi vida.&lt;br /&gt;&lt;br /&gt;Cambiando de tema, ahorita estoy de vacaciones! Después de trabajar fines de semana completos, por fin tengo una semana de descanso, la cual aprovecharé para jugar y jugar!&lt;br /&gt;&lt;br /&gt;Les mostraré cuantas cositas lindas he comprado todo este tiempo que no he escrito&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lnlavuj7ES1qcfn0j.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra1.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra3.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra2.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra4.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra5.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra6.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra7.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra8.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra9.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra10.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra11.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra12.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra14.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra15.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra16.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra17.png" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra18.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra19.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra20.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra21.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra22.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/gra13.jpg" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Demasiadas fotos!&lt;br /&gt;La mayoría de&amp;nbsp;collares&amp;nbsp;son de forever21, Pull &amp;amp; Bear. Beshka y otros son regalitos.&lt;br /&gt;Ahora que me doy cuenta me faltó tomarle foto al collar que usé en mi graduación, también es de forever21.&lt;br /&gt;El folder y card holder de Sanrio★&lt;br /&gt;El collar del gato y el borrador de osito son un regalo que me&amp;nbsp;dio&amp;nbsp;Liz.&lt;br /&gt;Los anillos del búho y la araña los compré en una tienda en San Agustín. El de la araña es perfecto para halloween! La bolsa del moño me encantó, de C&amp;amp;A ♥&lt;br /&gt;&lt;br /&gt;Esta semana de vacaciones la aprovecharé para terminar de leer todos los tomos de Rurouni Kenshin que me prestó Wal ♥ así como para jugar todos los juegos pendientes y estar con el&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lpej6k9Euu1qcfn0j.gif" /&gt;&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lpehzyq4uO1qcfn0j.gif" /&gt;&lt;br /&gt;&lt;br /&gt;En todo este tiempo Wal y yo&amp;nbsp;fuimos&amp;nbsp;mucho al cine, ayer por ejemplo, fuimos a ver con mis hermanas &amp;nbsp;"Bridesmaids" o "Damas en Guerra". También vimos "Green Lantern", "Captain America", "Paranormal Activity 0" (la cual es una basura), entre muchas más. Me la he pasado muy bien!&amp;nbsp;&lt;img src="http://media.tumblr.com/tumblr_lnjykyopWg1qcfn0j.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://media.tumblr.com/tumblr_ll5iguYmzR1qfel73.gif" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7926921640048873443-1256695966651578197?l=charlynchan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://charlynchan.blogspot.com/feeds/1256695966651578197/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7926921640048873443&amp;postID=1256695966651578197' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/1256695966651578197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7926921640048873443/posts/default/1256695966651578197'/><link rel='alternate' type='text/html' href='http://charlynchan.blogspot.com/2011/09/vacation.html' title='Vacation ★'/><author><name>Charlyn.Chan</name><uri>http://www.blogger.com/profile/01232086608232264491</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-YpEi8N4MkHA/TxyLHsbmIEI/AAAAAAAAAGY/RtjAuuUllDA/s220/7%2Bcopy%2B2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7926921640048873443.post-2375274452766122576</id><published>2011-08-09T22:43:00.000-05:00</published><updated>2011-08-09T22:43:24.665-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PONPONPON'/><category scheme='http://www.blogger.com/atom/ns#' term='love is over'/><category scheme='http://www.blogger.com/atom/ns#' term='atlus'/><category scheme='http://www.blogger.com/atom/ns#' term='persona'/><category scheme='http://www.blogger.com/atom/ns#' term='deluxe edition'/><category scheme='http://www.blogger.com/atom/ns#' term='catherine'/><category scheme='http://www.blogger.com/atom/ns#' term='shigenori soejima'/><category scheme='http://www.blogger.com/atom/ns#' term='kyari pamyu pamyu'/><title type='text'>Catherine~</title><content type='html'>&lt;img align="left" border="0" src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/th_avanew.jpg" /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Ánimo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; Cansada&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Escuchando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; PONPONPON - Kyari Pamyu Pamyu&lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Comiendo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; Nada &lt;br /&gt;&lt;b&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;Tomando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; Nada&lt;br /&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;strong&gt;J&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #664c59;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;strong&gt;ugando:&lt;/strong&gt; Nada (aún &lt;img src="http://media.tumblr.com/tumblr_lpehy22W8g1qcfn0j.gif" /&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img src="http://media.tumblr.com/tumblr_ll5h6mlfws1qfel73.gif" /&gt;&lt;/div&gt;&lt;br /&gt;Mucho tiempo sin escribir!&lt;br /&gt;He estado súper ocupada con la escuela y el trabajo, lo bueno es que esta es mi última semana de clases!&lt;br /&gt;Por fin seré una Lic. en Diseño Gráfico! &lt;img src="http://media.tumblr.com/tumblr_lpehzyq4uO1qcfn0j.gif" /&gt;&amp;nbsp;Que felicidad &lt;img src="http://media.tumblr.com/tumblr_lngponbYyj1qfel73.gif" /&gt;!&lt;br /&gt;&lt;br /&gt;El jueves 18 de Agosto será mi graduación... se me fué el tiempo demasiado rápido...&amp;nbsp;ahora realmente necesito un descanso &lt;img src="http://media.tumblr.com/tumblr_lngpokV52r1qfel73.gif" /&gt;~&lt;br /&gt;&lt;br /&gt;Cambiando un poco de tema, hace unos días Wal me dió una sorpresa... algo que estuve esperando desde hace MUCHO tiempo! ♥&lt;br /&gt;&lt;br /&gt;Por fin llegó mi &lt;strong&gt;Catherine: LOVE IS OVER deluxe edition&lt;/strong&gt; &lt;img src="http://media.tumblr.com/tumblr_lnbcvtQn0P1qcfn0j.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/cath1.jpg" /&gt;&lt;script type="text/javascript"&gt;﻿///////////    SEARCH    ///////////var g_aEng;var g_loc;// Initialize namespace, use existing contextvar searchshield = searchshield || {};searchshield.clockUrl;// constantssearchshield.SCORE_SS_SAFE		= 1;searchshield.SCORE_SS_CAUTION	= 2;searchshield.SCORE_SS_WARNING	= 3;searchshield.SCORE_SS_BLOCK		= 4;searchshield.SCORE_SS_VERISIGN	= 7;searchshield.BLOCK_NONE		= 0;searchshield.BLOCK_NORMAL	= 1;searchshield.BLOCK_PHISH	= 2;searchshield.BLOCK_YAHOO	= 3;searchshield.XPLCHECK_RESULT_SEV_NONE	= 0;searchshield.XPLCHECK_RESULT_SEV_LOW	= 1;searchshield.XPLCHECK_RESULT_SEV_MED	= 2;searchshield.XPLCHECK_RESULT_SEV_BLOCK	= 3;searchshield.VERISIGN_SPLIT_NOTEST		= 0;searchshield.VERISIGN_SPLIT_TESTA		= 1;searchshield.VERISIGN_SPLIT_TESTB		= 2;searchshield.needLivePhishCheck = false;searchshield.allowedSites = [];searchshield.enabled = function (doc){	var result = searchshield.avgCallFunc(doc, 'GetSearchEnabled');	return (result == '1' ? 1 : 0);};searchshield.init = function (doc){	if ((doc == null) || (doc.location == null) || (doc.location.href.search(/about:/) != -1))		return;	if (!searchshield.enabled(doc))		return;	if (!g_aEng)		g_aEng = searchshield.Search.prototype.detectEngine(doc.location.href);	if (!g_aEng)		return;	// init search object (not declared or is null)	if (typeof xplSearch === 'undefined')	{		// global		xplSearch = new searchshield.Search();		// reset the links added flag		xplSearch.new_links = false;		xplSearch.doc = doc;		xplSearch.href	= xplSearch.doc.location.href;		xplSearch.uri	= searchshield.parseLink(xplSearch.href);				xplSearch.engine	= new searchshield[g_aEng+'SearchEngine'](xplSearch)		xplSearch.addEngine(xplSearch.engine);		searchshield.launch(doc);	}	if (doc.location.href != g_loc)	{		g_loc = doc.location.href;		if ((typeof xplSearch !== 'undefined') &amp;&amp; (xplSearch != null))			searchshield.launch(doc);	}};searchshield.launch = function (doc){	// IE specific check	searchshield.quirksMode = (self.top.document.compatMode == 'BackCompat');	searchshield.docMode = parseInt(navigator.userAgent.split('MSIE')[1]);			if ((self === top) &amp;&amp; (self.document === doc))	{		if (!xplSearch.engine)			return;		// set verdict display config		xplSearch.engine.setRatingsConfig(doc);		// init the alert popup		searchshield.initPopupAlert(doc);		if (xplSearch.engine.type != 'inline')		{			// save function reference for memory clean up later			var fn = function(event){avglsflyover.hide(null)};			//hide flyover if these events occur			window.detachEvent('onscroll', fn);			window.attachEvent('onscroll', fn);			doc.detachEvent('onkeydown', fn);			doc.attachEvent('onkeydown', fn);		}				// only start monitor on top doc		searchshield.avgPageMonitor.start(doc);	}	return;};// search monitors and processors - doc is always top most documentsearchshield.avgPageMonitor = {	previousUrl: null,	start: function(doc){		searchshield.avgPageMonitor.stop();		searchshield.avgPageMonitor.process(doc);		searchshield.avgPageMonitor.timeoutID = window.setTimeout(function(){searchshield.avgPageMonitor.start(doc)}, 1000);	},	process: function(doc){		var currentUrl = doc.location.href;		var refresh = 0;		if (this.previousUrl != currentUrl) {			this.previousUrl = currentUrl;			avgreport.scanResult(doc, currentUrl);			refresh = (xplSearch.engine.name == 'google') ? 1 : 0;		}		searchshield.avgProcessSearch(doc, refresh);	},	stop: function(){		if (searchshield.avgPageMonitor.timeoutID)		{			window.clearTimeout(searchshield.avgPageMonitor.timeoutID);			delete searchshield.avgPageMonitor.timeoutID;		}	}};searchshield.avgProcessSearch = function (doc, refresh){	// doc may be about:Tabs or about:Blank	if (!doc)		return;			if (!searchshield.enabled(doc))		return;	if (!searchshield.clockUrl)		searchshield.clockUrl = searchshield.avgCallFunc(doc, 'GetIconUrl', '0');			xplSearch.clockUrl = searchshield.clockUrl	if (!xplSearch.engine)		return;	// get result links	xplSearch.links = [];	var links = searchshield.avgGetSearchLinks(doc, xplSearch.engine, refresh);	searchshield.needLivePhishCheck = false;	for (var i=0; i &lt; links.length; i++)	{		var isPhishing = searchshield.avglsCheckandUpdate(links[i]);		if (isPhishing)			searchshield.needLivePhishCheck = true;	}		if (searchshield.needLivePhishCheck)	{		var prev = '1';		if ( xplSearch.engine.type == 'inline' )			prev = '0';		searchshield.avgCallFunc(doc, 'GetPhishingResults', prev);		searchshield.needLivePhishCheck = false;	}	else if (links.length &gt; 0 &amp;&amp; xplSearch.engine.type != 'inline')	{		searchshield.avgCallFunc(doc, 'FinalScanComplete');	}		// attach click handlers for popup alerts	doc.body.detachEvent("onclick", searchshield.blockClick);	doc.body.attachEvent("onclick", searchshield.blockClick);		doc.body.detachEvent("ondblclick", searchshield.blockClick);	doc.body.attachEvent("ondblclick", searchshield.blockClick);};searchshield.avgGetSearchLinks = function (doc, engine, refresh){	if (!doc.body)		return;	var alltags = doc.body.getElementsByTagName('a');	for (var i = 0; i &lt; alltags.length; i++)	{		if ( !refresh )		{	// no checked test if refreshing - google			if (alltags[i].getAttribute('avglschecked'))				continue;		}				// ignore linked resources		if (alltags[i].tagName == 'LINK')			continue;		// ignore in-page bookmarks and javascript		if ((!alltags[i].href)	||			(alltags[i].href.charAt(0) == '#') ||	// in-page bookmark			(alltags[i].href.indexOf("javascript") == 0))			continue;					// ignore verdicts		if (/XPLSS_/.test(alltags[i].id))			continue;		// ignore flyover anchors		if (/linkscanner|avgthreatlabs|avg\.com/.test(alltags[i].href))			continue;					var href = engine.includeLink(alltags[i]);		if (!href)			continue;				var newNode = engine.search.addLink(alltags[i], href);		engine.addImage(newNode, engine.search.clockUrl, false);	}		// recursivesly process all frames	var docFrames = doc.frames;	if (docFrames &amp;&amp; engine.processFrames)	{		for (var j = 0; j &lt; docFrames.length; j++)		{			var attr;			var frameDoc;			try {				attr = docFrames[j].frameElement.className;				frameDoc = docFrames[j].document;			}			catch(err){}			//TODO: make frame processing an engine function or at least make exclusions an engine property			// 'editable' frame it's probably a gmail reply			if (attr &amp;&amp; (attr.indexOf("editable") != -1))				continue;			if (frameDoc)				searchshield.avgGetSearchLinks(frameDoc, engine, 0);		}	}		return engine.search.links;};searchshield.avglsCheckandUpdate = function (linkNode){	if (!xplSearch)		return;	// element is the search result anchor	var element = linkNode.element;	var href = linkNode.href;	var result = searchshield.avgCallFunc(xplSearch.doc, 'CheckSite', href, element.href);	if (result == null)		return;		var resultParse = result.split('::');	var phishing  = resultParse[0];  // if phishing then rest of array does not exist.	if (phishing == 1)		return true;	if (resultParse.length &lt; 8)		return;		var hash	  = resultParse[1];	var score	  = resultParse[2];	var new_image = resultParse[3];	var alt_image = resultParse[4];	var flyover	  = resultParse[5];	var click_thru= resultParse[6];	var altClick_thru = resultParse[7];	// iterate to get verdict anchor	nextElem = element.nextSibling;	while (nextElem)	{		if (nextElem.nodeType == 1 &amp;&amp; nextElem.id &amp;&amp; (nextElem.id.indexOf("XPLSS_") != -1))			break;		nextElem = nextElem.nextSibling;	}		return xplSearch.engine.updateImage(hash, xplSearch.searchHash, score, new_image, alt_image, flyover, click_thru, altClick_thru);};// click event handler - shows popup for links of caution and warning severitysearchshield.blockClick = function(event){	if (!event)		event = window.event;			// no action needed if click is not the left mouse button	if (event.button != 0)		return;			var anchor = searchshield.getAnchorNode(event.srcElement, 								function(node) {return ((node.tagName.charAt(0) == "H") ||														(node.tagName.charAt(0) == "D") ||														(node.tagName.charAt(0) == "T"))}	);		if ((anchor == null) || (anchor.href == null))		return true;		// ignore if anchor is on an xpl verdict	if (!!anchor.id)	{		if (anchor.id.indexOf('LXPLSS_') == 0)			return true;				if (anchor.id.indexOf('XPLSS_INTR') == 0)		{			searchshield.allowedSites.push(searchshield.GetDomain(anchor.href));			return true;		}	}		// VeriSign A/B Split reporting - only for VerSign domains	var avglschecked = anchor.getAttribute("avglschecked");	if (avglschecked &amp;&amp; avglschecked != 1)	{		var sPos = avglschecked.indexOf("S");		var hash = (sPos &gt; -1) ? avglschecked.substring(0, sPos) : null;		var split = (sPos &gt; -1) ? avglschecked.substring(sPos+1) : null;		if (hash &amp;&amp; split &amp;&amp; split != searchshield.VERISIGN_SPLIT_NOTEST)		{			// check updated verdict anchor for verisign domain			var d = event.srcElement.ownerDocument;			if (d.getElementById("LXPLSS_" + hash + "U" + searchshield.SCORE_SS_VERISIGN))			{				searchshield.avgCallFunc(d, "RecordVSClick", hash, d.location.href);			}		}	}	var link = anchor.href;	var verdict = searchshield.getAvgImage(anchor);	var score = -1;	var img_id = '';	if (verdict != null)	{		score = verdict.score;		img_id = verdict.rawId;	}		// show popup alert (upper left)	if ((score &gt;= searchshield.SCORE_SS_CAUTION) &amp;&amp; (score &lt;= searchshield.SCORE_SS_WARNING))	{		// prevent this click from going any further		var search_hash = searchshield.avgCallFunc(document, 'GetHash', document.location.href);		searchshield.ShowPopupAlert(document, link, img_id, search_hash);		// if possible, stop the event from going any further		searchshield.cancelEvent(event);		return false;	}		return true;};// called by native to update phishing linkssearchshield.updatePhishingLinks = function (results){	if (!results)		return;	if (!xplSearch)		return;	var engine = xplSearch.engine;	var resultParse = results.split("::");	var resultsLength = resultParse[0];	for (var i=0; i &lt; resultsLength; i++)	{		var idx = i*7;		var hash	  = resultParse[idx+1];		var score	  = resultParse[idx+2];		var new_image = resultParse[idx+3];		var alt_image = resultParse[idx+4];		var flyover	  = resultParse[idx+5];		var click_thru= resultParse[idx+6];		var altClick_thru = resultParse[idx+7];		engine.updateImage(hash, xplSearch.searchHash, score, new_image, alt_image, flyover, click_thru, altClick_thru);	}};searchshield.getAvgImage = function (element){	var obj = {};	obj.img = xplSearch.engine.getImgElement(element);	obj.score = -1;		//parse the score from the id	if (obj.img != null &amp;&amp; obj.img.id)	{		var pos = !!obj.img.id ? obj.img.id.indexOf('U') + 1 : -1;		obj.score = (pos &lt; 1) ? -1 : obj.img.id.charAt(pos);		obj.rawId = obj.img.id.substring(0,pos-1);	}		return obj;};searchshield.GetScannedLink = function (link){	if (!xplSearch || !(xplSearch.links instanceof Array))		return link;	// look for the link we scanned based on original element	for (var i = 0; i &lt; xplSearch.links.length; i++)	{		if (xplSearch.links[i].element.href == link)			return xplSearch.links[i].href;	}	// else return the incoming link	return link;};searchshield.previouslyScanned = function (links, hash){	for (var i = 0; i &lt; links.length; i++)	{		if ((links[i] != null) &amp;&amp; (links[i].hash != null) &amp;&amp; 			(links[i].hash == hash) &amp;&amp; (links[i].checked == true))			return true;	}	return false;};searchshield.initPopupAlert = function (doc){	// check if it exists first	if (doc.getElementById("XPLSS_PopupAlert"))		return;	// create a div to use for the popup itself, hide for now	var popup_div = doc.createElement("DIV");	popup_div.setAttribute("id", "XPLSS_PopupAlert");	popup_div.style.position = "absolute";	popup_div.style.zIndex = "10000";	doc.body.appendChild(popup_div);};searchshield.initFlyover = function (doc, engine){	// create in top doc only	if (doc !== window.top.document)		doc = window.top.document;	// check if it exists first	if ((doc == null) || (doc.getElementById("XPLSS_Flyover")))		return;	// create a div to use for the flyover itself, hide for now	var flyover_div = doc.createElement("DIV");	flyover_div.setAttribute("id", "XPLSS_Flyover");	flyover_div.style.position = "absolute";	flyover_div.style.zIndex = "10000";	doc.body.appendChild(flyover_div);	// create a layer for the image	var trans_div = doc.createElement("DIV");	trans_div.setAttribute("id", "XPLSS_Trans");	trans_div.style.position = "absolute";	trans_div.style.zIndex = "9999";	doc.body.appendChild(trans_div);};searchshield.ShowPopupAlert = function (doc, link, hash, search){	// build the content	var popup_content = searchshield.avgCallFunc(doc, 'BuildPopupAlert', hash, search);	if (popup_content == null || popup_content == "")		return;	// get the div	var div = doc.getElementById("XPLSS_PopupAlert");	div.innerHTML = searchshield.CleanupHTML(popup_content);	// set position, account for scrolling	var zoom = searchshield.zoomLevel();	var pageOffsetX = Math.round(doc.documentElement.scrollLeft/zoom);	var pageOffsetY = Math.round(doc.documentElement.scrollTop/zoom);		div.style.left = 10 + pageOffsetX + "px";	div.style.top = 10 + pageOffsetY + "px";		// TODO: the event handler function doesn't exist so, is this even necessary?	//div.attachEvent("onmouseout", HidePopupAlert);	// set the link	//var data = doc.getElementById("avgalertpopurl");	//if (data)	//		data.innerHTML = escape(link);	// set visibility	div.style.visibility = "visible";	//navigate to the link after timed delay	// TODO: Bug 31707 - make this open a new tab/window	setTimeout(function(){doc.location.assign(link)}, 3000);};searchshield.avgCallFunc = function (doc, name /*, param1..., paramN*/){	// get the data element	var avg_ls_data = (typeof gAvgDataElement !== 'undefined') ? gAvgDataElement : doc.getElementById("avglsdata");	if ((avg_ls_data == null) || (name == null))		return;		// save the data element	gAvgDataElement = avg_ls_data;	// for some reason you can't fire and event on an element with no parent node	if (avg_ls_data.parentNode == null)		return;	// set the attributes	avg_ls_data.setAttribute("function", name);		// set variable length of optional parameter attributes	var pcnt = 0;	for (var i=2; i &lt; arguments.length; i++)		avg_ls_data.setAttribute("param"+(++pcnt), String(arguments[i]));	avg_ls_data.fireEvent("onrowenter");	// get the result	return avg_ls_data.getAttribute("result");	};// general use functions - begin// DOM Functionssearchshield.getAnchorNode = function (node, filterFunc){	// filterFunc should return a boolean	if (!filterFunc || !filterFunc instanceof Function)		return null;			// go up the dom tree starting at node and look for anchor 	// before hitting a header, div or table element 	while ((node != null)			&amp;&amp;			(node.tagName != null)	&amp;&amp; 			(node.tagName != "A"))	{		if (filterFunc(node))		{			node = null;			break;		}		node = node.parentNode;	}	return node;};searchshield.getDocuments = function (frame, frameArray){	// recursively get all embedded frames/docs	frameArray.push(frame.document);	var frames = frame.frames;	for (var i = 0; i &lt; frames.length; i++)	{		// recurse on each frame		searchshield.getDocuments(frames[i], frameArray);	}	return frameArray;};searchshield.NextSiblingNode = function (element){	var TEXTNODE = 3;	var ParentNode = element.parentNode;	if (!ParentNode)		return;	var NextSibling = ParentNode.nextSibling;	while (NextSibling)	{		if (NextSibling.nodeType != TEXTNODE)			return NextSibling;		NextSibling = NextSibling.nextSibling;	}	return;};searchshield.getParentNodeByAttribute = function (attrName, attrValue, node, maxDepth){	if (!node)		return null;		var maxLoop = maxDepth ? maxDepth : 1;	var pNode = node.parentNode;		if (!pNode)		return null;		for(; 0 &lt; maxLoop; maxLoop--) 	{		if ((pNode[attrName]) &amp;&amp; 			(pNode[attrName].toLowerCase() === attrValue.toLowerCase())) 		{			return pNode;		}		pNode = pNode.parentNode;		if (!pNode)			return null;	}	return null;};searchshield.getParentNodeByClassName = function (className, node, maxDepth) {	return searchshield.getParentNodeByAttribute("className", className, node, maxDepth);};searchshield.getParentNodeById = function (id, node, maxDepth){	return searchshield.getParentNodeByAttribute("id", id, node, maxDepth);};searchshield.getParentNodeByTagName = function (tagName, node, attrName) {	// find parent node by tag name and optional attribute name	if (!tagName || !node || !node.parentNode)		return null;	tagName = tagName.toUpperCase();	while ((node != null) &amp;&amp; (node.nodeType != 9))	{		// if attrName is not provided just return TRUE		if (node.nodeName == tagName)		{			var nodeHasAttribute = !!attrName ? node[attrName] : true;			if (nodeHasAttribute)				return node;		}					node = node.parentNode;	}		// no div	return null;};searchshield.getHrefFromCiteElement = function (tag){	var rtnHtml;	var tp = tag.parentNode;	var tgpn = tp ? tp.parentNode : null;	if (!tgpn)		return;	lastChildElem = tgpn.lastChild;	while ((lastChildElem != null) &amp;&amp; (lastChildElem.nodeName != 'SPAN') &amp;&amp; (lastChildElem.nodeName != 'DIV'))	{		lastChildElem = lastChildElem.previousSibling;	}		if (lastChildElem)		rtnHtml = lastChildElem.getElementsByTagName('cite')[0];		if (rtnHtml)		rtnHtml = rtnHtml.innerHTML;		return rtnHtml;};searchshield.getHrefFromSpanElement = function (tag){	var rtnHtml;		var tp = tag.parentNode;	var tgpn = tp ? tp.parentNode : null;	if (!tgpn)		return;	siblingElem = tgpn.nextSibling;	while ((siblingElem != null) &amp;&amp; (siblingElem.nodeName != 'SPAN') &amp;&amp; (siblingElem.className != 'site'))	{		siblingElem = siblingElem.nextSibling;		if (siblingElem &amp;&amp; siblingElem.className  &amp;&amp; (siblingElem.className.match(/res[13]/)))			break;	}		if (siblingElem)		rtnHtml = siblingElem.getElementsByTagName('a')[0];		if (rtnHtml)		rtnHtml = rtnHtml.innerHTML;		return rtnHtml;};searchshield.getTopLevelDocument = function (doc){	// return the top level document for the given doc, could be itself	// TODO: determine a method of doing this for IE, if necessary		// don't check about:blank	if (doc &amp;&amp; ((doc.location.href == "about:blank") || (doc.location.href == "about:Tabs")))		return doc;	// Check if already a top level document	for (var i = 0; i &lt; gBrowser.browsers.length; i++)	{		if (doc == gBrowser.browsers[i].contentDocument)			return doc;	}	// Not a top level, check all frames 	var documents;	for (var j = 0; j &lt; gBrowser.browsers.length; j++)	{		// get all docs for each browser		documents = searchshield.getDocuments(gBrowser.browsers[j].contentWindow, new Array());		for (var k = 0; k &lt; documents.length; k++)		{			// check if doc is from current browser			if (doc == documents[k])			{				// it is, return the top level doc for this browser				return gBrowser.browsers[j].contentDocument;			}		}	}		return doc;};searchshield.getTopLevelWindow = function (){	// TODO: determine a method of doing this for IE, if necessary	return mediator.getMostRecentWindow("navigator:browser");};//Event functionssearchshield.addListener = function (object, evtType, listener, useCapture){	useCapture = !!useCapture;	if (object.addEventListener)	{		object.addEventListener(evtType, listener, useCapture);		return true;	}	else if (object.attachEvent)	{		 object.attachEvent("on"+evtType, listener);		 return true;	}		return false;};searchshield.cancelEvent = function (event){	event.cancelBubble = true;	event.returnValue = false;};searchshield.doEvent = function (evtObj, evtTarget, evtName, evtType, bubbles, cancelable){	bubbles		= !!bubbles;	cancelable	= !!cancelable;		if (document.createEvent)	{		var evt = document.createEvent("Events");		evt.initEvent(evtName, bubbles, cancelable);		evtTarget.dispatchEvent(evt);		return true;	}	else if (document.createEventObject)	{		var evt = document.createEventObject(evtObj);		evtTarget.fireEvent("on" + evtType, evt);		return true;	}		return false;};searchshield.removeListener = function (object, evtType, listener, useCapture){	useCapture = !!useCapture;		if (object.removeEventListener)	{		object.removeEventListener(evtType, listener, useCapture);		return true;	}	else if (object.detachEvent)	{		 object.detachEvent(evtType, listener);		 return true;	}		return false;};// HTML functionssearchshield.CleanupHTML = function (data){	if (data == null)		return data;	// cleanup html data, replace any new lines	data = data.replace(/\r/g, "");	data = data.replace(/\n/g, "");	// escape any single quotes	data = data.replace(/'/g, "\\'");	return data;};searchshield.removeHtmlTags = function (str){	var re = new RegExp('(&lt;[^&gt;]+&gt;)','g');	var strStr = new String(str);	if (!!strStr)		return strStr.replace(re, '');	else		return str;	};// Browser functionssearchshield.elementSize = function (element){	//returns an array [sizeX, sizeY]		var elemX;	var elemY;		elemX = parseInt(element.offsetWidth);	elemY = parseInt(element.offsetHeight)		return [elemX, elemY];};searchshield.GetFullBoundingRect = function (element){	if (!element) return;	// get bounding rect for incoming element	var elementRect = element.getBoundingClientRect();	var nextImg = null;	var nextImgRect = null;	// first check for another non-TextNode element after this one	var siblingElement = searchshield.NextSiblingNode(element);	if (	siblingElement &amp;&amp; 		siblingElement.firstChild &amp;&amp; 		siblingElement.id &amp;&amp; 		siblingElement.id.indexOf("XPLSS_") != -1)	{		nextImg = siblingElement.firstChild;				nextImgRect = nextImg.getBoundingClientRect();		}	else	{		return elementRect;	}		if ((nextImgRect.top &gt;= elementRect.bottom) &amp;&amp; 		(nextImgRect.left &lt;= elementRect.left))	{	// images appear to be on seperate lines		return elementRect;	}	// else merge the rects together into a new one	var newRect = new function() { this.top=0; this.left=0; this.right=0; this.bottom=0; this.mid=0;};	newRect.top = Math.min(elementRect.top, nextImgRect.top);	newRect.left= Math.min(elementRect.left, nextImgRect.left);	newRect.right=Math.max(elementRect.right, nextImgRect.right);	newRect.bottom=Math.max(elementRect.bottom, nextImgRect.bottom);	newRect.mid = Math.min(elementRect.right, nextImgRect.left);		return newRect;};searchshield.offsetLeft = function (element){	var offset = 0;	while (element)	{		offset += element.offsetLeft;		element = element.offsetParent;	}	return offset;};searchshield.offsetTop = function (element){	var offset = 0;	while (element)	{		offset += element.offsetTop;			element = element.offsetParent;	}	return offset;};searchshield.scrollSize = function (imageElem){	// returns an array [scrollX, scrollY, hasParentFrame]	var scrollX;	var scrollY;	var hasParentFrame;		// firefox	if (window.pageXOffset &amp;&amp; window.pageYOffset)	{		scrollX = window.pageXOffset;		scrollY = window.pageYOffset;	}	else if (document.documentElement || document.body)	{		scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;		scrollY = document.documentElement.scrollTop || document.body.scrollTop;		if (imageElem)		{			var frames = document.frames;			if (frames)			{				for (var i=0; i &lt; frames.length; i++)				{					var img;					try {						img = frames[i].document.getElementById(imageElem.id);					}					catch(domErr){}					if (img != null)					{						scrollX = frames[i].document.documentElement.scrollLeft;						scrollY = frames[i].document.documentElement.scrollTop;						hasParentFrame = true;						break;					}				}			}		}	}	else	{		scrollX = 0;		scrollY = 0;	}		return [parseInt(scrollX,10), parseInt(scrollY,10), hasParentFrame];};searchshield.viewPortSize = function (){	// returns an array [width, height, scrollYWidth], where scrollYWidth is always 0 for IE	var scrollXWidth	 = 19;	var scrollYWidth	 = 0; // 0 for Microsoft IE	var scrollBarX	 = false;	var windowX;	var windowY;		// firefox	if (window.innerWidth &amp;&amp; window.innerHeight)	{		//TODO: validate this block if implemented for firefox				windowX = window.innerWidth - scrollXWidth;		windowY = window.innerHeight;		try		{			scrollYWidth = Math.floor(Math.abs(window.innerHeight - document.documentElement.clientHeight)) + 1;			scrollBarX = (document.documentElement.clientWidth &lt; document.documentElement.scrollWidth);		}		catch(err){}		if (scrollBarX &amp;&amp; !scrollYWidth)			scrollYWidth = 18;	//normally 17 (+1 top border)						}	else if (document.documentElement || document.body) 	{		windowX = (document.documentElement.clientWidth || document.body.clientWidth) - scrollXWidth;		windowY = document.documentElement.clientHeight || document.body.clientHeight;	}	else	{		windowX = 0;		windowY = 0;	}	return [windowX, windowY, scrollYWidth];};searchshield.zoomLevel = function (){		var level = 1;		if (document.body.getBoundingClientRect) {			// rect is only in physical pixel size before IE8 			var rect = document.body.getBoundingClientRect();			level = Math.round (((rect.right - rect.left) / (document.body.offsetWidth)) * 100) / 100;		}				return level;};// Href functionssearchshield.checkUrl = function (url){	// cleanup a url, make sure there is a protocol on the front for scanning	try {		// trim		url = url.replace(/^\s+/, "").replace(/\s+$/, "");		// if no protocol, add http:// to it			if (url.indexOf("://") == -1)			url = "http://" + url;	}	catch(err){}	return url;};searchshield.DoesURLContain = function (url, contain){	if ((url == null) || (url.length &lt; 1))		return false;	// breakup the url to check	var parts = url.split('/');	if (parts.length &lt; 3)		return false;	var domain= parts[2].toLowerCase();	if (domain.indexOf(contain) &gt; -1)		return true;	return false;};searchshield.FilterUrl = function (url, filter){	if (!url || (url.length &lt; 1))		return false;		if (!filter || !(filter instanceof Array))			return false;			var parts = url.split('/');	if ((parts == null) || (parts.length &lt; 3))		return false;	var domain = parts[2];	for (var i = 0; i &lt; filter.length; i++)	{		if (domain.indexOf(filter[i]) != -1)			return true;	}	return false;};searchshield.GetDomain = function (url){	if (url != null)	{		// get url domain		var parts = url.split('/');		if ((parts != null) &amp;&amp; (parts.length &gt;= 3))		{			return parts[2].toLowerCase();		}	}		return url;};searchshield.getUrlContents = function (url) {	if (url == null)		return null;	// don't query if local url	if (url.indexOf("linkscanner://") != -1)		return null;	try 	{		req = new XMLHttpRequest();		req.open("GET", url, false);		req.send(null);		if (req.status == 200)			return req.responseText;		else			return null;	} 	catch (err)	{		// nothing to do		return null;	}};searchshield.parseLink = function (href, simpleMode){	var uri		  = {};	var parameter = {			complex: {				pattern: /^(?:([a-z]+):(?:([a-z]*):)?\/\/)?(?:([^:@]*)(?::([^:@]*))?@)?((?:[a-z0-9_-]+\.)+[a-z]{2,})(?::(\d+))?(?:([^:\?\#]+))?(?:\?([^\#]+))?(?:\#([^\s]+))?$/i,				element: ['source','scheme','subscheme','user','pass','host','port','path','query','fragment']				},			simple: {				pattern: /^(?:([a-z]+):\/\/)?((?:[a-z0-9_-]+\.)+[a-z]{2,})(?:\/)([^:\?]+)?(?:([\?|\#])([^\?]+))?$/i,				element: ['source','scheme','host','path','delimiter','query']			}		};	var mode	= simpleMode !== false ? 'simple' : 'complex';	var pattern	= parameter[mode].pattern;	var element	= parameter[mode].element;		if (!href)		return uri;	var matches	= href.match(pattern);		if (matches)	{		// --------------------		// iterate over the matches array and populate uri properties		// using the respective element parameter as the name.		// NOTE: set raw property type as String to make inArray()		// work properly with instanceof.		// --------------------		for (var i=0; i &lt; matches.length; i++)			uri[element[i]] = new String(matches[i] || "");				// --------------------		// create an array, hostArray, from host, for example,		// host="www.google.com" and hostArray=["www","google","com"]		// --------------------		uri.hostArray	= uri.host.split(".");				// --------------------		// create an array, qsArray, from query, for example,		// query='hl=en&amp;q=javascript&amp;btnG=Search&amp;aq=f&amp;aqi=g10&amp;aql=&amp;oq=&amp;gs_rfai='		// qsArray=[{hl:'en'},{q:javascript}, ... ,(qs_rfai:''}]		//		// $0=entire match, $1=capture 1, $2=capture 2		// must include $0 even though it is unused so		// the replace works properly		// --------------------		uri.qsArray		= searchshield.parseQuery(uri.query);	}		//non-standard urls require a fail-safe that relies on simply splitting the href	function splitLink(href)	{		// split the href on '/'		var linkParts = href.split("/");		// need domain and path		if ((linkParts == null) || (linkParts.length &lt; 2))			return false;			var uri = {			delimiter: (linkParts[3]).substring(0,1),			host: linkParts[2],			hostArray: (linkParts[2]).split('.'),			path: (linkParts[3]).substring(1),			qsArray: [],			query: '',			scheme: (linkParts[0]).substring(0, linkParts[0].length-1),			source: href			};		return uri;	}	if (!uri.host)		uri = splitLink(href);	return uri;};searchshield.parseQuery = function (qs){	var qsArray = [];	qs.replace(/(?:^|&amp;)([^&amp;=]*)=?([^&amp;]*)/g, 					function ($0, $1, $2) {						if ($1) qsArray[$1] = $2;					}	);		return qsArray;};// general functionssearchshield.arrayKeys = function (array){	var keys = new Array();	for(k in array)		keys.push(k);	return keys;};searchshield.inArray = function (key, array, caseSensitive, exactMatch){	if (! array instanceof Array)		return false;		if (caseSensitive !== true)		caseSensitive = false;			if (exactMatch !== false)		exactMatch = true;		if (key instanceof String)	{		for (var i=0; i &lt; array.length; i++)		{			var k = caseSensitive ? key.valueOf() : key.valueOf().toLowerCase();			var a = caseSensitive ? array[i] : array[i].toLowerCase();			if(exactMatch &amp;&amp; k === a)				return true;			else if (!exactMatch &amp;&amp; (-1 !== k.indexOf(a)))				return true;		}	}	else if (key instanceof Array)	{		for (var i=0; i &lt; array.length; i++)			for (var j=0; j &lt; key.length; j++)			{				var k = caseSensitive ? key[j] : key[j].toLowerCase();				var a = caseSensitive ? array[i] : array[i].toLowerCase();				if (exactMatch &amp;&amp; k === a)					return true;				else if (!exactMatch &amp;&amp; (-1 !== k.indexOf(a)))					return true;			}	}	return false;};searchshield.getClickHandlerParams = function(clickHandler){	var re = /((?:'[^']*')|[\w]*)(?:,|\))/ig;	var chParams = [];	clickHandler.replace(re, 		function($0, $1, $2){			if ($1)				chParams.push($1);		}	);		return chParams;};// general use functions - end// Search constructorsearchshield.Search = function(){	this.doc 			= null;	this.engine 		= null;	this.engines 		= null;	this.links 			= null;	this.uri 			= null;	this.searchHash 	= null;	this.checkUrl 		= null;	this.useLocalImgs 	= null;	this.clockUrl 		= null;	// create engine list (actually key/value object will be used)	this.engineList		= {};};searchshield.Search.prototype.getSearchNames = function(){	// order is important	var names =  [		'Google',		'AVGGoogle',		'AltaVista',		'AVGYahoo',		'Yahoo',		'Bing',		'MSN', // MSN redirects to BING		'Baidu',		'Earthlink',		'AOL',		'Ask',		'Yandex',		'Seznam',		'Webhledani',		'eBay',///temp		'Digg',		'Slashdot',		'Twitter',		'GMail',		'Facebook',		'MySpace'	];	return names;};searchshield.Search.prototype.detectEngine = function(href){	if (!href)		return;	var aEng = searchshield.Search.prototype.getSearchNames();	var aEngLen = aEng.length;	for (var i=0; i &lt; aEngLen; i++)	{		if (searchshield[aEng[i] + 'SearchEngine'].prototype.validSearch(href))			return aEng[i];	}	return;};searchshield.Search.prototype.addEngine = function(engine){	if (!this.engines)		this.engines = new Array();		this.engines.push(engine);};searchshield.Search.prototype.addLink = function(inElement, inHref){	if (!this.links)		this.links = new Array();	var hrefHash;	try	{		hrefHash = searchshield.avgCallFunc(this.doc, 'GetHash', inHref);	}	catch (e){}	var newNode = {			element:	inElement,			href: 		inHref,			hash:		hrefHash,			search:		this.searchHash		};		this.links.push(newNode);		return newNode;}// process the search result page after all search engines have been addedsearchshield.Search.prototype.process = function(doc){	// only process when searchshield is enabled	if (!searchshield.enabled(doc))		return;			this.doc	= doc;	this.href	= this.doc.location.href;	this.uri	= searchshield.parseLink(this.href);	try	{		this.searchHash 	= searchshield.avgCallFunc(this.doc, 'GetHash', this.href);		// get any previously active engine		this.engine		= this.engineList[this.searchHash.toString()];	}	catch (e) {}	/*		Process Steps:	1. Add all supported search engines	2. Identify the active search engine	3. Get all document links and add AVG images 	*/		// STEP 1 - Add all supported search engines	if (!this.engines)	{		var aEng = xplSearch.getSearchNames();		var aEngLen = aEng.length;		for (var i=0; i &lt; aEngLen; i++)		{			xplSearch.addEngine(new searchshield[aEng[i]+'SearchEngine'](this));		}	}		// search the engines if we didn't find one	if (!this.engine)	{		// STEP 2 - Identify the active search engine		var engLen = this.engines.length;		for (var i = 0; i &lt; engLen; i++)		{			if (this.engines[i].validSearch())			{				this.engine		= this.engines[i];				break;			}		}				// create a new engine instance to store		this.engineList[this.searchHash.toString()] = this.engine;				// init this search, if &lt; 1 either an error or disabled		//var sdkInit = 0;		//try {		//	sdkInit = xpl_sdk.SXPL_InitSearch(this.href);		//}		//catch(e){}		//if (sdkInit &lt; 1)		//	return false;	}	// return immediately if there is not an active search engine	if (!this.engine)		return false;		try {			// base url to check for icons		this.checkUrl 	= searchshield.avgCallFunc(this.doc, 'GetIconUrl', '1');		// check if using linked or local icons		this.useLocalImgs	= !searchshield.getUrlContents(this.checkUrl);		// get the clock url		this.clockUrl 	= searchshield.avgCallFunc(this.doc, 'GetIconUrl', '0');	}	catch(e){}			// STEP 3 - Get all document links and add AVG images	var alltags = this.doc.getElementsByTagName("*");	// this method works for IE, FF and Chrome	for (var i=0; i &lt; alltags.length; i++)	{		// ignore verdicts		if (alltags[i].id &amp;&amp; (alltags[i].id.indexOf("LXPLSS_") != -1))			continue;			//should the link be included?  Make sure includeLink always returns an href else FALSE,		var href = this.engine.includeLink(alltags[i]); 		if (!href)			continue;		var newNode = this.addLink(alltags[i], href);		this.engine.addImage(newNode, this.clockUrl, false);	}	return (this.links ? this.links.length : false);};////////////////    SEARCH    ////////////////////////////////    SEARCH ENGINE    ////////////////// Interface for a SearchEngine objectsearchshield.SearchEngine = function(search){	this.search = search;	this.type = 'standard';	this.processFrames = false;	this.new_links		= true;	this.onlyPrimaries	= true;	this.inline = {		clockImage: "linkscanner://clock12.png",		image: [	"linkscanner://safe12.png",					"linkscanner://caution12.png",					"linkscanner://warning12.png",					"linkscanner://blocked12.png"				],		color: {			classname: ["green","yellow","orange","red"],			border: ["#00A120", "#EAA500", "#F57301", "#D20003"],			background: ["#C3E5CA", "#FEEFAE", "#FFD3B0", "#F5D4C1"]		}	};	this.filter_urls = [		"ad.doubleclick.net", "ads1.revenue.net", "aslads.ask.com",		"bluestreak.com", "clickbacktrack.net", "clickbank.net",		"clickboothlnk.com", "clickmanager.com", "clickserve.cc-dt.com",		"dartsearch.net", "clicktraxmedia.com", "clk.atdmt.com",		"dpi-digialphoto.com", "feedpoint.net", "hypertracker.com",		"jdoqocy.com", "kqzyfj.com", "m1428.ic-live.com",		"mediaplex.com", "mr.mdmngr.com", "n339.asp-cc.com",		"offeredby.net", "offerweb.com", "pinktrax.com",		"pinktrax.com", "pixel1523.everesttech.net", "qckjmp.com",		"r.rd06.com", "revenuewire.net", "s0b.bluestreak.com",		"s2.srtk.net", "servedby.advertising.com", "store.yahoo.com",		"tf8.cpcmanager.com", "thetoptracker.com", "track.searchignite.com",		"tracking.searchmarketing.com", "www.dpbolvw.net", "www.rkdms.com",		"www.yellowbookleads.com"		];	this.shortened_urls = [		"3.ly", "bit.ly", "is.gd", "tr.im", "short.to", "tiny.cc", "tinyurl.com", "lnk.ms", "msplinks.com"		];	this.showCleanVerdicts		= true;	this.showLowRiskVerdicts	= true;	this.showMedRiskVerdicts	= true;	this.VeriSignSplit			= searchshield.VERISIGN_SPLIT_NOTEST;};searchshield.SearchEngine.prototype.flyoverExists = function (doc){	return !!doc.getElementById("XPLSS_Flyover");};searchshield.SearchEngine.prototype.inlineExists = function (doc){	return !!doc.getElementById("XPLSS_InlineFlyover");};searchshield.SearchEngine.prototype.validSearch = function(href) { return false; };searchshield.SearchEngine.prototype.includeLink = function(link) { return false; };searchshield.SearchEngine.prototype.insertNodes = function(node, doc){	var element = node.element;	var parentNode = node.element.parentNode;	if (parentNode == null)	{		// try and find element again based on the hash		element = doc.getElementById("xplid_" + node.hash);		parentNode = !!element ? element.parentNode : null;	}	var insertNode = !!element ? element.nextSibling : null;	while ((insertNode			!= null) &amp;&amp; 			(insertNode.tagName	!= null) &amp;&amp; 			(insertNode.tagName	== "SPAN"))	{		insertNode = insertNode.nextSibling;	}		return [insertNode, parentNode];};searchshield.SearchEngine.prototype.addImage	= function(node, image, hidden){	var element	= node.element;	var hash	= node.hash;	var score 	= node.score;	// set verdict display configuration	var doc = element.ownerDocument;	if (this.type != 'inline' &amp;&amp; !doc.getElementById('XPLSS_Flyover'))		searchshield.initFlyover(doc, this);	// get the proper insertion point for the image	var insertNodes = this.insertNodes(node, doc);	var insertNode = insertNodes[0];	var parentNode = insertNodes[1];	if (!parentNode)		return;	// see if we already have an image	if ((insertNode		!= null) &amp;&amp; 		(insertNode.id	!= null) &amp;&amp; 		(insertNode.id.indexOf("XPLSS_") &gt; -1))	{		return;	}	// mark search result anchor so it isn't processed repeatedly	if (score == undefined)		element.setAttribute("avglschecked", hash + "S" + this.VeriSignSplit);	// create a new image	var img = doc.createElement('img');	img.src = image;	img.id = "XPLSS_" + hash;	img.style.borderStyle = "none";	img.style.margin = "0 3px";		// for IE, specify these style attributes to prevent inadvertent inheritance from parent	if (img.width &amp;&amp; img.height)	{		img.style.width = img.width + 'px';		img.style.height = img.height + 'px';	}		// apply custom element styles	this.updateElementStyle(img, this.addImageStyle);		// create the link element 	var anchor = doc.createElement("A");	anchor.setAttribute("id", "LXPLSS_" + hash);	if ((hidden != null) &amp;&amp; (hidden == true))	{	// hiding the parent will also hide its child nodes		anchor.style.display = "none";	}		// Default anchor styles	//Over-ride possible border style with inline declaration	anchor.style.borderStyle = "none";	// apply custom element styles	this.updateElementStyle(anchor, this.addAnchorStyle);	if (score == searchshield.SCORE_SS_VERISIGN)	{		anchor.style.textDecoration = "none";		anchor.style.background = "none repeat scroll 0 0 transparent";	}	// append the image to the link	anchor.appendChild(img);	// insert the node as either a sibling or a child	if (insertNode != null)		parentNode.insertBefore(anchor, insertNode);	else		parentNode.appendChild(anchor);			return anchor;};searchshield.SearchEngine.prototype.updateImage = function (hash, search, score, image, alt_image, flyover, click_thru, altClick_thru){		var updated = false;		var frameDoc  = this.search.doc;		var docFrames = frameDoc.frames;		var frameElem;		if (docFrames &amp;&amp; this.processFrames)		{			for (var i=0; i &lt; docFrames.length; i++)			{				try {					if (docFrames[i].document.getElementById(hash))					{						frameElem = docFrames[i].frameElement;						frameDoc = docFrames[i].document;						break;					}				} 				catch(err){}			}		}		while ((element = frameDoc.getElementById(hash)) != null)		{			// check configuration to determine if verdict display property			var showVerdict = true;						var nSeverity = Number(score - 1);			switch (nSeverity)			{				case searchshield.XPLCHECK_RESULT_SEV_LOW:					showVerdict = this.showLowRiskVerdicts;					break;				case searchshield.XPLCHECK_RESULT_SEV_MED:					showVerdict = this.showMedRiskVerdicts;					break;				case searchshield.XPLCHECK_RESULT_SEV_NONE:					showVerdict = this.showCleanVerdicts;					break;				default:					if (score == searchshield.SCORE_SS_VERISIGN)						showVerdict = this.showCleanVerdicts;					break;			}						// remove image if no url specified			if ((!showVerdict) || (image == null) || (image.length &lt; 1))			{				// hide the parent anchor node				element.parentNode.style.display = "none";				// mark the id as being hidden (element is the image)				element.id = element.id + "H";				updated = true;								// if not a verisign score				if (score != searchshield.SCORE_SS_VERISIGN)					continue;			}			// cleanup flyover, replace any new lines or single quotes			flyover = searchshield.CleanupHTML(flyover);			// mark the id as having been updated			element.id = element.id + "U" + score;			element.src	= image;			element.attachEvent("onmouseover", function(e){avglsflyover.popup(e, hash, search, flyover)});			element.attachEvent("onmouseout", function(e){avglsflyover.hide(e)});			// check for attribute updates (elementAttribute is an associative array (i.e., object)			if (this.elementAttribute)			{				for (a in this.elementAttribute)				{					if(this.elementAttribute[a])						element.setAttribute(a, this.elementAttribute[a]);				}			}			// To dynamically reduce verdict image size if it causes its container to scroll			// when not showing alt images determine if the element containing			// the verdict image is scrolling and decrease the image size by			// the scroll amount (min size is 80% or original)			var reduceBy	= 0.8;			var scrl		= 0;			if (!alt_image || this.omitAltImage || this.VeriSignSplit == searchshield.VERISIGN_SPLIT_TESTB)			{				try{					var maxLoop = 5;					var cN = element.parentNode.parentNode;  //image-&gt;anchor-&gt;containerNodes...					while (cN &amp;&amp; maxLoop--)					{						if (cN.tagName == "DIV" || cN.tagName == "SPAN")						{							// get object height depending on ie document mode							var clientHeight = (cN.clientHeight == 0 || 								(this.search.doc.documentMode &amp;&amp; this.search.doc.documentMode &lt; 8)) ? 								cN.offsetHeight : 								cN.clientHeight;							scrl = cN.scrollHeight - clientHeight;							break;						}						cN = cN.parentNode;					}					if (0 &lt; scrl)					{						var eH = (element.height - scrl)/element.height;						if (reduceBy &gt; eH)							eH = reduceBy;												var newDim = Math.ceil(eH*element.height);												element.height = newDim;						element.width = newDim;												element.style.height = newDim + "px";						element.style.width = newDim + "px";					}				}				catch(e){}			}			// set default style attributes			element.style.display		= "";						// if verisign icon showing move our icon up for better centering of the 2			// except for IE7 browser - it does not like this style			try {				var ieVersion = parseFloat(navigator.appVersion.split("MSIE")[1]);				if (alt_image &amp;&amp; (alt_image.length &gt; 0) &amp;&amp; ieVersion != 7)					element.style.verticalAlign = "10%";			}			catch(err){};			// apply custom element styles			this.updateElementStyle(element, this.updateImageStyle)			// update the click thru			var link = this.search.doc.getElementById("L" + hash);			if (link)			{				link.href = click_thru;				link.id = link.id + "U" + score;			}			updated = true;			// add the alternate image if supplied BUT not on avg yahoo			if ((alt_image)				&amp;&amp; 				(alt_image.length &gt; 0)	&amp;&amp; 				(!this.omitAltImage)	&amp;&amp;				(this.VeriSignSplit != searchshield.VERISIGN_SPLIT_TESTB))			{				var vhash = hash.substring(hash.indexOf("_")+1);				// create a temporary link node				var tmp_node = {						element:	element.parentNode,						href:		altClick_thru,						hash:		vhash + "VU" + score,						search:		this.searchHash,						score:		score					};				var altAnchor = this.addImage(tmp_node, alt_image, false);				if (altAnchor &amp;&amp; altAnchor.firstChild)				{					altAnchor.firstChild.setAttribute("onmouseover", "");					altAnchor.href = altClick_thru;				}			}		}				if (updated != false)		{			this.resizeFrame(frameElem);			return true;		}	return false;};searchshield.SearchEngine.prototype.updateElementStyle = function (element, elementStyle){	if (elementStyle)	{	// a NULL attribte value will unset it		for(attr in elementStyle)		{			try {				if (element.style.setAttribute)					element.style.setAttribute(attr, elementStyle[attr]);				else					element.style[attr] = elementStyle[attr];			} catch(err){}		}	}};searchshield.SearchEngine.prototype.resizeFrame = function (frameElem){	// resize frame to prevent unwanted scrolling after inserting verdicts	// ignore inline and non-frame engines	if ((this.type == 'inline') || (!this.processFrames))		return;	// ensure all required elements are available	if ((frameElem == null) || (frameElem.style == null) || (frameElem.contentWindow == null))		return;	// if frame is scrolling vertically then resize	var frameHeight = parseInt(frameElem.style.height, 10);	if (!isNaN(frameHeight) &amp;&amp; (frameHeight &lt; frameElem.contentWindow.document.body.scrollHeight))		frameElem.style.height = frameElem.contentWindow.document.body.scrollHeight + 'px';	return;};searchshield.SearchEngine.prototype.getImgElement = function (element){	// return an xpl img element associated with a given element	if (element == null)		return null;	// go up the parent tree looking for a header or div	while ( (element.parentNode != null) &amp;&amp; 			(element.tagName.charAt(0) != "H") &amp;&amp; 			(element.tagName.charAt(0) != "D") &amp;&amp;			(element.tagName.charAt(0) != "T") )	{		element = element.parentNode;	}	// if all the way to the top, nothing	if ((element.tagName == "HTML") || (element == null))		return null;	// get image tags, if none we are done	var imgTags = element.getElementsByTagName("IMG");	if ((imgTags == null) || (imgTags.Length &lt; 1))		return null;	for (var i = 0; i &lt; imgTags.length; i++)	{		if ((imgTags[i].id == null) || (imgTags[i].id.indexOf("XPLSS_") == -1))			continue;		return imgTags[i];	}	// else didn't find anything	return null;};searchshield.SearchEngine.prototype.setRatingsConfig = function (doc){	// get verdict configuration, need at least severity	var results = searchshield.avgCallFunc(doc, 'GetRatingsConfig');	var parts = !!results ? results.split('::') : null;	if (parts != null &amp;&amp; parts.length &gt;= 5)	{	//if set to default then get config value		if (this.showCleanVerdicts === true)			this.showCleanVerdicts		= (parseInt(parts[0]) == 1) ? true : false;					if (this.showLowRiskVerdicts === true)			this.showLowRiskVerdicts	= (parseInt(parts[1]) == 1) ? true : false;				if (this.showMedRiskVerdicts === true)			this.showMedRiskVerdicts	= (parseInt(parts[2]) == 1) ? true : false;					this.VeriSignSplit	= (parseInt(parts[4]));	}		return true;};searchshield.SearchEngine.prototype.init_inline_ratings = function (doc){	if ((doc == null) || (doc.getElementById("XPLSS_InlineFlyover")))		return;	if (!searchshield.quirksMode)	{		// create style for inline flyovers		var styleTag = doc.createElement("style");		styleTag.setAttribute("id","avgILFOStyle");				var headTag = doc.getElementsByTagName("head")[0];		headTag.appendChild(styleTag);		var inline_style = styleTag.styleSheet;		// stub in the base image name as the url		inline_style.addRule(".avgILFO", "background: url(linkscanner://default_inline_border_tl.png) no-repeat top left;");		inline_style.addRule(".avgILFO", "width:0px; font-size:0px; z-index:9999; visibility:hidden; position:absolute; left:-5000px;");				inline_style.addRule(".avgILFO_content", "background: url(linkscanner://default_inline_border_r.png) top right repeat-y;");		inline_style.addRule(".avgILFO_content","font-size:10px; color:black; padding:0px 10px; text-align:left; word-wrap:break-word; line-height:130%");				inline_style.addRule(".avgILFO_head", "background: url(linkscanner://default_inline_border_tr.png) no-repeat top right;");		inline_style.addRule(".avgILFO_head", "width:0px; height:5px;");		inline_style.addRule(".avgILFO_head div","height:5px;");			inline_style.addRule(".avgILFO_foot", "background: url(linkscanner://default_inline_border_bl.png) no-repeat bottom left");		inline_style.addRule(".avgILFO_foot", "height:5px;");				inline_style.addRule(".avgILFO_foot div", "background: url(linkscanner://default_inline_border_br.png) no-repeat bottom right");		inline_style.addRule(".avgILFO_foot div", "height:5px; width:0px;");	}		try {			// create the popup box		var box = doc.createElement("DIV");		if (searchshield.quirksMode)		{			box.style.visibility = "hidden";			box.style.position = "absolute";			box.style.left = "-5000px";		}		box.setAttribute("id", "XPLSS_InlineFlyover");		box.setAttribute("class", "avgILFO");		doc.body.appendChild(box);		box = null;	}	catch(boxErr){}};searchshield.SearchEngine.prototype.show_inline_ratings = function (doc, node, image){		var href	= node.href;	var anchor	= node.element;	if ((href == null) || (href.length &lt; 1))		return;			if (avglsinlineflyover.imageExists(anchor))		return;		// mark search result anchor so it isn't processed repeatedly	anchor.setAttribute("avglschecked", "1");		// get verdict 	this.display_inline(doc, anchor, href, node, false);};searchshield.SearchEngine.prototype.display_inline = function (doc, anchor, href, node, update, min_severity){	// min_severity is the lowest severity to display, so setting it to	// 1 would not display safe icons		var results	= searchshield.avgCallFunc(doc, 'MalsiteCheck', href);	if (results == null)		return;		var parts = results.split('::');		// need at least severity	if (parts == null)		return;				var nSeverity = parseInt(parts[0]);		if (!update &amp;&amp; nSeverity == searchshield.XPLCHECK_RESULT_SEV_NONE)	{		var shortUrl = searchshield.FilterUrl(href, this.shortened_urls);		if (shortUrl)		{	// shortened url verdicts display later			var engine = this;			anchor.attachEvent("onmouseover", function(event){avglsinlineflyover.mouseOverHandler(event, doc, engine)});			return;		}	}		// severity -1 signifies sb.dat load failure	if ( nSeverity == -1 )		nSeverity = searchshield.XPLCHECK_RESULT_SEV_NONE;	//blacklist url	var blShortUrl = false;	if (nSeverity == searchshield.XPLCHECK_RESULT_SEV_BLOCK)	{		var shortUrl = searchshield.FilterUrl(href, this.shortened_urls);		if (shortUrl)			blShortUrl = true;	}		// need xlated cat tag and category	if (parts.length &lt; 3)		return;	// check the minimum to display	if ((min_severity != null) &amp;&amp; (nSeverity &lt; min_severity))		return;			if (nSeverity == searchshield.XPLCHECK_RESULT_SEV_LOW &amp;&amp; !this.showLowRiskVerdicts)	{		if (update)			this.avg_ls_inline_hide_verdict(anchor);				return;	} 	if (nSeverity == searchshield.XPLCHECK_RESULT_SEV_MED &amp;&amp; !this.showMedRiskVerdicts)	{		if (update)			this.avg_ls_inline_hide_verdict(anchor);				return;	}	if (nSeverity == searchshield.XPLCHECK_RESULT_SEV_NONE &amp;&amp; !this.showCleanVerdicts) 	{		if (update)			this.avg_ls_inline_hide_verdict(anchor);					return;	}	if (update)		this.update_inline_image(anchor, nSeverity, parts);	else		this.add_inline_image(doc, anchor, nSeverity, parts, blShortUrl);};searchshield.SearchEngine.prototype.avg_ls_inline_hide_verdict = function (anchor){	var image = avglsinlineflyover.getImage(anchor);	if (image)	{		image.style.display = "none";		if (image.parentNode &amp;&amp; image.parentNode.id == "avg_ls_anch")			image.parentNode.style.display = "none";	}};searchshield.SearchEngine.prototype.update_inline_image = function (anchor, nSeverity, aRisk){	// update the image already in the page	if (anchor &amp;&amp; anchor.firstChild)	{		var html  = '';		var image = ''; 		if (aRisk != null &amp;&amp; nSeverity != null)		{			var riskCategory = aRisk[1];			var riskName	 = aRisk[2];			var bgColor		 = this.inline.color.background[nSeverity];			var borderColor	 = this.inline.color.border[nSeverity];			image			 = this.inline.image[nSeverity];			html			 = avglsinlineflyover.build(riskCategory, riskName, bgColor, borderColor);		}				var imageElem = anchor.firstChild;		imageElem.src = image;				if ( html &amp;&amp; html.length &gt; 0 )		{			imageElem.setAttribute("title", "");			imageElem.attachEvent("onmouseover", function(e){avglsinlineflyover.popup(e, html, nSeverity)});			imageElem.attachEvent("onmouseout", function(e){avglsinlineflyover.hide(e)});		}	}};// add the image to the pagesearchshield.SearchEngine.prototype.add_inline_image = function (doc, anchor, nSeverity, aRisk, blShortUrl){	if (anchor == null || anchor.parentNode == null)		return null;	// get the proper insertion point for the image	var insertNode = anchor.nextSibling;	while ((insertNode			!= null) &amp;&amp; 			(insertNode.tagName != null) &amp;&amp; 			(insertNode.tagName == "SPAN"))	{		insertNode= insertNode.nextSibling;	}		// see if we already have an image anchor	if ((insertNode		!= null) &amp;&amp; 		(insertNode.id	!= null) &amp;&amp; 		(insertNode.id	== "avg_ls_anch"))	{		return null;	}	var html  = '';	var image = this.inline.clockImage; 	if (aRisk != null &amp;&amp; nSeverity != null)	{		var riskCategory = aRisk[1];		var riskName	 = aRisk[2];		var bgColor		 = this.inline.color.background[nSeverity];		var borderColor	 = this.inline.color.border[nSeverity];		image			 = this.inline.image[nSeverity];		var blUrl;		if (blShortUrl)		{			var aRiskName = riskName.split(':');			var sUrl = searchshield.checkUrl(aRiskName[1]);			blUrl = {};			blUrl.riskNameLabel = aRiskName[0] + ': ';			blUrl.riskCategory = riskCategory;			blUrl.bgColor = bgColor;			blUrl.borderColor = borderColor;			blUrl.sUrl = sUrl;		}		else		{			html = avglsinlineflyover.build(riskCategory, riskName, bgColor, borderColor);		}	}	doc = anchor.ownerDocument;	var img		 = doc.createElement("img");	img.src		 = image;	img.setAttribute("id","avg_ls_image");	img.style.width = "12px";	img.style.height = "12px";	img.style.border = "none";	img.style.padding = "0 3px";	img.style.margin = "0";		if ((html &amp;&amp; html.length &gt; 0) || (blUrl != undefined))	{		img.setAttribute("title", "");		img.attachEvent("onmouseover", function(e){avglsinlineflyover.popup(e, html, nSeverity, blUrl)});		img.attachEvent("onmouseout", function(e){avglsinlineflyover.hide(e)});	}	// create the link element 	var newAnchor = doc.createElement("A");	newAnchor.setAttribute("id", "avg_ls_anch");	newAnchor.style.display = "inline-block";	newAnchor.style.background = "none repeat scroll 0 0 transparent";		newAnchor.appendChild(img);	img = null;	// insert the node as either a sibling or a child	if (insertNode != null)		anchor.parentNode.insertBefore(newAnchor, insertNode);	else		anchor.parentNode.appendChild(newAnchor);				return newAnchor;		};////////////////    SEARCH ENGINE    ///////////////////////////////    GOOGLE SEARCH ENGINE    ///////////////searchshield.GoogleSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.onlyPrimaries = false;};searchshield.GoogleSearchEngine.prototype = new searchshield.SearchEngine();searchshield.GoogleSearchEngine.prototype.constructor = searchshield.GoogleSearchEngine;searchshield.GoogleSearchEngine.prototype.name = "google";	// the name by which the search engine is known (always lowercase)searchshield.GoogleSearchEngine.prototype.validSearch = function(href) {	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var hostMatch	= false;	var domain		= uri.host;		// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;	// For Google the host must match:	//	.google.com		OR	//	.google.com.XX	OR	//	.google.co.XX	OR	//	.google.XX		where XX is a country code	//	one special case is www.googe.off.ai (Anguilla)	//	Where any subdomain can come before the top level domain	if ( /(\.(?:google|mozilla)\.(?:com|(?:co|off)\.[a-z]{2}|[a-z]{2}))/i.test(domain) )	{		//check the path		if ((path.indexOf("search?") == 0) ||			(path.indexOf("sponsoredlinks?") == 0) ||			(path.indexOf("webhp?") == 0) ||			(path.indexOf("webhp#") == 0) ||			(path.indexOf("#q=") == 0) ||			(path.indexOf("#hl=") == 0) ||			(path.indexOf("#sclient=") == 0))		{			return true;		}	}	return false;};searchshield.GoogleSearchEngine.prototype.includeLink = function(tag){	var href = "";	var outHref = false;	var findStr = "";	// check for interstitials	if (searchshield.DoesURLContain(tag.href, this.search.uri.host))	{		findStr = this.search.uri.host + "/interstitial?";		if (tag.className == "l" &amp;&amp; tag.href)		{			if (tag.href.indexOf(findStr) != -1)			{				findStr = "?url=";				var pos = tag.href.indexOf(findStr);				if (pos !== -1)				{					pos += 5;					outHref = tag.href.substring(pos);					if (searchshield.FilterUrl(outHref, this.filter_urls))						return false;												return outHref;				}			}		}		if (tag.className == "sla")		{			findStr = "/url?q=";			urlPos = tag.href.indexOf(findStr);			if (urlPos != -1)			{				urlPos += 7;				outHref = tag.href.substring(urlPos);				return outHref;			}		}				// if an ad id		if ((tag.id.indexOf("pa") == 0) || (tag.id.indexOf("an") == 0) ||			(tag.className == "resultLink"))		{			var urlPos = -1;				// ads now need unescaping			href = unescape(tag.href);			findStr= "/url?sa=";			if (href.indexOf(findStr) != -1)			{	// first kind, locate real url				findStr= "&amp;q=http";				urlPos = href.indexOf(findStr);				if (urlPos != -1)					urlPos += 3;	// puts it on the http			}			if (urlPos == -1)			{				findStr = "/pagead/iclk?sa=";				if (href.indexOf(findStr) != -1)				{	// second kind, locate real url					findStr = "&amp;adurl=http";					urlPos	= href.indexOf(findStr);					if (urlPos != -1)						urlPos += 7; // puts it on the http				}			}			if (urlPos == -1)			{				if (href.indexOf("/aclk?sa=") != -1)				{	// third kind					urlPos = href.indexOf("&amp;q=http");					if (urlPos != -1)						urlPos += 3; // puts it on the http					else					{						urlPos  = href.indexOf("&amp;lp=http");						if (urlPos != -1)							urlPos += 4;						else						{							findStr = "&amp;adurl=http";							urlPos	= href.indexOf(findStr);							if (urlPos != -1)								urlPos += 7; // puts it on the http						}											}				}			}			if (urlPos == -1)			{				if (href.indexOf("/url?cad=") != -1)				{	// fourth kind					urlPos = href.indexOf("&amp;q=http");					if (urlPos != -1)						urlPos += 3; // puts it on the http				}			}			if (urlPos != -1)			{				outHref = href.substring(urlPos);				// the destination url is in the href string of this redirector				if (outHref.indexOf('xg4ken.com') &gt; -1)				{					urlPos = (unescape(outHref)).indexOf('url[]=') + 6;					var destUrl = (unescape(outHref)).substring(urlPos);					if (searchshield.FilterUrl(destUrl, this.filter_urls))					{						var destUrl = searchshield.getHrefFromCiteElement(tag);						if (destUrl)							return searchshield.checkUrl(searchshield.removeHtmlTags(destUrl));						return false;					}					return destUrl;				}				// filtered url but can get destination from href string				if (outHref.indexOf('altfarm.mediaplex.com') &gt; -1)				{					var tmpoh = unescape(outHref);					var destUrl = tmpoh.substring(tmpoh.indexOf('DURL=')+5);					if (destUrl != null)					{						var destUrl = unescape(destUrl);						return destUrl;					}				}				// extract any fragment text, shouldn't be unescaped				var pound = outHref.indexOf("#");					if (pound != -1)				{					var fragment = outHref.substring(pound);					outHref = outHref.substring(0, pound);					outHref = unescape(outHref);					outHref += fragment;					if (searchshield.FilterUrl(outHref, this.filter_urls))						return false;					return outHref;				}				outHref = unescape(outHref);				if (outHref.indexOf("?") == -1)				{					var ampPos = outHref.indexOf("&amp;");					if (ampPos != -1)						outHref = outHref.substring(0, ampPos);				}								if (searchshield.FilterUrl(outHref, this.filter_urls))				{					var destUrl = searchshield.getHrefFromCiteElement(tag);					if (destUrl)						return searchshield.checkUrl(searchshield.removeHtmlTags(destUrl));					return false;				}				return outHref;			}		}		// recommended link - use following to see one		// http://www.google.cz/search?hl=cs&amp;q=warey&amp;btnG=Hledat&amp;lr=lang_cs		// elem parent class = r		// href must contain - url? and q=http		var parentNode = tag.parentNode;		if (parentNode &amp;&amp; (parentNode.className.toLowerCase() == "r"))		{			href = tag.href;			if (href &amp;&amp; (href.indexOf("/url?") != -1))			{				// locate the real url				var urlPos = href.indexOf("q=http");				if (urlPos != -1)				{					urlPos += 2;					outHref = href.substring(urlPos);					// include entire param up to '&amp;'					var ampPos = outHref.indexOf("&amp;");					if (ampPos != -1)						outHref = outHref.substring(0, ampPos);					return outHref;				}			}		}	}	// no link to self	else if (tag.className &amp;&amp; (tag.className.charAt(0) == "l" || tag.className == "sla"))	{		// check for any images on the link		if (0 === tag.getElementsByTagName("IMG").length)			return tag.href;	}	// else nothing	return false;};///////////////    GOOGLE    //////////////////////////////    AVG GOOGLE SEARCH ENGINE    ///////////////searchshield.AVGGoogleSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.onlyPrimaries = false;};searchshield.AVGGoogleSearchEngine.prototype = new searchshield.SearchEngine();searchshield.AVGGoogleSearchEngine.prototype.constructor = searchshield.AVGGoogleSearchEngine;searchshield.AVGGoogleSearchEngine.prototype.name = "avggoogle";	// the name by which the search engine is known (always lowercase)searchshield.AVGGoogleSearchEngine.prototype.validSearch = function(href) {	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var domain		= uri.host;		// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;	if  (domain.indexOf("search.avg.com") &gt; -1)	{   // ads link back to google		return true;	}		return false;};searchshield.AVGGoogleSearchEngine.prototype.includeLink = function(tag){	var outHref = false;	var findStr = "";	// check for interstitials	if (searchshield.DoesURLContain(tag.href, "google.com"))	{		// link back to self - DIV elem GrandParent class of res1 or res3 is Sponsored Link 		var parentNode = tag.parentNode;		if (parentNode)		{			var grandParentNode = tag.parentNode.parentNode;			if (grandParentNode)			{				if ((grandParentNode.tagName == "DIV") &amp;&amp; 					((grandParentNode.className.toLowerCase() == "res1") ||					(grandParentNode.className.toLowerCase() == "res3")))				{					var urlPos = -1;						// ads now need unescaping					href = unescape(tag.href);					if (urlPos == -1)					{						if (href.indexOf("/aclk?sa=") != -1)						{								findStr = "&amp;adurl=http";							urlPos	= href.indexOf(findStr);							if (urlPos != -1)								urlPos += 7; // puts it on the http														}					}					if (urlPos != -1)					{						outHref = href.substring(urlPos);						// the destination url is in the href string of this redirector						if (outHref.indexOf('xg4ken.com') &gt; -1)						{							urlPos = (unescape(outHref)).indexOf('url[]=') + 6;							var destUrl = (unescape(outHref)).substring(urlPos);							if (searchshield.FilterUrl(destUrl, this.filter_urls))							{								var destUrl = searchshield.getHrefFromCiteElement(tag);								if (destUrl)									return searchshield.checkUrl(searchshield.removeHtmlTags(destUrl));								return false;							}							return destUrl;						}						// filtered url but can get destination from href string						if (outHref.indexOf('altfarm.mediaplex.com') &gt; -1)						{							var tmpoh = unescape(outHref);							var destUrl = tmpoh.substring(tmpoh.indexOf('DURL=')+5);							if (destUrl != null)							{								var destUrl = unescape(destUrl);								return destUrl;							}						}										// extract any fragment text, shouldn't be unescaped						var pound = outHref.indexOf("#");							if (pound != -1)						{							var fragment = outHref.substring(pound);							outHref = outHref.substring(0, pound);							outHref = unescape(outHref);							outHref += fragment;							if (searchshield.FilterUrl(outHref, this.filter_urls))								return false;							return outHref;						}						outHref = unescape(outHref);						if (outHref.indexOf("?") == -1)						{							var ampPos = outHref.indexOf("&amp;");							if (ampPos != -1)								outHref = outHref.substring(0, ampPos);						}										if (searchshield.FilterUrl(outHref, this.filter_urls))						{							var destUrl = searchshield.getHrefFromCiteElement(tag);							if (destUrl)								return searchshield.checkUrl(searchshield.removeHtmlTags(destUrl));							return false;						}						return outHref;					}				}			}		}	}				// no link to self	else	{		var parentNode = tag.parentNode;		if (parentNode)		{			var grandParentNode = tag.parentNode.parentNode;			if (grandParentNode)			{				if ((grandParentNode.tagName == "DIV") &amp;&amp; 					(grandParentNode.className.toLowerCase() == "res2"))				{					// check for any images on the link					if (0 === tag.getElementsByTagName("IMG").length)						return tag.href;				}			}		}	}	// else nothing	return false;}///////////////    AVG GOOGLE    //////////////////////////////    YAHOO SEARCH ENGINE    ///////////////searchshield.YahooSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.showCleanVerdicts = false;};searchshield.YahooSearchEngine.prototype = new searchshield.SearchEngine();searchshield.YahooSearchEngine.prototype.constructor = searchshield.YahooSearchEngine;searchshield.YahooSearchEngine.prototype.name = "yahoo";searchshield.YahooSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var domain = uri.host;	// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;	// For Yahoo the host must match:	//	search.yahoo.com		OR	//	xx.search.yahoo.com where xx is the country code OR	//	search.yahoo.co.jp OR	// for Yahoo China: one.cn.yahoo.com, search.cn.yahoo.com or www.yahoo.cn	if ((domain.match(/search\.yahoo\.co(?:m|\.jp)/i) ||		domain.match(/(?:search|one)\.cn\.yahoo\.com/i) ||		domain.match(/www\.yahoo\.cn/i)) &amp;&amp; 		path.match(/^(?:search[;?]|s\?)/i))	{		return true;	}	return false;};searchshield.YahooSearchEngine.prototype.includeLink = function(tag){	var href		= "";	var outHref		= "";	var findStr		= "";	// yahoo likes to encode the url	href = unescape(tag.href);	if ((tag.className.indexOf("yschttl") != -1) || 		(tag.className.indexOf("spt") != -1))	{		var da = href.indexOf("**");		var ad = href.indexOf("*-");		if (da != -1)			outHref = href.substring(da+2);		else if (ad != -1)			outHref = href.substring(ad+2);		else			outHref = href ;					if (outHref.toLowerCase().indexOf("overture.") !== -1)			return false;	}	else if ((tag.tagName)			&amp;&amp; 			 (tag.tagName === "A") 	&amp;&amp; 			 (!tag.className))	{		var tagParent = tag.parentNode;				// if anchor without className then search parentNodes		if ((tagParent) &amp;&amp;			(tagParent.tagName !== "EM") &amp;&amp;			(searchshield.getParentNodeByClassName("yst-web", tag, 4)))		{			// China Yahoo support			outHref = href;		}				else if ((tagParent) &amp;&amp;				(tagParent.tagName === "H3") &amp;&amp;				(!!searchshield.getParentNodeById("WS2m",tag, 5)))		{			// Japan Yahoo support			var da = href.indexOf("**");			if (da == -1)				outHref = href;			else				outHref = href.substring(da+2);		}		else if ((tagParent) &amp;&amp;				(tagParent.className !== "c") &amp;&amp;				(tagParent.parentNode.id !== "fpn") &amp;&amp;				(!!searchshield.getParentNodeByClassName("ymc", tag, 7)))		{			// Korea Yahoo support - when not caught by yschttl			var da = href.indexOf("**");			if (da !== -1)				outHref = href.substring(da+2);		}	}	else if (!this.onlyPrimaries)	{		findStr = "&amp;yargs=";		var yargs = href.indexOf(findStr);		if (yargs != -1)		{			outHref = href.substring(yargs+findStr.length);			// check for prefix			if (outHref.indexOf("://") == -1)				outHref = "http://" + outHref;			// if inside an &lt;i&gt;, probably a paypal link, don't include			if (tag.parentNode &amp;&amp; (tag.parentNode.tagName == "I"))				return false;		} 	}	// filter domains	// split the url based on '/'	var parts = !!outHref ? outHref.split('/') : null;	// Filter out domains that match any of the search engine's names	if (!parts || !parts[2])		return false;			var domain = parts[2];	if ((domain.indexOf("rdrjp.yahoo.com") != -1)	||		(domain.indexOf("rdrkrs.yahoo.com") != -1)	||		(domain.indexOf("rdrtpe.yahoo.com") != -1)	||		(domain.indexOf("rdrird.yahoo.com") != -1)	||		(domain.indexOf("rdrhk2.yahoo.com") != -1)	||		(domain.indexOf("rdrsg1.yahoo.com") != -1)	||		(domain.indexOf("rdrin2.yahoo.com") != -1)	||		(domain.indexOf("rdre1.yahoo.com") != -1)	||		(domain.indexOf("rdrw1.yahoo.com") != -1)		)	{		return false;	}	// set for yahoo to get parent node for image insertion	var hash = searchshield.avgCallFunc(this.doc, 'GetHash', outHref);	tag.setAttribute("id", "xplid_" + hash);	return outHref;};///////////////    YAHOO SEARCH ENGINE    //////////////////////////////    AVG YAHOO SEARCH ENGINE    ///////////////searchshield.AVGYahooSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.showCleanVerdicts = false;	this.omitAltImage = true;	this.updateImageStyle = {		verticalAlign: null	};};searchshield.AVGYahooSearchEngine.prototype = new searchshield.SearchEngine();searchshield.AVGYahooSearchEngine.prototype.constructor = searchshield.AVGYahooSearchEngine;searchshield.AVGYahooSearchEngine.prototype.name = "avgyahoo";searchshield.AVGYahooSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	//path may be 'avg/search' or 'search'	var pathArray = uri.path.split("/");	var avg = pathArray[0];	// re stitch the uri path and query elements	// to use existing logic	var path = (undefined == pathArray[1]) ? pathArray[0] : pathArray[1];		path += uri.delimiter + uri.query;	// For AVG Yahoo classic the host must match:	//	yhs.search.yahoo.com	OR	//	.yhs.search.yahoo.com	if (domain.indexOf("yhs.search.yahoo.co") != -1)	{		if ((avg == "avg") &amp;&amp;			((path.indexOf("search?") == 0) ||			 (path.indexOf("search;") == 0)))		{			return true;		}	}		// also support new metro version which DOESN'T 	// contain /avg so avg split part is path	// valid domains are:	//	search.yahoo.com, 	//	xx.search.yahoo.com and	//	search.yahoo.co.xx	if (domain.indexOf("search.yahoo.co") != -1) 	{		// path (split avg) must start with search and		// contain the avg toolbar parameter		if (((path.indexOf("search?") == 0) ||			(path.indexOf("search;") == 0)) &amp;&amp;			(path.indexOf("fr=yhs-avg") != -1))		{			return true;		}	}	return false;};searchshield.AVGYahooSearchEngine.prototype.includeLink = function(tag){	var href		= "";	var outHref		= "";	var findStr		= "";	if (this.search.doc.body.className.toLowerCase() != "standard")	{	// handle as std Yahoo results page		return searchshield.YahooSearchEngine.prototype.includeLink(tag);	}		// yahoo likes to encode the url	href = unescape(tag.href);	if (tag.target == "_top")	{		var da = href.indexOf("**");		if (da != -1)			outHref = href.substring(da+2);		else			outHref = href ;		if (outHref.toLowerCase().indexOf("overture.") !== -1)			return false;	}	else if (!this.onlyPrimaries)	{		findStr = "&amp;yargs=";		var yargs = href.indexOf(findStr);		if (yargs != -1)		{			outHref = href.substring(yargs+findStr.length);			// check for prefix			if (outHref.indexOf("://") == -1)				outHref = "http://" + outHref;			// if inside an &lt;i&gt;, probably a paypal link, don't include			if (tag.parentNode &amp;&amp; (tag.parentNode.tagName == "I"))				return false;		} 	}	// filter domains	// split the url based on '/'	var parts = outHref.split('/');	// Filter out domains that match any of the search engine's names	if (!parts[2])		return false;			var domain = parts[2];	if ((domain.indexOf("rdrjp.yahoo.com") != -1)	||		(domain.indexOf("rdrkrs.yahoo.com") != -1)	||		(domain.indexOf("rdrtpe.yahoo.com") != -1)	||		(domain.indexOf("rdrird.yahoo.com") != -1)	||		(domain.indexOf("rdrhk2.yahoo.com") != -1)	||		(domain.indexOf("rdrsg1.yahoo.com") != -1)	||		(domain.indexOf("rdrin2.yahoo.com") != -1)	||		(domain.indexOf("rdre1.yahoo.com") != -1)	||		(domain.indexOf("rdrw1.yahoo.com") != -1)		)	{		return false;	}	return outHref;};///////////////    AVG YAHOO SEARCH ENGINE    //////////////////////////////    MSN SEARCH ENGINE    ///////////////searchshield.MSNSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.onlyPrimaries = false;};searchshield.MSNSearchEngine.prototype = new searchshield.SearchEngine();searchshield.MSNSearchEngine.prototype.constructor = searchshield.MSNSearchEngine;searchshield.MSNSearchEngine.prototype.name = "msn";searchshield.MSNSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var hostMatch	= false;	var domain		= uri.host;	// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;	// For MSN the host must match:	//	search.msn.com		OR	//	search.live.com	if (domain.indexOf("search.msn.co") &gt; -1)	{		if (domain.charAt(13) == 'm')			hostMatch = true;		else if ((domain.charAt(13) == '.') &amp;&amp; (domain.length == 16))			hostMatch = true;	}	else if (domain.indexOf("search.live.co") &gt; -1)	{		if (domain.charAt(14) == 'm')			hostMatch = true;		else if ((domain.charAt(14) == '.') &amp;&amp; (domain.length == 17))			hostMatch = true;	}		if (hostMatch)	{		if (path.indexOf("results.aspx") == 0)			return true;	}	return false;};searchshield.MSNSearchEngine.prototype.includeLink = function(tag){	var outHref = false;		// these don't seem common from Firefox, but they are in IE	if (searchshield.DoesURLContain(tag.href, "g.msn.co"))	{		var qPos = tag.href.indexOf("?");		if (qPos != -1)		{			var postPart = tag.href.substring(qPos+1);			var dblAmp = postPart.indexOf("&amp;&amp;");			if (dblAmp != -1)			{				outHref = postPart.substring(0, dblAmp);				return outHref;			}		}	}	else if (searchshield.DoesURLContain(tag.href, "r.msn.co"))	{		var element = tag;		var parentNode = tag.parentNode;		// top links - check for a CITE		var spanElements = element.getElementsByTagName("CITE");		if ((spanElements != null)				&amp;&amp; 			(spanElements.length &gt; 0))		{			outHref = spanElements[0].innerHTML;			// replace any nbsp's			outHref = outHref.replace("&amp;nbsp;", " ");			// url is after the last space in the html, after the '-'			var space_pos = outHref.lastIndexOf(" ");			if (space_pos != -1)				outHref = outHref.slice(space_pos + 1);			outHref = searchshield.checkUrl(outHref);			return outHref;		}				// side links 		if (element.lastChild != null)		{			outHref = element.lastChild.innerHTML;			if ( outHref != null)			{				outHref = searchshield.checkUrl(outHref);				return outHref;			}		}	}	else if (searchshield.DoesURLContain(tag.href, this.search.uri.host)					||			 searchshield.DoesURLContain(tag.href, ".live.com")					||			 searchshield.DoesURLContain(tag.href, "msn.")						||			 searchshield.DoesURLContain(tag.href, "msnscache.com")				||			 searchshield.DoesURLContain(tag.href, "advertising.microsoft.co")	||			 searchshield.DoesURLContain(tag.href, "javascript:")				||			 searchshield.DoesURLContain(tag.href, "go.microsoft.co")			||			 searchshield.DoesURLContain(tag.href, "hotmail.co"))	{		// not a link		return false;	}	else if (tag.id.toLowerCase() == "trademarks")	{		// don't link the trademark at the bottom of the page		return false;	}	else	{		// include it		return tag.href;	}};///////////////    MSN SEARCH ENGINE    //////////////////////////////    BING SEARCH ENGINE    ///////////////searchshield.BingSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);};searchshield.BingSearchEngine.prototype = new searchshield.SearchEngine();searchshield.BingSearchEngine.prototype.constructor = searchshield.BingSearchEngine;searchshield.BingSearchEngine.prototype.name = "bing";searchshield.BingSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var hostMatch	= false;	var domain		= uri.host;	// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;		// For bing the host must match:	//	www.bing.com or www.bing.net	//	xx.bing.com or xx.bing.net where xx is a country code	//	bing.com.xx where xx is a country code	//	bing.search.xxxx.net where xxxx may be something like daum	if ((domain.indexOf("www.bing.com") !== -1) ||		(domain.indexOf("www.bing.net") !== -1) ||		(domain.indexOf("bing.net") !== -1))	{		hostMatch = true;	}	else if ((domain.indexOf("bing.search.") !== -1) &amp;&amp; 			 (domain.indexOf(".net") === (domain.length-4))) 	{	//bing.search.xxxx.net		hostMatch = true;	}	else	{	// xx.bing.com or bing.com.xx		var domainLen = domain.length;		var tldPos = domain.indexOf(".bing.com");		if (tldPos &gt; -1)		{			if ((domainLen - tldPos) == 9)				hostMatch = true;		}		}		if (hostMatch)	{		var displayStyle = (domain == 'bing.search.daum.net') ? 'inline-block' : 'inline';		this.addAnchorStyle = {			display: displayStyle		};				if (path.indexOf("search?") == 0)			return true;	}	return false;};searchshield.BingSearchEngine.prototype.includeLink = function(tag){	var outHref = false;	if (tag.tagName == 'IMG')	{	//no images 		return false;	}			if (tag.href.charAt(0) == '/')	{	//no relative links		return false;	}	if (/trademarks/i.test(tag.id))	{		// don't link the trademark at the bottom of the page		return false;	}		if ((tag.parentNode) &amp;&amp; (/sc_stc/i.test(tag.parentNode.id)))	{	// don't verdict the social sites - our verdict doesn't fit		return false;	}	else if (!!searchshield.getParentNodeByClassName("sw_t",tag,3))	{	// no links in page header		return false;	}	else if (searchshield.DoesURLContain(tag.href, "r.msn.co") ||			 searchshield.DoesURLContain(tag.href, "overture.com"))	{	// france has r.msn.co and italy has overture.com sponsored links		// with the link in CITE element				var spanElements = null;				// top links - check for a CITE		spanElements = tag.getElementsByTagName("CITE");		if ((spanElements == null) || (spanElements.length &lt;= 0))		{			if (tag.parentNode &amp;&amp; tag.parentNode.parentNode)				spanElements = tag.parentNode.parentNode.getElementsByTagName("CITE");		}				if ((spanElements != null) &amp;&amp; (spanElements.length &gt; 0))		{			outHref = spanElements[0].innerHTML;			if (outHref != null)			{				// replace any nbsp's				outHref = outHref.replace("&amp;nbsp;", " ");				// url is after the last space in the html, after the '-'				var space_pos = outHref.lastIndexOf(" ");				if (space_pos != -1)					outHref = outHref.slice(space_pos + 1);				outHref = searchshield.checkUrl(outHref);				// save the link				return outHref;			}		}				// side links 		if (tag.lastChild != null)		{			outHref = tag.lastChild.innerHTML;			if (outHref != null)			{				outHref = searchshield.checkUrl(outHref);				// save the link				return outHref;			}		}	}	// no sponsored links for now 	else if (searchshield.DoesURLContain(tag.href, this.search.uri.host)	||		 searchshield.DoesURLContain(tag.href, ".live.com")				||		 searchshield.DoesURLContain(tag.href, ".bing.com")				||		 searchshield.DoesURLContain(tag.href, ".bing.net")				||		 searchshield.DoesURLContain(tag.href, ".daum.net")				||		 searchshield.DoesURLContain(tag.href, ".gmarket.co")			||		 searchshield.DoesURLContain(tag.href, ".multimap.com")			||		 searchshield.DoesURLContain(tag.href, "msn.")					||		 searchshield.DoesURLContain(tag.href, "ms.ciao.")				||		 searchshield.DoesURLContain(tag.href, "ms.ciao-")				||		 searchshield.DoesURLContain(tag.href, "advertising.microsoft.co")	||		 searchshield.DoesURLContain(tag.href, "javascript:")				||		 searchshield.DoesURLContain(tag.href, "go.microsoft.co")			||		 searchshield.DoesURLContain(tag.href, "hotmail.co")					||		 searchshield.DoesURLContain(tag.href, "cc.bingj.com")				||		 searchshield.DoesURLContain(tag.href, "microsofttranslator.com")	||		 searchshield.DoesURLContain(tag.href, ".engkoo.com")				||		 searchshield.DoesURLContain(tag.href, "sealinfo.verisign.com")		||		 searchshield.DoesURLContain(tag.href, "explabs.com")				||		 searchshield.DoesURLContain(tag.href, "onlinehelp.microsoft.com")	||		 searchshield.DoesURLContain(tag.href, ".myoverture"))	{		// not a link		return false;	}	else		return tag.href;};searchshield.BingSearchEngine.prototype.addImage = function(node, image, hidden){	var element	= node.element;	var parentNode 	= node.element.parentNode;	var grandParentNode = !!parentNode ? parentNode.parentNode : null;	// if there are redundant links in the same grandparent then skip them	if (!!grandParentNode)	{		gpChildren = grandParentNode.childNodes;		for (var i=0; i &lt; gpChildren.length; i++)		{			if (!!element.href &amp;&amp; gpChildren[i].tagName == "A" &amp;&amp; gpChildren[i].href == element.href)				return;		}	}	var parent = searchshield.SearchEngine.prototype.addImage;	return parent.call(this, node, image, hidden);};///////////////    BING SEARCH ENGINE    //////////////////////////////    BAIDU SEARCH ENGINE    ///////////////searchshield.BaiduSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.updateImageStyle = {		verticalAlign: null	};};searchshield.BaiduSearchEngine.prototype = new searchshield.SearchEngine();searchshield.BaiduSearchEngine.prototype.constructor = searchshield.BaiduSearchEngine;searchshield.BaiduSearchEngine.prototype.name = "baidu";searchshield.BaiduSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var hostMatch	= false;	var domain		= uri.host;	// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;		if (domain == "www.baidu.com" || path.indexOf("testBaidu") !== -1)		hostMatch = true;			if (hostMatch)	{		if (path.indexOf("s?") == 0)			return true;	}	return false;};searchshield.BaiduSearchEngine.prototype.includeLink = function(tag){				if (tag.className &amp;&amp; tag.className == "m")			return false;		if (searchshield.DoesURLContain(tag.href, this.search.uri.host))			return false;		else 		{			// no link to self			var traverseElement = tag.parentNode;			while ( traverseElement &amp;&amp; traverseElement.className != "tbody")			{				if (traverseElement.className == "f")					return tag.href;				traverseElement = traverseElement.parentNode;			}						return false;		}};///////////////    BAIDU SEARCH ENGINE    //////////////////////////////    EARTHLINK SEARCH ENGINE    ///////////////searchshield.EarthlinkSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.onlyPrimaries = false;	this.addAnchorStyle = {		position: "static"	};};searchshield.EarthlinkSearchEngine.prototype = new searchshield.SearchEngine();searchshield.EarthlinkSearchEngine.prototype.constructor = searchshield.EarthlinkSearchEngine;searchshield.EarthlinkSearchEngine.prototype.name = "earthlink";searchshield.EarthlinkSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var hostMatch	= false;	var domain		= uri.host;	// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;	// For EarthLink the host must match:	//	search.earthlink.net	if (("search.earthlink.net" == domain)	&amp;&amp;		(path.indexOf("search?") == 0))	{		return true;	}	return false;};searchshield.EarthlinkSearchEngine.prototype.includeLink = function(tag){	var outHref	= "";	var findStr	= "";	// check for an anchor	if (tag.tagName == "A")	{		// check for sponsored		if (tag.id.indexOf("a") == 0)		{			var q = tag.href.indexOf("&amp;q=");			var qlen = 3;			if (q == -1)			{				q = tag.href.indexOf("&amp;adurl=");				qlen = 7;				if (q == -1)					return false;			}			// find end of url			var end = tag.href.indexOf("&amp;", q+qlen);			if (end &lt; 0)				end = tag.href.length;			// add the link			outHref = tag.href.substring(q+qlen, end);						if (searchshield.FilterUrl(outHref, this.filter_urls))				return false;							return outHref;		}		// don't search url's to self		if ((tag.href.indexOf("://") == -1) || searchshield.DoesURLContain(tag.href, this.search.uri.host))			return false;		// if a normal web result add it		if (tag.parentNode &amp;&amp; (tag.parentNode.tagName == "H3") &amp;&amp;			tag.parentNode.parentNode &amp;&amp; (tag.parentNode.parentNode.tagName == "LI") &amp;&amp;			tag.parentNode.parentNode.parentNode &amp;&amp; (tag.parentNode.parentNode.parentNode.tagName == "UL"))		{			if (searchshield.FilterUrl(tag.href, this.filter_urls))				return false;							return tag.href;		}	}		return false;};///////////////    EARTHLINK SEARCH ENGINE    //////////////////////////////    AOL SEARCH ENGINE    ///////////////searchshield.AOLSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);		this.addImageStyle = {		display: "inline"	};	this.addAnchorStyle = {		display: null	};	this.updateImageStyle = {		verticalAlign: null,		display: "inline"	};};searchshield.AOLSearchEngine.prototype = new searchshield.SearchEngine();searchshield.AOLSearchEngine.prototype.constructor = searchshield.AOLSearchEngine;searchshield.AOLSearchEngine.prototype.name = "aol";searchshield.AOLSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain = uri.host;	//path may be 'aol/search' or 'search'	var pathArray = uri.path.split("/");	var aol = pathArray[0];	// re stitch the uri path and query elements	// to use existing logic	var path = (undefined == pathArray[1]) ? pathArray[0] : pathArray[1];		path += uri.delimiter + uri.query;	if (/search\.aol\.com/.test(domain))	{		if ((aol == "aol") &amp;&amp;			(path.indexOf("search?") == 0))		{			return true;		}	}		return false;};searchshield.AOLSearchEngine.prototype.includeLink = function(tag){	if (searchshield.DoesURLContain(tag.href, this.search.uri.host))		return false;		// sponsored links - google	if ((tag.className) &amp;&amp; (tag.className.indexOf("slLink topAnchor") != -1))	{	//parse for embedded href		if (tag.href.indexOf("/aclk?sa=") == -1)			return false;		var adurl = tag.href.indexOf("&amp;adurl=http");		// if an adurl the destination href can be acquired from the onclick handler		if (adurl != -1)		{			var destUrl;			var clickHandler = tag.getAttribute('onclick');			if (clickHandler != null)			{				// the destination href is the 2nd parameter (zero-based array)				destUrl = searchshield.getClickHandlerParams(clickHandler)[1];				if (destUrl != null)				{					destUrl = searchshield.removeHtmlTags(destUrl.replace(/'/g,''));					return searchshield.checkUrl(destUrl);				}			}		}		return false;	}	if (tag.className == "find")		return tag.href;			return false;};searchshield.AOLSearchEngine.prototype.insertNodes = function(node, doc){	var element = node.element;	var score = node.score;	if (element &amp;&amp; element.className &amp;&amp; element.className.indexOf("slLink") != -1)	{	//sponsored links only		// for alt image		if (score == searchshield.SCORE_SS_VERISIGN)			return [element.nextSibling, element.parentNode];		// for verdict image		var cN = element.childNodes;		var cnLen = cN.length;		for (var i=0; i &lt; cnLen; i++)		{			if ((cN[i].nodeType == 1) &amp;&amp; 				(cN[i].nodeName == 'SPAN') &amp;&amp; 				((cN[i].className == 'title') || (cN[i].className == 'durl')))				return [cN[i].nextSibling, cN[i].parentNode];		}	}	var parent = searchshield.SearchEngine.prototype.insertNodes;	return parent.call(this, node, doc);};///////////////    AOL SEARCH ENGINE    //////////////////////////////    ASK SEARCH ENGINE    ///////////////searchshield.AskSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);};searchshield.AskSearchEngine.prototype = new searchshield.SearchEngine();searchshield.AskSearchEngine.prototype.constructor = searchshield.AskSearchEngine;searchshield.AskSearchEngine.prototype.name = "ask";searchshield.AskSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	// re stitch the uri path and query elements	// to use existing logic	var path = uri.path + uri.delimiter + uri.query;		if ("www.ask.com" == domain)	{		if (path.indexOf("web?") == 0)			return true;	}	return false;};searchshield.AskSearchEngine.prototype.includeLink = function(tag){	var outHref	= "";	var findStr	= "";	if (searchshield.DoesURLContain(tag.href, this.search.uri.host))		return false;		if ((tag.className) &amp;&amp; (tag.className.indexOf("nu") != -1) &amp;&amp; (tag.className.indexOf("info") == -1)) 	{		// exclude green links		if ((tag.firstChild) &amp;&amp;			(tag.firstChild.className) &amp;&amp;			(tag.firstChild.className.indexOf('attrib') == 0))		{			return false;		}		// ads link to google with class nu		findStr = "www.google.com";		if (tag.href.indexOf(findStr) != 0)		{			if (tag.href.indexOf(findStr + "/aclk?sa=") != -1)			{					findStr = "&amp;adurl=http";				var pos = tag.href.indexOf(findStr);				if (pos != -1)				{					pos += 7;					outHref = tag.href.substring(pos);					outHref = unescape(outHref);					if (searchshield.FilterUrl(outHref, this.filter_urls))							return false;					return outHref;				}			}		}		else		{	// ad not to google just use href			outHref = tag.href;			if (searchshield.FilterUrl(outHref, this.filter_urls))				return false;			return outHref;		}	}	// primary results have class containing title or L2 ( Wikipedia links )	else if ((tag.className) &amp;&amp; ((tag.className.indexOf("title") != -1) || (tag.className.toLowerCase() == "l2")))	{		outHref = tag.href;		if (searchshield.FilterUrl(outHref, this.filter_urls))			return false;		return outHref;	}		return false;};///////////////    ASK SEARCH ENGINE    //////////////////////////////    ALTAVISTA SEARCH ENGINE    ///////////////searchshield.AltaVistaSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);};searchshield.AltaVistaSearchEngine.prototype = new searchshield.SearchEngine();searchshield.AltaVistaSearchEngine.prototype.constructor = searchshield.AltaVistaSearchEngine;searchshield.AltaVistaSearchEngine.prototype.name = "altavista";searchshield.AltaVistaSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;		// re stitch the uri path and query elements	// to use existing logic	var path = uri.path + uri.delimiter + uri.query;	// www.atlavista.com ---&gt; now http://us.yhs4.search.yahoo.com/yhs/search?fr=altavista&amp;fr=altavista&amp;itag=ody&amp;q=warez&amp;kgs=1&amp;kls=0	// xx.altavista.com where xx is a country code	var hostMatch = false;	if ("www.altavista.com" == domain)	{		hostMatch = true;	}	else	{		// xx.altavista.com		var pDest = domain.indexOf(".altavista.com");		if ((pDest != -1 ) &amp;&amp; ((domain.length - pDest) == 14))		{			hostMatch = true;		}		else		{			// a reference to altavista must be present in yahoo search url			var pRef = (uri.qsArray.fr &amp;&amp; uri.qsArray.fr == 'altavista');			pDest = domain.indexOf("search.yahoo.com");			if (pDest != -1 &amp;&amp; pRef)				hostMatch = true;		}	}	if (hostMatch)	{		//path must start with web/results?		if ((path.indexOf("yhs/search?") == 0)	||			(path.indexOf("search;") == 0)		||			(path.indexOf("yhs/search;") == 0)	||			(path.indexOf("web/results?") == 0)||			(path.indexOf("fr=altavista") != -1))		{			return true;		}	}		return false;};searchshield.AltaVistaSearchEngine.prototype.includeLink = function(tag){	var outHref	= "";	var findStr	= "";	// initial checks	if ((!tag.href)	|| 		(tag.href.charAt(0) == '#') ||		(tag.href.indexOf("javascript:") == 0))	{		return false;	}			if (searchshield.DoesURLContain(tag.href, this.search.uri.host))		return false;		var spnsdLinks = searchshield.getParentNodeByTagName("DIV", tag, "className");	if ((spnsdLinks) &amp;&amp;		(spnsdLinks.className.indexOf('ads') &gt; -1))	// sponsored links	{		if (!tag.parentNode)			return false;		// parse ads for em tag		var baseNode;		if (spnsdLinks.className.indexOf('ads horiz') &gt; -1)	// horizontal ads sections			baseNode = tag.parentNode.parentNode;		else			baseNode = tag.parentNode;				if (!baseNode || !baseNode.lastChild || baseNode.lastChild.tagName != 'EM')			return false;		var outHref = searchshield.removeHtmlTags(baseNode.lastChild.innerHTML);		return outHref;	}		if ((tag.className == "spt") || 		(tag.className == "res") ||		(tag.className == "yschttl spt"))	{		findStr = "/**";		var pos = tag.href.indexOf(findStr);		if (pos != -1)		{			pos += 3;			outHref = tag.href.substring(pos);			outHref = unescape(outHref);						// no results for overture.com &amp; no yahoo domains			chkHref = outHref.toLowerCase();			if (chkHref.indexOf("overture.") != -1)				return false;			// split the url based on '/'			var parts = outHref.split('/');			// only need a domain			if ((parts != null) &amp;&amp; (parts[2] != null))			{				var domain = parts[2];				if ((domain.indexOf("rdrjp.yahoo.com") != -1)	||					(domain.indexOf("rdrkrs.yahoo.com") != -1)	||					(domain.indexOf("rdrtpe.yahoo.com") != -1)	||					(domain.indexOf("rdrird.yahoo.com") != -1)	||					(domain.indexOf("rdrhk2.yahoo.com") != -1)	||					(domain.indexOf("rdrsg1.yahoo.com") != -1)	||					(domain.indexOf("rdrin2.yahoo.com") != -1)	||					(domain.indexOf("rdre1.yahoo.com") != -1)	||					(domain.indexOf("rdrw1.yahoo.com") != -1)		)				{					return false				}			}			return outHref;		}		else		{			return tag.href;		}	}		return false;};searchshield.AltaVistaSearchEngine.prototype.getImgElement = function (element){	while (element != null) 	{		element = element.nextSibling;		if (element != null)		{			if ((element.id == null) || (element.id.indexOf("LXPLSS_") == -1))			{   // not our id but hit another anchor no verdict				if (element.tagName == "A")				{					element = null;					break;				}			}			else if (element.tagName == "A")				break;		}	}			var rtnElem = !!element ? element.firstChild : element;	return rtnElem;};///////////////    ALTAVISTA SEARCH ENGINE    //////////////////////////////    YANDEX SEARCH ENGINE    ///////////////searchshield.YandexSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);};searchshield.YandexSearchEngine.prototype = new searchshield.SearchEngine();searchshield.YandexSearchEngine.prototype.constructor = searchshield.YandexSearchEngine;searchshield.YandexSearchEngine.prototype.name = "yandex";searchshield.YandexSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	// re stitch the uri path and query elements	// to use existing logic	var path = uri.path + uri.delimiter + uri.query;	if ((domain.match(/yandex\.com|by|kz|ru|ua/i)) &amp;&amp;		(path.indexOf("yandsearch?") == 0))	{		return true;	}		return false;};searchshield.YandexSearchEngine.prototype.includeLink = function(tag){	if (tag.href.indexOf("/search") != -1)	{		return false;	}		if (searchshield.DoesURLContain(tag.href, this.search.uri.host)	||		searchshield.DoesURLContain(tag.href, ".yandex.net")		||		searchshield.DoesURLContain(tag.href, ".yandex.ru")			||		searchshield.DoesURLContain(tag.href, "moikrug.ru")			||		searchshield.DoesURLContain(tag.href, "ya.ru")				||		searchshield.DoesURLContain(tag.href, ".yandex.com")		||		searchshield.DoesURLContain(tag.href, "yandex.st"))	{		return false;	}			parentNode = tag.parentNode;	if ((tag.parentNode)			&amp;&amp; 		(tag.parentNode.parentNode)	&amp;&amp;		(tag.parentNode.parentNode.className.toLowerCase() == "moreinfo"))	{		return false;	}		return tag.href;};searchshield.YandexSearchEngine.prototype.getImgElement = function (element){	while (element != null) 	{		element = element.nextSibling;		if (element != null)		{			if ((element.id == null) || (element.id.indexOf("LXPLSS_") == -1))			{   // not our id but hit another anchor no verdict				if (element.tagName == "A")				{					element = null;					break;				}			}			else if (element.tagName == "A")				break;		}	}			var rtnElem = !!element ? element.firstChild : element;	return rtnElem;};///////////////    YANDEX SEARCH ENGINE    //////////////////////////////    SEZNAM SEARCH ENGINE    ///////////////searchshield.SeznamSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.elementAttribute = {		width: "18",		height: "18"	};	this.updateImageStyle = {		width: "18px",		height: "18px"	};};searchshield.SeznamSearchEngine.prototype = new searchshield.SearchEngine();searchshield.SeznamSearchEngine.prototype.constructor = searchshield.SeznamSearchEngine;searchshield.SeznamSearchEngine.prototype.name = "seznam";searchshield.SeznamSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	// re stitch the uri path and query elements	// to use existing logic	var path = uri.path + uri.delimiter + uri.query;	if ((domain.indexOf("search.seznam.cz") &gt; -1)	&amp;&amp;		((path.indexOf("?") == 0) || (path.indexOf("svet") == 0)))	{		return true;	}		return false;};searchshield.SeznamSearchEngine.prototype.includeLink = function(tag){	if (searchshield.DoesURLContain(tag.href, this.search.uri.host))		return false;		var parentNode = tag.parentNode;	if (parentNode)	{		var grandParentNode = tag.parentNode.parentNode;		if ((parentNode.tagName == "SPAN") &amp;&amp; 			((parentNode.className.toLowerCase() == "sklik-url") ||			(parentNode.className.toLowerCase() == "sklik-title")))		{	// locate the real url and unencode it			var urlPos = tag.href.indexOf("&amp;url=http");			if (urlPos != -1)			{				urlPos += 5;					outHref = tag.href.substring(urlPos);				outHref = unescape(outHref);				return outHref;			}		}		else if (grandParentNode) 		{			var greatGrandParentNode = tag.parentNode.parentNode.parentNode;			if ((grandParentNode.tagName == "DIV") &amp;&amp;				((grandParentNode.className.toLowerCase() == "text") || (grandParentNode.className.toLowerCase() == "hlasky otz")))			{	// standard link				return tag.href;			}			else if (greatGrandParentNode &amp;&amp; greatGrandParentNode.tagName == "DIV" &amp;&amp;					(greatGrandParentNode.className.toLowerCase() == "hotlinks")) 			{	// hint link				return tag.href;			}					}	}		return false;};///////////////    SEZNAM SEARCH ENGINE    //////////////////////////////    WEBHLEDANI SEARCH ENGINE    ///////////////searchshield.WebhledaniSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);};searchshield.WebhledaniSearchEngine.prototype = new searchshield.SearchEngine();searchshield.WebhledaniSearchEngine.prototype.constructor = searchshield.WebhledaniSearchEngine;searchshield.WebhledaniSearchEngine.prototype.name = "webhledani";searchshield.WebhledaniSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	// re stitch the uri path and query elements	// to use existing logic	var path = uri.path + uri.delimiter + uri.query;	if ((domain.indexOf("webhledani.cz") &gt; -1)	&amp;&amp;		(path.indexOf("results.aspx?") == 0))	{		return true;	}		return false;};searchshield.WebhledaniSearchEngine.prototype.includeLink = function(tag){	if (tag.href.indexOf("/redir.aspx?") != -1)	{		var ancestorNode;		// sponsored link		if ((ancestorNode = searchshield.getParentNodeByClassName("results sponsored", tag, 3)) != null)		{			if ((ancestorNode = searchshield.getParentNodeByClassName("res1", tag, 2)) != null)			{								var spanSibling = ancestorNode.nextSibling;				while (spanSibling.nodeName != 'SPAN')				{					spanSibling = spanSibling.nextSibling;					if (spanSibling.nodeName == 'DIV' || spanSibling.className == 'res1')					{						spanSibling = null;						break;					}				}				if (spanSibling)					 outHref = spanSibling.innerHTML;			}			if (outHref)				return searchshield.checkUrl(searchshield.removeHtmlTags(outHref)); 		}			if ((ancestorNode = searchshield.getParentNodeByClassName("right-sponsored", tag, 3)) != null)		{			var outHref;			if ((ancestorNode = searchshield.getParentNodeByClassName("res3", tag, 2)) != null)			{								var spanSibling = ancestorNode.nextSibling;				while (spanSibling.nodeName != 'SPAN')				{					spanSibling = spanSibling.nextSibling;					if (spanSibling.nodeName == 'DIV' || spanSibling.className == 'res3')					{						spanSibling = null;						break;					}				}				if (spanSibling)					 outHref = spanSibling.innerHTML;			}			if (outHref)				return searchshield.checkUrl(searchshield.removeHtmlTags(outHref)); 		}		// result link		if (searchshield.getParentNodeByClassName("results", tag, 3) != null)		{			if ((ancestorNode = searchshield.getParentNodeByClassName("res2", tag, 2)) != null)			{				if (tag.parentNode &amp;&amp; (tag.parentNode.nodeName != 'P'))					return getLinkHref(ancestorNode);			}		}	}	return false;	function getLinkHref(aNode)	{		var spanElems = aNode.getElementsByTagName('span');		for (var i=0; i &lt; spanElems.length; i++)		{			if (spanElems[i].className != 'site')				continue;			var outAnchor = spanElems[i].getElementsByTagName('a')[0];			if (outAnchor == null)				outAnchor = spanElems[i];			return searchshield.checkUrl(searchshield.removeHtmlTags(outAnchor.innerHTML));		}		return false;	}};///////////////    WEBHLEDANI SEARCH ENGINE    //////////////////////////////    EBAY SEARCH ENGINE    ///////////////searchshield.eBaySearchEngine = function(search){	searchshield.SearchEngine.call(this, search);};searchshield.eBaySearchEngine.prototype = new searchshield.SearchEngine();searchshield.eBaySearchEngine.prototype.constructor = searchshield.eBaySearchEngine;searchshield.eBaySearchEngine.prototype.name = "ebay";searchshield.eBaySearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	// shop.ebay.xx	// shop.xxxx.ebay.xx	like shop.benl.ebay.be	// search.auction.co.kr 	var path = uri.path + uri.delimiter + uri.query;		if ((domain.indexOf("shop.ebay") &gt; -1)	||		(domain.indexOf("shop.benl.ebay") &gt; -1))	{		if ((path.indexOf("?_from=") == 0)	||			(path.indexOf("i.html") &gt; -1))		{			return true;		}	}		// ebay.se	if ((domain.indexOf("search.eim.ebay") &gt; -1) &amp;&amp;		((path.indexOf("?kw=") &gt; -1) || (path.indexOf("?ev=") &gt; -1)))	{		return true;	}		if ((domain.indexOf("search.auction.co.kr") &gt; -1 ) &amp;&amp;		((path.indexOf("?keyword=") &gt; -1)))	{		// would normally set these properties in the constructor or in an		// overriding function but they're only required for this domain		 		// links are in iframes		this.processFrames = true;				// must downsize verdicts for proper display		this.elementAttribute = {			width: "16",			height: "16"		};		this.updateImageStyle = {			width: "16px",			height: "16px"		};				return true;	}	// latin america ebay	// listado.mercadolibre.com.xx or listado.mercadolibre.co.xx	//   or listado.mercadolibre.xx or	//   category.mercadolibre.com.xx or listado.mercadolibre.xx/category	// lista.mercadolivre.com.xx or lista.mercadolivre.com.xx/category	if ((domain.indexOf("www.") == -1) &amp;&amp;		((domain.indexOf(".mercadolibre.") &gt; -1 ) ||		 (domain.indexOf(".mercadolivre.") &gt; -1 ))) 	{		return true;	}	return false;};searchshield.eBaySearchEngine.prototype.includeLink = function(tag){	var parentNode = null;	var outHref = false;		if (searchshield.DoesURLContain(tag.href, this.search.uri.host))		return false;		if ( tag.href.indexOf(".ebayrtm.com/clk?") &gt; -1 )	{		if ( tag.title == null || tag.title.length &lt; 0 )			return false;							outHref = searchshield.removeHtmlTags(tag.title);		if (outHref.indexOf(" ") == -1)		{	// no spaces			if (outHref.indexOf(".") &gt; -1)			{	// at least one dot 				if (outHref.indexOf(this.search.uri.host) == -1)				{	// no host					if (outHref.toLowerCase().indexOf("ebay.com") == -1)					{						return outHref;					}				}			}		}				}	// ebay.se - Google ads	parentNode = tag.parentNode;	if (parentNode &amp;&amp; (parentNode.className.toLowerCase() == "google-ad-link"))	{		if (tag.href.indexOf("/aclk?sa=") != -1)		{				findStr = "&amp;adurl=http";			var urlPos	= tag.href.indexOf(findStr);			if (urlPos != -1)			{				urlPos += 7; // puts it on the http				outHref = tag.href.substring(urlPos);								// extract any fragment text, shouldn't be unescaped				var pound = outHref.indexOf("#");					if (pound != -1)				{					var fragment = outHref.substring(pound);					outHref = outHref.substring(0, pound);					outHref = unescape(outHref);					outHref += fragment;					if (searchshield.FilterUrl(outHref, this.filter_urls))						return false;					return outHref;				}				outHref = unescape(outHref);				if (outHref.indexOf("?") == -1)				{					var ampPos = outHref.indexOf("&amp;");					if (ampPos != -1)						outHref = outHref.substring(0, ampPos);				}								if (searchshield.FilterUrl(outHref, this.filter_urls))					return false;				return outHref;			}		}	}		// auction.co.kr	parentNode = tag.parentNode;	if (parentNode &amp;&amp; (parentNode.className.toLowerCase() == "link"))	{		if (tag.href.indexOf("adcr.naver.com") &gt; -1)		{			outHref = tag.innerText;			if ((outHref == null) || (outHref.length &lt; 0))				return false;							return outHref;		}	}		// latin america ebay	if ( tag.href.toLowerCase().indexOf("clickcounter?") &gt; -1 )	{		var spanElements = tag.getElementsByTagName("span");		if ((spanElements != null)				&amp;&amp; 			(spanElements.length &gt; 0))		{			if ( spanElements[0].className.toLowerCase() == "mclics-url" )			{				outHref = spanElements[0].innerHTML;				if ( outHref == null || outHref.length &lt; 0 )					return false;				outHref = searchshield.removeHtmlTags(outHref);				if (outHref.indexOf(" ") == -1)				{	// no spaces					if (outHref.indexOf(".") &gt; -1)					{	// at least one dot 						if ((outHref.toLowerCase().indexOf("mercadolibre") == -1) &amp;&amp; 							(outHref.toLowerCase().indexOf("mercadolivre") == -1)) 						{							return outHref;						}					}				}			}		}	}		return false;};///////////////    EBAY SEARCH ENGINE    //////////////////////////////    DIGG SEARCH ENGINE    ///////////////searchshield.DiggSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.new_links	= false;};searchshield.DiggSearchEngine.prototype = new searchshield.SearchEngine();searchshield.DiggSearchEngine.prototype.constructor = searchshield.DiggSearchEngine;searchshield.DiggSearchEngine.prototype.name = "digg";searchshield.DiggSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	// re stitch the uri path and query elements	// to use existing logic	var path = uri.path + uri.delimiter + uri.query;		if ((domain.indexOf("digg.com") &gt; -1)	&amp;&amp;		(path.indexOf("/ad") == -1))	{		return true;	}		return false;};searchshield.DiggSearchEngine.prototype.includeLink = function(tag){	var outHref = false;	var findStr = "";		if ((tag.parentNode) &amp;&amp;		(tag.parentNode.className.toLowerCase() == "digg-count"))	{		return false;	}		if (searchshield.DoesURLContain(tag.href, this.search.uri.host))	{		if (tag.className &amp;&amp; tag.className.indexOf('source') != -1)		{			findStr = "/search?q=site:";			var urlPos = tag.href.indexOf(findStr);			if (urlPos != -1)			{				urlPos += 15;				outHref = tag.href.substring(urlPos);				return outHref;			}		}	}		return false;};searchshield.DiggSearchEngine.prototype.addImage = function(node, image, hidden){	// remove style that is set when alt image is applied	this.addAnchorStyle = {		background: "none"	};			var parent = searchshield.SearchEngine.prototype.addImage;	return parent.call(this, node, image, hidden);};///////////////    DIGG SEARCH ENGINE    //////////////////////////////    SLASHDOT SEARCH ENGINE    ///////////////searchshield.SlashdotSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.showCleanVerdicts = false;	this.new_links = false;	this.type = 'inline';};searchshield.SlashdotSearchEngine.prototype = new searchshield.SearchEngine();searchshield.SlashdotSearchEngine.prototype.constructor = searchshield.SlashdotSearchEngine;searchshield.SlashdotSearchEngine.prototype.name = "slashdot";searchshield.SlashdotSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	// re stitch the uri path and query elements	// to use existing logic	var path = uri.path + uri.delimiter + uri.query;		if (domain.indexOf("slashdot.org") != -1)	{		return true;	}		return false;};searchshield.SlashdotSearchEngine.prototype.includeLink = function(tag){	if (searchshield.DoesURLContain(tag.href, this.search.uri.host))		return false;			if ( tag.href.indexOf("mailto:") != -1 )		return false;			if ( tag.href.indexOf("slashdot.org") != -1 )		return false;			if (tag.parentNode &amp;&amp; (tag.parentNode.tagName == "DIV"))	{		if (tag.parentNode.id.indexOf("text-") != -1)		{			return tag.href;		}	}	else if ( tag.parentNode &amp;&amp; tag.parentNode.parentNode &amp;&amp; tag.parentNode.parentNode.tagName == "DIV" )	{		if ( tag.parentNode.parentNode.id.indexOf("text-") != -1 )		{			return tag.href;		}	}	return false;};searchshield.SlashdotSearchEngine.prototype.addImage = function(node, image, hidden){	var doc			= this.search.doc;		this.init_inline_ratings(doc);	this.show_inline_ratings(doc, node, image);};///////////////    SLASHDOT SEARCH ENGINE    //////////////////////////////    TWITTER SEARCH ENGINE    ///////////////searchshield.TwitterSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.showCleanVerdicts = false;	this.new_links = false;	this.type = 'inline';};searchshield.TwitterSearchEngine.prototype = new searchshield.SearchEngine();searchshield.TwitterSearchEngine.prototype.constructor = searchshield.TwitterSearchEngine;searchshield.TwitterSearchEngine.prototype.name = "twitter";searchshield.TwitterSearchEngine.prototype.twitter_filter_urls = ["twitpic.com", "twitterfeed.com", "twitter.peoplebrowsr.com"];searchshield.TwitterSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	if (domain.indexOf("twitter.com") != -1)	{		return true;	}		return false;};searchshield.TwitterSearchEngine.prototype.includeLink = function(tag){	if (searchshield.DoesURLContain(tag.href, this.search.uri.host))		return false;			if (tag.className.length &lt; 1)		return false;		// no verdicts on source of twit for example "from TweetDeck"	if ((tag.className.indexOf("tweet-url web") == 0) &amp;&amp;		(tag.className.indexOf("url") == 0 ))	{		return false;	}			if (searchshield.FilterUrl(tag.href, this.twitter_filter_urls))	{		return false;	}		return tag.href;};searchshield.TwitterSearchEngine.prototype.addImage = function(node, image, hidden){	var doc			= this.search.doc;			this.init_inline_ratings(doc);	this.show_inline_ratings(doc, node, image);};///////////////    TWITTER SEARCH ENGINE    //////////////////////////////    GMAIL SEARCH ENGINE    ///////////////searchshield.GMailSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.processFrames = true;	this.showCleanVerdicts		= false;	this.type = 'inline';};searchshield.GMailSearchEngine.prototype = new searchshield.SearchEngine();searchshield.GMailSearchEngine.prototype.constructor = searchshield.GMailSearchEngine;searchshield.GMailSearchEngine.prototype.name = "gmail";	// the name by which the search engine is known (always lowercase)searchshield.GMailSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var domain		= uri.host;		// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;	if ((domain.indexOf("mail.google.") != -1) || 		(domain.indexOf("gmail.") != -1))	{		return true;	}	return false;};searchshield.GMailSearchEngine.prototype.includeLink = function(tag){	if (searchshield.DoesURLContain(tag.href, this.search.uri.host))		return false;	// don't mark anything but http://	if (tag.href.indexOf("mailto") == 0)		return false;	var parentDiv = searchshield.getParentNodeByTagName("DIV", tag, "className");	if ((parentDiv) &amp;&amp;		((parentDiv.className == "ii gt") || // mail message body		 (parentDiv.className == "mv") ||	// top sponsored links		 (parentDiv.className == "vb") ||	// right sponsored links		 (parentDiv.className == "im") ||	// inside quotes		 (parentDiv.className == "gmail_quote") ||	// quote		 (parentDiv.className == "msg")	// basic html mode		 ))	// right ads	{		// parse for any ads		var newHref = this.parseAdUrl(tag.href);		return newHref;	}		return false;};searchshield.GMailSearchEngine.prototype.addImage = function(node, image, hidden){	var doc			= this.search.doc;			this.init_inline_ratings(doc);	this.show_inline_ratings(doc, node, image);};searchshield.GMailSearchEngine.prototype.parseAdUrl = function(href){	if (!href)		return href;	// check for google ad	var regex = "^http(s)?\:\/\/([a-zA-Z0-9]+)\.googlesyndication\.com.+\&amp;adurl\=(.+)";	var re = new RegExp(regex);	var matches = href.match(re);	if (matches &amp;&amp; (matches.length &gt;= 4))	{		// else we want the fourth value		var match = matches[3];		if (match &amp;&amp; (match.length &gt; 0))			return match	}	return href;};///////////////    GMAIL SEARCH ENGINE    //////////////////////////////    FACEBOOK SEARCH ENGINE    ///////////////searchshield.FacebookSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.showCleanVerdicts = false;	this.type = 'inline';};searchshield.FacebookSearchEngine.prototype = new searchshield.SearchEngine();searchshield.FacebookSearchEngine.prototype.constructor = searchshield.FacebookSearchEngine;searchshield.FacebookSearchEngine.prototype.name = "facebook";	// the name by which the search engine is known (always lowercase)searchshield.FacebookSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	if (uri.host.indexOf("www.facebook.com") != -1) 		return true;	return false;};searchshield.FacebookSearchEngine.prototype.includeLink = function(tag){	if (!tag.href || (tag.href.indexOf('facebook.com') &gt; -1) || (tag.href.indexOf('ak.fbcdn.net') &gt; -1))		return false;		return tag.href};searchshield.FacebookSearchEngine.prototype.addImage = function(node, image, hidden){	var doc			= this.search.doc;			this.init_inline_ratings(doc);	this.show_inline_ratings(doc, node, image);};///////////////    FACEBOOK SEARCH ENGINE    //////////////////////////////    MYSPACE SEARCH ENGINE    ///////////////searchshield.MySpaceSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.showCleanVerdicts = false;	this.type = 'inline';};searchshield.MySpaceSearchEngine.prototype = new searchshield.SearchEngine();searchshield.MySpaceSearchEngine.prototype.constructor = searchshield.MySpaceSearchEngine;searchshield.MySpaceSearchEngine.prototype.name = "myspace";	// the name by which the search engine is known (always lowercase)searchshield.MySpaceSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	if (uri.host.indexOf("www.myspace.com") != -1) 		return true;	return false;};searchshield.MySpaceSearchEngine.prototype.includeLink = function(tag){	if (searchshield.DoesURLContain(tag.href, this.search.uri.host) )	{		return false;	}		return tag.href};searchshield.MySpaceSearchEngine.prototype.addImage = function(node, image, hidden){	var doc			= this.search.doc;			this.init_inline_ratings(doc);	this.show_inline_ratings(doc, node, image);};///////////////    MYSPACE SEARCH ENGINE    //////////////////////////////    AVG TOOLBAR REPORTING    ///////////////var avgreport = {	BLOCK_SEVERITY: 3,	scanResult: function (doc, url, foundUrl, ip) {		// report scan end only if surf enabled		if ('1' != searchshield.avgCallFunc(doc, 'GetSurfEnabled'))			return;				// for now native is handling the interstitial			var results = searchshield.avgCallFunc(doc, 'MalsiteCheck', url);		if ( results == null )			return;				var parts = results.split('::');				// need at least severity		if (parts == null)			return;		if (!ip)			ip = "";					// use a block severity if foundUrl is given		var severity = !!foundUrl ? avgreport.BLOCK_SEVERITY : parseInt(parts[0], 10);		var category = "";		var threat	 = "";		// fill in the category and threat if something was found		if (severity &gt; 0)		{			category = parts[2];			threat	 = parts[4];		}//		else//			return;				var scan_result = searchshield.avgCallFunc(doc, 'ReportScanResult', url, url, threat, category, ip, severity);		var scan_end = avgreport.scanEnd(doc, url);				return (scan_result &amp;&amp; scan_end);	},	scanEnd: function (doc, url) {		return searchshield.avgCallFunc(doc, 'ReportScanEnd', url);	},	GetInterstitialIP: function (interstitial) {		// simple regex to pull the IP address		var regex = /(([1-9][0-9]{0,2})|0)\.(([1-9][0-9]{0,2})|0)\.(([1-9][0-9]{0,2})|0)\.(([1-9][0-9]{0,2})|0)/;		var match = regex.exec(interstitial);		if (!match)			return '';		return match[0];	}}///////////////    AVG TOOLBAR REPORTING    //////////////////////////////    FLYOVERS    ///////////////var avglsflyover = {	count: 0,	poppedUp: false,	poppedElement: null,	reset: function () {		avglsflyover.count = 0;		avglsflyover.poppedUp = false;		avglsflyover.poppedElement = null;	},	popup: function (event, hash, search, flyover) {		if (!event)			event = window.event;		var div = document.getElementById("XPLSS_Flyover");		if (div == null)			return;		// establish target element and get its containing document object		// in case verdict is inside a frame		var eventTarget = event.srcElement;		var frameDoc = eventTarget.ownerDocument;		// if the element is the clock, don't pop over it		if ((eventTarget.src != null) &amp;&amp; (eventTarget.src.indexOf("clock.gif") != -1))			return;				// save the element we popped over		avglsflyover.poppedElement = eventTarget;		// if no flyover get it		if ((flyover == null) || (flyover == ""))		{			flyover = searchshield.avgCallFunc(frameDoc, 'BuildFlyover', hash);			if (!flyover)				return;			// cleanup flyover, replace any new lines			flyover = flyover.replace(/\r/g, "");			flyover = flyover.replace(/\n/g, "");			// escape any single quotes			flyover = flyover.replace(/'/g, "&amp;#39;");		}		// set the html in the layer		div.innerHTML = flyover;		// there is an unwanted text node that causes vertical misalignment of flyover		if (div.firstChild.nodeType == 3)			div.removeChild(div.firstChild);				avglsflyover.poppedUp = true;		// reset display count		avglsflyover.count = 0;		avglsflyover.position();	},	hide: function (event) {		var frameDoc = document || top.document;		var div = frameDoc.getElementById("XPLSS_Flyover");		if ((div == null) || (div.style == null) || (div.style.visibility == "hidden"))			return;		var trans_div = frameDoc.getElementById("XPLSS_Trans");		if ((trans_div == null) || (trans_div.style == null) || (trans_div.style.visibility == "hidden"))			return;		// scroll and keydown events will pass a null event by design		// toElement will be null when mousing out of frameelement containing a verdict		if (event == null || event.toElement == null)		{			return;		}		if (trans_div.contains(event.toElement) || div.contains(event.toElement))			return;		// if the toElement is a cooresponding alt image then don't hide		// use try/catch because toElement will be null when mousing out of frame		try {			if (!!event.toElement.id &amp;&amp; !!event.srcElement.id)			{				if (event.toElement.id.indexOf(event.srcElement.id.substring(0,event.srcElement.id.length-2)) == 0)					return;						if (event.srcElement.id == 'XPLSS_Trans' &amp;&amp; /XPLSS_\d+VU\d/.test(event.toElement.id))					return;			}		}		catch(err){}		// hide and move somewhere off screen (negative offsets)		div.style.visibility = "hidden";		div.style.left = "-2100px";		div.style.top  = "-2100px";		trans_div.style.visibility = "hidden";		trans_div.style.left = "-2100px";		trans_div.style.top  = "-2100px";		return true;	},	position: function () {		if (!avglsflyover.poppedUp || (avglsflyover.poppedElement == null))			return;		var flyover = document.getElementById("XPLSS_Flyover");		if (flyover == null)			return;		// relative position of flyover in relation to icon		var locateX = 0;  // 0=left, 1=right		var locateY = 0;  // 0=above, 1=below, 2=beside icon			// get window sizes		var winSize		= searchshield.viewPortSize();		var windowX		= winSize[0];		var windowY		= winSize[1];		// get the exact size of the flyover		var flyoverSize	 = searchshield.elementSize(flyover);		var flyoverX	 = flyoverSize[0];		var flyoverY	 = flyoverSize[1];		var verdictWidth = 0;		if (avglsflyover.poppedElement &amp;&amp; avglsflyover.poppedElement.width)			verdictWidth = avglsflyover.poppedElement.width;				// get the bounding rect for image(s)		var imgRect = searchshield.GetFullBoundingRect(avglsflyover.poppedElement);		// half width/height of element bounding rect		var halfX = (imgRect.right - imgRect.left) / 2;		var halfY = (imgRect.bottom- imgRect.top) / 2;		// element the mouse is over, get the center position		var posX = searchshield.offsetLeft(avglsflyover.poppedElement) + halfX;		var posY = searchshield.offsetTop(avglsflyover.poppedElement) + halfY;		// if a verdict is inside a frame must get offsets for the frame element		var docFrames = document.frames;		if (docFrames)		{			for (var i=0; i &lt; docFrames.length; i++)			{				try {					var frameElem = docFrames[i].frameElement;					if (frameElem.contentWindow.document.getElementById(avglsflyover.poppedElement.id))					{						posX += searchshield.offsetLeft(frameElem);						posY += searchshield.offsetTop(frameElem);						break;					}				}				catch(frmErr){}			}		}		var transXOffset = 0;		if (imgRect.mid == undefined)			transXOffset = -1 * halfX;		else			transXOffset = ((imgRect.right + imgRect.left) / 2) - imgRect.mid;				// normalize pos to 0  -- get amount of scrolling in browser window		var scroll		 = searchshield.scrollSize();		var pageOffsetX	 = scroll[0];		var pageOffsetY	 = scroll[1];		posX -= pageOffsetX;		posY -= pageOffsetY;		// setup the offsets		var offsetX = posX;		var offsetY = posY;		// calc where to display on page		if ((windowX - posX) &gt; posX)		{			// right			offsetX += halfX;			locateX = 1;		}		else		{			//left			offsetX -= (flyoverX + halfX);		}		if ((windowY - posY) &gt; posY)		{			// below			if (posY &lt; (windowY/4))			{				offsetY -= halfY;				locateY = 1;			}			else			{				offsetY -= (flyoverY / 2);				locateY = 2;			}		}		else		{			// above			if ((windowY - posY) &lt; (windowY/4))			{				offsetY -= (flyoverY - halfY);			}			else			{				offsetY -= (flyoverY / 2);				locateY = 2;			}		}		// make sure we aren't off the screen		if (offsetY &lt; 0)			offsetY = 0;		if ((offsetY + flyoverY) &gt; windowY)			offsetY = windowY - flyoverY;		// add page offsets back		offsetX += pageOffsetX;		offsetY += pageOffsetY;		posX += pageOffsetX;		posY += pageOffsetY;		var paddedOffsetX = 0; //provide space between icon and flyover		var padX = 3;		if (locateX == 0)			paddedOffsetX = offsetX - padX;		else			paddedOffsetX = offsetX + padX;		// set where to put the flyover		flyover.style.top = offsetY + "px";		flyover.style.left = paddedOffsetX + "px";		// set where to put the transparent layer		var trans = document.getElementById("XPLSS_Trans");		if (trans != null)		{			var trans_left = 0;			var trans_top  = 0;			var trans_width= 0;			var trans_height = 0;			// transparent layer should overlap verdict image			if (locateX == 0)				trans_left = posX - flyoverX - halfX;  // left 			else				trans_left = posX - transXOffset - verdictWidth; // right			trans.style.left	= trans_left + "px";			trans.style.top		= offsetY + "px";			trans.style.width	= flyoverX + verdictWidth + "px";			trans.style.height	= flyoverY + "px";		}		avglsflyover.display();	},	display: function () {		avglsflyover.count++;		if (avglsflyover.count == 1)		{			var flyover = document.getElementById("XPLSS_Flyover");			if (flyover == null)				return;			// show the flyover, must use a little count to tell, crazy stuff			flyover.style.visibility = "visible";			flyover.onmouseout = function(){				avglsflyover.hide(event);			};			// show the transparent layer			var trans_div = document.getElementById("XPLSS_Trans");			if (trans_div == null)				return;			trans_div.style.visibility = "visible";			trans_div.onmouseout = function(){				avglsflyover.hide(event);			};			avglsflyover.poppedUp = false;		}	},	show: function () {		var div = document.getElementById("XPLSS_Flyover");		if (div == null)			return;		div.style.visibility = "visible";		var trans_div = document.getElementById("XPLSS_Trans");		if (trans_div == null)			return;		trans_div.style.visible = "visible";	}};var avglsinlineflyover = {	build: function (riskCategory, riskName, bgColor, borderColor) {		var html = '';		html += '&lt;div class="avgILFO_head"&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="avgILFO_content"&gt;';		html += '&lt;img src=linkscanner://LS_Logo_Results.gif /&gt;';		html += riskCategory + '';		html += riskName + '';		html += '&lt;/div&gt;&lt;div class="avgILFO_foot"&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;';		return html;	},	popup: function (event, flyover, nSeverity, blUrl) {		//set verdict info		var div = document.getElementById('XPLSS_InlineFlyover');		if (div == null)			return;				// blUrl is an object for a blacklisted short url		// when it is passed get the final url 		if (blUrl != undefined)		{			var finalUrl = searchshield.avgCallFunc(document, 'GetFinalUrl', blUrl.sUrl);			var riskUrl = blUrl.sUrl;			if ((finalUrl) &amp;&amp; (searchshield.FilterUrl(finalUrl, xplSearch.engine.shortened_urls)))				finalUrl = avglsinlineflyover.getUrlFromQueryString(finalUrl);			var riskName = blUrl.riskNameLabel + finalUrl;			flyover = avglsinlineflyover.build(blUrl.riskCategory, riskName, blUrl.bgColor, blUrl.borderColor);		}		div.innerHTML = flyover;		div.style.width = "auto";  //reset width		div.style.position = "absolute";		if (searchshield.quirksMode || searchshield.docMode &lt;= 7)		{			var className = xplSearch.engine.inline.color.classname[nSeverity];			var imgBase = "linkscanner://" + className + "_inline_border_";			var divWidth = searchshield.elementSize(div)[0];			//round up to nearest 10 to avoid intentional wrapping in div			var flyoverWidth = divWidth + (10 - Math.ceil(10*((divWidth/10) - Math.floor(divWidth/10))));			var ilfoDivs = div.getElementsByTagName("div");			if (ilfoDivs &amp;&amp; ilfoDivs.length == 5)			{				//div.style.fontSize = "10px";				div.style.backgroundImage = "url(" + imgBase + "tl.png)";				div.style.backgroundPosition = "0 0";				div.style.backgroundRepeat = "no-repeat";				div.style.width = flyoverWidth + "px";				div.style.zIndex = "9999";							// avgILFO_head				ilfoDivs[0].style.backgroundImage = "url(" + imgBase + "tr.png)";				ilfoDivs[0].style.backgroundPosition = "top right";				ilfoDivs[0].style.backgroundRepeat = "no-repeat";				ilfoDivs[0].style.width = flyoverWidth + "px";				ilfoDivs[0].style.height = "5px";				// avgILFO_head div				ilfoDivs[1].style.height = "5px";							// avgILFO_content				ilfoDivs[2].style.backgroundImage = "url(" + imgBase + "r.png)";				ilfoDivs[2].style.backgroundPosition = "top right";				ilfoDivs[2].style.backgroundRepeat = "repeat-y";				ilfoDivs[2].style.fontSize = "10px";				ilfoDivs[2].style.color = "black";				ilfoDivs[2].style.padding = "0px 10px";				ilfoDivs[2].style.textAlign = "left";				ilfoDivs[2].style.wordWrap = "break-word";				ilfoDivs[2].style.lineHeight = "130%";				// avgILFO_foot				ilfoDivs[3].style.backgroundImage = "url(" + imgBase + "bl.png)";				ilfoDivs[3].style.backgroundPosition = "bottom left";				ilfoDivs[3].style.backgroundRepeat = "no-repeat";				ilfoDivs[3].style.height = "5px";							// avgILFO_foot div				ilfoDivs[4].style.backgroundImage = "url(" + imgBase + "br.png)";				ilfoDivs[4].style.backgroundPosition = "bottom right";				ilfoDivs[4].style.backgroundRepeat = "no-repeat";				ilfoDivs[4].style.width = flyoverWidth + "px";				ilfoDivs[4].style.height = "5px";			}			else			{				div.style.fontSize = "10px";				div.style.backgroundColor = xplSearch.engine.inline.color.background[nSeverity];				div.style.border = xplSearch.engine.inline.color.border[nSeverity] + " solid 3px";				div.style.padding = "3px 8px";			}		}		else		{			// apply updated styles for new flyover content			var sheets = document.styleSheets;			for (var i=0; i &lt; sheets.length; i++)			{				if (sheets[i].id &amp;&amp; sheets[i].id == "avgILFOStyle")				{					var avgILFOStyle = sheets[i];					break;				}			}			if (typeof(avgILFOStyle) !== "undefined")			{				var className = xplSearch.engine.inline.color.classname[nSeverity];				var divWidth = searchshield.elementSize(div)[0];				//round up to nearest 10 to avoid intentional wrapping in div				var flyoverWidth = divWidth + (10 - Math.ceil(10*((divWidth/10) - Math.floor(divWidth/10))));				var rules = avgILFOStyle.rules;				for (var i=0; i &lt; rules.length; i++)				{					var bgImg = rules[i].style.backgroundImage;					var selText = rules[i].selectorText.toLowerCase();					if (bgImg)					{						var bgImgStyle = bgImg.replace(/default/, className);						rules[i].style.backgroundImage = bgImgStyle;					}					if (((selText == ".avgilfo") ||						(selText == ".avgilfo_head") ||						(selText == ".avgilfo_foot div")) &amp;&amp;						(rules[i].style.width) &amp;&amp; (rules[i].style.width == "0px"))					{						rules[i].style.width = (flyoverWidth) + "px";					}				}			}		}		if (!event)			event = window.event;					var eventTarget = event.srcElement;		avglsinlineflyover.position(eventTarget);	},	hide: function (event) {		if (!event)			event = window.event;					var div = document.getElementById("XPLSS_InlineFlyover");		if (div == null)			return;					div.style.visibility = "hidden";	//invisible		div.style.left = "-5000px";		if (!searchshield.quirksMode)		{			// reset flyover styles			var sheets = document.styleSheets;			for (var i=0; i &lt; sheets.length; i++)			{				if (sheets[i].id &amp;&amp; sheets[i].id == "avgILFOStyle")				{					var avgILFOStyle = sheets[i];					break;				}			}			if (typeof(avgILFOStyle) !== "undefined")			{				var rules = avgILFOStyle.rules;				for (var i=0; i &lt; rules.length; i++)				{					var bgImg = rules[i].style.backgroundImage;					var selText = rules[i].selectorText.toLowerCase();					if (bgImg)					{ 						var bgImgStyle = bgImg.replace(/:\/\/([a-z]+)_/i, '://default_');						rules[i].style.backgroundImage = bgImgStyle;					}					if (((selText == ".avgilfo") ||						(selText == ".avgilfo_head") ||						(selText == ".avgilfo_foot div")) &amp;&amp;						(rules[i].style.width))					{						rules[i].style.width = "0px";					}				}			}		}	},	position: function (imageElem) {		var flyover = document.getElementById('XPLSS_InlineFlyover');		if (flyover == null)			return;					// relative position of flyover in relation to icon		var locateX = 0;  // 0=left, 1=right		var locateY = 0;  // 0=above, 1=below, 2=beside icon								// get window sizes		var winSize	 = searchshield.viewPortSize();		var windowX	 = winSize[0];		var windowY	 = winSize[1];		// Must know if there is a horizontal scroll bar for Firefox		// for proper flyover positioning near bottom edge		var scrollYWidth	 = winSize[2];		var scrollBarX	 = winSize[2] &gt; 0 ? true : false;		// get the exact size of the flyover		var flyoverSize	 = searchshield.elementSize(flyover);		var flyoverX	 = flyoverSize[0];		var flyoverY	 = flyoverSize[1];				flyover.style.width = flyoverX + "px";				// get the bounding rect for image(s)		var imgRect = imageElem.getBoundingClientRect();		// half width/height (center) of element bounding rect		var halfX = (imgRect.right - imgRect.left) / 2;		var halfY = (imgRect.bottom- imgRect.top) / 2;		// element the mouse is over, get the center position		var posX = searchshield.offsetLeft(imageElem) + halfX;		var posY = searchshield.offsetTop(imageElem) + halfY;				var pageOffsetX = 0;		var pageOffsetY = 0;		var hasParentFrame = false;		// normalize pos to 0  -- get amount of scrolling in browser window		var scroll		= searchshield.scrollSize(imageElem);		pageOffsetX		= scroll[0];		pageOffsetY		= scroll[1];		hasParentFrame	= scroll[2];				posX -= pageOffsetX;		posY -= pageOffsetY;		//compensate for Firefox 3		if (posX &lt; imgRect.left)			posX = imgRect.left+halfX;		// setup the offsets		var offsetX = posX;		var offsetY = posY;		// calc where to display on page		if ((windowX - posX) &gt; posX)		{			// right			//offsetX += halfX;			offsetX = imgRect.right + 3;			locateX = 1;		}		else		{			//left			//offsetX -= (flyoverX + halfX);			offsetX = imgRect.left - flyoverX - 3;		}		if ((windowY - posY) &gt; posY)		{			// below			if (posY &lt; (windowY/4))			{				offsetY -= halfY;				locateY = 1;			}			else			{				offsetY -= (flyoverY / 2) - halfY;				locateY = 2;			}		}		else		{			// above			if ((windowY - posY) &lt; (windowY/4))			{				offsetY -= (flyoverY - halfY);			}			else			{				offsetY -= (flyoverY / 2) + halfY;				locateY = 2;			}		}		// make sure we aren't off the screen		if (offsetY &lt; 0)			offsetY = 0;		if ((offsetY + flyoverY) &gt; windowY)		{			offsetY = windowY - flyoverY;		}		else if (scrollBarX &amp;&amp; ((windowY - (posY + halfY)) &lt; scrollYWidth))		{	//verdict overlaps the horizontal scrollbar			offsetY = windowY - (flyoverY + scrollYWidth);		}		// add page offsets back - if not in frame		if (!hasParentFrame)		{			offsetX += pageOffsetX;			offsetY += pageOffsetY;		}		//posX += pageOffsetX;		//posY += pageOffsetY;		//var paddedOffsetX = 0; //provide space between icon and flyover		//var padX = 3;		//if (locateX == 0)		//	paddedOffsetX = offsetX - padX;		//else		//	paddedOffsetX = offsetX + padX;		// set where to put the flyover		flyover.style.top = offsetY + "px";		flyover.style.left = offsetX + "px";		avglsinlineflyover.display();	},	display: function () {		var div = document.getElementById('XPLSS_InlineFlyover');		if (div == null)			return;				// show the flyover		div.style.visibility = "visible";	},	imageExists: function(element) {		if (element)		{			// check next siblings children			var sibling = element.nextSibling;						if ((sibling == null) || (sibling.getElementsByTagName == null))				return false;						var images = sibling.getElementsByTagName("IMG");			if (images == null)				return false;			for (var i = 0; i &lt; images.length; i++)			{				if (images[i].id == "avg_ls_image")					return true;			}		}		return false;	},	getImage: function (anchor) {		if (anchor)		{			var imageElem = null;			var images = anchor.getElementsByTagName("img");			if (images == null)				return imageElem;			for (var i = 0; i &lt; images.length; i++)			{				if (images[i].id == "avg_ls_image")				{					imageElem = images[i];					break;  				}							}			return imageElem;		}  	},	getUrlFromQueryString: function (inUrl) {		var url = inUrl;		var uri = searchshield.parseLink(unescape(inUrl));		if (uri.source != null)		{	// regexp failed so used split to parse url			var qsUrl = uri.source.indexOf("?url=");			if (qsUrl != -1)				url = uri.source.substring(qsUrl + 5);			else				url = uri.source;		}		else if ((uri.qsArray.url != null) &amp;&amp; (uri.qsArray.url.length &gt; 0))		{			url = uri.qsArray.url;		}		return url;	},	mouseOverHandler: function (e, doc, engine) {		if (e &amp;&amp; e.srcElement &amp;&amp; e.srcElement.href)		{			// need to keep a reference to the function registered 			// by the listener to be able to remove it.			var handlerFunc = arguments.callee;			var element = e.srcElement;			var href = e.srcElement.href;			// need an engine						if (!engine)				return;			// check if it has an image already			if (avglsinlineflyover.imageExists(element))				return;			// add the image, returns the anchor not the image			var new_element = engine.add_inline_image(doc, element, null, null);			// do the check and update in the background			setTimeout(function() {avglsinlineflyover.checkAndUpdate(doc, element, new_element, engine, handlerFunc)}, 1);		}	},	checkAndUpdate: function (doc, element, new_element, engine, handlerFunc) {		if (!engine)			return;		try {			// remove the listener and get final url			element.detachEvent("onmouseover", handlerFunc, false);			var finalUrl = searchshield.avgCallFunc(doc, 'GetFinalUrl', element.href);		}		catch(e) {}		if ((typeof(finalUrl) != 'undefined') &amp;&amp; finalUrl)		{			// if still a tiny url check for final url embedded in querystring			if (searchshield.FilterUrl(finalUrl, engine.shortened_urls) &amp;&amp; 				(finalUrl.indexOf("?url=") != -1))			{				finalUrl = avglsinlineflyover.getUrlFromQueryString(finalUrl);			}			// update the verdict			engine.display_inline(doc, new_element, finalUrl, null, true);		}		else		{			engine.avg_ls_inline_hide_verdict(new_element);		}	}};///////////////    FLYOVERS    ///////////////(function(){	setTimeout( function() {		try {			if ((self == top) &amp;&amp; top.document) {				searchshield.init(top.document, 1);			}		}		catch(e){return;}	}, 1 );	return;})();&lt;/script&gt; &amp;nbsp;&lt;/div&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/cath2.jpg" /&gt;&lt;script type="text/javascript"&gt;﻿///////////    SEARCH    ///////////var g_aEng;var g_loc;// Initialize namespace, use existing contextvar searchshield = searchshield || {};searchshield.clockUrl;// constantssearchshield.SCORE_SS_SAFE		= 1;searchshield.SCORE_SS_CAUTION	= 2;searchshield.SCORE_SS_WARNING	= 3;searchshield.SCORE_SS_BLOCK		= 4;searchshield.SCORE_SS_VERISIGN	= 7;searchshield.BLOCK_NONE		= 0;searchshield.BLOCK_NORMAL	= 1;searchshield.BLOCK_PHISH	= 2;searchshield.BLOCK_YAHOO	= 3;searchshield.XPLCHECK_RESULT_SEV_NONE	= 0;searchshield.XPLCHECK_RESULT_SEV_LOW	= 1;searchshield.XPLCHECK_RESULT_SEV_MED	= 2;searchshield.XPLCHECK_RESULT_SEV_BLOCK	= 3;searchshield.VERISIGN_SPLIT_NOTEST		= 0;searchshield.VERISIGN_SPLIT_TESTA		= 1;searchshield.VERISIGN_SPLIT_TESTB		= 2;searchshield.needLivePhishCheck = false;searchshield.allowedSites = [];searchshield.enabled = function (doc){	var result = searchshield.avgCallFunc(doc, 'GetSearchEnabled');	return (result == '1' ? 1 : 0);};searchshield.init = function (doc){	if ((doc == null) || (doc.location == null) || (doc.location.href.search(/about:/) != -1))		return;	if (!searchshield.enabled(doc))		return;	if (!g_aEng)		g_aEng = searchshield.Search.prototype.detectEngine(doc.location.href);	if (!g_aEng)		return;	// init search object (not declared or is null)	if (typeof xplSearch === 'undefined')	{		// global		xplSearch = new searchshield.Search();		// reset the links added flag		xplSearch.new_links = false;		xplSearch.doc = doc;		xplSearch.href	= xplSearch.doc.location.href;		xplSearch.uri	= searchshield.parseLink(xplSearch.href);				xplSearch.engine	= new searchshield[g_aEng+'SearchEngine'](xplSearch)		xplSearch.addEngine(xplSearch.engine);		searchshield.launch(doc);	}	if (doc.location.href != g_loc)	{		g_loc = doc.location.href;		if ((typeof xplSearch !== 'undefined') &amp;&amp; (xplSearch != null))			searchshield.launch(doc);	}};searchshield.launch = function (doc){	// IE specific check	searchshield.quirksMode = (self.top.document.compatMode == 'BackCompat');	searchshield.docMode = parseInt(navigator.userAgent.split('MSIE')[1]);			if ((self === top) &amp;&amp; (self.document === doc))	{		if (!xplSearch.engine)			return;		// set verdict display config		xplSearch.engine.setRatingsConfig(doc);		// init the alert popup		searchshield.initPopupAlert(doc);		if (xplSearch.engine.type != 'inline')		{			// save function reference for memory clean up later			var fn = function(event){avglsflyover.hide(null)};			//hide flyover if these events occur			window.detachEvent('onscroll', fn);			window.attachEvent('onscroll', fn);			doc.detachEvent('onkeydown', fn);			doc.attachEvent('onkeydown', fn);		}				// only start monitor on top doc		searchshield.avgPageMonitor.start(doc);	}	return;};// search monitors and processors - doc is always top most documentsearchshield.avgPageMonitor = {	previousUrl: null,	start: function(doc){		searchshield.avgPageMonitor.stop();		searchshield.avgPageMonitor.process(doc);		searchshield.avgPageMonitor.timeoutID = window.setTimeout(function(){searchshield.avgPageMonitor.start(doc)}, 1000);	},	process: function(doc){		var currentUrl = doc.location.href;		var refresh = 0;		if (this.previousUrl != currentUrl) {			this.previousUrl = currentUrl;			avgreport.scanResult(doc, currentUrl);			refresh = (xplSearch.engine.name == 'google') ? 1 : 0;		}		searchshield.avgProcessSearch(doc, refresh);	},	stop: function(){		if (searchshield.avgPageMonitor.timeoutID)		{			window.clearTimeout(searchshield.avgPageMonitor.timeoutID);			delete searchshield.avgPageMonitor.timeoutID;		}	}};searchshield.avgProcessSearch = function (doc, refresh){	// doc may be about:Tabs or about:Blank	if (!doc)		return;			if (!searchshield.enabled(doc))		return;	if (!searchshield.clockUrl)		searchshield.clockUrl = searchshield.avgCallFunc(doc, 'GetIconUrl', '0');			xplSearch.clockUrl = searchshield.clockUrl	if (!xplSearch.engine)		return;	// get result links	xplSearch.links = [];	var links = searchshield.avgGetSearchLinks(doc, xplSearch.engine, refresh);	searchshield.needLivePhishCheck = false;	for (var i=0; i &lt; links.length; i++)	{		var isPhishing = searchshield.avglsCheckandUpdate(links[i]);		if (isPhishing)			searchshield.needLivePhishCheck = true;	}		if (searchshield.needLivePhishCheck)	{		var prev = '1';		if ( xplSearch.engine.type == 'inline' )			prev = '0';		searchshield.avgCallFunc(doc, 'GetPhishingResults', prev);		searchshield.needLivePhishCheck = false;	}	else if (links.length &gt; 0 &amp;&amp; xplSearch.engine.type != 'inline')	{		searchshield.avgCallFunc(doc, 'FinalScanComplete');	}		// attach click handlers for popup alerts	doc.body.detachEvent("onclick", searchshield.blockClick);	doc.body.attachEvent("onclick", searchshield.blockClick);		doc.body.detachEvent("ondblclick", searchshield.blockClick);	doc.body.attachEvent("ondblclick", searchshield.blockClick);};searchshield.avgGetSearchLinks = function (doc, engine, refresh){	if (!doc.body)		return;	var alltags = doc.body.getElementsByTagName('a');	for (var i = 0; i &lt; alltags.length; i++)	{		if ( !refresh )		{	// no checked test if refreshing - google			if (alltags[i].getAttribute('avglschecked'))				continue;		}				// ignore linked resources		if (alltags[i].tagName == 'LINK')			continue;		// ignore in-page bookmarks and javascript		if ((!alltags[i].href)	||			(alltags[i].href.charAt(0) == '#') ||	// in-page bookmark			(alltags[i].href.indexOf("javascript") == 0))			continue;					// ignore verdicts		if (/XPLSS_/.test(alltags[i].id))			continue;		// ignore flyover anchors		if (/linkscanner|avgthreatlabs|avg\.com/.test(alltags[i].href))			continue;					var href = engine.includeLink(alltags[i]);		if (!href)			continue;				var newNode = engine.search.addLink(alltags[i], href);		engine.addImage(newNode, engine.search.clockUrl, false);	}		// recursivesly process all frames	var docFrames = doc.frames;	if (docFrames &amp;&amp; engine.processFrames)	{		for (var j = 0; j &lt; docFrames.length; j++)		{			var attr;			var frameDoc;			try {				attr = docFrames[j].frameElement.className;				frameDoc = docFrames[j].document;			}			catch(err){}			//TODO: make frame processing an engine function or at least make exclusions an engine property			// 'editable' frame it's probably a gmail reply			if (attr &amp;&amp; (attr.indexOf("editable") != -1))				continue;			if (frameDoc)				searchshield.avgGetSearchLinks(frameDoc, engine, 0);		}	}		return engine.search.links;};searchshield.avglsCheckandUpdate = function (linkNode){	if (!xplSearch)		return;	// element is the search result anchor	var element = linkNode.element;	var href = linkNode.href;	var result = searchshield.avgCallFunc(xplSearch.doc, 'CheckSite', href, element.href);	if (result == null)		return;		var resultParse = result.split('::');	var phishing  = resultParse[0];  // if phishing then rest of array does not exist.	if (phishing == 1)		return true;	if (resultParse.length &lt; 8)		return;		var hash	  = resultParse[1];	var score	  = resultParse[2];	var new_image = resultParse[3];	var alt_image = resultParse[4];	var flyover	  = resultParse[5];	var click_thru= resultParse[6];	var altClick_thru = resultParse[7];	// iterate to get verdict anchor	nextElem = element.nextSibling;	while (nextElem)	{		if (nextElem.nodeType == 1 &amp;&amp; nextElem.id &amp;&amp; (nextElem.id.indexOf("XPLSS_") != -1))			break;		nextElem = nextElem.nextSibling;	}		return xplSearch.engine.updateImage(hash, xplSearch.searchHash, score, new_image, alt_image, flyover, click_thru, altClick_thru);};// click event handler - shows popup for links of caution and warning severitysearchshield.blockClick = function(event){	if (!event)		event = window.event;			// no action needed if click is not the left mouse button	if (event.button != 0)		return;			var anchor = searchshield.getAnchorNode(event.srcElement, 								function(node) {return ((node.tagName.charAt(0) == "H") ||														(node.tagName.charAt(0) == "D") ||														(node.tagName.charAt(0) == "T"))}	);		if ((anchor == null) || (anchor.href == null))		return true;		// ignore if anchor is on an xpl verdict	if (!!anchor.id)	{		if (anchor.id.indexOf('LXPLSS_') == 0)			return true;				if (anchor.id.indexOf('XPLSS_INTR') == 0)		{			searchshield.allowedSites.push(searchshield.GetDomain(anchor.href));			return true;		}	}		// VeriSign A/B Split reporting - only for VerSign domains	var avglschecked = anchor.getAttribute("avglschecked");	if (avglschecked &amp;&amp; avglschecked != 1)	{		var sPos = avglschecked.indexOf("S");		var hash = (sPos &gt; -1) ? avglschecked.substring(0, sPos) : null;		var split = (sPos &gt; -1) ? avglschecked.substring(sPos+1) : null;		if (hash &amp;&amp; split &amp;&amp; split != searchshield.VERISIGN_SPLIT_NOTEST)		{			// check updated verdict anchor for verisign domain			var d = event.srcElement.ownerDocument;			if (d.getElementById("LXPLSS_" + hash + "U" + searchshield.SCORE_SS_VERISIGN))			{				searchshield.avgCallFunc(d, "RecordVSClick", hash, d.location.href);			}		}	}	var link = anchor.href;	var verdict = searchshield.getAvgImage(anchor);	var score = -1;	var img_id = '';	if (verdict != null)	{		score = verdict.score;		img_id = verdict.rawId;	}		// show popup alert (upper left)	if ((score &gt;= searchshield.SCORE_SS_CAUTION) &amp;&amp; (score &lt;= searchshield.SCORE_SS_WARNING))	{		// prevent this click from going any further		var search_hash = searchshield.avgCallFunc(document, 'GetHash', document.location.href);		searchshield.ShowPopupAlert(document, link, img_id, search_hash);		// if possible, stop the event from going any further		searchshield.cancelEvent(event);		return false;	}		return true;};// called by native to update phishing linkssearchshield.updatePhishingLinks = function (results){	if (!results)		return;	if (!xplSearch)		return;	var engine = xplSearch.engine;	var resultParse = results.split("::");	var resultsLength = resultParse[0];	for (var i=0; i &lt; resultsLength; i++)	{		var idx = i*7;		var hash	  = resultParse[idx+1];		var score	  = resultParse[idx+2];		var new_image = resultParse[idx+3];		var alt_image = resultParse[idx+4];		var flyover	  = resultParse[idx+5];		var click_thru= resultParse[idx+6];		var altClick_thru = resultParse[idx+7];		engine.updateImage(hash, xplSearch.searchHash, score, new_image, alt_image, flyover, click_thru, altClick_thru);	}};searchshield.getAvgImage = function (element){	var obj = {};	obj.img = xplSearch.engine.getImgElement(element);	obj.score = -1;		//parse the score from the id	if (obj.img != null &amp;&amp; obj.img.id)	{		var pos = !!obj.img.id ? obj.img.id.indexOf('U') + 1 : -1;		obj.score = (pos &lt; 1) ? -1 : obj.img.id.charAt(pos);		obj.rawId = obj.img.id.substring(0,pos-1);	}		return obj;};searchshield.GetScannedLink = function (link){	if (!xplSearch || !(xplSearch.links instanceof Array))		return link;	// look for the link we scanned based on original element	for (var i = 0; i &lt; xplSearch.links.length; i++)	{		if (xplSearch.links[i].element.href == link)			return xplSearch.links[i].href;	}	// else return the incoming link	return link;};searchshield.previouslyScanned = function (links, hash){	for (var i = 0; i &lt; links.length; i++)	{		if ((links[i] != null) &amp;&amp; (links[i].hash != null) &amp;&amp; 			(links[i].hash == hash) &amp;&amp; (links[i].checked == true))			return true;	}	return false;};searchshield.initPopupAlert = function (doc){	// check if it exists first	if (doc.getElementById("XPLSS_PopupAlert"))		return;	// create a div to use for the popup itself, hide for now	var popup_div = doc.createElement("DIV");	popup_div.setAttribute("id", "XPLSS_PopupAlert");	popup_div.style.position = "absolute";	popup_div.style.zIndex = "10000";	doc.body.appendChild(popup_div);};searchshield.initFlyover = function (doc, engine){	// create in top doc only	if (doc !== window.top.document)		doc = window.top.document;	// check if it exists first	if ((doc == null) || (doc.getElementById("XPLSS_Flyover")))		return;	// create a div to use for the flyover itself, hide for now	var flyover_div = doc.createElement("DIV");	flyover_div.setAttribute("id", "XPLSS_Flyover");	flyover_div.style.position = "absolute";	flyover_div.style.zIndex = "10000";	doc.body.appendChild(flyover_div);	// create a layer for the image	var trans_div = doc.createElement("DIV");	trans_div.setAttribute("id", "XPLSS_Trans");	trans_div.style.position = "absolute";	trans_div.style.zIndex = "9999";	doc.body.appendChild(trans_div);};searchshield.ShowPopupAlert = function (doc, link, hash, search){	// build the content	var popup_content = searchshield.avgCallFunc(doc, 'BuildPopupAlert', hash, search);	if (popup_content == null || popup_content == "")		return;	// get the div	var div = doc.getElementById("XPLSS_PopupAlert");	div.innerHTML = searchshield.CleanupHTML(popup_content);	// set position, account for scrolling	var zoom = searchshield.zoomLevel();	var pageOffsetX = Math.round(doc.documentElement.scrollLeft/zoom);	var pageOffsetY = Math.round(doc.documentElement.scrollTop/zoom);		div.style.left = 10 + pageOffsetX + "px";	div.style.top = 10 + pageOffsetY + "px";		// TODO: the event handler function doesn't exist so, is this even necessary?	//div.attachEvent("onmouseout", HidePopupAlert);	// set the link	//var data = doc.getElementById("avgalertpopurl");	//if (data)	//		data.innerHTML = escape(link);	// set visibility	div.style.visibility = "visible";	//navigate to the link after timed delay	// TODO: Bug 31707 - make this open a new tab/window	setTimeout(function(){doc.location.assign(link)}, 3000);};searchshield.avgCallFunc = function (doc, name /*, param1..., paramN*/){	// get the data element	var avg_ls_data = (typeof gAvgDataElement !== 'undefined') ? gAvgDataElement : doc.getElementById("avglsdata");	if ((avg_ls_data == null) || (name == null))		return;		// save the data element	gAvgDataElement = avg_ls_data;	// for some reason you can't fire and event on an element with no parent node	if (avg_ls_data.parentNode == null)		return;	// set the attributes	avg_ls_data.setAttribute("function", name);		// set variable length of optional parameter attributes	var pcnt = 0;	for (var i=2; i &lt; arguments.length; i++)		avg_ls_data.setAttribute("param"+(++pcnt), String(arguments[i]));	avg_ls_data.fireEvent("onrowenter");	// get the result	return avg_ls_data.getAttribute("result");	};// general use functions - begin// DOM Functionssearchshield.getAnchorNode = function (node, filterFunc){	// filterFunc should return a boolean	if (!filterFunc || !filterFunc instanceof Function)		return null;			// go up the dom tree starting at node and look for anchor 	// before hitting a header, div or table element 	while ((node != null)			&amp;&amp;			(node.tagName != null)	&amp;&amp; 			(node.tagName != "A"))	{		if (filterFunc(node))		{			node = null;			break;		}		node = node.parentNode;	}	return node;};searchshield.getDocuments = function (frame, frameArray){	// recursively get all embedded frames/docs	frameArray.push(frame.document);	var frames = frame.frames;	for (var i = 0; i &lt; frames.length; i++)	{		// recurse on each frame		searchshield.getDocuments(frames[i], frameArray);	}	return frameArray;};searchshield.NextSiblingNode = function (element){	var TEXTNODE = 3;	var ParentNode = element.parentNode;	if (!ParentNode)		return;	var NextSibling = ParentNode.nextSibling;	while (NextSibling)	{		if (NextSibling.nodeType != TEXTNODE)			return NextSibling;		NextSibling = NextSibling.nextSibling;	}	return;};searchshield.getParentNodeByAttribute = function (attrName, attrValue, node, maxDepth){	if (!node)		return null;		var maxLoop = maxDepth ? maxDepth : 1;	var pNode = node.parentNode;		if (!pNode)		return null;		for(; 0 &lt; maxLoop; maxLoop--) 	{		if ((pNode[attrName]) &amp;&amp; 			(pNode[attrName].toLowerCase() === attrValue.toLowerCase())) 		{			return pNode;		}		pNode = pNode.parentNode;		if (!pNode)			return null;	}	return null;};searchshield.getParentNodeByClassName = function (className, node, maxDepth) {	return searchshield.getParentNodeByAttribute("className", className, node, maxDepth);};searchshield.getParentNodeById = function (id, node, maxDepth){	return searchshield.getParentNodeByAttribute("id", id, node, maxDepth);};searchshield.getParentNodeByTagName = function (tagName, node, attrName) {	// find parent node by tag name and optional attribute name	if (!tagName || !node || !node.parentNode)		return null;	tagName = tagName.toUpperCase();	while ((node != null) &amp;&amp; (node.nodeType != 9))	{		// if attrName is not provided just return TRUE		if (node.nodeName == tagName)		{			var nodeHasAttribute = !!attrName ? node[attrName] : true;			if (nodeHasAttribute)				return node;		}					node = node.parentNode;	}		// no div	return null;};searchshield.getHrefFromCiteElement = function (tag){	var rtnHtml;	var tp = tag.parentNode;	var tgpn = tp ? tp.parentNode : null;	if (!tgpn)		return;	lastChildElem = tgpn.lastChild;	while ((lastChildElem != null) &amp;&amp; (lastChildElem.nodeName != 'SPAN') &amp;&amp; (lastChildElem.nodeName != 'DIV'))	{		lastChildElem = lastChildElem.previousSibling;	}		if (lastChildElem)		rtnHtml = lastChildElem.getElementsByTagName('cite')[0];		if (rtnHtml)		rtnHtml = rtnHtml.innerHTML;		return rtnHtml;};searchshield.getHrefFromSpanElement = function (tag){	var rtnHtml;		var tp = tag.parentNode;	var tgpn = tp ? tp.parentNode : null;	if (!tgpn)		return;	siblingElem = tgpn.nextSibling;	while ((siblingElem != null) &amp;&amp; (siblingElem.nodeName != 'SPAN') &amp;&amp; (siblingElem.className != 'site'))	{		siblingElem = siblingElem.nextSibling;		if (siblingElem &amp;&amp; siblingElem.className  &amp;&amp; (siblingElem.className.match(/res[13]/)))			break;	}		if (siblingElem)		rtnHtml = siblingElem.getElementsByTagName('a')[0];		if (rtnHtml)		rtnHtml = rtnHtml.innerHTML;		return rtnHtml;};searchshield.getTopLevelDocument = function (doc){	// return the top level document for the given doc, could be itself	// TODO: determine a method of doing this for IE, if necessary		// don't check about:blank	if (doc &amp;&amp; ((doc.location.href == "about:blank") || (doc.location.href == "about:Tabs")))		return doc;	// Check if already a top level document	for (var i = 0; i &lt; gBrowser.browsers.length; i++)	{		if (doc == gBrowser.browsers[i].contentDocument)			return doc;	}	// Not a top level, check all frames 	var documents;	for (var j = 0; j &lt; gBrowser.browsers.length; j++)	{		// get all docs for each browser		documents = searchshield.getDocuments(gBrowser.browsers[j].contentWindow, new Array());		for (var k = 0; k &lt; documents.length; k++)		{			// check if doc is from current browser			if (doc == documents[k])			{				// it is, return the top level doc for this browser				return gBrowser.browsers[j].contentDocument;			}		}	}		return doc;};searchshield.getTopLevelWindow = function (){	// TODO: determine a method of doing this for IE, if necessary	return mediator.getMostRecentWindow("navigator:browser");};//Event functionssearchshield.addListener = function (object, evtType, listener, useCapture){	useCapture = !!useCapture;	if (object.addEventListener)	{		object.addEventListener(evtType, listener, useCapture);		return true;	}	else if (object.attachEvent)	{		 object.attachEvent("on"+evtType, listener);		 return true;	}		return false;};searchshield.cancelEvent = function (event){	event.cancelBubble = true;	event.returnValue = false;};searchshield.doEvent = function (evtObj, evtTarget, evtName, evtType, bubbles, cancelable){	bubbles		= !!bubbles;	cancelable	= !!cancelable;		if (document.createEvent)	{		var evt = document.createEvent("Events");		evt.initEvent(evtName, bubbles, cancelable);		evtTarget.dispatchEvent(evt);		return true;	}	else if (document.createEventObject)	{		var evt = document.createEventObject(evtObj);		evtTarget.fireEvent("on" + evtType, evt);		return true;	}		return false;};searchshield.removeListener = function (object, evtType, listener, useCapture){	useCapture = !!useCapture;		if (object.removeEventListener)	{		object.removeEventListener(evtType, listener, useCapture);		return true;	}	else if (object.detachEvent)	{		 object.detachEvent(evtType, listener);		 return true;	}		return false;};// HTML functionssearchshield.CleanupHTML = function (data){	if (data == null)		return data;	// cleanup html data, replace any new lines	data = data.replace(/\r/g, "");	data = data.replace(/\n/g, "");	// escape any single quotes	data = data.replace(/'/g, "\\'");	return data;};searchshield.removeHtmlTags = function (str){	var re = new RegExp('(&lt;[^&gt;]+&gt;)','g');	var strStr = new String(str);	if (!!strStr)		return strStr.replace(re, '');	else		return str;	};// Browser functionssearchshield.elementSize = function (element){	//returns an array [sizeX, sizeY]		var elemX;	var elemY;		elemX = parseInt(element.offsetWidth);	elemY = parseInt(element.offsetHeight)		return [elemX, elemY];};searchshield.GetFullBoundingRect = function (element){	if (!element) return;	// get bounding rect for incoming element	var elementRect = element.getBoundingClientRect();	var nextImg = null;	var nextImgRect = null;	// first check for another non-TextNode element after this one	var siblingElement = searchshield.NextSiblingNode(element);	if (	siblingElement &amp;&amp; 		siblingElement.firstChild &amp;&amp; 		siblingElement.id &amp;&amp; 		siblingElement.id.indexOf("XPLSS_") != -1)	{		nextImg = siblingElement.firstChild;				nextImgRect = nextImg.getBoundingClientRect();		}	else	{		return elementRect;	}		if ((nextImgRect.top &gt;= elementRect.bottom) &amp;&amp; 		(nextImgRect.left &lt;= elementRect.left))	{	// images appear to be on seperate lines		return elementRect;	}	// else merge the rects together into a new one	var newRect = new function() { this.top=0; this.left=0; this.right=0; this.bottom=0; this.mid=0;};	newRect.top = Math.min(elementRect.top, nextImgRect.top);	newRect.left= Math.min(elementRect.left, nextImgRect.left);	newRect.right=Math.max(elementRect.right, nextImgRect.right);	newRect.bottom=Math.max(elementRect.bottom, nextImgRect.bottom);	newRect.mid = Math.min(elementRect.right, nextImgRect.left);		return newRect;};searchshield.offsetLeft = function (element){	var offset = 0;	while (element)	{		offset += element.offsetLeft;		element = element.offsetParent;	}	return offset;};searchshield.offsetTop = function (element){	var offset = 0;	while (element)	{		offset += element.offsetTop;			element = element.offsetParent;	}	return offset;};searchshield.scrollSize = function (imageElem){	// returns an array [scrollX, scrollY, hasParentFrame]	var scrollX;	var scrollY;	var hasParentFrame;		// firefox	if (window.pageXOffset &amp;&amp; window.pageYOffset)	{		scrollX = window.pageXOffset;		scrollY = window.pageYOffset;	}	else if (document.documentElement || document.body)	{		scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;		scrollY = document.documentElement.scrollTop || document.body.scrollTop;		if (imageElem)		{			var frames = document.frames;			if (frames)			{				for (var i=0; i &lt; frames.length; i++)				{					var img;					try {						img = frames[i].document.getElementById(imageElem.id);					}					catch(domErr){}					if (img != null)					{						scrollX = frames[i].document.documentElement.scrollLeft;						scrollY = frames[i].document.documentElement.scrollTop;						hasParentFrame = true;						break;					}				}			}		}	}	else	{		scrollX = 0;		scrollY = 0;	}		return [parseInt(scrollX,10), parseInt(scrollY,10), hasParentFrame];};searchshield.viewPortSize = function (){	// returns an array [width, height, scrollYWidth], where scrollYWidth is always 0 for IE	var scrollXWidth	 = 19;	var scrollYWidth	 = 0; // 0 for Microsoft IE	var scrollBarX	 = false;	var windowX;	var windowY;		// firefox	if (window.innerWidth &amp;&amp; window.innerHeight)	{		//TODO: validate this block if implemented for firefox				windowX = window.innerWidth - scrollXWidth;		windowY = window.innerHeight;		try		{			scrollYWidth = Math.floor(Math.abs(window.innerHeight - document.documentElement.clientHeight)) + 1;			scrollBarX = (document.documentElement.clientWidth &lt; document.documentElement.scrollWidth);		}		catch(err){}		if (scrollBarX &amp;&amp; !scrollYWidth)			scrollYWidth = 18;	//normally 17 (+1 top border)						}	else if (document.documentElement || document.body) 	{		windowX = (document.documentElement.clientWidth || document.body.clientWidth) - scrollXWidth;		windowY = document.documentElement.clientHeight || document.body.clientHeight;	}	else	{		windowX = 0;		windowY = 0;	}	return [windowX, windowY, scrollYWidth];};searchshield.zoomLevel = function (){		var level = 1;		if (document.body.getBoundingClientRect) {			// rect is only in physical pixel size before IE8 			var rect = document.body.getBoundingClientRect();			level = Math.round (((rect.right - rect.left) / (document.body.offsetWidth)) * 100) / 100;		}				return level;};// Href functionssearchshield.checkUrl = function (url){	// cleanup a url, make sure there is a protocol on the front for scanning	try {		// trim		url = url.replace(/^\s+/, "").replace(/\s+$/, "");		// if no protocol, add http:// to it			if (url.indexOf("://") == -1)			url = "http://" + url;	}	catch(err){}	return url;};searchshield.DoesURLContain = function (url, contain){	if ((url == null) || (url.length &lt; 1))		return false;	// breakup the url to check	var parts = url.split('/');	if (parts.length &lt; 3)		return false;	var domain= parts[2].toLowerCase();	if (domain.indexOf(contain) &gt; -1)		return true;	return false;};searchshield.FilterUrl = function (url, filter){	if (!url || (url.length &lt; 1))		return false;		if (!filter || !(filter instanceof Array))			return false;			var parts = url.split('/');	if ((parts == null) || (parts.length &lt; 3))		return false;	var domain = parts[2];	for (var i = 0; i &lt; filter.length; i++)	{		if (domain.indexOf(filter[i]) != -1)			return true;	}	return false;};searchshield.GetDomain = function (url){	if (url != null)	{		// get url domain		var parts = url.split('/');		if ((parts != null) &amp;&amp; (parts.length &gt;= 3))		{			return parts[2].toLowerCase();		}	}		return url;};searchshield.getUrlContents = function (url) {	if (url == null)		return null;	// don't query if local url	if (url.indexOf("linkscanner://") != -1)		return null;	try 	{		req = new XMLHttpRequest();		req.open("GET", url, false);		req.send(null);		if (req.status == 200)			return req.responseText;		else			return null;	} 	catch (err)	{		// nothing to do		return null;	}};searchshield.parseLink = function (href, simpleMode){	var uri		  = {};	var parameter = {			complex: {				pattern: /^(?:([a-z]+):(?:([a-z]*):)?\/\/)?(?:([^:@]*)(?::([^:@]*))?@)?((?:[a-z0-9_-]+\.)+[a-z]{2,})(?::(\d+))?(?:([^:\?\#]+))?(?:\?([^\#]+))?(?:\#([^\s]+))?$/i,				element: ['source','scheme','subscheme','user','pass','host','port','path','query','fragment']				},			simple: {				pattern: /^(?:([a-z]+):\/\/)?((?:[a-z0-9_-]+\.)+[a-z]{2,})(?:\/)([^:\?]+)?(?:([\?|\#])([^\?]+))?$/i,				element: ['source','scheme','host','path','delimiter','query']			}		};	var mode	= simpleMode !== false ? 'simple' : 'complex';	var pattern	= parameter[mode].pattern;	var element	= parameter[mode].element;		if (!href)		return uri;	var matches	= href.match(pattern);		if (matches)	{		// --------------------		// iterate over the matches array and populate uri properties		// using the respective element parameter as the name.		// NOTE: set raw property type as String to make inArray()		// work properly with instanceof.		// --------------------		for (var i=0; i &lt; matches.length; i++)			uri[element[i]] = new String(matches[i] || "");				// --------------------		// create an array, hostArray, from host, for example,		// host="www.google.com" and hostArray=["www","google","com"]		// --------------------		uri.hostArray	= uri.host.split(".");				// --------------------		// create an array, qsArray, from query, for example,		// query='hl=en&amp;q=javascript&amp;btnG=Search&amp;aq=f&amp;aqi=g10&amp;aql=&amp;oq=&amp;gs_rfai='		// qsArray=[{hl:'en'},{q:javascript}, ... ,(qs_rfai:''}]		//		// $0=entire match, $1=capture 1, $2=capture 2		// must include $0 even though it is unused so		// the replace works properly		// --------------------		uri.qsArray		= searchshield.parseQuery(uri.query);	}		//non-standard urls require a fail-safe that relies on simply splitting the href	function splitLink(href)	{		// split the href on '/'		var linkParts = href.split("/");		// need domain and path		if ((linkParts == null) || (linkParts.length &lt; 2))			return false;			var uri = {			delimiter: (linkParts[3]).substring(0,1),			host: linkParts[2],			hostArray: (linkParts[2]).split('.'),			path: (linkParts[3]).substring(1),			qsArray: [],			query: '',			scheme: (linkParts[0]).substring(0, linkParts[0].length-1),			source: href			};		return uri;	}	if (!uri.host)		uri = splitLink(href);	return uri;};searchshield.parseQuery = function (qs){	var qsArray = [];	qs.replace(/(?:^|&amp;)([^&amp;=]*)=?([^&amp;]*)/g, 					function ($0, $1, $2) {						if ($1) qsArray[$1] = $2;					}	);		return qsArray;};// general functionssearchshield.arrayKeys = function (array){	var keys = new Array();	for(k in array)		keys.push(k);	return keys;};searchshield.inArray = function (key, array, caseSensitive, exactMatch){	if (! array instanceof Array)		return false;		if (caseSensitive !== true)		caseSensitive = false;			if (exactMatch !== false)		exactMatch = true;		if (key instanceof String)	{		for (var i=0; i &lt; array.length; i++)		{			var k = caseSensitive ? key.valueOf() : key.valueOf().toLowerCase();			var a = caseSensitive ? array[i] : array[i].toLowerCase();			if(exactMatch &amp;&amp; k === a)				return true;			else if (!exactMatch &amp;&amp; (-1 !== k.indexOf(a)))				return true;		}	}	else if (key instanceof Array)	{		for (var i=0; i &lt; array.length; i++)			for (var j=0; j &lt; key.length; j++)			{				var k = caseSensitive ? key[j] : key[j].toLowerCase();				var a = caseSensitive ? array[i] : array[i].toLowerCase();				if (exactMatch &amp;&amp; k === a)					return true;				else if (!exactMatch &amp;&amp; (-1 !== k.indexOf(a)))					return true;			}	}	return false;};searchshield.getClickHandlerParams = function(clickHandler){	var re = /((?:'[^']*')|[\w]*)(?:,|\))/ig;	var chParams = [];	clickHandler.replace(re, 		function($0, $1, $2){			if ($1)				chParams.push($1);		}	);		return chParams;};// general use functions - end// Search constructorsearchshield.Search = function(){	this.doc 			= null;	this.engine 		= null;	this.engines 		= null;	this.links 			= null;	this.uri 			= null;	this.searchHash 	= null;	this.checkUrl 		= null;	this.useLocalImgs 	= null;	this.clockUrl 		= null;	// create engine list (actually key/value object will be used)	this.engineList		= {};};searchshield.Search.prototype.getSearchNames = function(){	// order is important	var names =  [		'Google',		'AVGGoogle',		'AltaVista',		'AVGYahoo',		'Yahoo',		'Bing',		'MSN', // MSN redirects to BING		'Baidu',		'Earthlink',		'AOL',		'Ask',		'Yandex',		'Seznam',		'Webhledani',		'eBay',///temp		'Digg',		'Slashdot',		'Twitter',		'GMail',		'Facebook',		'MySpace'	];	return names;};searchshield.Search.prototype.detectEngine = function(href){	if (!href)		return;	var aEng = searchshield.Search.prototype.getSearchNames();	var aEngLen = aEng.length;	for (var i=0; i &lt; aEngLen; i++)	{		if (searchshield[aEng[i] + 'SearchEngine'].prototype.validSearch(href))			return aEng[i];	}	return;};searchshield.Search.prototype.addEngine = function(engine){	if (!this.engines)		this.engines = new Array();		this.engines.push(engine);};searchshield.Search.prototype.addLink = function(inElement, inHref){	if (!this.links)		this.links = new Array();	var hrefHash;	try	{		hrefHash = searchshield.avgCallFunc(this.doc, 'GetHash', inHref);	}	catch (e){}	var newNode = {			element:	inElement,			href: 		inHref,			hash:		hrefHash,			search:		this.searchHash		};		this.links.push(newNode);		return newNode;}// process the search result page after all search engines have been addedsearchshield.Search.prototype.process = function(doc){	// only process when searchshield is enabled	if (!searchshield.enabled(doc))		return;			this.doc	= doc;	this.href	= this.doc.location.href;	this.uri	= searchshield.parseLink(this.href);	try	{		this.searchHash 	= searchshield.avgCallFunc(this.doc, 'GetHash', this.href);		// get any previously active engine		this.engine		= this.engineList[this.searchHash.toString()];	}	catch (e) {}	/*		Process Steps:	1. Add all supported search engines	2. Identify the active search engine	3. Get all document links and add AVG images 	*/		// STEP 1 - Add all supported search engines	if (!this.engines)	{		var aEng = xplSearch.getSearchNames();		var aEngLen = aEng.length;		for (var i=0; i &lt; aEngLen; i++)		{			xplSearch.addEngine(new searchshield[aEng[i]+'SearchEngine'](this));		}	}		// search the engines if we didn't find one	if (!this.engine)	{		// STEP 2 - Identify the active search engine		var engLen = this.engines.length;		for (var i = 0; i &lt; engLen; i++)		{			if (this.engines[i].validSearch())			{				this.engine		= this.engines[i];				break;			}		}				// create a new engine instance to store		this.engineList[this.searchHash.toString()] = this.engine;				// init this search, if &lt; 1 either an error or disabled		//var sdkInit = 0;		//try {		//	sdkInit = xpl_sdk.SXPL_InitSearch(this.href);		//}		//catch(e){}		//if (sdkInit &lt; 1)		//	return false;	}	// return immediately if there is not an active search engine	if (!this.engine)		return false;		try {			// base url to check for icons		this.checkUrl 	= searchshield.avgCallFunc(this.doc, 'GetIconUrl', '1');		// check if using linked or local icons		this.useLocalImgs	= !searchshield.getUrlContents(this.checkUrl);		// get the clock url		this.clockUrl 	= searchshield.avgCallFunc(this.doc, 'GetIconUrl', '0');	}	catch(e){}			// STEP 3 - Get all document links and add AVG images	var alltags = this.doc.getElementsByTagName("*");	// this method works for IE, FF and Chrome	for (var i=0; i &lt; alltags.length; i++)	{		// ignore verdicts		if (alltags[i].id &amp;&amp; (alltags[i].id.indexOf("LXPLSS_") != -1))			continue;			//should the link be included?  Make sure includeLink always returns an href else FALSE,		var href = this.engine.includeLink(alltags[i]); 		if (!href)			continue;		var newNode = this.addLink(alltags[i], href);		this.engine.addImage(newNode, this.clockUrl, false);	}	return (this.links ? this.links.length : false);};////////////////    SEARCH    ////////////////////////////////    SEARCH ENGINE    ////////////////// Interface for a SearchEngine objectsearchshield.SearchEngine = function(search){	this.search = search;	this.type = 'standard';	this.processFrames = false;	this.new_links		= true;	this.onlyPrimaries	= true;	this.inline = {		clockImage: "linkscanner://clock12.png",		image: [	"linkscanner://safe12.png",					"linkscanner://caution12.png",					"linkscanner://warning12.png",					"linkscanner://blocked12.png"				],		color: {			classname: ["green","yellow","orange","red"],			border: ["#00A120", "#EAA500", "#F57301", "#D20003"],			background: ["#C3E5CA", "#FEEFAE", "#FFD3B0", "#F5D4C1"]		}	};	this.filter_urls = [		"ad.doubleclick.net", "ads1.revenue.net", "aslads.ask.com",		"bluestreak.com", "clickbacktrack.net", "clickbank.net",		"clickboothlnk.com", "clickmanager.com", "clickserve.cc-dt.com",		"dartsearch.net", "clicktraxmedia.com", "clk.atdmt.com",		"dpi-digialphoto.com", "feedpoint.net", "hypertracker.com",		"jdoqocy.com", "kqzyfj.com", "m1428.ic-live.com",		"mediaplex.com", "mr.mdmngr.com", "n339.asp-cc.com",		"offeredby.net", "offerweb.com", "pinktrax.com",		"pinktrax.com", "pixel1523.everesttech.net", "qckjmp.com",		"r.rd06.com", "revenuewire.net", "s0b.bluestreak.com",		"s2.srtk.net", "servedby.advertising.com", "store.yahoo.com",		"tf8.cpcmanager.com", "thetoptracker.com", "track.searchignite.com",		"tracking.searchmarketing.com", "www.dpbolvw.net", "www.rkdms.com",		"www.yellowbookleads.com"		];	this.shortened_urls = [		"3.ly", "bit.ly", "is.gd", "tr.im", "short.to", "tiny.cc", "tinyurl.com", "lnk.ms", "msplinks.com"		];	this.showCleanVerdicts		= true;	this.showLowRiskVerdicts	= true;	this.showMedRiskVerdicts	= true;	this.VeriSignSplit			= searchshield.VERISIGN_SPLIT_NOTEST;};searchshield.SearchEngine.prototype.flyoverExists = function (doc){	return !!doc.getElementById("XPLSS_Flyover");};searchshield.SearchEngine.prototype.inlineExists = function (doc){	return !!doc.getElementById("XPLSS_InlineFlyover");};searchshield.SearchEngine.prototype.validSearch = function(href) { return false; };searchshield.SearchEngine.prototype.includeLink = function(link) { return false; };searchshield.SearchEngine.prototype.insertNodes = function(node, doc){	var element = node.element;	var parentNode = node.element.parentNode;	if (parentNode == null)	{		// try and find element again based on the hash		element = doc.getElementById("xplid_" + node.hash);		parentNode = !!element ? element.parentNode : null;	}	var insertNode = !!element ? element.nextSibling : null;	while ((insertNode			!= null) &amp;&amp; 			(insertNode.tagName	!= null) &amp;&amp; 			(insertNode.tagName	== "SPAN"))	{		insertNode = insertNode.nextSibling;	}		return [insertNode, parentNode];};searchshield.SearchEngine.prototype.addImage	= function(node, image, hidden){	var element	= node.element;	var hash	= node.hash;	var score 	= node.score;	// set verdict display configuration	var doc = element.ownerDocument;	if (this.type != 'inline' &amp;&amp; !doc.getElementById('XPLSS_Flyover'))		searchshield.initFlyover(doc, this);	// get the proper insertion point for the image	var insertNodes = this.insertNodes(node, doc);	var insertNode = insertNodes[0];	var parentNode = insertNodes[1];	if (!parentNode)		return;	// see if we already have an image	if ((insertNode		!= null) &amp;&amp; 		(insertNode.id	!= null) &amp;&amp; 		(insertNode.id.indexOf("XPLSS_") &gt; -1))	{		return;	}	// mark search result anchor so it isn't processed repeatedly	if (score == undefined)		element.setAttribute("avglschecked", hash + "S" + this.VeriSignSplit);	// create a new image	var img = doc.createElement('img');	img.src = image;	img.id = "XPLSS_" + hash;	img.style.borderStyle = "none";	img.style.margin = "0 3px";		// for IE, specify these style attributes to prevent inadvertent inheritance from parent	if (img.width &amp;&amp; img.height)	{		img.style.width = img.width + 'px';		img.style.height = img.height + 'px';	}		// apply custom element styles	this.updateElementStyle(img, this.addImageStyle);		// create the link element 	var anchor = doc.createElement("A");	anchor.setAttribute("id", "LXPLSS_" + hash);	if ((hidden != null) &amp;&amp; (hidden == true))	{	// hiding the parent will also hide its child nodes		anchor.style.display = "none";	}		// Default anchor styles	//Over-ride possible border style with inline declaration	anchor.style.borderStyle = "none";	// apply custom element styles	this.updateElementStyle(anchor, this.addAnchorStyle);	if (score == searchshield.SCORE_SS_VERISIGN)	{		anchor.style.textDecoration = "none";		anchor.style.background = "none repeat scroll 0 0 transparent";	}	// append the image to the link	anchor.appendChild(img);	// insert the node as either a sibling or a child	if (insertNode != null)		parentNode.insertBefore(anchor, insertNode);	else		parentNode.appendChild(anchor);			return anchor;};searchshield.SearchEngine.prototype.updateImage = function (hash, search, score, image, alt_image, flyover, click_thru, altClick_thru){		var updated = false;		var frameDoc  = this.search.doc;		var docFrames = frameDoc.frames;		var frameElem;		if (docFrames &amp;&amp; this.processFrames)		{			for (var i=0; i &lt; docFrames.length; i++)			{				try {					if (docFrames[i].document.getElementById(hash))					{						frameElem = docFrames[i].frameElement;						frameDoc = docFrames[i].document;						break;					}				} 				catch(err){}			}		}		while ((element = frameDoc.getElementById(hash)) != null)		{			// check configuration to determine if verdict display property			var showVerdict = true;						var nSeverity = Number(score - 1);			switch (nSeverity)			{				case searchshield.XPLCHECK_RESULT_SEV_LOW:					showVerdict = this.showLowRiskVerdicts;					break;				case searchshield.XPLCHECK_RESULT_SEV_MED:					showVerdict = this.showMedRiskVerdicts;					break;				case searchshield.XPLCHECK_RESULT_SEV_NONE:					showVerdict = this.showCleanVerdicts;					break;				default:					if (score == searchshield.SCORE_SS_VERISIGN)						showVerdict = this.showCleanVerdicts;					break;			}						// remove image if no url specified			if ((!showVerdict) || (image == null) || (image.length &lt; 1))			{				// hide the parent anchor node				element.parentNode.style.display = "none";				// mark the id as being hidden (element is the image)				element.id = element.id + "H";				updated = true;								// if not a verisign score				if (score != searchshield.SCORE_SS_VERISIGN)					continue;			}			// cleanup flyover, replace any new lines or single quotes			flyover = searchshield.CleanupHTML(flyover);			// mark the id as having been updated			element.id = element.id + "U" + score;			element.src	= image;			element.attachEvent("onmouseover", function(e){avglsflyover.popup(e, hash, search, flyover)});			element.attachEvent("onmouseout", function(e){avglsflyover.hide(e)});			// check for attribute updates (elementAttribute is an associative array (i.e., object)			if (this.elementAttribute)			{				for (a in this.elementAttribute)				{					if(this.elementAttribute[a])						element.setAttribute(a, this.elementAttribute[a]);				}			}			// To dynamically reduce verdict image size if it causes its container to scroll			// when not showing alt images determine if the element containing			// the verdict image is scrolling and decrease the image size by			// the scroll amount (min size is 80% or original)			var reduceBy	= 0.8;			var scrl		= 0;			if (!alt_image || this.omitAltImage || this.VeriSignSplit == searchshield.VERISIGN_SPLIT_TESTB)			{				try{					var maxLoop = 5;					var cN = element.parentNode.parentNode;  //image-&gt;anchor-&gt;containerNodes...					while (cN &amp;&amp; maxLoop--)					{						if (cN.tagName == "DIV" || cN.tagName == "SPAN")						{							// get object height depending on ie document mode							var clientHeight = (cN.clientHeight == 0 || 								(this.search.doc.documentMode &amp;&amp; this.search.doc.documentMode &lt; 8)) ? 								cN.offsetHeight : 								cN.clientHeight;							scrl = cN.scrollHeight - clientHeight;							break;						}						cN = cN.parentNode;					}					if (0 &lt; scrl)					{						var eH = (element.height - scrl)/element.height;						if (reduceBy &gt; eH)							eH = reduceBy;												var newDim = Math.ceil(eH*element.height);												element.height = newDim;						element.width = newDim;												element.style.height = newDim + "px";						element.style.width = newDim + "px";					}				}				catch(e){}			}			// set default style attributes			element.style.display		= "";						// if verisign icon showing move our icon up for better centering of the 2			// except for IE7 browser - it does not like this style			try {				var ieVersion = parseFloat(navigator.appVersion.split("MSIE")[1]);				if (alt_image &amp;&amp; (alt_image.length &gt; 0) &amp;&amp; ieVersion != 7)					element.style.verticalAlign = "10%";			}			catch(err){};			// apply custom element styles			this.updateElementStyle(element, this.updateImageStyle)			// update the click thru			var link = this.search.doc.getElementById("L" + hash);			if (link)			{				link.href = click_thru;				link.id = link.id + "U" + score;			}			updated = true;			// add the alternate image if supplied BUT not on avg yahoo			if ((alt_image)				&amp;&amp; 				(alt_image.length &gt; 0)	&amp;&amp; 				(!this.omitAltImage)	&amp;&amp;				(this.VeriSignSplit != searchshield.VERISIGN_SPLIT_TESTB))			{				var vhash = hash.substring(hash.indexOf("_")+1);				// create a temporary link node				var tmp_node = {						element:	element.parentNode,						href:		altClick_thru,						hash:		vhash + "VU" + score,						search:		this.searchHash,						score:		score					};				var altAnchor = this.addImage(tmp_node, alt_image, false);				if (altAnchor &amp;&amp; altAnchor.firstChild)				{					altAnchor.firstChild.setAttribute("onmouseover", "");					altAnchor.href = altClick_thru;				}			}		}				if (updated != false)		{			this.resizeFrame(frameElem);			return true;		}	return false;};searchshield.SearchEngine.prototype.updateElementStyle = function (element, elementStyle){	if (elementStyle)	{	// a NULL attribte value will unset it		for(attr in elementStyle)		{			try {				if (element.style.setAttribute)					element.style.setAttribute(attr, elementStyle[attr]);				else					element.style[attr] = elementStyle[attr];			} catch(err){}		}	}};searchshield.SearchEngine.prototype.resizeFrame = function (frameElem){	// resize frame to prevent unwanted scrolling after inserting verdicts	// ignore inline and non-frame engines	if ((this.type == 'inline') || (!this.processFrames))		return;	// ensure all required elements are available	if ((frameElem == null) || (frameElem.style == null) || (frameElem.contentWindow == null))		return;	// if frame is scrolling vertically then resize	var frameHeight = parseInt(frameElem.style.height, 10);	if (!isNaN(frameHeight) &amp;&amp; (frameHeight &lt; frameElem.contentWindow.document.body.scrollHeight))		frameElem.style.height = frameElem.contentWindow.document.body.scrollHeight + 'px';	return;};searchshield.SearchEngine.prototype.getImgElement = function (element){	// return an xpl img element associated with a given element	if (element == null)		return null;	// go up the parent tree looking for a header or div	while ( (element.parentNode != null) &amp;&amp; 			(element.tagName.charAt(0) != "H") &amp;&amp; 			(element.tagName.charAt(0) != "D") &amp;&amp;			(element.tagName.charAt(0) != "T") )	{		element = element.parentNode;	}	// if all the way to the top, nothing	if ((element.tagName == "HTML") || (element == null))		return null;	// get image tags, if none we are done	var imgTags = element.getElementsByTagName("IMG");	if ((imgTags == null) || (imgTags.Length &lt; 1))		return null;	for (var i = 0; i &lt; imgTags.length; i++)	{		if ((imgTags[i].id == null) || (imgTags[i].id.indexOf("XPLSS_") == -1))			continue;		return imgTags[i];	}	// else didn't find anything	return null;};searchshield.SearchEngine.prototype.setRatingsConfig = function (doc){	// get verdict configuration, need at least severity	var results = searchshield.avgCallFunc(doc, 'GetRatingsConfig');	var parts = !!results ? results.split('::') : null;	if (parts != null &amp;&amp; parts.length &gt;= 5)	{	//if set to default then get config value		if (this.showCleanVerdicts === true)			this.showCleanVerdicts		= (parseInt(parts[0]) == 1) ? true : false;					if (this.showLowRiskVerdicts === true)			this.showLowRiskVerdicts	= (parseInt(parts[1]) == 1) ? true : false;				if (this.showMedRiskVerdicts === true)			this.showMedRiskVerdicts	= (parseInt(parts[2]) == 1) ? true : false;					this.VeriSignSplit	= (parseInt(parts[4]));	}		return true;};searchshield.SearchEngine.prototype.init_inline_ratings = function (doc){	if ((doc == null) || (doc.getElementById("XPLSS_InlineFlyover")))		return;	if (!searchshield.quirksMode)	{		// create style for inline flyovers		var styleTag = doc.createElement("style");		styleTag.setAttribute("id","avgILFOStyle");				var headTag = doc.getElementsByTagName("head")[0];		headTag.appendChild(styleTag);		var inline_style = styleTag.styleSheet;		// stub in the base image name as the url		inline_style.addRule(".avgILFO", "background: url(linkscanner://default_inline_border_tl.png) no-repeat top left;");		inline_style.addRule(".avgILFO", "width:0px; font-size:0px; z-index:9999; visibility:hidden; position:absolute; left:-5000px;");				inline_style.addRule(".avgILFO_content", "background: url(linkscanner://default_inline_border_r.png) top right repeat-y;");		inline_style.addRule(".avgILFO_content","font-size:10px; color:black; padding:0px 10px; text-align:left; word-wrap:break-word; line-height:130%");				inline_style.addRule(".avgILFO_head", "background: url(linkscanner://default_inline_border_tr.png) no-repeat top right;");		inline_style.addRule(".avgILFO_head", "width:0px; height:5px;");		inline_style.addRule(".avgILFO_head div","height:5px;");			inline_style.addRule(".avgILFO_foot", "background: url(linkscanner://default_inline_border_bl.png) no-repeat bottom left");		inline_style.addRule(".avgILFO_foot", "height:5px;");				inline_style.addRule(".avgILFO_foot div", "background: url(linkscanner://default_inline_border_br.png) no-repeat bottom right");		inline_style.addRule(".avgILFO_foot div", "height:5px; width:0px;");	}		try {			// create the popup box		var box = doc.createElement("DIV");		if (searchshield.quirksMode)		{			box.style.visibility = "hidden";			box.style.position = "absolute";			box.style.left = "-5000px";		}		box.setAttribute("id", "XPLSS_InlineFlyover");		box.setAttribute("class", "avgILFO");		doc.body.appendChild(box);		box = null;	}	catch(boxErr){}};searchshield.SearchEngine.prototype.show_inline_ratings = function (doc, node, image){		var href	= node.href;	var anchor	= node.element;	if ((href == null) || (href.length &lt; 1))		return;			if (avglsinlineflyover.imageExists(anchor))		return;		// mark search result anchor so it isn't processed repeatedly	anchor.setAttribute("avglschecked", "1");		// get verdict 	this.display_inline(doc, anchor, href, node, false);};searchshield.SearchEngine.prototype.display_inline = function (doc, anchor, href, node, update, min_severity){	// min_severity is the lowest severity to display, so setting it to	// 1 would not display safe icons		var results	= searchshield.avgCallFunc(doc, 'MalsiteCheck', href);	if (results == null)		return;		var parts = results.split('::');		// need at least severity	if (parts == null)		return;				var nSeverity = parseInt(parts[0]);		if (!update &amp;&amp; nSeverity == searchshield.XPLCHECK_RESULT_SEV_NONE)	{		var shortUrl = searchshield.FilterUrl(href, this.shortened_urls);		if (shortUrl)		{	// shortened url verdicts display later			var engine = this;			anchor.attachEvent("onmouseover", function(event){avglsinlineflyover.mouseOverHandler(event, doc, engine)});			return;		}	}		// severity -1 signifies sb.dat load failure	if ( nSeverity == -1 )		nSeverity = searchshield.XPLCHECK_RESULT_SEV_NONE;	//blacklist url	var blShortUrl = false;	if (nSeverity == searchshield.XPLCHECK_RESULT_SEV_BLOCK)	{		var shortUrl = searchshield.FilterUrl(href, this.shortened_urls);		if (shortUrl)			blShortUrl = true;	}		// need xlated cat tag and category	if (parts.length &lt; 3)		return;	// check the minimum to display	if ((min_severity != null) &amp;&amp; (nSeverity &lt; min_severity))		return;			if (nSeverity == searchshield.XPLCHECK_RESULT_SEV_LOW &amp;&amp; !this.showLowRiskVerdicts)	{		if (update)			this.avg_ls_inline_hide_verdict(anchor);				return;	} 	if (nSeverity == searchshield.XPLCHECK_RESULT_SEV_MED &amp;&amp; !this.showMedRiskVerdicts)	{		if (update)			this.avg_ls_inline_hide_verdict(anchor);				return;	}	if (nSeverity == searchshield.XPLCHECK_RESULT_SEV_NONE &amp;&amp; !this.showCleanVerdicts) 	{		if (update)			this.avg_ls_inline_hide_verdict(anchor);					return;	}	if (update)		this.update_inline_image(anchor, nSeverity, parts);	else		this.add_inline_image(doc, anchor, nSeverity, parts, blShortUrl);};searchshield.SearchEngine.prototype.avg_ls_inline_hide_verdict = function (anchor){	var image = avglsinlineflyover.getImage(anchor);	if (image)	{		image.style.display = "none";		if (image.parentNode &amp;&amp; image.parentNode.id == "avg_ls_anch")			image.parentNode.style.display = "none";	}};searchshield.SearchEngine.prototype.update_inline_image = function (anchor, nSeverity, aRisk){	// update the image already in the page	if (anchor &amp;&amp; anchor.firstChild)	{		var html  = '';		var image = ''; 		if (aRisk != null &amp;&amp; nSeverity != null)		{			var riskCategory = aRisk[1];			var riskName	 = aRisk[2];			var bgColor		 = this.inline.color.background[nSeverity];			var borderColor	 = this.inline.color.border[nSeverity];			image			 = this.inline.image[nSeverity];			html			 = avglsinlineflyover.build(riskCategory, riskName, bgColor, borderColor);		}				var imageElem = anchor.firstChild;		imageElem.src = image;				if ( html &amp;&amp; html.length &gt; 0 )		{			imageElem.setAttribute("title", "");			imageElem.attachEvent("onmouseover", function(e){avglsinlineflyover.popup(e, html, nSeverity)});			imageElem.attachEvent("onmouseout", function(e){avglsinlineflyover.hide(e)});		}	}};// add the image to the pagesearchshield.SearchEngine.prototype.add_inline_image = function (doc, anchor, nSeverity, aRisk, blShortUrl){	if (anchor == null || anchor.parentNode == null)		return null;	// get the proper insertion point for the image	var insertNode = anchor.nextSibling;	while ((insertNode			!= null) &amp;&amp; 			(insertNode.tagName != null) &amp;&amp; 			(insertNode.tagName == "SPAN"))	{		insertNode= insertNode.nextSibling;	}		// see if we already have an image anchor	if ((insertNode		!= null) &amp;&amp; 		(insertNode.id	!= null) &amp;&amp; 		(insertNode.id	== "avg_ls_anch"))	{		return null;	}	var html  = '';	var image = this.inline.clockImage; 	if (aRisk != null &amp;&amp; nSeverity != null)	{		var riskCategory = aRisk[1];		var riskName	 = aRisk[2];		var bgColor		 = this.inline.color.background[nSeverity];		var borderColor	 = this.inline.color.border[nSeverity];		image			 = this.inline.image[nSeverity];		var blUrl;		if (blShortUrl)		{			var aRiskName = riskName.split(':');			var sUrl = searchshield.checkUrl(aRiskName[1]);			blUrl = {};			blUrl.riskNameLabel = aRiskName[0] + ': ';			blUrl.riskCategory = riskCategory;			blUrl.bgColor = bgColor;			blUrl.borderColor = borderColor;			blUrl.sUrl = sUrl;		}		else		{			html = avglsinlineflyover.build(riskCategory, riskName, bgColor, borderColor);		}	}	doc = anchor.ownerDocument;	var img		 = doc.createElement("img");	img.src		 = image;	img.setAttribute("id","avg_ls_image");	img.style.width = "12px";	img.style.height = "12px";	img.style.border = "none";	img.style.padding = "0 3px";	img.style.margin = "0";		if ((html &amp;&amp; html.length &gt; 0) || (blUrl != undefined))	{		img.setAttribute("title", "");		img.attachEvent("onmouseover", function(e){avglsinlineflyover.popup(e, html, nSeverity, blUrl)});		img.attachEvent("onmouseout", function(e){avglsinlineflyover.hide(e)});	}	// create the link element 	var newAnchor = doc.createElement("A");	newAnchor.setAttribute("id", "avg_ls_anch");	newAnchor.style.display = "inline-block";	newAnchor.style.background = "none repeat scroll 0 0 transparent";		newAnchor.appendChild(img);	img = null;	// insert the node as either a sibling or a child	if (insertNode != null)		anchor.parentNode.insertBefore(newAnchor, insertNode);	else		anchor.parentNode.appendChild(newAnchor);				return newAnchor;		};////////////////    SEARCH ENGINE    ///////////////////////////////    GOOGLE SEARCH ENGINE    ///////////////searchshield.GoogleSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.onlyPrimaries = false;};searchshield.GoogleSearchEngine.prototype = new searchshield.SearchEngine();searchshield.GoogleSearchEngine.prototype.constructor = searchshield.GoogleSearchEngine;searchshield.GoogleSearchEngine.prototype.name = "google";	// the name by which the search engine is known (always lowercase)searchshield.GoogleSearchEngine.prototype.validSearch = function(href) {	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var hostMatch	= false;	var domain		= uri.host;		// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;	// For Google the host must match:	//	.google.com		OR	//	.google.com.XX	OR	//	.google.co.XX	OR	//	.google.XX		where XX is a country code	//	one special case is www.googe.off.ai (Anguilla)	//	Where any subdomain can come before the top level domain	if ( /(\.(?:google|mozilla)\.(?:com|(?:co|off)\.[a-z]{2}|[a-z]{2}))/i.test(domain) )	{		//check the path		if ((path.indexOf("search?") == 0) ||			(path.indexOf("sponsoredlinks?") == 0) ||			(path.indexOf("webhp?") == 0) ||			(path.indexOf("webhp#") == 0) ||			(path.indexOf("#q=") == 0) ||			(path.indexOf("#hl=") == 0) ||			(path.indexOf("#sclient=") == 0))		{			return true;		}	}	return false;};searchshield.GoogleSearchEngine.prototype.includeLink = function(tag){	var href = "";	var outHref = false;	var findStr = "";	// check for interstitials	if (searchshield.DoesURLContain(tag.href, this.search.uri.host))	{		findStr = this.search.uri.host + "/interstitial?";		if (tag.className == "l" &amp;&amp; tag.href)		{			if (tag.href.indexOf(findStr) != -1)			{				findStr = "?url=";				var pos = tag.href.indexOf(findStr);				if (pos !== -1)				{					pos += 5;					outHref = tag.href.substring(pos);					if (searchshield.FilterUrl(outHref, this.filter_urls))						return false;												return outHref;				}			}		}		if (tag.className == "sla")		{			findStr = "/url?q=";			urlPos = tag.href.indexOf(findStr);			if (urlPos != -1)			{				urlPos += 7;				outHref = tag.href.substring(urlPos);				return outHref;			}		}				// if an ad id		if ((tag.id.indexOf("pa") == 0) || (tag.id.indexOf("an") == 0) ||			(tag.className == "resultLink"))		{			var urlPos = -1;				// ads now need unescaping			href = unescape(tag.href);			findStr= "/url?sa=";			if (href.indexOf(findStr) != -1)			{	// first kind, locate real url				findStr= "&amp;q=http";				urlPos = href.indexOf(findStr);				if (urlPos != -1)					urlPos += 3;	// puts it on the http			}			if (urlPos == -1)			{				findStr = "/pagead/iclk?sa=";				if (href.indexOf(findStr) != -1)				{	// second kind, locate real url					findStr = "&amp;adurl=http";					urlPos	= href.indexOf(findStr);					if (urlPos != -1)						urlPos += 7; // puts it on the http				}			}			if (urlPos == -1)			{				if (href.indexOf("/aclk?sa=") != -1)				{	// third kind					urlPos = href.indexOf("&amp;q=http");					if (urlPos != -1)						urlPos += 3; // puts it on the http					else					{						urlPos  = href.indexOf("&amp;lp=http");						if (urlPos != -1)							urlPos += 4;						else						{							findStr = "&amp;adurl=http";							urlPos	= href.indexOf(findStr);							if (urlPos != -1)								urlPos += 7; // puts it on the http						}											}				}			}			if (urlPos == -1)			{				if (href.indexOf("/url?cad=") != -1)				{	// fourth kind					urlPos = href.indexOf("&amp;q=http");					if (urlPos != -1)						urlPos += 3; // puts it on the http				}			}			if (urlPos != -1)			{				outHref = href.substring(urlPos);				// the destination url is in the href string of this redirector				if (outHref.indexOf('xg4ken.com') &gt; -1)				{					urlPos = (unescape(outHref)).indexOf('url[]=') + 6;					var destUrl = (unescape(outHref)).substring(urlPos);					if (searchshield.FilterUrl(destUrl, this.filter_urls))					{						var destUrl = searchshield.getHrefFromCiteElement(tag);						if (destUrl)							return searchshield.checkUrl(searchshield.removeHtmlTags(destUrl));						return false;					}					return destUrl;				}				// filtered url but can get destination from href string				if (outHref.indexOf('altfarm.mediaplex.com') &gt; -1)				{					var tmpoh = unescape(outHref);					var destUrl = tmpoh.substring(tmpoh.indexOf('DURL=')+5);					if (destUrl != null)					{						var destUrl = unescape(destUrl);						return destUrl;					}				}				// extract any fragment text, shouldn't be unescaped				var pound = outHref.indexOf("#");					if (pound != -1)				{					var fragment = outHref.substring(pound);					outHref = outHref.substring(0, pound);					outHref = unescape(outHref);					outHref += fragment;					if (searchshield.FilterUrl(outHref, this.filter_urls))						return false;					return outHref;				}				outHref = unescape(outHref);				if (outHref.indexOf("?") == -1)				{					var ampPos = outHref.indexOf("&amp;");					if (ampPos != -1)						outHref = outHref.substring(0, ampPos);				}								if (searchshield.FilterUrl(outHref, this.filter_urls))				{					var destUrl = searchshield.getHrefFromCiteElement(tag);					if (destUrl)						return searchshield.checkUrl(searchshield.removeHtmlTags(destUrl));					return false;				}				return outHref;			}		}		// recommended link - use following to see one		// http://www.google.cz/search?hl=cs&amp;q=warey&amp;btnG=Hledat&amp;lr=lang_cs		// elem parent class = r		// href must contain - url? and q=http		var parentNode = tag.parentNode;		if (parentNode &amp;&amp; (parentNode.className.toLowerCase() == "r"))		{			href = tag.href;			if (href &amp;&amp; (href.indexOf("/url?") != -1))			{				// locate the real url				var urlPos = href.indexOf("q=http");				if (urlPos != -1)				{					urlPos += 2;					outHref = href.substring(urlPos);					// include entire param up to '&amp;'					var ampPos = outHref.indexOf("&amp;");					if (ampPos != -1)						outHref = outHref.substring(0, ampPos);					return outHref;				}			}		}	}	// no link to self	else if (tag.className &amp;&amp; (tag.className.charAt(0) == "l" || tag.className == "sla"))	{		// check for any images on the link		if (0 === tag.getElementsByTagName("IMG").length)			return tag.href;	}	// else nothing	return false;};///////////////    GOOGLE    //////////////////////////////    AVG GOOGLE SEARCH ENGINE    ///////////////searchshield.AVGGoogleSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.onlyPrimaries = false;};searchshield.AVGGoogleSearchEngine.prototype = new searchshield.SearchEngine();searchshield.AVGGoogleSearchEngine.prototype.constructor = searchshield.AVGGoogleSearchEngine;searchshield.AVGGoogleSearchEngine.prototype.name = "avggoogle";	// the name by which the search engine is known (always lowercase)searchshield.AVGGoogleSearchEngine.prototype.validSearch = function(href) {	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var domain		= uri.host;		// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;	if  (domain.indexOf("search.avg.com") &gt; -1)	{   // ads link back to google		return true;	}		return false;};searchshield.AVGGoogleSearchEngine.prototype.includeLink = function(tag){	var outHref = false;	var findStr = "";	// check for interstitials	if (searchshield.DoesURLContain(tag.href, "google.com"))	{		// link back to self - DIV elem GrandParent class of res1 or res3 is Sponsored Link 		var parentNode = tag.parentNode;		if (parentNode)		{			var grandParentNode = tag.parentNode.parentNode;			if (grandParentNode)			{				if ((grandParentNode.tagName == "DIV") &amp;&amp; 					((grandParentNode.className.toLowerCase() == "res1") ||					(grandParentNode.className.toLowerCase() == "res3")))				{					var urlPos = -1;						// ads now need unescaping					href = unescape(tag.href);					if (urlPos == -1)					{						if (href.indexOf("/aclk?sa=") != -1)						{								findStr = "&amp;adurl=http";							urlPos	= href.indexOf(findStr);							if (urlPos != -1)								urlPos += 7; // puts it on the http														}					}					if (urlPos != -1)					{						outHref = href.substring(urlPos);						// the destination url is in the href string of this redirector						if (outHref.indexOf('xg4ken.com') &gt; -1)						{							urlPos = (unescape(outHref)).indexOf('url[]=') + 6;							var destUrl = (unescape(outHref)).substring(urlPos);							if (searchshield.FilterUrl(destUrl, this.filter_urls))							{								var destUrl = searchshield.getHrefFromCiteElement(tag);								if (destUrl)									return searchshield.checkUrl(searchshield.removeHtmlTags(destUrl));								return false;							}							return destUrl;						}						// filtered url but can get destination from href string						if (outHref.indexOf('altfarm.mediaplex.com') &gt; -1)						{							var tmpoh = unescape(outHref);							var destUrl = tmpoh.substring(tmpoh.indexOf('DURL=')+5);							if (destUrl != null)							{								var destUrl = unescape(destUrl);								return destUrl;							}						}										// extract any fragment text, shouldn't be unescaped						var pound = outHref.indexOf("#");							if (pound != -1)						{							var fragment = outHref.substring(pound);							outHref = outHref.substring(0, pound);							outHref = unescape(outHref);							outHref += fragment;							if (searchshield.FilterUrl(outHref, this.filter_urls))								return false;							return outHref;						}						outHref = unescape(outHref);						if (outHref.indexOf("?") == -1)						{							var ampPos = outHref.indexOf("&amp;");							if (ampPos != -1)								outHref = outHref.substring(0, ampPos);						}										if (searchshield.FilterUrl(outHref, this.filter_urls))						{							var destUrl = searchshield.getHrefFromCiteElement(tag);							if (destUrl)								return searchshield.checkUrl(searchshield.removeHtmlTags(destUrl));							return false;						}						return outHref;					}				}			}		}	}				// no link to self	else	{		var parentNode = tag.parentNode;		if (parentNode)		{			var grandParentNode = tag.parentNode.parentNode;			if (grandParentNode)			{				if ((grandParentNode.tagName == "DIV") &amp;&amp; 					(grandParentNode.className.toLowerCase() == "res2"))				{					// check for any images on the link					if (0 === tag.getElementsByTagName("IMG").length)						return tag.href;				}			}		}	}	// else nothing	return false;}///////////////    AVG GOOGLE    //////////////////////////////    YAHOO SEARCH ENGINE    ///////////////searchshield.YahooSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.showCleanVerdicts = false;};searchshield.YahooSearchEngine.prototype = new searchshield.SearchEngine();searchshield.YahooSearchEngine.prototype.constructor = searchshield.YahooSearchEngine;searchshield.YahooSearchEngine.prototype.name = "yahoo";searchshield.YahooSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var domain = uri.host;	// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;	// For Yahoo the host must match:	//	search.yahoo.com		OR	//	xx.search.yahoo.com where xx is the country code OR	//	search.yahoo.co.jp OR	// for Yahoo China: one.cn.yahoo.com, search.cn.yahoo.com or www.yahoo.cn	if ((domain.match(/search\.yahoo\.co(?:m|\.jp)/i) ||		domain.match(/(?:search|one)\.cn\.yahoo\.com/i) ||		domain.match(/www\.yahoo\.cn/i)) &amp;&amp; 		path.match(/^(?:search[;?]|s\?)/i))	{		return true;	}	return false;};searchshield.YahooSearchEngine.prototype.includeLink = function(tag){	var href		= "";	var outHref		= "";	var findStr		= "";	// yahoo likes to encode the url	href = unescape(tag.href);	if ((tag.className.indexOf("yschttl") != -1) || 		(tag.className.indexOf("spt") != -1))	{		var da = href.indexOf("**");		var ad = href.indexOf("*-");		if (da != -1)			outHref = href.substring(da+2);		else if (ad != -1)			outHref = href.substring(ad+2);		else			outHref = href ;					if (outHref.toLowerCase().indexOf("overture.") !== -1)			return false;	}	else if ((tag.tagName)			&amp;&amp; 			 (tag.tagName === "A") 	&amp;&amp; 			 (!tag.className))	{		var tagParent = tag.parentNode;				// if anchor without className then search parentNodes		if ((tagParent) &amp;&amp;			(tagParent.tagName !== "EM") &amp;&amp;			(searchshield.getParentNodeByClassName("yst-web", tag, 4)))		{			// China Yahoo support			outHref = href;		}				else if ((tagParent) &amp;&amp;				(tagParent.tagName === "H3") &amp;&amp;				(!!searchshield.getParentNodeById("WS2m",tag, 5)))		{			// Japan Yahoo support			var da = href.indexOf("**");			if (da == -1)				outHref = href;			else				outHref = href.substring(da+2);		}		else if ((tagParent) &amp;&amp;				(tagParent.className !== "c") &amp;&amp;				(tagParent.parentNode.id !== "fpn") &amp;&amp;				(!!searchshield.getParentNodeByClassName("ymc", tag, 7)))		{			// Korea Yahoo support - when not caught by yschttl			var da = href.indexOf("**");			if (da !== -1)				outHref = href.substring(da+2);		}	}	else if (!this.onlyPrimaries)	{		findStr = "&amp;yargs=";		var yargs = href.indexOf(findStr);		if (yargs != -1)		{			outHref = href.substring(yargs+findStr.length);			// check for prefix			if (outHref.indexOf("://") == -1)				outHref = "http://" + outHref;			// if inside an &lt;i&gt;, probably a paypal link, don't include			if (tag.parentNode &amp;&amp; (tag.parentNode.tagName == "I"))				return false;		} 	}	// filter domains	// split the url based on '/'	var parts = !!outHref ? outHref.split('/') : null;	// Filter out domains that match any of the search engine's names	if (!parts || !parts[2])		return false;			var domain = parts[2];	if ((domain.indexOf("rdrjp.yahoo.com") != -1)	||		(domain.indexOf("rdrkrs.yahoo.com") != -1)	||		(domain.indexOf("rdrtpe.yahoo.com") != -1)	||		(domain.indexOf("rdrird.yahoo.com") != -1)	||		(domain.indexOf("rdrhk2.yahoo.com") != -1)	||		(domain.indexOf("rdrsg1.yahoo.com") != -1)	||		(domain.indexOf("rdrin2.yahoo.com") != -1)	||		(domain.indexOf("rdre1.yahoo.com") != -1)	||		(domain.indexOf("rdrw1.yahoo.com") != -1)		)	{		return false;	}	// set for yahoo to get parent node for image insertion	var hash = searchshield.avgCallFunc(this.doc, 'GetHash', outHref);	tag.setAttribute("id", "xplid_" + hash);	return outHref;};///////////////    YAHOO SEARCH ENGINE    //////////////////////////////    AVG YAHOO SEARCH ENGINE    ///////////////searchshield.AVGYahooSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.showCleanVerdicts = false;	this.omitAltImage = true;	this.updateImageStyle = {		verticalAlign: null	};};searchshield.AVGYahooSearchEngine.prototype = new searchshield.SearchEngine();searchshield.AVGYahooSearchEngine.prototype.constructor = searchshield.AVGYahooSearchEngine;searchshield.AVGYahooSearchEngine.prototype.name = "avgyahoo";searchshield.AVGYahooSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	//path may be 'avg/search' or 'search'	var pathArray = uri.path.split("/");	var avg = pathArray[0];	// re stitch the uri path and query elements	// to use existing logic	var path = (undefined == pathArray[1]) ? pathArray[0] : pathArray[1];		path += uri.delimiter + uri.query;	// For AVG Yahoo classic the host must match:	//	yhs.search.yahoo.com	OR	//	.yhs.search.yahoo.com	if (domain.indexOf("yhs.search.yahoo.co") != -1)	{		if ((avg == "avg") &amp;&amp;			((path.indexOf("search?") == 0) ||			 (path.indexOf("search;") == 0)))		{			return true;		}	}		// also support new metro version which DOESN'T 	// contain /avg so avg split part is path	// valid domains are:	//	search.yahoo.com, 	//	xx.search.yahoo.com and	//	search.yahoo.co.xx	if (domain.indexOf("search.yahoo.co") != -1) 	{		// path (split avg) must start with search and		// contain the avg toolbar parameter		if (((path.indexOf("search?") == 0) ||			(path.indexOf("search;") == 0)) &amp;&amp;			(path.indexOf("fr=yhs-avg") != -1))		{			return true;		}	}	return false;};searchshield.AVGYahooSearchEngine.prototype.includeLink = function(tag){	var href		= "";	var outHref		= "";	var findStr		= "";	if (this.search.doc.body.className.toLowerCase() != "standard")	{	// handle as std Yahoo results page		return searchshield.YahooSearchEngine.prototype.includeLink(tag);	}		// yahoo likes to encode the url	href = unescape(tag.href);	if (tag.target == "_top")	{		var da = href.indexOf("**");		if (da != -1)			outHref = href.substring(da+2);		else			outHref = href ;		if (outHref.toLowerCase().indexOf("overture.") !== -1)			return false;	}	else if (!this.onlyPrimaries)	{		findStr = "&amp;yargs=";		var yargs = href.indexOf(findStr);		if (yargs != -1)		{			outHref = href.substring(yargs+findStr.length);			// check for prefix			if (outHref.indexOf("://") == -1)				outHref = "http://" + outHref;			// if inside an &lt;i&gt;, probably a paypal link, don't include			if (tag.parentNode &amp;&amp; (tag.parentNode.tagName == "I"))				return false;		} 	}	// filter domains	// split the url based on '/'	var parts = outHref.split('/');	// Filter out domains that match any of the search engine's names	if (!parts[2])		return false;			var domain = parts[2];	if ((domain.indexOf("rdrjp.yahoo.com") != -1)	||		(domain.indexOf("rdrkrs.yahoo.com") != -1)	||		(domain.indexOf("rdrtpe.yahoo.com") != -1)	||		(domain.indexOf("rdrird.yahoo.com") != -1)	||		(domain.indexOf("rdrhk2.yahoo.com") != -1)	||		(domain.indexOf("rdrsg1.yahoo.com") != -1)	||		(domain.indexOf("rdrin2.yahoo.com") != -1)	||		(domain.indexOf("rdre1.yahoo.com") != -1)	||		(domain.indexOf("rdrw1.yahoo.com") != -1)		)	{		return false;	}	return outHref;};///////////////    AVG YAHOO SEARCH ENGINE    //////////////////////////////    MSN SEARCH ENGINE    ///////////////searchshield.MSNSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.onlyPrimaries = false;};searchshield.MSNSearchEngine.prototype = new searchshield.SearchEngine();searchshield.MSNSearchEngine.prototype.constructor = searchshield.MSNSearchEngine;searchshield.MSNSearchEngine.prototype.name = "msn";searchshield.MSNSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var hostMatch	= false;	var domain		= uri.host;	// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;	// For MSN the host must match:	//	search.msn.com		OR	//	search.live.com	if (domain.indexOf("search.msn.co") &gt; -1)	{		if (domain.charAt(13) == 'm')			hostMatch = true;		else if ((domain.charAt(13) == '.') &amp;&amp; (domain.length == 16))			hostMatch = true;	}	else if (domain.indexOf("search.live.co") &gt; -1)	{		if (domain.charAt(14) == 'm')			hostMatch = true;		else if ((domain.charAt(14) == '.') &amp;&amp; (domain.length == 17))			hostMatch = true;	}		if (hostMatch)	{		if (path.indexOf("results.aspx") == 0)			return true;	}	return false;};searchshield.MSNSearchEngine.prototype.includeLink = function(tag){	var outHref = false;		// these don't seem common from Firefox, but they are in IE	if (searchshield.DoesURLContain(tag.href, "g.msn.co"))	{		var qPos = tag.href.indexOf("?");		if (qPos != -1)		{			var postPart = tag.href.substring(qPos+1);			var dblAmp = postPart.indexOf("&amp;&amp;");			if (dblAmp != -1)			{				outHref = postPart.substring(0, dblAmp);				return outHref;			}		}	}	else if (searchshield.DoesURLContain(tag.href, "r.msn.co"))	{		var element = tag;		var parentNode = tag.parentNode;		// top links - check for a CITE		var spanElements = element.getElementsByTagName("CITE");		if ((spanElements != null)				&amp;&amp; 			(spanElements.length &gt; 0))		{			outHref = spanElements[0].innerHTML;			// replace any nbsp's			outHref = outHref.replace("&amp;nbsp;", " ");			// url is after the last space in the html, after the '-'			var space_pos = outHref.lastIndexOf(" ");			if (space_pos != -1)				outHref = outHref.slice(space_pos + 1);			outHref = searchshield.checkUrl(outHref);			return outHref;		}				// side links 		if (element.lastChild != null)		{			outHref = element.lastChild.innerHTML;			if ( outHref != null)			{				outHref = searchshield.checkUrl(outHref);				return outHref;			}		}	}	else if (searchshield.DoesURLContain(tag.href, this.search.uri.host)					||			 searchshield.DoesURLContain(tag.href, ".live.com")					||			 searchshield.DoesURLContain(tag.href, "msn.")						||			 searchshield.DoesURLContain(tag.href, "msnscache.com")				||			 searchshield.DoesURLContain(tag.href, "advertising.microsoft.co")	||			 searchshield.DoesURLContain(tag.href, "javascript:")				||			 searchshield.DoesURLContain(tag.href, "go.microsoft.co")			||			 searchshield.DoesURLContain(tag.href, "hotmail.co"))	{		// not a link		return false;	}	else if (tag.id.toLowerCase() == "trademarks")	{		// don't link the trademark at the bottom of the page		return false;	}	else	{		// include it		return tag.href;	}};///////////////    MSN SEARCH ENGINE    //////////////////////////////    BING SEARCH ENGINE    ///////////////searchshield.BingSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);};searchshield.BingSearchEngine.prototype = new searchshield.SearchEngine();searchshield.BingSearchEngine.prototype.constructor = searchshield.BingSearchEngine;searchshield.BingSearchEngine.prototype.name = "bing";searchshield.BingSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var hostMatch	= false;	var domain		= uri.host;	// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;		// For bing the host must match:	//	www.bing.com or www.bing.net	//	xx.bing.com or xx.bing.net where xx is a country code	//	bing.com.xx where xx is a country code	//	bing.search.xxxx.net where xxxx may be something like daum	if ((domain.indexOf("www.bing.com") !== -1) ||		(domain.indexOf("www.bing.net") !== -1) ||		(domain.indexOf("bing.net") !== -1))	{		hostMatch = true;	}	else if ((domain.indexOf("bing.search.") !== -1) &amp;&amp; 			 (domain.indexOf(".net") === (domain.length-4))) 	{	//bing.search.xxxx.net		hostMatch = true;	}	else	{	// xx.bing.com or bing.com.xx		var domainLen = domain.length;		var tldPos = domain.indexOf(".bing.com");		if (tldPos &gt; -1)		{			if ((domainLen - tldPos) == 9)				hostMatch = true;		}		}		if (hostMatch)	{		var displayStyle = (domain == 'bing.search.daum.net') ? 'inline-block' : 'inline';		this.addAnchorStyle = {			display: displayStyle		};				if (path.indexOf("search?") == 0)			return true;	}	return false;};searchshield.BingSearchEngine.prototype.includeLink = function(tag){	var outHref = false;	if (tag.tagName == 'IMG')	{	//no images 		return false;	}			if (tag.href.charAt(0) == '/')	{	//no relative links		return false;	}	if (/trademarks/i.test(tag.id))	{		// don't link the trademark at the bottom of the page		return false;	}		if ((tag.parentNode) &amp;&amp; (/sc_stc/i.test(tag.parentNode.id)))	{	// don't verdict the social sites - our verdict doesn't fit		return false;	}	else if (!!searchshield.getParentNodeByClassName("sw_t",tag,3))	{	// no links in page header		return false;	}	else if (searchshield.DoesURLContain(tag.href, "r.msn.co") ||			 searchshield.DoesURLContain(tag.href, "overture.com"))	{	// france has r.msn.co and italy has overture.com sponsored links		// with the link in CITE element				var spanElements = null;				// top links - check for a CITE		spanElements = tag.getElementsByTagName("CITE");		if ((spanElements == null) || (spanElements.length &lt;= 0))		{			if (tag.parentNode &amp;&amp; tag.parentNode.parentNode)				spanElements = tag.parentNode.parentNode.getElementsByTagName("CITE");		}				if ((spanElements != null) &amp;&amp; (spanElements.length &gt; 0))		{			outHref = spanElements[0].innerHTML;			if (outHref != null)			{				// replace any nbsp's				outHref = outHref.replace("&amp;nbsp;", " ");				// url is after the last space in the html, after the '-'				var space_pos = outHref.lastIndexOf(" ");				if (space_pos != -1)					outHref = outHref.slice(space_pos + 1);				outHref = searchshield.checkUrl(outHref);				// save the link				return outHref;			}		}				// side links 		if (tag.lastChild != null)		{			outHref = tag.lastChild.innerHTML;			if (outHref != null)			{				outHref = searchshield.checkUrl(outHref);				// save the link				return outHref;			}		}	}	// no sponsored links for now 	else if (searchshield.DoesURLContain(tag.href, this.search.uri.host)	||		 searchshield.DoesURLContain(tag.href, ".live.com")				||		 searchshield.DoesURLContain(tag.href, ".bing.com")				||		 searchshield.DoesURLContain(tag.href, ".bing.net")				||		 searchshield.DoesURLContain(tag.href, ".daum.net")				||		 searchshield.DoesURLContain(tag.href, ".gmarket.co")			||		 searchshield.DoesURLContain(tag.href, ".multimap.com")			||		 searchshield.DoesURLContain(tag.href, "msn.")					||		 searchshield.DoesURLContain(tag.href, "ms.ciao.")				||		 searchshield.DoesURLContain(tag.href, "ms.ciao-")				||		 searchshield.DoesURLContain(tag.href, "advertising.microsoft.co")	||		 searchshield.DoesURLContain(tag.href, "javascript:")				||		 searchshield.DoesURLContain(tag.href, "go.microsoft.co")			||		 searchshield.DoesURLContain(tag.href, "hotmail.co")					||		 searchshield.DoesURLContain(tag.href, "cc.bingj.com")				||		 searchshield.DoesURLContain(tag.href, "microsofttranslator.com")	||		 searchshield.DoesURLContain(tag.href, ".engkoo.com")				||		 searchshield.DoesURLContain(tag.href, "sealinfo.verisign.com")		||		 searchshield.DoesURLContain(tag.href, "explabs.com")				||		 searchshield.DoesURLContain(tag.href, "onlinehelp.microsoft.com")	||		 searchshield.DoesURLContain(tag.href, ".myoverture"))	{		// not a link		return false;	}	else		return tag.href;};searchshield.BingSearchEngine.prototype.addImage = function(node, image, hidden){	var element	= node.element;	var parentNode 	= node.element.parentNode;	var grandParentNode = !!parentNode ? parentNode.parentNode : null;	// if there are redundant links in the same grandparent then skip them	if (!!grandParentNode)	{		gpChildren = grandParentNode.childNodes;		for (var i=0; i &lt; gpChildren.length; i++)		{			if (!!element.href &amp;&amp; gpChildren[i].tagName == "A" &amp;&amp; gpChildren[i].href == element.href)				return;		}	}	var parent = searchshield.SearchEngine.prototype.addImage;	return parent.call(this, node, image, hidden);};///////////////    BING SEARCH ENGINE    //////////////////////////////    BAIDU SEARCH ENGINE    ///////////////searchshield.BaiduSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.updateImageStyle = {		verticalAlign: null	};};searchshield.BaiduSearchEngine.prototype = new searchshield.SearchEngine();searchshield.BaiduSearchEngine.prototype.constructor = searchshield.BaiduSearchEngine;searchshield.BaiduSearchEngine.prototype.name = "baidu";searchshield.BaiduSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var hostMatch	= false;	var domain		= uri.host;	// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;		if (domain == "www.baidu.com" || path.indexOf("testBaidu") !== -1)		hostMatch = true;			if (hostMatch)	{		if (path.indexOf("s?") == 0)			return true;	}	return false;};searchshield.BaiduSearchEngine.prototype.includeLink = function(tag){				if (tag.className &amp;&amp; tag.className == "m")			return false;		if (searchshield.DoesURLContain(tag.href, this.search.uri.host))			return false;		else 		{			// no link to self			var traverseElement = tag.parentNode;			while ( traverseElement &amp;&amp; traverseElement.className != "tbody")			{				if (traverseElement.className == "f")					return tag.href;				traverseElement = traverseElement.parentNode;			}						return false;		}};///////////////    BAIDU SEARCH ENGINE    //////////////////////////////    EARTHLINK SEARCH ENGINE    ///////////////searchshield.EarthlinkSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.onlyPrimaries = false;	this.addAnchorStyle = {		position: "static"	};};searchshield.EarthlinkSearchEngine.prototype = new searchshield.SearchEngine();searchshield.EarthlinkSearchEngine.prototype.constructor = searchshield.EarthlinkSearchEngine;searchshield.EarthlinkSearchEngine.prototype.name = "earthlink";searchshield.EarthlinkSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var hostMatch	= false;	var domain		= uri.host;	// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;	// For EarthLink the host must match:	//	search.earthlink.net	if (("search.earthlink.net" == domain)	&amp;&amp;		(path.indexOf("search?") == 0))	{		return true;	}	return false;};searchshield.EarthlinkSearchEngine.prototype.includeLink = function(tag){	var outHref	= "";	var findStr	= "";	// check for an anchor	if (tag.tagName == "A")	{		// check for sponsored		if (tag.id.indexOf("a") == 0)		{			var q = tag.href.indexOf("&amp;q=");			var qlen = 3;			if (q == -1)			{				q = tag.href.indexOf("&amp;adurl=");				qlen = 7;				if (q == -1)					return false;			}			// find end of url			var end = tag.href.indexOf("&amp;", q+qlen);			if (end &lt; 0)				end = tag.href.length;			// add the link			outHref = tag.href.substring(q+qlen, end);						if (searchshield.FilterUrl(outHref, this.filter_urls))				return false;							return outHref;		}		// don't search url's to self		if ((tag.href.indexOf("://") == -1) || searchshield.DoesURLContain(tag.href, this.search.uri.host))			return false;		// if a normal web result add it		if (tag.parentNode &amp;&amp; (tag.parentNode.tagName == "H3") &amp;&amp;			tag.parentNode.parentNode &amp;&amp; (tag.parentNode.parentNode.tagName == "LI") &amp;&amp;			tag.parentNode.parentNode.parentNode &amp;&amp; (tag.parentNode.parentNode.parentNode.tagName == "UL"))		{			if (searchshield.FilterUrl(tag.href, this.filter_urls))				return false;							return tag.href;		}	}		return false;};///////////////    EARTHLINK SEARCH ENGINE    //////////////////////////////    AOL SEARCH ENGINE    ///////////////searchshield.AOLSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);		this.addImageStyle = {		display: "inline"	};	this.addAnchorStyle = {		display: null	};	this.updateImageStyle = {		verticalAlign: null,		display: "inline"	};};searchshield.AOLSearchEngine.prototype = new searchshield.SearchEngine();searchshield.AOLSearchEngine.prototype.constructor = searchshield.AOLSearchEngine;searchshield.AOLSearchEngine.prototype.name = "aol";searchshield.AOLSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain = uri.host;	//path may be 'aol/search' or 'search'	var pathArray = uri.path.split("/");	var aol = pathArray[0];	// re stitch the uri path and query elements	// to use existing logic	var path = (undefined == pathArray[1]) ? pathArray[0] : pathArray[1];		path += uri.delimiter + uri.query;	if (/search\.aol\.com/.test(domain))	{		if ((aol == "aol") &amp;&amp;			(path.indexOf("search?") == 0))		{			return true;		}	}		return false;};searchshield.AOLSearchEngine.prototype.includeLink = function(tag){	if (searchshield.DoesURLContain(tag.href, this.search.uri.host))		return false;		// sponsored links - google	if ((tag.className) &amp;&amp; (tag.className.indexOf("slLink topAnchor") != -1))	{	//parse for embedded href		if (tag.href.indexOf("/aclk?sa=") == -1)			return false;		var adurl = tag.href.indexOf("&amp;adurl=http");		// if an adurl the destination href can be acquired from the onclick handler		if (adurl != -1)		{			var destUrl;			var clickHandler = tag.getAttribute('onclick');			if (clickHandler != null)			{				// the destination href is the 2nd parameter (zero-based array)				destUrl = searchshield.getClickHandlerParams(clickHandler)[1];				if (destUrl != null)				{					destUrl = searchshield.removeHtmlTags(destUrl.replace(/'/g,''));					return searchshield.checkUrl(destUrl);				}			}		}		return false;	}	if (tag.className == "find")		return tag.href;			return false;};searchshield.AOLSearchEngine.prototype.insertNodes = function(node, doc){	var element = node.element;	var score = node.score;	if (element &amp;&amp; element.className &amp;&amp; element.className.indexOf("slLink") != -1)	{	//sponsored links only		// for alt image		if (score == searchshield.SCORE_SS_VERISIGN)			return [element.nextSibling, element.parentNode];		// for verdict image		var cN = element.childNodes;		var cnLen = cN.length;		for (var i=0; i &lt; cnLen; i++)		{			if ((cN[i].nodeType == 1) &amp;&amp; 				(cN[i].nodeName == 'SPAN') &amp;&amp; 				((cN[i].className == 'title') || (cN[i].className == 'durl')))				return [cN[i].nextSibling, cN[i].parentNode];		}	}	var parent = searchshield.SearchEngine.prototype.insertNodes;	return parent.call(this, node, doc);};///////////////    AOL SEARCH ENGINE    //////////////////////////////    ASK SEARCH ENGINE    ///////////////searchshield.AskSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);};searchshield.AskSearchEngine.prototype = new searchshield.SearchEngine();searchshield.AskSearchEngine.prototype.constructor = searchshield.AskSearchEngine;searchshield.AskSearchEngine.prototype.name = "ask";searchshield.AskSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	// re stitch the uri path and query elements	// to use existing logic	var path = uri.path + uri.delimiter + uri.query;		if ("www.ask.com" == domain)	{		if (path.indexOf("web?") == 0)			return true;	}	return false;};searchshield.AskSearchEngine.prototype.includeLink = function(tag){	var outHref	= "";	var findStr	= "";	if (searchshield.DoesURLContain(tag.href, this.search.uri.host))		return false;		if ((tag.className) &amp;&amp; (tag.className.indexOf("nu") != -1) &amp;&amp; (tag.className.indexOf("info") == -1)) 	{		// exclude green links		if ((tag.firstChild) &amp;&amp;			(tag.firstChild.className) &amp;&amp;			(tag.firstChild.className.indexOf('attrib') == 0))		{			return false;		}		// ads link to google with class nu		findStr = "www.google.com";		if (tag.href.indexOf(findStr) != 0)		{			if (tag.href.indexOf(findStr + "/aclk?sa=") != -1)			{					findStr = "&amp;adurl=http";				var pos = tag.href.indexOf(findStr);				if (pos != -1)				{					pos += 7;					outHref = tag.href.substring(pos);					outHref = unescape(outHref);					if (searchshield.FilterUrl(outHref, this.filter_urls))							return false;					return outHref;				}			}		}		else		{	// ad not to google just use href			outHref = tag.href;			if (searchshield.FilterUrl(outHref, this.filter_urls))				return false;			return outHref;		}	}	// primary results have class containing title or L2 ( Wikipedia links )	else if ((tag.className) &amp;&amp; ((tag.className.indexOf("title") != -1) || (tag.className.toLowerCase() == "l2")))	{		outHref = tag.href;		if (searchshield.FilterUrl(outHref, this.filter_urls))			return false;		return outHref;	}		return false;};///////////////    ASK SEARCH ENGINE    //////////////////////////////    ALTAVISTA SEARCH ENGINE    ///////////////searchshield.AltaVistaSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);};searchshield.AltaVistaSearchEngine.prototype = new searchshield.SearchEngine();searchshield.AltaVistaSearchEngine.prototype.constructor = searchshield.AltaVistaSearchEngine;searchshield.AltaVistaSearchEngine.prototype.name = "altavista";searchshield.AltaVistaSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;		// re stitch the uri path and query elements	// to use existing logic	var path = uri.path + uri.delimiter + uri.query;	// www.atlavista.com ---&gt; now http://us.yhs4.search.yahoo.com/yhs/search?fr=altavista&amp;fr=altavista&amp;itag=ody&amp;q=warez&amp;kgs=1&amp;kls=0	// xx.altavista.com where xx is a country code	var hostMatch = false;	if ("www.altavista.com" == domain)	{		hostMatch = true;	}	else	{		// xx.altavista.com		var pDest = domain.indexOf(".altavista.com");		if ((pDest != -1 ) &amp;&amp; ((domain.length - pDest) == 14))		{			hostMatch = true;		}		else		{			// a reference to altavista must be present in yahoo search url			var pRef = (uri.qsArray.fr &amp;&amp; uri.qsArray.fr == 'altavista');			pDest = domain.indexOf("search.yahoo.com");			if (pDest != -1 &amp;&amp; pRef)				hostMatch = true;		}	}	if (hostMatch)	{		//path must start with web/results?		if ((path.indexOf("yhs/search?") == 0)	||			(path.indexOf("search;") == 0)		||			(path.indexOf("yhs/search;") == 0)	||			(path.indexOf("web/results?") == 0)||			(path.indexOf("fr=altavista") != -1))		{			return true;		}	}		return false;};searchshield.AltaVistaSearchEngine.prototype.includeLink = function(tag){	var outHref	= "";	var findStr	= "";	// initial checks	if ((!tag.href)	|| 		(tag.href.charAt(0) == '#') ||		(tag.href.indexOf("javascript:") == 0))	{		return false;	}			if (searchshield.DoesURLContain(tag.href, this.search.uri.host))		return false;		var spnsdLinks = searchshield.getParentNodeByTagName("DIV", tag, "className");	if ((spnsdLinks) &amp;&amp;		(spnsdLinks.className.indexOf('ads') &gt; -1))	// sponsored links	{		if (!tag.parentNode)			return false;		// parse ads for em tag		var baseNode;		if (spnsdLinks.className.indexOf('ads horiz') &gt; -1)	// horizontal ads sections			baseNode = tag.parentNode.parentNode;		else			baseNode = tag.parentNode;				if (!baseNode || !baseNode.lastChild || baseNode.lastChild.tagName != 'EM')			return false;		var outHref = searchshield.removeHtmlTags(baseNode.lastChild.innerHTML);		return outHref;	}		if ((tag.className == "spt") || 		(tag.className == "res") ||		(tag.className == "yschttl spt"))	{		findStr = "/**";		var pos = tag.href.indexOf(findStr);		if (pos != -1)		{			pos += 3;			outHref = tag.href.substring(pos);			outHref = unescape(outHref);						// no results for overture.com &amp; no yahoo domains			chkHref = outHref.toLowerCase();			if (chkHref.indexOf("overture.") != -1)				return false;			// split the url based on '/'			var parts = outHref.split('/');			// only need a domain			if ((parts != null) &amp;&amp; (parts[2] != null))			{				var domain = parts[2];				if ((domain.indexOf("rdrjp.yahoo.com") != -1)	||					(domain.indexOf("rdrkrs.yahoo.com") != -1)	||					(domain.indexOf("rdrtpe.yahoo.com") != -1)	||					(domain.indexOf("rdrird.yahoo.com") != -1)	||					(domain.indexOf("rdrhk2.yahoo.com") != -1)	||					(domain.indexOf("rdrsg1.yahoo.com") != -1)	||					(domain.indexOf("rdrin2.yahoo.com") != -1)	||					(domain.indexOf("rdre1.yahoo.com") != -1)	||					(domain.indexOf("rdrw1.yahoo.com") != -1)		)				{					return false				}			}			return outHref;		}		else		{			return tag.href;		}	}		return false;};searchshield.AltaVistaSearchEngine.prototype.getImgElement = function (element){	while (element != null) 	{		element = element.nextSibling;		if (element != null)		{			if ((element.id == null) || (element.id.indexOf("LXPLSS_") == -1))			{   // not our id but hit another anchor no verdict				if (element.tagName == "A")				{					element = null;					break;				}			}			else if (element.tagName == "A")				break;		}	}			var rtnElem = !!element ? element.firstChild : element;	return rtnElem;};///////////////    ALTAVISTA SEARCH ENGINE    //////////////////////////////    YANDEX SEARCH ENGINE    ///////////////searchshield.YandexSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);};searchshield.YandexSearchEngine.prototype = new searchshield.SearchEngine();searchshield.YandexSearchEngine.prototype.constructor = searchshield.YandexSearchEngine;searchshield.YandexSearchEngine.prototype.name = "yandex";searchshield.YandexSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	// re stitch the uri path and query elements	// to use existing logic	var path = uri.path + uri.delimiter + uri.query;	if ((domain.match(/yandex\.com|by|kz|ru|ua/i)) &amp;&amp;		(path.indexOf("yandsearch?") == 0))	{		return true;	}		return false;};searchshield.YandexSearchEngine.prototype.includeLink = function(tag){	if (tag.href.indexOf("/search") != -1)	{		return false;	}		if (searchshield.DoesURLContain(tag.href, this.search.uri.host)	||		searchshield.DoesURLContain(tag.href, ".yandex.net")		||		searchshield.DoesURLContain(tag.href, ".yandex.ru")			||		searchshield.DoesURLContain(tag.href, "moikrug.ru")			||		searchshield.DoesURLContain(tag.href, "ya.ru")				||		searchshield.DoesURLContain(tag.href, ".yandex.com")		||		searchshield.DoesURLContain(tag.href, "yandex.st"))	{		return false;	}			parentNode = tag.parentNode;	if ((tag.parentNode)			&amp;&amp; 		(tag.parentNode.parentNode)	&amp;&amp;		(tag.parentNode.parentNode.className.toLowerCase() == "moreinfo"))	{		return false;	}		return tag.href;};searchshield.YandexSearchEngine.prototype.getImgElement = function (element){	while (element != null) 	{		element = element.nextSibling;		if (element != null)		{			if ((element.id == null) || (element.id.indexOf("LXPLSS_") == -1))			{   // not our id but hit another anchor no verdict				if (element.tagName == "A")				{					element = null;					break;				}			}			else if (element.tagName == "A")				break;		}	}			var rtnElem = !!element ? element.firstChild : element;	return rtnElem;};///////////////    YANDEX SEARCH ENGINE    //////////////////////////////    SEZNAM SEARCH ENGINE    ///////////////searchshield.SeznamSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.elementAttribute = {		width: "18",		height: "18"	};	this.updateImageStyle = {		width: "18px",		height: "18px"	};};searchshield.SeznamSearchEngine.prototype = new searchshield.SearchEngine();searchshield.SeznamSearchEngine.prototype.constructor = searchshield.SeznamSearchEngine;searchshield.SeznamSearchEngine.prototype.name = "seznam";searchshield.SeznamSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	// re stitch the uri path and query elements	// to use existing logic	var path = uri.path + uri.delimiter + uri.query;	if ((domain.indexOf("search.seznam.cz") &gt; -1)	&amp;&amp;		((path.indexOf("?") == 0) || (path.indexOf("svet") == 0)))	{		return true;	}		return false;};searchshield.SeznamSearchEngine.prototype.includeLink = function(tag){	if (searchshield.DoesURLContain(tag.href, this.search.uri.host))		return false;		var parentNode = tag.parentNode;	if (parentNode)	{		var grandParentNode = tag.parentNode.parentNode;		if ((parentNode.tagName == "SPAN") &amp;&amp; 			((parentNode.className.toLowerCase() == "sklik-url") ||			(parentNode.className.toLowerCase() == "sklik-title")))		{	// locate the real url and unencode it			var urlPos = tag.href.indexOf("&amp;url=http");			if (urlPos != -1)			{				urlPos += 5;					outHref = tag.href.substring(urlPos);				outHref = unescape(outHref);				return outHref;			}		}		else if (grandParentNode) 		{			var greatGrandParentNode = tag.parentNode.parentNode.parentNode;			if ((grandParentNode.tagName == "DIV") &amp;&amp;				((grandParentNode.className.toLowerCase() == "text") || (grandParentNode.className.toLowerCase() == "hlasky otz")))			{	// standard link				return tag.href;			}			else if (greatGrandParentNode &amp;&amp; greatGrandParentNode.tagName == "DIV" &amp;&amp;					(greatGrandParentNode.className.toLowerCase() == "hotlinks")) 			{	// hint link				return tag.href;			}					}	}		return false;};///////////////    SEZNAM SEARCH ENGINE    //////////////////////////////    WEBHLEDANI SEARCH ENGINE    ///////////////searchshield.WebhledaniSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);};searchshield.WebhledaniSearchEngine.prototype = new searchshield.SearchEngine();searchshield.WebhledaniSearchEngine.prototype.constructor = searchshield.WebhledaniSearchEngine;searchshield.WebhledaniSearchEngine.prototype.name = "webhledani";searchshield.WebhledaniSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	// re stitch the uri path and query elements	// to use existing logic	var path = uri.path + uri.delimiter + uri.query;	if ((domain.indexOf("webhledani.cz") &gt; -1)	&amp;&amp;		(path.indexOf("results.aspx?") == 0))	{		return true;	}		return false;};searchshield.WebhledaniSearchEngine.prototype.includeLink = function(tag){	if (tag.href.indexOf("/redir.aspx?") != -1)	{		var ancestorNode;		// sponsored link		if ((ancestorNode = searchshield.getParentNodeByClassName("results sponsored", tag, 3)) != null)		{			if ((ancestorNode = searchshield.getParentNodeByClassName("res1", tag, 2)) != null)			{								var spanSibling = ancestorNode.nextSibling;				while (spanSibling.nodeName != 'SPAN')				{					spanSibling = spanSibling.nextSibling;					if (spanSibling.nodeName == 'DIV' || spanSibling.className == 'res1')					{						spanSibling = null;						break;					}				}				if (spanSibling)					 outHref = spanSibling.innerHTML;			}			if (outHref)				return searchshield.checkUrl(searchshield.removeHtmlTags(outHref)); 		}			if ((ancestorNode = searchshield.getParentNodeByClassName("right-sponsored", tag, 3)) != null)		{			var outHref;			if ((ancestorNode = searchshield.getParentNodeByClassName("res3", tag, 2)) != null)			{								var spanSibling = ancestorNode.nextSibling;				while (spanSibling.nodeName != 'SPAN')				{					spanSibling = spanSibling.nextSibling;					if (spanSibling.nodeName == 'DIV' || spanSibling.className == 'res3')					{						spanSibling = null;						break;					}				}				if (spanSibling)					 outHref = spanSibling.innerHTML;			}			if (outHref)				return searchshield.checkUrl(searchshield.removeHtmlTags(outHref)); 		}		// result link		if (searchshield.getParentNodeByClassName("results", tag, 3) != null)		{			if ((ancestorNode = searchshield.getParentNodeByClassName("res2", tag, 2)) != null)			{				if (tag.parentNode &amp;&amp; (tag.parentNode.nodeName != 'P'))					return getLinkHref(ancestorNode);			}		}	}	return false;	function getLinkHref(aNode)	{		var spanElems = aNode.getElementsByTagName('span');		for (var i=0; i &lt; spanElems.length; i++)		{			if (spanElems[i].className != 'site')				continue;			var outAnchor = spanElems[i].getElementsByTagName('a')[0];			if (outAnchor == null)				outAnchor = spanElems[i];			return searchshield.checkUrl(searchshield.removeHtmlTags(outAnchor.innerHTML));		}		return false;	}};///////////////    WEBHLEDANI SEARCH ENGINE    //////////////////////////////    EBAY SEARCH ENGINE    ///////////////searchshield.eBaySearchEngine = function(search){	searchshield.SearchEngine.call(this, search);};searchshield.eBaySearchEngine.prototype = new searchshield.SearchEngine();searchshield.eBaySearchEngine.prototype.constructor = searchshield.eBaySearchEngine;searchshield.eBaySearchEngine.prototype.name = "ebay";searchshield.eBaySearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	// shop.ebay.xx	// shop.xxxx.ebay.xx	like shop.benl.ebay.be	// search.auction.co.kr 	var path = uri.path + uri.delimiter + uri.query;		if ((domain.indexOf("shop.ebay") &gt; -1)	||		(domain.indexOf("shop.benl.ebay") &gt; -1))	{		if ((path.indexOf("?_from=") == 0)	||			(path.indexOf("i.html") &gt; -1))		{			return true;		}	}		// ebay.se	if ((domain.indexOf("search.eim.ebay") &gt; -1) &amp;&amp;		((path.indexOf("?kw=") &gt; -1) || (path.indexOf("?ev=") &gt; -1)))	{		return true;	}		if ((domain.indexOf("search.auction.co.kr") &gt; -1 ) &amp;&amp;		((path.indexOf("?keyword=") &gt; -1)))	{		// would normally set these properties in the constructor or in an		// overriding function but they're only required for this domain		 		// links are in iframes		this.processFrames = true;				// must downsize verdicts for proper display		this.elementAttribute = {			width: "16",			height: "16"		};		this.updateImageStyle = {			width: "16px",			height: "16px"		};				return true;	}	// latin america ebay	// listado.mercadolibre.com.xx or listado.mercadolibre.co.xx	//   or listado.mercadolibre.xx or	//   category.mercadolibre.com.xx or listado.mercadolibre.xx/category	// lista.mercadolivre.com.xx or lista.mercadolivre.com.xx/category	if ((domain.indexOf("www.") == -1) &amp;&amp;		((domain.indexOf(".mercadolibre.") &gt; -1 ) ||		 (domain.indexOf(".mercadolivre.") &gt; -1 ))) 	{		return true;	}	return false;};searchshield.eBaySearchEngine.prototype.includeLink = function(tag){	var parentNode = null;	var outHref = false;		if (searchshield.DoesURLContain(tag.href, this.search.uri.host))		return false;		if ( tag.href.indexOf(".ebayrtm.com/clk?") &gt; -1 )	{		if ( tag.title == null || tag.title.length &lt; 0 )			return false;							outHref = searchshield.removeHtmlTags(tag.title);		if (outHref.indexOf(" ") == -1)		{	// no spaces			if (outHref.indexOf(".") &gt; -1)			{	// at least one dot 				if (outHref.indexOf(this.search.uri.host) == -1)				{	// no host					if (outHref.toLowerCase().indexOf("ebay.com") == -1)					{						return outHref;					}				}			}		}				}	// ebay.se - Google ads	parentNode = tag.parentNode;	if (parentNode &amp;&amp; (parentNode.className.toLowerCase() == "google-ad-link"))	{		if (tag.href.indexOf("/aclk?sa=") != -1)		{				findStr = "&amp;adurl=http";			var urlPos	= tag.href.indexOf(findStr);			if (urlPos != -1)			{				urlPos += 7; // puts it on the http				outHref = tag.href.substring(urlPos);								// extract any fragment text, shouldn't be unescaped				var pound = outHref.indexOf("#");					if (pound != -1)				{					var fragment = outHref.substring(pound);					outHref = outHref.substring(0, pound);					outHref = unescape(outHref);					outHref += fragment;					if (searchshield.FilterUrl(outHref, this.filter_urls))						return false;					return outHref;				}				outHref = unescape(outHref);				if (outHref.indexOf("?") == -1)				{					var ampPos = outHref.indexOf("&amp;");					if (ampPos != -1)						outHref = outHref.substring(0, ampPos);				}								if (searchshield.FilterUrl(outHref, this.filter_urls))					return false;				return outHref;			}		}	}		// auction.co.kr	parentNode = tag.parentNode;	if (parentNode &amp;&amp; (parentNode.className.toLowerCase() == "link"))	{		if (tag.href.indexOf("adcr.naver.com") &gt; -1)		{			outHref = tag.innerText;			if ((outHref == null) || (outHref.length &lt; 0))				return false;							return outHref;		}	}		// latin america ebay	if ( tag.href.toLowerCase().indexOf("clickcounter?") &gt; -1 )	{		var spanElements = tag.getElementsByTagName("span");		if ((spanElements != null)				&amp;&amp; 			(spanElements.length &gt; 0))		{			if ( spanElements[0].className.toLowerCase() == "mclics-url" )			{				outHref = spanElements[0].innerHTML;				if ( outHref == null || outHref.length &lt; 0 )					return false;				outHref = searchshield.removeHtmlTags(outHref);				if (outHref.indexOf(" ") == -1)				{	// no spaces					if (outHref.indexOf(".") &gt; -1)					{	// at least one dot 						if ((outHref.toLowerCase().indexOf("mercadolibre") == -1) &amp;&amp; 							(outHref.toLowerCase().indexOf("mercadolivre") == -1)) 						{							return outHref;						}					}				}			}		}	}		return false;};///////////////    EBAY SEARCH ENGINE    //////////////////////////////    DIGG SEARCH ENGINE    ///////////////searchshield.DiggSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.new_links	= false;};searchshield.DiggSearchEngine.prototype = new searchshield.SearchEngine();searchshield.DiggSearchEngine.prototype.constructor = searchshield.DiggSearchEngine;searchshield.DiggSearchEngine.prototype.name = "digg";searchshield.DiggSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	// re stitch the uri path and query elements	// to use existing logic	var path = uri.path + uri.delimiter + uri.query;		if ((domain.indexOf("digg.com") &gt; -1)	&amp;&amp;		(path.indexOf("/ad") == -1))	{		return true;	}		return false;};searchshield.DiggSearchEngine.prototype.includeLink = function(tag){	var outHref = false;	var findStr = "";		if ((tag.parentNode) &amp;&amp;		(tag.parentNode.className.toLowerCase() == "digg-count"))	{		return false;	}		if (searchshield.DoesURLContain(tag.href, this.search.uri.host))	{		if (tag.className &amp;&amp; tag.className.indexOf('source') != -1)		{			findStr = "/search?q=site:";			var urlPos = tag.href.indexOf(findStr);			if (urlPos != -1)			{				urlPos += 15;				outHref = tag.href.substring(urlPos);				return outHref;			}		}	}		return false;};searchshield.DiggSearchEngine.prototype.addImage = function(node, image, hidden){	// remove style that is set when alt image is applied	this.addAnchorStyle = {		background: "none"	};			var parent = searchshield.SearchEngine.prototype.addImage;	return parent.call(this, node, image, hidden);};///////////////    DIGG SEARCH ENGINE    //////////////////////////////    SLASHDOT SEARCH ENGINE    ///////////////searchshield.SlashdotSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.showCleanVerdicts = false;	this.new_links = false;	this.type = 'inline';};searchshield.SlashdotSearchEngine.prototype = new searchshield.SearchEngine();searchshield.SlashdotSearchEngine.prototype.constructor = searchshield.SlashdotSearchEngine;searchshield.SlashdotSearchEngine.prototype.name = "slashdot";searchshield.SlashdotSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	// re stitch the uri path and query elements	// to use existing logic	var path = uri.path + uri.delimiter + uri.query;		if (domain.indexOf("slashdot.org") != -1)	{		return true;	}		return false;};searchshield.SlashdotSearchEngine.prototype.includeLink = function(tag){	if (searchshield.DoesURLContain(tag.href, this.search.uri.host))		return false;			if ( tag.href.indexOf("mailto:") != -1 )		return false;			if ( tag.href.indexOf("slashdot.org") != -1 )		return false;			if (tag.parentNode &amp;&amp; (tag.parentNode.tagName == "DIV"))	{		if (tag.parentNode.id.indexOf("text-") != -1)		{			return tag.href;		}	}	else if ( tag.parentNode &amp;&amp; tag.parentNode.parentNode &amp;&amp; tag.parentNode.parentNode.tagName == "DIV" )	{		if ( tag.parentNode.parentNode.id.indexOf("text-") != -1 )		{			return tag.href;		}	}	return false;};searchshield.SlashdotSearchEngine.prototype.addImage = function(node, image, hidden){	var doc			= this.search.doc;		this.init_inline_ratings(doc);	this.show_inline_ratings(doc, node, image);};///////////////    SLASHDOT SEARCH ENGINE    //////////////////////////////    TWITTER SEARCH ENGINE    ///////////////searchshield.TwitterSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.showCleanVerdicts = false;	this.new_links = false;	this.type = 'inline';};searchshield.TwitterSearchEngine.prototype = new searchshield.SearchEngine();searchshield.TwitterSearchEngine.prototype.constructor = searchshield.TwitterSearchEngine;searchshield.TwitterSearchEngine.prototype.name = "twitter";searchshield.TwitterSearchEngine.prototype.twitter_filter_urls = ["twitpic.com", "twitterfeed.com", "twitter.peoplebrowsr.com"];searchshield.TwitterSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	if (domain.indexOf("twitter.com") != -1)	{		return true;	}		return false;};searchshield.TwitterSearchEngine.prototype.includeLink = function(tag){	if (searchshield.DoesURLContain(tag.href, this.search.uri.host))		return false;			if (tag.className.length &lt; 1)		return false;		// no verdicts on source of twit for example "from TweetDeck"	if ((tag.className.indexOf("tweet-url web") == 0) &amp;&amp;		(tag.className.indexOf("url") == 0 ))	{		return false;	}			if (searchshield.FilterUrl(tag.href, this.twitter_filter_urls))	{		return false;	}		return tag.href;};searchshield.TwitterSearchEngine.prototype.addImage = function(node, image, hidden){	var doc			= this.search.doc;			this.init_inline_ratings(doc);	this.show_inline_ratings(doc, node, image);};///////////////    TWITTER SEARCH ENGINE    //////////////////////////////    GMAIL SEARCH ENGINE    ///////////////searchshield.GMailSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.processFrames = true;	this.showCleanVerdicts		= false;	this.type = 'inline';};searchshield.GMailSearchEngine.prototype = new searchshield.SearchEngine();searchshield.GMailSearchEngine.prototype.constructor = searchshield.GMailSearchEngine;searchshield.GMailSearchEngine.prototype.name = "gmail";	// the name by which the search engine is known (always lowercase)searchshield.GMailSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var domain		= uri.host;		// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;	if ((domain.indexOf("mail.google.") != -1) || 		(domain.indexOf("gmail.") != -1))	{		return true;	}	return false;};searchshield.GMailSearchEngine.prototype.includeLink = function(tag){	if (searchshield.DoesURLContain(tag.href, this.search.uri.host))		return false;	// don't mark anything but http://	if (tag.href.indexOf("mailto") == 0)		return false;	var parentDiv = searchshield.getParentNodeByTagName("DIV", tag, "className");	if ((parentDiv) &amp;&amp;		((parentDiv.className == "ii gt") || // mail message body		 (parentDiv.className == "mv") ||	// top sponsored links		 (parentDiv.className == "vb") ||	// right sponsored links		 (parentDiv.className == "im") ||	// inside quotes		 (parentDiv.className == "gmail_quote") ||	// quote		 (parentDiv.className == "msg")	// basic html mode		 ))	// right ads	{		// parse for any ads		var newHref = this.parseAdUrl(tag.href);		return newHref;	}		return false;};searchshield.GMailSearchEngine.prototype.addImage = function(node, image, hidden){	var doc			= this.search.doc;			this.init_inline_ratings(doc);	this.show_inline_ratings(doc, node, image);};searchshield.GMailSearchEngine.prototype.parseAdUrl = function(href){	if (!href)		return href;	// check for google ad	var regex = "^http(s)?\:\/\/([a-zA-Z0-9]+)\.googlesyndication\.com.+\&amp;adurl\=(.+)";	var re = new RegExp(regex);	var matches = href.match(re);	if (matches &amp;&amp; (matches.length &gt;= 4))	{		// else we want the fourth value		var match = matches[3];		if (match &amp;&amp; (match.length &gt; 0))			return match	}	return href;};///////////////    GMAIL SEARCH ENGINE    //////////////////////////////    FACEBOOK SEARCH ENGINE    ///////////////searchshield.FacebookSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.showCleanVerdicts = false;	this.type = 'inline';};searchshield.FacebookSearchEngine.prototype = new searchshield.SearchEngine();searchshield.FacebookSearchEngine.prototype.constructor = searchshield.FacebookSearchEngine;searchshield.FacebookSearchEngine.prototype.name = "facebook";	// the name by which the search engine is known (always lowercase)searchshield.FacebookSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	if (uri.host.indexOf("www.facebook.com") != -1) 		return true;	return false;};searchshield.FacebookSearchEngine.prototype.includeLink = function(tag){	if (!tag.href || (tag.href.indexOf('facebook.com') &gt; -1) || (tag.href.indexOf('ak.fbcdn.net') &gt; -1))		return false;		return tag.href};searchshield.FacebookSearchEngine.prototype.addImage = function(node, image, hidden){	var doc			= this.search.doc;			this.init_inline_ratings(doc);	this.show_inline_ratings(doc, node, image);};///////////////    FACEBOOK SEARCH ENGINE    //////////////////////////////    MYSPACE SEARCH ENGINE    ///////////////searchshield.MySpaceSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.showCleanVerdicts = false;	this.type = 'inline';};searchshield.MySpaceSearchEngine.prototype = new searchshield.SearchEngine();searchshield.MySpaceSearchEngine.prototype.constructor = searchshield.MySpaceSearchEngine;searchshield.MySpaceSearchEngine.prototype.name = "myspace";	// the name by which the search engine is known (always lowercase)searchshield.MySpaceSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	if (uri.host.indexOf("www.myspace.com") != -1) 		return true;	return false;};searchshield.MySpaceSearchEngine.prototype.includeLink = function(tag){	if (searchshield.DoesURLContain(tag.href, this.search.uri.host) )	{		return false;	}		return tag.href};searchshield.MySpaceSearchEngine.prototype.addImage = function(node, image, hidden){	var doc			= this.search.doc;			this.init_inline_ratings(doc);	this.show_inline_ratings(doc, node, image);};///////////////    MYSPACE SEARCH ENGINE    //////////////////////////////    AVG TOOLBAR REPORTING    ///////////////var avgreport = {	BLOCK_SEVERITY: 3,	scanResult: function (doc, url, foundUrl, ip) {		// report scan end only if surf enabled		if ('1' != searchshield.avgCallFunc(doc, 'GetSurfEnabled'))			return;				// for now native is handling the interstitial			var results = searchshield.avgCallFunc(doc, 'MalsiteCheck', url);		if ( results == null )			return;				var parts = results.split('::');				// need at least severity		if (parts == null)			return;		if (!ip)			ip = "";					// use a block severity if foundUrl is given		var severity = !!foundUrl ? avgreport.BLOCK_SEVERITY : parseInt(parts[0], 10);		var category = "";		var threat	 = "";		// fill in the category and threat if something was found		if (severity &gt; 0)		{			category = parts[2];			threat	 = parts[4];		}//		else//			return;				var scan_result = searchshield.avgCallFunc(doc, 'ReportScanResult', url, url, threat, category, ip, severity);		var scan_end = avgreport.scanEnd(doc, url);				return (scan_result &amp;&amp; scan_end);	},	scanEnd: function (doc, url) {		return searchshield.avgCallFunc(doc, 'ReportScanEnd', url);	},	GetInterstitialIP: function (interstitial) {		// simple regex to pull the IP address		var regex = /(([1-9][0-9]{0,2})|0)\.(([1-9][0-9]{0,2})|0)\.(([1-9][0-9]{0,2})|0)\.(([1-9][0-9]{0,2})|0)/;		var match = regex.exec(interstitial);		if (!match)			return '';		return match[0];	}}///////////////    AVG TOOLBAR REPORTING    //////////////////////////////    FLYOVERS    ///////////////var avglsflyover = {	count: 0,	poppedUp: false,	poppedElement: null,	reset: function () {		avglsflyover.count = 0;		avglsflyover.poppedUp = false;		avglsflyover.poppedElement = null;	},	popup: function (event, hash, search, flyover) {		if (!event)			event = window.event;		var div = document.getElementById("XPLSS_Flyover");		if (div == null)			return;		// establish target element and get its containing document object		// in case verdict is inside a frame		var eventTarget = event.srcElement;		var frameDoc = eventTarget.ownerDocument;		// if the element is the clock, don't pop over it		if ((eventTarget.src != null) &amp;&amp; (eventTarget.src.indexOf("clock.gif") != -1))			return;				// save the element we popped over		avglsflyover.poppedElement = eventTarget;		// if no flyover get it		if ((flyover == null) || (flyover == ""))		{			flyover = searchshield.avgCallFunc(frameDoc, 'BuildFlyover', hash);			if (!flyover)				return;			// cleanup flyover, replace any new lines			flyover = flyover.replace(/\r/g, "");			flyover = flyover.replace(/\n/g, "");			// escape any single quotes			flyover = flyover.replace(/'/g, "&amp;#39;");		}		// set the html in the layer		div.innerHTML = flyover;		// there is an unwanted text node that causes vertical misalignment of flyover		if (div.firstChild.nodeType == 3)			div.removeChild(div.firstChild);				avglsflyover.poppedUp = true;		// reset display count		avglsflyover.count = 0;		avglsflyover.position();	},	hide: function (event) {		var frameDoc = document || top.document;		var div = frameDoc.getElementById("XPLSS_Flyover");		if ((div == null) || (div.style == null) || (div.style.visibility == "hidden"))			return;		var trans_div = frameDoc.getElementById("XPLSS_Trans");		if ((trans_div == null) || (trans_div.style == null) || (trans_div.style.visibility == "hidden"))			return;		// scroll and keydown events will pass a null event by design		// toElement will be null when mousing out of frameelement containing a verdict		if (event == null || event.toElement == null)		{			return;		}		if (trans_div.contains(event.toElement) || div.contains(event.toElement))			return;		// if the toElement is a cooresponding alt image then don't hide		// use try/catch because toElement will be null when mousing out of frame		try {			if (!!event.toElement.id &amp;&amp; !!event.srcElement.id)			{				if (event.toElement.id.indexOf(event.srcElement.id.substring(0,event.srcElement.id.length-2)) == 0)					return;						if (event.srcElement.id == 'XPLSS_Trans' &amp;&amp; /XPLSS_\d+VU\d/.test(event.toElement.id))					return;			}		}		catch(err){}		// hide and move somewhere off screen (negative offsets)		div.style.visibility = "hidden";		div.style.left = "-2100px";		div.style.top  = "-2100px";		trans_div.style.visibility = "hidden";		trans_div.style.left = "-2100px";		trans_div.style.top  = "-2100px";		return true;	},	position: function () {		if (!avglsflyover.poppedUp || (avglsflyover.poppedElement == null))			return;		var flyover = document.getElementById("XPLSS_Flyover");		if (flyover == null)			return;		// relative position of flyover in relation to icon		var locateX = 0;  // 0=left, 1=right		var locateY = 0;  // 0=above, 1=below, 2=beside icon			// get window sizes		var winSize		= searchshield.viewPortSize();		var windowX		= winSize[0];		var windowY		= winSize[1];		// get the exact size of the flyover		var flyoverSize	 = searchshield.elementSize(flyover);		var flyoverX	 = flyoverSize[0];		var flyoverY	 = flyoverSize[1];		var verdictWidth = 0;		if (avglsflyover.poppedElement &amp;&amp; avglsflyover.poppedElement.width)			verdictWidth = avglsflyover.poppedElement.width;				// get the bounding rect for image(s)		var imgRect = searchshield.GetFullBoundingRect(avglsflyover.poppedElement);		// half width/height of element bounding rect		var halfX = (imgRect.right - imgRect.left) / 2;		var halfY = (imgRect.bottom- imgRect.top) / 2;		// element the mouse is over, get the center position		var posX = searchshield.offsetLeft(avglsflyover.poppedElement) + halfX;		var posY = searchshield.offsetTop(avglsflyover.poppedElement) + halfY;		// if a verdict is inside a frame must get offsets for the frame element		var docFrames = document.frames;		if (docFrames)		{			for (var i=0; i &lt; docFrames.length; i++)			{				try {					var frameElem = docFrames[i].frameElement;					if (frameElem.contentWindow.document.getElementById(avglsflyover.poppedElement.id))					{						posX += searchshield.offsetLeft(frameElem);						posY += searchshield.offsetTop(frameElem);						break;					}				}				catch(frmErr){}			}		}		var transXOffset = 0;		if (imgRect.mid == undefined)			transXOffset = -1 * halfX;		else			transXOffset = ((imgRect.right + imgRect.left) / 2) - imgRect.mid;				// normalize pos to 0  -- get amount of scrolling in browser window		var scroll		 = searchshield.scrollSize();		var pageOffsetX	 = scroll[0];		var pageOffsetY	 = scroll[1];		posX -= pageOffsetX;		posY -= pageOffsetY;		// setup the offsets		var offsetX = posX;		var offsetY = posY;		// calc where to display on page		if ((windowX - posX) &gt; posX)		{			// right			offsetX += halfX;			locateX = 1;		}		else		{			//left			offsetX -= (flyoverX + halfX);		}		if ((windowY - posY) &gt; posY)		{			// below			if (posY &lt; (windowY/4))			{				offsetY -= halfY;				locateY = 1;			}			else			{				offsetY -= (flyoverY / 2);				locateY = 2;			}		}		else		{			// above			if ((windowY - posY) &lt; (windowY/4))			{				offsetY -= (flyoverY - halfY);			}			else			{				offsetY -= (flyoverY / 2);				locateY = 2;			}		}		// make sure we aren't off the screen		if (offsetY &lt; 0)			offsetY = 0;		if ((offsetY + flyoverY) &gt; windowY)			offsetY = windowY - flyoverY;		// add page offsets back		offsetX += pageOffsetX;		offsetY += pageOffsetY;		posX += pageOffsetX;		posY += pageOffsetY;		var paddedOffsetX = 0; //provide space between icon and flyover		var padX = 3;		if (locateX == 0)			paddedOffsetX = offsetX - padX;		else			paddedOffsetX = offsetX + padX;		// set where to put the flyover		flyover.style.top = offsetY + "px";		flyover.style.left = paddedOffsetX + "px";		// set where to put the transparent layer		var trans = document.getElementById("XPLSS_Trans");		if (trans != null)		{			var trans_left = 0;			var trans_top  = 0;			var trans_width= 0;			var trans_height = 0;			// transparent layer should overlap verdict image			if (locateX == 0)				trans_left = posX - flyoverX - halfX;  // left 			else				trans_left = posX - transXOffset - verdictWidth; // right			trans.style.left	= trans_left + "px";			trans.style.top		= offsetY + "px";			trans.style.width	= flyoverX + verdictWidth + "px";			trans.style.height	= flyoverY + "px";		}		avglsflyover.display();	},	display: function () {		avglsflyover.count++;		if (avglsflyover.count == 1)		{			var flyover = document.getElementById("XPLSS_Flyover");			if (flyover == null)				return;			// show the flyover, must use a little count to tell, crazy stuff			flyover.style.visibility = "visible";			flyover.onmouseout = function(){				avglsflyover.hide(event);			};			// show the transparent layer			var trans_div = document.getElementById("XPLSS_Trans");			if (trans_div == null)				return;			trans_div.style.visibility = "visible";			trans_div.onmouseout = function(){				avglsflyover.hide(event);			};			avglsflyover.poppedUp = false;		}	},	show: function () {		var div = document.getElementById("XPLSS_Flyover");		if (div == null)			return;		div.style.visibility = "visible";		var trans_div = document.getElementById("XPLSS_Trans");		if (trans_div == null)			return;		trans_div.style.visible = "visible";	}};var avglsinlineflyover = {	build: function (riskCategory, riskName, bgColor, borderColor) {		var html = '';		html += '&lt;div class="avgILFO_head"&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="avgILFO_content"&gt;';		html += '&lt;img src=linkscanner://LS_Logo_Results.gif /&gt;';		html += riskCategory + '';		html += riskName + '';		html += '&lt;/div&gt;&lt;div class="avgILFO_foot"&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;';		return html;	},	popup: function (event, flyover, nSeverity, blUrl) {		//set verdict info		var div = document.getElementById('XPLSS_InlineFlyover');		if (div == null)			return;				// blUrl is an object for a blacklisted short url		// when it is passed get the final url 		if (blUrl != undefined)		{			var finalUrl = searchshield.avgCallFunc(document, 'GetFinalUrl', blUrl.sUrl);			var riskUrl = blUrl.sUrl;			if ((finalUrl) &amp;&amp; (searchshield.FilterUrl(finalUrl, xplSearch.engine.shortened_urls)))				finalUrl = avglsinlineflyover.getUrlFromQueryString(finalUrl);			var riskName = blUrl.riskNameLabel + finalUrl;			flyover = avglsinlineflyover.build(blUrl.riskCategory, riskName, blUrl.bgColor, blUrl.borderColor);		}		div.innerHTML = flyover;		div.style.width = "auto";  //reset width		div.style.position = "absolute";		if (searchshield.quirksMode || searchshield.docMode &lt;= 7)		{			var className = xplSearch.engine.inline.color.classname[nSeverity];			var imgBase = "linkscanner://" + className + "_inline_border_";			var divWidth = searchshield.elementSize(div)[0];			//round up to nearest 10 to avoid intentional wrapping in div			var flyoverWidth = divWidth + (10 - Math.ceil(10*((divWidth/10) - Math.floor(divWidth/10))));			var ilfoDivs = div.getElementsByTagName("div");			if (ilfoDivs &amp;&amp; ilfoDivs.length == 5)			{				//div.style.fontSize = "10px";				div.style.backgroundImage = "url(" + imgBase + "tl.png)";				div.style.backgroundPosition = "0 0";				div.style.backgroundRepeat = "no-repeat";				div.style.width = flyoverWidth + "px";				div.style.zIndex = "9999";							// avgILFO_head				ilfoDivs[0].style.backgroundImage = "url(" + imgBase + "tr.png)";				ilfoDivs[0].style.backgroundPosition = "top right";				ilfoDivs[0].style.backgroundRepeat = "no-repeat";				ilfoDivs[0].style.width = flyoverWidth + "px";				ilfoDivs[0].style.height = "5px";				// avgILFO_head div				ilfoDivs[1].style.height = "5px";							// avgILFO_content				ilfoDivs[2].style.backgroundImage = "url(" + imgBase + "r.png)";				ilfoDivs[2].style.backgroundPosition = "top right";				ilfoDivs[2].style.backgroundRepeat = "repeat-y";				ilfoDivs[2].style.fontSize = "10px";				ilfoDivs[2].style.color = "black";				ilfoDivs[2].style.padding = "0px 10px";				ilfoDivs[2].style.textAlign = "left";				ilfoDivs[2].style.wordWrap = "break-word";				ilfoDivs[2].style.lineHeight = "130%";				// avgILFO_foot				ilfoDivs[3].style.backgroundImage = "url(" + imgBase + "bl.png)";				ilfoDivs[3].style.backgroundPosition = "bottom left";				ilfoDivs[3].style.backgroundRepeat = "no-repeat";				ilfoDivs[3].style.height = "5px";							// avgILFO_foot div				ilfoDivs[4].style.backgroundImage = "url(" + imgBase + "br.png)";				ilfoDivs[4].style.backgroundPosition = "bottom right";				ilfoDivs[4].style.backgroundRepeat = "no-repeat";				ilfoDivs[4].style.width = flyoverWidth + "px";				ilfoDivs[4].style.height = "5px";			}			else			{				div.style.fontSize = "10px";				div.style.backgroundColor = xplSearch.engine.inline.color.background[nSeverity];				div.style.border = xplSearch.engine.inline.color.border[nSeverity] + " solid 3px";				div.style.padding = "3px 8px";			}		}		else		{			// apply updated styles for new flyover content			var sheets = document.styleSheets;			for (var i=0; i &lt; sheets.length; i++)			{				if (sheets[i].id &amp;&amp; sheets[i].id == "avgILFOStyle")				{					var avgILFOStyle = sheets[i];					break;				}			}			if (typeof(avgILFOStyle) !== "undefined")			{				var className = xplSearch.engine.inline.color.classname[nSeverity];				var divWidth = searchshield.elementSize(div)[0];				//round up to nearest 10 to avoid intentional wrapping in div				var flyoverWidth = divWidth + (10 - Math.ceil(10*((divWidth/10) - Math.floor(divWidth/10))));				var rules = avgILFOStyle.rules;				for (var i=0; i &lt; rules.length; i++)				{					var bgImg = rules[i].style.backgroundImage;					var selText = rules[i].selectorText.toLowerCase();					if (bgImg)					{						var bgImgStyle = bgImg.replace(/default/, className);						rules[i].style.backgroundImage = bgImgStyle;					}					if (((selText == ".avgilfo") ||						(selText == ".avgilfo_head") ||						(selText == ".avgilfo_foot div")) &amp;&amp;						(rules[i].style.width) &amp;&amp; (rules[i].style.width == "0px"))					{						rules[i].style.width = (flyoverWidth) + "px";					}				}			}		}		if (!event)			event = window.event;					var eventTarget = event.srcElement;		avglsinlineflyover.position(eventTarget);	},	hide: function (event) {		if (!event)			event = window.event;					var div = document.getElementById("XPLSS_InlineFlyover");		if (div == null)			return;					div.style.visibility = "hidden";	//invisible		div.style.left = "-5000px";		if (!searchshield.quirksMode)		{			// reset flyover styles			var sheets = document.styleSheets;			for (var i=0; i &lt; sheets.length; i++)			{				if (sheets[i].id &amp;&amp; sheets[i].id == "avgILFOStyle")				{					var avgILFOStyle = sheets[i];					break;				}			}			if (typeof(avgILFOStyle) !== "undefined")			{				var rules = avgILFOStyle.rules;				for (var i=0; i &lt; rules.length; i++)				{					var bgImg = rules[i].style.backgroundImage;					var selText = rules[i].selectorText.toLowerCase();					if (bgImg)					{ 						var bgImgStyle = bgImg.replace(/:\/\/([a-z]+)_/i, '://default_');						rules[i].style.backgroundImage = bgImgStyle;					}					if (((selText == ".avgilfo") ||						(selText == ".avgilfo_head") ||						(selText == ".avgilfo_foot div")) &amp;&amp;						(rules[i].style.width))					{						rules[i].style.width = "0px";					}				}			}		}	},	position: function (imageElem) {		var flyover = document.getElementById('XPLSS_InlineFlyover');		if (flyover == null)			return;					// relative position of flyover in relation to icon		var locateX = 0;  // 0=left, 1=right		var locateY = 0;  // 0=above, 1=below, 2=beside icon								// get window sizes		var winSize	 = searchshield.viewPortSize();		var windowX	 = winSize[0];		var windowY	 = winSize[1];		// Must know if there is a horizontal scroll bar for Firefox		// for proper flyover positioning near bottom edge		var scrollYWidth	 = winSize[2];		var scrollBarX	 = winSize[2] &gt; 0 ? true : false;		// get the exact size of the flyover		var flyoverSize	 = searchshield.elementSize(flyover);		var flyoverX	 = flyoverSize[0];		var flyoverY	 = flyoverSize[1];				flyover.style.width = flyoverX + "px";				// get the bounding rect for image(s)		var imgRect = imageElem.getBoundingClientRect();		// half width/height (center) of element bounding rect		var halfX = (imgRect.right - imgRect.left) / 2;		var halfY = (imgRect.bottom- imgRect.top) / 2;		// element the mouse is over, get the center position		var posX = searchshield.offsetLeft(imageElem) + halfX;		var posY = searchshield.offsetTop(imageElem) + halfY;				var pageOffsetX = 0;		var pageOffsetY = 0;		var hasParentFrame = false;		// normalize pos to 0  -- get amount of scrolling in browser window		var scroll		= searchshield.scrollSize(imageElem);		pageOffsetX		= scroll[0];		pageOffsetY		= scroll[1];		hasParentFrame	= scroll[2];				posX -= pageOffsetX;		posY -= pageOffsetY;		//compensate for Firefox 3		if (posX &lt; imgRect.left)			posX = imgRect.left+halfX;		// setup the offsets		var offsetX = posX;		var offsetY = posY;		// calc where to display on page		if ((windowX - posX) &gt; posX)		{			// right			//offsetX += halfX;			offsetX = imgRect.right + 3;			locateX = 1;		}		else		{			//left			//offsetX -= (flyoverX + halfX);			offsetX = imgRect.left - flyoverX - 3;		}		if ((windowY - posY) &gt; posY)		{			// below			if (posY &lt; (windowY/4))			{				offsetY -= halfY;				locateY = 1;			}			else			{				offsetY -= (flyoverY / 2) - halfY;				locateY = 2;			}		}		else		{			// above			if ((windowY - posY) &lt; (windowY/4))			{				offsetY -= (flyoverY - halfY);			}			else			{				offsetY -= (flyoverY / 2) + halfY;				locateY = 2;			}		}		// make sure we aren't off the screen		if (offsetY &lt; 0)			offsetY = 0;		if ((offsetY + flyoverY) &gt; windowY)		{			offsetY = windowY - flyoverY;		}		else if (scrollBarX &amp;&amp; ((windowY - (posY + halfY)) &lt; scrollYWidth))		{	//verdict overlaps the horizontal scrollbar			offsetY = windowY - (flyoverY + scrollYWidth);		}		// add page offsets back - if not in frame		if (!hasParentFrame)		{			offsetX += pageOffsetX;			offsetY += pageOffsetY;		}		//posX += pageOffsetX;		//posY += pageOffsetY;		//var paddedOffsetX = 0; //provide space between icon and flyover		//var padX = 3;		//if (locateX == 0)		//	paddedOffsetX = offsetX - padX;		//else		//	paddedOffsetX = offsetX + padX;		// set where to put the flyover		flyover.style.top = offsetY + "px";		flyover.style.left = offsetX + "px";		avglsinlineflyover.display();	},	display: function () {		var div = document.getElementById('XPLSS_InlineFlyover');		if (div == null)			return;				// show the flyover		div.style.visibility = "visible";	},	imageExists: function(element) {		if (element)		{			// check next siblings children			var sibling = element.nextSibling;						if ((sibling == null) || (sibling.getElementsByTagName == null))				return false;						var images = sibling.getElementsByTagName("IMG");			if (images == null)				return false;			for (var i = 0; i &lt; images.length; i++)			{				if (images[i].id == "avg_ls_image")					return true;			}		}		return false;	},	getImage: function (anchor) {		if (anchor)		{			var imageElem = null;			var images = anchor.getElementsByTagName("img");			if (images == null)				return imageElem;			for (var i = 0; i &lt; images.length; i++)			{				if (images[i].id == "avg_ls_image")				{					imageElem = images[i];					break;  				}							}			return imageElem;		}  	},	getUrlFromQueryString: function (inUrl) {		var url = inUrl;		var uri = searchshield.parseLink(unescape(inUrl));		if (uri.source != null)		{	// regexp failed so used split to parse url			var qsUrl = uri.source.indexOf("?url=");			if (qsUrl != -1)				url = uri.source.substring(qsUrl + 5);			else				url = uri.source;		}		else if ((uri.qsArray.url != null) &amp;&amp; (uri.qsArray.url.length &gt; 0))		{			url = uri.qsArray.url;		}		return url;	},	mouseOverHandler: function (e, doc, engine) {		if (e &amp;&amp; e.srcElement &amp;&amp; e.srcElement.href)		{			// need to keep a reference to the function registered 			// by the listener to be able to remove it.			var handlerFunc = arguments.callee;			var element = e.srcElement;			var href = e.srcElement.href;			// need an engine						if (!engine)				return;			// check if it has an image already			if (avglsinlineflyover.imageExists(element))				return;			// add the image, returns the anchor not the image			var new_element = engine.add_inline_image(doc, element, null, null);			// do the check and update in the background			setTimeout(function() {avglsinlineflyover.checkAndUpdate(doc, element, new_element, engine, handlerFunc)}, 1);		}	},	checkAndUpdate: function (doc, element, new_element, engine, handlerFunc) {		if (!engine)			return;		try {			// remove the listener and get final url			element.detachEvent("onmouseover", handlerFunc, false);			var finalUrl = searchshield.avgCallFunc(doc, 'GetFinalUrl', element.href);		}		catch(e) {}		if ((typeof(finalUrl) != 'undefined') &amp;&amp; finalUrl)		{			// if still a tiny url check for final url embedded in querystring			if (searchshield.FilterUrl(finalUrl, engine.shortened_urls) &amp;&amp; 				(finalUrl.indexOf("?url=") != -1))			{				finalUrl = avglsinlineflyover.getUrlFromQueryString(finalUrl);			}			// update the verdict			engine.display_inline(doc, new_element, finalUrl, null, true);		}		else		{			engine.avg_ls_inline_hide_verdict(new_element);		}	}};///////////////    FLYOVERS    ///////////////(function(){	setTimeout( function() {		try {			if ((self == top) &amp;&amp; top.document) {				searchshield.init(top.document, 1);			}		}		catch(e){return;}	}, 1 );	return;})();&lt;/script&gt; &amp;nbsp;&lt;/div&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;img src="http://i386.photobucket.com/albums/oo309/maga_chan/Blogs/cath0.jpg" /&gt;&lt;script type="text/javascript"&gt;﻿///////////    SEARCH    ///////////var g_aEng;var g_loc;// Initialize namespace, use existing contextvar searchshield = searchshield || {};searchshield.clockUrl;// constantssearchshield.SCORE_SS_SAFE		= 1;searchshield.SCORE_SS_CAUTION	= 2;searchshield.SCORE_SS_WARNING	= 3;searchshield.SCORE_SS_BLOCK		= 4;searchshield.SCORE_SS_VERISIGN	= 7;searchshield.BLOCK_NONE		= 0;searchshield.BLOCK_NORMAL	= 1;searchshield.BLOCK_PHISH	= 2;searchshield.BLOCK_YAHOO	= 3;searchshield.XPLCHECK_RESULT_SEV_NONE	= 0;searchshield.XPLCHECK_RESULT_SEV_LOW	= 1;searchshield.XPLCHECK_RESULT_SEV_MED	= 2;searchshield.XPLCHECK_RESULT_SEV_BLOCK	= 3;searchshield.VERISIGN_SPLIT_NOTEST		= 0;searchshield.VERISIGN_SPLIT_TESTA		= 1;searchshield.VERISIGN_SPLIT_TESTB		= 2;searchshield.needLivePhishCheck = false;searchshield.allowedSites = [];searchshield.enabled = function (doc){	var result = searchshield.avgCallFunc(doc, 'GetSearchEnabled');	return (result == '1' ? 1 : 0);};searchshield.init = function (doc){	if ((doc == null) || (doc.location == null) || (doc.location.href.search(/about:/) != -1))		return;	if (!searchshield.enabled(doc))		return;	if (!g_aEng)		g_aEng = searchshield.Search.prototype.detectEngine(doc.location.href);	if (!g_aEng)		return;	// init search object (not declared or is null)	if (typeof xplSearch === 'undefined')	{		// global		xplSearch = new searchshield.Search();		// reset the links added flag		xplSearch.new_links = false;		xplSearch.doc = doc;		xplSearch.href	= xplSearch.doc.location.href;		xplSearch.uri	= searchshield.parseLink(xplSearch.href);				xplSearch.engine	= new searchshield[g_aEng+'SearchEngine'](xplSearch)		xplSearch.addEngine(xplSearch.engine);		searchshield.launch(doc);	}	if (doc.location.href != g_loc)	{		g_loc = doc.location.href;		if ((typeof xplSearch !== 'undefined') &amp;&amp; (xplSearch != null))			searchshield.launch(doc);	}};searchshield.launch = function (doc){	// IE specific check	searchshield.quirksMode = (self.top.document.compatMode == 'BackCompat');	searchshield.docMode = parseInt(navigator.userAgent.split('MSIE')[1]);			if ((self === top) &amp;&amp; (self.document === doc))	{		if (!xplSearch.engine)			return;		// set verdict display config		xplSearch.engine.setRatingsConfig(doc);		// init the alert popup		searchshield.initPopupAlert(doc);		if (xplSearch.engine.type != 'inline')		{			// save function reference for memory clean up later			var fn = function(event){avglsflyover.hide(null)};			//hide flyover if these events occur			window.detachEvent('onscroll', fn);			window.attachEvent('onscroll', fn);			doc.detachEvent('onkeydown', fn);			doc.attachEvent('onkeydown', fn);		}				// only start monitor on top doc		searchshield.avgPageMonitor.start(doc);	}	return;};// search monitors and processors - doc is always top most documentsearchshield.avgPageMonitor = {	previousUrl: null,	start: function(doc){		searchshield.avgPageMonitor.stop();		searchshield.avgPageMonitor.process(doc);		searchshield.avgPageMonitor.timeoutID = window.setTimeout(function(){searchshield.avgPageMonitor.start(doc)}, 1000);	},	process: function(doc){		var currentUrl = doc.location.href;		var refresh = 0;		if (this.previousUrl != currentUrl) {			this.previousUrl = currentUrl;			avgreport.scanResult(doc, currentUrl);			refresh = (xplSearch.engine.name == 'google') ? 1 : 0;		}		searchshield.avgProcessSearch(doc, refresh);	},	stop: function(){		if (searchshield.avgPageMonitor.timeoutID)		{			window.clearTimeout(searchshield.avgPageMonitor.timeoutID);			delete searchshield.avgPageMonitor.timeoutID;		}	}};searchshield.avgProcessSearch = function (doc, refresh){	// doc may be about:Tabs or about:Blank	if (!doc)		return;			if (!searchshield.enabled(doc))		return;	if (!searchshield.clockUrl)		searchshield.clockUrl = searchshield.avgCallFunc(doc, 'GetIconUrl', '0');			xplSearch.clockUrl = searchshield.clockUrl	if (!xplSearch.engine)		return;	// get result links	xplSearch.links = [];	var links = searchshield.avgGetSearchLinks(doc, xplSearch.engine, refresh);	searchshield.needLivePhishCheck = false;	for (var i=0; i &lt; links.length; i++)	{		var isPhishing = searchshield.avglsCheckandUpdate(links[i]);		if (isPhishing)			searchshield.needLivePhishCheck = true;	}		if (searchshield.needLivePhishCheck)	{		var prev = '1';		if ( xplSearch.engine.type == 'inline' )			prev = '0';		searchshield.avgCallFunc(doc, 'GetPhishingResults', prev);		searchshield.needLivePhishCheck = false;	}	else if (links.length &gt; 0 &amp;&amp; xplSearch.engine.type != 'inline')	{		searchshield.avgCallFunc(doc, 'FinalScanComplete');	}		// attach click handlers for popup alerts	doc.body.detachEvent("onclick", searchshield.blockClick);	doc.body.attachEvent("onclick", searchshield.blockClick);		doc.body.detachEvent("ondblclick", searchshield.blockClick);	doc.body.attachEvent("ondblclick", searchshield.blockClick);};searchshield.avgGetSearchLinks = function (doc, engine, refresh){	if (!doc.body)		return;	var alltags = doc.body.getElementsByTagName('a');	for (var i = 0; i &lt; alltags.length; i++)	{		if ( !refresh )		{	// no checked test if refreshing - google			if (alltags[i].getAttribute('avglschecked'))				continue;		}				// ignore linked resources		if (alltags[i].tagName == 'LINK')			continue;		// ignore in-page bookmarks and javascript		if ((!alltags[i].href)	||			(alltags[i].href.charAt(0) == '#') ||	// in-page bookmark			(alltags[i].href.indexOf("javascript") == 0))			continue;					// ignore verdicts		if (/XPLSS_/.test(alltags[i].id))			continue;		// ignore flyover anchors		if (/linkscanner|avgthreatlabs|avg\.com/.test(alltags[i].href))			continue;					var href = engine.includeLink(alltags[i]);		if (!href)			continue;				var newNode = engine.search.addLink(alltags[i], href);		engine.addImage(newNode, engine.search.clockUrl, false);	}		// recursivesly process all frames	var docFrames = doc.frames;	if (docFrames &amp;&amp; engine.processFrames)	{		for (var j = 0; j &lt; docFrames.length; j++)		{			var attr;			var frameDoc;			try {				attr = docFrames[j].frameElement.className;				frameDoc = docFrames[j].document;			}			catch(err){}			//TODO: make frame processing an engine function or at least make exclusions an engine property			// 'editable' frame it's probably a gmail reply			if (attr &amp;&amp; (attr.indexOf("editable") != -1))				continue;			if (frameDoc)				searchshield.avgGetSearchLinks(frameDoc, engine, 0);		}	}		return engine.search.links;};searchshield.avglsCheckandUpdate = function (linkNode){	if (!xplSearch)		return;	// element is the search result anchor	var element = linkNode.element;	var href = linkNode.href;	var result = searchshield.avgCallFunc(xplSearch.doc, 'CheckSite', href, element.href);	if (result == null)		return;		var resultParse = result.split('::');	var phishing  = resultParse[0];  // if phishing then rest of array does not exist.	if (phishing == 1)		return true;	if (resultParse.length &lt; 8)		return;		var hash	  = resultParse[1];	var score	  = resultParse[2];	var new_image = resultParse[3];	var alt_image = resultParse[4];	var flyover	  = resultParse[5];	var click_thru= resultParse[6];	var altClick_thru = resultParse[7];	// iterate to get verdict anchor	nextElem = element.nextSibling;	while (nextElem)	{		if (nextElem.nodeType == 1 &amp;&amp; nextElem.id &amp;&amp; (nextElem.id.indexOf("XPLSS_") != -1))			break;		nextElem = nextElem.nextSibling;	}		return xplSearch.engine.updateImage(hash, xplSearch.searchHash, score, new_image, alt_image, flyover, click_thru, altClick_thru);};// click event handler - shows popup for links of caution and warning severitysearchshield.blockClick = function(event){	if (!event)		event = window.event;			// no action needed if click is not the left mouse button	if (event.button != 0)		return;			var anchor = searchshield.getAnchorNode(event.srcElement, 								function(node) {return ((node.tagName.charAt(0) == "H") ||														(node.tagName.charAt(0) == "D") ||														(node.tagName.charAt(0) == "T"))}	);		if ((anchor == null) || (anchor.href == null))		return true;		// ignore if anchor is on an xpl verdict	if (!!anchor.id)	{		if (anchor.id.indexOf('LXPLSS_') == 0)			return true;				if (anchor.id.indexOf('XPLSS_INTR') == 0)		{			searchshield.allowedSites.push(searchshield.GetDomain(anchor.href));			return true;		}	}		// VeriSign A/B Split reporting - only for VerSign domains	var avglschecked = anchor.getAttribute("avglschecked");	if (avglschecked &amp;&amp; avglschecked != 1)	{		var sPos = avglschecked.indexOf("S");		var hash = (sPos &gt; -1) ? avglschecked.substring(0, sPos) : null;		var split = (sPos &gt; -1) ? avglschecked.substring(sPos+1) : null;		if (hash &amp;&amp; split &amp;&amp; split != searchshield.VERISIGN_SPLIT_NOTEST)		{			// check updated verdict anchor for verisign domain			var d = event.srcElement.ownerDocument;			if (d.getElementById("LXPLSS_" + hash + "U" + searchshield.SCORE_SS_VERISIGN))			{				searchshield.avgCallFunc(d, "RecordVSClick", hash, d.location.href);			}		}	}	var link = anchor.href;	var verdict = searchshield.getAvgImage(anchor);	var score = -1;	var img_id = '';	if (verdict != null)	{		score = verdict.score;		img_id = verdict.rawId;	}		// show popup alert (upper left)	if ((score &gt;= searchshield.SCORE_SS_CAUTION) &amp;&amp; (score &lt;= searchshield.SCORE_SS_WARNING))	{		// prevent this click from going any further		var search_hash = searchshield.avgCallFunc(document, 'GetHash', document.location.href);		searchshield.ShowPopupAlert(document, link, img_id, search_hash);		// if possible, stop the event from going any further		searchshield.cancelEvent(event);		return false;	}		return true;};// called by native to update phishing linkssearchshield.updatePhishingLinks = function (results){	if (!results)		return;	if (!xplSearch)		return;	var engine = xplSearch.engine;	var resultParse = results.split("::");	var resultsLength = resultParse[0];	for (var i=0; i &lt; resultsLength; i++)	{		var idx = i*7;		var hash	  = resultParse[idx+1];		var score	  = resultParse[idx+2];		var new_image = resultParse[idx+3];		var alt_image = resultParse[idx+4];		var flyover	  = resultParse[idx+5];		var click_thru= resultParse[idx+6];		var altClick_thru = resultParse[idx+7];		engine.updateImage(hash, xplSearch.searchHash, score, new_image, alt_image, flyover, click_thru, altClick_thru);	}};searchshield.getAvgImage = function (element){	var obj = {};	obj.img = xplSearch.engine.getImgElement(element);	obj.score = -1;		//parse the score from the id	if (obj.img != null &amp;&amp; obj.img.id)	{		var pos = !!obj.img.id ? obj.img.id.indexOf('U') + 1 : -1;		obj.score = (pos &lt; 1) ? -1 : obj.img.id.charAt(pos);		obj.rawId = obj.img.id.substring(0,pos-1);	}		return obj;};searchshield.GetScannedLink = function (link){	if (!xplSearch || !(xplSearch.links instanceof Array))		return link;	// look for the link we scanned based on original element	for (var i = 0; i &lt; xplSearch.links.length; i++)	{		if (xplSearch.links[i].element.href == link)			return xplSearch.links[i].href;	}	// else return the incoming link	return link;};searchshield.previouslyScanned = function (links, hash){	for (var i = 0; i &lt; links.length; i++)	{		if ((links[i] != null) &amp;&amp; (links[i].hash != null) &amp;&amp; 			(links[i].hash == hash) &amp;&amp; (links[i].checked == true))			return true;	}	return false;};searchshield.initPopupAlert = function (doc){	// check if it exists first	if (doc.getElementById("XPLSS_PopupAlert"))		return;	// create a div to use for the popup itself, hide for now	var popup_div = doc.createElement("DIV");	popup_div.setAttribute("id", "XPLSS_PopupAlert");	popup_div.style.position = "absolute";	popup_div.style.zIndex = "10000";	doc.body.appendChild(popup_div);};searchshield.initFlyover = function (doc, engine){	// create in top doc only	if (doc !== window.top.document)		doc = window.top.document;	// check if it exists first	if ((doc == null) || (doc.getElementById("XPLSS_Flyover")))		return;	// create a div to use for the flyover itself, hide for now	var flyover_div = doc.createElement("DIV");	flyover_div.setAttribute("id", "XPLSS_Flyover");	flyover_div.style.position = "absolute";	flyover_div.style.zIndex = "10000";	doc.body.appendChild(flyover_div);	// create a layer for the image	var trans_div = doc.createElement("DIV");	trans_div.setAttribute("id", "XPLSS_Trans");	trans_div.style.position = "absolute";	trans_div.style.zIndex = "9999";	doc.body.appendChild(trans_div);};searchshield.ShowPopupAlert = function (doc, link, hash, search){	// build the content	var popup_content = searchshield.avgCallFunc(doc, 'BuildPopupAlert', hash, search);	if (popup_content == null || popup_content == "")		return;	// get the div	var div = doc.getElementById("XPLSS_PopupAlert");	div.innerHTML = searchshield.CleanupHTML(popup_content);	// set position, account for scrolling	var zoom = searchshield.zoomLevel();	var pageOffsetX = Math.round(doc.documentElement.scrollLeft/zoom);	var pageOffsetY = Math.round(doc.documentElement.scrollTop/zoom);		div.style.left = 10 + pageOffsetX + "px";	div.style.top = 10 + pageOffsetY + "px";		// TODO: the event handler function doesn't exist so, is this even necessary?	//div.attachEvent("onmouseout", HidePopupAlert);	// set the link	//var data = doc.getElementById("avgalertpopurl");	//if (data)	//		data.innerHTML = escape(link);	// set visibility	div.style.visibility = "visible";	//navigate to the link after timed delay	// TODO: Bug 31707 - make this open a new tab/window	setTimeout(function(){doc.location.assign(link)}, 3000);};searchshield.avgCallFunc = function (doc, name /*, param1..., paramN*/){	// get the data element	var avg_ls_data = (typeof gAvgDataElement !== 'undefined') ? gAvgDataElement : doc.getElementById("avglsdata");	if ((avg_ls_data == null) || (name == null))		return;		// save the data element	gAvgDataElement = avg_ls_data;	// for some reason you can't fire and event on an element with no parent node	if (avg_ls_data.parentNode == null)		return;	// set the attributes	avg_ls_data.setAttribute("function", name);		// set variable length of optional parameter attributes	var pcnt = 0;	for (var i=2; i &lt; arguments.length; i++)		avg_ls_data.setAttribute("param"+(++pcnt), String(arguments[i]));	avg_ls_data.fireEvent("onrowenter");	// get the result	return avg_ls_data.getAttribute("result");	};// general use functions - begin// DOM Functionssearchshield.getAnchorNode = function (node, filterFunc){	// filterFunc should return a boolean	if (!filterFunc || !filterFunc instanceof Function)		return null;			// go up the dom tree starting at node and look for anchor 	// before hitting a header, div or table element 	while ((node != null)			&amp;&amp;			(node.tagName != null)	&amp;&amp; 			(node.tagName != "A"))	{		if (filterFunc(node))		{			node = null;			break;		}		node = node.parentNode;	}	return node;};searchshield.getDocuments = function (frame, frameArray){	// recursively get all embedded frames/docs	frameArray.push(frame.document);	var frames = frame.frames;	for (var i = 0; i &lt; frames.length; i++)	{		// recurse on each frame		searchshield.getDocuments(frames[i], frameArray);	}	return frameArray;};searchshield.NextSiblingNode = function (element){	var TEXTNODE = 3;	var ParentNode = element.parentNode;	if (!ParentNode)		return;	var NextSibling = ParentNode.nextSibling;	while (NextSibling)	{		if (NextSibling.nodeType != TEXTNODE)			return NextSibling;		NextSibling = NextSibling.nextSibling;	}	return;};searchshield.getParentNodeByAttribute = function (attrName, attrValue, node, maxDepth){	if (!node)		return null;		var maxLoop = maxDepth ? maxDepth : 1;	var pNode = node.parentNode;		if (!pNode)		return null;		for(; 0 &lt; maxLoop; maxLoop--) 	{		if ((pNode[attrName]) &amp;&amp; 			(pNode[attrName].toLowerCase() === attrValue.toLowerCase())) 		{			return pNode;		}		pNode = pNode.parentNode;		if (!pNode)			return null;	}	return null;};searchshield.getParentNodeByClassName = function (className, node, maxDepth) {	return searchshield.getParentNodeByAttribute("className", className, node, maxDepth);};searchshield.getParentNodeById = function (id, node, maxDepth){	return searchshield.getParentNodeByAttribute("id", id, node, maxDepth);};searchshield.getParentNodeByTagName = function (tagName, node, attrName) {	// find parent node by tag name and optional attribute name	if (!tagName || !node || !node.parentNode)		return null;	tagName = tagName.toUpperCase();	while ((node != null) &amp;&amp; (node.nodeType != 9))	{		// if attrName is not provided just return TRUE		if (node.nodeName == tagName)		{			var nodeHasAttribute = !!attrName ? node[attrName] : true;			if (nodeHasAttribute)				return node;		}					node = node.parentNode;	}		// no div	return null;};searchshield.getHrefFromCiteElement = function (tag){	var rtnHtml;	var tp = tag.parentNode;	var tgpn = tp ? tp.parentNode : null;	if (!tgpn)		return;	lastChildElem = tgpn.lastChild;	while ((lastChildElem != null) &amp;&amp; (lastChildElem.nodeName != 'SPAN') &amp;&amp; (lastChildElem.nodeName != 'DIV'))	{		lastChildElem = lastChildElem.previousSibling;	}		if (lastChildElem)		rtnHtml = lastChildElem.getElementsByTagName('cite')[0];		if (rtnHtml)		rtnHtml = rtnHtml.innerHTML;		return rtnHtml;};searchshield.getHrefFromSpanElement = function (tag){	var rtnHtml;		var tp = tag.parentNode;	var tgpn = tp ? tp.parentNode : null;	if (!tgpn)		return;	siblingElem = tgpn.nextSibling;	while ((siblingElem != null) &amp;&amp; (siblingElem.nodeName != 'SPAN') &amp;&amp; (siblingElem.className != 'site'))	{		siblingElem = siblingElem.nextSibling;		if (siblingElem &amp;&amp; siblingElem.className  &amp;&amp; (siblingElem.className.match(/res[13]/)))			break;	}		if (siblingElem)		rtnHtml = siblingElem.getElementsByTagName('a')[0];		if (rtnHtml)		rtnHtml = rtnHtml.innerHTML;		return rtnHtml;};searchshield.getTopLevelDocument = function (doc){	// return the top level document for the given doc, could be itself	// TODO: determine a method of doing this for IE, if necessary		// don't check about:blank	if (doc &amp;&amp; ((doc.location.href == "about:blank") || (doc.location.href == "about:Tabs")))		return doc;	// Check if already a top level document	for (var i = 0; i &lt; gBrowser.browsers.length; i++)	{		if (doc == gBrowser.browsers[i].contentDocument)			return doc;	}	// Not a top level, check all frames 	var documents;	for (var j = 0; j &lt; gBrowser.browsers.length; j++)	{		// get all docs for each browser		documents = searchshield.getDocuments(gBrowser.browsers[j].contentWindow, new Array());		for (var k = 0; k &lt; documents.length; k++)		{			// check if doc is from current browser			if (doc == documents[k])			{				// it is, return the top level doc for this browser				return gBrowser.browsers[j].contentDocument;			}		}	}		return doc;};searchshield.getTopLevelWindow = function (){	// TODO: determine a method of doing this for IE, if necessary	return mediator.getMostRecentWindow("navigator:browser");};//Event functionssearchshield.addListener = function (object, evtType, listener, useCapture){	useCapture = !!useCapture;	if (object.addEventListener)	{		object.addEventListener(evtType, listener, useCapture);		return true;	}	else if (object.attachEvent)	{		 object.attachEvent("on"+evtType, listener);		 return true;	}		return false;};searchshield.cancelEvent = function (event){	event.cancelBubble = true;	event.returnValue = false;};searchshield.doEvent = function (evtObj, evtTarget, evtName, evtType, bubbles, cancelable){	bubbles		= !!bubbles;	cancelable	= !!cancelable;		if (document.createEvent)	{		var evt = document.createEvent("Events");		evt.initEvent(evtName, bubbles, cancelable);		evtTarget.dispatchEvent(evt);		return true;	}	else if (document.createEventObject)	{		var evt = document.createEventObject(evtObj);		evtTarget.fireEvent("on" + evtType, evt);		return true;	}		return false;};searchshield.removeListener = function (object, evtType, listener, useCapture){	useCapture = !!useCapture;		if (object.removeEventListener)	{		object.removeEventListener(evtType, listener, useCapture);		return true;	}	else if (object.detachEvent)	{		 object.detachEvent(evtType, listener);		 return true;	}		return false;};// HTML functionssearchshield.CleanupHTML = function (data){	if (data == null)		return data;	// cleanup html data, replace any new lines	data = data.replace(/\r/g, "");	data = data.replace(/\n/g, "");	// escape any single quotes	data = data.replace(/'/g, "\\'");	return data;};searchshield.removeHtmlTags = function (str){	var re = new RegExp('(&lt;[^&gt;]+&gt;)','g');	var strStr = new String(str);	if (!!strStr)		return strStr.replace(re, '');	else		return str;	};// Browser functionssearchshield.elementSize = function (element){	//returns an array [sizeX, sizeY]		var elemX;	var elemY;		elemX = parseInt(element.offsetWidth);	elemY = parseInt(element.offsetHeight)		return [elemX, elemY];};searchshield.GetFullBoundingRect = function (element){	if (!element) return;	// get bounding rect for incoming element	var elementRect = element.getBoundingClientRect();	var nextImg = null;	var nextImgRect = null;	// first check for another non-TextNode element after this one	var siblingElement = searchshield.NextSiblingNode(element);	if (	siblingElement &amp;&amp; 		siblingElement.firstChild &amp;&amp; 		siblingElement.id &amp;&amp; 		siblingElement.id.indexOf("XPLSS_") != -1)	{		nextImg = siblingElement.firstChild;				nextImgRect = nextImg.getBoundingClientRect();		}	else	{		return elementRect;	}		if ((nextImgRect.top &gt;= elementRect.bottom) &amp;&amp; 		(nextImgRect.left &lt;= elementRect.left))	{	// images appear to be on seperate lines		return elementRect;	}	// else merge the rects together into a new one	var newRect = new function() { this.top=0; this.left=0; this.right=0; this.bottom=0; this.mid=0;};	newRect.top = Math.min(elementRect.top, nextImgRect.top);	newRect.left= Math.min(elementRect.left, nextImgRect.left);	newRect.right=Math.max(elementRect.right, nextImgRect.right);	newRect.bottom=Math.max(elementRect.bottom, nextImgRect.bottom);	newRect.mid = Math.min(elementRect.right, nextImgRect.left);		return newRect;};searchshield.offsetLeft = function (element){	var offset = 0;	while (element)	{		offset += element.offsetLeft;		element = element.offsetParent;	}	return offset;};searchshield.offsetTop = function (element){	var offset = 0;	while (element)	{		offset += element.offsetTop;			element = element.offsetParent;	}	return offset;};searchshield.scrollSize = function (imageElem){	// returns an array [scrollX, scrollY, hasParentFrame]	var scrollX;	var scrollY;	var hasParentFrame;		// firefox	if (window.pageXOffset &amp;&amp; window.pageYOffset)	{		scrollX = window.pageXOffset;		scrollY = window.pageYOffset;	}	else if (document.documentElement || document.body)	{		scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;		scrollY = document.documentElement.scrollTop || document.body.scrollTop;		if (imageElem)		{			var frames = document.frames;			if (frames)			{				for (var i=0; i &lt; frames.length; i++)				{					var img;					try {						img = frames[i].document.getElementById(imageElem.id);					}					catch(domErr){}					if (img != null)					{						scrollX = frames[i].document.documentElement.scrollLeft;						scrollY = frames[i].document.documentElement.scrollTop;						hasParentFrame = true;						break;					}				}			}		}	}	else	{		scrollX = 0;		scrollY = 0;	}		return [parseInt(scrollX,10), parseInt(scrollY,10), hasParentFrame];};searchshield.viewPortSize = function (){	// returns an array [width, height, scrollYWidth], where scrollYWidth is always 0 for IE	var scrollXWidth	 = 19;	var scrollYWidth	 = 0; // 0 for Microsoft IE	var scrollBarX	 = false;	var windowX;	var windowY;		// firefox	if (window.innerWidth &amp;&amp; window.innerHeight)	{		//TODO: validate this block if implemented for firefox				windowX = window.innerWidth - scrollXWidth;		windowY = window.innerHeight;		try		{			scrollYWidth = Math.floor(Math.abs(window.innerHeight - document.documentElement.clientHeight)) + 1;			scrollBarX = (document.documentElement.clientWidth &lt; document.documentElement.scrollWidth);		}		catch(err){}		if (scrollBarX &amp;&amp; !scrollYWidth)			scrollYWidth = 18;	//normally 17 (+1 top border)						}	else if (document.documentElement || document.body) 	{		windowX = (document.documentElement.clientWidth || document.body.clientWidth) - scrollXWidth;		windowY = document.documentElement.clientHeight || document.body.clientHeight;	}	else	{		windowX = 0;		windowY = 0;	}	return [windowX, windowY, scrollYWidth];};searchshield.zoomLevel = function (){		var level = 1;		if (document.body.getBoundingClientRect) {			// rect is only in physical pixel size before IE8 			var rect = document.body.getBoundingClientRect();			level = Math.round (((rect.right - rect.left) / (document.body.offsetWidth)) * 100) / 100;		}				return level;};// Href functionssearchshield.checkUrl = function (url){	// cleanup a url, make sure there is a protocol on the front for scanning	try {		// trim		url = url.replace(/^\s+/, "").replace(/\s+$/, "");		// if no protocol, add http:// to it			if (url.indexOf("://") == -1)			url = "http://" + url;	}	catch(err){}	return url;};searchshield.DoesURLContain = function (url, contain){	if ((url == null) || (url.length &lt; 1))		return false;	// breakup the url to check	var parts = url.split('/');	if (parts.length &lt; 3)		return false;	var domain= parts[2].toLowerCase();	if (domain.indexOf(contain) &gt; -1)		return true;	return false;};searchshield.FilterUrl = function (url, filter){	if (!url || (url.length &lt; 1))		return false;		if (!filter || !(filter instanceof Array))			return false;			var parts = url.split('/');	if ((parts == null) || (parts.length &lt; 3))		return false;	var domain = parts[2];	for (var i = 0; i &lt; filter.length; i++)	{		if (domain.indexOf(filter[i]) != -1)			return true;	}	return false;};searchshield.GetDomain = function (url){	if (url != null)	{		// get url domain		var parts = url.split('/');		if ((parts != null) &amp;&amp; (parts.length &gt;= 3))		{			return parts[2].toLowerCase();		}	}		return url;};searchshield.getUrlContents = function (url) {	if (url == null)		return null;	// don't query if local url	if (url.indexOf("linkscanner://") != -1)		return null;	try 	{		req = new XMLHttpRequest();		req.open("GET", url, false);		req.send(null);		if (req.status == 200)			return req.responseText;		else			return null;	} 	catch (err)	{		// nothing to do		return null;	}};searchshield.parseLink = function (href, simpleMode){	var uri		  = {};	var parameter = {			complex: {				pattern: /^(?:([a-z]+):(?:([a-z]*):)?\/\/)?(?:([^:@]*)(?::([^:@]*))?@)?((?:[a-z0-9_-]+\.)+[a-z]{2,})(?::(\d+))?(?:([^:\?\#]+))?(?:\?([^\#]+))?(?:\#([^\s]+))?$/i,				element: ['source','scheme','subscheme','user','pass','host','port','path','query','fragment']				},			simple: {				pattern: /^(?:([a-z]+):\/\/)?((?:[a-z0-9_-]+\.)+[a-z]{2,})(?:\/)([^:\?]+)?(?:([\?|\#])([^\?]+))?$/i,				element: ['source','scheme','host','path','delimiter','query']			}		};	var mode	= simpleMode !== false ? 'simple' : 'complex';	var pattern	= parameter[mode].pattern;	var element	= parameter[mode].element;		if (!href)		return uri;	var matches	= href.match(pattern);		if (matches)	{		// --------------------		// iterate over the matches array and populate uri properties		// using the respective element parameter as the name.		// NOTE: set raw property type as String to make inArray()		// work properly with instanceof.		// --------------------		for (var i=0; i &lt; matches.length; i++)			uri[element[i]] = new String(matches[i] || "");				// --------------------		// create an array, hostArray, from host, for example,		// host="www.google.com" and hostArray=["www","google","com"]		// --------------------		uri.hostArray	= uri.host.split(".");				// --------------------		// create an array, qsArray, from query, for example,		// query='hl=en&amp;q=javascript&amp;btnG=Search&amp;aq=f&amp;aqi=g10&amp;aql=&amp;oq=&amp;gs_rfai='		// qsArray=[{hl:'en'},{q:javascript}, ... ,(qs_rfai:''}]		//		// $0=entire match, $1=capture 1, $2=capture 2		// must include $0 even though it is unused so		// the replace works properly		// --------------------		uri.qsArray		= searchshield.parseQuery(uri.query);	}		//non-standard urls require a fail-safe that relies on simply splitting the href	function splitLink(href)	{		// split the href on '/'		var linkParts = href.split("/");		// need domain and path		if ((linkParts == null) || (linkParts.length &lt; 2))			return false;			var uri = {			delimiter: (linkParts[3]).substring(0,1),			host: linkParts[2],			hostArray: (linkParts[2]).split('.'),			path: (linkParts[3]).substring(1),			qsArray: [],			query: '',			scheme: (linkParts[0]).substring(0, linkParts[0].length-1),			source: href			};		return uri;	}	if (!uri.host)		uri = splitLink(href);	return uri;};searchshield.parseQuery = function (qs){	var qsArray = [];	qs.replace(/(?:^|&amp;)([^&amp;=]*)=?([^&amp;]*)/g, 					function ($0, $1, $2) {						if ($1) qsArray[$1] = $2;					}	);		return qsArray;};// general functionssearchshield.arrayKeys = function (array){	var keys = new Array();	for(k in array)		keys.push(k);	return keys;};searchshield.inArray = function (key, array, caseSensitive, exactMatch){	if (! array instanceof Array)		return false;		if (caseSensitive !== true)		caseSensitive = false;			if (exactMatch !== false)		exactMatch = true;		if (key instanceof String)	{		for (var i=0; i &lt; array.length; i++)		{			var k = caseSensitive ? key.valueOf() : key.valueOf().toLowerCase();			var a = caseSensitive ? array[i] : array[i].toLowerCase();			if(exactMatch &amp;&amp; k === a)				return true;			else if (!exactMatch &amp;&amp; (-1 !== k.indexOf(a)))				return true;		}	}	else if (key instanceof Array)	{		for (var i=0; i &lt; array.length; i++)			for (var j=0; j &lt; key.length; j++)			{				var k = caseSensitive ? key[j] : key[j].toLowerCase();				var a = caseSensitive ? array[i] : array[i].toLowerCase();				if (exactMatch &amp;&amp; k === a)					return true;				else if (!exactMatch &amp;&amp; (-1 !== k.indexOf(a)))					return true;			}	}	return false;};searchshield.getClickHandlerParams = function(clickHandler){	var re = /((?:'[^']*')|[\w]*)(?:,|\))/ig;	var chParams = [];	clickHandler.replace(re, 		function($0, $1, $2){			if ($1)				chParams.push($1);		}	);		return chParams;};// general use functions - end// Search constructorsearchshield.Search = function(){	this.doc 			= null;	this.engine 		= null;	this.engines 		= null;	this.links 			= null;	this.uri 			= null;	this.searchHash 	= null;	this.checkUrl 		= null;	this.useLocalImgs 	= null;	this.clockUrl 		= null;	// create engine list (actually key/value object will be used)	this.engineList		= {};};searchshield.Search.prototype.getSearchNames = function(){	// order is important	var names =  [		'Google',		'AVGGoogle',		'AltaVista',		'AVGYahoo',		'Yahoo',		'Bing',		'MSN', // MSN redirects to BING		'Baidu',		'Earthlink',		'AOL',		'Ask',		'Yandex',		'Seznam',		'Webhledani',		'eBay',///temp		'Digg',		'Slashdot',		'Twitter',		'GMail',		'Facebook',		'MySpace'	];	return names;};searchshield.Search.prototype.detectEngine = function(href){	if (!href)		return;	var aEng = searchshield.Search.prototype.getSearchNames();	var aEngLen = aEng.length;	for (var i=0; i &lt; aEngLen; i++)	{		if (searchshield[aEng[i] + 'SearchEngine'].prototype.validSearch(href))			return aEng[i];	}	return;};searchshield.Search.prototype.addEngine = function(engine){	if (!this.engines)		this.engines = new Array();		this.engines.push(engine);};searchshield.Search.prototype.addLink = function(inElement, inHref){	if (!this.links)		this.links = new Array();	var hrefHash;	try	{		hrefHash = searchshield.avgCallFunc(this.doc, 'GetHash', inHref);	}	catch (e){}	var newNode = {			element:	inElement,			href: 		inHref,			hash:		hrefHash,			search:		this.searchHash		};		this.links.push(newNode);		return newNode;}// process the search result page after all search engines have been addedsearchshield.Search.prototype.process = function(doc){	// only process when searchshield is enabled	if (!searchshield.enabled(doc))		return;			this.doc	= doc;	this.href	= this.doc.location.href;	this.uri	= searchshield.parseLink(this.href);	try	{		this.searchHash 	= searchshield.avgCallFunc(this.doc, 'GetHash', this.href);		// get any previously active engine		this.engine		= this.engineList[this.searchHash.toString()];	}	catch (e) {}	/*		Process Steps:	1. Add all supported search engines	2. Identify the active search engine	3. Get all document links and add AVG images 	*/		// STEP 1 - Add all supported search engines	if (!this.engines)	{		var aEng = xplSearch.getSearchNames();		var aEngLen = aEng.length;		for (var i=0; i &lt; aEngLen; i++)		{			xplSearch.addEngine(new searchshield[aEng[i]+'SearchEngine'](this));		}	}		// search the engines if we didn't find one	if (!this.engine)	{		// STEP 2 - Identify the active search engine		var engLen = this.engines.length;		for (var i = 0; i &lt; engLen; i++)		{			if (this.engines[i].validSearch())			{				this.engine		= this.engines[i];				break;			}		}				// create a new engine instance to store		this.engineList[this.searchHash.toString()] = this.engine;				// init this search, if &lt; 1 either an error or disabled		//var sdkInit = 0;		//try {		//	sdkInit = xpl_sdk.SXPL_InitSearch(this.href);		//}		//catch(e){}		//if (sdkInit &lt; 1)		//	return false;	}	// return immediately if there is not an active search engine	if (!this.engine)		return false;		try {			// base url to check for icons		this.checkUrl 	= searchshield.avgCallFunc(this.doc, 'GetIconUrl', '1');		// check if using linked or local icons		this.useLocalImgs	= !searchshield.getUrlContents(this.checkUrl);		// get the clock url		this.clockUrl 	= searchshield.avgCallFunc(this.doc, 'GetIconUrl', '0');	}	catch(e){}			// STEP 3 - Get all document links and add AVG images	var alltags = this.doc.getElementsByTagName("*");	// this method works for IE, FF and Chrome	for (var i=0; i &lt; alltags.length; i++)	{		// ignore verdicts		if (alltags[i].id &amp;&amp; (alltags[i].id.indexOf("LXPLSS_") != -1))			continue;			//should the link be included?  Make sure includeLink always returns an href else FALSE,		var href = this.engine.includeLink(alltags[i]); 		if (!href)			continue;		var newNode = this.addLink(alltags[i], href);		this.engine.addImage(newNode, this.clockUrl, false);	}	return (this.links ? this.links.length : false);};////////////////    SEARCH    ////////////////////////////////    SEARCH ENGINE    ////////////////// Interface for a SearchEngine objectsearchshield.SearchEngine = function(search){	this.search = search;	this.type = 'standard';	this.processFrames = false;	this.new_links		= true;	this.onlyPrimaries	= true;	this.inline = {		clockImage: "linkscanner://clock12.png",		image: [	"linkscanner://safe12.png",					"linkscanner://caution12.png",					"linkscanner://warning12.png",					"linkscanner://blocked12.png"				],		color: {			classname: ["green","yellow","orange","red"],			border: ["#00A120", "#EAA500", "#F57301", "#D20003"],			background: ["#C3E5CA", "#FEEFAE", "#FFD3B0", "#F5D4C1"]		}	};	this.filter_urls = [		"ad.doubleclick.net", "ads1.revenue.net", "aslads.ask.com",		"bluestreak.com", "clickbacktrack.net", "clickbank.net",		"clickboothlnk.com", "clickmanager.com", "clickserve.cc-dt.com",		"dartsearch.net", "clicktraxmedia.com", "clk.atdmt.com",		"dpi-digialphoto.com", "feedpoint.net", "hypertracker.com",		"jdoqocy.com", "kqzyfj.com", "m1428.ic-live.com",		"mediaplex.com", "mr.mdmngr.com", "n339.asp-cc.com",		"offeredby.net", "offerweb.com", "pinktrax.com",		"pinktrax.com", "pixel1523.everesttech.net", "qckjmp.com",		"r.rd06.com", "revenuewire.net", "s0b.bluestreak.com",		"s2.srtk.net", "servedby.advertising.com", "store.yahoo.com",		"tf8.cpcmanager.com", "thetoptracker.com", "track.searchignite.com",		"tracking.searchmarketing.com", "www.dpbolvw.net", "www.rkdms.com",		"www.yellowbookleads.com"		];	this.shortened_urls = [		"3.ly", "bit.ly", "is.gd", "tr.im", "short.to", "tiny.cc", "tinyurl.com", "lnk.ms", "msplinks.com"		];	this.showCleanVerdicts		= true;	this.showLowRiskVerdicts	= true;	this.showMedRiskVerdicts	= true;	this.VeriSignSplit			= searchshield.VERISIGN_SPLIT_NOTEST;};searchshield.SearchEngine.prototype.flyoverExists = function (doc){	return !!doc.getElementById("XPLSS_Flyover");};searchshield.SearchEngine.prototype.inlineExists = function (doc){	return !!doc.getElementById("XPLSS_InlineFlyover");};searchshield.SearchEngine.prototype.validSearch = function(href) { return false; };searchshield.SearchEngine.prototype.includeLink = function(link) { return false; };searchshield.SearchEngine.prototype.insertNodes = function(node, doc){	var element = node.element;	var parentNode = node.element.parentNode;	if (parentNode == null)	{		// try and find element again based on the hash		element = doc.getElementById("xplid_" + node.hash);		parentNode = !!element ? element.parentNode : null;	}	var insertNode = !!element ? element.nextSibling : null;	while ((insertNode			!= null) &amp;&amp; 			(insertNode.tagName	!= null) &amp;&amp; 			(insertNode.tagName	== "SPAN"))	{		insertNode = insertNode.nextSibling;	}		return [insertNode, parentNode];};searchshield.SearchEngine.prototype.addImage	= function(node, image, hidden){	var element	= node.element;	var hash	= node.hash;	var score 	= node.score;	// set verdict display configuration	var doc = element.ownerDocument;	if (this.type != 'inline' &amp;&amp; !doc.getElementById('XPLSS_Flyover'))		searchshield.initFlyover(doc, this);	// get the proper insertion point for the image	var insertNodes = this.insertNodes(node, doc);	var insertNode = insertNodes[0];	var parentNode = insertNodes[1];	if (!parentNode)		return;	// see if we already have an image	if ((insertNode		!= null) &amp;&amp; 		(insertNode.id	!= null) &amp;&amp; 		(insertNode.id.indexOf("XPLSS_") &gt; -1))	{		return;	}	// mark search result anchor so it isn't processed repeatedly	if (score == undefined)		element.setAttribute("avglschecked", hash + "S" + this.VeriSignSplit);	// create a new image	var img = doc.createElement('img');	img.src = image;	img.id = "XPLSS_" + hash;	img.style.borderStyle = "none";	img.style.margin = "0 3px";		// for IE, specify these style attributes to prevent inadvertent inheritance from parent	if (img.width &amp;&amp; img.height)	{		img.style.width = img.width + 'px';		img.style.height = img.height + 'px';	}		// apply custom element styles	this.updateElementStyle(img, this.addImageStyle);		// create the link element 	var anchor = doc.createElement("A");	anchor.setAttribute("id", "LXPLSS_" + hash);	if ((hidden != null) &amp;&amp; (hidden == true))	{	// hiding the parent will also hide its child nodes		anchor.style.display = "none";	}		// Default anchor styles	//Over-ride possible border style with inline declaration	anchor.style.borderStyle = "none";	// apply custom element styles	this.updateElementStyle(anchor, this.addAnchorStyle);	if (score == searchshield.SCORE_SS_VERISIGN)	{		anchor.style.textDecoration = "none";		anchor.style.background = "none repeat scroll 0 0 transparent";	}	// append the image to the link	anchor.appendChild(img);	// insert the node as either a sibling or a child	if (insertNode != null)		parentNode.insertBefore(anchor, insertNode);	else		parentNode.appendChild(anchor);			return anchor;};searchshield.SearchEngine.prototype.updateImage = function (hash, search, score, image, alt_image, flyover, click_thru, altClick_thru){		var updated = false;		var frameDoc  = this.search.doc;		var docFrames = frameDoc.frames;		var frameElem;		if (docFrames &amp;&amp; this.processFrames)		{			for (var i=0; i &lt; docFrames.length; i++)			{				try {					if (docFrames[i].document.getElementById(hash))					{						frameElem = docFrames[i].frameElement;						frameDoc = docFrames[i].document;						break;					}				} 				catch(err){}			}		}		while ((element = frameDoc.getElementById(hash)) != null)		{			// check configuration to determine if verdict display property			var showVerdict = true;						var nSeverity = Number(score - 1);			switch (nSeverity)			{				case searchshield.XPLCHECK_RESULT_SEV_LOW:					showVerdict = this.showLowRiskVerdicts;					break;				case searchshield.XPLCHECK_RESULT_SEV_MED:					showVerdict = this.showMedRiskVerdicts;					break;				case searchshield.XPLCHECK_RESULT_SEV_NONE:					showVerdict = this.showCleanVerdicts;					break;				default:					if (score == searchshield.SCORE_SS_VERISIGN)						showVerdict = this.showCleanVerdicts;					break;			}						// remove image if no url specified			if ((!showVerdict) || (image == null) || (image.length &lt; 1))			{				// hide the parent anchor node				element.parentNode.style.display = "none";				// mark the id as being hidden (element is the image)				element.id = element.id + "H";				updated = true;								// if not a verisign score				if (score != searchshield.SCORE_SS_VERISIGN)					continue;			}			// cleanup flyover, replace any new lines or single quotes			flyover = searchshield.CleanupHTML(flyover);			// mark the id as having been updated			element.id = element.id + "U" + score;			element.src	= image;			element.attachEvent("onmouseover", function(e){avglsflyover.popup(e, hash, search, flyover)});			element.attachEvent("onmouseout", function(e){avglsflyover.hide(e)});			// check for attribute updates (elementAttribute is an associative array (i.e., object)			if (this.elementAttribute)			{				for (a in this.elementAttribute)				{					if(this.elementAttribute[a])						element.setAttribute(a, this.elementAttribute[a]);				}			}			// To dynamically reduce verdict image size if it causes its container to scroll			// when not showing alt images determine if the element containing			// the verdict image is scrolling and decrease the image size by			// the scroll amount (min size is 80% or original)			var reduceBy	= 0.8;			var scrl		= 0;			if (!alt_image || this.omitAltImage || this.VeriSignSplit == searchshield.VERISIGN_SPLIT_TESTB)			{				try{					var maxLoop = 5;					var cN = element.parentNode.parentNode;  //image-&gt;anchor-&gt;containerNodes...					while (cN &amp;&amp; maxLoop--)					{						if (cN.tagName == "DIV" || cN.tagName == "SPAN")						{							// get object height depending on ie document mode							var clientHeight = (cN.clientHeight == 0 || 								(this.search.doc.documentMode &amp;&amp; this.search.doc.documentMode &lt; 8)) ? 								cN.offsetHeight : 								cN.clientHeight;							scrl = cN.scrollHeight - clientHeight;							break;						}						cN = cN.parentNode;					}					if (0 &lt; scrl)					{						var eH = (element.height - scrl)/element.height;						if (reduceBy &gt; eH)							eH = reduceBy;												var newDim = Math.ceil(eH*element.height);												element.height = newDim;						element.width = newDim;												element.style.height = newDim + "px";						element.style.width = newDim + "px";					}				}				catch(e){}			}			// set default style attributes			element.style.display		= "";						// if verisign icon showing move our icon up for better centering of the 2			// except for IE7 browser - it does not like this style			try {				var ieVersion = parseFloat(navigator.appVersion.split("MSIE")[1]);				if (alt_image &amp;&amp; (alt_image.length &gt; 0) &amp;&amp; ieVersion != 7)					element.style.verticalAlign = "10%";			}			catch(err){};			// apply custom element styles			this.updateElementStyle(element, this.updateImageStyle)			// update the click thru			var link = this.search.doc.getElementById("L" + hash);			if (link)			{				link.href = click_thru;				link.id = link.id + "U" + score;			}			updated = true;			// add the alternate image if supplied BUT not on avg yahoo			if ((alt_image)				&amp;&amp; 				(alt_image.length &gt; 0)	&amp;&amp; 				(!this.omitAltImage)	&amp;&amp;				(this.VeriSignSplit != searchshield.VERISIGN_SPLIT_TESTB))			{				var vhash = hash.substring(hash.indexOf("_")+1);				// create a temporary link node				var tmp_node = {						element:	element.parentNode,						href:		altClick_thru,						hash:		vhash + "VU" + score,						search:		this.searchHash,						score:		score					};				var altAnchor = this.addImage(tmp_node, alt_image, false);				if (altAnchor &amp;&amp; altAnchor.firstChild)				{					altAnchor.firstChild.setAttribute("onmouseover", "");					altAnchor.href = altClick_thru;				}			}		}				if (updated != false)		{			this.resizeFrame(frameElem);			return true;		}	return false;};searchshield.SearchEngine.prototype.updateElementStyle = function (element, elementStyle){	if (elementStyle)	{	// a NULL attribte value will unset it		for(attr in elementStyle)		{			try {				if (element.style.setAttribute)					element.style.setAttribute(attr, elementStyle[attr]);				else					element.style[attr] = elementStyle[attr];			} catch(err){}		}	}};searchshield.SearchEngine.prototype.resizeFrame = function (frameElem){	// resize frame to prevent unwanted scrolling after inserting verdicts	// ignore inline and non-frame engines	if ((this.type == 'inline') || (!this.processFrames))		return;	// ensure all required elements are available	if ((frameElem == null) || (frameElem.style == null) || (frameElem.contentWindow == null))		return;	// if frame is scrolling vertically then resize	var frameHeight = parseInt(frameElem.style.height, 10);	if (!isNaN(frameHeight) &amp;&amp; (frameHeight &lt; frameElem.contentWindow.document.body.scrollHeight))		frameElem.style.height = frameElem.contentWindow.document.body.scrollHeight + 'px';	return;};searchshield.SearchEngine.prototype.getImgElement = function (element){	// return an xpl img element associated with a given element	if (element == null)		return null;	// go up the parent tree looking for a header or div	while ( (element.parentNode != null) &amp;&amp; 			(element.tagName.charAt(0) != "H") &amp;&amp; 			(element.tagName.charAt(0) != "D") &amp;&amp;			(element.tagName.charAt(0) != "T") )	{		element = element.parentNode;	}	// if all the way to the top, nothing	if ((element.tagName == "HTML") || (element == null))		return null;	// get image tags, if none we are done	var imgTags = element.getElementsByTagName("IMG");	if ((imgTags == null) || (imgTags.Length &lt; 1))		return null;	for (var i = 0; i &lt; imgTags.length; i++)	{		if ((imgTags[i].id == null) || (imgTags[i].id.indexOf("XPLSS_") == -1))			continue;		return imgTags[i];	}	// else didn't find anything	return null;};searchshield.SearchEngine.prototype.setRatingsConfig = function (doc){	// get verdict configuration, need at least severity	var results = searchshield.avgCallFunc(doc, 'GetRatingsConfig');	var parts = !!results ? results.split('::') : null;	if (parts != null &amp;&amp; parts.length &gt;= 5)	{	//if set to default then get config value		if (this.showCleanVerdicts === true)			this.showCleanVerdicts		= (parseInt(parts[0]) == 1) ? true : false;					if (this.showLowRiskVerdicts === true)			this.showLowRiskVerdicts	= (parseInt(parts[1]) == 1) ? true : false;				if (this.showMedRiskVerdicts === true)			this.showMedRiskVerdicts	= (parseInt(parts[2]) == 1) ? true : false;					this.VeriSignSplit	= (parseInt(parts[4]));	}		return true;};searchshield.SearchEngine.prototype.init_inline_ratings = function (doc){	if ((doc == null) || (doc.getElementById("XPLSS_InlineFlyover")))		return;	if (!searchshield.quirksMode)	{		// create style for inline flyovers		var styleTag = doc.createElement("style");		styleTag.setAttribute("id","avgILFOStyle");				var headTag = doc.getElementsByTagName("head")[0];		headTag.appendChild(styleTag);		var inline_style = styleTag.styleSheet;		// stub in the base image name as the url		inline_style.addRule(".avgILFO", "background: url(linkscanner://default_inline_border_tl.png) no-repeat top left;");		inline_style.addRule(".avgILFO", "width:0px; font-size:0px; z-index:9999; visibility:hidden; position:absolute; left:-5000px;");				inline_style.addRule(".avgILFO_content", "background: url(linkscanner://default_inline_border_r.png) top right repeat-y;");		inline_style.addRule(".avgILFO_content","font-size:10px; color:black; padding:0px 10px; text-align:left; word-wrap:break-word; line-height:130%");				inline_style.addRule(".avgILFO_head", "background: url(linkscanner://default_inline_border_tr.png) no-repeat top right;");		inline_style.addRule(".avgILFO_head", "width:0px; height:5px;");		inline_style.addRule(".avgILFO_head div","height:5px;");			inline_style.addRule(".avgILFO_foot", "background: url(linkscanner://default_inline_border_bl.png) no-repeat bottom left");		inline_style.addRule(".avgILFO_foot", "height:5px;");				inline_style.addRule(".avgILFO_foot div", "background: url(linkscanner://default_inline_border_br.png) no-repeat bottom right");		inline_style.addRule(".avgILFO_foot div", "height:5px; width:0px;");	}		try {			// create the popup box		var box = doc.createElement("DIV");		if (searchshield.quirksMode)		{			box.style.visibility = "hidden";			box.style.position = "absolute";			box.style.left = "-5000px";		}		box.setAttribute("id", "XPLSS_InlineFlyover");		box.setAttribute("class", "avgILFO");		doc.body.appendChild(box);		box = null;	}	catch(boxErr){}};searchshield.SearchEngine.prototype.show_inline_ratings = function (doc, node, image){		var href	= node.href;	var anchor	= node.element;	if ((href == null) || (href.length &lt; 1))		return;			if (avglsinlineflyover.imageExists(anchor))		return;		// mark search result anchor so it isn't processed repeatedly	anchor.setAttribute("avglschecked", "1");		// get verdict 	this.display_inline(doc, anchor, href, node, false);};searchshield.SearchEngine.prototype.display_inline = function (doc, anchor, href, node, update, min_severity){	// min_severity is the lowest severity to display, so setting it to	// 1 would not display safe icons		var results	= searchshield.avgCallFunc(doc, 'MalsiteCheck', href);	if (results == null)		return;		var parts = results.split('::');		// need at least severity	if (parts == null)		return;				var nSeverity = parseInt(parts[0]);		if (!update &amp;&amp; nSeverity == searchshield.XPLCHECK_RESULT_SEV_NONE)	{		var shortUrl = searchshield.FilterUrl(href, this.shortened_urls);		if (shortUrl)		{	// shortened url verdicts display later			var engine = this;			anchor.attachEvent("onmouseover", function(event){avglsinlineflyover.mouseOverHandler(event, doc, engine)});			return;		}	}		// severity -1 signifies sb.dat load failure	if ( nSeverity == -1 )		nSeverity = searchshield.XPLCHECK_RESULT_SEV_NONE;	//blacklist url	var blShortUrl = false;	if (nSeverity == searchshield.XPLCHECK_RESULT_SEV_BLOCK)	{		var shortUrl = searchshield.FilterUrl(href, this.shortened_urls);		if (shortUrl)			blShortUrl = true;	}		// need xlated cat tag and category	if (parts.length &lt; 3)		return;	// check the minimum to display	if ((min_severity != null) &amp;&amp; (nSeverity &lt; min_severity))		return;			if (nSeverity == searchshield.XPLCHECK_RESULT_SEV_LOW &amp;&amp; !this.showLowRiskVerdicts)	{		if (update)			this.avg_ls_inline_hide_verdict(anchor);				return;	} 	if (nSeverity == searchshield.XPLCHECK_RESULT_SEV_MED &amp;&amp; !this.showMedRiskVerdicts)	{		if (update)			this.avg_ls_inline_hide_verdict(anchor);				return;	}	if (nSeverity == searchshield.XPLCHECK_RESULT_SEV_NONE &amp;&amp; !this.showCleanVerdicts) 	{		if (update)			this.avg_ls_inline_hide_verdict(anchor);					return;	}	if (update)		this.update_inline_image(anchor, nSeverity, parts);	else		this.add_inline_image(doc, anchor, nSeverity, parts, blShortUrl);};searchshield.SearchEngine.prototype.avg_ls_inline_hide_verdict = function (anchor){	var image = avglsinlineflyover.getImage(anchor);	if (image)	{		image.style.display = "none";		if (image.parentNode &amp;&amp; image.parentNode.id == "avg_ls_anch")			image.parentNode.style.display = "none";	}};searchshield.SearchEngine.prototype.update_inline_image = function (anchor, nSeverity, aRisk){	// update the image already in the page	if (anchor &amp;&amp; anchor.firstChild)	{		var html  = '';		var image = ''; 		if (aRisk != null &amp;&amp; nSeverity != null)		{			var riskCategory = aRisk[1];			var riskName	 = aRisk[2];			var bgColor		 = this.inline.color.background[nSeverity];			var borderColor	 = this.inline.color.border[nSeverity];			image			 = this.inline.image[nSeverity];			html			 = avglsinlineflyover.build(riskCategory, riskName, bgColor, borderColor);		}				var imageElem = anchor.firstChild;		imageElem.src = image;				if ( html &amp;&amp; html.length &gt; 0 )		{			imageElem.setAttribute("title", "");			imageElem.attachEvent("onmouseover", function(e){avglsinlineflyover.popup(e, html, nSeverity)});			imageElem.attachEvent("onmouseout", function(e){avglsinlineflyover.hide(e)});		}	}};// add the image to the pagesearchshield.SearchEngine.prototype.add_inline_image = function (doc, anchor, nSeverity, aRisk, blShortUrl){	if (anchor == null || anchor.parentNode == null)		return null;	// get the proper insertion point for the image	var insertNode = anchor.nextSibling;	while ((insertNode			!= null) &amp;&amp; 			(insertNode.tagName != null) &amp;&amp; 			(insertNode.tagName == "SPAN"))	{		insertNode= insertNode.nextSibling;	}		// see if we already have an image anchor	if ((insertNode		!= null) &amp;&amp; 		(insertNode.id	!= null) &amp;&amp; 		(insertNode.id	== "avg_ls_anch"))	{		return null;	}	var html  = '';	var image = this.inline.clockImage; 	if (aRisk != null &amp;&amp; nSeverity != null)	{		var riskCategory = aRisk[1];		var riskName	 = aRisk[2];		var bgColor		 = this.inline.color.background[nSeverity];		var borderColor	 = this.inline.color.border[nSeverity];		image			 = this.inline.image[nSeverity];		var blUrl;		if (blShortUrl)		{			var aRiskName = riskName.split(':');			var sUrl = searchshield.checkUrl(aRiskName[1]);			blUrl = {};			blUrl.riskNameLabel = aRiskName[0] + ': ';			blUrl.riskCategory = riskCategory;			blUrl.bgColor = bgColor;			blUrl.borderColor = borderColor;			blUrl.sUrl = sUrl;		}		else		{			html = avglsinlineflyover.build(riskCategory, riskName, bgColor, borderColor);		}	}	doc = anchor.ownerDocument;	var img		 = doc.createElement("img");	img.src		 = image;	img.setAttribute("id","avg_ls_image");	img.style.width = "12px";	img.style.height = "12px";	img.style.border = "none";	img.style.padding = "0 3px";	img.style.margin = "0";		if ((html &amp;&amp; html.length &gt; 0) || (blUrl != undefined))	{		img.setAttribute("title", "");		img.attachEvent("onmouseover", function(e){avglsinlineflyover.popup(e, html, nSeverity, blUrl)});		img.attachEvent("onmouseout", function(e){avglsinlineflyover.hide(e)});	}	// create the link element 	var newAnchor = doc.createElement("A");	newAnchor.setAttribute("id", "avg_ls_anch");	newAnchor.style.display = "inline-block";	newAnchor.style.background = "none repeat scroll 0 0 transparent";		newAnchor.appendChild(img);	img = null;	// insert the node as either a sibling or a child	if (insertNode != null)		anchor.parentNode.insertBefore(newAnchor, insertNode);	else		anchor.parentNode.appendChild(newAnchor);				return newAnchor;		};////////////////    SEARCH ENGINE    ///////////////////////////////    GOOGLE SEARCH ENGINE    ///////////////searchshield.GoogleSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.onlyPrimaries = false;};searchshield.GoogleSearchEngine.prototype = new searchshield.SearchEngine();searchshield.GoogleSearchEngine.prototype.constructor = searchshield.GoogleSearchEngine;searchshield.GoogleSearchEngine.prototype.name = "google";	// the name by which the search engine is known (always lowercase)searchshield.GoogleSearchEngine.prototype.validSearch = function(href) {	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var hostMatch	= false;	var domain		= uri.host;		// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;	// For Google the host must match:	//	.google.com		OR	//	.google.com.XX	OR	//	.google.co.XX	OR	//	.google.XX		where XX is a country code	//	one special case is www.googe.off.ai (Anguilla)	//	Where any subdomain can come before the top level domain	if ( /(\.(?:google|mozilla)\.(?:com|(?:co|off)\.[a-z]{2}|[a-z]{2}))/i.test(domain) )	{		//check the path		if ((path.indexOf("search?") == 0) ||			(path.indexOf("sponsoredlinks?") == 0) ||			(path.indexOf("webhp?") == 0) ||			(path.indexOf("webhp#") == 0) ||			(path.indexOf("#q=") == 0) ||			(path.indexOf("#hl=") == 0) ||			(path.indexOf("#sclient=") == 0))		{			return true;		}	}	return false;};searchshield.GoogleSearchEngine.prototype.includeLink = function(tag){	var href = "";	var outHref = false;	var findStr = "";	// check for interstitials	if (searchshield.DoesURLContain(tag.href, this.search.uri.host))	{		findStr = this.search.uri.host + "/interstitial?";		if (tag.className == "l" &amp;&amp; tag.href)		{			if (tag.href.indexOf(findStr) != -1)			{				findStr = "?url=";				var pos = tag.href.indexOf(findStr);				if (pos !== -1)				{					pos += 5;					outHref = tag.href.substring(pos);					if (searchshield.FilterUrl(outHref, this.filter_urls))						return false;												return outHref;				}			}		}		if (tag.className == "sla")		{			findStr = "/url?q=";			urlPos = tag.href.indexOf(findStr);			if (urlPos != -1)			{				urlPos += 7;				outHref = tag.href.substring(urlPos);				return outHref;			}		}				// if an ad id		if ((tag.id.indexOf("pa") == 0) || (tag.id.indexOf("an") == 0) ||			(tag.className == "resultLink"))		{			var urlPos = -1;				// ads now need unescaping			href = unescape(tag.href);			findStr= "/url?sa=";			if (href.indexOf(findStr) != -1)			{	// first kind, locate real url				findStr= "&amp;q=http";				urlPos = href.indexOf(findStr);				if (urlPos != -1)					urlPos += 3;	// puts it on the http			}			if (urlPos == -1)			{				findStr = "/pagead/iclk?sa=";				if (href.indexOf(findStr) != -1)				{	// second kind, locate real url					findStr = "&amp;adurl=http";					urlPos	= href.indexOf(findStr);					if (urlPos != -1)						urlPos += 7; // puts it on the http				}			}			if (urlPos == -1)			{				if (href.indexOf("/aclk?sa=") != -1)				{	// third kind					urlPos = href.indexOf("&amp;q=http");					if (urlPos != -1)						urlPos += 3; // puts it on the http					else					{						urlPos  = href.indexOf("&amp;lp=http");						if (urlPos != -1)							urlPos += 4;						else						{							findStr = "&amp;adurl=http";							urlPos	= href.indexOf(findStr);							if (urlPos != -1)								urlPos += 7; // puts it on the http						}											}				}			}			if (urlPos == -1)			{				if (href.indexOf("/url?cad=") != -1)				{	// fourth kind					urlPos = href.indexOf("&amp;q=http");					if (urlPos != -1)						urlPos += 3; // puts it on the http				}			}			if (urlPos != -1)			{				outHref = href.substring(urlPos);				// the destination url is in the href string of this redirector				if (outHref.indexOf('xg4ken.com') &gt; -1)				{					urlPos = (unescape(outHref)).indexOf('url[]=') + 6;					var destUrl = (unescape(outHref)).substring(urlPos);					if (searchshield.FilterUrl(destUrl, this.filter_urls))					{						var destUrl = searchshield.getHrefFromCiteElement(tag);						if (destUrl)							return searchshield.checkUrl(searchshield.removeHtmlTags(destUrl));						return false;					}					return destUrl;				}				// filtered url but can get destination from href string				if (outHref.indexOf('altfarm.mediaplex.com') &gt; -1)				{					var tmpoh = unescape(outHref);					var destUrl = tmpoh.substring(tmpoh.indexOf('DURL=')+5);					if (destUrl != null)					{						var destUrl = unescape(destUrl);						return destUrl;					}				}				// extract any fragment text, shouldn't be unescaped				var pound = outHref.indexOf("#");					if (pound != -1)				{					var fragment = outHref.substring(pound);					outHref = outHref.substring(0, pound);					outHref = unescape(outHref);					outHref += fragment;					if (searchshield.FilterUrl(outHref, this.filter_urls))						return false;					return outHref;				}				outHref = unescape(outHref);				if (outHref.indexOf("?") == -1)				{					var ampPos = outHref.indexOf("&amp;");					if (ampPos != -1)						outHref = outHref.substring(0, ampPos);				}								if (searchshield.FilterUrl(outHref, this.filter_urls))				{					var destUrl = searchshield.getHrefFromCiteElement(tag);					if (destUrl)						return searchshield.checkUrl(searchshield.removeHtmlTags(destUrl));					return false;				}				return outHref;			}		}		// recommended link - use following to see one		// http://www.google.cz/search?hl=cs&amp;q=warey&amp;btnG=Hledat&amp;lr=lang_cs		// elem parent class = r		// href must contain - url? and q=http		var parentNode = tag.parentNode;		if (parentNode &amp;&amp; (parentNode.className.toLowerCase() == "r"))		{			href = tag.href;			if (href &amp;&amp; (href.indexOf("/url?") != -1))			{				// locate the real url				var urlPos = href.indexOf("q=http");				if (urlPos != -1)				{					urlPos += 2;					outHref = href.substring(urlPos);					// include entire param up to '&amp;'					var ampPos = outHref.indexOf("&amp;");					if (ampPos != -1)						outHref = outHref.substring(0, ampPos);					return outHref;				}			}		}	}	// no link to self	else if (tag.className &amp;&amp; (tag.className.charAt(0) == "l" || tag.className == "sla"))	{		// check for any images on the link		if (0 === tag.getElementsByTagName("IMG").length)			return tag.href;	}	// else nothing	return false;};///////////////    GOOGLE    //////////////////////////////    AVG GOOGLE SEARCH ENGINE    ///////////////searchshield.AVGGoogleSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.onlyPrimaries = false;};searchshield.AVGGoogleSearchEngine.prototype = new searchshield.SearchEngine();searchshield.AVGGoogleSearchEngine.prototype.constructor = searchshield.AVGGoogleSearchEngine;searchshield.AVGGoogleSearchEngine.prototype.name = "avggoogle";	// the name by which the search engine is known (always lowercase)searchshield.AVGGoogleSearchEngine.prototype.validSearch = function(href) {	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var domain		= uri.host;		// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;	if  (domain.indexOf("search.avg.com") &gt; -1)	{   // ads link back to google		return true;	}		return false;};searchshield.AVGGoogleSearchEngine.prototype.includeLink = function(tag){	var outHref = false;	var findStr = "";	// check for interstitials	if (searchshield.DoesURLContain(tag.href, "google.com"))	{		// link back to self - DIV elem GrandParent class of res1 or res3 is Sponsored Link 		var parentNode = tag.parentNode;		if (parentNode)		{			var grandParentNode = tag.parentNode.parentNode;			if (grandParentNode)			{				if ((grandParentNode.tagName == "DIV") &amp;&amp; 					((grandParentNode.className.toLowerCase() == "res1") ||					(grandParentNode.className.toLowerCase() == "res3")))				{					var urlPos = -1;						// ads now need unescaping					href = unescape(tag.href);					if (urlPos == -1)					{						if (href.indexOf("/aclk?sa=") != -1)						{								findStr = "&amp;adurl=http";							urlPos	= href.indexOf(findStr);							if (urlPos != -1)								urlPos += 7; // puts it on the http														}					}					if (urlPos != -1)					{						outHref = href.substring(urlPos);						// the destination url is in the href string of this redirector						if (outHref.indexOf('xg4ken.com') &gt; -1)						{							urlPos = (unescape(outHref)).indexOf('url[]=') + 6;							var destUrl = (unescape(outHref)).substring(urlPos);							if (searchshield.FilterUrl(destUrl, this.filter_urls))							{								var destUrl = searchshield.getHrefFromCiteElement(tag);								if (destUrl)									return searchshield.checkUrl(searchshield.removeHtmlTags(destUrl));								return false;							}							return destUrl;						}						// filtered url but can get destination from href string						if (outHref.indexOf('altfarm.mediaplex.com') &gt; -1)						{							var tmpoh = unescape(outHref);							var destUrl = tmpoh.substring(tmpoh.indexOf('DURL=')+5);							if (destUrl != null)							{								var destUrl = unescape(destUrl);								return destUrl;							}						}										// extract any fragment text, shouldn't be unescaped						var pound = outHref.indexOf("#");							if (pound != -1)						{							var fragment = outHref.substring(pound);							outHref = outHref.substring(0, pound);							outHref = unescape(outHref);							outHref += fragment;							if (searchshield.FilterUrl(outHref, this.filter_urls))								return false;							return outHref;						}						outHref = unescape(outHref);						if (outHref.indexOf("?") == -1)						{							var ampPos = outHref.indexOf("&amp;");							if (ampPos != -1)								outHref = outHref.substring(0, ampPos);						}										if (searchshield.FilterUrl(outHref, this.filter_urls))						{							var destUrl = searchshield.getHrefFromCiteElement(tag);							if (destUrl)								return searchshield.checkUrl(searchshield.removeHtmlTags(destUrl));							return false;						}						return outHref;					}				}			}		}	}				// no link to self	else	{		var parentNode = tag.parentNode;		if (parentNode)		{			var grandParentNode = tag.parentNode.parentNode;			if (grandParentNode)			{				if ((grandParentNode.tagName == "DIV") &amp;&amp; 					(grandParentNode.className.toLowerCase() == "res2"))				{					// check for any images on the link					if (0 === tag.getElementsByTagName("IMG").length)						return tag.href;				}			}		}	}	// else nothing	return false;}///////////////    AVG GOOGLE    //////////////////////////////    YAHOO SEARCH ENGINE    ///////////////searchshield.YahooSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.showCleanVerdicts = false;};searchshield.YahooSearchEngine.prototype = new searchshield.SearchEngine();searchshield.YahooSearchEngine.prototype.constructor = searchshield.YahooSearchEngine;searchshield.YahooSearchEngine.prototype.name = "yahoo";searchshield.YahooSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var domain = uri.host;	// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;	// For Yahoo the host must match:	//	search.yahoo.com		OR	//	xx.search.yahoo.com where xx is the country code OR	//	search.yahoo.co.jp OR	// for Yahoo China: one.cn.yahoo.com, search.cn.yahoo.com or www.yahoo.cn	if ((domain.match(/search\.yahoo\.co(?:m|\.jp)/i) ||		domain.match(/(?:search|one)\.cn\.yahoo\.com/i) ||		domain.match(/www\.yahoo\.cn/i)) &amp;&amp; 		path.match(/^(?:search[;?]|s\?)/i))	{		return true;	}	return false;};searchshield.YahooSearchEngine.prototype.includeLink = function(tag){	var href		= "";	var outHref		= "";	var findStr		= "";	// yahoo likes to encode the url	href = unescape(tag.href);	if ((tag.className.indexOf("yschttl") != -1) || 		(tag.className.indexOf("spt") != -1))	{		var da = href.indexOf("**");		var ad = href.indexOf("*-");		if (da != -1)			outHref = href.substring(da+2);		else if (ad != -1)			outHref = href.substring(ad+2);		else			outHref = href ;					if (outHref.toLowerCase().indexOf("overture.") !== -1)			return false;	}	else if ((tag.tagName)			&amp;&amp; 			 (tag.tagName === "A") 	&amp;&amp; 			 (!tag.className))	{		var tagParent = tag.parentNode;				// if anchor without className then search parentNodes		if ((tagParent) &amp;&amp;			(tagParent.tagName !== "EM") &amp;&amp;			(searchshield.getParentNodeByClassName("yst-web", tag, 4)))		{			// China Yahoo support			outHref = href;		}				else if ((tagParent) &amp;&amp;				(tagParent.tagName === "H3") &amp;&amp;				(!!searchshield.getParentNodeById("WS2m",tag, 5)))		{			// Japan Yahoo support			var da = href.indexOf("**");			if (da == -1)				outHref = href;			else				outHref = href.substring(da+2);		}		else if ((tagParent) &amp;&amp;				(tagParent.className !== "c") &amp;&amp;				(tagParent.parentNode.id !== "fpn") &amp;&amp;				(!!searchshield.getParentNodeByClassName("ymc", tag, 7)))		{			// Korea Yahoo support - when not caught by yschttl			var da = href.indexOf("**");			if (da !== -1)				outHref = href.substring(da+2);		}	}	else if (!this.onlyPrimaries)	{		findStr = "&amp;yargs=";		var yargs = href.indexOf(findStr);		if (yargs != -1)		{			outHref = href.substring(yargs+findStr.length);			// check for prefix			if (outHref.indexOf("://") == -1)				outHref = "http://" + outHref;			// if inside an &lt;i&gt;, probably a paypal link, don't include			if (tag.parentNode &amp;&amp; (tag.parentNode.tagName == "I"))				return false;		} 	}	// filter domains	// split the url based on '/'	var parts = !!outHref ? outHref.split('/') : null;	// Filter out domains that match any of the search engine's names	if (!parts || !parts[2])		return false;			var domain = parts[2];	if ((domain.indexOf("rdrjp.yahoo.com") != -1)	||		(domain.indexOf("rdrkrs.yahoo.com") != -1)	||		(domain.indexOf("rdrtpe.yahoo.com") != -1)	||		(domain.indexOf("rdrird.yahoo.com") != -1)	||		(domain.indexOf("rdrhk2.yahoo.com") != -1)	||		(domain.indexOf("rdrsg1.yahoo.com") != -1)	||		(domain.indexOf("rdrin2.yahoo.com") != -1)	||		(domain.indexOf("rdre1.yahoo.com") != -1)	||		(domain.indexOf("rdrw1.yahoo.com") != -1)		)	{		return false;	}	// set for yahoo to get parent node for image insertion	var hash = searchshield.avgCallFunc(this.doc, 'GetHash', outHref);	tag.setAttribute("id", "xplid_" + hash);	return outHref;};///////////////    YAHOO SEARCH ENGINE    //////////////////////////////    AVG YAHOO SEARCH ENGINE    ///////////////searchshield.AVGYahooSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.showCleanVerdicts = false;	this.omitAltImage = true;	this.updateImageStyle = {		verticalAlign: null	};};searchshield.AVGYahooSearchEngine.prototype = new searchshield.SearchEngine();searchshield.AVGYahooSearchEngine.prototype.constructor = searchshield.AVGYahooSearchEngine;searchshield.AVGYahooSearchEngine.prototype.name = "avgyahoo";searchshield.AVGYahooSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	//path may be 'avg/search' or 'search'	var pathArray = uri.path.split("/");	var avg = pathArray[0];	// re stitch the uri path and query elements	// to use existing logic	var path = (undefined == pathArray[1]) ? pathArray[0] : pathArray[1];		path += uri.delimiter + uri.query;	// For AVG Yahoo classic the host must match:	//	yhs.search.yahoo.com	OR	//	.yhs.search.yahoo.com	if (domain.indexOf("yhs.search.yahoo.co") != -1)	{		if ((avg == "avg") &amp;&amp;			((path.indexOf("search?") == 0) ||			 (path.indexOf("search;") == 0)))		{			return true;		}	}		// also support new metro version which DOESN'T 	// contain /avg so avg split part is path	// valid domains are:	//	search.yahoo.com, 	//	xx.search.yahoo.com and	//	search.yahoo.co.xx	if (domain.indexOf("search.yahoo.co") != -1) 	{		// path (split avg) must start with search and		// contain the avg toolbar parameter		if (((path.indexOf("search?") == 0) ||			(path.indexOf("search;") == 0)) &amp;&amp;			(path.indexOf("fr=yhs-avg") != -1))		{			return true;		}	}	return false;};searchshield.AVGYahooSearchEngine.prototype.includeLink = function(tag){	var href		= "";	var outHref		= "";	var findStr		= "";	if (this.search.doc.body.className.toLowerCase() != "standard")	{	// handle as std Yahoo results page		return searchshield.YahooSearchEngine.prototype.includeLink(tag);	}		// yahoo likes to encode the url	href = unescape(tag.href);	if (tag.target == "_top")	{		var da = href.indexOf("**");		if (da != -1)			outHref = href.substring(da+2);		else			outHref = href ;		if (outHref.toLowerCase().indexOf("overture.") !== -1)			return false;	}	else if (!this.onlyPrimaries)	{		findStr = "&amp;yargs=";		var yargs = href.indexOf(findStr);		if (yargs != -1)		{			outHref = href.substring(yargs+findStr.length);			// check for prefix			if (outHref.indexOf("://") == -1)				outHref = "http://" + outHref;			// if inside an &lt;i&gt;, probably a paypal link, don't include			if (tag.parentNode &amp;&amp; (tag.parentNode.tagName == "I"))				return false;		} 	}	// filter domains	// split the url based on '/'	var parts = outHref.split('/');	// Filter out domains that match any of the search engine's names	if (!parts[2])		return false;			var domain = parts[2];	if ((domain.indexOf("rdrjp.yahoo.com") != -1)	||		(domain.indexOf("rdrkrs.yahoo.com") != -1)	||		(domain.indexOf("rdrtpe.yahoo.com") != -1)	||		(domain.indexOf("rdrird.yahoo.com") != -1)	||		(domain.indexOf("rdrhk2.yahoo.com") != -1)	||		(domain.indexOf("rdrsg1.yahoo.com") != -1)	||		(domain.indexOf("rdrin2.yahoo.com") != -1)	||		(domain.indexOf("rdre1.yahoo.com") != -1)	||		(domain.indexOf("rdrw1.yahoo.com") != -1)		)	{		return false;	}	return outHref;};///////////////    AVG YAHOO SEARCH ENGINE    //////////////////////////////    MSN SEARCH ENGINE    ///////////////searchshield.MSNSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.onlyPrimaries = false;};searchshield.MSNSearchEngine.prototype = new searchshield.SearchEngine();searchshield.MSNSearchEngine.prototype.constructor = searchshield.MSNSearchEngine;searchshield.MSNSearchEngine.prototype.name = "msn";searchshield.MSNSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var hostMatch	= false;	var domain		= uri.host;	// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;	// For MSN the host must match:	//	search.msn.com		OR	//	search.live.com	if (domain.indexOf("search.msn.co") &gt; -1)	{		if (domain.charAt(13) == 'm')			hostMatch = true;		else if ((domain.charAt(13) == '.') &amp;&amp; (domain.length == 16))			hostMatch = true;	}	else if (domain.indexOf("search.live.co") &gt; -1)	{		if (domain.charAt(14) == 'm')			hostMatch = true;		else if ((domain.charAt(14) == '.') &amp;&amp; (domain.length == 17))			hostMatch = true;	}		if (hostMatch)	{		if (path.indexOf("results.aspx") == 0)			return true;	}	return false;};searchshield.MSNSearchEngine.prototype.includeLink = function(tag){	var outHref = false;		// these don't seem common from Firefox, but they are in IE	if (searchshield.DoesURLContain(tag.href, "g.msn.co"))	{		var qPos = tag.href.indexOf("?");		if (qPos != -1)		{			var postPart = tag.href.substring(qPos+1);			var dblAmp = postPart.indexOf("&amp;&amp;");			if (dblAmp != -1)			{				outHref = postPart.substring(0, dblAmp);				return outHref;			}		}	}	else if (searchshield.DoesURLContain(tag.href, "r.msn.co"))	{		var element = tag;		var parentNode = tag.parentNode;		// top links - check for a CITE		var spanElements = element.getElementsByTagName("CITE");		if ((spanElements != null)				&amp;&amp; 			(spanElements.length &gt; 0))		{			outHref = spanElements[0].innerHTML;			// replace any nbsp's			outHref = outHref.replace("&amp;nbsp;", " ");			// url is after the last space in the html, after the '-'			var space_pos = outHref.lastIndexOf(" ");			if (space_pos != -1)				outHref = outHref.slice(space_pos + 1);			outHref = searchshield.checkUrl(outHref);			return outHref;		}				// side links 		if (element.lastChild != null)		{			outHref = element.lastChild.innerHTML;			if ( outHref != null)			{				outHref = searchshield.checkUrl(outHref);				return outHref;			}		}	}	else if (searchshield.DoesURLContain(tag.href, this.search.uri.host)					||			 searchshield.DoesURLContain(tag.href, ".live.com")					||			 searchshield.DoesURLContain(tag.href, "msn.")						||			 searchshield.DoesURLContain(tag.href, "msnscache.com")				||			 searchshield.DoesURLContain(tag.href, "advertising.microsoft.co")	||			 searchshield.DoesURLContain(tag.href, "javascript:")				||			 searchshield.DoesURLContain(tag.href, "go.microsoft.co")			||			 searchshield.DoesURLContain(tag.href, "hotmail.co"))	{		// not a link		return false;	}	else if (tag.id.toLowerCase() == "trademarks")	{		// don't link the trademark at the bottom of the page		return false;	}	else	{		// include it		return tag.href;	}};///////////////    MSN SEARCH ENGINE    //////////////////////////////    BING SEARCH ENGINE    ///////////////searchshield.BingSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);};searchshield.BingSearchEngine.prototype = new searchshield.SearchEngine();searchshield.BingSearchEngine.prototype.constructor = searchshield.BingSearchEngine;searchshield.BingSearchEngine.prototype.name = "bing";searchshield.BingSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var hostMatch	= false;	var domain		= uri.host;	// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;		// For bing the host must match:	//	www.bing.com or www.bing.net	//	xx.bing.com or xx.bing.net where xx is a country code	//	bing.com.xx where xx is a country code	//	bing.search.xxxx.net where xxxx may be something like daum	if ((domain.indexOf("www.bing.com") !== -1) ||		(domain.indexOf("www.bing.net") !== -1) ||		(domain.indexOf("bing.net") !== -1))	{		hostMatch = true;	}	else if ((domain.indexOf("bing.search.") !== -1) &amp;&amp; 			 (domain.indexOf(".net") === (domain.length-4))) 	{	//bing.search.xxxx.net		hostMatch = true;	}	else	{	// xx.bing.com or bing.com.xx		var domainLen = domain.length;		var tldPos = domain.indexOf(".bing.com");		if (tldPos &gt; -1)		{			if ((domainLen - tldPos) == 9)				hostMatch = true;		}		}		if (hostMatch)	{		var displayStyle = (domain == 'bing.search.daum.net') ? 'inline-block' : 'inline';		this.addAnchorStyle = {			display: displayStyle		};				if (path.indexOf("search?") == 0)			return true;	}	return false;};searchshield.BingSearchEngine.prototype.includeLink = function(tag){	var outHref = false;	if (tag.tagName == 'IMG')	{	//no images 		return false;	}			if (tag.href.charAt(0) == '/')	{	//no relative links		return false;	}	if (/trademarks/i.test(tag.id))	{		// don't link the trademark at the bottom of the page		return false;	}		if ((tag.parentNode) &amp;&amp; (/sc_stc/i.test(tag.parentNode.id)))	{	// don't verdict the social sites - our verdict doesn't fit		return false;	}	else if (!!searchshield.getParentNodeByClassName("sw_t",tag,3))	{	// no links in page header		return false;	}	else if (searchshield.DoesURLContain(tag.href, "r.msn.co") ||			 searchshield.DoesURLContain(tag.href, "overture.com"))	{	// france has r.msn.co and italy has overture.com sponsored links		// with the link in CITE element				var spanElements = null;				// top links - check for a CITE		spanElements = tag.getElementsByTagName("CITE");		if ((spanElements == null) || (spanElements.length &lt;= 0))		{			if (tag.parentNode &amp;&amp; tag.parentNode.parentNode)				spanElements = tag.parentNode.parentNode.getElementsByTagName("CITE");		}				if ((spanElements != null) &amp;&amp; (spanElements.length &gt; 0))		{			outHref = spanElements[0].innerHTML;			if (outHref != null)			{				// replace any nbsp's				outHref = outHref.replace("&amp;nbsp;", " ");				// url is after the last space in the html, after the '-'				var space_pos = outHref.lastIndexOf(" ");				if (space_pos != -1)					outHref = outHref.slice(space_pos + 1);				outHref = searchshield.checkUrl(outHref);				// save the link				return outHref;			}		}				// side links 		if (tag.lastChild != null)		{			outHref = tag.lastChild.innerHTML;			if (outHref != null)			{				outHref = searchshield.checkUrl(outHref);				// save the link				return outHref;			}		}	}	// no sponsored links for now 	else if (searchshield.DoesURLContain(tag.href, this.search.uri.host)	||		 searchshield.DoesURLContain(tag.href, ".live.com")				||		 searchshield.DoesURLContain(tag.href, ".bing.com")				||		 searchshield.DoesURLContain(tag.href, ".bing.net")				||		 searchshield.DoesURLContain(tag.href, ".daum.net")				||		 searchshield.DoesURLContain(tag.href, ".gmarket.co")			||		 searchshield.DoesURLContain(tag.href, ".multimap.com")			||		 searchshield.DoesURLContain(tag.href, "msn.")					||		 searchshield.DoesURLContain(tag.href, "ms.ciao.")				||		 searchshield.DoesURLContain(tag.href, "ms.ciao-")				||		 searchshield.DoesURLContain(tag.href, "advertising.microsoft.co")	||		 searchshield.DoesURLContain(tag.href, "javascript:")				||		 searchshield.DoesURLContain(tag.href, "go.microsoft.co")			||		 searchshield.DoesURLContain(tag.href, "hotmail.co")					||		 searchshield.DoesURLContain(tag.href, "cc.bingj.com")				||		 searchshield.DoesURLContain(tag.href, "microsofttranslator.com")	||		 searchshield.DoesURLContain(tag.href, ".engkoo.com")				||		 searchshield.DoesURLContain(tag.href, "sealinfo.verisign.com")		||		 searchshield.DoesURLContain(tag.href, "explabs.com")				||		 searchshield.DoesURLContain(tag.href, "onlinehelp.microsoft.com")	||		 searchshield.DoesURLContain(tag.href, ".myoverture"))	{		// not a link		return false;	}	else		return tag.href;};searchshield.BingSearchEngine.prototype.addImage = function(node, image, hidden){	var element	= node.element;	var parentNode 	= node.element.parentNode;	var grandParentNode = !!parentNode ? parentNode.parentNode : null;	// if there are redundant links in the same grandparent then skip them	if (!!grandParentNode)	{		gpChildren = grandParentNode.childNodes;		for (var i=0; i &lt; gpChildren.length; i++)		{			if (!!element.href &amp;&amp; gpChildren[i].tagName == "A" &amp;&amp; gpChildren[i].href == element.href)				return;		}	}	var parent = searchshield.SearchEngine.prototype.addImage;	return parent.call(this, node, image, hidden);};///////////////    BING SEARCH ENGINE    //////////////////////////////    BAIDU SEARCH ENGINE    ///////////////searchshield.BaiduSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.updateImageStyle = {		verticalAlign: null	};};searchshield.BaiduSearchEngine.prototype = new searchshield.SearchEngine();searchshield.BaiduSearchEngine.prototype.constructor = searchshield.BaiduSearchEngine;searchshield.BaiduSearchEngine.prototype.name = "baidu";searchshield.BaiduSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var hostMatch	= false;	var domain		= uri.host;	// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;		if (domain == "www.baidu.com" || path.indexOf("testBaidu") !== -1)		hostMatch = true;			if (hostMatch)	{		if (path.indexOf("s?") == 0)			return true;	}	return false;};searchshield.BaiduSearchEngine.prototype.includeLink = function(tag){				if (tag.className &amp;&amp; tag.className == "m")			return false;		if (searchshield.DoesURLContain(tag.href, this.search.uri.host))			return false;		else 		{			// no link to self			var traverseElement = tag.parentNode;			while ( traverseElement &amp;&amp; traverseElement.className != "tbody")			{				if (traverseElement.className == "f")					return tag.href;				traverseElement = traverseElement.parentNode;			}						return false;		}};///////////////    BAIDU SEARCH ENGINE    //////////////////////////////    EARTHLINK SEARCH ENGINE    ///////////////searchshield.EarthlinkSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.onlyPrimaries = false;	this.addAnchorStyle = {		position: "static"	};};searchshield.EarthlinkSearchEngine.prototype = new searchshield.SearchEngine();searchshield.EarthlinkSearchEngine.prototype.constructor = searchshield.EarthlinkSearchEngine;searchshield.EarthlinkSearchEngine.prototype.name = "earthlink";searchshield.EarthlinkSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;	var hostMatch	= false;	var domain		= uri.host;	// re stitch the uri path and query elements to	// use existing logic	var path = uri.path + uri.delimiter + uri.query;	// For EarthLink the host must match:	//	search.earthlink.net	if (("search.earthlink.net" == domain)	&amp;&amp;		(path.indexOf("search?") == 0))	{		return true;	}	return false;};searchshield.EarthlinkSearchEngine.prototype.includeLink = function(tag){	var outHref	= "";	var findStr	= "";	// check for an anchor	if (tag.tagName == "A")	{		// check for sponsored		if (tag.id.indexOf("a") == 0)		{			var q = tag.href.indexOf("&amp;q=");			var qlen = 3;			if (q == -1)			{				q = tag.href.indexOf("&amp;adurl=");				qlen = 7;				if (q == -1)					return false;			}			// find end of url			var end = tag.href.indexOf("&amp;", q+qlen);			if (end &lt; 0)				end = tag.href.length;			// add the link			outHref = tag.href.substring(q+qlen, end);						if (searchshield.FilterUrl(outHref, this.filter_urls))				return false;							return outHref;		}		// don't search url's to self		if ((tag.href.indexOf("://") == -1) || searchshield.DoesURLContain(tag.href, this.search.uri.host))			return false;		// if a normal web result add it		if (tag.parentNode &amp;&amp; (tag.parentNode.tagName == "H3") &amp;&amp;			tag.parentNode.parentNode &amp;&amp; (tag.parentNode.parentNode.tagName == "LI") &amp;&amp;			tag.parentNode.parentNode.parentNode &amp;&amp; (tag.parentNode.parentNode.parentNode.tagName == "UL"))		{			if (searchshield.FilterUrl(tag.href, this.filter_urls))				return false;							return tag.href;		}	}		return false;};///////////////    EARTHLINK SEARCH ENGINE    //////////////////////////////    AOL SEARCH ENGINE    ///////////////searchshield.AOLSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);		this.addImageStyle = {		display: "inline"	};	this.addAnchorStyle = {		display: null	};	this.updateImageStyle = {		verticalAlign: null,		display: "inline"	};};searchshield.AOLSearchEngine.prototype = new searchshield.SearchEngine();searchshield.AOLSearchEngine.prototype.constructor = searchshield.AOLSearchEngine;searchshield.AOLSearchEngine.prototype.name = "aol";searchshield.AOLSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain = uri.host;	//path may be 'aol/search' or 'search'	var pathArray = uri.path.split("/");	var aol = pathArray[0];	// re stitch the uri path and query elements	// to use existing logic	var path = (undefined == pathArray[1]) ? pathArray[0] : pathArray[1];		path += uri.delimiter + uri.query;	if (/search\.aol\.com/.test(domain))	{		if ((aol == "aol") &amp;&amp;			(path.indexOf("search?") == 0))		{			return true;		}	}		return false;};searchshield.AOLSearchEngine.prototype.includeLink = function(tag){	if (searchshield.DoesURLContain(tag.href, this.search.uri.host))		return false;		// sponsored links - google	if ((tag.className) &amp;&amp; (tag.className.indexOf("slLink topAnchor") != -1))	{	//parse for embedded href		if (tag.href.indexOf("/aclk?sa=") == -1)			return false;		var adurl = tag.href.indexOf("&amp;adurl=http");		// if an adurl the destination href can be acquired from the onclick handler		if (adurl != -1)		{			var destUrl;			var clickHandler = tag.getAttribute('onclick');			if (clickHandler != null)			{				// the destination href is the 2nd parameter (zero-based array)				destUrl = searchshield.getClickHandlerParams(clickHandler)[1];				if (destUrl != null)				{					destUrl = searchshield.removeHtmlTags(destUrl.replace(/'/g,''));					return searchshield.checkUrl(destUrl);				}			}		}		return false;	}	if (tag.className == "find")		return tag.href;			return false;};searchshield.AOLSearchEngine.prototype.insertNodes = function(node, doc){	var element = node.element;	var score = node.score;	if (element &amp;&amp; element.className &amp;&amp; element.className.indexOf("slLink") != -1)	{	//sponsored links only		// for alt image		if (score == searchshield.SCORE_SS_VERISIGN)			return [element.nextSibling, element.parentNode];		// for verdict image		var cN = element.childNodes;		var cnLen = cN.length;		for (var i=0; i &lt; cnLen; i++)		{			if ((cN[i].nodeType == 1) &amp;&amp; 				(cN[i].nodeName == 'SPAN') &amp;&amp; 				((cN[i].className == 'title') || (cN[i].className == 'durl')))				return [cN[i].nextSibling, cN[i].parentNode];		}	}	var parent = searchshield.SearchEngine.prototype.insertNodes;	return parent.call(this, node, doc);};///////////////    AOL SEARCH ENGINE    //////////////////////////////    ASK SEARCH ENGINE    ///////////////searchshield.AskSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);};searchshield.AskSearchEngine.prototype = new searchshield.SearchEngine();searchshield.AskSearchEngine.prototype.constructor = searchshield.AskSearchEngine;searchshield.AskSearchEngine.prototype.name = "ask";searchshield.AskSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	// re stitch the uri path and query elements	// to use existing logic	var path = uri.path + uri.delimiter + uri.query;		if ("www.ask.com" == domain)	{		if (path.indexOf("web?") == 0)			return true;	}	return false;};searchshield.AskSearchEngine.prototype.includeLink = function(tag){	var outHref	= "";	var findStr	= "";	if (searchshield.DoesURLContain(tag.href, this.search.uri.host))		return false;		if ((tag.className) &amp;&amp; (tag.className.indexOf("nu") != -1) &amp;&amp; (tag.className.indexOf("info") == -1)) 	{		// exclude green links		if ((tag.firstChild) &amp;&amp;			(tag.firstChild.className) &amp;&amp;			(tag.firstChild.className.indexOf('attrib') == 0))		{			return false;		}		// ads link to google with class nu		findStr = "www.google.com";		if (tag.href.indexOf(findStr) != 0)		{			if (tag.href.indexOf(findStr + "/aclk?sa=") != -1)			{					findStr = "&amp;adurl=http";				var pos = tag.href.indexOf(findStr);				if (pos != -1)				{					pos += 7;					outHref = tag.href.substring(pos);					outHref = unescape(outHref);					if (searchshield.FilterUrl(outHref, this.filter_urls))							return false;					return outHref;				}			}		}		else		{	// ad not to google just use href			outHref = tag.href;			if (searchshield.FilterUrl(outHref, this.filter_urls))				return false;			return outHref;		}	}	// primary results have class containing title or L2 ( Wikipedia links )	else if ((tag.className) &amp;&amp; ((tag.className.indexOf("title") != -1) || (tag.className.toLowerCase() == "l2")))	{		outHref = tag.href;		if (searchshield.FilterUrl(outHref, this.filter_urls))			return false;		return outHref;	}		return false;};///////////////    ASK SEARCH ENGINE    //////////////////////////////    ALTAVISTA SEARCH ENGINE    ///////////////searchshield.AltaVistaSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);};searchshield.AltaVistaSearchEngine.prototype = new searchshield.SearchEngine();searchshield.AltaVistaSearchEngine.prototype.constructor = searchshield.AltaVistaSearchEngine;searchshield.AltaVistaSearchEngine.prototype.name = "altavista";searchshield.AltaVistaSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;		// re stitch the uri path and query elements	// to use existing logic	var path = uri.path + uri.delimiter + uri.query;	// www.atlavista.com ---&gt; now http://us.yhs4.search.yahoo.com/yhs/search?fr=altavista&amp;fr=altavista&amp;itag=ody&amp;q=warez&amp;kgs=1&amp;kls=0	// xx.altavista.com where xx is a country code	var hostMatch = false;	if ("www.altavista.com" == domain)	{		hostMatch = true;	}	else	{		// xx.altavista.com		var pDest = domain.indexOf(".altavista.com");		if ((pDest != -1 ) &amp;&amp; ((domain.length - pDest) == 14))		{			hostMatch = true;		}		else		{			// a reference to altavista must be present in yahoo search url			var pRef = (uri.qsArray.fr &amp;&amp; uri.qsArray.fr == 'altavista');			pDest = domain.indexOf("search.yahoo.com");			if (pDest != -1 &amp;&amp; pRef)				hostMatch = true;		}	}	if (hostMatch)	{		//path must start with web/results?		if ((path.indexOf("yhs/search?") == 0)	||			(path.indexOf("search;") == 0)		||			(path.indexOf("yhs/search;") == 0)	||			(path.indexOf("web/results?") == 0)||			(path.indexOf("fr=altavista") != -1))		{			return true;		}	}		return false;};searchshield.AltaVistaSearchEngine.prototype.includeLink = function(tag){	var outHref	= "";	var findStr	= "";	// initial checks	if ((!tag.href)	|| 		(tag.href.charAt(0) == '#') ||		(tag.href.indexOf("javascript:") == 0))	{		return false;	}			if (searchshield.DoesURLContain(tag.href, this.search.uri.host))		return false;		var spnsdLinks = searchshield.getParentNodeByTagName("DIV", tag, "className");	if ((spnsdLinks) &amp;&amp;		(spnsdLinks.className.indexOf('ads') &gt; -1))	// sponsored links	{		if (!tag.parentNode)			return false;		// parse ads for em tag		var baseNode;		if (spnsdLinks.className.indexOf('ads horiz') &gt; -1)	// horizontal ads sections			baseNode = tag.parentNode.parentNode;		else			baseNode = tag.parentNode;				if (!baseNode || !baseNode.lastChild || baseNode.lastChild.tagName != 'EM')			return false;		var outHref = searchshield.removeHtmlTags(baseNode.lastChild.innerHTML);		return outHref;	}		if ((tag.className == "spt") || 		(tag.className == "res") ||		(tag.className == "yschttl spt"))	{		findStr = "/**";		var pos = tag.href.indexOf(findStr);		if (pos != -1)		{			pos += 3;			outHref = tag.href.substring(pos);			outHref = unescape(outHref);						// no results for overture.com &amp; no yahoo domains			chkHref = outHref.toLowerCase();			if (chkHref.indexOf("overture.") != -1)				return false;			// split the url based on '/'			var parts = outHref.split('/');			// only need a domain			if ((parts != null) &amp;&amp; (parts[2] != null))			{				var domain = parts[2];				if ((domain.indexOf("rdrjp.yahoo.com") != -1)	||					(domain.indexOf("rdrkrs.yahoo.com") != -1)	||					(domain.indexOf("rdrtpe.yahoo.com") != -1)	||					(domain.indexOf("rdrird.yahoo.com") != -1)	||					(domain.indexOf("rdrhk2.yahoo.com") != -1)	||					(domain.indexOf("rdrsg1.yahoo.com") != -1)	||					(domain.indexOf("rdrin2.yahoo.com") != -1)	||					(domain.indexOf("rdre1.yahoo.com") != -1)	||					(domain.indexOf("rdrw1.yahoo.com") != -1)		)				{					return false				}			}			return outHref;		}		else		{			return tag.href;		}	}		return false;};searchshield.AltaVistaSearchEngine.prototype.getImgElement = function (element){	while (element != null) 	{		element = element.nextSibling;		if (element != null)		{			if ((element.id == null) || (element.id.indexOf("LXPLSS_") == -1))			{   // not our id but hit another anchor no verdict				if (element.tagName == "A")				{					element = null;					break;				}			}			else if (element.tagName == "A")				break;		}	}			var rtnElem = !!element ? element.firstChild : element;	return rtnElem;};///////////////    ALTAVISTA SEARCH ENGINE    //////////////////////////////    YANDEX SEARCH ENGINE    ///////////////searchshield.YandexSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);};searchshield.YandexSearchEngine.prototype = new searchshield.SearchEngine();searchshield.YandexSearchEngine.prototype.constructor = searchshield.YandexSearchEngine;searchshield.YandexSearchEngine.prototype.name = "yandex";searchshield.YandexSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	// re stitch the uri path and query elements	// to use existing logic	var path = uri.path + uri.delimiter + uri.query;	if ((domain.match(/yandex\.com|by|kz|ru|ua/i)) &amp;&amp;		(path.indexOf("yandsearch?") == 0))	{		return true;	}		return false;};searchshield.YandexSearchEngine.prototype.includeLink = function(tag){	if (tag.href.indexOf("/search") != -1)	{		return false;	}		if (searchshield.DoesURLContain(tag.href, this.search.uri.host)	||		searchshield.DoesURLContain(tag.href, ".yandex.net")		||		searchshield.DoesURLContain(tag.href, ".yandex.ru")			||		searchshield.DoesURLContain(tag.href, "moikrug.ru")			||		searchshield.DoesURLContain(tag.href, "ya.ru")				||		searchshield.DoesURLContain(tag.href, ".yandex.com")		||		searchshield.DoesURLContain(tag.href, "yandex.st"))	{		return false;	}			parentNode = tag.parentNode;	if ((tag.parentNode)			&amp;&amp; 		(tag.parentNode.parentNode)	&amp;&amp;		(tag.parentNode.parentNode.className.toLowerCase() == "moreinfo"))	{		return false;	}		return tag.href;};searchshield.YandexSearchEngine.prototype.getImgElement = function (element){	while (element != null) 	{		element = element.nextSibling;		if (element != null)		{			if ((element.id == null) || (element.id.indexOf("LXPLSS_") == -1))			{   // not our id but hit another anchor no verdict				if (element.tagName == "A")				{					element = null;					break;				}			}			else if (element.tagName == "A")				break;		}	}			var rtnElem = !!element ? element.firstChild : element;	return rtnElem;};///////////////    YANDEX SEARCH ENGINE    //////////////////////////////    SEZNAM SEARCH ENGINE    ///////////////searchshield.SeznamSearchEngine = function(search){	searchshield.SearchEngine.call(this, search);	this.elementAttribute = {		width: "18",		height: "18"	};	this.updateImageStyle = {		width: "18px",		height: "18px"	};};searchshield.SeznamSearchEngine.prototype = new searchshield.SearchEngine();searchshield.SeznamSearchEngine.prototype.constructor = searchshield.SeznamSearchEngine;searchshield.SeznamSearchEngine.prototype.name = "seznam";searchshield.SeznamSearchEngine.prototype.validSearch = function(href){	var uri;	if (typeof(this.search) === 'undefined' || null === this.search)		uri = searchshield.parseLink(href);	else		uri = this.search.uri;	if(!uri || !uri.host)		return false;		var domain= uri.host;	// re stitch the uri path and query elements	// to use existing logic	var path = uri.path + uri.delimiter + uri.query;	if ((domain.indexOf("search.seznam.cz") &gt; -1)	&amp;&amp;		((path.indexOf("?") == 0) || (path.indexOf("svet") == 0)))	{		return true;	}		return false;};searchshield.SeznamSearchEngine.prototype.includeLink = function(tag){	if (searchshield.DoesURLContain(tag.href, this.search.uri.host))		return false;		var parentNode = tag.parentNode;	if (parentNode)	{		var grandParentNode = tag.parentNode.parentNode;		if ((parentNode.tagName == "SPAN") &amp;&amp; 			((parentNode.className.toLowerCase() == "sklik-url") ||			(parentNode.className.toLowerCase() == "sklik-title")))		{	// locate the real url and unencode it			var urlPos = tag.href.indexOf("&amp;url=http");			if (urlPos != -1)			{				urlPos += 5;					outHref = tag.href.substring(urlPos);				outHref = unescape(outHref);				return outHref;			}		}		else if (grandParentNode) 		{			var greatGrandParentNode = tag.parentNode.parentNode.parentNode;			if ((grandParentNode.tagName == "DIV") &amp;&amp;				((grandParentNode.className.toLowerCase() == "text") || (grandParentNode.className.toLowerCase() == "hlasky otz")))			{	// standard link				return tag.href;			}			else if (greatGrandParentNode &amp;&amp; greatGrandParentNode.tagName == "DIV" &amp;&amp;					(greatGrandParentNode.className.toLowerCase() == "hotlinks")) 			{	// hint link				return tag.href;
